Skip to content

Commit ac13da9

Browse files
loivseniOvergaard
authored andcommitted
MultipleColorPicker: Tab behaviour and new line on enter
1 parent 88b356c commit ac13da9

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

src/packages/core/components/multiple-color-picker-input/multiple-color-picker-input.element.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ export class UmbMultipleColorPickerInputElement extends UUIFormControlMixin(UmbL
175175
<div id="sorter-wrapper">
176176
${repeat(
177177
this._items,
178-
(item) => item.value,
178+
(item, index) => index,
179179
(item, index) => html`
180180
<umb-multiple-color-picker-item-input
181181
label=${item.label}
@@ -185,6 +185,7 @@ export class UmbMultipleColorPickerInputElement extends UUIFormControlMixin(UmbL
185185
?disabled=${this.disabled}
186186
?readonly=${this.readonly}
187187
?showLabels=${this.showLabels}
188+
@enter=${this.#onAdd}
188189
@change=${(event: UmbChangeEvent) => this.#onChange(event, index)}
189190
@delete=${(event: UmbDeleteEvent) => this.#deleteItem(event, index)}>
190191
</umb-multiple-color-picker-item-input>

src/packages/core/components/multiple-color-picker-input/multiple-color-picker-item-input.element.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,25 @@ export class UmbMultipleColorPickerItemInputElement extends UUIFormControlMixin(
8484
this.dispatchEvent(new UmbInputEvent());
8585
}
8686

87+
#onLabelKeydown(event: KeyboardEvent) {
88+
event.stopPropagation();
89+
const target = event.currentTarget as UUIInputElement;
90+
if (event.key === 'Enter' && target.value) {
91+
this.dispatchEvent(new CustomEvent('enter'));
92+
}
93+
}
94+
8795
#onLabelChange(event: UUIInputEvent) {
8896
event.stopPropagation();
8997
this.label = event.target.value as string;
9098
this.dispatchEvent(new UmbChangeEvent());
9199
}
92100

101+
#onValueKeydown(event: KeyboardEvent) {
102+
event.stopPropagation();
103+
if (event.key === 'Enter') this.#onColorClick();
104+
}
105+
93106
#onValueChange(event: UUIInputEvent) {
94107
event.stopPropagation();
95108
this.value = event.target.value as string;
@@ -145,6 +158,7 @@ export class UmbMultipleColorPickerItemInputElement extends UUIFormControlMixin(
145158
placeholder=${this.localize.term('general_value')}
146159
required=${this.required}
147160
required-message="Value is missing"
161+
@keydown=${this.#onValueKeydown}
148162
@input=${this.#onValueInput}
149163
@change=${this.#onValueChange}>
150164
<uui-color-swatch
@@ -162,6 +176,7 @@ export class UmbMultipleColorPickerItemInputElement extends UUIFormControlMixin(
162176
label=${this.localize.term('placeholders_label')}
163177
placeholder=${this.localize.term('placeholders_label')}
164178
value=${ifDefined(this.label)}
179+
@keydown=${this.#onLabelKeydown}
165180
@input="${this.#onLabelInput}"
166181
@change="${this.#onLabelChange}"
167182
?disabled=${this.disabled}
@@ -210,6 +225,12 @@ export class UmbMultipleColorPickerItemInputElement extends UUIFormControlMixin(
210225
padding: var(--uui-size-1);
211226
}
212227
228+
uui-color-swatch:focus-within {
229+
outline: 2px solid var(--uui-color-selected);
230+
outline-offset: 0;
231+
border-radius: var(--uui-border-radius);
232+
}
233+
213234
.color-wrapper {
214235
position: relative;
215236
flex: 1;

0 commit comments

Comments
 (0)