diff --git a/packages/runtime-dom/src/jsx.ts b/packages/runtime-dom/src/jsx.ts index 5292441cde9..06cb8c19b5b 100644 --- a/packages/runtime-dom/src/jsx.ts +++ b/packages/runtime-dom/src/jsx.ts @@ -304,6 +304,8 @@ export interface HTMLAttributes extends AriaAttributes, EventHandlers<Events> { security?: string unselectable?: 'on' | 'off' + popover?: '' | 'auto' | 'manual' + // Living Standard /** * Hints at the type of data that might be entered by the user while editing the element or its contents @@ -382,6 +384,8 @@ export interface ButtonHTMLAttributes extends HTMLAttributes { formnovalidate?: Booleanish formtarget?: string name?: string + popovertarget?: string + popovertargetaction?: 'hide' | 'show' | 'toggle' type?: 'submit' | 'reset' | 'button' value?: string | ReadonlyArray<string> | number } @@ -407,7 +411,6 @@ export interface DataHTMLAttributes extends HTMLAttributes { export interface DetailsHTMLAttributes extends HTMLAttributes { name?: string open?: Booleanish - onToggle?: (payload: ToggleEvent) => void } export interface DelHTMLAttributes extends HTMLAttributes { @@ -417,6 +420,7 @@ export interface DelHTMLAttributes extends HTMLAttributes { export interface DialogHTMLAttributes extends HTMLAttributes { open?: Booleanish + onCancel?: (payload: Event) => void onClose?: (payload: Event) => void } @@ -549,6 +553,8 @@ export interface InputHTMLAttributes extends HTMLAttributes { name?: string pattern?: string placeholder?: string + popovertarget?: string + popovertargetaction?: 'toggle' | 'show' | 'hide' readonly?: Booleanish required?: Booleanish size?: Numberish @@ -1382,6 +1388,10 @@ export interface Events { // transition events onTransitionend: TransitionEvent onTransitionstart: TransitionEvent + + // Toggle Events + onToggle?: ToggleEvent + onBeforetoggle?: ToggleEvent } type EventHandlers<E> = { diff --git a/packages/shared/src/domAttrConfig.ts b/packages/shared/src/domAttrConfig.ts index b5f0166327f..39a21ce174f 100644 --- a/packages/shared/src/domAttrConfig.ts +++ b/packages/shared/src/domAttrConfig.ts @@ -71,7 +71,8 @@ export const isKnownHtmlAttr: (key: string) => boolean = /*@__PURE__*/ makeMap( `height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,` + `ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,` + `manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,` + - `open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,` + + `open,optimum,pattern,ping,placeholder,popover,popovertarget,popovertargetaction,` + + `poster,preload,radiogroup,readonly,` + `referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,` + `selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,` + `start,step,style,summary,tabindex,target,title,translate,type,usemap,` +