From 3a22ca056fc2713495ec473227dff9f1e5a483f2 Mon Sep 17 00:00:00 2001 From: mryunt02 Date: Sat, 19 Oct 2024 01:38:22 +0300 Subject: [PATCH] feat(checkbox): Add keyboard handling for Enter and Space keys to toggle checked state --- src/components/checkbox-group/checkbox/bl-checkbox.ts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/components/checkbox-group/checkbox/bl-checkbox.ts b/src/components/checkbox-group/checkbox/bl-checkbox.ts index be401c3c..110ba825 100644 --- a/src/components/checkbox-group/checkbox/bl-checkbox.ts +++ b/src/components/checkbox-group/checkbox/bl-checkbox.ts @@ -177,6 +177,13 @@ export default class BlCheckbox extends FormControlMixin(LitElement) { private handleFieldValueChange = (event: CustomEvent>) => { this.checked = event.detail.includes(this.value); }; + private handleKeyDown(event: KeyboardEvent) { + if (event.code === "Enter" || event.code === "Space") { + this.checked = !this.checked; + this.onChange(this.checked); + event.preventDefault(); + } + } render(): TemplateResult { let icon = ""; @@ -206,6 +213,7 @@ export default class BlCheckbox extends FormControlMixin(LitElement) { aria-readonly=${this.disabled} .indeterminate=${this.indeterminate} @change=${this.handleChange} + @keydown=${this.handleKeyDown} value=${ifDefined(this.value)} @blur=${this.blur} />