@solid-design-system/components 3.22.17 → 3.23.0

Sign up to get free protection for your applications and to get access to all the features.
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
  }