{ "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." ] }