From 3c0ec02a3eecf661f9979f1a7f97fda9cebc3ed7 Mon Sep 17 00:00:00 2001 From: tshimber Date: Fri, 9 Aug 2024 14:44:15 +0200 Subject: [PATCH] fix: focus issues fixed --- .../components/src/components/chip/chip.css | 3 +-- .../components/src/components/chip/chip.tsx | 22 ++++++------------- packages/components/src/html/chip.html | 17 +++++++++++++- 3 files changed, 24 insertions(+), 18 deletions(-) diff --git a/packages/components/src/components/chip/chip.css b/packages/components/src/components/chip/chip.css index fcb70553fd..7df0bc37fb 100644 --- a/packages/components/src/components/chip/chip.css +++ b/packages/components/src/components/chip/chip.css @@ -85,8 +85,7 @@ color: var(--telekom-color-text-and-icon-inverted-standard); } -.chip:not(.chip--disabled):not(.chip--type-dynamic):focus, -.chip.chip--type-dynamic:not(.chip--selected):focus { +.chip:not(.chip--disabled):focus { outline: var(--telekom-spacing-composition-space-02) solid var(--color-focus); outline-offset: var(--telekom-spacing-composition-space-01); } diff --git a/packages/components/src/components/chip/chip.tsx b/packages/components/src/components/chip/chip.tsx index 9c09984363..4f2650f4ab 100644 --- a/packages/components/src/components/chip/chip.tsx +++ b/packages/components/src/components/chip/chip.tsx @@ -32,7 +32,7 @@ export class Chip { /** (optional) */ @Prop() type?: 'dynamic' | 'persistent' = 'persistent'; /** (optional) */ - @Prop() selected?: boolean = false; + @Prop({ mutable: true }) selected?: boolean = false; /** (optional) chip aria-role */ @Prop() ariaRoleTitle?: | 'switch' @@ -52,7 +52,7 @@ export class Chip { /** (optional) Injected CSS styles */ @Prop() styles?: string; - /** (optional) Change icon click event */ + /** (optional) Change event */ @Event({ eventName: 'scale-change' }) scaleChange: EventEmitter; /** @deprecated in v3 in favor of kebab-case event names */ @Event({ eventName: 'scaleChange' }) @@ -87,34 +87,26 @@ export class Chip { handleClose = (event: MouseEvent) => { event.preventDefault(); event.stopPropagation(); - if (this.disabled && this.type !== 'dynamic') { - return; - } emitEvent(this, 'scaleClose', event); }; handleClick = (event: MouseEvent) => { - this.handleChangeEvent(event); + this.handleChange(event); }; handleKeyDown = (event: KeyboardEvent) => { if (event.code === 'Space') { - this.handleChangeEvent(event); + this.handleChange(event); } }; - handleChangeEvent = (event: MouseEvent | KeyboardEvent): void => { - if (this.disabled && this.type === 'dynamic') { - return; - } - if (this.type !== 'dynamic') { - this.selected = !this.selected; - } + handleChange = (event: MouseEvent | KeyboardEvent): void => { event.preventDefault(); event.stopPropagation(); - if (this.disabled && this.type !== 'dynamic') { + if (this.disabled || this.type === 'dynamic') { return; } + this.selected = !this.selected; emitEvent(this, 'scaleChange', event); }; diff --git a/packages/components/src/html/chip.html b/packages/components/src/html/chip.html index f66dbad16d..99105f5fa8 100644 --- a/packages/components/src/html/chip.html +++ b/packages/components/src/html/chip.html @@ -29,8 +29,23 @@ Label Label Label - Label Label

+ + Label +
+ +
+
+
+

+ Label + + + + +