@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.
Files changed (186) hide show
  1. package/dist/components/es/combobox.js +11 -0
  2. package/dist/components/es/map-marker.js +1 -1
  3. package/dist/components/es/optgroup.js +1 -0
  4. package/dist/components/es/option-renderer.js +1 -0
  5. package/dist/components/es/select.js +7 -3
  6. package/dist/components/es/solid-components2.js +7 -7
  7. package/dist/components/es/utils.js +1 -0
  8. package/dist/components/umd/solid-components.js +37 -23
  9. package/dist/custom-elements.json +1 -1
  10. package/dist/package/components/combobox/combobox.d.ts +129 -0
  11. package/dist/package/components/combobox/combobox.js +958 -0
  12. package/dist/package/components/combobox/option-renderer.d.ts +5 -0
  13. package/dist/package/components/combobox/option-renderer.js +4 -0
  14. package/dist/package/components/combobox/utils.d.ts +8 -0
  15. package/dist/package/components/combobox/utils.js +14 -0
  16. package/dist/package/components/optgroup/optgroup.d.ts +20 -0
  17. package/dist/package/components/optgroup/optgroup.js +68 -0
  18. package/dist/package/components/select/select.d.ts +6 -1
  19. package/dist/package/components/select/select.js +100 -30
  20. package/dist/package/solid-components.d.ts +2 -0
  21. package/dist/package/solid-components.js +74 -70
  22. package/dist/package/styles/tailwind.css.js +1 -1
  23. package/dist/package/translations/de.js +8 -4
  24. package/dist/package/translations/en.js +8 -4
  25. package/dist/package/utilities/localize.d.ts +4 -0
  26. package/dist/versioned-components/es/accordion-group.js +1 -1
  27. package/dist/versioned-components/es/accordion.js +1 -1
  28. package/dist/versioned-components/es/audio.js +1 -1
  29. package/dist/versioned-components/es/badge.js +1 -1
  30. package/dist/versioned-components/es/brandshape.js +1 -1
  31. package/dist/versioned-components/es/button.js +1 -1
  32. package/dist/versioned-components/es/carousel-item.js +1 -1
  33. package/dist/versioned-components/es/carousel.js +3 -3
  34. package/dist/versioned-components/es/checkbox-group.js +1 -1
  35. package/dist/versioned-components/es/checkbox.js +1 -1
  36. package/dist/versioned-components/es/combobox.js +11 -0
  37. package/dist/versioned-components/es/dialog.js +1 -1
  38. package/dist/versioned-components/es/divider.js +1 -1
  39. package/dist/versioned-components/es/drawer.js +1 -1
  40. package/dist/versioned-components/es/dropdown.js +1 -1
  41. package/dist/versioned-components/es/expandable.js +1 -1
  42. package/dist/versioned-components/es/flipcard.js +1 -1
  43. package/dist/versioned-components/es/form.js +1 -1
  44. package/dist/versioned-components/es/header.js +1 -1
  45. package/dist/versioned-components/es/icon.js +1 -1
  46. package/dist/versioned-components/es/include.js +1 -1
  47. package/dist/versioned-components/es/input.js +1 -1
  48. package/dist/versioned-components/es/link.js +1 -1
  49. package/dist/versioned-components/es/map-marker.js +1 -1
  50. package/dist/versioned-components/es/navigation-item.js +1 -1
  51. package/dist/versioned-components/es/notification.js +1 -1
  52. package/dist/versioned-components/es/optgroup.js +1 -0
  53. package/dist/versioned-components/es/option-renderer.js +1 -0
  54. package/dist/versioned-components/es/option.js +1 -1
  55. package/dist/versioned-components/es/quickfact.js +1 -1
  56. package/dist/versioned-components/es/radio-button.js +1 -1
  57. package/dist/versioned-components/es/radio-group.js +1 -1
  58. package/dist/versioned-components/es/radio.js +1 -1
  59. package/dist/versioned-components/es/scrollable.js +1 -1
  60. package/dist/versioned-components/es/select.js +7 -3
  61. package/dist/versioned-components/es/solid-components2.js +7 -7
  62. package/dist/versioned-components/es/spinner.js +1 -1
  63. package/dist/versioned-components/es/step-group.js +1 -1
  64. package/dist/versioned-components/es/step.js +1 -1
  65. package/dist/versioned-components/es/switch.js +1 -1
  66. package/dist/versioned-components/es/tab-group.js +1 -1
  67. package/dist/versioned-components/es/tab-panel.js +1 -1
  68. package/dist/versioned-components/es/tab.js +1 -1
  69. package/dist/versioned-components/es/tag.js +1 -1
  70. package/dist/versioned-components/es/teaser-media.js +1 -1
  71. package/dist/versioned-components/es/teaser.js +1 -1
  72. package/dist/versioned-components/es/textarea.js +1 -1
  73. package/dist/versioned-components/es/tooltip.js +2 -2
  74. package/dist/versioned-components/es/utils.js +1 -0
  75. package/dist/versioned-components/es/video.js +1 -1
  76. package/dist/versioned-package/_components/button-group/button-group.d.ts +1 -1
  77. package/dist/versioned-package/_components/button-group/button-group.js +11 -11
  78. package/dist/versioned-package/components/accordion/accordion.d.ts +1 -1
  79. package/dist/versioned-package/components/accordion/accordion.js +2 -2
  80. package/dist/versioned-package/components/accordion-group/accordion-group.d.ts +1 -1
  81. package/dist/versioned-package/components/accordion-group/accordion-group.js +3 -3
  82. package/dist/versioned-package/components/audio/audio.d.ts +1 -1
  83. package/dist/versioned-package/components/audio/audio.js +6 -6
  84. package/dist/versioned-package/components/badge/badge.d.ts +1 -1
  85. package/dist/versioned-package/components/badge/badge.js +1 -1
  86. package/dist/versioned-package/components/brandshape/brandshape.d.ts +1 -1
  87. package/dist/versioned-package/components/brandshape/brandshape.js +1 -1
  88. package/dist/versioned-package/components/button/button.d.ts +1 -1
  89. package/dist/versioned-package/components/button/button.js +4 -4
  90. package/dist/versioned-package/components/carousel/carousel.d.ts +1 -1
  91. package/dist/versioned-package/components/carousel/carousel.js +6 -6
  92. package/dist/versioned-package/components/carousel-item/carousel-item.d.ts +1 -1
  93. package/dist/versioned-package/components/carousel-item/carousel-item.js +1 -1
  94. package/dist/versioned-package/components/checkbox/checkbox.d.ts +1 -1
  95. package/dist/versioned-package/components/checkbox/checkbox.js +3 -3
  96. package/dist/versioned-package/components/checkbox-group/checkbox-group.d.ts +1 -1
  97. package/dist/versioned-package/components/checkbox-group/checkbox-group.js +5 -5
  98. package/dist/versioned-package/components/combobox/combobox.d.ts +129 -0
  99. package/dist/versioned-package/components/combobox/combobox.js +958 -0
  100. package/dist/versioned-package/components/combobox/option-renderer.d.ts +5 -0
  101. package/dist/versioned-package/components/combobox/option-renderer.js +4 -0
  102. package/dist/versioned-package/components/combobox/utils.d.ts +8 -0
  103. package/dist/versioned-package/components/combobox/utils.js +14 -0
  104. package/dist/versioned-package/components/dialog/dialog.d.ts +1 -1
  105. package/dist/versioned-package/components/dialog/dialog.js +2 -2
  106. package/dist/versioned-package/components/divider/divider.d.ts +1 -1
  107. package/dist/versioned-package/components/divider/divider.js +2 -2
  108. package/dist/versioned-package/components/drawer/drawer.d.ts +1 -1
  109. package/dist/versioned-package/components/drawer/drawer.js +2 -2
  110. package/dist/versioned-package/components/dropdown/dropdown.d.ts +1 -1
  111. package/dist/versioned-package/components/dropdown/dropdown.js +8 -8
  112. package/dist/versioned-package/components/expandable/expandable.d.ts +1 -1
  113. package/dist/versioned-package/components/expandable/expandable.js +2 -2
  114. package/dist/versioned-package/components/flipcard/flipcard.d.ts +1 -1
  115. package/dist/versioned-package/components/flipcard/flipcard.js +1 -1
  116. package/dist/versioned-package/components/header/header.d.ts +1 -1
  117. package/dist/versioned-package/components/header/header.js +4 -4
  118. package/dist/versioned-package/components/icon/icon.d.ts +1 -1
  119. package/dist/versioned-package/components/icon/icon.js +1 -1
  120. package/dist/versioned-package/components/include/include.d.ts +1 -1
  121. package/dist/versioned-package/components/include/include.js +1 -1
  122. package/dist/versioned-package/components/input/input.d.ts +1 -1
  123. package/dist/versioned-package/components/input/input.js +3 -3
  124. package/dist/versioned-package/components/link/link.d.ts +1 -1
  125. package/dist/versioned-package/components/link/link.js +2 -2
  126. package/dist/versioned-package/components/map-marker/map-marker.d.ts +1 -1
  127. package/dist/versioned-package/components/map-marker/map-marker.js +1 -1
  128. package/dist/versioned-package/components/navigation-item/navigation-item.d.ts +1 -1
  129. package/dist/versioned-package/components/navigation-item/navigation-item.js +5 -5
  130. package/dist/versioned-package/components/notification/notification.d.ts +1 -1
  131. package/dist/versioned-package/components/notification/notification.js +5 -5
  132. package/dist/versioned-package/components/optgroup/optgroup.d.ts +20 -0
  133. package/dist/versioned-package/components/optgroup/optgroup.js +68 -0
  134. package/dist/versioned-package/components/option/option.d.ts +1 -1
  135. package/dist/versioned-package/components/option/option.js +2 -2
  136. package/dist/versioned-package/components/popup/popup.d.ts +1 -1
  137. package/dist/versioned-package/components/popup/popup.js +1 -1
  138. package/dist/versioned-package/components/quickfact/quickfact.d.ts +1 -1
  139. package/dist/versioned-package/components/quickfact/quickfact.js +2 -2
  140. package/dist/versioned-package/components/radio/radio.d.ts +1 -1
  141. package/dist/versioned-package/components/radio/radio.js +2 -2
  142. package/dist/versioned-package/components/radio-button/radio-button.d.ts +1 -1
  143. package/dist/versioned-package/components/radio-button/radio-button.js +2 -2
  144. package/dist/versioned-package/components/radio-group/radio-group.d.ts +2 -2
  145. package/dist/versioned-package/components/radio-group/radio-group.js +13 -13
  146. package/dist/versioned-package/components/scrollable/scrollable.d.ts +1 -1
  147. package/dist/versioned-package/components/scrollable/scrollable.js +3 -3
  148. package/dist/versioned-package/components/select/select.d.ts +10 -5
  149. package/dist/versioned-package/components/select/select.js +121 -51
  150. package/dist/versioned-package/components/spinner/spinner.d.ts +1 -1
  151. package/dist/versioned-package/components/spinner/spinner.js +1 -1
  152. package/dist/versioned-package/components/step/step.d.ts +1 -1
  153. package/dist/versioned-package/components/step/step.js +2 -2
  154. package/dist/versioned-package/components/step-group/step-group.d.ts +1 -1
  155. package/dist/versioned-package/components/step-group/step-group.js +2 -2
  156. package/dist/versioned-package/components/switch/switch.d.ts +1 -1
  157. package/dist/versioned-package/components/switch/switch.js +1 -1
  158. package/dist/versioned-package/components/tab/tab.d.ts +1 -1
  159. package/dist/versioned-package/components/tab/tab.js +2 -2
  160. package/dist/versioned-package/components/tab-group/tab-group.d.ts +1 -1
  161. package/dist/versioned-package/components/tab-group/tab-group.js +13 -13
  162. package/dist/versioned-package/components/tab-panel/tab-panel.d.ts +1 -1
  163. package/dist/versioned-package/components/tab-panel/tab-panel.js +2 -2
  164. package/dist/versioned-package/components/tag/tag.d.ts +1 -1
  165. package/dist/versioned-package/components/tag/tag.js +2 -2
  166. package/dist/versioned-package/components/teaser/teaser.js +1 -1
  167. package/dist/versioned-package/components/teaser-media/teaser-media.js +1 -1
  168. package/dist/versioned-package/components/textarea/textarea.d.ts +1 -1
  169. package/dist/versioned-package/components/textarea/textarea.js +2 -2
  170. package/dist/versioned-package/components/tooltip/tooltip.d.ts +1 -1
  171. package/dist/versioned-package/components/tooltip/tooltip.js +5 -5
  172. package/dist/versioned-package/components/video/video.d.ts +1 -1
  173. package/dist/versioned-package/components/video/video.js +2 -2
  174. package/dist/versioned-package/internal/form.js +3 -3
  175. package/dist/versioned-package/solid-components.d.ts +2 -0
  176. package/dist/versioned-package/solid-components.js +74 -70
  177. package/dist/versioned-package/styles/headline/headline.css.js +1 -1
  178. package/dist/versioned-package/styles/tailwind.css.js +1 -1
  179. package/dist/versioned-package/translations/de.js +8 -4
  180. package/dist/versioned-package/translations/en.js +8 -4
  181. package/dist/versioned-package/utilities/autocomplete-config.js +4 -4
  182. package/dist/versioned-package/utilities/localize.d.ts +4 -0
  183. package/dist/versioned-styles/solid-styles.css +1 -1
  184. package/dist/vscode.html-custom-data.json +371 -45
  185. package/dist/web-types.json +5471 -3959
  186. 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-22-17-input"]
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-22-17-tag ?disabled="${this.disabled}" part="tag" exportparts="
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-22-17-tag>`;
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-22-17-icon-button") !== null;
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
- if (this.value !== "") {
226
- this.setSelectedOptions([]);
227
- this.displayInput.focus({ preventScroll: true });
228
- this.updateComplete.then(() => {
229
- this.emit("sd-clear");
230
- this.emit("sd-input");
231
- this.emit("sd-change");
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-22-17-option");
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-22-17-option")) {
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-22-17-option").then(() => this.handleDefaultSlotChange());
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 (!this.disabled) {
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-22-17-option> elements
330
+ // Gets an array of all <sd-3-23-0-option> elements
289
331
  getAllOptions() {
290
- return [...this.querySelectorAll("sd-3-22-17-option")];
332
+ return [...this.querySelectorAll("sd-3-23-0-option")];
291
333
  }
292
- // Gets the first <sd-3-22-17-option> element
334
+ // Gets the first <sd-3-23-0-option> element
293
335
  getFirstOption() {
294
- return this.querySelector("sd-3-22-17-option");
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
- this.selectionChanged();
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
- this.selectionChanged();
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
- this.selectedOptions = this.getAllOptions().filter((el) => el.selected);
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
- return this.selectedOptions.map((option, index) => {
352
- if (index < this.maxOptionsVisible || this.maxOptionsVisible <= 0) {
353
- const tag = this.getTag(option, index);
354
- return html`<div @sd-remove="${(e) => this.handleTagRemove(e, option)}">${typeof tag === "string" ? unsafeHTML(tag) : tag}</div>`;
355
- } else if (index === this.maxOptionsVisible) {
356
- return html`<sd-3-22-17-tag size="${this.size === "sm" ? "sm" : "lg"}" ?disabled="${this.disabled}">+${this.selectedOptions.length - index}</sd-3-22-17-tag>`;
357
- }
358
- return html``;
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-22-17-popup and updates local state for conditional styling. */
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-22-17-option")) {
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-22-17-popup @sd-current-placement="${this.handleCurrentPlacement}" class="${cx(
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>` : ""} <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-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-22-17-icon class="${cx("text-icon-fill-neutral-800", iconSize)}" library="system" name="closing-round"></sd-3-22-17-icon></slot></button>` : ""} ${this.showInvalidStyle ? html`<sd-3-22-17-icon part="invalid-icon" class="${cx(iconMarginLeft, iconSize, "text-error")}" library="system" name="risk"></sd-3-22-17-icon>` : ""} ${this.styleOnValid && this.showValidStyle ? html`<sd-3-22-17-icon part="valid-icon" class="${cx("flex-shrink-0 text-success", iconMarginLeft, iconSize)}" library="system" name="status-check"></sd-3-22-17-icon>` : ""}<slot name="expand-icon" part="expand-icon" class="${cx(
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-22-17-icon name="chevron-down" part="chevron" library="system" color="currentColor"></sd-3-22-17-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(
537
- "bg-white px-2 py-3 relative border-primary overflow-y-auto",
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-22-17-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()}`;
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-22-17-icon": SdIcon,
545
- "sd-3-22-17-popup": SdPopup,
546
- "sd-3-22-17-tag": SdTag
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-22-17-popup::part(popup){z-index:var(--sd-z-index-dropdown,900);overflow-y:scroll}sd-3-22-17-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-22-17-tag[size=lg]::part(base){padding-left:var(--sd-spacing-2,.5rem);padding-right:var(--sd-spacing-2,.5rem)}sd-3-22-17-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))}`
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-22-17-option" })
621
+ queryAssignedElements({ selector: "sd-3-23-0-option" })
555
622
  ], SdSelect.prototype, "_optionsInDefaultSlot", 2);
556
623
  __decorateClass([
557
- query("sd-3-22-17-popup")
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-22-17-select")
746
+ customElement("sd-3-23-0-select")
677
747
  ], SdSelect);
678
748
  setDefaultAnimation("select.show", {
679
749
  keyframes: [
@@ -8,6 +8,6 @@ export default class SdSpinner extends SolidElement {
8
8
  }
9
9
  declare global {
10
10
  interface HTMLElementTagNameMap {
11
- 'sd-3-22-17-spinner': SdSpinner;
11
+ 'sd-3-23-0-spinner': SdSpinner;
12
12
  }
13
13
  }
@@ -39,7 +39,7 @@ __decorateClass([
39
39
  property({ reflect: true })
40
40
  ], SdSpinner.prototype, "color", 2);
41
41
  SdSpinner = __decorateClass([
42
- customElement("sd-3-22-17-spinner")
42
+ customElement("sd-3-23-0-spinner")
43
43
  ], SdSpinner);
44
44
  export {
45
45
  SdSpinner as default
@@ -22,6 +22,6 @@ export default class SdStep extends SolidElement {
22
22
  }
23
23
  declare global {
24
24
  interface HTMLElementTagNameMap {
25
- 'sd-3-22-17-step': SdStep;
25
+ 'sd-3-23-0-step': SdStep;
26
26
  }
27
27
  }
@@ -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-22-17-icon name="status-check" library="system"></sd-3-22-17-icon>` : html`${this.index}`}</slot></${tag}>${this.noTail ? "" : html`<div part="tail" class="${cx(
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-22-17-step")
139
+ customElement("sd-3-23-0-step")
140
140
  ], SdStep);
141
141
  export {
142
142
  SdStep as default
@@ -17,6 +17,6 @@ export default class SdStepGroup extends SolidElement {
17
17
  }
18
18
  declare global {
19
19
  interface HTMLElementTagNameMap {
20
- 'sd-3-22-17-step-group': SdStepGroup;
20
+ 'sd-3-23-0-step-group': SdStepGroup;
21
21
  }
22
22
  }
@@ -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-22-17-step");
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-22-17-step-group")
122
+ customElement("sd-3-23-0-step-group")
123
123
  ], SdStepGroup);
124
124
  export {
125
125
  SdStepGroup as default
@@ -34,6 +34,6 @@ export default class SdSwitch extends SolidElement implements SolidFormControl {
34
34
  }
35
35
  declare global {
36
36
  interface HTMLElementTagNameMap {
37
- 'sd-3-22-17-switch': SdSwitch;
37
+ 'sd-3-23-0-switch': SdSwitch;
38
38
  }
39
39
  }
@@ -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-22-17-switch")
165
+ customElement("sd-3-23-0-switch")
166
166
  ], SdSwitch);
167
167
  export {
168
168
  SdSwitch as default
@@ -17,6 +17,6 @@ export default class SdTab extends SolidElement {
17
17
  }
18
18
  declare global {
19
19
  interface HTMLElementTagNameMap {
20
- 'sd-3-22-17-tab': SdTab;
20
+ 'sd-3-23-0-tab': SdTab;
21
21
  }
22
22
  }
@@ -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-22-17-tab-${this.attrId}`;
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-22-17-tab")
90
+ customElement("sd-3-23-0-tab")
91
91
  ], SdTab);
92
92
  export {
93
93
  SdTab as default
@@ -32,6 +32,6 @@ export default class SdTabGroup extends SolidElement {
32
32
  }
33
33
  declare global {
34
34
  interface HTMLElementTagNameMap {
35
- 'sd-3-22-17-tab-group': SdTabGroup;
35
+ 'sd-3-23-0-tab-group': SdTabGroup;
36
36
  }
37
37
  }
@@ -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-22-17-tab"),
33
- customElements.whenDefined("sd-3-22-17-tab-panel")
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-22-17-tab" : el.tagName.toLowerCase() === "sd-3-22-17-tab" && !el.disabled;
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-22-17-tab-panel");
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-22-17-tab");
82
- const tabGroup = tab == null ? void 0 : tab.closest("sd-3-22-17-tab-group");
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-22-17-tab");
93
- const tabGroup = tab == null ? void 0 : tab.closest("sd-3-22-17-tab-group");
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-22-17-tab") {
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-22-17-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-22-17-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(
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-22-17-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-22-17-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>`;
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-22-17-tab-panel){--padding:1rem 0}`
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-22-17-tab-group")
246
+ customElement("sd-3-23-0-tab-group")
247
247
  ], SdTabGroup);
248
248
  export {
249
249
  SdTabGroup as default
@@ -11,6 +11,6 @@ export default class SdTabPanel extends SolidElement {
11
11
  }
12
12
  declare global {
13
13
  interface HTMLElementTagNameMap {
14
- 'sd-3-22-17-tab-panel': SdTabPanel;
14
+ 'sd-3-23-0-tab-panel': SdTabPanel;
15
15
  }
16
16
  }
@@ -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-22-17-tab-panel-${this.attrId}`;
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-22-17-tab-panel")
54
+ customElement("sd-3-23-0-tab-panel")
55
55
  ], SdTabPanel);
56
56
  export {
57
57
  SdTabPanel as default
@@ -21,6 +21,6 @@ export default class SdTag extends SolidElement {
21
21
  }
22
22
  declare global {
23
23
  interface HTMLElementTagNameMap {
24
- 'sd-3-22-17-tag': SdTag;
24
+ 'sd-3-23-0-tag': SdTag;
25
25
  }
26
26
  }