@solid-design-system/components 3.22.17 → 3.23.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/es/combobox.js +11 -0
- package/dist/components/es/map-marker.js +1 -1
- package/dist/components/es/optgroup.js +1 -0
- package/dist/components/es/option-renderer.js +1 -0
- package/dist/components/es/select.js +7 -3
- package/dist/components/es/solid-components2.js +7 -7
- package/dist/components/es/utils.js +1 -0
- package/dist/components/umd/solid-components.js +37 -23
- package/dist/custom-elements.json +1 -1
- package/dist/package/components/combobox/combobox.d.ts +129 -0
- package/dist/package/components/combobox/combobox.js +958 -0
- package/dist/package/components/combobox/option-renderer.d.ts +5 -0
- package/dist/package/components/combobox/option-renderer.js +4 -0
- package/dist/package/components/combobox/utils.d.ts +8 -0
- package/dist/package/components/combobox/utils.js +14 -0
- package/dist/package/components/optgroup/optgroup.d.ts +20 -0
- package/dist/package/components/optgroup/optgroup.js +68 -0
- package/dist/package/components/select/select.d.ts +6 -1
- package/dist/package/components/select/select.js +100 -30
- package/dist/package/solid-components.d.ts +2 -0
- package/dist/package/solid-components.js +74 -70
- package/dist/package/styles/tailwind.css.js +1 -1
- package/dist/package/translations/de.js +8 -4
- package/dist/package/translations/en.js +8 -4
- package/dist/package/utilities/localize.d.ts +4 -0
- package/dist/versioned-components/es/accordion-group.js +1 -1
- package/dist/versioned-components/es/accordion.js +1 -1
- package/dist/versioned-components/es/audio.js +1 -1
- package/dist/versioned-components/es/badge.js +1 -1
- package/dist/versioned-components/es/brandshape.js +1 -1
- package/dist/versioned-components/es/button.js +1 -1
- package/dist/versioned-components/es/carousel-item.js +1 -1
- package/dist/versioned-components/es/carousel.js +3 -3
- package/dist/versioned-components/es/checkbox-group.js +1 -1
- package/dist/versioned-components/es/checkbox.js +1 -1
- package/dist/versioned-components/es/combobox.js +11 -0
- package/dist/versioned-components/es/dialog.js +1 -1
- package/dist/versioned-components/es/divider.js +1 -1
- package/dist/versioned-components/es/drawer.js +1 -1
- package/dist/versioned-components/es/dropdown.js +1 -1
- package/dist/versioned-components/es/expandable.js +1 -1
- package/dist/versioned-components/es/flipcard.js +1 -1
- package/dist/versioned-components/es/form.js +1 -1
- package/dist/versioned-components/es/header.js +1 -1
- package/dist/versioned-components/es/icon.js +1 -1
- package/dist/versioned-components/es/include.js +1 -1
- package/dist/versioned-components/es/input.js +1 -1
- package/dist/versioned-components/es/link.js +1 -1
- package/dist/versioned-components/es/map-marker.js +1 -1
- package/dist/versioned-components/es/navigation-item.js +1 -1
- package/dist/versioned-components/es/notification.js +1 -1
- package/dist/versioned-components/es/optgroup.js +1 -0
- package/dist/versioned-components/es/option-renderer.js +1 -0
- package/dist/versioned-components/es/option.js +1 -1
- package/dist/versioned-components/es/quickfact.js +1 -1
- package/dist/versioned-components/es/radio-button.js +1 -1
- package/dist/versioned-components/es/radio-group.js +1 -1
- package/dist/versioned-components/es/radio.js +1 -1
- package/dist/versioned-components/es/scrollable.js +1 -1
- package/dist/versioned-components/es/select.js +7 -3
- package/dist/versioned-components/es/solid-components2.js +7 -7
- package/dist/versioned-components/es/spinner.js +1 -1
- package/dist/versioned-components/es/step-group.js +1 -1
- package/dist/versioned-components/es/step.js +1 -1
- package/dist/versioned-components/es/switch.js +1 -1
- package/dist/versioned-components/es/tab-group.js +1 -1
- package/dist/versioned-components/es/tab-panel.js +1 -1
- package/dist/versioned-components/es/tab.js +1 -1
- package/dist/versioned-components/es/tag.js +1 -1
- package/dist/versioned-components/es/teaser-media.js +1 -1
- package/dist/versioned-components/es/teaser.js +1 -1
- package/dist/versioned-components/es/textarea.js +1 -1
- package/dist/versioned-components/es/tooltip.js +2 -2
- package/dist/versioned-components/es/utils.js +1 -0
- package/dist/versioned-components/es/video.js +1 -1
- package/dist/versioned-package/_components/button-group/button-group.d.ts +1 -1
- package/dist/versioned-package/_components/button-group/button-group.js +11 -11
- package/dist/versioned-package/components/accordion/accordion.d.ts +1 -1
- package/dist/versioned-package/components/accordion/accordion.js +2 -2
- package/dist/versioned-package/components/accordion-group/accordion-group.d.ts +1 -1
- package/dist/versioned-package/components/accordion-group/accordion-group.js +3 -3
- package/dist/versioned-package/components/audio/audio.d.ts +1 -1
- package/dist/versioned-package/components/audio/audio.js +6 -6
- package/dist/versioned-package/components/badge/badge.d.ts +1 -1
- package/dist/versioned-package/components/badge/badge.js +1 -1
- package/dist/versioned-package/components/brandshape/brandshape.d.ts +1 -1
- package/dist/versioned-package/components/brandshape/brandshape.js +1 -1
- package/dist/versioned-package/components/button/button.d.ts +1 -1
- package/dist/versioned-package/components/button/button.js +4 -4
- package/dist/versioned-package/components/carousel/carousel.d.ts +1 -1
- package/dist/versioned-package/components/carousel/carousel.js +6 -6
- package/dist/versioned-package/components/carousel-item/carousel-item.d.ts +1 -1
- package/dist/versioned-package/components/carousel-item/carousel-item.js +1 -1
- package/dist/versioned-package/components/checkbox/checkbox.d.ts +1 -1
- package/dist/versioned-package/components/checkbox/checkbox.js +3 -3
- package/dist/versioned-package/components/checkbox-group/checkbox-group.d.ts +1 -1
- package/dist/versioned-package/components/checkbox-group/checkbox-group.js +5 -5
- package/dist/versioned-package/components/combobox/combobox.d.ts +129 -0
- package/dist/versioned-package/components/combobox/combobox.js +958 -0
- package/dist/versioned-package/components/combobox/option-renderer.d.ts +5 -0
- package/dist/versioned-package/components/combobox/option-renderer.js +4 -0
- package/dist/versioned-package/components/combobox/utils.d.ts +8 -0
- package/dist/versioned-package/components/combobox/utils.js +14 -0
- package/dist/versioned-package/components/dialog/dialog.d.ts +1 -1
- package/dist/versioned-package/components/dialog/dialog.js +2 -2
- package/dist/versioned-package/components/divider/divider.d.ts +1 -1
- package/dist/versioned-package/components/divider/divider.js +2 -2
- package/dist/versioned-package/components/drawer/drawer.d.ts +1 -1
- package/dist/versioned-package/components/drawer/drawer.js +2 -2
- package/dist/versioned-package/components/dropdown/dropdown.d.ts +1 -1
- package/dist/versioned-package/components/dropdown/dropdown.js +8 -8
- package/dist/versioned-package/components/expandable/expandable.d.ts +1 -1
- package/dist/versioned-package/components/expandable/expandable.js +2 -2
- package/dist/versioned-package/components/flipcard/flipcard.d.ts +1 -1
- package/dist/versioned-package/components/flipcard/flipcard.js +1 -1
- package/dist/versioned-package/components/header/header.d.ts +1 -1
- package/dist/versioned-package/components/header/header.js +4 -4
- package/dist/versioned-package/components/icon/icon.d.ts +1 -1
- package/dist/versioned-package/components/icon/icon.js +1 -1
- package/dist/versioned-package/components/include/include.d.ts +1 -1
- package/dist/versioned-package/components/include/include.js +1 -1
- package/dist/versioned-package/components/input/input.d.ts +1 -1
- package/dist/versioned-package/components/input/input.js +3 -3
- package/dist/versioned-package/components/link/link.d.ts +1 -1
- package/dist/versioned-package/components/link/link.js +2 -2
- package/dist/versioned-package/components/map-marker/map-marker.d.ts +1 -1
- package/dist/versioned-package/components/map-marker/map-marker.js +1 -1
- package/dist/versioned-package/components/navigation-item/navigation-item.d.ts +1 -1
- package/dist/versioned-package/components/navigation-item/navigation-item.js +5 -5
- package/dist/versioned-package/components/notification/notification.d.ts +1 -1
- package/dist/versioned-package/components/notification/notification.js +5 -5
- package/dist/versioned-package/components/optgroup/optgroup.d.ts +20 -0
- package/dist/versioned-package/components/optgroup/optgroup.js +68 -0
- package/dist/versioned-package/components/option/option.d.ts +1 -1
- package/dist/versioned-package/components/option/option.js +2 -2
- package/dist/versioned-package/components/popup/popup.d.ts +1 -1
- package/dist/versioned-package/components/popup/popup.js +1 -1
- package/dist/versioned-package/components/quickfact/quickfact.d.ts +1 -1
- package/dist/versioned-package/components/quickfact/quickfact.js +2 -2
- package/dist/versioned-package/components/radio/radio.d.ts +1 -1
- package/dist/versioned-package/components/radio/radio.js +2 -2
- package/dist/versioned-package/components/radio-button/radio-button.d.ts +1 -1
- package/dist/versioned-package/components/radio-button/radio-button.js +2 -2
- package/dist/versioned-package/components/radio-group/radio-group.d.ts +2 -2
- package/dist/versioned-package/components/radio-group/radio-group.js +13 -13
- package/dist/versioned-package/components/scrollable/scrollable.d.ts +1 -1
- package/dist/versioned-package/components/scrollable/scrollable.js +3 -3
- package/dist/versioned-package/components/select/select.d.ts +10 -5
- package/dist/versioned-package/components/select/select.js +121 -51
- package/dist/versioned-package/components/spinner/spinner.d.ts +1 -1
- package/dist/versioned-package/components/spinner/spinner.js +1 -1
- package/dist/versioned-package/components/step/step.d.ts +1 -1
- package/dist/versioned-package/components/step/step.js +2 -2
- package/dist/versioned-package/components/step-group/step-group.d.ts +1 -1
- package/dist/versioned-package/components/step-group/step-group.js +2 -2
- package/dist/versioned-package/components/switch/switch.d.ts +1 -1
- package/dist/versioned-package/components/switch/switch.js +1 -1
- package/dist/versioned-package/components/tab/tab.d.ts +1 -1
- package/dist/versioned-package/components/tab/tab.js +2 -2
- package/dist/versioned-package/components/tab-group/tab-group.d.ts +1 -1
- package/dist/versioned-package/components/tab-group/tab-group.js +13 -13
- package/dist/versioned-package/components/tab-panel/tab-panel.d.ts +1 -1
- package/dist/versioned-package/components/tab-panel/tab-panel.js +2 -2
- package/dist/versioned-package/components/tag/tag.d.ts +1 -1
- package/dist/versioned-package/components/tag/tag.js +2 -2
- package/dist/versioned-package/components/teaser/teaser.js +1 -1
- package/dist/versioned-package/components/teaser-media/teaser-media.js +1 -1
- package/dist/versioned-package/components/textarea/textarea.d.ts +1 -1
- package/dist/versioned-package/components/textarea/textarea.js +2 -2
- package/dist/versioned-package/components/tooltip/tooltip.d.ts +1 -1
- package/dist/versioned-package/components/tooltip/tooltip.js +5 -5
- package/dist/versioned-package/components/video/video.d.ts +1 -1
- package/dist/versioned-package/components/video/video.js +2 -2
- package/dist/versioned-package/internal/form.js +3 -3
- package/dist/versioned-package/solid-components.d.ts +2 -0
- package/dist/versioned-package/solid-components.js +74 -70
- package/dist/versioned-package/styles/headline/headline.css.js +1 -1
- package/dist/versioned-package/styles/tailwind.css.js +1 -1
- package/dist/versioned-package/translations/de.js +8 -4
- package/dist/versioned-package/translations/en.js +8 -4
- package/dist/versioned-package/utilities/autocomplete-config.js +4 -4
- package/dist/versioned-package/utilities/localize.d.ts +4 -0
- package/dist/versioned-styles/solid-styles.css +1 -1
- package/dist/vscode.html-custom-data.json +371 -45
- package/dist/web-types.json +5471 -3959
- package/package.json +3 -3
|
@@ -31,13 +31,14 @@ let SdSelect = class extends SolidElement {
|
|
|
31
31
|
constructor() {
|
|
32
32
|
super(...arguments);
|
|
33
33
|
this.formControlController = new FormControlController(this, {
|
|
34
|
-
assumeInteractionOn: ["sd-blur", "sd-3-
|
|
34
|
+
assumeInteractionOn: ["sd-blur", "sd-3-23-0-input"]
|
|
35
35
|
});
|
|
36
36
|
this.hasSlotController = new HasSlotController(this, "help-text", "label");
|
|
37
37
|
this.localize = new LocalizeController(this);
|
|
38
38
|
this.typeToSelectString = "";
|
|
39
39
|
this.hasHover = false;
|
|
40
40
|
this.displayLabel = "";
|
|
41
|
+
this.deletedTagLabel = "";
|
|
41
42
|
this.hasFocus = false;
|
|
42
43
|
this.selectedOptions = [];
|
|
43
44
|
this.showValidStyle = false;
|
|
@@ -62,11 +63,11 @@ let SdSelect = class extends SolidElement {
|
|
|
62
63
|
this.styleOnValid = false;
|
|
63
64
|
this.hoist = false;
|
|
64
65
|
this.getTag = (option) => {
|
|
65
|
-
return html`<sd-3-
|
|
66
|
+
return html`<sd-3-23-0-tag ?disabled="${this.disabled}" part="tag" exportparts="
|
|
66
67
|
base:tag__base,
|
|
67
68
|
content:tag__content,
|
|
68
69
|
removable-indicator:tag__removable-indicator,
|
|
69
|
-
" size="${this.size === "sm" ? "sm" : "lg"}" removable @sd-remove="${(event) => this.handleTagRemove(event, option)}">${option.getTextLabel()}</sd-3-
|
|
70
|
+
" size="${this.size === "sm" ? "sm" : "lg"}" removable @keydown="${(event) => this.handleTagKeyDown(event, option)}" @sd-remove="${(event) => this.handleTagRemove(event, option)}">${option.getTextLabel()}</sd-3-23-0-tag>`;
|
|
70
71
|
};
|
|
71
72
|
this.handleDocumentFocusIn = (event) => {
|
|
72
73
|
const path = event.composedPath();
|
|
@@ -77,7 +78,7 @@ let SdSelect = class extends SolidElement {
|
|
|
77
78
|
this.handleDocumentKeyDown = (event) => {
|
|
78
79
|
const target = event.target;
|
|
79
80
|
const isClearButton = target.closest(".select__clear") !== null;
|
|
80
|
-
const isIconButton = target.closest("sd-3-
|
|
81
|
+
const isIconButton = target.closest("sd-3-23-0-icon-button") !== null;
|
|
81
82
|
if (isClearButton || isIconButton) {
|
|
82
83
|
return;
|
|
83
84
|
}
|
|
@@ -181,9 +182,11 @@ let SdSelect = class extends SolidElement {
|
|
|
181
182
|
}
|
|
182
183
|
connectedCallback() {
|
|
183
184
|
super.connectedCallback();
|
|
184
|
-
this.applySizeToOptions();
|
|
185
185
|
this.open = false;
|
|
186
186
|
}
|
|
187
|
+
firstUpdated() {
|
|
188
|
+
this.applySizeToOptions();
|
|
189
|
+
}
|
|
187
190
|
addOpenListeners() {
|
|
188
191
|
document.addEventListener("focusin", this.handleDocumentFocusIn);
|
|
189
192
|
document.addEventListener("keydown", this.handleDocumentKeyDown);
|
|
@@ -203,6 +206,40 @@ let SdSelect = class extends SolidElement {
|
|
|
203
206
|
this.hasFocus = false;
|
|
204
207
|
this.emit("sd-blur");
|
|
205
208
|
}
|
|
209
|
+
handleTagKeyDown(event, option) {
|
|
210
|
+
var _a, _b, _c;
|
|
211
|
+
if (event.key === "Backspace" && this.multiple) {
|
|
212
|
+
event.stopPropagation();
|
|
213
|
+
const tagParent = (_a = event.currentTarget) == null ? void 0 : _a.parentElement;
|
|
214
|
+
const previousTag = (_b = tagParent == null ? void 0 : tagParent.previousElementSibling) == null ? void 0 : _b.querySelector("sd-3-23-0-tag");
|
|
215
|
+
const nextTag = (_c = tagParent == null ? void 0 : tagParent.nextElementSibling) == null ? void 0 : _c.querySelector("sd-3-23-0-tag");
|
|
216
|
+
this.handleTagRemove(new CustomEvent("sd-remove"), option);
|
|
217
|
+
this.updateComplete.then(() => {
|
|
218
|
+
if (nextTag) {
|
|
219
|
+
nextTag.focus();
|
|
220
|
+
} else if (previousTag) {
|
|
221
|
+
previousTag.focus();
|
|
222
|
+
} else {
|
|
223
|
+
this.focus({ preventScroll: true });
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
handleTagMaxOptionsKeyDown(event) {
|
|
229
|
+
if (event.key === "Backspace" && this.multiple) {
|
|
230
|
+
event.stopPropagation();
|
|
231
|
+
this.handleTagRemove(new CustomEvent("sd-remove"), this.selectedOptions[this.selectedOptions.length - 1]);
|
|
232
|
+
this.updateComplete.then(() => {
|
|
233
|
+
var _a;
|
|
234
|
+
const tags = (_a = this.shadowRoot) == null ? void 0 : _a.querySelectorAll("sd-3-23-0-tag");
|
|
235
|
+
if (tags && tags.length > 0) {
|
|
236
|
+
tags == null ? void 0 : tags[(tags == null ? void 0 : tags.length) - 1].focus();
|
|
237
|
+
} else {
|
|
238
|
+
this.focus({ preventScroll: true });
|
|
239
|
+
}
|
|
240
|
+
});
|
|
241
|
+
}
|
|
242
|
+
}
|
|
206
243
|
handleLabelClick() {
|
|
207
244
|
this.displayInput.focus();
|
|
208
245
|
}
|
|
@@ -222,15 +259,16 @@ let SdSelect = class extends SolidElement {
|
|
|
222
259
|
}
|
|
223
260
|
handleClearClick(event) {
|
|
224
261
|
event.stopPropagation();
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
262
|
+
this.clearSelect();
|
|
263
|
+
}
|
|
264
|
+
clearSelect() {
|
|
265
|
+
this.setSelectedOptions([]);
|
|
266
|
+
this.displayInput.focus({ preventScroll: true });
|
|
267
|
+
this.updateComplete.then(() => {
|
|
268
|
+
this.emit("sd-clear");
|
|
269
|
+
this.emit("sd-input");
|
|
270
|
+
this.emit("sd-change");
|
|
271
|
+
});
|
|
234
272
|
}
|
|
235
273
|
handleClearMouseDown(event) {
|
|
236
274
|
event.stopPropagation();
|
|
@@ -238,7 +276,7 @@ let SdSelect = class extends SolidElement {
|
|
|
238
276
|
}
|
|
239
277
|
handleOptionClick(event) {
|
|
240
278
|
const target = event.target;
|
|
241
|
-
const option = target.closest("sd-3-
|
|
279
|
+
const option = target.closest("sd-3-23-0-option");
|
|
242
280
|
const oldValue = this.value;
|
|
243
281
|
if (option && !option.disabled) {
|
|
244
282
|
if (this.multiple) {
|
|
@@ -263,7 +301,7 @@ let SdSelect = class extends SolidElement {
|
|
|
263
301
|
const allOptions = this.getAllOptions();
|
|
264
302
|
const value = Array.isArray(this.value) ? this.value : [this.value];
|
|
265
303
|
const values = [];
|
|
266
|
-
if (customElements.get("sd-3-
|
|
304
|
+
if (customElements.get("sd-3-23-0-option")) {
|
|
267
305
|
allOptions.forEach((option) => {
|
|
268
306
|
if (this.multiple) {
|
|
269
307
|
option.checkbox = true;
|
|
@@ -272,26 +310,30 @@ let SdSelect = class extends SolidElement {
|
|
|
272
310
|
});
|
|
273
311
|
this.setSelectedOptions(allOptions.filter((el) => value.includes(el.value)));
|
|
274
312
|
} else {
|
|
275
|
-
customElements.whenDefined("sd-3-
|
|
313
|
+
customElements.whenDefined("sd-3-23-0-option").then(() => this.handleDefaultSlotChange());
|
|
276
314
|
}
|
|
277
315
|
}
|
|
278
316
|
handleTagRemove(event, option) {
|
|
279
317
|
event.stopPropagation();
|
|
280
|
-
if (!
|
|
318
|
+
if (!option) {
|
|
319
|
+
this.clearSelect();
|
|
320
|
+
}
|
|
321
|
+
if (option && !this.disabled) {
|
|
281
322
|
this.toggleOptionSelection(option, false);
|
|
323
|
+
this.deletedTagLabel = this.localize.term("removed", option.textContent);
|
|
282
324
|
this.updateComplete.then(() => {
|
|
283
325
|
this.emit("sd-input");
|
|
284
326
|
this.emit("sd-change");
|
|
285
327
|
});
|
|
286
328
|
}
|
|
287
329
|
}
|
|
288
|
-
// Gets an array of all <sd-3-
|
|
330
|
+
// Gets an array of all <sd-3-23-0-option> elements
|
|
289
331
|
getAllOptions() {
|
|
290
|
-
return [...this.querySelectorAll("sd-3-
|
|
332
|
+
return [...this.querySelectorAll("sd-3-23-0-option")];
|
|
291
333
|
}
|
|
292
|
-
// Gets the first <sd-3-
|
|
334
|
+
// Gets the first <sd-3-23-0-option> element
|
|
293
335
|
getFirstOption() {
|
|
294
|
-
return this.querySelector("sd-3-
|
|
336
|
+
return this.querySelector("sd-3-23-0-option");
|
|
295
337
|
}
|
|
296
338
|
// Sets the current option, which is the option the user is currently interacting with (e.g. via keyboard). Only one
|
|
297
339
|
// option may be "current" at a time.
|
|
@@ -316,7 +358,11 @@ let SdSelect = class extends SolidElement {
|
|
|
316
358
|
if (newSelectedOptions.length) {
|
|
317
359
|
newSelectedOptions.forEach((el) => el.selected = true);
|
|
318
360
|
}
|
|
319
|
-
|
|
361
|
+
if (Array.isArray(option)) {
|
|
362
|
+
this.selectionChanged();
|
|
363
|
+
} else {
|
|
364
|
+
this.selectionChanged(option);
|
|
365
|
+
}
|
|
320
366
|
}
|
|
321
367
|
// Toggles an option's selected state
|
|
322
368
|
toggleOptionSelection(option, force) {
|
|
@@ -325,13 +371,25 @@ let SdSelect = class extends SolidElement {
|
|
|
325
371
|
} else {
|
|
326
372
|
option.selected = !option.selected;
|
|
327
373
|
}
|
|
328
|
-
|
|
374
|
+
if (Array.isArray(option)) {
|
|
375
|
+
this.selectionChanged();
|
|
376
|
+
} else {
|
|
377
|
+
this.selectionChanged(option);
|
|
378
|
+
}
|
|
329
379
|
}
|
|
330
380
|
// This method must be called whenever the selection changes. It will update the selected options cache, the current
|
|
331
381
|
// value, and the display value
|
|
332
|
-
selectionChanged() {
|
|
382
|
+
selectionChanged(option) {
|
|
333
383
|
var _a, _b;
|
|
334
|
-
|
|
384
|
+
if (option && this.multiple) {
|
|
385
|
+
if (this.selectedOptions.find((el) => el.value === option.value)) {
|
|
386
|
+
this.selectedOptions = this.selectedOptions.filter((el) => el.value !== option.value);
|
|
387
|
+
} else {
|
|
388
|
+
this.selectedOptions = [...this.selectedOptions, option];
|
|
389
|
+
}
|
|
390
|
+
} else {
|
|
391
|
+
this.selectedOptions = this.getAllOptions().filter((el) => el.selected);
|
|
392
|
+
}
|
|
335
393
|
if (this.multiple) {
|
|
336
394
|
this.value = this.selectedOptions.map((el) => el.value);
|
|
337
395
|
if (this.useTags || this.value.length === 0) {
|
|
@@ -348,15 +406,23 @@ let SdSelect = class extends SolidElement {
|
|
|
348
406
|
});
|
|
349
407
|
}
|
|
350
408
|
get tags() {
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
}
|
|
409
|
+
if (this.selectedOptions.length <= this.maxOptionsVisible) {
|
|
410
|
+
return this.selectedOptions.map((option, index) => {
|
|
411
|
+
if (index < this.maxOptionsVisible || this.maxOptionsVisible <= 0) {
|
|
412
|
+
const tag = this.getTag(option, index);
|
|
413
|
+
return html`<div @sd-remove="${(e) => this.handleTagRemove(e, option)}">${typeof tag === "string" ? unsafeHTML(tag) : tag}</div>`;
|
|
414
|
+
}
|
|
415
|
+
return [html``];
|
|
416
|
+
});
|
|
417
|
+
} else {
|
|
418
|
+
return [
|
|
419
|
+
html`<sd-3-23-0-tag ?disabled="${this.disabled}" part="tag" exportparts="
|
|
420
|
+
base:tag__base,
|
|
421
|
+
content:tag__content,
|
|
422
|
+
removable-indicator:tag__removable-indicator,
|
|
423
|
+
" size="${this.size === "sm" ? "sm" : "lg"}" removable @keydown="${(event) => this.handleTagMaxOptionsKeyDown(event)}" @sd-remove="${(event) => this.handleTagRemove(event)}">${this.selectedOptions.length} ${this.localize.term("tagsSelected")}</sd-3-23-0-tag>`
|
|
424
|
+
];
|
|
425
|
+
}
|
|
360
426
|
}
|
|
361
427
|
handleInvalid(event) {
|
|
362
428
|
this.formControlController.setValidity(false);
|
|
@@ -369,7 +435,7 @@ let SdSelect = class extends SolidElement {
|
|
|
369
435
|
handleMouseLeave() {
|
|
370
436
|
this.hasHover = false;
|
|
371
437
|
}
|
|
372
|
-
/** Receives incoming event detail from sd-3-
|
|
438
|
+
/** Receives incoming event detail from sd-3-23-0-popup and updates local state for conditional styling. */
|
|
373
439
|
handleCurrentPlacement(e) {
|
|
374
440
|
const incomingPlacement = e.detail;
|
|
375
441
|
if (incomingPlacement) {
|
|
@@ -378,7 +444,7 @@ let SdSelect = class extends SolidElement {
|
|
|
378
444
|
}
|
|
379
445
|
handleUseTagsChange() {
|
|
380
446
|
const allOptions = this.getAllOptions();
|
|
381
|
-
if (customElements.get("sd-3-
|
|
447
|
+
if (customElements.get("sd-3-23-0-option")) {
|
|
382
448
|
allOptions.forEach((option) => {
|
|
383
449
|
option.checkbox = this.multiple;
|
|
384
450
|
});
|
|
@@ -392,7 +458,7 @@ let SdSelect = class extends SolidElement {
|
|
|
392
458
|
}
|
|
393
459
|
async handleOpenChange() {
|
|
394
460
|
if (this.open && !this.disabled) {
|
|
395
|
-
this.setCurrentOption(this.selectedOptions[0] || this.getFirstOption());
|
|
461
|
+
if (!this.multiple) this.setCurrentOption(this.selectedOptions[0] || this.getFirstOption());
|
|
396
462
|
this.emit("sd-show");
|
|
397
463
|
this.addOpenListeners();
|
|
398
464
|
await stopAnimations(this);
|
|
@@ -424,6 +490,7 @@ let SdSelect = class extends SolidElement {
|
|
|
424
490
|
});
|
|
425
491
|
}
|
|
426
492
|
handleValueChange() {
|
|
493
|
+
if (this.selectedOptions.length === (Array.isArray(this.value) ? this.value.length : 1)) return;
|
|
427
494
|
const allOptions = this.getAllOptions();
|
|
428
495
|
const value = Array.isArray(this.value) ? this.value : [this.value];
|
|
429
496
|
this.setSelectedOptions(allOptions.filter((el) => value.includes(el.value)));
|
|
@@ -497,7 +564,7 @@ let SdSelect = class extends SolidElement {
|
|
|
497
564
|
cursorStyles,
|
|
498
565
|
this.size === "sm" ? "text-sm" : "text-base",
|
|
499
566
|
this.open && "z-50"
|
|
500
|
-
)}"><div class="flex items-center gap-1 mb-2"><label id="label" part="form-control-label" class="${hasLabel && "inline-block"}" aria-hidden="${hasLabel ? "false" : "true"}" @click="${this.handleLabelClick}"><slot name="label">${this.label}</slot></label><slot name="tooltip"></slot></div><div part="form-control-input" class="${cx("relative w-full bg-white", selectState === "disabled" ? "text-neutral-500" : "text-black")}"><div part="border" class="${cx(
|
|
567
|
+
)}"><span class="sr-only" role="alert" aria-live="assertive">${this.deletedTagLabel}</span><div class="flex items-center gap-1 mb-2"><label id="label" part="form-control-label" class="${hasLabel && "inline-block"}" aria-hidden="${hasLabel ? "false" : "true"}" @click="${this.handleLabelClick}"><slot name="label">${this.label}</slot></label><slot name="tooltip"></slot></div><div part="form-control-input" class="${cx("relative w-full bg-white", selectState === "disabled" ? "text-neutral-500" : "text-black")}"><div part="border" class="${cx(
|
|
501
568
|
"absolute top-0 w-full h-full pointer-events-none border rounded-default",
|
|
502
569
|
this.hasHover && "bg-neutral-200",
|
|
503
570
|
{
|
|
@@ -511,7 +578,7 @@ let SdSelect = class extends SolidElement {
|
|
|
511
578
|
default: "border-neutral-800"
|
|
512
579
|
}[selectState],
|
|
513
580
|
this.open && (this.currentPlacement === "bottom" ? "rounded-bl-none rounded-br-none" : "rounded-tl-none rounded-tr-none")
|
|
514
|
-
)}"></div><sd-3-
|
|
581
|
+
)}"></div><sd-3-23-0-popup @sd-current-placement="${this.handleCurrentPlacement}" class="${cx(
|
|
515
582
|
"inline-flex relative w-full",
|
|
516
583
|
this.currentPlacement === "bottom" ? "origin-top" : "origin-bottom"
|
|
517
584
|
)}" placement="${this.placement}" strategy="${this.hoist ? "fixed" : "absolute"}" flip shift sync="width" auto-size="vertical" auto-size-padding="10" exportparts="
|
|
@@ -528,33 +595,33 @@ let SdSelect = class extends SolidElement {
|
|
|
528
595
|
"appearance-none outline-none flex-grow bg-transparent w-full placeholder-neutral-700",
|
|
529
596
|
cursorStyles,
|
|
530
597
|
this.multiple && this.useTags && this.value.length > 0 ? "hidden" : ""
|
|
531
|
-
)}" type="text" placeholder="${this.placeholder}" .disabled="${this.disabled}" .value="${this.displayLabel}" autocomplete="off" spellcheck="false" autocapitalize="off" readonly="readonly" aria-controls="listbox" aria-expanded="${this.open ? "true" : "false"}" aria-haspopup="listbox" aria-labelledby="label" aria-disabled="${this.disabled ? "true" : "false"}" aria-describedby="help-text invalid-message" role="combobox" tabindex="0" @focus="${this.handleFocus}" @blur="${this.handleBlur}"> ${this.multiple && this.useTags ? html`<div part="tags" class="flex-grow flex flex-wrap items-center gap-1">${this.tags}</div>` : ""}
|
|
598
|
+
)}" type="text" placeholder="${this.placeholder}" .disabled="${this.disabled}" .value="${this.displayLabel}" autocomplete="off" spellcheck="false" autocapitalize="off" readonly="readonly" aria-controls="listbox" aria-expanded="${this.open ? "true" : "false"}" aria-haspopup="listbox" aria-labelledby="label" aria-disabled="${this.disabled ? "true" : "false"}" aria-invalid="${this.showInvalidStyle}" aria-describedby="help-text invalid-message" role="combobox" tabindex="0" @focus="${this.handleFocus}" @blur="${this.handleBlur}"> ${this.multiple && this.useTags ? html`<div part="tags" class="flex-grow flex flex-wrap items-center gap-1">${this.tags}</div>` : ""}<div aria-live="polite" id="control-value" class="absolute top-0 left-0 opacity-0 -z-10">${this.selectedOptions.map((option) => option == null ? void 0 : option.getTextLabel()).join(", ")}</div><input class="${cx("value-input absolute top-0 left-0 w-full h-full opacity-0 -z-10", cursorStyles)}" type="text" ?disabled="${this.disabled}" ?required="${this.required}" .value="${Array.isArray(this.value) ? this.value.join(", ") : this.value}" tabindex="-1" aria-controls="control-value" aria-hidden="true" @focus="${() => this.focus()}" @invalid="${this.handleInvalid}"> ${hasClearIcon ? html`<button part="clear-button" class="${cx("select__clear flex justify-center", iconMarginLeft)}" type="button" aria-label="${this.localize.term("clearEntry")}" @mousedown="${this.handleClearMouseDown}" @click="${this.handleClearClick}" tabindex="-1"><slot name="clear-icon"><sd-3-23-0-icon class="${cx("text-icon-fill-neutral-800", iconSize)}" library="system" name="closing-round"></sd-3-23-0-icon></slot></button>` : ""} ${this.showInvalidStyle ? html`<sd-3-23-0-icon part="invalid-icon" class="${cx(iconMarginLeft, iconSize, "text-error")}" library="system" name="risk"></sd-3-23-0-icon>` : ""} ${this.styleOnValid && this.showValidStyle ? html`<sd-3-23-0-icon part="valid-icon" class="${cx("flex-shrink-0 text-success", iconMarginLeft, iconSize)}" library="system" name="status-check"></sd-3-23-0-icon>` : ""}<slot name="expand-icon" part="expand-icon" class="${cx(
|
|
532
599
|
"inline-flex ml-2 transition-all",
|
|
533
600
|
this.open ? "rotate-180" : "rotate-0",
|
|
534
601
|
this.disabled ? "text-neutral-500" : "text-primary",
|
|
535
602
|
iconSize
|
|
536
|
-
)}"><sd-3-
|
|
537
|
-
"bg-white px-2 py-3 relative border-primary overflow-y-
|
|
603
|
+
)}"><sd-3-23-0-icon name="chevron-down" part="chevron" library="system" color="currentColor"></sd-3-23-0-icon></slot></div><div id="listbox" role="listbox" aria-expanded="${this.open ? "true" : "false"}" aria-multiselectable="${this.multiple ? "true" : "false"}" aria-labelledby="label" part="listbox" class="${cx(
|
|
604
|
+
"bg-white px-2 py-3 relative border-primary overflow-y-scroll",
|
|
538
605
|
this.open && "shadow",
|
|
539
606
|
this.currentPlacement === "bottom" ? "border-r-2 border-b-2 border-l-2 rounded-br-default rounded-bl-default" : "border-r-2 border-t-2 border-l-2 rounded-tr-default rounded-tl-default"
|
|
540
|
-
)}" tabindex="-1" @mouseup="${this.handleOptionClick}" @slotchange="${this.handleDefaultSlotChange}"><slot></slot></div></sd-3-
|
|
607
|
+
)}" tabindex="-1" @mouseup="${this.handleOptionClick}" @slotchange="${this.handleDefaultSlotChange}"><slot></slot></div></sd-3-23-0-popup></div><div class="text-sm text-neutral-700" part="form-control-help-text" id="help-text" aria-hidden="${hasHelpText ? "false" : "true"}"><slot name="help-text">${this.helpText}</slot></div></div>${this.formControlController.renderInvalidMessage()}`;
|
|
541
608
|
}
|
|
542
609
|
};
|
|
543
610
|
SdSelect.dependencies = {
|
|
544
|
-
"sd-3-
|
|
545
|
-
"sd-3-
|
|
546
|
-
"sd-3-
|
|
611
|
+
"sd-3-23-0-icon": SdIcon,
|
|
612
|
+
"sd-3-23-0-popup": SdPopup,
|
|
613
|
+
"sd-3-23-0-tag": SdTag
|
|
547
614
|
};
|
|
548
615
|
SdSelect.styles = [
|
|
549
616
|
componentStyles,
|
|
550
617
|
SolidElement.styles,
|
|
551
|
-
css`:host{position:relative;display:block;width:100%}:host([required]) #label::after{content:' *'}[part=listbox]{max-height:var(--auto-size-available-height,auto)}sd-3-
|
|
618
|
+
css`:host{position:relative;display:block;width:100%}:host([required]) #label::after{content:' *'}[part=listbox]{max-height:var(--auto-size-available-height,auto)}sd-3-23-0-popup::part(popup){z-index:var(--sd-z-index-dropdown,900)}sd-3-23-0-tag::part(base){border-radius:var(--sd-border-radius-default,.25rem);padding-left:var(--sd-spacing-1,.25rem);padding-right:var(--sd-spacing-1,.25rem)}sd-3-23-0-tag[size=lg]::part(base){padding-left:var(--sd-spacing-2,.5rem);padding-right:var(--sd-spacing-2,.5rem)}sd-3-23-0-tag[disabled=false]::part(base):hover{--tw-bg-opacity:1;background-color:rgb(var(--sd-color-primary-100,236 240 249) / var(--tw-bg-opacity))}`
|
|
552
619
|
];
|
|
553
620
|
__decorateClass([
|
|
554
|
-
queryAssignedElements({ selector: "sd-3-
|
|
621
|
+
queryAssignedElements({ selector: "sd-3-23-0-option" })
|
|
555
622
|
], SdSelect.prototype, "_optionsInDefaultSlot", 2);
|
|
556
623
|
__decorateClass([
|
|
557
|
-
query("sd-3-
|
|
624
|
+
query("sd-3-23-0-popup")
|
|
558
625
|
], SdSelect.prototype, "popup", 2);
|
|
559
626
|
__decorateClass([
|
|
560
627
|
query('[part="combobox"]')
|
|
@@ -577,6 +644,9 @@ __decorateClass([
|
|
|
577
644
|
__decorateClass([
|
|
578
645
|
state()
|
|
579
646
|
], SdSelect.prototype, "displayLabel", 2);
|
|
647
|
+
__decorateClass([
|
|
648
|
+
state()
|
|
649
|
+
], SdSelect.prototype, "deletedTagLabel", 2);
|
|
580
650
|
__decorateClass([
|
|
581
651
|
state()
|
|
582
652
|
], SdSelect.prototype, "hasFocus", 2);
|
|
@@ -673,7 +743,7 @@ __decorateClass([
|
|
|
673
743
|
watch("value", { waitUntilFirstUpdate: true })
|
|
674
744
|
], SdSelect.prototype, "handleValueChange", 1);
|
|
675
745
|
SdSelect = __decorateClass([
|
|
676
|
-
customElement("sd-3-
|
|
746
|
+
customElement("sd-3-23-0-select")
|
|
677
747
|
], SdSelect);
|
|
678
748
|
setDefaultAnimation("select.show", {
|
|
679
749
|
keyframes: [
|
|
@@ -84,7 +84,7 @@ let SdStep = class extends SolidElement {
|
|
|
84
84
|
!this.disabled && !this.current && !this.notInteractive && "text-primary group-hover:text-primary-500 group-hover:fill-primary-500",
|
|
85
85
|
this.notInteractive && "text-primary",
|
|
86
86
|
this.size === "lg" ? "text-lg" : "text-sm"
|
|
87
|
-
)}">${!this.disabled && !this.current && !this.notInteractive ? html`<sd-3-
|
|
87
|
+
)}">${!this.disabled && !this.current && !this.notInteractive ? html`<sd-3-23-0-icon name="status-check" library="system"></sd-3-23-0-icon>` : html`${this.index}`}</slot></${tag}>${this.noTail ? "" : html`<div part="tail" class="${cx(
|
|
88
88
|
this.orientation === "horizontal" ? "border-t w-full my-auto mr-2" : "border-l flex-grow flex-shrink-0 basis-auto h-full w-[1px] mx-auto",
|
|
89
89
|
!this.disabled && !this.current && !this.notInteractive ? " border-primary group-hover:border-primary-500" : "border-neutral-400"
|
|
90
90
|
)}"></div>`}</div><div part="text-container" class="${cx("mt-4 mr-4 break-words flex flex-col gap-2", this.orientation === "horizontal" ? "text-center w-40" : "w-max text-left", this.disabled && "!text-neutral-500")}"><div part="label" class="${cx("!font-bold sd-paragraph", this.disabled && "!text-neutral-500", !this.disabled && !this.current && !this.notInteractive ? "!text-primary group-hover:!text-primary-500 group-hover:cursor-pointer" : "text-black")}"><slot name="label">${this.label}</slot></div><div part="description" class="${cx("sd-paragraph sd-paragraph--size-sm", this.disabled && "!text-neutral-500")}">${this.description || html`<slot></slot>`}</div></div></div>`;
|
|
@@ -136,7 +136,7 @@ __decorateClass([
|
|
|
136
136
|
watch("notInteractive")
|
|
137
137
|
], SdStep.prototype, "handleInteractivityChange", 1);
|
|
138
138
|
SdStep = __decorateClass([
|
|
139
|
-
customElement("sd-3-
|
|
139
|
+
customElement("sd-3-23-0-step")
|
|
140
140
|
], SdStep);
|
|
141
141
|
export {
|
|
142
142
|
SdStep as default
|
|
@@ -56,7 +56,7 @@ let SdStepGroup = class extends SolidElement {
|
|
|
56
56
|
});
|
|
57
57
|
}
|
|
58
58
|
getAllSteps() {
|
|
59
|
-
return [...this.body.assignedElements()].filter((el) => el.tagName.toLowerCase() === "sd-3-
|
|
59
|
+
return [...this.body.assignedElements()].filter((el) => el.tagName.toLowerCase() === "sd-3-23-0-step");
|
|
60
60
|
}
|
|
61
61
|
/**
|
|
62
62
|
* Sets the active step.
|
|
@@ -119,7 +119,7 @@ __decorateClass([
|
|
|
119
119
|
watch("notInteractive")
|
|
120
120
|
], SdStepGroup.prototype, "handleInteractivityChange", 1);
|
|
121
121
|
SdStepGroup = __decorateClass([
|
|
122
|
-
customElement("sd-3-
|
|
122
|
+
customElement("sd-3-23-0-step-group")
|
|
123
123
|
], SdStepGroup);
|
|
124
124
|
export {
|
|
125
125
|
SdStepGroup as default
|
|
@@ -162,7 +162,7 @@ __decorateClass([
|
|
|
162
162
|
watch(["checked"], { waitUntilFirstUpdate: true })
|
|
163
163
|
], SdSwitch.prototype, "handleStateChange", 1);
|
|
164
164
|
SdSwitch = __decorateClass([
|
|
165
|
-
customElement("sd-3-
|
|
165
|
+
customElement("sd-3-23-0-switch")
|
|
166
166
|
], SdSwitch);
|
|
167
167
|
export {
|
|
168
168
|
SdSwitch as default
|
|
@@ -20,7 +20,7 @@ let SdTab = class extends SolidElement {
|
|
|
20
20
|
constructor() {
|
|
21
21
|
super(...arguments);
|
|
22
22
|
this.attrId = ++id;
|
|
23
|
-
this.componentId = `sd-3-
|
|
23
|
+
this.componentId = `sd-3-23-0-tab-${this.attrId}`;
|
|
24
24
|
this.variant = "default";
|
|
25
25
|
this.active = false;
|
|
26
26
|
this.disabled = false;
|
|
@@ -87,7 +87,7 @@ __decorateClass([
|
|
|
87
87
|
watch("disabled")
|
|
88
88
|
], SdTab.prototype, "handleDisabledChange", 1);
|
|
89
89
|
SdTab = __decorateClass([
|
|
90
|
-
customElement("sd-3-
|
|
90
|
+
customElement("sd-3-23-0-tab")
|
|
91
91
|
], SdTab);
|
|
92
92
|
export {
|
|
93
93
|
SdTab as default
|
|
@@ -29,8 +29,8 @@ let SdTabGroup = class extends SolidElement {
|
|
|
29
29
|
}
|
|
30
30
|
connectedCallback() {
|
|
31
31
|
const whenAllDefined = Promise.all([
|
|
32
|
-
customElements.whenDefined("sd-3-
|
|
33
|
-
customElements.whenDefined("sd-3-
|
|
32
|
+
customElements.whenDefined("sd-3-23-0-tab"),
|
|
33
|
+
customElements.whenDefined("sd-3-23-0-tab-panel")
|
|
34
34
|
]);
|
|
35
35
|
super.connectedCallback();
|
|
36
36
|
this.resizeObserver = new ResizeObserver(() => {
|
|
@@ -67,19 +67,19 @@ let SdTabGroup = class extends SolidElement {
|
|
|
67
67
|
getAllTabs(options = { includeDisabled: true }) {
|
|
68
68
|
const slot = this.shadowRoot.querySelector('slot[name="nav"]');
|
|
69
69
|
return [...slot.assignedElements()].filter((el) => {
|
|
70
|
-
return options.includeDisabled ? el.tagName.toLowerCase() === "sd-3-
|
|
70
|
+
return options.includeDisabled ? el.tagName.toLowerCase() === "sd-3-23-0-tab" : el.tagName.toLowerCase() === "sd-3-23-0-tab" && !el.disabled;
|
|
71
71
|
});
|
|
72
72
|
}
|
|
73
73
|
getAllPanels() {
|
|
74
|
-
return [...this.body.assignedElements()].filter((el) => el.tagName.toLowerCase() === "sd-3-
|
|
74
|
+
return [...this.body.assignedElements()].filter((el) => el.tagName.toLowerCase() === "sd-3-23-0-tab-panel");
|
|
75
75
|
}
|
|
76
76
|
getActiveTab() {
|
|
77
77
|
return this.tabs.find((t) => t.matches(":focus"));
|
|
78
78
|
}
|
|
79
79
|
handleClick(event) {
|
|
80
80
|
const target = event.target;
|
|
81
|
-
const tab = target.closest("sd-3-
|
|
82
|
-
const tabGroup = tab == null ? void 0 : tab.closest("sd-3-
|
|
81
|
+
const tab = target.closest("sd-3-23-0-tab");
|
|
82
|
+
const tabGroup = tab == null ? void 0 : tab.closest("sd-3-23-0-tab-group");
|
|
83
83
|
if (tabGroup !== this) {
|
|
84
84
|
return;
|
|
85
85
|
}
|
|
@@ -89,8 +89,8 @@ let SdTabGroup = class extends SolidElement {
|
|
|
89
89
|
}
|
|
90
90
|
handleKeyDown(event) {
|
|
91
91
|
const target = event.target;
|
|
92
|
-
const tab = target.closest("sd-3-
|
|
93
|
-
const tabGroup = tab == null ? void 0 : tab.closest("sd-3-
|
|
92
|
+
const tab = target.closest("sd-3-23-0-tab");
|
|
93
|
+
const tabGroup = tab == null ? void 0 : tab.closest("sd-3-23-0-tab-group");
|
|
94
94
|
if (tabGroup !== this) {
|
|
95
95
|
return;
|
|
96
96
|
}
|
|
@@ -115,7 +115,7 @@ let SdTabGroup = class extends SolidElement {
|
|
|
115
115
|
if (["ArrowLeft", "ArrowRight", "ArrowUp", "ArrowDown", "Home", "End"].includes(event.key)) {
|
|
116
116
|
const activeEl = this.tabs.find((t) => t.matches(":focus"));
|
|
117
117
|
const isRtl = this.localize.dir() === "rtl";
|
|
118
|
-
if ((activeEl == null ? void 0 : activeEl.tagName.toLowerCase()) === "sd-3-
|
|
118
|
+
if ((activeEl == null ? void 0 : activeEl.tagName.toLowerCase()) === "sd-3-23-0-tab") {
|
|
119
119
|
let index = this.tabs.indexOf(activeEl);
|
|
120
120
|
if (event.key === "Home") {
|
|
121
121
|
index = 0;
|
|
@@ -212,17 +212,17 @@ let SdTabGroup = class extends SolidElement {
|
|
|
212
212
|
return html`<div part="base" class="${cx("flex flex-col rounded-none")}" @click="${this.handleClick}" @keydown="${this.handleKeyDown}"><div part="nav" class="${cx(this.hasScrollControls && "relative py-0 px-12")}">${this.hasScrollControls ? html`<button part="scroll-button--start" exportparts="base:scroll-button__base" tabindex="-1" aria-hidden="true" class="${cx(
|
|
213
213
|
"sd-interactive flex items-center justify-center absolute top-0 bottom-0 left-0 !outline-offset-0 border-b border-neutral-400 z-10",
|
|
214
214
|
this.localize.dir() === "rtl" && "left-auto right-0"
|
|
215
|
-
)}" @click="${this.handleScrollToStart}"><sd-3-
|
|
215
|
+
)}" @click="${this.handleScrollToStart}"><sd-3-23-0-icon library="system" name="${isRtl ? "chevron-up" : "chevron-down"}" label="previous" class="${cx("h-6 w-12 rotate-90 grid place-items-center")}"></sd-3-23-0-icon></button>` : ""}<div part="scroll-container" class="flex overflow-x-auto focus-visible:focus-outline !outline-offset-0"><div part="tabs" class="${cx("flex flex-auto relative flex-row")}" role="tablist"><div part="separation" class="w-full border-[0.25px] border-neutral-400 absolute bottom-0"></div><slot name="nav" @slotchange="${this.syncTabsAndPanels}"></slot></div></div>${this.hasScrollControls ? html`<button part="scroll-button--end" exportparts="base:scroll-button__base" tabindex="-1" aria-hidden="true" class="${cx(
|
|
216
216
|
"sd-interactive flex items-center justify-center absolute top-0 bottom-0 right-0 !outline-offset-0 border-b border-neutral-400 z-10",
|
|
217
217
|
this.localize.dir() === "rtl" && "right-auto left-0"
|
|
218
|
-
)}" @click="${this.handleScrollToEnd}"><sd-3-
|
|
218
|
+
)}" @click="${this.handleScrollToEnd}"><sd-3-23-0-icon library="system" name="${isRtl ? "chevron-down" : "chevron-up"}" label="next" class="${cx("h-6 w-12 rotate-90 grid place-items-center")}"></sd-3-23-0-icon></button>` : ""}</div><slot part="body" class="${cx("block auto py-8 px-6", this.variant === "container" && "border border-neutral-400 border-t-0")}" @slotchange="${this.syncTabsAndPanels}"></slot></div>`;
|
|
219
219
|
}
|
|
220
220
|
};
|
|
221
221
|
SdTabGroup.styles = [
|
|
222
222
|
SolidElement.styles,
|
|
223
223
|
unsafeCSS(InteractiveStyles),
|
|
224
224
|
componentStyles,
|
|
225
|
-
css`:host{@apply block box-border;}[part=scroll-container]{scrollbar-width:none}[part=scroll-container]::-webkit-scrollbar{@apply w-0 h-0;}::slotted(sd-3-
|
|
225
|
+
css`:host{@apply block box-border;}[part=scroll-container]{scrollbar-width:none}[part=scroll-container]::-webkit-scrollbar{@apply w-0 h-0;}::slotted(sd-3-23-0-tab-panel){--padding:1rem 0}`
|
|
226
226
|
];
|
|
227
227
|
__decorateClass([
|
|
228
228
|
query("[part=base]")
|
|
@@ -243,7 +243,7 @@ __decorateClass([
|
|
|
243
243
|
property()
|
|
244
244
|
], SdTabGroup.prototype, "activation", 2);
|
|
245
245
|
SdTabGroup = __decorateClass([
|
|
246
|
-
customElement("sd-3-
|
|
246
|
+
customElement("sd-3-23-0-tab-group")
|
|
247
247
|
], SdTabGroup);
|
|
248
248
|
export {
|
|
249
249
|
SdTabGroup as default
|
|
@@ -20,7 +20,7 @@ let SdTabPanel = class extends SolidElement {
|
|
|
20
20
|
constructor() {
|
|
21
21
|
super(...arguments);
|
|
22
22
|
this.attrId = ++id;
|
|
23
|
-
this.componentId = `sd-3-
|
|
23
|
+
this.componentId = `sd-3-23-0-tab-panel-${this.attrId}`;
|
|
24
24
|
this.name = "";
|
|
25
25
|
this.active = false;
|
|
26
26
|
}
|
|
@@ -51,7 +51,7 @@ __decorateClass([
|
|
|
51
51
|
watch("active")
|
|
52
52
|
], SdTabPanel.prototype, "handleActiveChange", 1);
|
|
53
53
|
SdTabPanel = __decorateClass([
|
|
54
|
-
customElement("sd-3-
|
|
54
|
+
customElement("sd-3-23-0-tab-panel")
|
|
55
55
|
], SdTabPanel);
|
|
56
56
|
export {
|
|
57
57
|
SdTabPanel as default
|