ladybird/Libraries/LibWeb/HTML/HTMLElement.idl
Luke Warlow eb1c60f37b LibWeb: Implement popover methods
Implements basics of showPopover, hidePopover and togglePopover.
2024-12-06 12:39:14 +00:00

96 lines
3 KiB
Text

#import <CSS/ElementCSSInlineStyle.idl>
#import <HTML/DOMStringMap.idl>
#import <HTML/ElementInternals.idl>
#import <HTML/HTMLOrSVGElement.idl>
#import <DOM/Element.idl>
#import <DOM/EventHandler.idl>
// https://html.spec.whatwg.org/multipage/semantics.html#htmlelement
[Exposed=Window]
interface HTMLElement : Element {
[HTMLConstructor] constructor();
// metadata attributes
[Reflect, CEReactions] attribute DOMString title;
[Reflect, CEReactions] attribute DOMString lang;
[FIXME, CEReactions] attribute boolean translate;
[CEReactions] attribute DOMString dir;
// user interaction
[Reflect, CEReactions] attribute boolean hidden;
[Reflect, CEReactions] attribute boolean inert;
undefined click();
[Reflect=accesskey, CEReactions] attribute DOMString accessKey;
readonly attribute DOMString accessKeyLabel;
[FIXME, CEReactions] attribute boolean draggable;
[FIXME, CEReactions] attribute boolean spellcheck;
[FIXME, CEReactions] attribute DOMString autocapitalize;
[FIXME, CEReactions] attribute boolean autocorrect;
[LegacyNullToEmptyString, CEReactions] attribute DOMString innerText;
[LegacyNullToEmptyString, CEReactions] attribute DOMString outerText;
ElementInternals attachInternals();
// The popover API
[ImplementedAs=show_popover_for_bindings] undefined showPopover(optional ShowPopoverOptions options = {});
[ImplementedAs=hide_popover_for_bindings] undefined hidePopover();
boolean togglePopover(optional (TogglePopoverOptions or boolean) options = {});
[CEReactions] attribute DOMString? popover;
// https://drafts.csswg.org/cssom-view/#extensions-to-the-htmlelement-interface
readonly attribute Element? offsetParent;
readonly attribute long offsetTop;
readonly attribute long offsetLeft;
readonly attribute long offsetWidth;
readonly attribute long offsetHeight;
};
// https://html.spec.whatwg.org/multipage/dom.html#showpopoveroptions
dictionary ShowPopoverOptions {
HTMLElement source;
};
// https://html.spec.whatwg.org/multipage/dom.html#togglepopoveroptions
dictionary TogglePopoverOptions : ShowPopoverOptions {
boolean force;
};
HTMLElement includes GlobalEventHandlers;
HTMLElement includes ElementContentEditable;
HTMLElement includes HTMLOrSVGElement;
// https://html.spec.whatwg.org/multipage/interaction.html#attr-enterkeyhint
enum EnterKeyHint {
"enter",
"done",
"go",
"next",
"previous",
"search",
"send"
};
// https://html.spec.whatwg.org/#attr-inputmode
enum InputMode {
"none",
"text",
"tel",
"url",
"email",
"numeric",
"decimal",
"search"
};
// https://html.spec.whatwg.org/#elementcontenteditable
interface mixin ElementContentEditable {
[CEReactions] attribute DOMString contentEditable;
[Reflect=enterkeyhint, Enumerated=EnterKeyHint, CEReactions] attribute DOMString enterKeyHint;
readonly attribute boolean isContentEditable;
[Reflect=inputmode, Enumerated=InputMode, CEReactions] attribute DOMString inputMode;
};
HTMLElement includes ElementCSSInlineStyle;