Skip to content

Commit e788665

Browse files
authored
expose additional events (#124)
1 parent c410155 commit e788665

File tree

4 files changed

+31
-3
lines changed

4 files changed

+31
-3
lines changed
+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"bits-ui": patch
3+
---
4+
5+
expose additional events

src/lib/bits/select/components/SelectContent.svelte

+5-1
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
use:melt={builder}
4040
{...$$restProps}
4141
on:m-pointerleave={dispatch}
42+
on:keydown
4243
>
4344
<slot {builder} />
4445
</div>
@@ -50,6 +51,7 @@
5051
use:melt={builder}
5152
{...$$restProps}
5253
on:m-pointerleave={dispatch}
54+
on:keydown
5355
>
5456
<slot {builder} />
5557
</div>
@@ -60,6 +62,7 @@
6062
use:melt={builder}
6163
{...$$restProps}
6264
on:m-pointerleave={dispatch}
65+
on:keydown
6366
>
6467
<slot {builder} />
6568
</div>
@@ -70,12 +73,13 @@
7073
use:melt={builder}
7174
{...$$restProps}
7275
on:m-pointerleave={dispatch}
76+
on:keydown
7377
>
7478
<slot {builder} />
7579
</div>
7680
{:else if $open}
7781
{@const builder = $menu}
78-
<div use:melt={builder} {...$$restProps} on:m-pointerleave={dispatch}>
82+
<div use:melt={builder} {...$$restProps} on:m-pointerleave={dispatch} on:keydown>
7983
<slot {builder} />
8084
</div>
8185
{/if}

src/lib/bits/select/components/SelectItem.svelte

+10-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,16 @@
2323
<slot builder={$option({ value, disabled, label })} />
2424
{:else}
2525
{@const builder = $option({ value, disabled, label })}
26-
<div use:melt={builder} {...$$restProps} on:m-click={dispatch} on:m-pointermove={dispatch}>
26+
<div
27+
use:melt={builder}
28+
{...$$restProps}
29+
on:m-click={dispatch}
30+
on:m-pointermove={dispatch}
31+
on:focusin
32+
on:keydown
33+
on:focusout
34+
on:pointerleave
35+
>
2736
<slot {builder}>
2837
{label ? label : value}
2938
</slot>

src/lib/bits/select/types.ts

+11-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,12 @@ import type {
88
Transition,
99
TransitionProps
1010
} from "$lib/internal/index.js";
11-
import type { HTMLAttributes, HTMLButtonAttributes, HTMLInputAttributes } from "svelte/elements";
11+
import type {
12+
EventHandler,
13+
HTMLAttributes,
14+
HTMLButtonAttributes,
15+
HTMLInputAttributes
16+
} from "svelte/elements";
1217
import type { CustomEventHandler } from "$lib/index.js";
1318

1419
type Props = Expand<
@@ -51,6 +56,10 @@ type ArrowProps = Expand<
5156
type ItemEvents<T extends Element = HTMLDivElement> = {
5257
click: CustomEventHandler<MouseEvent, T>;
5358
pointermove: CustomEventHandler<PointerEvent, T>;
59+
focusin: EventHandler<FocusEvent, T>;
60+
keydown: EventHandler<KeyboardEvent, T>;
61+
focusout: EventHandler<FocusEvent, T>;
62+
pointerleave: EventHandler<PointerEvent, T>;
5463
};
5564

5665
type TriggerEvents<T extends Element = HTMLButtonElement> = {
@@ -63,6 +72,7 @@ type LabelEvents<T extends Element = HTMLSpanElement> = {
6372
};
6473
type ContentEvents<T extends Element = HTMLDivElement> = {
6574
pointerleave: CustomEventHandler<PointerEvent, T>;
75+
keydown: EventHandler<KeyboardEvent, T>;
6676
};
6777

6878
export type {

0 commit comments

Comments
 (0)