fix(types): improve e.detail type for dispatched events (#1907)

* fix(types): improve `e.detail` type for dispatched events

* Run "yarn build:docs"

* test: assert new types
This commit is contained in:
metonym 2024-02-01 07:56:34 -08:00 committed by GitHub
commit 6590457574
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 70 additions and 35 deletions

View file

@ -2151,9 +2151,9 @@ None.
### Events ### Events
| Event name | Type | Detail | | Event name | Type | Detail |
| :--------- | :--------- | :----- | | :--------- | :--------- | :------------------------------------------- |
| clear | dispatched | -- | | clear | dispatched | <code>KeyboardEvent &#124; MouseEvent</code> |
## `ListItem` ## `ListItem`
@ -3530,13 +3530,13 @@ None.
### Events ### Events
| Event name | Type | Detail | | Event name | Type | Detail |
| :--------- | :--------- | :----- | | :--------- | :--------- | :------------------ |
| click | forwarded | -- | | change | dispatched | <code>number</code> |
| mouseover | forwarded | -- | | click | forwarded | -- |
| mouseenter | forwarded | -- | | mouseover | forwarded | -- |
| mouseleave | forwarded | -- | | mouseenter | forwarded | -- |
| change | dispatched | -- | | mouseleave | forwarded | -- |
## `SliderSkeleton` ## `SliderSkeleton`
@ -3578,13 +3578,13 @@ None.
### Events ### Events
| Event name | Type | Detail | | Event name | Type | Detail |
| :--------- | :--------- | :----- | | :--------- | :--------- | :------------------ |
| click | forwarded | -- | | change | dispatched | <code>string</code> |
| mouseover | forwarded | -- | | click | forwarded | -- |
| mouseenter | forwarded | -- | | mouseover | forwarded | -- |
| mouseleave | forwarded | -- | | mouseenter | forwarded | -- |
| change | dispatched | -- | | mouseleave | forwarded | -- |
## `StructuredListBody` ## `StructuredListBody`
@ -3966,11 +3966,11 @@ None.
### Events ### Events
| Event name | Type | Detail | | Event name | Type | Detail |
| :--------- | :--------- | :----- | | :--------- | :--------- | :------------------ |
| keypress | forwarded | -- | | change | dispatched | <code>number</code> |
| click | forwarded | -- | | keypress | forwarded | -- |
| change | dispatched | -- | | click | forwarded | -- |
## `TabsSkeleton` ## `TabsSkeleton`

View file

@ -6294,7 +6294,13 @@
], ],
"moduleExports": [], "moduleExports": [],
"slots": [], "slots": [],
"events": [{ "type": "dispatched", "name": "clear" }], "events": [
{
"type": "dispatched",
"name": "clear",
"detail": "KeyboardEvent | MouseEvent"
}
],
"typedefs": [ "typedefs": [
{ {
"type": "\"clearAll\" | \"clearSelection\"", "type": "\"clearAll\" | \"clearSelection\"",
@ -11354,11 +11360,11 @@
} }
], ],
"events": [ "events": [
{ "type": "dispatched", "name": "change", "detail": "number" },
{ "type": "forwarded", "name": "click", "element": "div" }, { "type": "forwarded", "name": "click", "element": "div" },
{ "type": "forwarded", "name": "mouseover", "element": "div" }, { "type": "forwarded", "name": "mouseover", "element": "div" },
{ "type": "forwarded", "name": "mouseenter", "element": "div" }, { "type": "forwarded", "name": "mouseenter", "element": "div" },
{ "type": "forwarded", "name": "mouseleave", "element": "div" }, { "type": "forwarded", "name": "mouseleave", "element": "div" }
{ "type": "dispatched", "name": "change" }
], ],
"typedefs": [], "typedefs": [],
"rest_props": { "type": "Element", "name": "div" } "rest_props": { "type": "Element", "name": "div" }
@ -11446,11 +11452,11 @@
"moduleExports": [], "moduleExports": [],
"slots": [{ "name": "__default__", "default": true, "slot_props": "{}" }], "slots": [{ "name": "__default__", "default": true, "slot_props": "{}" }],
"events": [ "events": [
{ "type": "dispatched", "name": "change", "detail": "string" },
{ "type": "forwarded", "name": "click", "element": "div" }, { "type": "forwarded", "name": "click", "element": "div" },
{ "type": "forwarded", "name": "mouseover", "element": "div" }, { "type": "forwarded", "name": "mouseover", "element": "div" },
{ "type": "forwarded", "name": "mouseenter", "element": "div" }, { "type": "forwarded", "name": "mouseenter", "element": "div" },
{ "type": "forwarded", "name": "mouseleave", "element": "div" }, { "type": "forwarded", "name": "mouseleave", "element": "div" }
{ "type": "dispatched", "name": "change" }
], ],
"typedefs": [], "typedefs": [],
"rest_props": { "type": "Element", "name": "div" } "rest_props": { "type": "Element", "name": "div" }
@ -12245,9 +12251,9 @@
{ "name": "content", "default": false, "slot_props": "{}" } { "name": "content", "default": false, "slot_props": "{}" }
], ],
"events": [ "events": [
{ "type": "dispatched", "name": "change", "detail": "number" },
{ "type": "forwarded", "name": "keypress", "element": "div" }, { "type": "forwarded", "name": "keypress", "element": "div" },
{ "type": "forwarded", "name": "click", "element": "a" }, { "type": "forwarded", "name": "click", "element": "a" }
{ "type": "dispatched", "name": "change" }
], ],
"typedefs": [], "typedefs": [],
"rest_props": { "type": "Element", "name": "div" } "rest_props": { "type": "Element", "name": "div" }

View file

@ -1,4 +1,8 @@
<script> <script>
/**
* @event {KeyboardEvent | MouseEvent} clear
*/
/** /**
* @typedef {"clearAll" | "clearSelection"} ListBoxSelectionTranslationId * @typedef {"clearAll" | "clearSelection"} ListBoxSelectionTranslationId
*/ */

View file

@ -1,4 +1,8 @@
<script> <script>
/**
* @event {number} change
*/
/** Specify the value of the slider */ /** Specify the value of the slider */
export let value = 0; export let value = 0;

View file

@ -1,4 +1,8 @@
<script> <script>
/**
* @event {string} change
*/
/** /**
* Specify the selected structured list row value * Specify the selected structured list row value
* @type {string} * @type {string}

View file

@ -1,4 +1,8 @@
<script> <script>
/**
* @event {number} change
*/
/** Specify the selected tab index */ /** Specify the selected tab index */
export let selected = 0; export let selected = 0;

View file

@ -11,6 +11,9 @@
maxLabel="990 MB" maxLabel="990 MB"
value="{100}" value="{100}"
fullWidth fullWidth
on:change="{(e) => {
console.log(e.detail); // number
}}"
/> />
<Slider <Slider

View file

@ -11,7 +11,13 @@
import CheckmarkFilled from "carbon-icons-svelte/lib/CheckmarkFilled.svelte"; import CheckmarkFilled from "carbon-icons-svelte/lib/CheckmarkFilled.svelte";
</script> </script>
<StructuredList> <StructuredList
selection
selected="row-1-value"
on:change="{(e) => {
console.log(e.detail); // string
}}"
>
<StructuredListHead> <StructuredListHead>
<StructuredListRow head> <StructuredListRow head>
<StructuredListCell head>Column A</StructuredListCell> <StructuredListCell head>Column A</StructuredListCell>

View file

@ -2,7 +2,11 @@
import { Tabs, Tab, TabContent, TabsSkeleton } from "../types"; import { Tabs, Tab, TabContent, TabsSkeleton } from "../types";
</script> </script>
<Tabs> <Tabs
on:change="{(e) => {
console.log(e.detail); // number
}}"
>
<Tab label="Tab label 1" /> <Tab label="Tab label 1" />
<Tab label="Tab label 2" /> <Tab label="Tab label 2" />
<Tab label="Tab label 3" /> <Tab label="Tab label 3" />

View file

@ -35,7 +35,7 @@ export interface ListBoxSelectionProps extends RestProps {
export default class ListBoxSelection extends SvelteComponentTyped< export default class ListBoxSelection extends SvelteComponentTyped<
ListBoxSelectionProps, ListBoxSelectionProps,
{ clear: CustomEvent<any> }, { clear: CustomEvent<KeyboardEvent | MouseEvent> },
{} {}
> { > {
/** /**

View file

@ -126,11 +126,11 @@ export interface SliderProps extends RestProps {
export default class Slider extends SvelteComponentTyped< export default class Slider extends SvelteComponentTyped<
SliderProps, SliderProps,
{ {
change: CustomEvent<number>;
click: WindowEventMap["click"]; click: WindowEventMap["click"];
mouseover: WindowEventMap["mouseover"]; mouseover: WindowEventMap["mouseover"];
mouseenter: WindowEventMap["mouseenter"]; mouseenter: WindowEventMap["mouseenter"];
mouseleave: WindowEventMap["mouseleave"]; mouseleave: WindowEventMap["mouseleave"];
change: CustomEvent<any>;
}, },
{ labelText: {} } { labelText: {} }
> {} > {}

View file

@ -34,11 +34,11 @@ export interface StructuredListProps extends RestProps {
export default class StructuredList extends SvelteComponentTyped< export default class StructuredList extends SvelteComponentTyped<
StructuredListProps, StructuredListProps,
{ {
change: CustomEvent<string>;
click: WindowEventMap["click"]; click: WindowEventMap["click"];
mouseover: WindowEventMap["mouseover"]; mouseover: WindowEventMap["mouseover"];
mouseenter: WindowEventMap["mouseenter"]; mouseenter: WindowEventMap["mouseenter"];
mouseleave: WindowEventMap["mouseleave"]; mouseleave: WindowEventMap["mouseleave"];
change: CustomEvent<any>;
}, },
{ default: {} } { default: {} }
> {} > {}

View file

@ -40,9 +40,9 @@ export interface TabsProps extends RestProps {
export default class Tabs extends SvelteComponentTyped< export default class Tabs extends SvelteComponentTyped<
TabsProps, TabsProps,
{ {
change: CustomEvent<number>;
keypress: WindowEventMap["keypress"]; keypress: WindowEventMap["keypress"];
click: WindowEventMap["click"]; click: WindowEventMap["click"];
change: CustomEvent<any>;
}, },
{ default: {}; content: {} } { default: {}; content: {} }
> {} > {}