diff --git a/COMPONENT_INDEX.md b/COMPONENT_INDEX.md
index 43037eb1..42c32a27 100644
--- a/COMPONENT_INDEX.md
+++ b/COMPONENT_INDEX.md
@@ -1008,6 +1008,7 @@ export interface DataTableCell {
| mouseenter:row | dispatched | DataTableRow
|
| mouseleave:row | dispatched | DataTableRow
|
| click:row--expand | dispatched | { expanded: boolean; row: DataTableRow; }
|
+| click:row--select | dispatched | { selected: boolean; row: DataTableRow; }
|
| click:cell | dispatched | DataTableCell
|
## `DataTableSkeleton`
diff --git a/docs/src/COMPONENT_API.json b/docs/src/COMPONENT_API.json
index 13b1ae4e..c4024a81 100644
--- a/docs/src/COMPONENT_API.json
+++ b/docs/src/COMPONENT_API.json
@@ -2663,6 +2663,11 @@
"name": "click:row--expand",
"detail": "{ expanded: boolean; row: DataTableRow; }"
},
+ {
+ "type": "dispatched",
+ "name": "click:row--select",
+ "detail": "{ selected: boolean; row: DataTableRow; }"
+ },
{
"type": "dispatched",
"name": "click:cell",
diff --git a/src/DataTable/DataTable.svelte b/src/DataTable/DataTable.svelte
index fa90873f..32ab17a6 100644
--- a/src/DataTable/DataTable.svelte
+++ b/src/DataTable/DataTable.svelte
@@ -18,6 +18,7 @@
* @event {DataTableRow} mouseenter:row
* @event {DataTableRow} mouseleave:row
* @event {{ expanded: boolean; row: DataTableRow; }} click:row--expand
+ * @event {{ selected: boolean; row: DataTableRow; }} click:row--select
* @event {DataTableCell} click:cell
* @restProps {div}
*/
@@ -440,6 +441,7 @@
checked="{selectedRowIds.includes(row.id)}"
on:change="{() => {
selectedRowIds = [row.id];
+ dispatch('click:row--select', { row, selected: true });
}}"
/>
{:else}
@@ -451,8 +453,10 @@
selectedRowIds = selectedRowIds.filter(
(id) => id !== row.id
);
+ dispatch('click:row--select', { row, selected: false });
} else {
selectedRowIds = [...selectedRowIds, row.id];
+ dispatch('click:row--select', { row, selected: true });
}
}}"
/>
diff --git a/types/DataTable/DataTable.svelte.d.ts b/types/DataTable/DataTable.svelte.d.ts
index e3be8ebf..67ba8eda 100644
--- a/types/DataTable/DataTable.svelte.d.ts
+++ b/types/DataTable/DataTable.svelte.d.ts
@@ -198,6 +198,10 @@ export default class DataTable extends SvelteComponentTyped<
expanded: boolean;
row: DataTableRow;
}>;
+ ["click:row--select"]: CustomEvent<{
+ selected: boolean;
+ row: DataTableRow;
+ }>;
["click:cell"]: CustomEvent;
},
{