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
+
+
+
+
+