@solid-design-system/components 3.22.18 → 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 +5 -1
  19. package/dist/package/components/select/select.js +94 -29
  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 +7 -4
  24. package/dist/package/translations/en.js +7 -4
  25. package/dist/package/utilities/localize.d.ts +3 -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 +9 -5
  149. package/dist/versioned-package/components/select/select.js +115 -50
  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 +7 -4
  180. package/dist/versioned-package/translations/en.js +7 -4
  181. package/dist/versioned-package/utilities/autocomplete-config.js +4 -4
  182. package/dist/versioned-package/utilities/localize.d.ts +3 -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,7 +31,7 @@ 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-18-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);
@@ -63,11 +63,11 @@ let SdSelect = class extends SolidElement {
63
63
  this.styleOnValid = false;
64
64
  this.hoist = false;
65
65
  this.getTag = (option) => {
66
- return html`<sd-3-22-18-tag ?disabled="${this.disabled}" part="tag" exportparts="
66
+ return html`<sd-3-23-0-tag ?disabled="${this.disabled}" part="tag" exportparts="
67
67
  base:tag__base,
68
68
  content:tag__content,
69
69
  removable-indicator:tag__removable-indicator,
70
- " size="${this.size === "sm" ? "sm" : "lg"}" removable @sd-remove="${(event) => this.handleTagRemove(event, option)}">${option.getTextLabel()}</sd-3-22-18-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>`;
71
71
  };
72
72
  this.handleDocumentFocusIn = (event) => {
73
73
  const path = event.composedPath();
@@ -78,7 +78,7 @@ let SdSelect = class extends SolidElement {
78
78
  this.handleDocumentKeyDown = (event) => {
79
79
  const target = event.target;
80
80
  const isClearButton = target.closest(".select__clear") !== null;
81
- const isIconButton = target.closest("sd-3-22-18-icon-button") !== null;
81
+ const isIconButton = target.closest("sd-3-23-0-icon-button") !== null;
82
82
  if (isClearButton || isIconButton) {
83
83
  return;
84
84
  }
@@ -182,9 +182,11 @@ let SdSelect = class extends SolidElement {
182
182
  }
183
183
  connectedCallback() {
184
184
  super.connectedCallback();
185
- this.applySizeToOptions();
186
185
  this.open = false;
187
186
  }
187
+ firstUpdated() {
188
+ this.applySizeToOptions();
189
+ }
188
190
  addOpenListeners() {
189
191
  document.addEventListener("focusin", this.handleDocumentFocusIn);
190
192
  document.addEventListener("keydown", this.handleDocumentKeyDown);
@@ -204,6 +206,40 @@ let SdSelect = class extends SolidElement {
204
206
  this.hasFocus = false;
205
207
  this.emit("sd-blur");
206
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
+ }
207
243
  handleLabelClick() {
208
244
  this.displayInput.focus();
209
245
  }
@@ -223,15 +259,16 @@ let SdSelect = class extends SolidElement {
223
259
  }
224
260
  handleClearClick(event) {
225
261
  event.stopPropagation();
226
- if (this.value !== "") {
227
- this.setSelectedOptions([]);
228
- this.displayInput.focus({ preventScroll: true });
229
- this.updateComplete.then(() => {
230
- this.emit("sd-clear");
231
- this.emit("sd-input");
232
- this.emit("sd-change");
233
- });
234
- }
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
+ });
235
272
  }
236
273
  handleClearMouseDown(event) {
237
274
  event.stopPropagation();
@@ -239,7 +276,7 @@ let SdSelect = class extends SolidElement {
239
276
  }
240
277
  handleOptionClick(event) {
241
278
  const target = event.target;
242
- const option = target.closest("sd-3-22-18-option");
279
+ const option = target.closest("sd-3-23-0-option");
243
280
  const oldValue = this.value;
244
281
  if (option && !option.disabled) {
245
282
  if (this.multiple) {
@@ -264,7 +301,7 @@ let SdSelect = class extends SolidElement {
264
301
  const allOptions = this.getAllOptions();
265
302
  const value = Array.isArray(this.value) ? this.value : [this.value];
266
303
  const values = [];
267
- if (customElements.get("sd-3-22-18-option")) {
304
+ if (customElements.get("sd-3-23-0-option")) {
268
305
  allOptions.forEach((option) => {
269
306
  if (this.multiple) {
270
307
  option.checkbox = true;
@@ -273,12 +310,15 @@ let SdSelect = class extends SolidElement {
273
310
  });
274
311
  this.setSelectedOptions(allOptions.filter((el) => value.includes(el.value)));
275
312
  } else {
276
- customElements.whenDefined("sd-3-22-18-option").then(() => this.handleDefaultSlotChange());
313
+ customElements.whenDefined("sd-3-23-0-option").then(() => this.handleDefaultSlotChange());
277
314
  }
278
315
  }
279
316
  handleTagRemove(event, option) {
280
317
  event.stopPropagation();
281
- if (!this.disabled) {
318
+ if (!option) {
319
+ this.clearSelect();
320
+ }
321
+ if (option && !this.disabled) {
282
322
  this.toggleOptionSelection(option, false);
283
323
  this.deletedTagLabel = this.localize.term("removed", option.textContent);
284
324
  this.updateComplete.then(() => {
@@ -287,13 +327,13 @@ let SdSelect = class extends SolidElement {
287
327
  });
288
328
  }
289
329
  }
290
- // Gets an array of all <sd-3-22-18-option> elements
330
+ // Gets an array of all <sd-3-23-0-option> elements
291
331
  getAllOptions() {
292
- return [...this.querySelectorAll("sd-3-22-18-option")];
332
+ return [...this.querySelectorAll("sd-3-23-0-option")];
293
333
  }
294
- // Gets the first <sd-3-22-18-option> element
334
+ // Gets the first <sd-3-23-0-option> element
295
335
  getFirstOption() {
296
- return this.querySelector("sd-3-22-18-option");
336
+ return this.querySelector("sd-3-23-0-option");
297
337
  }
298
338
  // Sets the current option, which is the option the user is currently interacting with (e.g. via keyboard). Only one
299
339
  // option may be "current" at a time.
@@ -318,7 +358,11 @@ let SdSelect = class extends SolidElement {
318
358
  if (newSelectedOptions.length) {
319
359
  newSelectedOptions.forEach((el) => el.selected = true);
320
360
  }
321
- this.selectionChanged();
361
+ if (Array.isArray(option)) {
362
+ this.selectionChanged();
363
+ } else {
364
+ this.selectionChanged(option);
365
+ }
322
366
  }
323
367
  // Toggles an option's selected state
324
368
  toggleOptionSelection(option, force) {
@@ -327,13 +371,25 @@ let SdSelect = class extends SolidElement {
327
371
  } else {
328
372
  option.selected = !option.selected;
329
373
  }
330
- this.selectionChanged();
374
+ if (Array.isArray(option)) {
375
+ this.selectionChanged();
376
+ } else {
377
+ this.selectionChanged(option);
378
+ }
331
379
  }
332
380
  // This method must be called whenever the selection changes. It will update the selected options cache, the current
333
381
  // value, and the display value
334
- selectionChanged() {
382
+ selectionChanged(option) {
335
383
  var _a, _b;
336
- 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
+ }
337
393
  if (this.multiple) {
338
394
  this.value = this.selectedOptions.map((el) => el.value);
339
395
  if (this.useTags || this.value.length === 0) {
@@ -350,15 +406,23 @@ let SdSelect = class extends SolidElement {
350
406
  });
351
407
  }
352
408
  get tags() {
353
- return this.selectedOptions.map((option, index) => {
354
- if (index < this.maxOptionsVisible || this.maxOptionsVisible <= 0) {
355
- const tag = this.getTag(option, index);
356
- return html`<div @sd-remove="${(e) => this.handleTagRemove(e, option)}">${typeof tag === "string" ? unsafeHTML(tag) : tag}</div>`;
357
- } else if (index === this.maxOptionsVisible) {
358
- return html`<sd-3-22-18-tag size="${this.size === "sm" ? "sm" : "lg"}" ?disabled="${this.disabled}">+${this.selectedOptions.length - index}</sd-3-22-18-tag>`;
359
- }
360
- return html``;
361
- });
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
+ }
362
426
  }
363
427
  handleInvalid(event) {
364
428
  this.formControlController.setValidity(false);
@@ -371,7 +435,7 @@ let SdSelect = class extends SolidElement {
371
435
  handleMouseLeave() {
372
436
  this.hasHover = false;
373
437
  }
374
- /** Receives incoming event detail from sd-3-22-18-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. */
375
439
  handleCurrentPlacement(e) {
376
440
  const incomingPlacement = e.detail;
377
441
  if (incomingPlacement) {
@@ -380,7 +444,7 @@ let SdSelect = class extends SolidElement {
380
444
  }
381
445
  handleUseTagsChange() {
382
446
  const allOptions = this.getAllOptions();
383
- if (customElements.get("sd-3-22-18-option")) {
447
+ if (customElements.get("sd-3-23-0-option")) {
384
448
  allOptions.forEach((option) => {
385
449
  option.checkbox = this.multiple;
386
450
  });
@@ -394,7 +458,7 @@ let SdSelect = class extends SolidElement {
394
458
  }
395
459
  async handleOpenChange() {
396
460
  if (this.open && !this.disabled) {
397
- this.setCurrentOption(this.selectedOptions[0] || this.getFirstOption());
461
+ if (!this.multiple) this.setCurrentOption(this.selectedOptions[0] || this.getFirstOption());
398
462
  this.emit("sd-show");
399
463
  this.addOpenListeners();
400
464
  await stopAnimations(this);
@@ -426,6 +490,7 @@ let SdSelect = class extends SolidElement {
426
490
  });
427
491
  }
428
492
  handleValueChange() {
493
+ if (this.selectedOptions.length === (Array.isArray(this.value) ? this.value.length : 1)) return;
429
494
  const allOptions = this.getAllOptions();
430
495
  const value = Array.isArray(this.value) ? this.value : [this.value];
431
496
  this.setSelectedOptions(allOptions.filter((el) => value.includes(el.value)));
@@ -513,7 +578,7 @@ let SdSelect = class extends SolidElement {
513
578
  default: "border-neutral-800"
514
579
  }[selectState],
515
580
  this.open && (this.currentPlacement === "bottom" ? "rounded-bl-none rounded-br-none" : "rounded-tl-none rounded-tr-none")
516
- )}"></div><sd-3-22-18-popup @sd-current-placement="${this.handleCurrentPlacement}" class="${cx(
581
+ )}"></div><sd-3-23-0-popup @sd-current-placement="${this.handleCurrentPlacement}" class="${cx(
517
582
  "inline-flex relative w-full",
518
583
  this.currentPlacement === "bottom" ? "origin-top" : "origin-bottom"
519
584
  )}" placement="${this.placement}" strategy="${this.hoist ? "fixed" : "absolute"}" flip shift sync="width" auto-size="vertical" auto-size-padding="10" exportparts="
@@ -530,33 +595,33 @@ let SdSelect = class extends SolidElement {
530
595
  "appearance-none outline-none flex-grow bg-transparent w-full placeholder-neutral-700",
531
596
  cursorStyles,
532
597
  this.multiple && this.useTags && this.value.length > 0 ? "hidden" : ""
533
- )}" 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>` : ""} <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-18-icon class="${cx("text-icon-fill-neutral-800", iconSize)}" library="system" name="closing-round"></sd-3-22-18-icon></slot></button>` : ""} ${this.showInvalidStyle ? html`<sd-3-22-18-icon part="invalid-icon" class="${cx(iconMarginLeft, iconSize, "text-error")}" library="system" name="risk"></sd-3-22-18-icon>` : ""} ${this.styleOnValid && this.showValidStyle ? html`<sd-3-22-18-icon part="valid-icon" class="${cx("flex-shrink-0 text-success", iconMarginLeft, iconSize)}" library="system" name="status-check"></sd-3-22-18-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(
534
599
  "inline-flex ml-2 transition-all",
535
600
  this.open ? "rotate-180" : "rotate-0",
536
601
  this.disabled ? "text-neutral-500" : "text-primary",
537
602
  iconSize
538
- )}"><sd-3-22-18-icon name="chevron-down" part="chevron" library="system" color="currentColor"></sd-3-22-18-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(
539
- "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",
540
605
  this.open && "shadow",
541
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"
542
- )}" tabindex="-1" @mouseup="${this.handleOptionClick}" @slotchange="${this.handleDefaultSlotChange}"><slot></slot></div></sd-3-22-18-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()}`;
543
608
  }
544
609
  };
545
610
  SdSelect.dependencies = {
546
- "sd-3-22-18-icon": SdIcon,
547
- "sd-3-22-18-popup": SdPopup,
548
- "sd-3-22-18-tag": SdTag
611
+ "sd-3-23-0-icon": SdIcon,
612
+ "sd-3-23-0-popup": SdPopup,
613
+ "sd-3-23-0-tag": SdTag
549
614
  };
550
615
  SdSelect.styles = [
551
616
  componentStyles,
552
617
  SolidElement.styles,
553
- 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-18-popup::part(popup){z-index:var(--sd-z-index-dropdown,900);overflow-y:scroll}sd-3-22-18-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-18-tag[size=lg]::part(base){padding-left:var(--sd-spacing-2,.5rem);padding-right:var(--sd-spacing-2,.5rem)}sd-3-22-18-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))}`
554
619
  ];
555
620
  __decorateClass([
556
- queryAssignedElements({ selector: "sd-3-22-18-option" })
621
+ queryAssignedElements({ selector: "sd-3-23-0-option" })
557
622
  ], SdSelect.prototype, "_optionsInDefaultSlot", 2);
558
623
  __decorateClass([
559
- query("sd-3-22-18-popup")
624
+ query("sd-3-23-0-popup")
560
625
  ], SdSelect.prototype, "popup", 2);
561
626
  __decorateClass([
562
627
  query('[part="combobox"]')
@@ -678,7 +743,7 @@ __decorateClass([
678
743
  watch("value", { waitUntilFirstUpdate: true })
679
744
  ], SdSelect.prototype, "handleValueChange", 1);
680
745
  SdSelect = __decorateClass([
681
- customElement("sd-3-22-18-select")
746
+ customElement("sd-3-23-0-select")
682
747
  ], SdSelect);
683
748
  setDefaultAnimation("select.show", {
684
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-18-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-18-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-18-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-18-icon name="status-check" library="system"></sd-3-22-18-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-18-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-18-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-18-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-18-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-18-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-18-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-18-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-18-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-18-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-18-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-18-tab"),
33
- customElements.whenDefined("sd-3-22-18-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-18-tab" : el.tagName.toLowerCase() === "sd-3-22-18-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-18-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-18-tab");
82
- const tabGroup = tab == null ? void 0 : tab.closest("sd-3-22-18-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-18-tab");
93
- const tabGroup = tab == null ? void 0 : tab.closest("sd-3-22-18-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-18-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-18-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-18-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-18-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-18-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-18-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-18-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-18-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-18-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-18-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-18-tag': SdTag;
24
+ 'sd-3-23-0-tag': SdTag;
25
25
  }
26
26
  }
@@ -74,7 +74,7 @@ let SdTag = class extends SolidElement {
74
74
  lg: "text-base",
75
75
  sm: "text-[12px]"
76
76
  }[this.size]
77
- )}"><sd-3-22-18-icon library="system" name="close" label="remove"></sd-3-22-18-icon></slot>` : ""}</${tag}>`;
77
+ )}"><sd-3-23-0-icon library="system" name="close" label="remove"></sd-3-23-0-icon></slot>` : ""}</${tag}>`;
78
78
  }
79
79
  };
80
80
  SdTag.styles = [
@@ -109,7 +109,7 @@ __decorateClass([
109
109
  property()
110
110
  ], SdTag.prototype, "download", 2);
111
111
  SdTag = __decorateClass([
112
- customElement("sd-3-22-18-tag")
112
+ customElement("sd-3-23-0-tag")
113
113
  ], SdTag);
114
114
  export {
115
115
  SdTag as default
@@ -99,7 +99,7 @@ __decorateClass([
99
99
  state()
100
100
  ], SdTeaser.prototype, "_orientation", 2);
101
101
  SdTeaser = __decorateClass([
102
- customElement("sd-3-22-18-teaser")
102
+ customElement("sd-3-23-0-teaser")
103
103
  ], SdTeaser);
104
104
  export {
105
105
  SdTeaser as default