/** * The `auro-menuoption` element provides users a way to define a menu option. * @customElement auro-menuoption * * @attr {Boolean} static - When present, marks the option as non-interactive — it renders but is skipped during keyboard navigation and cannot be selected. Useful for section headers, informational rows inside a menu, or attaching event listeners. * @slot default - The default slot for the menu option text. * * @event auroMenuOption-mouseover - Notifies that this option has been hovered over. * @event auroMenuOption-click - Notifies that this option has been clicked. */ export class AuroMenuOption extends AuroElement { static get properties(): { /** * Sets the shape of the option. When unset, it inherits the shape of the parent `auro-menu`. * @type {'box' | 'pill' | 'snowflake'} * @default 'box' */ shape: "box" | "pill" | "snowflake"; /** * Sets the size of the option. When unset, it inherits the size of the parent `auro-menu`. * @type {'xs' | 'sm' | 'md' | 'lg' | 'xl'} * @default 'sm' */ size: "xs" | "sm" | "md" | "lg" | "xl"; /** * When true, this option will not show the checkmark when selected. */ noCheckmark: { type: BooleanConstructor; reflect: boolean; attribute: string; }; /** * **Deprecated.** Use the `value` attribute on `auro-menu` to set the selected option when the menu renders (or call `menu.selectByValue(value)` programmatically). Support for the child-level `selected` attribute will be removed in a future major release. * * @deprecated Use the `value` attribute on `auro-menu` instead. */ selected: { type: BooleanConstructor; reflect: boolean; }; /** * When true, the option is disabled and cannot be selected. */ disabled: { type: BooleanConstructor; reflect: boolean; }; /** * The value associated with this menu option. */ value: { type: StringConstructor; reflect: boolean; }; /** * Sets the tab order of the menu option. */ tabIndex: { type: NumberConstructor; reflect: boolean; attribute: string; }; /** * When set, selecting this option dispatches a custom event of the given name from the parent `auro-menu` (and an `auroMenu-customEventFired` event) instead of selecting the option. */ event: { type: StringConstructor; reflect: boolean; }; /** * When true, marks this option as the "no matching results" placeholder shown by combobox * when the user's input does not match any available options. */ noMatch: { type: BooleanConstructor; reflect: boolean; attribute: string; }; /** When true, this option is excluded from `matchWord` DOM rewriting — useful for utility rows (e.g., "Add new…") that must render identically regardless of the current filter. */ persistent: { type: BooleanConstructor; reflect: boolean; }; layout: { type: StringConstructor; attribute: string; reflect: boolean; }; }; static get styles(): import("lit").CSSResult[]; /** * This will register this element with the browser. * @param {string} [name="auro-menuoption"] - The name of element that you want to register to. * * @example * AuroMenuOption.register("custom-menuoption") // this will register this element to * */ static register(name?: string): void; /** * @private */ private shape; /** * @private */ private size; iconTag: any; selected: boolean; noCheckmark: boolean; disabled: boolean; noMatch: boolean; persistent: boolean; /** * @private */ private runtimeUtils; /** * Returns whether the menu option is currently active and selectable. * @returns {boolean} */ get isActive(): boolean; firstUpdated(): void; updated(changedProperties: any): void; handleMenuChange(): void; setSelected(value: any): void; updateActive(active: any): void; active: any; attachTo(): void; /** * Handles click events on the menu option. * @private */ private handleClick; /** * Generates an HTML element containing an SVG icon based on the provided `svgContent`. * * @private * @param {string} svgContent - The SVG content to be embedded. * @returns {Element} The HTML element containing the SVG icon. */ private generateIconHtml; /** * Logic to determine the layout of the component. * @protected * @returns {void} */ protected renderLayout(): void; } import { AuroElement } from "../../layoutElement/src/auroElement.js";