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