{
  "id": "action-dropdown",
  "name": "ActionDropdown",
  "kind": "component",
  "status": "stable-reference",
  "summary": "Shared action menu for ellipsis buttons and command lists. Used instead of local card menus.",
  "sourceRefs": [
    {
      "project": "nodedc_taskmanager",
      "file": "plane-src/packages/ui/src/dropdowns/action-dropdown.tsx",
      "exports": ["ActionDropdown"]
    },
    {
      "project": "nodedc_taskmanager",
      "file": "HDROPDOWN-CANON.md",
      "section": "Action dropdown"
    }
  ],
  "propsContract": {
    "items": "Array of action menu items with key, icon, title, description, disabled, action, nestedMenuItems.",
    "button": "Optional custom trigger.",
    "buttonAsChild": "Allows using the provided trigger element as anchor.",
    "placement": "Popper placement.",
    "portalElement": "Defaults to document.body.",
    "menuClassName": "Optional width/padding adjustment."
  },
  "behaviorContract": [
    "Uses real trigger element.",
    "Uses fixed Popper strategy.",
    "Uses offset [0, 8].",
    "Uses flip and preventOverflow.",
    "Uses portal to document.body by default.",
    "Stops trigger event propagation so cards do not open when the menu opens."
  ],
  "rules": [
    "Do not build card ellipsis menus with local isOpen and absolute positioning.",
    "Menu item visual rendering lives inside ActionDropdown.",
    "Nested items are allowed, but still use the same dropdown shell."
  ]
}

