52 lines
1.7 KiB
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"
|
|
]
|
|
}
|