Current section

Files

Jump to
noora components button-dropdown.json
Raw

components/button-dropdown.json

{
"name": "ButtonDropdown",
"tagName": "noora-button-dropdown",
"elementClassName": "NooraButtonDropdown",
"className": "noora-button-dropdown",
"modulePath": "./priv/static/noora-web-components.js",
"description": "Combines a primary button action with an attached menu.",
"usage": "<noora-button-dropdown label=\"Create\">\n <noora-dropdown-item value=\"project\">Project</noora-dropdown-item>\n</noora-button-dropdown>",
"attributes": [
{
"name": "label",
"property": "label",
"type": "string",
"default": "",
"description": "Sets the main action label."
},
{
"name": "size",
"property": "size",
"type": "string",
"values": ["medium", "large"],
"default": "large",
"description": "Controls the dimensions."
},
{
"name": "disabled",
"property": "disabled",
"type": "boolean",
"default": false,
"description": "Disables both controls."
},
{
"name": "open",
"property": "open",
"type": "boolean",
"default": false,
"reflect": true,
"description": "Controls whether the menu is open."
},
{
"name": "close-on-select",
"property": "closeOnSelect",
"type": "boolean",
"default": true,
"description": "Closes the menu after a selection."
},
{
"name": "keep-open",
"property": "keepOpen",
"type": "boolean",
"default": false,
"description": "Keeps the menu open after selection."
},
{
"name": "align",
"property": "align",
"type": "string",
"values": ["start", "end"],
"default": "start",
"description": "Aligns the menu to the button."
}
],
"properties": [
{
"name": "items",
"type": "json",
"typescriptType": "Array<Record<string, unknown>>",
"default": [],
"description": "Defines menu items programmatically when declarative noora-dropdown-item children are not used."
}
],
"readonlyProperties": [],
"slots": [
{
"name": "icon-left",
"description": "An icon before the main label."
},
{
"name": "icon-right",
"description": "An icon after the main label."
},
{
"name": "",
"description": "Declarative noora-dropdown-item children."
}
],
"cssParts": [
{
"name": "main-button",
"description": "The main action."
},
{
"name": "trigger",
"description": "The menu trigger."
},
{
"name": "content",
"description": "The menu content."
}
],
"events": [
{
"name": "noora-action",
"type": "CustomEvent<Record<string, never>>",
"description": "Emitted when the primary button is activated."
},
{
"name": "noora-open-change",
"type": "CustomEvent<{ open: boolean }>",
"description": "Emitted when the menu opens or closes."
},
{
"name": "noora-select",
"type": "CustomEvent<{ item: Record<string, unknown>; value: unknown }>",
"description": "Emitted when a menu item is selected."
}
],
"notes": ["Selections emit a `noora-select` event."],
"examples": [
{
"id": "default",
"title": "Default",
"description": "Attach related options to a primary action.",
"markup": "<noora-button-dropdown label=\"Button\">\n <noora-dropdown-item value=\"1\">Option 1</noora-dropdown-item>\n <noora-dropdown-item value=\"2\">Option 2</noora-dropdown-item>\n <noora-dropdown-item value=\"3\">Option 3</noora-dropdown-item>\n</noora-button-dropdown>"
},
{
"id": "sizes",
"title": "Sizes",
"description": "Button dropdowns are available in medium and large sizes.",
"markup": "<noora-button-dropdown label=\"Button\" size=\"medium\">\n <noora-dropdown-item value=\"1\">Option 1</noora-dropdown-item>\n <noora-dropdown-item value=\"2\">Option 2</noora-dropdown-item>\n</noora-button-dropdown>\n<noora-button-dropdown label=\"Button\" size=\"large\">\n <noora-dropdown-item value=\"1\">Option 1</noora-dropdown-item>\n <noora-dropdown-item value=\"2\">Option 2</noora-dropdown-item>\n</noora-button-dropdown>"
},
{
"id": "icons",
"title": "Icons",
"description": "Place icons on either side of the main action label.",
"markup": "<noora-button-dropdown label=\"Button\">\n <noora-icon slot=\"icon-left\" name=\"chevron_left\"></noora-icon>\n <noora-icon slot=\"icon-right\" name=\"chevron_right\"></noora-icon>\n <noora-dropdown-item value=\"1\">Option 1</noora-dropdown-item>\n <noora-dropdown-item value=\"2\">Option 2</noora-dropdown-item>\n</noora-button-dropdown>"
},
{
"id": "disabled",
"title": "Disabled",
"description": "The disabled state prevents both action and menu interaction.",
"markup": "<noora-button-dropdown disabled label=\"Button\">\n <noora-dropdown-item value=\"1\">Option 1</noora-dropdown-item>\n <noora-dropdown-item value=\"2\">Option 2</noora-dropdown-item>\n</noora-button-dropdown>"
}
]
}