{ "id": "select-dropdown", "name": "NodeDcSelect", "kind": "component", "status": "draft-stable", "summary": "Shared select/dropdown control for statuses, roles, clients, profile switches, filters, and compact table cells.", "sourceRefs": [ { "project": "nodedc_launcher", "file": "src/shared/nodedc-ui/Select.tsx", "exports": ["NodeDcSelect", "NodeDcSelectOption"] }, { "project": "nodedc_launcher", "file": "src/shared/nodedc-ui/Dropdown.tsx", "exports": ["NodeDcDropdown"] }, { "project": "nodedc_taskmanager", "file": "plane-src/packages/ui/src/dropdowns/action-dropdown.tsx", "exports": ["ActionDropdown"] } ], "anatomy": [ "trigger button or custom trigger render", "portal DropdownSurface", "optional search row", "option rows with optional icon, description, tone, and selected check" ], "visualContract": { "triggerRadius": "999px for table/header/status controls, 1rem inside entity forms", "menuSurface": "DropdownSurface", "optionRadius": "0.92rem", "selectedFill": "white/10 or tone-specific transparent fill", "outline": "none" }, "behaviorContract": [ "Never use native select for NODE.DC runtime UI.", "Render options through portal/fixed dropdown layer.", "Close on option select, outside pointer, and Escape.", "Support custom trigger render for header pills and side-nav client switcher." ], "currentConsumers": [ "TopBar client switcher", "TopBar profile-role switcher", "AdminOverlay client switcher", "AdminOverlay client type selects", "AdminOverlay membership role selects", "AdminOverlay invite role selects" ] }