/**
@module
## Anatomy
```html
...
...
...
...
```
*/
import { registerCustomElement, type PropsDeclaration } from '@aria-ui/core'
import * as Base from '@aria-ui/elements/menu'
/**
* `` custom element.
*
* Properties: {@link MenuItemProps}
*
* Events: {@link MenuItemEvents}
*
* Data attributes:
*
* | Attribute | Description |
* | --- | --- |
* | `data-highlighted` | Present when the item is the currently highlighted option |
*/
export class MenuItemElement extends Base.MenuItemElement {}
/**
* `` custom element.
*
* Properties: {@link MenuPopupProps}
*
* Data attributes:
*
* | Attribute | Description |
* | --- | --- |
* | `data-state` | `"open"` when the menu is visible, `"closed"` otherwise |
*/
export class MenuPopupElement extends Base.MenuPopupElement {}
/**
* `` custom element.
*
* Properties: {@link MenuPositionerProps}
*
* Data attributes:
*
* | Attribute | Description |
* | --- | --- |
* | `data-state` | `"open"` when the menu is visible, `"closed"` otherwise |
*
* CSS variables:
*
* | Variable | Description |
* | --- | --- |
* | `--transform-origin` | The coordinates that this element is anchored to. Useful for scale animations. |
*/
export class MenuPositionerElement extends Base.MenuPositionerElement {}
/**
* `` custom element.
*
* Properties: {@link MenuRootProps}
*
* Events: {@link MenuRootEvents}
*
* Data attributes:
*
* | Attribute | Description |
* | --- | --- |
* | `data-menu-root` | Always present on the element |
*/
export class MenuRootElement extends Base.MenuRootElement {}
/**
* `` custom element.
*
* Properties: {@link MenuSubmenuRootProps}
*
* Events: {@link MenuSubmenuRootEvents}
*
* Data attributes:
*
* | Attribute | Description |
* | --- | --- |
* | `data-menu-submenu-root` | Always present on the element |
*/
export class MenuSubmenuRootElement extends Base.MenuSubmenuRootElement {}
/**
* `` custom element.
*
* Properties: {@link MenuSubmenuTriggerProps}
*
* Data attributes:
*
* | Attribute | Description |
* | --- | --- |
* | `data-highlighted` | Present when the item is the currently highlighted option |
*/
export class MenuSubmenuTriggerElement extends Base.MenuSubmenuTriggerElement {}
/**
* `` custom element.
*
* Properties: {@link MenuTriggerProps}
*
* Events: {@link MenuTriggerEvents}
*/
export class MenuTriggerElement extends Base.MenuTriggerElement {}
export interface MenuItemProps extends Base.MenuItemProps {}
export interface MenuPopupProps extends Base.MenuPopupProps {}
export interface MenuPositionerProps extends Base.MenuPositionerProps {}
export interface MenuRootProps extends Base.MenuRootProps {}
export interface MenuSubmenuRootProps extends Base.MenuSubmenuRootProps {}
export interface MenuSubmenuTriggerProps extends Base.MenuSubmenuTriggerProps {}
export interface MenuTriggerProps extends Base.MenuTriggerProps {}
export interface MenuItemEvents extends Base.MenuItemEvents {}
export interface MenuRootEvents extends Base.MenuRootEvents {}
export interface MenuSubmenuRootEvents extends Base.MenuSubmenuRootEvents {}
export interface MenuTriggerEvents extends Base.MenuTriggerEvents {}
/** @internal */
export const MenuItemPropsDeclaration: PropsDeclaration = Base.MenuItemPropsDeclaration
/** @internal */
export const MenuPopupPropsDeclaration: PropsDeclaration = Base.MenuPopupPropsDeclaration
/** @internal */
export const MenuPositionerPropsDeclaration: PropsDeclaration = Base.MenuPositionerPropsDeclaration
/** @internal */
export const MenuRootPropsDeclaration: PropsDeclaration = Base.MenuRootPropsDeclaration
/** @internal */
export const MenuSubmenuRootPropsDeclaration: PropsDeclaration = Base.MenuSubmenuRootPropsDeclaration
/** @internal */
export const MenuSubmenuTriggerPropsDeclaration: PropsDeclaration = Base.MenuSubmenuTriggerPropsDeclaration
/** @internal */
export const MenuTriggerPropsDeclaration: PropsDeclaration = Base.MenuTriggerPropsDeclaration
export function registerMenuRootElement(): void {
registerCustomElement('prosekit-menu-root', MenuRootElement)
}
export function registerMenuTriggerElement(): void {
registerCustomElement('prosekit-menu-trigger', MenuTriggerElement)
}
export function registerMenuPositionerElement(): void {
registerCustomElement('prosekit-menu-positioner', MenuPositionerElement)
}
export function registerMenuPopupElement(): void {
registerCustomElement('prosekit-menu-popup', MenuPopupElement)
}
export function registerMenuItemElement(): void {
registerCustomElement('prosekit-menu-item', MenuItemElement)
}
export function registerMenuSubmenuRootElement(): void {
registerCustomElement('prosekit-menu-submenu-root', MenuSubmenuRootElement)
}
export function registerMenuSubmenuTriggerElement(): void {
registerCustomElement('prosekit-menu-submenu-trigger', MenuSubmenuTriggerElement)
}
export {
OpenChangeEvent,
SelectEvent,
setupMenuItem,
setupMenuPopup,
setupMenuPositioner,
setupMenuRoot,
setupMenuSubmenuRoot,
setupMenuSubmenuTrigger,
setupMenuTrigger,
} from '@aria-ui/elements/menu'