{{!
	See @typedef MenuDefinition
}}

<div id="{{id}}" class="vector-menu{{#class}} {{.}}{{/class}}" {{{html-tooltip}}} {{{html-user-language-attributes}}}>
	{{!
		Dropdown menus use the checkbox hack and require `input` and `label` elements.
		`aria-label` is applied to the `input` which is semantically a button.
		The `label` element is used as a visual button.
	}}
	{{#is-dropdown}}
	<input type="checkbox"
		id="{{id}}-checkbox"
		role="button"
		aria-haspopup="true"
		data-event-name="ui.dropdown-{{id}}"
		class="vector-menu-checkbox{{#checkbox-class}} {{.}}{{/checkbox-class}}"
		{{#aria-label}}aria-label="{{.}}"{{/aria-label}}
		{{{html-vector-menu-checkbox-attributes}}}
	/>
	<label
		id="{{id}}-label"
		for="{{id}}-checkbox"
		class="vector-menu-heading{{#heading-class}} {{.}}{{/heading-class}}"
		{{{html-vector-menu-heading-attributes}}}
	>
		{{{html-vector-heading-icon}}}<span class="vector-menu-heading-label">{{label}}</span>
	</label>
	{{/is-dropdown}}
	{{!
		Portal menus also require a label
	}}
	{{#is-portal}}
	<div
		id="{{id}}-label"
		class="vector-menu-heading{{#heading-class}} {{.}}{{/heading-class}}"
		{{#aria-label}}aria-label="{{.}}"{{/aria-label}}
	>
		{{{html-vector-heading-icon}}}<span class="vector-menu-heading-label">{{label}}</span>
	</div>
	{{/is-portal}}
	<div class="vector-menu-content">
		{{{html-before-portal}}}
		<ul class="vector-menu-content-list">{{{html-items}}}</ul>
		{{{html-after-portal}}}
	</div>
</div>
