Skip to content

Commit 32772b4

Browse files
navoritedummdidumm
andauthored
fix: add types for popover attributes and events (#10042)
#10041 for svelte 4 --------- Co-authored-by: Simon H <[email protected]>
1 parent 331d909 commit 32772b4

File tree

2 files changed

+17
-5
lines changed

2 files changed

+17
-5
lines changed

.changeset/eight-swans-occur.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'svelte': patch
3+
---
4+
5+
fix: add types for popover attributes and events

packages/svelte/elements.d.ts

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@ export type WheelEventHandler<T extends EventTarget> = EventHandler<WheelEvent,
5959
export type AnimationEventHandler<T extends EventTarget> = EventHandler<AnimationEvent, T>;
6060
export type TransitionEventHandler<T extends EventTarget> = EventHandler<TransitionEvent, T>;
6161
export type MessageEventHandler<T extends EventTarget> = EventHandler<MessageEvent, T>;
62+
export type ToggleEventHandler<T extends EventTarget> = EventHandler<ToggleEvent, T>;
6263

6364
//
6465
// DOM Attributes
@@ -94,8 +95,9 @@ export interface DOMAttributes<T extends EventTarget> {
9495
'on:load'?: EventHandler | undefined | null;
9596
'on:error'?: EventHandler | undefined | null; // also a Media Event
9697

97-
// Detail Events
98-
'on:toggle'?: EventHandler<Event, T> | undefined | null;
98+
// Popover Events
99+
'on:beforetoggle'?: ToggleEventHandler<T> | undefined | null;
100+
'on:toggle'?: ToggleEventHandler<T> | undefined | null;
99101

100102
// Keyboard Events
101103
'on:keydown'?: KeyboardEventHandler<T> | undefined | null;
@@ -517,6 +519,7 @@ export interface HTMLAttributes<T extends EventTarget> extends AriaAttributes, D
517519
title?: string | undefined | null;
518520
translate?: 'yes' | 'no' | '' | undefined | null;
519521
inert?: boolean | undefined | null;
522+
popover?: 'auto' | 'manual' | '' | undefined | null;
520523

521524
// Unknown
522525
radiogroup?: string | undefined | null; // <command>, <menuitem>
@@ -584,9 +587,9 @@ export interface HTMLAttributes<T extends EventTarget> extends AriaAttributes, D
584587
'bind:innerText'?: string | undefined | null;
585588

586589
readonly 'bind:contentRect'?: DOMRectReadOnly | undefined | null;
587-
readonly 'bind:contentBoxSize'?: Array<ResizeObserverSize> | undefined | null;
588-
readonly 'bind:borderBoxSize'?: Array<ResizeObserverSize> | undefined | null;
589-
readonly 'bind:devicePixelContentBoxSize'?: Array<ResizeObserverSize> | undefined | null;
590+
readonly 'bind:contentBoxSize'?: ResizeObserverSize[] | undefined | null;
591+
readonly 'bind:borderBoxSize'?: ResizeObserverSize[] | undefined | null;
592+
readonly 'bind:devicePixelContentBoxSize'?: ResizeObserverSize[] | undefined | null;
590593

591594
// SvelteKit
592595
'data-sveltekit-keepfocus'?: true | '' | 'off' | undefined | null;
@@ -663,6 +666,8 @@ export interface HTMLButtonAttributes extends HTMLAttributes<HTMLButtonElement>
663666
name?: string | undefined | null;
664667
type?: 'submit' | 'reset' | 'button' | undefined | null;
665668
value?: string | string[] | number | undefined | null;
669+
popovertarget?: string | undefined | null;
670+
popovertargetaction?: 'toggle' | 'show' | 'hide' | undefined | null;
666671
}
667672

668673
export interface HTMLCanvasAttributes extends HTMLAttributes<HTMLCanvasElement> {
@@ -687,6 +692,8 @@ export interface HTMLDetailsAttributes extends HTMLAttributes<HTMLDetailsElement
687692
open?: boolean | undefined | null;
688693

689694
'bind:open'?: boolean | undefined | null;
695+
696+
'on:toggle'?: EventHandler<Event, HTMLDetailsElement> | undefined | null;
690697
}
691698

692699
export interface HTMLDelAttributes extends HTMLAttributes<HTMLModElement> {

0 commit comments

Comments
 (0)