Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions src/jsx.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,24 @@ interface ToggleEventInit extends EventInit {

// End TS >5.2

/** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/CommandEvent) */
interface CommandEvent extends Event {
/** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/CommandEvent/source) */
readonly source: Element | null;
/** [MDN Reference](https://developer.mozilla.org/en-US/docs/Web/API/CommandEvent/command) */
readonly command: string;
}

declare var CommandEvent: {
prototype: CommandEvent;
new(type: string, eventInitDict?: CommandEventInit): CommandEvent;
};

interface CommandEventInit extends EventInit {
source: Element | null;
command: string;
}

export namespace JSXInternal {
export type LibraryManagedAttributes<Component, Props> = Component extends {
defaultProps: infer Defaults;
Expand Down Expand Up @@ -496,6 +514,8 @@ export namespace JSXInternal {
TargetedEvent<Target, AnimationEvent>;
export type TargetedClipboardEvent<Target extends EventTarget> =
TargetedEvent<Target, ClipboardEvent>;
export type TargetedCommandEvent<Target extends EventTarget> =
TargetedEvent<Target, CommandEvent>;
export type TargetedCompositionEvent<Target extends EventTarget> =
TargetedEvent<Target, CompositionEvent>;
export type TargetedDragEvent<Target extends EventTarget> = TargetedEvent<
Expand Down Expand Up @@ -557,6 +577,8 @@ export namespace JSXInternal {
export type ClipboardEventHandler<Target extends EventTarget> = EventHandler<
TargetedClipboardEvent<Target>
>;
export type CommandEventHandler<Target extends EventTarget> =
TargetedCommandEvent<Target>
export type CompositionEventHandler<Target extends EventTarget> =
EventHandler<TargetedCompositionEvent<Target>>;
export type DragEventHandler<Target extends EventTarget> = EventHandler<
Expand Down Expand Up @@ -828,6 +850,8 @@ export namespace JSXInternal {
onLeavePictureInPictureCapture?: PictureInPictureEventHandler<Target>;
onResize?: PictureInPictureEventHandler<Target>;
onResizeCapture?: PictureInPictureEventHandler<Target>;

onCommand?: CommandEventHandler<Target>
}

// All the WAI-ARIA 1.1 attributes from https://www.w3.org/TR/wai-aria-1.1/
Expand Down Expand Up @@ -1622,6 +1646,9 @@ export namespace JSXInternal {

interface ButtonHTMLAttributes<T extends EventTarget = HTMLButtonElement>
extends HTMLAttributes<T> {
command?: Signalish<string | undefined>;
commandfor?: Signalish<string | undefined>;
commandFor?: Signalish<string | undefined>;
disabled?: Signalish<boolean | undefined>;
form?: Signalish<string | undefined>;
formaction?: Signalish<string | undefined>;
Expand Down
Loading