@solid-design-system/components 3.22.18 → 3.23.1

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 (196) hide show
  1. package/dist/components/es/combobox.js +11 -0
  2. package/dist/components/es/dropdown.js +1 -1
  3. package/dist/components/es/map-marker.js +1 -1
  4. package/dist/components/es/navigation-item.js +1 -1
  5. package/dist/components/es/optgroup.js +1 -0
  6. package/dist/components/es/option-renderer.js +1 -0
  7. package/dist/components/es/select.js +7 -3
  8. package/dist/components/es/solid-components2.js +7 -7
  9. package/dist/components/es/tabbable.js +1 -1
  10. package/dist/components/es/utils.js +1 -0
  11. package/dist/components/umd/solid-components.js +37 -23
  12. package/dist/custom-elements.json +1 -1
  13. package/dist/package/components/combobox/combobox.d.ts +129 -0
  14. package/dist/package/components/combobox/combobox.js +958 -0
  15. package/dist/package/components/combobox/option-renderer.d.ts +5 -0
  16. package/dist/package/components/combobox/option-renderer.js +4 -0
  17. package/dist/package/components/combobox/utils.d.ts +8 -0
  18. package/dist/package/components/combobox/utils.js +14 -0
  19. package/dist/package/components/dropdown/dropdown.d.ts +2 -1
  20. package/dist/package/components/dropdown/dropdown.js +37 -28
  21. package/dist/package/components/navigation-item/navigation-item.d.ts +1 -0
  22. package/dist/package/components/navigation-item/navigation-item.js +4 -1
  23. package/dist/package/components/optgroup/optgroup.d.ts +20 -0
  24. package/dist/package/components/optgroup/optgroup.js +68 -0
  25. package/dist/package/components/select/select.d.ts +5 -1
  26. package/dist/package/components/select/select.js +94 -29
  27. package/dist/package/internal/tabbable.js +1 -1
  28. package/dist/package/solid-components.d.ts +2 -0
  29. package/dist/package/solid-components.js +74 -70
  30. package/dist/package/styles/tailwind.css.js +1 -1
  31. package/dist/package/translations/de.js +7 -4
  32. package/dist/package/translations/en.js +7 -4
  33. package/dist/package/utilities/localize.d.ts +3 -0
  34. package/dist/versioned-components/es/accordion-group.js +1 -1
  35. package/dist/versioned-components/es/accordion.js +1 -1
  36. package/dist/versioned-components/es/audio.js +1 -1
  37. package/dist/versioned-components/es/badge.js +1 -1
  38. package/dist/versioned-components/es/brandshape.js +1 -1
  39. package/dist/versioned-components/es/button.js +1 -1
  40. package/dist/versioned-components/es/carousel-item.js +1 -1
  41. package/dist/versioned-components/es/carousel.js +3 -3
  42. package/dist/versioned-components/es/checkbox-group.js +1 -1
  43. package/dist/versioned-components/es/checkbox.js +1 -1
  44. package/dist/versioned-components/es/combobox.js +11 -0
  45. package/dist/versioned-components/es/dialog.js +1 -1
  46. package/dist/versioned-components/es/divider.js +1 -1
  47. package/dist/versioned-components/es/drawer.js +1 -1
  48. package/dist/versioned-components/es/dropdown.js +1 -1
  49. package/dist/versioned-components/es/expandable.js +1 -1
  50. package/dist/versioned-components/es/flipcard.js +1 -1
  51. package/dist/versioned-components/es/form.js +1 -1
  52. package/dist/versioned-components/es/header.js +1 -1
  53. package/dist/versioned-components/es/icon.js +1 -1
  54. package/dist/versioned-components/es/include.js +1 -1
  55. package/dist/versioned-components/es/input.js +1 -1
  56. package/dist/versioned-components/es/link.js +1 -1
  57. package/dist/versioned-components/es/map-marker.js +1 -1
  58. package/dist/versioned-components/es/navigation-item.js +1 -1
  59. package/dist/versioned-components/es/notification.js +1 -1
  60. package/dist/versioned-components/es/optgroup.js +1 -0
  61. package/dist/versioned-components/es/option-renderer.js +1 -0
  62. package/dist/versioned-components/es/option.js +1 -1
  63. package/dist/versioned-components/es/quickfact.js +1 -1
  64. package/dist/versioned-components/es/radio-button.js +1 -1
  65. package/dist/versioned-components/es/radio-group.js +1 -1
  66. package/dist/versioned-components/es/radio.js +1 -1
  67. package/dist/versioned-components/es/scrollable.js +1 -1
  68. package/dist/versioned-components/es/select.js +7 -3
  69. package/dist/versioned-components/es/solid-components2.js +7 -7
  70. package/dist/versioned-components/es/spinner.js +1 -1
  71. package/dist/versioned-components/es/step-group.js +1 -1
  72. package/dist/versioned-components/es/step.js +1 -1
  73. package/dist/versioned-components/es/switch.js +1 -1
  74. package/dist/versioned-components/es/tab-group.js +1 -1
  75. package/dist/versioned-components/es/tab-panel.js +1 -1
  76. package/dist/versioned-components/es/tab.js +1 -1
  77. package/dist/versioned-components/es/tabbable.js +1 -1
  78. package/dist/versioned-components/es/tag.js +1 -1
  79. package/dist/versioned-components/es/teaser-media.js +1 -1
  80. package/dist/versioned-components/es/teaser.js +1 -1
  81. package/dist/versioned-components/es/textarea.js +1 -1
  82. package/dist/versioned-components/es/tooltip.js +2 -2
  83. package/dist/versioned-components/es/utils.js +1 -0
  84. package/dist/versioned-components/es/video.js +1 -1
  85. package/dist/versioned-package/_components/button-group/button-group.d.ts +1 -1
  86. package/dist/versioned-package/_components/button-group/button-group.js +11 -11
  87. package/dist/versioned-package/components/accordion/accordion.d.ts +1 -1
  88. package/dist/versioned-package/components/accordion/accordion.js +2 -2
  89. package/dist/versioned-package/components/accordion-group/accordion-group.d.ts +1 -1
  90. package/dist/versioned-package/components/accordion-group/accordion-group.js +3 -3
  91. package/dist/versioned-package/components/audio/audio.d.ts +1 -1
  92. package/dist/versioned-package/components/audio/audio.js +6 -6
  93. package/dist/versioned-package/components/badge/badge.d.ts +1 -1
  94. package/dist/versioned-package/components/badge/badge.js +1 -1
  95. package/dist/versioned-package/components/brandshape/brandshape.d.ts +1 -1
  96. package/dist/versioned-package/components/brandshape/brandshape.js +1 -1
  97. package/dist/versioned-package/components/button/button.d.ts +1 -1
  98. package/dist/versioned-package/components/button/button.js +4 -4
  99. package/dist/versioned-package/components/carousel/carousel.d.ts +1 -1
  100. package/dist/versioned-package/components/carousel/carousel.js +6 -6
  101. package/dist/versioned-package/components/carousel-item/carousel-item.d.ts +1 -1
  102. package/dist/versioned-package/components/carousel-item/carousel-item.js +1 -1
  103. package/dist/versioned-package/components/checkbox/checkbox.d.ts +1 -1
  104. package/dist/versioned-package/components/checkbox/checkbox.js +3 -3
  105. package/dist/versioned-package/components/checkbox-group/checkbox-group.d.ts +1 -1
  106. package/dist/versioned-package/components/checkbox-group/checkbox-group.js +5 -5
  107. package/dist/versioned-package/components/combobox/combobox.d.ts +129 -0
  108. package/dist/versioned-package/components/combobox/combobox.js +958 -0
  109. package/dist/versioned-package/components/combobox/option-renderer.d.ts +5 -0
  110. package/dist/versioned-package/components/combobox/option-renderer.js +4 -0
  111. package/dist/versioned-package/components/combobox/utils.d.ts +8 -0
  112. package/dist/versioned-package/components/combobox/utils.js +14 -0
  113. package/dist/versioned-package/components/dialog/dialog.d.ts +1 -1
  114. package/dist/versioned-package/components/dialog/dialog.js +2 -2
  115. package/dist/versioned-package/components/divider/divider.d.ts +1 -1
  116. package/dist/versioned-package/components/divider/divider.js +2 -2
  117. package/dist/versioned-package/components/drawer/drawer.d.ts +1 -1
  118. package/dist/versioned-package/components/drawer/drawer.js +2 -2
  119. package/dist/versioned-package/components/dropdown/dropdown.d.ts +3 -2
  120. package/dist/versioned-package/components/dropdown/dropdown.js +42 -33
  121. package/dist/versioned-package/components/expandable/expandable.d.ts +1 -1
  122. package/dist/versioned-package/components/expandable/expandable.js +2 -2
  123. package/dist/versioned-package/components/flipcard/flipcard.d.ts +1 -1
  124. package/dist/versioned-package/components/flipcard/flipcard.js +1 -1
  125. package/dist/versioned-package/components/header/header.d.ts +1 -1
  126. package/dist/versioned-package/components/header/header.js +4 -4
  127. package/dist/versioned-package/components/icon/icon.d.ts +1 -1
  128. package/dist/versioned-package/components/icon/icon.js +1 -1
  129. package/dist/versioned-package/components/include/include.d.ts +1 -1
  130. package/dist/versioned-package/components/include/include.js +1 -1
  131. package/dist/versioned-package/components/input/input.d.ts +1 -1
  132. package/dist/versioned-package/components/input/input.js +3 -3
  133. package/dist/versioned-package/components/link/link.d.ts +1 -1
  134. package/dist/versioned-package/components/link/link.js +2 -2
  135. package/dist/versioned-package/components/map-marker/map-marker.d.ts +1 -1
  136. package/dist/versioned-package/components/map-marker/map-marker.js +1 -1
  137. package/dist/versioned-package/components/navigation-item/navigation-item.d.ts +2 -1
  138. package/dist/versioned-package/components/navigation-item/navigation-item.js +9 -6
  139. package/dist/versioned-package/components/notification/notification.d.ts +1 -1
  140. package/dist/versioned-package/components/notification/notification.js +5 -5
  141. package/dist/versioned-package/components/optgroup/optgroup.d.ts +20 -0
  142. package/dist/versioned-package/components/optgroup/optgroup.js +68 -0
  143. package/dist/versioned-package/components/option/option.d.ts +1 -1
  144. package/dist/versioned-package/components/option/option.js +2 -2
  145. package/dist/versioned-package/components/popup/popup.d.ts +1 -1
  146. package/dist/versioned-package/components/popup/popup.js +1 -1
  147. package/dist/versioned-package/components/quickfact/quickfact.d.ts +1 -1
  148. package/dist/versioned-package/components/quickfact/quickfact.js +2 -2
  149. package/dist/versioned-package/components/radio/radio.d.ts +1 -1
  150. package/dist/versioned-package/components/radio/radio.js +2 -2
  151. package/dist/versioned-package/components/radio-button/radio-button.d.ts +1 -1
  152. package/dist/versioned-package/components/radio-button/radio-button.js +2 -2
  153. package/dist/versioned-package/components/radio-group/radio-group.d.ts +2 -2
  154. package/dist/versioned-package/components/radio-group/radio-group.js +13 -13
  155. package/dist/versioned-package/components/scrollable/scrollable.d.ts +1 -1
  156. package/dist/versioned-package/components/scrollable/scrollable.js +3 -3
  157. package/dist/versioned-package/components/select/select.d.ts +9 -5
  158. package/dist/versioned-package/components/select/select.js +115 -50
  159. package/dist/versioned-package/components/spinner/spinner.d.ts +1 -1
  160. package/dist/versioned-package/components/spinner/spinner.js +1 -1
  161. package/dist/versioned-package/components/step/step.d.ts +1 -1
  162. package/dist/versioned-package/components/step/step.js +2 -2
  163. package/dist/versioned-package/components/step-group/step-group.d.ts +1 -1
  164. package/dist/versioned-package/components/step-group/step-group.js +2 -2
  165. package/dist/versioned-package/components/switch/switch.d.ts +1 -1
  166. package/dist/versioned-package/components/switch/switch.js +1 -1
  167. package/dist/versioned-package/components/tab/tab.d.ts +1 -1
  168. package/dist/versioned-package/components/tab/tab.js +2 -2
  169. package/dist/versioned-package/components/tab-group/tab-group.d.ts +1 -1
  170. package/dist/versioned-package/components/tab-group/tab-group.js +13 -13
  171. package/dist/versioned-package/components/tab-panel/tab-panel.d.ts +1 -1
  172. package/dist/versioned-package/components/tab-panel/tab-panel.js +2 -2
  173. package/dist/versioned-package/components/tag/tag.d.ts +1 -1
  174. package/dist/versioned-package/components/tag/tag.js +2 -2
  175. package/dist/versioned-package/components/teaser/teaser.js +1 -1
  176. package/dist/versioned-package/components/teaser-media/teaser-media.js +1 -1
  177. package/dist/versioned-package/components/textarea/textarea.d.ts +1 -1
  178. package/dist/versioned-package/components/textarea/textarea.js +2 -2
  179. package/dist/versioned-package/components/tooltip/tooltip.d.ts +1 -1
  180. package/dist/versioned-package/components/tooltip/tooltip.js +5 -5
  181. package/dist/versioned-package/components/video/video.d.ts +1 -1
  182. package/dist/versioned-package/components/video/video.js +2 -2
  183. package/dist/versioned-package/internal/form.js +3 -3
  184. package/dist/versioned-package/internal/tabbable.js +1 -1
  185. package/dist/versioned-package/solid-components.d.ts +2 -0
  186. package/dist/versioned-package/solid-components.js +74 -70
  187. package/dist/versioned-package/styles/headline/headline.css.js +1 -1
  188. package/dist/versioned-package/styles/tailwind.css.js +1 -1
  189. package/dist/versioned-package/translations/de.js +7 -4
  190. package/dist/versioned-package/translations/en.js +7 -4
  191. package/dist/versioned-package/utilities/autocomplete-config.js +4 -4
  192. package/dist/versioned-package/utilities/localize.d.ts +3 -0
  193. package/dist/versioned-styles/solid-styles.css +1 -1
  194. package/dist/vscode.html-custom-data.json +373 -47
  195. package/dist/web-types.json +3335 -1813
  196. package/package.json +3 -3
@@ -0,0 +1,5 @@
1
+ import type { TemplateResult } from 'lit';
2
+ import type SdOption from '../option/option.js';
3
+ export type OptionRenderer = (option: SdOption, query?: string) => TemplateResult | string | HTMLElement;
4
+ export declare const defaultOptionRenderer: OptionRenderer;
5
+ export declare const highlightOptionRenderer: OptionRenderer;
@@ -0,0 +1,4 @@
1
+ const defaultOptionRenderer = (option) => option;
2
+ export {
3
+ defaultOptionRenderer
4
+ };
@@ -0,0 +1,8 @@
1
+ import type SdOptGroup from '../optgroup/optgroup.js';
2
+ import type SdOption from '../option/option.js';
3
+ export declare const getAssignedElementsForSlot: (slot: HTMLSlotElement) => HTMLElement[];
4
+ export declare const getOptionOrNestedOptions: (item: HTMLElement) => SdOption | SdOption[];
5
+ export declare const isOptgroup: (item: HTMLElement) => item is SdOptGroup;
6
+ export declare const getAllOptions: (items: HTMLElement[]) => (SdOption | SdOption[])[];
7
+ export declare const filterOnlyOptgroups: (items: HTMLElement[]) => SdOptGroup[];
8
+ export declare const normalizeString: (str: string) => string;
@@ -0,0 +1,14 @@
1
+ const getAssignedElementsForSlot = (slot) => Array.from(slot.assignedElements({ flatten: true }));
2
+ const getOptionOrNestedOptions = (item) => item.tagName.toLocaleLowerCase() === "sd-3-23-1-option" ? item : Array.from(item.querySelectorAll(":scope > sd-3-23-1-option"));
3
+ const isOptgroup = (item) => item.tagName.toLocaleLowerCase() === "sd-3-23-1-optgroup";
4
+ const getAllOptions = (items) => items.map(getOptionOrNestedOptions);
5
+ const filterOnlyOptgroups = (items) => items.filter(isOptgroup);
6
+ const normalizeString = (str) => str.normalize("NFD").replace(/[\u0300-\u036f]/g, "").toLowerCase();
7
+ export {
8
+ filterOnlyOptgroups,
9
+ getAllOptions,
10
+ getAssignedElementsForSlot,
11
+ getOptionOrNestedOptions,
12
+ isOptgroup,
13
+ normalizeString
14
+ };
@@ -28,6 +28,6 @@ export default class SdDialog extends SolidElement {
28
28
  }
29
29
  declare global {
30
30
  interface HTMLElementTagNameMap {
31
- 'sd-3-22-18-dialog': SdDialog;
31
+ 'sd-3-23-1-dialog': SdDialog;
32
32
  }
33
33
  }
@@ -157,7 +157,7 @@ let SdDialog = class extends SolidElement {
157
157
  )}"><div part="overlay" class="fixed inset-0 bg-primary-800 opacity-90" @click="${() => this.requestClose("overlay")}" tabindex="-1"></div><div part="panel" class="${cx(
158
158
  "flex flex-col z-20 bg-white focus:outline-none py-4 sm:py-8 relative gap-6",
159
159
  this.open && "flex opacity-100"
160
- )}" role="dialog" aria-modal="true" aria-hidden="${this.open ? "false" : "true"}" aria-label="${this.headline}" aria-labelledby="title" tabindex="0"><header part="header" class="flex flex-grow-0 flex-shrink-0 basis-auto px-6 sm:px-10"><h2 part="title" class="flex-auto m-0" id="title">${this.headline.length > 0 ? html`<h4 class="sd-headline sd-headline--size-3xl leading-tight">${this.headline}</h4>` : html`<slot name="headline"></slot>`}</h2>${!this.noCloseButton ? html`<sd-3-22-18-button part="close-button" variant="tertiary" exportparts="base:close-button__base" class="${cx("absolute top-2 right-2")}" name="x-lg" @click="${() => this.requestClose("close-button")}" type="button"><sd-3-22-18-icon label="${this.localize.term("close")}" name="close" library="system" color="currentColor"></sd-3-22-18-icon></sd-3-22-18-button>` : ""}</header><main part="body" class="flex flex-auto overflow-auto w-full px-6 sm:px-10"><slot></slot></main><footer part="footer" class="flex flex-grow-0 flex-shrink-0 basis-auto ml-auto gap-4 px-6 sm:px-10"><slot name="footer"></slot></footer></div></div>`;
160
+ )}" role="dialog" aria-modal="true" aria-hidden="${this.open ? "false" : "true"}" aria-label="${this.headline}" aria-labelledby="title" tabindex="0"><header part="header" class="flex flex-grow-0 flex-shrink-0 basis-auto px-6 sm:px-10"><h2 part="title" class="flex-auto m-0" id="title">${this.headline.length > 0 ? html`<h4 class="sd-headline sd-headline--size-3xl leading-tight">${this.headline}</h4>` : html`<slot name="headline"></slot>`}</h2>${!this.noCloseButton ? html`<sd-3-23-1-button part="close-button" variant="tertiary" exportparts="base:close-button__base" class="${cx("absolute top-2 right-2")}" name="x-lg" @click="${() => this.requestClose("close-button")}" type="button"><sd-3-23-1-icon label="${this.localize.term("close")}" name="close" library="system" color="currentColor"></sd-3-23-1-icon></sd-3-23-1-button>` : ""}</header><main part="body" class="flex flex-auto overflow-auto w-full px-6 sm:px-10"><slot></slot></main><footer part="footer" class="flex flex-grow-0 flex-shrink-0 basis-auto ml-auto gap-4 px-6 sm:px-10"><slot name="footer"></slot></footer></div></div>`;
161
161
  }
162
162
  };
163
163
  SdDialog.styles = [
@@ -188,7 +188,7 @@ __decorateClass([
188
188
  watch("open", { waitUntilFirstUpdate: true })
189
189
  ], SdDialog.prototype, "handleOpenChange", 1);
190
190
  SdDialog = __decorateClass([
191
- customElement("sd-3-22-18-dialog")
191
+ customElement("sd-3-23-1-dialog")
192
192
  ], SdDialog);
193
193
  setDefaultAnimation("dialog.show", {
194
194
  keyframes: [
@@ -8,6 +8,6 @@ export default class SdDivider extends SolidElement {
8
8
  }
9
9
  declare global {
10
10
  interface HTMLElementTagNameMap {
11
- 'sd-3-22-18-divider': SdDivider;
11
+ 'sd-3-23-1-divider': SdDivider;
12
12
  }
13
13
  }
@@ -34,7 +34,7 @@ let SdDivider = class extends SolidElement {
34
34
  SdDivider.styles = [
35
35
  componentStyles,
36
36
  SolidElement.styles,
37
- css`:host{margin:var(--sd-spacing-0,0)}:host(sd-3-22-18-divider[orientation=horizontal]){display:block}:host(sd-3-22-18-divider[orientation=vertical]){display:inline-block}`
37
+ css`:host{margin:var(--sd-spacing-0,0)}:host(sd-3-23-1-divider[orientation=horizontal]){display:block}:host(sd-3-23-1-divider[orientation=vertical]){display:inline-block}`
38
38
  ];
39
39
  __decorateClass([
40
40
  property({ reflect: true })
@@ -43,7 +43,7 @@ __decorateClass([
43
43
  property({ type: Boolean, reflect: true })
44
44
  ], SdDivider.prototype, "inverted", 2);
45
45
  SdDivider = __decorateClass([
46
- customElement("sd-3-22-18-divider")
46
+ customElement("sd-3-23-1-divider")
47
47
  ], SdDivider);
48
48
  export {
49
49
  SdDivider as default
@@ -30,6 +30,6 @@ export default class SdDrawer extends SolidElement {
30
30
  }
31
31
  declare global {
32
32
  interface HTMLElementTagNameMap {
33
- 'sd-3-22-18-drawer': SdDrawer;
33
+ 'sd-3-23-1-drawer': SdDrawer;
34
34
  }
35
35
  }
@@ -182,7 +182,7 @@ let SdDrawer = class extends SolidElement {
182
182
  end: "top-0 end-0 bottom-auto start-auto w-[--width] h-full",
183
183
  start: "top-0 end-auto bottom-auto start-0 w-[--width] h-full"
184
184
  }[this.placement]
185
- )}" role="dialog" aria-modal="true" aria-hidden="${this.open ? "false" : "true"}" aria-label="${this.label}" aria-labelledby="${ifDefined(!this.noHeader ? "title" : void 0)}" tabindex="0">${!this.noHeader ? html`<header part="header" class="flex justify-between py-2 px-4 items-center flex-shrink-0" style="min-height:56px"><div part="title"><slot name="header" part="title" class="flex-auto text-xl m-0" id="title"></slot></div><div class="shrink-0 flex flex-wrap justify-end gap-1 ml-4 absolute top-2 right-2"><sd-3-22-18-button variant="tertiary" size="lg" part="close-button" @click="${() => this.requestClose("close-button")}"><sd-3-22-18-icon label="${this.localize.term("close")}" name="close" library="system"></sd-3-22-18-icon></sd-3-22-18-button></div></header>` : ""}<div part="body" class="flex-auto block px-4"><slot></slot></div><footer part="footer" class="${cx(this.hasSlotController.test("footer") ? "text-left p-4" : "hidden")}"><slot name="footer"></slot></footer></div></div>`;
185
+ )}" role="dialog" aria-modal="true" aria-hidden="${this.open ? "false" : "true"}" aria-label="${this.label}" aria-labelledby="${ifDefined(!this.noHeader ? "title" : void 0)}" tabindex="0">${!this.noHeader ? html`<header part="header" class="flex justify-between py-2 px-4 items-center flex-shrink-0" style="min-height:56px"><div part="title"><slot name="header" part="title" class="flex-auto text-xl m-0" id="title"></slot></div><div class="shrink-0 flex flex-wrap justify-end gap-1 ml-4 absolute top-2 right-2"><sd-3-23-1-button variant="tertiary" size="lg" part="close-button" @click="${() => this.requestClose("close-button")}"><sd-3-23-1-icon label="${this.localize.term("close")}" name="close" library="system"></sd-3-23-1-icon></sd-3-23-1-button></div></header>` : ""}<div part="body" class="flex-auto block px-4"><slot></slot></div><footer part="footer" class="${cx(this.hasSlotController.test("footer") ? "text-left p-4" : "hidden")}"><slot name="footer"></slot></footer></div></div>`;
186
186
  }
187
187
  };
188
188
  SdDrawer.styles = [
@@ -221,7 +221,7 @@ __decorateClass([
221
221
  watch("contained", { waitUntilFirstUpdate: true })
222
222
  ], SdDrawer.prototype, "handleNoModalChange", 1);
223
223
  SdDrawer = __decorateClass([
224
- customElement("sd-3-22-18-drawer")
224
+ customElement("sd-3-23-1-drawer")
225
225
  ], SdDrawer);
226
226
  setDefaultAnimation("drawer.showStart", {
227
227
  keyframes: [
@@ -22,6 +22,8 @@ export default class SdDropdown extends SolidElement {
22
22
  connectedCallback(): void;
23
23
  firstUpdated(): void;
24
24
  disconnectedCallback(): void;
25
+ getAccessibleTrigger(): HTMLElement | null;
26
+ updateAccessibleTrigger(): void;
25
27
  focusOnTrigger(): void;
26
28
  getMenu(): SdMenu | undefined;
27
29
  handleKeyDown(event: KeyboardEvent): void;
@@ -33,7 +35,6 @@ export default class SdDropdown extends SolidElement {
33
35
  handleTriggerKeyDown(event: KeyboardEvent): void;
34
36
  handleTriggerKeyUp(event: KeyboardEvent): void;
35
37
  handleTriggerSlotChange(): void;
36
- updateAccessibleTrigger(): void;
37
38
  show(): Promise<void>;
38
39
  hide(): Promise<void>;
39
40
  reposition(): void;
@@ -45,6 +46,6 @@ export default class SdDropdown extends SolidElement {
45
46
  }
46
47
  declare global {
47
48
  interface HTMLElementTagNameMap {
48
- 'sd-3-22-18-dropdown': SdDropdown;
49
+ 'sd-3-23-1-dropdown': SdDropdown;
49
50
  }
50
51
  }
@@ -60,8 +60,44 @@ let SdDropdown = class extends SolidElement {
60
60
  this.removeOpenListeners();
61
61
  this.hide();
62
62
  }
63
+ /**
64
+ * Slotted triggers can be arbitrary content. The accessible trigger is the tabbable element
65
+ * within the slotted trigger. This could be the slotted element itself, a child of the slotted element,
66
+ * or an element within the slotted elements shadow root.
67
+ *
68
+ * e.g. the accessible trigger of an <sd-3-23-1-button> is a <button> located inside its shadow root.
69
+ *
70
+ * To determine this, we assume the first tabbable element in the trigger slot is the "accessible trigger."
71
+ * */
72
+ getAccessibleTrigger() {
73
+ const assignedElements = this.trigger.assignedElements({ flatten: true });
74
+ const accessibleTrigger = assignedElements.find((el) => getTabbableBoundary(el).start);
75
+ let target = null;
76
+ if (accessibleTrigger) {
77
+ switch (accessibleTrigger.tagName.toLowerCase()) {
78
+ case "sd-3-23-1-button":
79
+ case "sd-3-23-1-icon-button":
80
+ target = accessibleTrigger.button;
81
+ break;
82
+ case "sd-3-23-1-navigation-item":
83
+ target = accessibleTrigger.button;
84
+ break;
85
+ default:
86
+ target = accessibleTrigger;
87
+ }
88
+ }
89
+ return target;
90
+ }
91
+ // Slotted triggers can be arbitrary content, but we need to connect them to the dropdown panel with `aria-haspopup` and
92
+ // `aria-expanded`. These must be applied to the `accessible trigger`.
93
+ updateAccessibleTrigger() {
94
+ const target = this.getAccessibleTrigger();
95
+ if (!target) return;
96
+ target.setAttribute("aria-haspopup", "true");
97
+ target.setAttribute("aria-expanded", this.open ? "true" : "false");
98
+ }
63
99
  focusOnTrigger() {
64
- const trigger = this.trigger.assignedElements({ flatten: true })[0];
100
+ const trigger = this.getAccessibleTrigger();
65
101
  if (typeof (trigger == null ? void 0 : trigger.focus) === "function") {
66
102
  trigger.focus();
67
103
  }
@@ -163,33 +199,6 @@ let SdDropdown = class extends SolidElement {
163
199
  handleTriggerSlotChange() {
164
200
  this.updateAccessibleTrigger();
165
201
  }
166
- //
167
- // Slotted triggers can be arbitrary content, but we need to link them to the dropdown panel with `aria-haspopup` and
168
- // `aria-expanded`. These must be applied to the "accessible trigger" (the tabbable portion of the trigger element
169
- // that gets slotted in) so screen readers will understand them. The accessible trigger could be the slotted element,
170
- // a child of the slotted element, or an element in the slotted element's shadow root.
171
- //
172
- // For example, the accessible trigger of an <sd-3-22-18-button> is a <button> located inside its shadow root.
173
- //
174
- // To determine this, we assume the first tabbable element in the trigger slot is the "accessible trigger."
175
- //
176
- updateAccessibleTrigger() {
177
- const assignedElements = this.trigger.assignedElements({ flatten: true });
178
- const accessibleTrigger = assignedElements.find((el) => getTabbableBoundary(el).start);
179
- let target;
180
- if (accessibleTrigger) {
181
- switch (accessibleTrigger.tagName.toLowerCase()) {
182
- case "sd-3-22-18-button":
183
- case "sd-3-22-18-icon-button":
184
- target = accessibleTrigger.button;
185
- break;
186
- default:
187
- target = accessibleTrigger;
188
- }
189
- target.setAttribute("aria-haspopup", "true");
190
- target.setAttribute("aria-expanded", this.open ? "true" : "false");
191
- }
192
- }
193
202
  /** Shows the dropdown panel. */
194
203
  async show() {
195
204
  if (this.open) {
@@ -215,7 +224,7 @@ let SdDropdown = class extends SolidElement {
215
224
  }
216
225
  addOpenListeners() {
217
226
  this.panel.addEventListener("sd-activate", this.handleMenuItemActivate);
218
- this.panel.addEventListener("sd-3-22-18-select", this.handlePanelSelect);
227
+ this.panel.addEventListener("sd-3-23-1-select", this.handlePanelSelect);
219
228
  this.panel.addEventListener("keydown", this.handleKeyDown);
220
229
  document.addEventListener("keydown", this.handleDocumentKeyDown);
221
230
  document.addEventListener("mousedown", this.handleDocumentMouseDown);
@@ -223,7 +232,7 @@ let SdDropdown = class extends SolidElement {
223
232
  removeOpenListeners() {
224
233
  if (this.panel) {
225
234
  this.panel.removeEventListener("sd-activate", this.handleMenuItemActivate);
226
- this.panel.removeEventListener("sd-3-22-18-select", this.handlePanelSelect);
235
+ this.panel.removeEventListener("sd-3-23-1-select", this.handlePanelSelect);
227
236
  this.panel.removeEventListener("keydown", this.handleKeyDown);
228
237
  }
229
238
  document.removeEventListener("keydown", this.handleDocumentKeyDown);
@@ -256,11 +265,11 @@ let SdDropdown = class extends SolidElement {
256
265
  }
257
266
  }
258
267
  render() {
259
- return html`<sd-3-22-18-popup part="base" id="dropdown" placement="${this.placement}" distance="${this.rounded && this.distance < 1 ? 1 : this.distance}" skidding="${this.skidding}" strategy="${this.hoist ? "fixed" : "absolute"}" ?flip="${!this.noFlip}" shift auto-size="vertical" auto-size-padding="10" ?active="${this.open}"><slot name="trigger" slot="anchor" part="trigger" class="block" @click="${this.handleTriggerClick}" @keydown="${this.handleTriggerKeyDown}" @keyup="${this.handleTriggerKeyUp}" @slotchange="${this.handleTriggerSlotChange}"></slot><slot part="panel" class="${cx(
268
+ return html`<sd-3-23-1-popup part="base" id="dropdown" placement="${this.placement}" distance="${this.rounded && this.distance < 1 ? 1 : this.distance}" skidding="${this.skidding}" strategy="${this.hoist ? "fixed" : "absolute"}" ?flip="${!this.noFlip}" shift auto-size="vertical" auto-size-padding="10" ?active="${this.open}"><slot name="trigger" slot="anchor" part="trigger" class="block" @click="${this.handleTriggerClick}" @keydown="${this.handleTriggerKeyDown}" @keyup="${this.handleTriggerKeyUp}" @slotchange="${this.handleTriggerSlotChange}"></slot><slot part="panel" class="${cx(
260
269
  "shadow bg-white",
261
270
  this.open ? "block pointer-events-auto" : "pointer-events-none",
262
271
  this.rounded && "rounded-md"
263
- )}" aria-hidden="${this.open ? "false" : "true"}" aria-labelledby="dropdown"></slot></sd-3-22-18-popup>`;
272
+ )}" aria-hidden="${this.open ? "false" : "true"}" aria-labelledby="dropdown"></slot></sd-3-23-1-popup>`;
264
273
  }
265
274
  };
266
275
  SdDropdown.styles = [
@@ -314,7 +323,7 @@ __decorateClass([
314
323
  watch("open", { waitUntilFirstUpdate: true })
315
324
  ], SdDropdown.prototype, "handleOpenChange", 1);
316
325
  SdDropdown = __decorateClass([
317
- customElement("sd-3-22-18-dropdown")
326
+ customElement("sd-3-23-1-dropdown")
318
327
  ], SdDropdown);
319
328
  setDefaultAnimation("dropdown.show", {
320
329
  keyframes: [
@@ -18,6 +18,6 @@ export default class SdExpandable extends SolidElement {
18
18
  }
19
19
  declare global {
20
20
  interface HTMLElementTagNameMap {
21
- 'sd-3-22-18-expandable': SdExpandable;
21
+ 'sd-3-23-1-expandable': SdExpandable;
22
22
  }
23
23
  }
@@ -70,7 +70,7 @@ let SdExpandable = class extends SolidElement {
70
70
  "sd-interactive sd-interactive--reset !h-full !justify-center !w-full !text-base !flex !items-center !underline !underline-offset-2 !toggle",
71
71
  this.inverted && "sd-interactive--inverted",
72
72
  !this.inverted ? "!focus-visible:focus-outline" : "!focus-visible:focus-outline-inverted"
73
- )}" @click="${this.onToggleClick}">${this.open ? html`<slot name="toggle-open"><sd-3-22-18-icon class="mr-2 text-xl" library="system" name="chevron-up"></sd-3-22-18-icon>${this.localize.term("showLess")}</slot>` : html`<slot name="toggle-closed"><sd-3-22-18-icon class="mr-2 text-xl" library="system" name="chevron-down"></sd-3-22-18-icon>${this.localize.term("showMore")}</slot>`}</button>`;
73
+ )}" @click="${this.onToggleClick}">${this.open ? html`<slot name="toggle-open"><sd-3-23-1-icon class="mr-2 text-xl" library="system" name="chevron-up"></sd-3-23-1-icon>${this.localize.term("showLess")}</slot>` : html`<slot name="toggle-closed"><sd-3-23-1-icon class="mr-2 text-xl" library="system" name="chevron-down"></sd-3-23-1-icon>${this.localize.term("showMore")}</slot>`}</button>`;
74
74
  }
75
75
  firstUpdated() {
76
76
  this.cloneContentToLightDOM();
@@ -109,7 +109,7 @@ __decorateClass([
109
109
  watch("open", { waitUntilFirstUpdate: true })
110
110
  ], SdExpandable.prototype, "onOpenChange", 1);
111
111
  SdExpandable = __decorateClass([
112
- customElement("sd-3-22-18-expandable")
112
+ customElement("sd-3-23-1-expandable")
113
113
  ], SdExpandable);
114
114
  export {
115
115
  SdExpandable as default
@@ -18,6 +18,6 @@ export default class SdFlipcard extends SolidElement {
18
18
  }
19
19
  declare global {
20
20
  interface HTMLElementTagNameMap {
21
- 'sd-3-22-18-flipcard': SdFlipcard;
21
+ 'sd-3-23-1-flipcard': SdFlipcard;
22
22
  }
23
23
  }
@@ -173,7 +173,7 @@ __decorateClass([
173
173
  property({ type: String, reflect: true, attribute: "back-variant" })
174
174
  ], SdFlipcard.prototype, "backVariant", 2);
175
175
  SdFlipcard = __decorateClass([
176
- customElement("sd-3-22-18-flipcard")
176
+ customElement("sd-3-23-1-flipcard")
177
177
  ], SdFlipcard);
178
178
  export {
179
179
  SdFlipcard as default
@@ -18,6 +18,6 @@ export default class SdHeader extends SolidElement {
18
18
  }
19
19
  declare global {
20
20
  interface HTMLElementTagNameMap {
21
- 'sd-3-22-18-header': SdHeader;
21
+ 'sd-3-23-1-header': SdHeader;
22
22
  }
23
23
  }
@@ -63,11 +63,11 @@ let SdHeader = class extends SolidElement {
63
63
  setCalculatedHeightProperty() {
64
64
  if (this.fixed && this.refHeaderElement) {
65
65
  document.documentElement.style.setProperty(
66
- "--sd-3-22-18-header-calculated-height",
66
+ "--sd-3-23-1-header-calculated-height",
67
67
  `${this.refHeaderElement.clientHeight}px`
68
68
  );
69
69
  } else {
70
- document.documentElement.style.removeProperty("--sd-3-22-18-header-calculated-height");
70
+ document.documentElement.style.removeProperty("--sd-3-23-1-header-calculated-height");
71
71
  }
72
72
  }
73
73
  render() {
@@ -84,7 +84,7 @@ let SdHeader = class extends SolidElement {
84
84
  SdHeader.styles = [
85
85
  SolidElement.styles,
86
86
  componentStyles,
87
- css`:host{display:block}:host([fixed]){position:fixed;left:var(--sd-spacing-0,0);top:var(--sd-spacing-0,0);width:100%}:host([fixed]) header::after{content:'';position:absolute;left:var(--sd-spacing-0,0);right:var(--sd-spacing-0,0);top:100%;height:var(--sd-spacing-2,.5rem);background:var(--gradient-vertical-black-40-transparent,linear-gradient(0deg,#18181800 50%,#18181866 100%))}[part=main]{width:var(--sd-3-22-18-header-inner-width);max-width:var(--sd-3-22-18-header-inner-max-width);padding:var(--sd-3-22-18-header-padding,12px 16px)}`
87
+ css`:host{display:block}:host([fixed]){position:fixed;left:var(--sd-spacing-0,0);top:var(--sd-spacing-0,0);width:100%}:host([fixed]) header::after{content:'';position:absolute;left:var(--sd-spacing-0,0);right:var(--sd-spacing-0,0);top:100%;height:var(--sd-spacing-2,.5rem);background:var(--gradient-vertical-black-40-transparent,linear-gradient(0deg,#18181800 50%,#18181866 100%))}[part=main]{width:var(--sd-3-23-1-header-inner-width);max-width:var(--sd-3-23-1-header-inner-max-width);padding:var(--sd-3-23-1-header-padding,12px 16px)}`
88
88
  ];
89
89
  __decorateClass([
90
90
  property({ reflect: true, type: Boolean })
@@ -93,7 +93,7 @@ __decorateClass([
93
93
  debounce(100)
94
94
  ], SdHeader.prototype, "onResize", 1);
95
95
  SdHeader = __decorateClass([
96
- customElement("sd-3-22-18-header")
96
+ customElement("sd-3-23-1-header")
97
97
  ], SdHeader);
98
98
  export {
99
99
  SdHeader as default
@@ -17,6 +17,6 @@ export default class SdIcon extends SolidElement {
17
17
  }
18
18
  declare global {
19
19
  interface HTMLElementTagNameMap {
20
- 'sd-3-22-18-icon': SdIcon;
20
+ 'sd-3-23-1-icon': SdIcon;
21
21
  }
22
22
  }
@@ -122,7 +122,7 @@ __decorateClass([
122
122
  watch(["name", "src", "library"])
123
123
  ], SdIcon.prototype, "setIcon", 1);
124
124
  SdIcon = __decorateClass([
125
- customElement("sd-3-22-18-icon")
125
+ customElement("sd-3-23-1-icon")
126
126
  ], SdIcon);
127
127
  export {
128
128
  SdIcon as default
@@ -10,6 +10,6 @@ export default class SdInclude extends SolidElement {
10
10
  }
11
11
  declare global {
12
12
  interface HTMLElementTagNameMap {
13
- 'sd-3-22-18-include': SdInclude;
13
+ 'sd-3-23-1-include': SdInclude;
14
14
  }
15
15
  }
@@ -68,7 +68,7 @@ __decorateClass([
68
68
  watch("src")
69
69
  ], SdInclude.prototype, "handleSrcChange", 1);
70
70
  SdInclude = __decorateClass([
71
- customElement("sd-3-22-18-include")
71
+ customElement("sd-3-23-1-include")
72
72
  ], SdInclude);
73
73
  export {
74
74
  SdInclude as default
@@ -81,6 +81,6 @@ export default class SdInput extends SolidElement implements SolidFormControl {
81
81
  }
82
82
  declare global {
83
83
  interface HTMLElementTagNameMap {
84
- 'sd-3-22-18-input': SdInput;
84
+ 'sd-3-23-1-input': SdInput;
85
85
  }
86
86
  }
@@ -278,13 +278,13 @@ let SdInput = class extends SolidElement {
278
278
  "min-w-0 flex-grow focus:outline-none bg-transparent placeholder-neutral-700",
279
279
  this.size === "sm" ? "h-6" : "h-8",
280
280
  textSize
281
- )}" type="${this.type === "password" && this.passwordVisible ? "text" : this.type}" title="${this.title}" name="${ifDefined(this.name)}" ?disabled="${this.disabled}" ?readonly="${this.readonly}" ?required="${this.required}" placeholder="${ifDefined(this.placeholder)}" minlength="${ifDefined(this.minlength)}" maxlength="${ifDefined(this.maxlength)}" min="${ifDefined(this.min)}" max="${ifDefined(this.max)}" step="${ifDefined(this.step)}" .value="${live(this.value)}" autocapitalize="${ifDefined(this.type === "password" ? "off" : this.autocapitalize)}" autocomplete="${ifDefined(this.type === "password" ? "off" : this.autocomplete)}" autocorrect="${ifDefined(this.type === "password" ? "off" : this.autocorrect)}" ?autofocus="${this.autofocus}" spellcheck="${this.spellcheck}" pattern="${ifDefined(this.pattern)}" enterkeyhint="${ifDefined(this.enterkeyhint)}" inputmode="${ifDefined(this.inputmode)}" aria-describedby="help-text invalid-message" @change="${this.handleChange}" @input="${this.handleInput}" @invalid="${this.handleInvalid}" @keydown="${this.handleKeyDown}" @focus="${this.handleFocus}" @blur="${this.handleBlur}"> ${hasClearIcon ? html`<button part="clear-button" class="${cx("flex justify-center ", iconMarginLeft)}" type="button" aria-label="${this.localize.term("clearEntry")}" @click="${this.handleClearClick}" tabindex="-1"><slot name="clear-icon"><sd-3-22-18-icon class="${cx("icon-fill-neutral-800", iconSize)}" library="system" name="closing-round"></sd-3-22-18-icon></slot></button>` : ""} ${this.passwordToggle && this.type === "password" ? html`<button aria-label="${this.localize.term(this.passwordVisible ? "hidePassword" : "showPassword")}" part="password-toggle-button" class="flex items-center" type="button" @click="${this.handlePasswordToggle}" tabindex="-1">${this.passwordVisible ? html`<slot name="show-password-icon"><sd-3-22-18-icon class="${cx(iconColor, iconMarginLeft, iconSize)}" library="system" name="eye"></sd-3-22-18-icon></slot>` : html`<slot name="hide-password-icon"><sd-3-22-18-icon class="${cx(iconColor, iconMarginLeft, iconSize)}" library="system" name="eye-crossed-out"></sd-3-22-18-icon></slot>`}</button>` : ""} ${(this.type === "date" || this.type === "datetime-local") && !isFirefox ? html`<sd-3-22-18-icon class="${cx(iconColor, iconMarginLeft, iconSize)}" library="system" name="calendar"></sd-3-22-18-icon>` : ""} ${this.type === "time" ? html`<sd-3-22-18-icon class="${cx(iconColor, iconMarginLeft, iconSize)}" library="system" name="clock"></sd-3-22-18-icon>` : ""} ${this.type === "search" ? html`<button class="flex items-center" type="button" tabindex="-1"><sd-3-22-18-icon class="${cx(iconColor, iconMarginLeft, iconSize)}" library="system" name="magnifying-glass"></sd-3-22-18-icon></button>` : ""} ${this.showInvalidStyle ? html`<sd-3-22-18-icon part="invalid-icon" class="${cx("text-error", iconMarginLeft, iconSize)}" library="system" name="risk"></sd-3-22-18-icon>` : ""} ${this.showValidStyle && this.styleOnValid ? html`<sd-3-22-18-icon class="${cx("text-success flex-shrink-0", iconMarginLeft, iconSize)}" library="system" name="status-check" part="valid-icon"></sd-3-22-18-icon>` : ""} ${slots["right"] ? html`<slot name="right" part="right" class="${cx("inline-flex", iconColor, iconMarginLeft, iconSize)}"></slot>` : ""} ${this.type === "number" && this.spinButtons ? html`<div part="stepper" class="flex items-center"><button part="decrement-number-stepper" class="stepper-button flex" type="button" ?disabled="${this.isDecrementDisabled()}" aria-hidden="true" ${longPress({ start: () => this.handleStepDown(), end: () => this.handleChange() })} tabindex="-1"><slot name="decrement-number-stepper"><sd-3-22-18-icon name="system/minus-circle" label="Decrease value" class="${cx(iconColor, iconMarginLeft, iconSize)}"></sd-3-22-18-icon></slot></button> <button part="increment-number-stepper" class="stepper-button flex" type="button" ?disabled="${this.isIncrementDisabled()}" aria-hidden="true" ${longPress({ start: () => this.handleStepUp(), end: () => this.handleChange() })} tabindex="-1"><slot name="increment-number-stepper"><sd-3-22-18-icon name="system/plus-circle" label="Decrease value" class="${cx(iconColor, iconMarginLeft, iconSize)}"></sd-3-22-18-icon></slot></button></div>` : ""}</div></div><slot name="help-text" part="form-control-help-text" id="help-text" class="${cx("text-sm text-neutral-700", hasHelpText ? "block" : "hidden")}" aria-hidden="${!hasHelpText}">${this.helpText}</slot></div>${this.formControlController.renderInvalidMessage()}`;
281
+ )}" type="${this.type === "password" && this.passwordVisible ? "text" : this.type}" title="${this.title}" name="${ifDefined(this.name)}" ?disabled="${this.disabled}" ?readonly="${this.readonly}" ?required="${this.required}" placeholder="${ifDefined(this.placeholder)}" minlength="${ifDefined(this.minlength)}" maxlength="${ifDefined(this.maxlength)}" min="${ifDefined(this.min)}" max="${ifDefined(this.max)}" step="${ifDefined(this.step)}" .value="${live(this.value)}" autocapitalize="${ifDefined(this.type === "password" ? "off" : this.autocapitalize)}" autocomplete="${ifDefined(this.type === "password" ? "off" : this.autocomplete)}" autocorrect="${ifDefined(this.type === "password" ? "off" : this.autocorrect)}" ?autofocus="${this.autofocus}" spellcheck="${this.spellcheck}" pattern="${ifDefined(this.pattern)}" enterkeyhint="${ifDefined(this.enterkeyhint)}" inputmode="${ifDefined(this.inputmode)}" aria-describedby="help-text invalid-message" @change="${this.handleChange}" @input="${this.handleInput}" @invalid="${this.handleInvalid}" @keydown="${this.handleKeyDown}" @focus="${this.handleFocus}" @blur="${this.handleBlur}"> ${hasClearIcon ? html`<button part="clear-button" class="${cx("flex justify-center ", iconMarginLeft)}" type="button" aria-label="${this.localize.term("clearEntry")}" @click="${this.handleClearClick}" tabindex="-1"><slot name="clear-icon"><sd-3-23-1-icon class="${cx("icon-fill-neutral-800", iconSize)}" library="system" name="closing-round"></sd-3-23-1-icon></slot></button>` : ""} ${this.passwordToggle && this.type === "password" ? html`<button aria-label="${this.localize.term(this.passwordVisible ? "hidePassword" : "showPassword")}" part="password-toggle-button" class="flex items-center" type="button" @click="${this.handlePasswordToggle}" tabindex="-1">${this.passwordVisible ? html`<slot name="show-password-icon"><sd-3-23-1-icon class="${cx(iconColor, iconMarginLeft, iconSize)}" library="system" name="eye"></sd-3-23-1-icon></slot>` : html`<slot name="hide-password-icon"><sd-3-23-1-icon class="${cx(iconColor, iconMarginLeft, iconSize)}" library="system" name="eye-crossed-out"></sd-3-23-1-icon></slot>`}</button>` : ""} ${(this.type === "date" || this.type === "datetime-local") && !isFirefox ? html`<sd-3-23-1-icon class="${cx(iconColor, iconMarginLeft, iconSize)}" library="system" name="calendar"></sd-3-23-1-icon>` : ""} ${this.type === "time" ? html`<sd-3-23-1-icon class="${cx(iconColor, iconMarginLeft, iconSize)}" library="system" name="clock"></sd-3-23-1-icon>` : ""} ${this.type === "search" ? html`<button class="flex items-center" type="button" tabindex="-1"><sd-3-23-1-icon class="${cx(iconColor, iconMarginLeft, iconSize)}" library="system" name="magnifying-glass"></sd-3-23-1-icon></button>` : ""} ${this.showInvalidStyle ? html`<sd-3-23-1-icon part="invalid-icon" class="${cx("text-error", iconMarginLeft, iconSize)}" library="system" name="risk"></sd-3-23-1-icon>` : ""} ${this.showValidStyle && this.styleOnValid ? html`<sd-3-23-1-icon class="${cx("text-success flex-shrink-0", iconMarginLeft, iconSize)}" library="system" name="status-check" part="valid-icon"></sd-3-23-1-icon>` : ""} ${slots["right"] ? html`<slot name="right" part="right" class="${cx("inline-flex", iconColor, iconMarginLeft, iconSize)}"></slot>` : ""} ${this.type === "number" && this.spinButtons ? html`<div part="stepper" class="flex items-center"><button part="decrement-number-stepper" class="stepper-button flex" type="button" ?disabled="${this.isDecrementDisabled()}" aria-hidden="true" ${longPress({ start: () => this.handleStepDown(), end: () => this.handleChange() })} tabindex="-1"><slot name="decrement-number-stepper"><sd-3-23-1-icon name="system/minus-circle" label="Decrease value" class="${cx(iconColor, iconMarginLeft, iconSize)}"></sd-3-23-1-icon></slot></button> <button part="increment-number-stepper" class="stepper-button flex" type="button" ?disabled="${this.isIncrementDisabled()}" aria-hidden="true" ${longPress({ start: () => this.handleStepUp(), end: () => this.handleChange() })} tabindex="-1"><slot name="increment-number-stepper"><sd-3-23-1-icon name="system/plus-circle" label="Decrease value" class="${cx(iconColor, iconMarginLeft, iconSize)}"></sd-3-23-1-icon></slot></button></div>` : ""}</div></div><slot name="help-text" part="form-control-help-text" id="help-text" class="${cx("text-sm text-neutral-700", hasHelpText ? "block" : "hidden")}" aria-hidden="${!hasHelpText}">${this.helpText}</slot></div>${this.formControlController.renderInvalidMessage()}`;
282
282
  }
283
283
  };
284
284
  SdInput.styles = [
285
285
  componentStyles,
286
286
  SolidElement.styles,
287
- css`:host{position:relative;box-sizing:border-box;display:inline-block;width:100%;text-align:left}:host([vertical]){display:block}:host([required]) #label::after{content:' *'}details summary::-webkit-details-marker{display:none}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}input[type=time]::-webkit-calendar-picker-indicator{background:0 0}details summary::-webkit-details-marker,input[type=date]::-webkit-calendar-picker-indicator,input[type=datetime-local]::-webkit-calendar-picker-indicator,input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration{display:none}.stepper-button[disabled] sd-3-22-18-icon{--tw-text-opacity:1;color:rgb(var(--sd-color-neutral-500,174 174 174) / var(--tw-text-opacity))}`
287
+ css`:host{position:relative;box-sizing:border-box;display:inline-block;width:100%;text-align:left}:host([vertical]){display:block}:host([required]) #label::after{content:' *'}details summary::-webkit-details-marker{display:none}input::-webkit-inner-spin-button,input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}input[type=time]::-webkit-calendar-picker-indicator{background:0 0}details summary::-webkit-details-marker,input[type=date]::-webkit-calendar-picker-indicator,input[type=datetime-local]::-webkit-calendar-picker-indicator,input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration,input[type=search]::-webkit-search-results-button,input[type=search]::-webkit-search-results-decoration{display:none}.stepper-button[disabled] sd-3-23-1-icon{--tw-text-opacity:1;color:rgb(var(--sd-color-neutral-500,174 174 174) / var(--tw-text-opacity))}`
288
288
  ];
289
289
  __decorateClass([
290
290
  query("#input")
@@ -411,7 +411,7 @@ __decorateClass([
411
411
  watch("value", { waitUntilFirstUpdate: true })
412
412
  ], SdInput.prototype, "handleValueChange", 1);
413
413
  SdInput = __decorateClass([
414
- customElement("sd-3-22-18-input")
414
+ customElement("sd-3-23-1-input")
415
415
  ], SdInput);
416
416
  export {
417
417
  SdInput as default
@@ -17,6 +17,6 @@ export default class SdLink extends SolidElement {
17
17
  }
18
18
  declare global {
19
19
  interface HTMLElementTagNameMap {
20
- 'sd-3-22-18-link': SdLink;
20
+ 'sd-3-23-1-link': SdLink;
21
21
  }
22
22
  }
@@ -76,7 +76,7 @@ let SdLink = class extends SolidElement {
76
76
  };
77
77
  SdLink.styles = [
78
78
  SolidElement.styles,
79
- css`::slotted(sd-3-22-18-icon){font-size:1.25em;margin-bottom:-.25em}:host([size=sm][standalone]) ::slotted(sd-3-22-18-icon){font-size:var(--sd-font-size-base,1rem)}:host([size=lg][standalone]) ::slotted(sd-3-22-18-icon){font-size:var(--sd-font-size-xl,1.5rem)}`
79
+ css`::slotted(sd-3-23-1-icon){font-size:1.25em;margin-bottom:-.25em}:host([size=sm][standalone]) ::slotted(sd-3-23-1-icon){font-size:var(--sd-font-size-base,1rem)}:host([size=lg][standalone]) ::slotted(sd-3-23-1-icon){font-size:var(--sd-font-size-xl,1.5rem)}`
80
80
  ];
81
81
  __decorateClass([
82
82
  query("a")
@@ -100,7 +100,7 @@ __decorateClass([
100
100
  property()
101
101
  ], SdLink.prototype, "download", 2);
102
102
  SdLink = __decorateClass([
103
- customElement("sd-3-22-18-link")
103
+ customElement("sd-3-23-1-link")
104
104
  ], SdLink);
105
105
  export {
106
106
  SdLink as default
@@ -18,6 +18,6 @@ export default class SdMapMarker extends SolidElement {
18
18
  }
19
19
  declare global {
20
20
  interface HTMLElementTagNameMap {
21
- 'sd-3-22-18-map-marker': SdMapMarker;
21
+ 'sd-3-23-1-map-marker': SdMapMarker;
22
22
  }
23
23
  }
@@ -89,7 +89,7 @@ __decorateClass([
89
89
  property()
90
90
  ], SdMapMarker.prototype, "target", 2);
91
91
  SdMapMarker = __decorateClass([
92
- customElement("sd-3-22-18-map-marker")
92
+ customElement("sd-3-23-1-map-marker")
93
93
  ], SdMapMarker);
94
94
  export {
95
95
  SdMapMarker as default
@@ -1,6 +1,7 @@
1
1
  import SolidElement from '../../internal/solid-element';
2
2
  export default class SdNavigationItem extends SolidElement {
3
3
  private readonly hasSlotController;
4
+ button: HTMLButtonElement | HTMLLinkElement | null;
4
5
  vertical: boolean;
5
6
  size: 'base' | 'lg' | 'sm';
6
7
  href: string;
@@ -28,6 +29,6 @@ export default class SdNavigationItem extends SolidElement {
28
29
  }
29
30
  declare global {
30
31
  interface HTMLElementTagNameMap {
31
- 'sd-3-22-18-navigation-item': SdNavigationItem;
32
+ 'sd-3-23-1-navigation-item': SdNavigationItem;
32
33
  }
33
34
  }
@@ -3,7 +3,7 @@ import { customElement } from "../../internal/register-custom-element.js";
3
3
  import { HasSlotController } from "../../internal/slot.js";
4
4
  import { literal, html } from "lit/static-html.js";
5
5
  import { ifDefined } from "lit/directives/if-defined.js";
6
- import { property } from "lit/decorators.js";
6
+ import { query, property } from "lit/decorators.js";
7
7
  import componentStyles from "../../styles/component.styles.js";
8
8
  import cx from "classix";
9
9
  import InteractiveStyles from "../../styles/interactive/interactive.css.js";
@@ -115,16 +115,16 @@ let SdNavigationItem = class extends SolidElement {
115
115
  isAccordion ? "grow" : "w-full",
116
116
  slots["description"] || this.separated ? "pb-1" : horizontalPaddingBottom,
117
117
  this.calculatePaddingX
118
- )}">${this.divider && this.vertical ? html`<sd-3-22-18-divider part="divider" class="${cx("w-full transition-all absolute -top-0.25 left-0", this.calculatePaddingX)}"></sd-3-22-18-divider>` : ""} <span part="content-container" class="inline-flex items-center flex-auto">${this.separated ? html`<a class="${cx(
118
+ )}">${this.divider && this.vertical ? html`<sd-3-23-1-divider part="divider" class="${cx("w-full transition-all absolute -top-0.25 left-0", this.calculatePaddingX)}"></sd-3-23-1-divider>` : ""} <span part="content-container" class="inline-flex items-center flex-auto">${this.separated ? html`<a class="${cx(
119
119
  "mr-4 w-full inline-flex items-center pl-4 cursor-pointer relative focus-visible:focus-outline hover:bg-neutral-200 group transition-all min-h-[48px]",
120
120
  !slots["description"] && "py-4"
121
- )}" href="${ifDefined(isLink ? this.href : void 0)}" target="${ifDefined(isLink ? this.target : void 0)}" download="${ifDefined(isLink ? this.download : void 0)}"><slot part="content" class="inline"></slot></a>` : html`<slot part="content" class="inline"></slot>`} </span>${(this.chevron || slots["children"]) && this.vertical ? this.separated ? html`<button type="button" title="toggle-details" class="sd-interactive sd-interactive--reset" @click="${this.handleClickSummary}"><sd-3-22-18-icon name="chevron-down" part="chevron" library="system" color="currentColor" class="${cx(
121
+ )}" href="${ifDefined(isLink ? this.href : void 0)}" target="${ifDefined(isLink ? this.target : void 0)}" download="${ifDefined(isLink ? this.download : void 0)}"><slot part="content" class="inline"></slot></a>` : html`<slot part="content" class="inline"></slot>`} </span>${(this.chevron || slots["children"]) && this.vertical ? this.separated ? html`<button type="button" title="toggle-details" class="sd-interactive sd-interactive--reset" @click="${this.handleClickSummary}"><sd-3-23-1-icon name="chevron-down" part="chevron" library="system" color="currentColor" class="${cx(
122
122
  "mr-4 h-6 w-6 transition-all",
123
123
  isAccordion || this.separated ? this.open ? "rotate-180" : "rotate-0" : "rotate-[270deg]"
124
- )}"></sd-3-22-18-icon></button>` : html`<sd-3-22-18-icon name="chevron-down" part="chevron" library="system" color="currentColor" class="${cx(
124
+ )}"></sd-3-23-1-icon></button>` : html`<sd-3-23-1-icon name="chevron-down" part="chevron" library="system" color="currentColor" class="${cx(
125
125
  "h-6 w-6 ml-2 transition-all",
126
126
  isAccordion ? this.open ? "rotate-180" : "rotate-0" : "rotate-[270deg]"
127
- )}"></sd-3-22-18-icon>` : ""} </span>${slots["description"] && this.vertical ? html`<slot name="description" part="description" class="${cx(
127
+ )}"></sd-3-23-1-icon>` : ""} </span>${slots["description"] && this.vertical ? html`<slot name="description" part="description" class="${cx(
128
128
  "inline-block text-sm text-left text-black",
129
129
  isAccordion || this.separated ? "grow" : "w-full",
130
130
  this.separated ? "px-4" : this.calculatePaddingX,
@@ -145,6 +145,9 @@ SdNavigationItem.styles = [
145
145
  unsafeCSS(InteractiveStyles),
146
146
  css`:host{position:relative;box-sizing:border-box;display:inline-block}:host([vertical]){display:block}details summary::-webkit-details-marker{display:none}`
147
147
  ];
148
+ __decorateClass([
149
+ query('a[part="base"], button[part="base"]')
150
+ ], SdNavigationItem.prototype, "button", 2);
148
151
  __decorateClass([
149
152
  property({ type: Boolean, reflect: true })
150
153
  ], SdNavigationItem.prototype, "vertical", 2);
@@ -185,7 +188,7 @@ __decorateClass([
185
188
  property({ type: Boolean, reflect: true })
186
189
  ], SdNavigationItem.prototype, "separated", 2);
187
190
  SdNavigationItem = __decorateClass([
188
- customElement("sd-3-22-18-navigation-item")
191
+ customElement("sd-3-23-1-navigation-item")
189
192
  ], SdNavigationItem);
190
193
  export {
191
194
  SdNavigationItem as default
@@ -27,6 +27,6 @@ export default class SdNotification extends SolidElement {
27
27
  }
28
28
  declare global {
29
29
  interface HTMLElementTagNameMap {
30
- 'sd-3-22-18-notification': SdNotification;
30
+ 'sd-3-23-1-notification': SdNotification;
31
31
  }
32
32
  }