{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "dropdown-menu",
  "dependencies": [
    "@data-slot/dropdown-menu"
  ],
  "registryDependencies": [
    "@fulldev/icon"
  ],
  "files": [
    {
      "path": "src/components/ui/dropdown-menu/dropdown-menu.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport type { Align, Side } from \"@data-slot/dropdown-menu\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n  defaultOpen?: boolean\n  defaultValue?: string | null\n  defaultValues?: string[]\n  closeOnClickOutside?: boolean\n  closeOnEscape?: boolean\n  closeOnSelect?: boolean\n  highlightItemOnHover?: boolean\n  side?: Side\n  align?: Align\n  sideOffset?: number\n  alignOffset?: number\n  avoidCollisions?: boolean\n  collisionPadding?: number\n}\n\nconst {\n  class: className,\n  defaultOpen,\n  defaultValue,\n  defaultValues,\n  closeOnClickOutside,\n  closeOnEscape,\n  closeOnSelect,\n  highlightItemOnHover,\n  side,\n  align,\n  sideOffset,\n  alignOffset,\n  avoidCollisions,\n  collisionPadding,\n  ...props\n} = Astro.props\n\nconst defaultValuesAttr =\n  defaultValues === undefined ? undefined : JSON.stringify(defaultValues)\n---\n\n<div\n  data-slot=\"dropdown-menu\"\n  data-default-open={defaultOpen}\n  data-default-value={defaultValue}\n  data-default-values={defaultValuesAttr}\n  data-close-on-click-outside={closeOnClickOutside}\n  data-close-on-escape={closeOnEscape}\n  data-close-on-select={closeOnSelect}\n  data-highlight-item-on-hover={highlightItemOnHover}\n  data-side={side}\n  data-align={align}\n  data-side-offset={sideOffset}\n  data-align-offset={alignOffset}\n  data-avoid-collisions={avoidCollisions}\n  data-collision-padding={collisionPadding}\n  class={className}\n  {...props}\n>\n  <slot />\n</div>\n\n<script>\n  import { create } from \"@data-slot/dropdown-menu\"\n\n  create()\n</script>\n",
      "type": "registry:ui"
    },
    {
      "path": "src/components/ui/dropdown-menu/dropdown-menu-trigger.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\ntype Props = HTMLAttributes<\"button\">\n\nconst { class: className, type = \"button\", ...props } = Astro.props\n---\n\n<button\n  data-slot=\"dropdown-menu-trigger\"\n  type={type}\n  class={className}\n  {...props}\n>\n  <slot />\n</button>\n",
      "type": "registry:ui"
    },
    {
      "path": "src/components/ui/dropdown-menu/dropdown-menu-content.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\nimport type { Align, Side } from \"@data-slot/dropdown-menu\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n  side?: Side\n  align?: Align\n  sideOffset?: number\n  alignOffset?: number\n  avoidCollisions?: boolean\n  collisionPadding?: number\n}\n\nconst {\n  class: className,\n  hidden = true,\n  side = \"bottom\",\n  align = \"start\",\n  sideOffset = 4,\n  alignOffset = 0,\n  avoidCollisions,\n  collisionPadding,\n  ...props\n} = Astro.props\n---\n\n<div data-slot=\"dropdown-menu-portal\">\n  <div\n    data-slot=\"dropdown-menu-positioner\"\n    data-side={side}\n    data-align={align}\n    data-side-offset={sideOffset}\n    data-align-offset={alignOffset}\n    data-avoid-collisions={avoidCollisions}\n    data-collision-padding={collisionPadding}\n    class=\"isolate z-50 outline-none\"\n  >\n    <div\n      data-slot=\"dropdown-menu-content\"\n      data-side={side}\n      data-align={align}\n      data-side-offset={sideOffset}\n      data-align-offset={alignOffset}\n      data-avoid-collisions={avoidCollisions}\n      data-collision-padding={collisionPadding}\n      hidden={hidden}\n      class={cn(\n        \"bg-popover text-popover-foreground ring-foreground/10 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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 z-50 max-h-(--available-height) w-(--anchor-width) min-w-32 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-md p-1 shadow-md ring-1 duration-100 outline-none data-closed:overflow-hidden\",\n        className\n      )}\n      {...props}\n    >\n      <slot />\n    </div>\n  </div>\n</div>\n",
      "type": "registry:ui"
    },
    {
      "path": "src/components/ui/dropdown-menu/dropdown-menu-item.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"button\"> & {\n  disabled?: boolean\n  variant?: \"default\" | \"destructive\"\n  inset?: boolean\n}\n\nconst {\n  class: className,\n  type = \"button\",\n  disabled,\n  variant,\n  inset,\n  ...props\n} = Astro.props\n---\n\n<button\n  data-slot=\"dropdown-menu-item\"\n  data-disabled={disabled}\n  data-variant={variant}\n  data-inset={inset}\n  disabled={disabled ? true : undefined}\n  type={type}\n  class={cn(\n    \"group/dropdown-menu-item data-highlighted:bg-accent data-highlighted:text-accent-foreground not-data-[variant=destructive]:data-highlighted:**:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:data-highlighted:bg-destructive/10 data-[variant=destructive]:data-highlighted:text-destructive data-[variant=destructive]:*:[svg]:text-destructive relative flex w-full cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n    className\n  )}\n  {...props}\n>\n  <slot />\n</button>\n",
      "type": "registry:ui"
    },
    {
      "path": "src/components/ui/dropdown-menu/dropdown-menu-radio-item.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Icon } from \"@/components/ui/icon\"\n\ntype Props = HTMLAttributes<\"button\"> & {\n  value: string\n  defaultChecked?: boolean\n  disabled?: boolean\n  variant?: \"default\" | \"destructive\"\n  inset?: boolean\n}\n\nconst {\n  class: className,\n  type = \"button\",\n  value,\n  defaultChecked,\n  disabled,\n  variant,\n  inset,\n  ...props\n} = Astro.props\n---\n\n<button\n  data-slot=\"dropdown-menu-radio-item\"\n  data-value={value}\n  data-default-checked={defaultChecked}\n  data-disabled={disabled}\n  data-variant={variant}\n  data-inset={inset}\n  disabled={disabled ? true : undefined}\n  type={type}\n  class={cn(\n    \"group/dropdown-menu-radio-item data-highlighted:bg-accent data-highlighted:text-accent-foreground data-highlighted:**:text-accent-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-none select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n    className\n  )}\n  {...props}\n>\n  <span\n    data-slot=\"dropdown-menu-radio-item-indicator\"\n    class=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n  >\n    <Icon\n      name=\"check\"\n      class=\"size-4 opacity-0 group-data-checked/dropdown-menu-radio-item:opacity-100\"\n    />\n  </span>\n  <slot />\n</button>\n",
      "type": "registry:ui"
    },
    {
      "path": "src/components/ui/dropdown-menu/dropdown-menu-checkbox-item.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Icon } from \"@/components/ui/icon\"\n\ntype Props = HTMLAttributes<\"button\"> & {\n  value: string\n  defaultChecked?: boolean\n  disabled?: boolean\n  variant?: \"default\" | \"destructive\"\n  inset?: boolean\n}\n\nconst {\n  class: className,\n  type = \"button\",\n  value,\n  defaultChecked,\n  disabled,\n  variant,\n  inset,\n  ...props\n} = Astro.props\n---\n\n<button\n  data-slot=\"dropdown-menu-checkbox-item\"\n  data-value={value}\n  data-default-checked={defaultChecked}\n  data-disabled={disabled}\n  data-variant={variant}\n  data-inset={inset}\n  disabled={disabled ? true : undefined}\n  type={type}\n  class={cn(\n    \"group/dropdown-menu-checkbox-item data-highlighted:bg-accent data-highlighted:text-accent-foreground data-highlighted:**:text-accent-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-none select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n    className\n  )}\n  {...props}\n>\n  <span\n    data-slot=\"dropdown-menu-checkbox-item-indicator\"\n    class=\"pointer-events-none absolute right-2 flex items-center justify-center\"\n  >\n    <Icon\n      name=\"check\"\n      class=\"size-4 opacity-0 group-data-checked/dropdown-menu-checkbox-item:opacity-100\"\n    />\n  </span>\n  <slot />\n</button>\n",
      "type": "registry:ui"
    },
    {
      "path": "src/components/ui/dropdown-menu/dropdown-menu-group.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\">\n\nconst { class: className, ...props } = Astro.props\n---\n\n<div data-slot=\"dropdown-menu-group\" class={cn(className)} {...props}>\n  <slot />\n</div>\n",
      "type": "registry:ui"
    },
    {
      "path": "src/components/ui/dropdown-menu/dropdown-menu-label.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\"> & {\n  inset?: boolean\n}\n\nconst { class: className, inset, ...props } = Astro.props\n---\n\n<div\n  data-slot=\"dropdown-menu-label\"\n  data-inset={inset}\n  class={cn(\n    \"text-muted-foreground px-2 py-1.5 text-xs font-medium data-inset:pl-8\",\n    className\n  )}\n  {...props}\n>\n  <slot />\n</div>\n",
      "type": "registry:ui"
    },
    {
      "path": "src/components/ui/dropdown-menu/dropdown-menu-separator.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"div\">\n\nconst { class: className, ...props } = Astro.props\n---\n\n<div\n  data-slot=\"dropdown-menu-separator\"\n  class={cn(\"bg-border -mx-1 my-1 h-px\", className)}\n  {...props}\n>\n</div>\n",
      "type": "registry:ui"
    },
    {
      "path": "src/components/ui/dropdown-menu/dropdown-menu-shortcut.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\nimport { cn } from \"@/lib/utils\"\n\ntype Props = HTMLAttributes<\"span\">\n\nconst { class: className, ...props } = Astro.props\n---\n\n<span\n  data-slot=\"dropdown-menu-shortcut\"\n  class={cn(\n    \"text-muted-foreground group-data-highlighted/dropdown-menu-item:text-accent-foreground ml-auto text-xs tracking-widest\",\n    className\n  )}\n  {...props}\n>\n  <slot />\n</span>\n",
      "type": "registry:ui"
    },
    {
      "path": "src/components/ui/dropdown-menu/dropdown-menu-portal.astro",
      "content": "---\nimport type { HTMLAttributes } from \"astro/types\"\n\ntype Props = HTMLAttributes<\"div\">\n\nconst { class: className, ...props } = Astro.props\n---\n\n<div data-slot=\"dropdown-menu-portal\" class={className} {...props}>\n  <slot />\n</div>\n",
      "type": "registry:ui"
    },
    {
      "path": "src/components/ui/dropdown-menu/index.ts",
      "content": "export { default as DropdownMenu } from \"./dropdown-menu.astro\"\nexport { default as DropdownMenuCheckboxItem } from \"./dropdown-menu-checkbox-item.astro\"\nexport { default as DropdownMenuContent } from \"./dropdown-menu-content.astro\"\nexport { default as DropdownMenuGroup } from \"./dropdown-menu-group.astro\"\nexport { default as DropdownMenuItem } from \"./dropdown-menu-item.astro\"\nexport { default as DropdownMenuLabel } from \"./dropdown-menu-label.astro\"\nexport { default as DropdownMenuPortal } from \"./dropdown-menu-portal.astro\"\nexport { default as DropdownMenuRadioItem } from \"./dropdown-menu-radio-item.astro\"\nexport { default as DropdownMenuSeparator } from \"./dropdown-menu-separator.astro\"\nexport { default as DropdownMenuShortcut } from \"./dropdown-menu-shortcut.astro\"\nexport { default as DropdownMenuTrigger } from \"./dropdown-menu-trigger.astro\"\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}