NODEDC_LAUNCHER/dc-ui-guideline/components/action-dropdown.json

42 lines
1.4 KiB
JSON

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