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

52 lines
1.7 KiB
JSON

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