{
  "name": "menubar",
  "type": "registry:ui",
  "dependencies": [
    "@vueuse/core",
    "reka-ui"
  ],
  "registryDependencies": [],
  "files": [
    {
      "path": "ui/menubar/Menubar.vue",
      "type": "registry:ui",
      "content": "<script setup lang=\"ts\">\nimport type { MenubarRootEmits, MenubarRootProps } from \"reka-ui\"\nimport type { HTMLAttributes } from \"vue\"\nimport { reactiveOmit } from \"@vueuse/core\"\nimport {\n  MenubarRoot,\n  useForwardPropsEmits,\n} from \"reka-ui\"\nimport { cn } from \"@/lib/utils\"\n\nconst props = defineProps<MenubarRootProps & { class?: HTMLAttributes[\"class\"] }>()\nconst emits = defineEmits<MenubarRootEmits>()\n\nconst delegatedProps = reactiveOmit(props, \"class\")\n\nconst forwarded = useForwardPropsEmits(delegatedProps, emits)\n</script>\n\n<template>\n  <MenubarRoot\n    v-slot=\"slotProps\"\n    data-slot=\"menubar\"\n    v-bind=\"forwarded\"\n    :class=\"\n      cn(\n        'cn-menubar flex items-center',\n        props.class,\n      )\n    \"\n  >\n    <slot v-bind=\"slotProps\" />\n  </MenubarRoot>\n</template>\n"
    },
    {
      "path": "ui/menubar/MenubarCheckboxItem.vue",
      "type": "registry:ui",
      "content": "<script setup lang=\"ts\">\nimport type { MenubarCheckboxItemEmits, MenubarCheckboxItemProps } from \"reka-ui\"\nimport type { HTMLAttributes } from \"vue\"\nimport { reactiveOmit } from \"@vueuse/core\"\nimport {\n  MenubarCheckboxItem,\n  MenubarItemIndicator,\n  useForwardPropsEmits,\n} from \"reka-ui\"\nimport { cn } from \"@/lib/utils\"\nimport { IconPlaceholder } from \"@/components/docs/icon-placeholder\"\n\nconst props = defineProps<MenubarCheckboxItemProps & { class?: HTMLAttributes[\"class\"] }>()\nconst emits = defineEmits<MenubarCheckboxItemEmits>()\n\nconst delegatedProps = reactiveOmit(props, \"class\")\n\nconst forwarded = useForwardPropsEmits(delegatedProps, emits)\n</script>\n\n<template>\n  <MenubarCheckboxItem\n    data-slot=\"menubar-checkbox-item\"\n    v-bind=\"forwarded\"\n    :class=\"cn(\n      'cn-menubar-checkbox-item relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0',\n      props.class,\n    )\"\n  >\n    <span class=\"cn-menubar-checkbox-item-indicator pointer-events-none absolute flex items-center justify-center\">\n      <MenubarItemIndicator>\n        <slot name=\"indicator-icon\">\n          <IconPlaceholder lucide=\"CheckIcon\" tabler=\"IconCheck\" hugeicons=\"Tick02Icon\" phosphor=\"CheckIcon\" remixicon=\"RiCheckLine\" />\n        </slot>\n      </MenubarItemIndicator>\n    </span>\n    <slot />\n  </MenubarCheckboxItem>\n</template>\n"
    },
    {
      "path": "ui/menubar/MenubarContent.vue",
      "type": "registry:ui",
      "content": "<script setup lang=\"ts\">\nimport type { MenubarContentProps } from \"reka-ui\"\nimport type { HTMLAttributes } from \"vue\"\nimport { reactiveOmit } from \"@vueuse/core\"\nimport {\n  MenubarContent,\n  MenubarPortal,\n  useForwardProps,\n} from \"reka-ui\"\nimport { cn } from \"@/lib/utils\"\n\ndefineOptions({\n  inheritAttrs: false,\n})\n\nconst props = withDefaults(\n  defineProps<MenubarContentProps & { class?: HTMLAttributes[\"class\"] }>(),\n  {\n    align: \"start\",\n    alignOffset: -4,\n    sideOffset: 8,\n  },\n)\n\nconst delegatedProps = reactiveOmit(props, \"class\")\n\nconst forwardedProps = useForwardProps(delegatedProps)\n</script>\n\n<template>\n  <MenubarPortal>\n    <MenubarContent\n      data-slot=\"menubar-content\"\n      v-bind=\"{ ...$attrs, ...forwardedProps }\"\n      :class=\"\n        cn(\n          'cn-menubar-content cn-menu-target cn-menu-translucent z-50 origin-(--reka-menubar-content-transform-origin) overflow-hidden',\n          props.class,\n        )\n      \"\n    >\n      <slot />\n    </MenubarContent>\n  </MenubarPortal>\n</template>\n"
    },
    {
      "path": "ui/menubar/MenubarGroup.vue",
      "type": "registry:ui",
      "content": "<script setup lang=\"ts\">\nimport type { MenubarGroupProps } from \"reka-ui\"\nimport { MenubarGroup } from \"reka-ui\"\n\nconst props = defineProps<MenubarGroupProps>()\n</script>\n\n<template>\n  <MenubarGroup\n    data-slot=\"menubar-group\"\n    v-bind=\"props\"\n  >\n    <slot />\n  </MenubarGroup>\n</template>\n"
    },
    {
      "path": "ui/menubar/MenubarItem.vue",
      "type": "registry:ui",
      "content": "<script setup lang=\"ts\">\nimport type { MenubarItemEmits, MenubarItemProps } from \"reka-ui\"\nimport type { HTMLAttributes } from \"vue\"\nimport { reactiveOmit } from \"@vueuse/core\"\nimport {\n  MenubarItem,\n  useForwardPropsEmits,\n} from \"reka-ui\"\nimport { cn } from \"@/lib/utils\"\n\nconst props = defineProps<MenubarItemProps & {\n  class?: HTMLAttributes[\"class\"]\n  inset?: boolean\n  variant?: \"default\" | \"destructive\"\n}>()\n\nconst emits = defineEmits<MenubarItemEmits>()\n\nconst delegatedProps = reactiveOmit(props, \"class\", \"inset\", \"variant\")\nconst forwarded = useForwardPropsEmits(delegatedProps, emits)\n</script>\n\n<template>\n  <MenubarItem\n    data-slot=\"menubar-item\"\n    :data-inset=\"inset ? '' : undefined\"\n    :data-variant=\"variant\"\n    v-bind=\"forwarded\"\n    :class=\"cn(\n      'cn-menubar-item group/menubar-item relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0',\n      props.class,\n    )\"\n  >\n    <slot />\n  </MenubarItem>\n</template>\n"
    },
    {
      "path": "ui/menubar/MenubarLabel.vue",
      "type": "registry:ui",
      "content": "<script setup lang=\"ts\">\nimport type { MenubarLabelProps } from \"reka-ui\"\nimport type { HTMLAttributes } from \"vue\"\nimport { reactiveOmit } from \"@vueuse/core\"\nimport { MenubarLabel } from \"reka-ui\"\nimport { cn } from \"@/lib/utils\"\n\nconst props = defineProps<MenubarLabelProps & { class?: HTMLAttributes[\"class\"], inset?: boolean }>()\nconst delegatedProps = reactiveOmit(props, \"class\", \"inset\")\n</script>\n\n<template>\n  <MenubarLabel\n    data-slot=\"menubar-label\"\n    :data-inset=\"inset ? '' : undefined\"\n    v-bind=\"delegatedProps\"\n    :class=\"cn('cn-menubar-label', props.class)\"\n  >\n    <slot />\n  </MenubarLabel>\n</template>\n"
    },
    {
      "path": "ui/menubar/MenubarMenu.vue",
      "type": "registry:ui",
      "content": "<script setup lang=\"ts\">\nimport type { MenubarMenuProps } from \"reka-ui\"\nimport { MenubarMenu } from \"reka-ui\"\n\nconst props = defineProps<MenubarMenuProps>()\n</script>\n\n<template>\n  <MenubarMenu\n    data-slot=\"menubar-menu\"\n    v-bind=\"props\"\n  >\n    <slot />\n  </MenubarMenu>\n</template>\n"
    },
    {
      "path": "ui/menubar/MenubarRadioGroup.vue",
      "type": "registry:ui",
      "content": "<script setup lang=\"ts\">\nimport type { MenubarRadioGroupEmits, MenubarRadioGroupProps } from \"reka-ui\"\nimport {\n  MenubarRadioGroup,\n  useForwardPropsEmits,\n} from \"reka-ui\"\n\nconst props = defineProps<MenubarRadioGroupProps>()\nconst emits = defineEmits<MenubarRadioGroupEmits>()\n\nconst forwarded = useForwardPropsEmits(props, emits)\n</script>\n\n<template>\n  <MenubarRadioGroup\n    data-slot=\"menubar-radio-group\"\n    v-bind=\"forwarded\"\n  >\n    <slot />\n  </MenubarRadioGroup>\n</template>\n"
    },
    {
      "path": "ui/menubar/MenubarRadioItem.vue",
      "type": "registry:ui",
      "content": "<script setup lang=\"ts\">\nimport type { MenubarRadioItemEmits, MenubarRadioItemProps } from \"reka-ui\"\nimport type { HTMLAttributes } from \"vue\"\nimport { reactiveOmit } from \"@vueuse/core\"\nimport {\n  MenubarItemIndicator,\n  MenubarRadioItem,\n  useForwardPropsEmits,\n} from \"reka-ui\"\nimport { cn } from \"@/lib/utils\"\nimport { IconPlaceholder } from \"@/components/docs/icon-placeholder\"\n\nconst props = defineProps<MenubarRadioItemProps & { class?: HTMLAttributes[\"class\"] }>()\nconst emits = defineEmits<MenubarRadioItemEmits>()\n\nconst delegatedProps = reactiveOmit(props, \"class\")\n\nconst forwarded = useForwardPropsEmits(delegatedProps, emits)\n</script>\n\n<template>\n  <MenubarRadioItem\n    data-slot=\"menubar-radio-item\"\n    v-bind=\"forwarded\"\n    :class=\"cn(\n      'cn-menubar-radio-item relative flex cursor-default items-center outline-hidden select-none data-disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0',\n      props.class,\n    )\"\n  >\n    <span class=\"cn-menubar-radio-item-indicator pointer-events-none absolute flex items-center justify-center\">\n      <MenubarItemIndicator>\n        <slot name=\"indicator-icon\">\n          <IconPlaceholder lucide=\"CheckIcon\" tabler=\"IconCheck\" hugeicons=\"Tick02Icon\" phosphor=\"CheckIcon\" remixicon=\"RiCheckLine\" />\n        </slot>\n      </MenubarItemIndicator>\n    </span>\n    <slot />\n  </MenubarRadioItem>\n</template>\n"
    },
    {
      "path": "ui/menubar/MenubarSeparator.vue",
      "type": "registry:ui",
      "content": "<script setup lang=\"ts\">\nimport type { MenubarSeparatorProps } from \"reka-ui\"\nimport type { HTMLAttributes } from \"vue\"\nimport { reactiveOmit } from \"@vueuse/core\"\nimport { MenubarSeparator, useForwardProps } from \"reka-ui\"\nimport { cn } from \"@/lib/utils\"\n\nconst props = defineProps<MenubarSeparatorProps & { class?: HTMLAttributes[\"class\"] }>()\n\nconst delegatedProps = reactiveOmit(props, \"class\")\n\nconst forwardedProps = useForwardProps(delegatedProps)\n</script>\n\n<template>\n  <MenubarSeparator\n    data-slot=\"menubar-separator\"\n    :class=\"cn('cn-menubar-separator -mx-1 my-1 h-px', props.class)\"\n    v-bind=\"forwardedProps\"\n  />\n</template>\n"
    },
    {
      "path": "ui/menubar/MenubarShortcut.vue",
      "type": "registry:ui",
      "content": "<script setup lang=\"ts\">\nimport type { HTMLAttributes } from \"vue\"\nimport { cn } from \"@/lib/utils\"\n\nconst props = defineProps<{\n  class?: HTMLAttributes[\"class\"]\n}>()\n</script>\n\n<template>\n  <span\n    data-slot=\"menubar-shortcut\"\n    :class=\"cn('cn-menubar-shortcut ml-auto', props.class)\"\n  >\n    <slot />\n  </span>\n</template>\n"
    },
    {
      "path": "ui/menubar/MenubarSub.vue",
      "type": "registry:ui",
      "content": "<script setup lang=\"ts\">\nimport type { MenubarSubEmits } from \"reka-ui\"\nimport { MenubarSub, useForwardPropsEmits } from \"reka-ui\"\n\ninterface MenubarSubRootProps {\n  defaultOpen?: boolean\n  open?: boolean\n}\n\nconst props = defineProps<MenubarSubRootProps>()\nconst emits = defineEmits<MenubarSubEmits>()\n\nconst forwarded = useForwardPropsEmits(props, emits)\n</script>\n\n<template>\n  <MenubarSub\n    v-slot=\"slotProps\"\n    data-slot=\"menubar-sub\"\n    v-bind=\"forwarded\"\n  >\n    <slot v-bind=\"slotProps\" />\n  </MenubarSub>\n</template>\n"
    },
    {
      "path": "ui/menubar/MenubarSubContent.vue",
      "type": "registry:ui",
      "content": "<script setup lang=\"ts\">\nimport type { MenubarSubContentEmits, MenubarSubContentProps } from \"reka-ui\"\nimport type { HTMLAttributes } from \"vue\"\nimport { reactiveOmit } from \"@vueuse/core\"\nimport {\n  MenubarPortal,\n  MenubarSubContent,\n  useForwardPropsEmits,\n} from \"reka-ui\"\nimport { cn } from \"@/lib/utils\"\n\ndefineOptions({\n  inheritAttrs: false,\n})\n\nconst props = defineProps<MenubarSubContentProps & { class?: HTMLAttributes[\"class\"] }>()\nconst emits = defineEmits<MenubarSubContentEmits>()\n\nconst delegatedProps = reactiveOmit(props, \"class\")\n\nconst forwarded = useForwardPropsEmits(delegatedProps, emits)\n</script>\n\n<template>\n  <MenubarPortal>\n    <MenubarSubContent\n      data-slot=\"menubar-sub-content\"\n      v-bind=\"{ ...$attrs, ...forwarded }\"\n      :class=\"\n        cn(\n          'cn-menubar-sub-content cn-menu-target cn-menu-translucent z-50 origin-(--reka-menubar-content-transform-origin) overflow-hidden',\n          props.class,\n        )\n      \"\n    >\n      <slot />\n    </MenubarSubContent>\n  </MenubarPortal>\n</template>\n"
    },
    {
      "path": "ui/menubar/MenubarSubTrigger.vue",
      "type": "registry:ui",
      "content": "<script setup lang=\"ts\">\nimport type { MenubarSubTriggerProps } from \"reka-ui\"\nimport type { HTMLAttributes } from \"vue\"\nimport { reactiveOmit } from \"@vueuse/core\"\nimport { MenubarSubTrigger, useForwardProps } from \"reka-ui\"\nimport { cn } from \"@/lib/utils\"\nimport { IconPlaceholder } from \"@/components/docs/icon-placeholder\"\n\nconst props = defineProps<MenubarSubTriggerProps & { class?: HTMLAttributes[\"class\"], inset?: boolean }>()\n\nconst delegatedProps = reactiveOmit(props, \"class\", \"inset\")\nconst forwardedProps = useForwardProps(delegatedProps)\n</script>\n\n<template>\n  <MenubarSubTrigger\n    data-slot=\"menubar-sub-trigger\"\n    :data-inset=\"inset ? '' : undefined\"\n    v-bind=\"forwardedProps\"\n    :class=\"cn(\n      'cn-menubar-sub-trigger flex cursor-default items-center outline-none select-none',\n      props.class,\n    )\"\n  >\n    <slot />\n    <IconPlaceholder lucide=\"ChevronRightIcon\" tabler=\"IconChevronRight\" hugeicons=\"ArrowRight01Icon\" phosphor=\"CaretRightIcon\" remixicon=\"RiArrowRightSLine\" class=\"cn-rtl-flip ml-auto size-4\" />\n  </MenubarSubTrigger>\n</template>\n"
    },
    {
      "path": "ui/menubar/MenubarTrigger.vue",
      "type": "registry:ui",
      "content": "<script setup lang=\"ts\">\nimport type { MenubarTriggerProps } from \"reka-ui\"\nimport type { HTMLAttributes } from \"vue\"\nimport { reactiveOmit } from \"@vueuse/core\"\nimport { MenubarTrigger, useForwardProps } from \"reka-ui\"\nimport { cn } from \"@/lib/utils\"\n\nconst props = defineProps<MenubarTriggerProps & { class?: HTMLAttributes[\"class\"] }>()\n\nconst delegatedProps = reactiveOmit(props, \"class\")\n\nconst forwardedProps = useForwardProps(delegatedProps)\n</script>\n\n<template>\n  <MenubarTrigger\n    data-slot=\"menubar-trigger\"\n    v-bind=\"forwardedProps\"\n    :class=\"\n      cn(\n        'cn-menubar-trigger flex items-center outline-hidden select-none',\n        props.class,\n      )\n    \"\n  >\n    <slot />\n  </MenubarTrigger>\n</template>\n"
    },
    {
      "path": "ui/menubar/index.ts",
      "type": "registry:ui",
      "content": "export { default as Menubar } from \"./Menubar.vue\"\nexport { default as MenubarCheckboxItem } from \"./MenubarCheckboxItem.vue\"\nexport { default as MenubarContent } from \"./MenubarContent.vue\"\nexport { default as MenubarGroup } from \"./MenubarGroup.vue\"\nexport { default as MenubarItem } from \"./MenubarItem.vue\"\nexport { default as MenubarLabel } from \"./MenubarLabel.vue\"\nexport { default as MenubarMenu } from \"./MenubarMenu.vue\"\nexport { default as MenubarRadioGroup } from \"./MenubarRadioGroup.vue\"\nexport { default as MenubarRadioItem } from \"./MenubarRadioItem.vue\"\nexport { default as MenubarSeparator } from \"./MenubarSeparator.vue\"\nexport { default as MenubarShortcut } from \"./MenubarShortcut.vue\"\nexport { default as MenubarSub } from \"./MenubarSub.vue\"\nexport { default as MenubarSubContent } from \"./MenubarSubContent.vue\"\nexport { default as MenubarSubTrigger } from \"./MenubarSubTrigger.vue\"\nexport { default as MenubarTrigger } from \"./MenubarTrigger.vue\"\n"
    }
  ]
}
