@solid-design-system/components 3.22.18 → 3.23.1

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