mirror of
https://github.com/zoriya/v10.git
synced 2026-08-16 02:45:09 +00:00
feat(core): menu core layer and DOM keyboard navigation (#1503)
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
0cfd3bb395
commit
e3c1b28032
@@ -4,6 +4,17 @@ import { AlertDialogTitleElement } from '../../ui/alert-dialog/alert-dialog-titl
|
||||
import { ControlsElement } from '../../ui/controls/controls-element';
|
||||
import { ControlsGroupElement } from '../../ui/controls/controls-group-element';
|
||||
import { ErrorDialogElement } from '../../ui/error-dialog/error-dialog-element';
|
||||
import { MenuBackElement } from '../../ui/menu/menu-back-element';
|
||||
import { MenuCheckboxItemElement } from '../../ui/menu/menu-checkbox-item-element';
|
||||
import { MenuElement } from '../../ui/menu/menu-element';
|
||||
import { MenuGroupElement } from '../../ui/menu/menu-group-element';
|
||||
import { MenuItemElement } from '../../ui/menu/menu-item-element';
|
||||
import { MenuItemIndicatorElement } from '../../ui/menu/menu-item-indicator-element';
|
||||
import { MenuLabelElement } from '../../ui/menu/menu-label-element';
|
||||
import { MenuRadioGroupElement } from '../../ui/menu/menu-radio-group-element';
|
||||
import { MenuRadioItemElement } from '../../ui/menu/menu-radio-item-element';
|
||||
import { MenuSeparatorElement } from '../../ui/menu/menu-separator-element';
|
||||
import { MenuViewElement } from '../../ui/menu/menu-view-element';
|
||||
import { SeekIndicatorElement } from '../../ui/seek-indicator/seek-indicator-element';
|
||||
import { SeekIndicatorValueElement } from '../../ui/seek-indicator/seek-indicator-value-element';
|
||||
import { SliderBufferElement } from '../../ui/slider/slider-buffer-element';
|
||||
@@ -29,6 +40,21 @@ import { safeDefine } from '../safe-define';
|
||||
|
||||
// ── Define functions ────────────────────────────────────────────────────
|
||||
|
||||
export function defineMenu(): void {
|
||||
// Root first — part elements consume its context.
|
||||
safeDefine(MenuElement);
|
||||
safeDefine(MenuBackElement);
|
||||
safeDefine(MenuItemElement);
|
||||
safeDefine(MenuLabelElement);
|
||||
safeDefine(MenuSeparatorElement);
|
||||
safeDefine(MenuGroupElement);
|
||||
safeDefine(MenuRadioGroupElement);
|
||||
safeDefine(MenuRadioItemElement);
|
||||
safeDefine(MenuCheckboxItemElement);
|
||||
safeDefine(MenuItemIndicatorElement);
|
||||
safeDefine(MenuViewElement);
|
||||
}
|
||||
|
||||
export function defineControls(): void {
|
||||
safeDefine(ControlsElement);
|
||||
safeDefine(ControlsGroupElement);
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
import { MenuBackElement } from '../../ui/menu/menu-back-element';
|
||||
import { MenuCheckboxItemElement } from '../../ui/menu/menu-checkbox-item-element';
|
||||
import { MenuElement } from '../../ui/menu/menu-element';
|
||||
import { MenuGroupElement } from '../../ui/menu/menu-group-element';
|
||||
import { MenuItemElement } from '../../ui/menu/menu-item-element';
|
||||
import { MenuItemIndicatorElement } from '../../ui/menu/menu-item-indicator-element';
|
||||
import { MenuLabelElement } from '../../ui/menu/menu-label-element';
|
||||
import { MenuRadioGroupElement } from '../../ui/menu/menu-radio-group-element';
|
||||
import { MenuRadioItemElement } from '../../ui/menu/menu-radio-item-element';
|
||||
import { MenuSeparatorElement } from '../../ui/menu/menu-separator-element';
|
||||
import { MenuViewElement } from '../../ui/menu/menu-view-element';
|
||||
import { defineMenu } from './compounds';
|
||||
|
||||
defineMenu();
|
||||
|
||||
declare global {
|
||||
interface HTMLElementTagNameMap {
|
||||
[MenuElement.tagName]: MenuElement;
|
||||
[MenuBackElement.tagName]: MenuBackElement;
|
||||
[MenuItemElement.tagName]: MenuItemElement;
|
||||
[MenuLabelElement.tagName]: MenuLabelElement;
|
||||
[MenuSeparatorElement.tagName]: MenuSeparatorElement;
|
||||
[MenuGroupElement.tagName]: MenuGroupElement;
|
||||
[MenuRadioGroupElement.tagName]: MenuRadioGroupElement;
|
||||
[MenuRadioItemElement.tagName]: MenuRadioItemElement;
|
||||
[MenuCheckboxItemElement.tagName]: MenuCheckboxItemElement;
|
||||
[MenuItemIndicatorElement.tagName]: MenuItemIndicatorElement;
|
||||
[MenuViewElement.tagName]: MenuViewElement;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user