@solid-design-system/mcp 0.0.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 (569) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/LICENSE.md +10 -0
  3. package/README.md +408 -0
  4. package/dist/bin/start.d.ts +2 -0
  5. package/dist/bin/start.js +8 -0
  6. package/dist/build/build.d.ts +1 -0
  7. package/dist/build/build.js +36 -0
  8. package/dist/build/components.d.ts +9 -0
  9. package/dist/build/components.js +264 -0
  10. package/dist/build/icons.d.ts +12 -0
  11. package/dist/build/icons.js +79 -0
  12. package/dist/build/package-docs.d.ts +1 -0
  13. package/dist/build/package-docs.js +67 -0
  14. package/dist/build/static.d.ts +4 -0
  15. package/dist/build/static.js +39 -0
  16. package/dist/build/styles.d.ts +9 -0
  17. package/dist/build/styles.js +178 -0
  18. package/dist/build/templates.d.ts +1 -0
  19. package/dist/build/templates.js +239 -0
  20. package/dist/build/tokens.d.ts +4 -0
  21. package/dist/build/tokens.js +105 -0
  22. package/dist/server.d.ts +6 -0
  23. package/dist/server.js +20 -0
  24. package/dist/tools/components.d.ts +12 -0
  25. package/dist/tools/components.js +175 -0
  26. package/dist/tools/icon-search.d.ts +7 -0
  27. package/dist/tools/icon-search.js +184 -0
  28. package/dist/tools/index.d.ts +7 -0
  29. package/dist/tools/index.js +7 -0
  30. package/dist/tools/quickstart.d.ts +2 -0
  31. package/dist/tools/quickstart.js +104 -0
  32. package/dist/tools/styles.d.ts +12 -0
  33. package/dist/tools/styles.js +167 -0
  34. package/dist/tools/templates.d.ts +11 -0
  35. package/dist/tools/templates.js +146 -0
  36. package/dist/tools/tokens.d.ts +7 -0
  37. package/dist/tools/tokens.js +198 -0
  38. package/dist/tools/version.d.ts +7 -0
  39. package/dist/tools/version.js +50 -0
  40. package/dist/utilities/components.d.ts +8 -0
  41. package/dist/utilities/components.js +24 -0
  42. package/dist/utilities/config.d.ts +40 -0
  43. package/dist/utilities/config.js +44 -0
  44. package/dist/utilities/file.d.ts +12 -0
  45. package/dist/utilities/file.js +28 -0
  46. package/dist/utilities/index.d.ts +10 -0
  47. package/dist/utilities/index.js +10 -0
  48. package/dist/utilities/input.d.ts +9 -0
  49. package/dist/utilities/input.js +19 -0
  50. package/dist/utilities/metadata.d.ts +33 -0
  51. package/dist/utilities/metadata.js +55 -0
  52. package/dist/utilities/stdio.d.ts +14 -0
  53. package/dist/utilities/stdio.js +57 -0
  54. package/dist/utilities/styles.d.ts +16 -0
  55. package/dist/utilities/styles.js +47 -0
  56. package/dist/utilities/templates.d.ts +5 -0
  57. package/dist/utilities/templates.js +18 -0
  58. package/dist/utilities/tokens.d.ts +6 -0
  59. package/dist/utilities/tokens.js +42 -0
  60. package/dist/utilities/version.d.ts +28 -0
  61. package/dist/utilities/version.js +21 -0
  62. package/metadata/packages/components/docs/customization.md +101 -0
  63. package/metadata/packages/components/docs/form-controls.md +28 -0
  64. package/metadata/packages/components/docs/installation.md +271 -0
  65. package/metadata/packages/components/docs/localization.md +158 -0
  66. package/metadata/packages/components/docs/usage.md +182 -0
  67. package/metadata/packages/components/sd-accordion/info.md +82 -0
  68. package/metadata/packages/components/sd-accordion/stories/open.md +8 -0
  69. package/metadata/packages/components/sd-accordion/stories/summary.md +17 -0
  70. package/metadata/packages/components/sd-accordion-group/info.md +70 -0
  71. package/metadata/packages/components/sd-accordion-group/stories/close-others.md +24 -0
  72. package/metadata/packages/components/sd-audio/info.md +80 -0
  73. package/metadata/packages/components/sd-audio/stories/animated.md +34 -0
  74. package/metadata/packages/components/sd-audio/stories/inverted.md +36 -0
  75. package/metadata/packages/components/sd-audio/stories/no-timestamps.md +34 -0
  76. package/metadata/packages/components/sd-audio/stories/reverse.md +35 -0
  77. package/metadata/packages/components/sd-audio/stories/speed.md +38 -0
  78. package/metadata/packages/components/sd-audio/stories/transcript.md +36 -0
  79. package/metadata/packages/components/sd-badge/info.md +69 -0
  80. package/metadata/packages/components/sd-badge/stories/inverted.md +9 -0
  81. package/metadata/packages/components/sd-badge/stories/overflow.md +11 -0
  82. package/metadata/packages/components/sd-badge/stories/size.md +13 -0
  83. package/metadata/packages/components/sd-badge/stories/variant.md +40 -0
  84. package/metadata/packages/components/sd-brandshape/info.md +65 -0
  85. package/metadata/packages/components/sd-brandshape/stories/image-translate-y.md +13 -0
  86. package/metadata/packages/components/sd-brandshape/stories/shapes.md +22 -0
  87. package/metadata/packages/components/sd-brandshape/stories/transparent-variants.md +24 -0
  88. package/metadata/packages/components/sd-brandshape/stories/variant.md +95 -0
  89. package/metadata/packages/components/sd-breadcrumb/info.md +57 -0
  90. package/metadata/packages/components/sd-breadcrumb-item/info.md +42 -0
  91. package/metadata/packages/components/sd-button/info.md +120 -0
  92. package/metadata/packages/components/sd-button/stories/as-link.md +12 -0
  93. package/metadata/packages/components/sd-button/stories/disabled.md +10 -0
  94. package/metadata/packages/components/sd-button/stories/icon.md +10 -0
  95. package/metadata/packages/components/sd-button/stories/inverted.md +10 -0
  96. package/metadata/packages/components/sd-button/stories/loading.md +10 -0
  97. package/metadata/packages/components/sd-button/stories/size.md +13 -0
  98. package/metadata/packages/components/sd-button/stories/variants.md +15 -0
  99. package/metadata/packages/components/sd-button/stories/visually-disabled.md +23 -0
  100. package/metadata/packages/components/sd-carousel/info.md +99 -0
  101. package/metadata/packages/components/sd-carousel/stories/autoplay-interval.md +66 -0
  102. package/metadata/packages/components/sd-carousel/stories/autoplay.md +23 -0
  103. package/metadata/packages/components/sd-carousel/stories/fade.md +18 -0
  104. package/metadata/packages/components/sd-carousel/stories/inverted.md +17 -0
  105. package/metadata/packages/components/sd-carousel/stories/loop.md +17 -0
  106. package/metadata/packages/components/sd-carousel/stories/slides-per-move.md +49 -0
  107. package/metadata/packages/components/sd-carousel/stories/slides-per-page.md +23 -0
  108. package/metadata/packages/components/sd-carousel/stories/variant.md +32 -0
  109. package/metadata/packages/components/sd-carousel-item/info.md +26 -0
  110. package/metadata/packages/components/sd-checkbox/info.md +88 -0
  111. package/metadata/packages/components/sd-checkbox/stories/checked.md +7 -0
  112. package/metadata/packages/components/sd-checkbox/stories/disabled.md +7 -0
  113. package/metadata/packages/components/sd-checkbox/stories/indeterminate.md +7 -0
  114. package/metadata/packages/components/sd-checkbox/stories/invalid.md +22 -0
  115. package/metadata/packages/components/sd-checkbox/stories/required.md +7 -0
  116. package/metadata/packages/components/sd-checkbox/stories/size.md +14 -0
  117. package/metadata/packages/components/sd-checkbox/stories/visually-disabled.md +11 -0
  118. package/metadata/packages/components/sd-checkbox-group/info.md +71 -0
  119. package/metadata/packages/components/sd-checkbox-group/stories/help-text.md +13 -0
  120. package/metadata/packages/components/sd-checkbox-group/stories/label.md +10 -0
  121. package/metadata/packages/components/sd-checkbox-group/stories/orientation.md +19 -0
  122. package/metadata/packages/components/sd-checkbox-group/stories/size.md +21 -0
  123. package/metadata/packages/components/sd-combobox/info.md +170 -0
  124. package/metadata/packages/components/sd-combobox/stories/async-options.md +27 -0
  125. package/metadata/packages/components/sd-combobox/stories/clearable.md +13 -0
  126. package/metadata/packages/components/sd-combobox/stories/custom-filter.md +20 -0
  127. package/metadata/packages/components/sd-combobox/stories/disabled.md +13 -0
  128. package/metadata/packages/components/sd-combobox/stories/floating-label.md +14 -0
  129. package/metadata/packages/components/sd-combobox/stories/focus.md +11 -0
  130. package/metadata/packages/components/sd-combobox/stories/help-text.md +36 -0
  131. package/metadata/packages/components/sd-combobox/stories/icons.md +15 -0
  132. package/metadata/packages/components/sd-combobox/stories/invalid.md +29 -0
  133. package/metadata/packages/components/sd-combobox/stories/label.md +26 -0
  134. package/metadata/packages/components/sd-combobox/stories/max-options-visible.md +23 -0
  135. package/metadata/packages/components/sd-combobox/stories/multiple.md +24 -0
  136. package/metadata/packages/components/sd-combobox/stories/placeholder.md +13 -0
  137. package/metadata/packages/components/sd-combobox/stories/placement.md +29 -0
  138. package/metadata/packages/components/sd-combobox/stories/required.md +20 -0
  139. package/metadata/packages/components/sd-combobox/stories/search.md +13 -0
  140. package/metadata/packages/components/sd-combobox/stories/size.md +38 -0
  141. package/metadata/packages/components/sd-combobox/stories/suggestion-container-height.md +12 -0
  142. package/metadata/packages/components/sd-combobox/stories/valid.md +29 -0
  143. package/metadata/packages/components/sd-combobox/stories/visually-disabled.md +17 -0
  144. package/metadata/packages/components/sd-datepicker/info.md +159 -0
  145. package/metadata/packages/components/sd-datepicker/stories/alignment.md +10 -0
  146. package/metadata/packages/components/sd-datepicker/stories/disabled-dates.md +11 -0
  147. package/metadata/packages/components/sd-datepicker/stories/disabled-weekends.md +7 -0
  148. package/metadata/packages/components/sd-datepicker/stories/disabled.md +8 -0
  149. package/metadata/packages/components/sd-datepicker/stories/floating-label.md +8 -0
  150. package/metadata/packages/components/sd-datepicker/stories/help-text.md +11 -0
  151. package/metadata/packages/components/sd-datepicker/stories/invalid.md +15 -0
  152. package/metadata/packages/components/sd-datepicker/stories/label.md +11 -0
  153. package/metadata/packages/components/sd-datepicker/stories/placeholder.md +7 -0
  154. package/metadata/packages/components/sd-datepicker/stories/range.md +7 -0
  155. package/metadata/packages/components/sd-datepicker/stories/required.md +7 -0
  156. package/metadata/packages/components/sd-datepicker/stories/size.md +14 -0
  157. package/metadata/packages/components/sd-datepicker/stories/valid.md +16 -0
  158. package/metadata/packages/components/sd-datepicker/stories/visible-month.md +7 -0
  159. package/metadata/packages/components/sd-datepicker/stories/visually-disabled.md +11 -0
  160. package/metadata/packages/components/sd-dialog/info.md +89 -0
  161. package/metadata/packages/components/sd-dialog/stories/headline.md +22 -0
  162. package/metadata/packages/components/sd-dialog/stories/no-close-button.md +32 -0
  163. package/metadata/packages/components/sd-dialog/stories/open.md +72 -0
  164. package/metadata/packages/components/sd-divider/info.md +51 -0
  165. package/metadata/packages/components/sd-divider/stories/inverted.md +7 -0
  166. package/metadata/packages/components/sd-divider/stories/orientation.md +11 -0
  167. package/metadata/packages/components/sd-divider/stories/size.md +10 -0
  168. package/metadata/packages/components/sd-drawer/info.md +89 -0
  169. package/metadata/packages/components/sd-drawer/stories/no-header.md +16 -0
  170. package/metadata/packages/components/sd-drawer/stories/open.md +23 -0
  171. package/metadata/packages/components/sd-drawer/stories/placement.md +23 -0
  172. package/metadata/packages/components/sd-dropdown/info.md +86 -0
  173. package/metadata/packages/components/sd-dropdown/stories/disabled.md +8 -0
  174. package/metadata/packages/components/sd-dropdown/stories/distance.md +8 -0
  175. package/metadata/packages/components/sd-dropdown/stories/no-auto-size.md +10 -0
  176. package/metadata/packages/components/sd-dropdown/stories/no-flip.md +8 -0
  177. package/metadata/packages/components/sd-dropdown/stories/open.md +8 -0
  178. package/metadata/packages/components/sd-dropdown/stories/placement.md +20 -0
  179. package/metadata/packages/components/sd-dropdown/stories/rounded.md +10 -0
  180. package/metadata/packages/components/sd-dropdown/stories/skidding.md +8 -0
  181. package/metadata/packages/components/sd-dropdown/stories/stay-open.md +12 -0
  182. package/metadata/packages/components/sd-expandable/info.md +79 -0
  183. package/metadata/packages/components/sd-expandable/stories/gradient.md +75 -0
  184. package/metadata/packages/components/sd-expandable/stories/inverted.md +33 -0
  185. package/metadata/packages/components/sd-expandable/stories/open.md +60 -0
  186. package/metadata/packages/components/sd-flipcard/info.md +84 -0
  187. package/metadata/packages/components/sd-flipcard/stories/aspect-ratios.md +26 -0
  188. package/metadata/packages/components/sd-flipcard/stories/flip-direction.md +17 -0
  189. package/metadata/packages/components/sd-flipcard/stories/placement.md +17 -0
  190. package/metadata/packages/components/sd-flipcard/stories/variants.md +51 -0
  191. package/metadata/packages/components/sd-header/info.md +60 -0
  192. package/metadata/packages/components/sd-header/stories/fixed.md +9 -0
  193. package/metadata/packages/components/sd-icon/info.md +35 -0
  194. package/metadata/packages/components/sd-icon/stories/color.md +15 -0
  195. package/metadata/packages/components/sd-icon/stories/custom-libraries.md +119 -0
  196. package/metadata/packages/components/sd-icon/stories/label.md +12 -0
  197. package/metadata/packages/components/sd-icon/stories/libraries.md +38 -0
  198. package/metadata/packages/components/sd-icon/stories/name.md +36 -0
  199. package/metadata/packages/components/sd-icon/stories/size.md +10 -0
  200. package/metadata/packages/components/sd-include/info.md +20 -0
  201. package/metadata/packages/components/sd-input/info.md +176 -0
  202. package/metadata/packages/components/sd-input/stories/clearable.md +7 -0
  203. package/metadata/packages/components/sd-input/stories/disabled.md +7 -0
  204. package/metadata/packages/components/sd-input/stories/floating-label.md +8 -0
  205. package/metadata/packages/components/sd-input/stories/help-text.md +11 -0
  206. package/metadata/packages/components/sd-input/stories/icon.md +13 -0
  207. package/metadata/packages/components/sd-input/stories/invalid.md +14 -0
  208. package/metadata/packages/components/sd-input/stories/label.md +11 -0
  209. package/metadata/packages/components/sd-input/stories/max-length.md +7 -0
  210. package/metadata/packages/components/sd-input/stories/max.md +7 -0
  211. package/metadata/packages/components/sd-input/stories/min-length.md +7 -0
  212. package/metadata/packages/components/sd-input/stories/min.md +7 -0
  213. package/metadata/packages/components/sd-input/stories/pattern.md +7 -0
  214. package/metadata/packages/components/sd-input/stories/placeholder.md +7 -0
  215. package/metadata/packages/components/sd-input/stories/read-only.md +8 -0
  216. package/metadata/packages/components/sd-input/stories/required.md +7 -0
  217. package/metadata/packages/components/sd-input/stories/size.md +14 -0
  218. package/metadata/packages/components/sd-input/stories/spin-buttons.md +14 -0
  219. package/metadata/packages/components/sd-input/stories/toggle-password.md +8 -0
  220. package/metadata/packages/components/sd-input/stories/type.md +80 -0
  221. package/metadata/packages/components/sd-input/stories/valid.md +15 -0
  222. package/metadata/packages/components/sd-input/stories/value.md +7 -0
  223. package/metadata/packages/components/sd-input/stories/visually-disabled.md +11 -0
  224. package/metadata/packages/components/sd-link/info.md +80 -0
  225. package/metadata/packages/components/sd-link/stories/as-link.md +12 -0
  226. package/metadata/packages/components/sd-link/stories/disabled.md +7 -0
  227. package/metadata/packages/components/sd-link/stories/icon.md +14 -0
  228. package/metadata/packages/components/sd-link/stories/inverted.md +7 -0
  229. package/metadata/packages/components/sd-link/stories/size.md +13 -0
  230. package/metadata/packages/components/sd-link/stories/standalone.md +29 -0
  231. package/metadata/packages/components/sd-link/stories/visually-disabled.md +17 -0
  232. package/metadata/packages/components/sd-loader/info.md +54 -0
  233. package/metadata/packages/components/sd-loader/stories/default.md +5 -0
  234. package/metadata/packages/components/sd-loader/stories/size.md +15 -0
  235. package/metadata/packages/components/sd-loader/stories/variants.md +19 -0
  236. package/metadata/packages/components/sd-map-marker/info.md +74 -0
  237. package/metadata/packages/components/sd-map-marker/stories/animated.md +13 -0
  238. package/metadata/packages/components/sd-map-marker/stories/as-link.md +13 -0
  239. package/metadata/packages/components/sd-map-marker/stories/not-interactive.md +11 -0
  240. package/metadata/packages/components/sd-map-marker/stories/slot.md +8 -0
  241. package/metadata/packages/components/sd-map-marker/stories/state.md +47 -0
  242. package/metadata/packages/components/sd-map-marker/stories/variant.md +21 -0
  243. package/metadata/packages/components/sd-menu/info.md +68 -0
  244. package/metadata/packages/components/sd-menu/stories/checkmark.md +12 -0
  245. package/metadata/packages/components/sd-menu/stories/disabled.md +12 -0
  246. package/metadata/packages/components/sd-menu/stories/grouping.md +20 -0
  247. package/metadata/packages/components/sd-menu/stories/icon.md +80 -0
  248. package/metadata/packages/components/sd-menu/stories/submenu.md +18 -0
  249. package/metadata/packages/components/sd-menu-item/info.md +36 -0
  250. package/metadata/packages/components/sd-menu-item/stories/checkmark.md +5 -0
  251. package/metadata/packages/components/sd-menu-item/stories/disabled.md +5 -0
  252. package/metadata/packages/components/sd-menu-item/stories/icon-indent.md +8 -0
  253. package/metadata/packages/components/sd-navigation-item/info.md +98 -0
  254. package/metadata/packages/components/sd-navigation-item/stories/accordion.md +15 -0
  255. package/metadata/packages/components/sd-navigation-item/stories/as-link.md +7 -0
  256. package/metadata/packages/components/sd-navigation-item/stories/chevron.md +10 -0
  257. package/metadata/packages/components/sd-navigation-item/stories/current.md +8 -0
  258. package/metadata/packages/components/sd-navigation-item/stories/description.md +11 -0
  259. package/metadata/packages/components/sd-navigation-item/stories/disabled.md +5 -0
  260. package/metadata/packages/components/sd-navigation-item/stories/divider.md +6 -0
  261. package/metadata/packages/components/sd-navigation-item/stories/indented.md +8 -0
  262. package/metadata/packages/components/sd-navigation-item/stories/orientation.md +6 -0
  263. package/metadata/packages/components/sd-navigation-item/stories/relaxed.md +8 -0
  264. package/metadata/packages/components/sd-navigation-item/stories/separated.md +14 -0
  265. package/metadata/packages/components/sd-navigation-item/stories/size.md +13 -0
  266. package/metadata/packages/components/sd-navigation-item/stories/stacked.md +8 -0
  267. package/metadata/packages/components/sd-notification/info.md +135 -0
  268. package/metadata/packages/components/sd-notification/stories/closable.md +13 -0
  269. package/metadata/packages/components/sd-notification/stories/duration-indicator.md +15 -0
  270. package/metadata/packages/components/sd-notification/stories/duration.md +16 -0
  271. package/metadata/packages/components/sd-notification/stories/open.md +5 -0
  272. package/metadata/packages/components/sd-notification/stories/toast-bottom-center.md +53 -0
  273. package/metadata/packages/components/sd-notification/stories/toast-notification.md +67 -0
  274. package/metadata/packages/components/sd-notification/stories/variants.md +20 -0
  275. package/metadata/packages/components/sd-optgroup/info.md +55 -0
  276. package/metadata/packages/components/sd-optgroup/stories/disabled.md +13 -0
  277. package/metadata/packages/components/sd-option/info.md +65 -0
  278. package/metadata/packages/components/sd-option/stories/checkbox.md +19 -0
  279. package/metadata/packages/components/sd-option/stories/disabled.md +22 -0
  280. package/metadata/packages/components/sd-option/stories/selected.md +23 -0
  281. package/metadata/packages/components/sd-option/stories/size.md +26 -0
  282. package/metadata/packages/components/sd-popup/info.md +66 -0
  283. package/metadata/packages/components/sd-progress-bar/info.md +73 -0
  284. package/metadata/packages/components/sd-progress-bar/stories/custom-height.md +5 -0
  285. package/metadata/packages/components/sd-progress-bar/stories/inverted.md +9 -0
  286. package/metadata/packages/components/sd-progress-bar/stories/label.md +16 -0
  287. package/metadata/packages/components/sd-progress-bar/stories/loading.md +5 -0
  288. package/metadata/packages/components/sd-progress-bar/stories/value-formatter.md +20 -0
  289. package/metadata/packages/components/sd-progress-bar/stories/value-max.md +6 -0
  290. package/metadata/packages/components/sd-progress-bar/stories/value-position.md +11 -0
  291. package/metadata/packages/components/sd-quickfact/info.md +84 -0
  292. package/metadata/packages/components/sd-quickfact/stories/expandable.md +46 -0
  293. package/metadata/packages/components/sd-quickfact/stories/open.md +15 -0
  294. package/metadata/packages/components/sd-quickfact/stories/summary.md +13 -0
  295. package/metadata/packages/components/sd-radio/info.md +47 -0
  296. package/metadata/packages/components/sd-radio/stories/disabled.md +9 -0
  297. package/metadata/packages/components/sd-radio/stories/invalid.md +22 -0
  298. package/metadata/packages/components/sd-radio/stories/size.md +26 -0
  299. package/metadata/packages/components/sd-radio/stories/visually-disabled.md +11 -0
  300. package/metadata/packages/components/sd-radio-button/info.md +81 -0
  301. package/metadata/packages/components/sd-radio-button/stories/checked.md +20 -0
  302. package/metadata/packages/components/sd-radio-button/stories/disabled.md +20 -0
  303. package/metadata/packages/components/sd-radio-button/stories/icon.md +17 -0
  304. package/metadata/packages/components/sd-radio-button/stories/label.md +19 -0
  305. package/metadata/packages/components/sd-radio-button/stories/size.md +54 -0
  306. package/metadata/packages/components/sd-radio-button/stories/visually-disabled.md +26 -0
  307. package/metadata/packages/components/sd-radio-group/info.md +91 -0
  308. package/metadata/packages/components/sd-radio-group/stories/disabled.md +10 -0
  309. package/metadata/packages/components/sd-radio-group/stories/help-text.md +12 -0
  310. package/metadata/packages/components/sd-radio-group/stories/invalid.md +23 -0
  311. package/metadata/packages/components/sd-radio-group/stories/label.md +9 -0
  312. package/metadata/packages/components/sd-radio-group/stories/orientation.md +20 -0
  313. package/metadata/packages/components/sd-radio-group/stories/required.md +28 -0
  314. package/metadata/packages/components/sd-radio-group/stories/size.md +20 -0
  315. package/metadata/packages/components/sd-range/info.md +101 -0
  316. package/metadata/packages/components/sd-range/stories/tooltip-formatter.md +13 -0
  317. package/metadata/packages/components/sd-range-tick/info.md +21 -0
  318. package/metadata/packages/components/sd-scrollable/info.md +87 -0
  319. package/metadata/packages/components/sd-scrollable/stories/buttons.md +15 -0
  320. package/metadata/packages/components/sd-scrollable/stories/inset.md +15 -0
  321. package/metadata/packages/components/sd-scrollable/stories/orientation.md +32 -0
  322. package/metadata/packages/components/sd-scrollable/stories/scrollbar.md +15 -0
  323. package/metadata/packages/components/sd-scrollable/stories/shadows.md +15 -0
  324. package/metadata/packages/components/sd-scrollable/stories/step.md +15 -0
  325. package/metadata/packages/components/sd-select/info.md +155 -0
  326. package/metadata/packages/components/sd-select/stories/clearable.md +13 -0
  327. package/metadata/packages/components/sd-select/stories/disabled.md +13 -0
  328. package/metadata/packages/components/sd-select/stories/floating-label.md +14 -0
  329. package/metadata/packages/components/sd-select/stories/help-text.md +23 -0
  330. package/metadata/packages/components/sd-select/stories/invalid.md +30 -0
  331. package/metadata/packages/components/sd-select/stories/label.md +23 -0
  332. package/metadata/packages/components/sd-select/stories/max-options-visible.md +24 -0
  333. package/metadata/packages/components/sd-select/stories/multiple.md +14 -0
  334. package/metadata/packages/components/sd-select/stories/placeholder.md +13 -0
  335. package/metadata/packages/components/sd-select/stories/placement.md +24 -0
  336. package/metadata/packages/components/sd-select/stories/required.md +13 -0
  337. package/metadata/packages/components/sd-select/stories/size.md +34 -0
  338. package/metadata/packages/components/sd-select/stories/use-tags.md +14 -0
  339. package/metadata/packages/components/sd-select/stories/valid.md +29 -0
  340. package/metadata/packages/components/sd-select/stories/visually-disabled.md +17 -0
  341. package/metadata/packages/components/sd-skeleton/info.md +57 -0
  342. package/metadata/packages/components/sd-skeleton/stories/variants.md +13 -0
  343. package/metadata/packages/components/sd-spinner/info.md +53 -0
  344. package/metadata/packages/components/sd-spinner/stories/size.md +15 -0
  345. package/metadata/packages/components/sd-spinner/stories/variants.md +43 -0
  346. package/metadata/packages/components/sd-step/info.md +80 -0
  347. package/metadata/packages/components/sd-step/stories/as-link.md +9 -0
  348. package/metadata/packages/components/sd-step/stories/current.md +9 -0
  349. package/metadata/packages/components/sd-step/stories/description-and-label-using-attributes.md +7 -0
  350. package/metadata/packages/components/sd-step/stories/description.md +28 -0
  351. package/metadata/packages/components/sd-step/stories/disabled.md +9 -0
  352. package/metadata/packages/components/sd-step/stories/horizontal-inline.md +9 -0
  353. package/metadata/packages/components/sd-step/stories/icon.md +10 -0
  354. package/metadata/packages/components/sd-step/stories/label.md +7 -0
  355. package/metadata/packages/components/sd-step/stories/no-tail.md +9 -0
  356. package/metadata/packages/components/sd-step/stories/not-interactive.md +9 -0
  357. package/metadata/packages/components/sd-step/stories/orientation.md +15 -0
  358. package/metadata/packages/components/sd-step/stories/size.md +19 -0
  359. package/metadata/packages/components/sd-step/stories/waiting.md +9 -0
  360. package/metadata/packages/components/sd-step-group/info.md +74 -0
  361. package/metadata/packages/components/sd-step-group/stories/active-step.md +17 -0
  362. package/metadata/packages/components/sd-step-group/stories/horizontal-inline.md +17 -0
  363. package/metadata/packages/components/sd-step-group/stories/icon.md +20 -0
  364. package/metadata/packages/components/sd-step-group/stories/manual-state.md +23 -0
  365. package/metadata/packages/components/sd-step-group/stories/not-interactive.md +17 -0
  366. package/metadata/packages/components/sd-step-group/stories/orientation.md +39 -0
  367. package/metadata/packages/components/sd-step-group/stories/size.md +53 -0
  368. package/metadata/packages/components/sd-switch/info.md +79 -0
  369. package/metadata/packages/components/sd-switch/stories/checked.md +5 -0
  370. package/metadata/packages/components/sd-switch/stories/disabled.md +5 -0
  371. package/metadata/packages/components/sd-switch/stories/invalid.md +18 -0
  372. package/metadata/packages/components/sd-switch/stories/required.md +5 -0
  373. package/metadata/packages/components/sd-tab/info.md +42 -0
  374. package/metadata/packages/components/sd-tab/stories/active.md +44 -0
  375. package/metadata/packages/components/sd-tab/stories/disabled.md +20 -0
  376. package/metadata/packages/components/sd-tab/stories/icon.md +29 -0
  377. package/metadata/packages/components/sd-tab/stories/variant.md +42 -0
  378. package/metadata/packages/components/sd-tab/stories/visually-disabled.md +24 -0
  379. package/metadata/packages/components/sd-tab-group/info.md +88 -0
  380. package/metadata/packages/components/sd-tab-group/stories/activation.md +52 -0
  381. package/metadata/packages/components/sd-tab-group/stories/scrollable.md +66 -0
  382. package/metadata/packages/components/sd-tab-panel/info.md +26 -0
  383. package/metadata/packages/components/sd-tab-panel/stories/open.md +9 -0
  384. package/metadata/packages/components/sd-tag/info.md +75 -0
  385. package/metadata/packages/components/sd-tag/stories/as-link.md +12 -0
  386. package/metadata/packages/components/sd-tag/stories/disabled.md +10 -0
  387. package/metadata/packages/components/sd-tag/stories/icon.md +10 -0
  388. package/metadata/packages/components/sd-tag/stories/removable.md +22 -0
  389. package/metadata/packages/components/sd-tag/stories/selected.md +20 -0
  390. package/metadata/packages/components/sd-tag/stories/size.md +11 -0
  391. package/metadata/packages/components/sd-teaser/info.md +85 -0
  392. package/metadata/packages/components/sd-teaser/stories/breakpoint.md +28 -0
  393. package/metadata/packages/components/sd-teaser/stories/default-and-headline-slot.md +14 -0
  394. package/metadata/packages/components/sd-teaser/stories/distribution.md +13 -0
  395. package/metadata/packages/components/sd-teaser/stories/inset.md +12 -0
  396. package/metadata/packages/components/sd-teaser/stories/media-slot.md +14 -0
  397. package/metadata/packages/components/sd-teaser/stories/meta-slot.md +16 -0
  398. package/metadata/packages/components/sd-teaser/stories/reverse.md +14 -0
  399. package/metadata/packages/components/sd-teaser/stories/variant.md +34 -0
  400. package/metadata/packages/components/sd-teaser-media/info.md +86 -0
  401. package/metadata/packages/components/sd-teaser-media/stories/default-media-and-headline-slot.md +15 -0
  402. package/metadata/packages/components/sd-teaser-media/stories/expandable-slot.md +10 -0
  403. package/metadata/packages/components/sd-teaser-media/stories/meta-slot.md +9 -0
  404. package/metadata/packages/components/sd-teaser-media/stories/variant.md +78 -0
  405. package/metadata/packages/components/sd-textarea/info.md +132 -0
  406. package/metadata/packages/components/sd-textarea/stories/disabled.md +7 -0
  407. package/metadata/packages/components/sd-textarea/stories/floating-label.md +8 -0
  408. package/metadata/packages/components/sd-textarea/stories/help-text.md +11 -0
  409. package/metadata/packages/components/sd-textarea/stories/invalid.md +24 -0
  410. package/metadata/packages/components/sd-textarea/stories/label.md +11 -0
  411. package/metadata/packages/components/sd-textarea/stories/max-length.md +15 -0
  412. package/metadata/packages/components/sd-textarea/stories/min-length.md +15 -0
  413. package/metadata/packages/components/sd-textarea/stories/placeholder.md +7 -0
  414. package/metadata/packages/components/sd-textarea/stories/readonly.md +16 -0
  415. package/metadata/packages/components/sd-textarea/stories/required.md +7 -0
  416. package/metadata/packages/components/sd-textarea/stories/rows.md +11 -0
  417. package/metadata/packages/components/sd-textarea/stories/size.md +16 -0
  418. package/metadata/packages/components/sd-textarea/stories/valid.md +22 -0
  419. package/metadata/packages/components/sd-textarea/stories/visually-disabled.md +18 -0
  420. package/metadata/packages/components/sd-theme-listener/info.md +20 -0
  421. package/metadata/packages/components/sd-theme-listener/stories/default.md +31 -0
  422. package/metadata/packages/components/sd-tooltip/info.md +101 -0
  423. package/metadata/packages/components/sd-tooltip/stories/close-trigger.md +19 -0
  424. package/metadata/packages/components/sd-tooltip/stories/custom-trigger.md +20 -0
  425. package/metadata/packages/components/sd-tooltip/stories/disabled.md +5 -0
  426. package/metadata/packages/components/sd-tooltip/stories/hoist.md +7 -0
  427. package/metadata/packages/components/sd-tooltip/stories/placement.md +43 -0
  428. package/metadata/packages/components/sd-tooltip/stories/size.md +11 -0
  429. package/metadata/packages/components/sd-tooltip/stories/trigger.md +10 -0
  430. package/metadata/packages/components/sd-video/info.md +70 -0
  431. package/metadata/packages/components/sd-video/stories/playing.md +11 -0
  432. package/metadata/packages/components/sd-video/stories/video-element-with-poster-slot.md +24 -0
  433. package/metadata/packages/icons/default/content.json +2267 -0
  434. package/metadata/packages/icons/default/system.json +1112 -0
  435. package/metadata/packages/icons/sd-multi-theming/content.json +27 -0
  436. package/metadata/packages/icons/sd-multi-theming/system.json +307 -0
  437. package/metadata/packages/icons/sd-status-assets/status.json +37 -0
  438. package/metadata/packages/quickstart/docs/quickstart.md +50 -0
  439. package/metadata/packages/styles/docs/installation.md +161 -0
  440. package/metadata/packages/styles/docs/usage.md +11 -0
  441. package/metadata/packages/styles/sd-chip/info.md +49 -0
  442. package/metadata/packages/styles/sd-chip/stories/variants.md +40 -0
  443. package/metadata/packages/styles/sd-container/info.md +39 -0
  444. package/metadata/packages/styles/sd-container/stories/custom-padding.md +7 -0
  445. package/metadata/packages/styles/sd-container/stories/padding.md +7 -0
  446. package/metadata/packages/styles/sd-container/stories/triangle-border.md +26 -0
  447. package/metadata/packages/styles/sd-container/stories/triangle-color.md +12 -0
  448. package/metadata/packages/styles/sd-container/stories/triangle-position.md +27 -0
  449. package/metadata/packages/styles/sd-container/stories/variants.md +36 -0
  450. package/metadata/packages/styles/sd-copyright/info.md +41 -0
  451. package/metadata/packages/styles/sd-copyright/stories/no-shadow.md +13 -0
  452. package/metadata/packages/styles/sd-copyright/stories/orientation.md +16 -0
  453. package/metadata/packages/styles/sd-copyright/stories/placement.md +21 -0
  454. package/metadata/packages/styles/sd-copyright/stories/variants.md +15 -0
  455. package/metadata/packages/styles/sd-display/info.md +42 -0
  456. package/metadata/packages/styles/sd-display/stories/inverted.md +7 -0
  457. package/metadata/packages/styles/sd-display/stories/size.md +13 -0
  458. package/metadata/packages/styles/sd-flag/info.md +45 -0
  459. package/metadata/packages/styles/sd-flag/stories/variants.md +40 -0
  460. package/metadata/packages/styles/sd-footnotes/info.md +49 -0
  461. package/metadata/packages/styles/sd-footnotes/stories/inverted.md +11 -0
  462. package/metadata/packages/styles/sd-footnotes/stories/variants.md +19 -0
  463. package/metadata/packages/styles/sd-headline/info.md +56 -0
  464. package/metadata/packages/styles/sd-headline/stories/inline.md +14 -0
  465. package/metadata/packages/styles/sd-headline/stories/inverted.md +7 -0
  466. package/metadata/packages/styles/sd-headline/stories/sizes.md +21 -0
  467. package/metadata/packages/styles/sd-hidden-links/info.md +55 -0
  468. package/metadata/packages/styles/sd-hidden-links/stories/debug.md +12 -0
  469. package/metadata/packages/styles/sd-hidden-links/stories/multiple-links.md +13 -0
  470. package/metadata/packages/styles/sd-hidden-links/stories/stack-links.md +10 -0
  471. package/metadata/packages/styles/sd-hidden-links/stories/surrounding-content.md +54 -0
  472. package/metadata/packages/styles/sd-hidden-links/stories/title-for-multiple-links.md +34 -0
  473. package/metadata/packages/styles/sd-interactive/info.md +50 -0
  474. package/metadata/packages/styles/sd-interactive/stories/disabled.md +6 -0
  475. package/metadata/packages/styles/sd-interactive/stories/inverted.md +7 -0
  476. package/metadata/packages/styles/sd-interactive/stories/reset.md +30 -0
  477. package/metadata/packages/styles/sd-leadtext/info.md +41 -0
  478. package/metadata/packages/styles/sd-leadtext/stories/inverted.md +11 -0
  479. package/metadata/packages/styles/sd-leadtext/stories/size.md +19 -0
  480. package/metadata/packages/styles/sd-list/info.md +49 -0
  481. package/metadata/packages/styles/sd-list/stories/inverted.md +20 -0
  482. package/metadata/packages/styles/sd-list/stories/levels.md +62 -0
  483. package/metadata/packages/styles/sd-list/stories/orientation.md +34 -0
  484. package/metadata/packages/styles/sd-list/stories/variants.md +34 -0
  485. package/metadata/packages/styles/sd-mark/info.md +30 -0
  486. package/metadata/packages/styles/sd-media/info.md +50 -0
  487. package/metadata/packages/styles/sd-media/stories/description.md +8 -0
  488. package/metadata/packages/styles/sd-media/stories/inverted.md +14 -0
  489. package/metadata/packages/styles/sd-meta/info.md +38 -0
  490. package/metadata/packages/styles/sd-meta/stories/inverted.md +11 -0
  491. package/metadata/packages/styles/sd-meta/stories/pipe.md +7 -0
  492. package/metadata/packages/styles/sd-meta/stories/size.md +11 -0
  493. package/metadata/packages/styles/sd-meta/stories/variants.md +11 -0
  494. package/metadata/packages/styles/sd-pagination/info.md +60 -0
  495. package/metadata/packages/styles/sd-pagination/stories/hidden-headline.md +37 -0
  496. package/metadata/packages/styles/sd-pagination/stories/inverted.md +36 -0
  497. package/metadata/packages/styles/sd-pagination/stories/truncation.md +34 -0
  498. package/metadata/packages/styles/sd-pagination/stories/variants.md +51 -0
  499. package/metadata/packages/styles/sd-paragraph/info.md +39 -0
  500. package/metadata/packages/styles/sd-paragraph/stories/inverted.md +11 -0
  501. package/metadata/packages/styles/sd-paragraph/stories/size.md +19 -0
  502. package/metadata/packages/styles/sd-prose/info.md +49 -0
  503. package/metadata/packages/styles/sd-prose/stories/full-width.md +22 -0
  504. package/metadata/packages/styles/sd-prose/stories/inverted.md +11 -0
  505. package/metadata/packages/styles/sd-prose/stories/styling-options.md +108 -0
  506. package/metadata/packages/styles/sd-status-badge/info.md +44 -0
  507. package/metadata/packages/styles/sd-status-badge/stories/variants.md +27 -0
  508. package/metadata/packages/styles/sd-table/info.md +43 -0
  509. package/metadata/packages/styles/sd-table/stories/slot.md +11 -0
  510. package/metadata/packages/styles/sd-table-cell/info.md +61 -0
  511. package/metadata/packages/styles/sd-table-cell/stories/divider.md +19 -0
  512. package/metadata/packages/styles/sd-table-cell/stories/shadow.md +137 -0
  513. package/metadata/packages/styles/sd-table-cell/stories/variants.md +39 -0
  514. package/metadata/packages/templates/accordion-group.md +163 -0
  515. package/metadata/packages/templates/audio.md +194 -0
  516. package/metadata/packages/templates/autocomplete.md +213 -0
  517. package/metadata/packages/templates/badge.md +149 -0
  518. package/metadata/packages/templates/bottom-navigation.md +263 -0
  519. package/metadata/packages/templates/brandshape.md +81 -0
  520. package/metadata/packages/templates/breadcrumb.md +361 -0
  521. package/metadata/packages/templates/button.md +107 -0
  522. package/metadata/packages/templates/carousel.md +64 -0
  523. package/metadata/packages/templates/checkbox-group.md +81 -0
  524. package/metadata/packages/templates/chip.md +35 -0
  525. package/metadata/packages/templates/combobox.md +92 -0
  526. package/metadata/packages/templates/datepicker.md +44 -0
  527. package/metadata/packages/templates/dialog.md +270 -0
  528. package/metadata/packages/templates/drawer.md +185 -0
  529. package/metadata/packages/templates/dropdown.md +52 -0
  530. package/metadata/packages/templates/expandable.md +61 -0
  531. package/metadata/packages/templates/flag.md +38 -0
  532. package/metadata/packages/templates/flipcard.md +66 -0
  533. package/metadata/packages/templates/footnotes.md +80 -0
  534. package/metadata/packages/templates/forms.md +248 -0
  535. package/metadata/packages/templates/header-navigation.md +1951 -0
  536. package/metadata/packages/templates/headline.md +204 -0
  537. package/metadata/packages/templates/input.md +27 -0
  538. package/metadata/packages/templates/interactive.md +28 -0
  539. package/metadata/packages/templates/link.md +83 -0
  540. package/metadata/packages/templates/list.md +27 -0
  541. package/metadata/packages/templates/map-marker.md +15 -0
  542. package/metadata/packages/templates/mark.md +39 -0
  543. package/metadata/packages/templates/media.md +22 -0
  544. package/metadata/packages/templates/menu.md +93 -0
  545. package/metadata/packages/templates/notification.md +100 -0
  546. package/metadata/packages/templates/pagination.md +340 -0
  547. package/metadata/packages/templates/quickfact.md +267 -0
  548. package/metadata/packages/templates/quote.md +97 -0
  549. package/metadata/packages/templates/radio-button-group.md +24 -0
  550. package/metadata/packages/templates/radio-group.md +51 -0
  551. package/metadata/packages/templates/range.md +135 -0
  552. package/metadata/packages/templates/select.md +63 -0
  553. package/metadata/packages/templates/skeleton.md +32 -0
  554. package/metadata/packages/templates/status-badge.md +252 -0
  555. package/metadata/packages/templates/step-group.md +150 -0
  556. package/metadata/packages/templates/supernumber.md +178 -0
  557. package/metadata/packages/templates/switch.md +51 -0
  558. package/metadata/packages/templates/tab-group.md +157 -0
  559. package/metadata/packages/templates/table.md +2612 -0
  560. package/metadata/packages/templates/tag.md +230 -0
  561. package/metadata/packages/templates/teaser-media.md +164 -0
  562. package/metadata/packages/templates/teaser.md +320 -0
  563. package/metadata/packages/templates/tooltip.md +104 -0
  564. package/metadata/packages/templates/video.md +71 -0
  565. package/metadata/packages/tokens/docs/installation.md +445 -0
  566. package/metadata/packages/tokens/docs/usage.md +338 -0
  567. package/metadata/packages/tokens/themes.json +3 -0
  568. package/metadata/packages/tokens/tokens.json +185 -0
  569. package/package.json +76 -0
@@ -0,0 +1,1951 @@
1
+ ---
2
+ name: header-navigation
3
+ title: Header Navigation
4
+ components:
5
+ - sd-button
6
+ - sd-divider
7
+ - sd-drawer
8
+ - sd-dropdown
9
+ - sd-header
10
+ - sd-header-calculated-height
11
+ - sd-header-padding
12
+ - sd-headline
13
+ - sd-headline--size-base
14
+ - sd-headline--size-lg
15
+ - sd-hide
16
+ - sd-icon
17
+ - sd-interactive
18
+ - sd-navigation-item
19
+ - sd-notification
20
+ - sd-show
21
+ version: 1.0.0
22
+ ---
23
+
24
+ ## Template: Header Variant A-01 with different Header Navigation Templates
25
+
26
+ ```html
27
+ <!-- Storybook specific styles - DO NOT COPY -->
28
+ <style>
29
+ #anchor--templates-header-navigation--vertical .innerZoomElementWrapper > *,
30
+ #anchor--templates-header-navigation--sample-c-01 .innerZoomElementWrapper > *,
31
+ #anchor--templates-header-navigation--sample-c-02 .innerZoomElementWrapper > *,
32
+ #anchor--templates-header-navigation--sample-d-01 .innerZoomElementWrapper > *,
33
+ #anchor--templates-header-navigation--sample-d-02 .innerZoomElementWrapper > * {
34
+ border: 0 !important;
35
+ }
36
+
37
+ #anchor--templates-header-navigation--horizontal .innerZoomElementWrapper,
38
+ #anchor--templates-header-navigation--vertical .innerZoomElementWrapper,
39
+ #anchor--templates-header-navigation--sample-a .innerZoomElementWrapper,
40
+ #anchor--templates-header-navigation--sample-a-02 .innerZoomElementWrapper,
41
+ #anchor--templates-header-navigation--sample-b .innerZoomElementWrapper,
42
+ #anchor--templates-header-navigation--sample-b-01 .innerZoomElementWrapper,
43
+ #anchor--templates-header-navigation--sample-b-02 .innerZoomElementWrapper,
44
+ #anchor--templates-header-navigation--sample-c-01 .innerZoomElementWrapper,
45
+ #anchor--templates-header-navigation--sample-c-02 .innerZoomElementWrapper,
46
+ #anchor--templates-header-navigation--sample-d-01 .innerZoomElementWrapper,
47
+ #anchor--templates-header-navigation--sample-d-02 .innerZoomElementWrapper {
48
+ height: 100vh;
49
+ }
50
+
51
+ #anchor--templates-header-navigation--horizontal .docs-story,
52
+ #anchor--templates-header-navigation--vertical .docs-story,
53
+ #anchor--templates-header-navigation--sample-a .docs-story,
54
+ #anchor--templates-header-navigation--sample-a-02 .docs-story,
55
+ #anchor--templates-header-navigation--sample-b .docs-story,
56
+ #anchor--templates-header-navigation--sample-b-01 .docs-story,
57
+ #anchor--templates-header-navigation--sample-b-02 .docs-story,
58
+ #anchor--templates-header-navigation--sample-c-01 .docs-story,
59
+ #anchor--templates-header-navigation--sample-c-02 .docs-story,
60
+ #anchor--templates-header-navigation--sample-d-01 .docs-story,
61
+ #anchor--templates-header-navigation--sample-d-02 .docs-story {
62
+ padding: 0 !important;
63
+ }
64
+ </style>
65
+
66
+ <sd-header id="horizontal" fixed>
67
+ <div class="flex justify-between items-center my-0 lg:my-3">
68
+ <a class="inline-flex sd-interactive" href="#">
69
+ <img class="h-8 md:h-12 lg:h-14 w-auto object-contain" src="${currentTheme.logoLg}" alt="${currentTheme.alt}" />
70
+ </a>
71
+
72
+ <sd-navigation-item id="open-menu-navigation" class="flex lg:hidden">
73
+ <sd-icon name="system/menu" label="Open navigation" class="text-xl"></sd-icon>
74
+ </sd-navigation-item>
75
+ </div>
76
+
77
+ <div class="navigation-nav--horizontal hidden lg:flex relative justify-between">
78
+ <nav aria-label="Main">
79
+ <ul class="flex -ms-4">
80
+ <li>
81
+ <sd-dropdown no-flip>
82
+ <sd-navigation-item slot="trigger">
83
+ <span class="font-bold">Funds & Depot</span>
84
+ </sd-navigation-item>
85
+
86
+ <ul class="grid grid-cols-4 justify-between gap-6 px-6 py-8">
87
+ <li>
88
+ <sd-navigation-item vertical href="javascript:void(0)">
89
+ <span class="font-bold">Funds & Depot Overview</span>
90
+ <p slot="description">Everything you need to know about our funds and the UnionDepot</p>
91
+ </sd-navigation-item>
92
+ </li>
93
+
94
+ <li>
95
+ <sd-navigation-item vertical href="javascript:void(0)">
96
+ <span class="font-bold">Find Funds</span>
97
+ <p slot="description">Get to our funds quickly</p>
98
+ </sd-navigation-item>
99
+
100
+ <ul>
101
+ <li>
102
+ <sd-navigation-item vertical href="javascript:void(0)"> Top funds </sd-navigation-item>
103
+ </li>
104
+ <li>
105
+ <sd-navigation-item vertical href="javascript:void(0)"> Fund prices </sd-navigation-item>
106
+ </li>
107
+ </ul>
108
+ </li>
109
+
110
+ <li>
111
+ <sd-navigation-item vertical href="javascript:void(0)">
112
+ <span class="font-bold">Understanding Funds</span>
113
+ <p slot="description">Funds explained simply and understandably for you</p>
114
+ </sd-navigation-item>
115
+
116
+ <ul>
117
+ <li>
118
+ <sd-navigation-item vertical href="javascript:void(0)">
119
+ Sustainability-related disclosures
120
+ </sd-navigation-item>
121
+ </li>
122
+ <li>
123
+ <sd-navigation-item vertical href="javascript:void(0)"> Lexicon </sd-navigation-item>
124
+ </li>
125
+ </ul>
126
+ </li>
127
+
128
+ <li>
129
+ <sd-navigation-item vertical href="javascript:void(0)">
130
+ <span class="font-bold">UnionDepot</span>
131
+ <p slot="description">Manage your funds flexibly with UnionDepot</p>
132
+ </sd-navigation-item>
133
+
134
+ <ul>
135
+ <li>
136
+ <sd-navigation-item vertical href="javascript:void(0)">
137
+ UnionDepot in Online Banking
138
+ </sd-navigation-item>
139
+ </li>
140
+ </ul>
141
+ </li>
142
+ </ul>
143
+ </sd-dropdown>
144
+ </li>
145
+ <li>
146
+ <sd-dropdown no-flip>
147
+ <sd-navigation-item slot="trigger">
148
+ <span class="font-bold">About Us</span>
149
+ </sd-navigation-item>
150
+
151
+ <ul class="grid grid-cols-4 justify-between gap-6 px-6 py-8">
152
+ <li>
153
+ <sd-navigation-item vertical href="javascript:void(0)">
154
+ <span class="font-bold">Union Investment at a glance</span>
155
+ <p slot="description">Partnership is the basis of our actions.</p>
156
+ </sd-navigation-item>
157
+ </li>
158
+
159
+ <li>
160
+ <div class="px-4 py-3">
161
+ <p class="font-bold">Union Investment for private clients</p>
162
+ <p class="text-sm">Learn more about us and what we stand for</p>
163
+ </div>
164
+
165
+ <ul>
166
+ <li>
167
+ <sd-navigation-item vertical href="javascript:void(0)"> Investor protection </sd-navigation-item>
168
+ </li>
169
+ <li>
170
+ <sd-navigation-item vertical href="javascript:void(0)"> Award </sd-navigation-item>
171
+ </li>
172
+ <li>
173
+ <sd-navigation-item vertical href="javascript:void(0)"> Our management </sd-navigation-item>
174
+ </li>
175
+ </ul>
176
+ </li>
177
+
178
+ <li>
179
+ <sd-navigation-item vertical href="javascript:void(0)">
180
+ <span class="font-bold"> Sustainability at Union Investment </span>
181
+ <p slot="description">Learn about our values, principles, and commitment to sustainability.</p>
182
+ </sd-navigation-item>
183
+ </li>
184
+
185
+ <li>
186
+ <div class="px-4 py-3">
187
+ <p class="font-bold">Union Investment Group</p>
188
+ <p class="text-sm">Find out more about Union Investment as a group of companies</p>
189
+ </div>
190
+
191
+ <ul>
192
+ <li>
193
+ <sd-navigation-item vertical href="javascript:void(0)">
194
+ Cooperative Financial Group
195
+ </sd-navigation-item>
196
+ </li>
197
+ </ul>
198
+ </li>
199
+ </ul>
200
+
201
+ <sd-divider class="px-4 m-6"></sd-divider>
202
+ <p class="sd-headline sd-headline--size-base px-4 mx-6">
203
+ Not a private customer? Discover more solutions for your needs
204
+ </p>
205
+
206
+ <ul class="grid grid-cols-2 justify-between gap-x-6 px-6 py-8">
207
+ <li>
208
+ <sd-navigation-item vertical href="javascript:void(0)">
209
+ <span class="font-bold"> Institutional Clients </span>
210
+ <p slot="description">Solutions for professional investors.</p>
211
+ </sd-navigation-item>
212
+ </li>
213
+
214
+ <li>
215
+ <sd-navigation-item vertical href="javascript:void(0)">
216
+ <span class="font-bold"> Real Estate Customers </span>
217
+ <p slot="description">Investing - Renting - Investing</p>
218
+ </sd-navigation-item>
219
+ </li>
220
+
221
+ <li>
222
+ <sd-navigation-item vertical href="javascript:void(0)">
223
+ <span class="font-bold"> Journalists </span>
224
+ <p slot="description">Press releases and contacts can be found here</p>
225
+ </sd-navigation-item>
226
+ </li>
227
+
228
+ <li>
229
+ <sd-navigation-item vertical href="javascript:void(0)">
230
+ <span class="font-bold"> Career </span>
231
+ <p slot="description">
232
+ Where professionals are people - insights into our working world and job offers
233
+ </p>
234
+ </sd-navigation-item>
235
+ </li>
236
+ </ul>
237
+ </sd-dropdown>
238
+ </li>
239
+ <li>
240
+ <sd-navigation-item href="javascript:void(0)">
241
+ <span class="font-bold">Saving</span>
242
+ </sd-navigation-item>
243
+ </li>
244
+ <li>
245
+ <sd-dropdown no-flip>
246
+ <sd-navigation-item slot="trigger">
247
+ <span class="font-bold">Investing</span>
248
+ </sd-navigation-item>
249
+ <ul class="grid grid-cols-4 justify-between gap-6 px-6 py-8">
250
+ <li>
251
+ <sd-navigation-item vertical href="javascript:void(0)">
252
+ <span class="font-bold">Services at a glance</span>
253
+ <p slot="description">Investing money – with flexible solutions from Union Investment</p>
254
+ </sd-navigation-item>
255
+ </li>
256
+
257
+ <li>
258
+ <sd-navigation-item vertical href="javascript:void(0)">
259
+ <span class="font-bold"> Structuring your assets </span>
260
+ <p slot="description">Benefit from modern solutions for your assets</p>
261
+ </sd-navigation-item>
262
+
263
+ <ul>
264
+ <li>
265
+ <sd-navigation-item vertical href="javascript:void(0)"> Private Funds </sd-navigation-item>
266
+ </li>
267
+ <li>
268
+ <sd-navigation-item vertical href="javascript:void(0)"> UniDistribution Fund </sd-navigation-item>
269
+ </li>
270
+ </ul>
271
+ </li>
272
+
273
+ <li>
274
+ <div class="px-4 py-3">
275
+ <p class="font-bold">Investing money according to ESG</p>
276
+ <p class="text-sm">Shaping the future responsibly with your investments</p>
277
+ </div>
278
+
279
+ <ul>
280
+ <li>
281
+ <sd-navigation-item vertical href="javascript:void(0)">
282
+ Funds with a sustainability strategy
283
+ </sd-navigation-item>
284
+ </li>
285
+ </ul>
286
+ </li>
287
+
288
+ <li>
289
+ <div class="px-4 py-3">
290
+ <p class="font-bold">Calculators</p>
291
+ <p class="text-sm">Manage your funds flexibly with UnionDepot</p>
292
+ </div>
293
+ <ul>
294
+ <li>
295
+ <sd-navigation-item vertical href="javascript:void(0)"> Investment planner </sd-navigation-item>
296
+ </li>
297
+ <li>
298
+ <sd-navigation-item vertical href="javascript:void(0)"> Wealth planner </sd-navigation-item>
299
+ </li>
300
+ </ul>
301
+ </li>
302
+ </ul>
303
+ </sd-dropdown>
304
+ </li>
305
+ <li>
306
+ <sd-dropdown no-flip>
307
+ <sd-navigation-item slot="trigger">
308
+ <span class="font-bold">Our Services</span>
309
+ </sd-navigation-item>
310
+ <ul class="grid grid-cols-4 justify-between gap-x-6 px-6 py-8">
311
+ <li>
312
+ <sd-navigation-item vertical href="javascript:void(0)"
313
+ ><span class="font-bold"> Services at a glance </span></sd-navigation-item
314
+ >
315
+ </li>
316
+ <li>
317
+ <sd-navigation-item vertical href="javascript:void(0)"
318
+ ><span class="font-bold"> Current news </span></sd-navigation-item
319
+ >
320
+ </li>
321
+ <li>
322
+ <sd-navigation-item vertical href="javascript:void(0)"
323
+ ><span class="font-bold"> Subscription </span></sd-navigation-item
324
+ >
325
+ </li>
326
+ <li>
327
+ <sd-navigation-item vertical href="javascript:void(0)"
328
+ ><span class="font-bold"> Our calculators </span></sd-navigation-item
329
+ >
330
+ </li>
331
+ <li>
332
+ <sd-navigation-item vertical href="javascript:void(0)"
333
+ ><span class="font-bold"> Contact </span></sd-navigation-item
334
+ >
335
+ </li>
336
+ <li>
337
+ <sd-navigation-item vertical href="javascript:void(0)"
338
+ ><span class="font-bold"> Forms and Downloads </span></sd-navigation-item
339
+ >
340
+ </li>
341
+ <li>
342
+ <sd-navigation-item vertical href="javascript:void(0)"
343
+ ><span class="font-bold"> Media </span></sd-navigation-item
344
+ >
345
+ </li>
346
+ <li>
347
+ <sd-navigation-item vertical href="javascript:void(0)"
348
+ ><span class="font-bold"> Frequently asked questions </span></sd-navigation-item
349
+ >
350
+ </li>
351
+ </ul>
352
+ </sd-dropdown>
353
+ </li>
354
+ </ul>
355
+ </nav>
356
+ <nav aria-label="Service">
357
+ <ul class="flex">
358
+ <li>
359
+ <sd-navigation-item href="javascript:void(0)">
360
+ <sd-icon name="system/user" class="text-xl mr-2"></sd-icon>
361
+ <span>Login</span>
362
+ </sd-navigation-item>
363
+ </li>
364
+ <li>
365
+ <sd-navigation-item href="javascript:void(0)">
366
+ <sd-icon name="system/website" class="text-xl" label="Website"></sd-icon>
367
+ </sd-navigation-item>
368
+ </li>
369
+ <li>
370
+ <sd-navigation-item href="javascript:void(0)">
371
+ <sd-icon name="system/magnifying-glass" class="text-xl" label="Search"></sd-icon>
372
+ </sd-navigation-item>
373
+ </li>
374
+ </ul>
375
+ </nav>
376
+ </div>
377
+ </sd-header>
378
+
379
+ <sd-drawer
380
+ id="navigation-drawer-horizontal"
381
+ placement="end"
382
+ label="Navigation drawer menu"
383
+ class="group relative block"
384
+ >
385
+ <sd-button slot="header" variant="tertiary" class="navigation-nav-horizontal--close">
386
+ <sd-icon name="system/arrow-left" label="Close submenu"></sd-icon>
387
+ </sd-button>
388
+ <div
389
+ class="navigation-nav flex flex-col -mx-4 h-full pt-1 transition-transform duration-medium data-[submenu-open]:-translate-x-full"
390
+ >
391
+ <nav aria-label="Main" class="flex-1 flex flex-col justify-between">
392
+ <ul class="flex-1">
393
+ <li>
394
+ <sd-navigation-item vertical href="javascript:void(0)" current> Home page </sd-navigation-item>
395
+ </li>
396
+ <li>
397
+ <sd-navigation-item vertical chevron divider> Funds & Depot </sd-navigation-item>
398
+ <div data-submenu class="absolute top-0 right-0 w-full translate-x-full">
399
+ <div>
400
+ <p class="sd-headline sd-headline--size-lg mx-4 py-3 !text-primary">Funds & Depot</p>
401
+ <ul>
402
+ <li>
403
+ <sd-navigation-item vertical divider href="javascript:void(0)">
404
+ <span> Funds & Depot Overview </span>
405
+ <p slot="description">Everything you need to know about our funds and the UnionDepot</p>
406
+ </sd-navigation-item>
407
+ </li>
408
+ <li>
409
+ <sd-navigation-item vertical separated href="javascript:void(0)">
410
+ <span>Find Funds</span>
411
+ <p slot="description">Get to our funds quickly</p>
412
+ <ul slot="children">
413
+ <li>
414
+ <sd-navigation-item vertical indented href="javascript:void(0)"> Top funds </sd-navigation-item>
415
+ </li>
416
+ <li>
417
+ <sd-navigation-item vertical indented href="javascript:void(0)">
418
+ Fund prices
419
+ </sd-navigation-item>
420
+ </li>
421
+ </ul>
422
+ </sd-navigation-item>
423
+ </li>
424
+ <li>
425
+ <sd-navigation-item vertical separated href="javascript:void(0)">
426
+ <span>Understanding Funds</span>
427
+ <p slot="description">Funds explained simply and understandably for you</p>
428
+
429
+ <ul slot="children">
430
+ <li>
431
+ <sd-navigation-item vertical indented href="javascript:void(0)">
432
+ Sustainability-related disclosures
433
+ </sd-navigation-item>
434
+ </li>
435
+ <li>
436
+ <sd-navigation-item vertical indented href="javascript:void(0)"> Lexicon </sd-navigation-item>
437
+ </li>
438
+ </ul>
439
+ </sd-navigation-item>
440
+ </li>
441
+ <li>
442
+ <sd-navigation-item vertical separated href="javascript:void(0)">
443
+ <span> UnionDepot </span>
444
+ <p slot="description">Manage your funds flexibly with UnionDepot</p>
445
+
446
+ <ul slot="children">
447
+ <li>
448
+ <sd-navigation-item vertical indented href="javascript:void(0)">
449
+ UnionDepot in Online Banking
450
+ </sd-navigation-item>
451
+ </li>
452
+ </ul>
453
+ </sd-navigation-item>
454
+ </li>
455
+ </ul>
456
+ </div>
457
+ </div>
458
+ </li>
459
+ <li>
460
+ <sd-navigation-item vertical chevron divider> About Us </sd-navigation-item>
461
+ <div data-submenu class="absolute top-0 right-0 w-full translate-x-full">
462
+ <div>
463
+ <p class="sd-headline sd-headline--size-lg mx-4 py-3 !text-primary">About us</p>
464
+
465
+ <ul>
466
+ <li>
467
+ <sd-navigation-item vertical divider href="javascript:void(0)">
468
+ Union Investment at a glance
469
+ <p slot="description">Partnership is the basis of our actions.</p>
470
+ </sd-navigation-item>
471
+ </li>
472
+ <li>
473
+ <sd-navigation-item vertical>
474
+ <span> Union Investment for private clients </span>
475
+ <p slot="description">Learn more about us and what we stand for</p>
476
+ <sd-navigation-item slot="children" vertical indented href="javascript:void(0)">
477
+ Investor protection
478
+ </sd-navigation-item>
479
+ <sd-navigation-item slot="children" vertical indented href="javascript:void(0)">
480
+ Award
481
+ </sd-navigation-item>
482
+ <sd-navigation-item slot="children" vertical indented href="javascript:void(0)">
483
+ Our management
484
+ </sd-navigation-item>
485
+ </sd-navigation-item>
486
+ </li>
487
+ <li>
488
+ <sd-navigation-item vertical href="javascript:void(0)">
489
+ Sustainability at Union Investment
490
+ <p slot="description">Learn about our values, principles, and commitment to sustainability.</p>
491
+ </sd-navigation-item>
492
+ </li>
493
+ <li>
494
+ <sd-navigation-item vertical>
495
+ <span> Union Investment Group </span>
496
+ <p slot="description">Find out more about Union Investment as a group of companies</p>
497
+ <sd-navigation-item slot="children" vertical indented href="javascript:void(0)">
498
+ Cooperative Financial Group
499
+ </sd-navigation-item>
500
+ </sd-navigation-item>
501
+ </li>
502
+ </ul>
503
+
504
+ <sd-divider class="my-6 mx-4"></sd-divider>
505
+ <p class="sd-headline sd-headline--size-base mx-4 mb-6">
506
+ Not a private customer? Discover more solutions for your needs
507
+ </p>
508
+
509
+ <ul>
510
+ <li>
511
+ <sd-navigation-item vertical href="javascript:void(0)">
512
+ Institutional Clients
513
+ <p slot="description">Solutions for professional investors.</p>
514
+ </sd-navigation-item>
515
+ </li>
516
+ <li>
517
+ <sd-navigation-item vertical href="javascript:void(0)">
518
+ Real Estate Customers
519
+ <p slot="description">Investing - Renting - Investing</p>
520
+ </sd-navigation-item>
521
+ </li>
522
+ <li>
523
+ <sd-navigation-item vertical href="javascript:void(0)">
524
+ Journalists
525
+ <p slot="description">Press releases and contacts can be found here</p>
526
+ </sd-navigation-item>
527
+ </li>
528
+ <li>
529
+ <sd-navigation-item vertical href="javascript:void(0)">
530
+ Career
531
+ <p slot="description">
532
+ Where professionals are people - insights into our working world and job offers
533
+ </p>
534
+ </sd-navigation-item>
535
+ </li>
536
+ </ul>
537
+ </div>
538
+ </div>
539
+ </li>
540
+ <li>
541
+ <sd-navigation-item vertical divider href="javascript:void(0)"> Saving </sd-navigation-item>
542
+ </li>
543
+ <li>
544
+ <sd-navigation-item vertical chevron divider> Investing </sd-navigation-item>
545
+ <div data-submenu class="absolute top-0 right-0 w-full translate-x-full">
546
+ <div>
547
+ <p class="sd-headline sd-headline--size-lg mx-4 py-3 !text-primary">Investing</p>
548
+
549
+ <ul>
550
+ <li>
551
+ <sd-navigation-item vertical divider href="javascript:void(0)">
552
+ <span> Services at a glance </span>
553
+ <p slot="description">Quickly access our funds</p>
554
+ </sd-navigation-item>
555
+ </li>
556
+ <li>
557
+ <sd-navigation-item vertical href="javascript:void(0)">
558
+ <span> Structuring your assets </span>
559
+ <p slot="description">Benefit from modern solutions for your assets</p>
560
+ </sd-navigation-item>
561
+ <ul>
562
+ <li>
563
+ <sd-navigation-item vertical indented href="javascript:void(0)">
564
+ Private Funds
565
+ </sd-navigation-item>
566
+ </li>
567
+ <li>
568
+ <sd-navigation-item vertical indented href="javascript:void(0)">
569
+ UniDistribution Fund
570
+ </sd-navigation-item>
571
+ </li>
572
+ </ul>
573
+ </li>
574
+ <li>
575
+ <sd-navigation-item vertical>
576
+ <span> Investing money according to ESG </span>
577
+ <p slot="description">Shaping the future responsibly with your investments</p>
578
+ <sd-navigation-item slot="children" vertical indented href="javascript:void(0)">
579
+ Funds with a sustainability strategy
580
+ </sd-navigation-item>
581
+ </sd-navigation-item>
582
+ </li>
583
+ <li>
584
+ <sd-navigation-item vertical>
585
+ <span> Calculators </span>
586
+ <p slot="description">Manage your funds flexibly with UnionDepot</p>
587
+ <sd-navigation-item slot="children" vertical indented href="javascript:void(0)">
588
+ Investment planner
589
+ </sd-navigation-item>
590
+ <sd-navigation-item slot="children" vertical indented href="javascript:void(0)">
591
+ Wealth planner
592
+ </sd-navigation-item>
593
+ </sd-navigation-item>
594
+ </li>
595
+ </ul>
596
+ </div>
597
+ </div>
598
+ </li>
599
+ <li>
600
+ <sd-navigation-item vertical chevron divider> Our Services </sd-navigation-item>
601
+ <div data-submenu class="absolute top-0 right-0 w-full translate-x-full">
602
+ <div>
603
+ <p class="sd-headline sd-headline--size-lg mx-4 py-3 !text-primary">Our Services</p>
604
+
605
+ <ul>
606
+ <li>
607
+ <sd-navigation-item vertical divider href="javascript:void(0)">
608
+ Services at a glance
609
+ </sd-navigation-item>
610
+ </li>
611
+ <li>
612
+ <sd-navigation-item vertical href="javascript:void(0)"> Current news </sd-navigation-item>
613
+ </li>
614
+ <li>
615
+ <sd-navigation-item vertical href="javascript:void(0)"> Subscription </sd-navigation-item>
616
+ </li>
617
+ <li>
618
+ <sd-navigation-item vertical href="javascript:void(0)"> Our calculators </sd-navigation-item>
619
+ </li>
620
+ <li>
621
+ <sd-navigation-item vertical href="javascript:void(0)"> Contact </sd-navigation-item>
622
+ </li>
623
+ <li>
624
+ <sd-navigation-item vertical href="javascript:void(0)"> Forms and Downloads </sd-navigation-item>
625
+ </li>
626
+ <li>
627
+ <sd-navigation-item vertical href="javascript:void(0)"> Media </sd-navigation-item>
628
+ </li>
629
+ <li>
630
+ <sd-navigation-item vertical href="javascript:void(0)">
631
+ Frequently Asked Questions
632
+ </sd-navigation-item>
633
+ </li>
634
+ </ul>
635
+ </div>
636
+ </div>
637
+ </li>
638
+ </ul>
639
+ </nav>
640
+ <nav aria-label="Service" slot="footer" class="bg-neutral-100">
641
+ <ul>
642
+ <li>
643
+ <sd-navigation-item vertical href="javascript:void(0)" class="flex align-center">
644
+ <sd-icon name="system/user" class="text-xl mr-2"></sd-icon>
645
+ Portfolio
646
+ </sd-navigation-item>
647
+ </li>
648
+ <li>
649
+ <sd-navigation-item vertical divider href="javascript:void(0)" class="flex align-center">
650
+ <sd-icon name="system/lock-locked" class="text-xl mr-2"></sd-icon>
651
+ Application
652
+ </sd-navigation-item>
653
+ </li>
654
+ <li>
655
+ <sd-navigation-item vertical divider href="javascript:void(0)" class="flex align-center">
656
+ <sd-icon name="system/website" class="text-xl mr-2"></sd-icon>
657
+ Our further appearances
658
+ </sd-navigation-item>
659
+ </li>
660
+ </ul>
661
+ </nav>
662
+ </div>
663
+ </sd-drawer>
664
+
665
+ <main></main>
666
+
667
+ <style>
668
+ sd-header#horizontal {
669
+ --sd-header-padding: 8px 16px;
670
+ }
671
+
672
+ @media (min-width: 376px) {
673
+ sd-header#horizontal {
674
+ --sd-header-padding: 24px;
675
+ }
676
+ }
677
+
678
+ @media (min-width: 1025px) {
679
+ sd-header#horizontal {
680
+ --sd-header-padding: 24px 32px 0 32px;
681
+ }
682
+ }
683
+
684
+ @media (min-width: 1440px) {
685
+ sd-header#horizontal {
686
+ --sd-header-padding: 24px 48px 0 48px;
687
+ }
688
+ }
689
+
690
+ [data-submenu][inert] {
691
+ display: none;
692
+ }
693
+
694
+ sd-navigation-item:has([slot='children']):has(sd-navigation-item[current])::part(content),
695
+ sd-navigation-item:has(+ [data-submenu] sd-navigation-item[current])::part(content) {
696
+ font-weight: bold;
697
+ }
698
+
699
+ sd-dropdown:has(sd-navigation-item[slot='trigger'])::part(base__popup) {
700
+ left: -16px;
701
+ width: calc(100% + 16px);
702
+ }
703
+
704
+ sd-dropdown[open] sd-navigation-item[slot='trigger'] {
705
+ background: rgb(246 246 246);
706
+ }
707
+
708
+ sd-drawer::part(panel) {
709
+ overflow: hidden;
710
+ }
711
+
712
+ sd-navigation-item + div[data-submenu]:not([data-active-submenu]) {
713
+ pointer-events: none;
714
+ opacity: 0;
715
+ }
716
+ </style>
717
+
718
+ <!-- Mobile drawer logic -->
719
+ <script type="module">
720
+ const drawer = document.getElementById('navigation-drawer-horizontal');
721
+ const drawerTrigger = document.getElementById('open-menu-navigation');
722
+ const innerTrigger = drawerTrigger.shadowRoot.querySelector('button');
723
+
724
+ innerTrigger.setAttribute('aria-controls', 'navigation-drawer-horizontal');
725
+ innerTrigger.setAttribute('aria-expanded', 'false');
726
+ drawerTrigger.addEventListener('click', () => drawer.show());
727
+ drawer.addEventListener('sd-hide', () => innerTrigger.setAttribute('aria-expanded', 'false'));
728
+ drawer.addEventListener('sd-show', () => innerTrigger.setAttribute('aria-expanded', 'true'));
729
+ </script>
730
+
731
+ <!--
732
+ The navigation-menu.js script can be found here:
733
+ https://github.com/solid-design-system/solid/blob/main/packages/docs/.storybook/assets/scripts/navigation-menu.js
734
+ -->
735
+ <script src="./scripts/navigation-menu.js"></script>
736
+ <script type="module">
737
+ const getNavigationItemTitle = item =>
738
+ item.shadowRoot
739
+ .querySelector('[part="content"]')
740
+ .assignedNodes({ flatten: true })
741
+ .reduce((acc, node) => {
742
+ if (node.nodeType === Node.ELEMENT_NODE) {
743
+ return acc + node.innerText;
744
+ } else if (node.nodeType === Node.TEXT_NODE) {
745
+ return acc + node.textContent;
746
+ }
747
+ return acc;
748
+ }, '');
749
+
750
+ document.querySelectorAll('.navigation-nav--horizontal').forEach(container => {
751
+ const megamenu = new NavigationMenu(container, NavigationMenuHorizontalItem, {
752
+ currentOnTrigger: true
753
+ });
754
+ megamenu.focusController = new HorizontalFocusController(megamenu);
755
+ });
756
+
757
+ document.querySelectorAll('.navigation-nav').forEach(container => {
758
+ const megamenu = new NavigationMenu(container, NavigationMenuVerticalItem, {
759
+ backButton: document
760
+ .getElementById('navigation-drawer-horizontal')
761
+ .querySelector('.navigation-nav-horizontal--close')
762
+ });
763
+ megamenu.focusController = new VerticalFocusController(megamenu);
764
+
765
+ const drawer = container.closest('sd-drawer');
766
+ if (drawer) {
767
+ drawer.addEventListener('sd-hide', e => {
768
+ if (e.target !== drawer) return;
769
+ megamenu.reset();
770
+ });
771
+ }
772
+ });
773
+ </script>
774
+ ```
775
+
776
+ ## Template: Header Sample A-01
777
+
778
+ ```html
779
+ <sd-header id="sample-a-header" fixed>
780
+ <div class="flex justify-between items-center">
781
+ <!-- top-left-area start !-->
782
+ <a class="flex flex-shrink" href="#">
783
+ <img class="h-8 md:h-12 lg:h-14 w-auto object-contain" src="${currentTheme.logoLg}" alt="${currentTheme.alt}" />
784
+ </a>
785
+ <!-- top-left-area end !-->
786
+ <!-- top-right-area start !-->
787
+ <div class="flex lg:hidden">
788
+ <sd-navigation-item id="open-menu-sample-a">
789
+ <sd-icon name="system/menu" label="Open navigation" class="text-xl"></sd-icon>
790
+ </sd-navigation-item>
791
+ </div>
792
+ <!-- top-right-area end !-->
793
+ </div>
794
+ <div class="hidden lg:flex items-end pt-3 justify-between">
795
+ <!-- bottom-left-area start !-->
796
+ <div class="-ml-4">
797
+ <sd-navigation-item href="javascript:void(0)">
798
+ <span class="font-bold">About Us</span>
799
+ </sd-navigation-item>
800
+ <sd-navigation-item href="javascript:void(0)">
801
+ <span class="font-bold">Markets</span>
802
+ </sd-navigation-item>
803
+ <sd-navigation-item href="javascript:void(0)">
804
+ <span class="font-bold">Press Service</span>
805
+ </sd-navigation-item>
806
+ <sd-navigation-item href="javascript:void(0)">
807
+ <span class="font-bold">Sustainability</span>
808
+ </sd-navigation-item>
809
+ </div>
810
+ <!-- bottom-left-area end !-->
811
+ <!-- bottom-right-area start !-->
812
+ <div class="-mr-4 flex items-center">
813
+ <sd-navigation-item href="javascript:void(0)" size="sm">
814
+ <sd-icon name="system/website" label="News" class="text-xl"></sd-icon>
815
+ </sd-navigation-item>
816
+ <sd-navigation-item onclick="alert('This could open a search bar')" size="sm">
817
+ <sd-icon name="system/magnifying-glass" label="Search" class="text-xl"></sd-icon>
818
+ </sd-navigation-item>
819
+ <sd-navigation-item href="javascript:void(0)">
820
+ <sd-icon name="system/user" class="text-xl mr-2"></sd-icon><span>My account</span>
821
+ </sd-navigation-item>
822
+ <sd-navigation-item href="javascript:void(0)">
823
+ <sd-icon name="system/lock-locked" class="text-xl mr-2"></sd-icon><span>My application</span>
824
+ </sd-navigation-item>
825
+ <!-- bottom-right-area end !-->
826
+ </div>
827
+ </div>
828
+ </sd-header>
829
+ <sd-drawer id="sample-a-drawer" placement="end" class="relative block">
830
+ <nav aria-label="Main" class="-mx-4">
831
+ <sd-navigation-item vertical current href="javascript:void(0)"> Home </sd-navigation-item>
832
+ <sd-navigation-item vertical chevron divider href="javascript:void(0)">About Us</sd-navigation-item>
833
+ <sd-navigation-item vertical chevron divider href="javascript:void(0)">Markets</sd-navigation-item>
834
+ <sd-navigation-item vertical chevron divider href="javascript:void(0)">Press Service</sd-navigation-item>
835
+ <sd-navigation-item vertical chevron divider href="javascript:void(0)">Sustainability</sd-navigation-item>
836
+ </nav>
837
+ <nav aria-label="Service" slot="footer" class="bg-neutral-100 -m-4">
838
+ <sd-navigation-item vertical class="flex align-center" href="javascript:void(0)">
839
+ <sd-icon name="system/user" class="text-xl mr-2"></sd-icon>
840
+ My account
841
+ </sd-navigation-item>
842
+ <sd-navigation-item vertical divider class="flex align-center" href="javascript:void(0)">
843
+ <sd-icon name="system/lock-locked" class="text-xl mr-2"></sd-icon>
844
+ My application
845
+ </sd-navigation-item>
846
+ <sd-navigation-item vertical divider class="flex align-center" href="javascript:void(0)">
847
+ <sd-icon name="system/website" class="text-xl mr-2"></sd-icon>
848
+ Our further appearances
849
+ </sd-navigation-item>
850
+ </nav>
851
+ </sd-drawer>
852
+
853
+ <style>
854
+ sd-header#sample-a-header {
855
+ --sd-header-padding: 8px 16px;
856
+ }
857
+
858
+ @media (min-width: 376px) {
859
+ sd-header#sample-a-header {
860
+ --sd-header-padding: 24px;
861
+ }
862
+ }
863
+
864
+ @media (min-width: 1025px) {
865
+ sd-header#sample-a-header {
866
+ --sd-header-padding: 24px 32px 0 32px;
867
+ }
868
+ }
869
+
870
+ @media (min-width: 1440px) {
871
+ sd-header#sample-a-header {
872
+ --sd-header-padding: 24px 48px 0 48px;
873
+ }
874
+ }
875
+ </style>
876
+
877
+ <script type="module">
878
+ await Promise.all([customElements.whenDefined('sd-navigation-item')]).then(() => {
879
+ const header = document.getElementById('sample-a-header');
880
+ const drawer = document.getElementById('sample-a-drawer');
881
+ const navigationItems = [
882
+ ...header.querySelectorAll('sd-navigation-item'),
883
+ ...drawer.querySelectorAll('sd-navigation-item')
884
+ ];
885
+
886
+ const handleNavigationItemClick = e => {
887
+ navigationItems.forEach(item => item.removeAttribute('current'));
888
+
889
+ const target = e.target.closest('sd-navigation-item');
890
+ target.setAttribute('current', '');
891
+ };
892
+
893
+ navigationItems.forEach(item => {
894
+ if (!item.hasAttribute('href')) return;
895
+
896
+ item.addEventListener('click', handleNavigationItemClick);
897
+ });
898
+ });
899
+ </script>
900
+ <script type="module">
901
+ await Promise.all([customElements.whenDefined('sd-navigation-item'), customElements.whenDefined('sd-drawer')]).then(
902
+ () => {
903
+ const drawerSampleA = document.getElementById('sample-a-drawer');
904
+ const navigationItemSampleA = document.getElementById('open-menu-sample-a');
905
+ const buttonInNavigationItemSampleA = navigationItemSampleA.shadowRoot.querySelector('button');
906
+
907
+ buttonInNavigationItemSampleA.setAttribute('aria-controls', 'sample-a-drawer');
908
+ //Add the necessary ARIA attributes to prevent only being added after action
909
+ buttonInNavigationItemSampleA.setAttribute('aria-expanded', 'false');
910
+ drawerSampleA.addEventListener('sd-hide', () =>
911
+ buttonInNavigationItemSampleA.setAttribute('aria-expanded', 'false')
912
+ );
913
+
914
+ navigationItemSampleA.addEventListener('click', () => {
915
+ drawerSampleA.show();
916
+ buttonInNavigationItemSampleA.setAttribute('aria-expanded', 'true');
917
+ });
918
+ }
919
+ );
920
+ </script>
921
+ ```
922
+
923
+ ## Template: Header Sample A-02
924
+
925
+ ```html
926
+ <sd-header id="sample-a02-header" fixed>
927
+ <div class="flex justify-between items-center">
928
+ <!-- top-left-area start !-->
929
+ <a class="flex flex-shrink" href="#">
930
+ <img class="h-8 md:h-12 lg:h-14 w-auto object-contain" src="${currentTheme.logoLg}" alt="${currentTheme.alt}" />
931
+ </a>
932
+ <!-- top-left-area end !-->
933
+ <!-- top-right-area start !-->
934
+ <div class="flex lg:hidden">
935
+ <sd-navigation-item id="open-menu-sample-a-02">
936
+ <sd-icon name="system/menu" label="Open navigation" class="text-xl "></sd-icon>
937
+ </sd-navigation-item>
938
+ </div>
939
+ <div class="-mr-4 lg:flex hidden items-center">
940
+ <sd-navigation-item href="javascript:void(0)">
941
+ <sd-icon name="system/filter-empty" label="Search filter" class="text-xl"></sd-icon>
942
+ </sd-navigation-item>
943
+ <sd-navigation-item href="javascript:void(0)">
944
+ <sd-icon name="system/globe" label="Language" class="text-xl"></sd-icon>
945
+ </sd-navigation-item>
946
+ <sd-navigation-item href="javascript:void(0)">
947
+ <sd-icon name="system/website" label="News" class="text-xl"></sd-icon>
948
+ </sd-navigation-item>
949
+ <sd-navigation-item onclick="alert('This could open a search bar')">
950
+ <sd-icon name="system/magnifying-glass" label="Search" class="text-xl"></sd-icon>
951
+ </sd-navigation-item>
952
+ <sd-navigation-item href="javascript:void(0)">
953
+ <sd-icon name="system/user" class="text-xl mr-2"></sd-icon><span>Sign in</span>
954
+ </sd-navigation-item>
955
+ </div>
956
+ <!-- top-right-area end !-->
957
+ </div>
958
+ <div class="hidden lg:flex items-end pt-3 justify-between">
959
+ <!-- bottom-left-area start !-->
960
+ <div class="-ml-4">
961
+ <sd-navigation-item href="javascript:void(0)">
962
+ <span class="font-bold">Competencies</span>
963
+ </sd-navigation-item>
964
+ <sd-navigation-item href="javascript:void(0)">
965
+ <span class="font-bold">Capital Market</span>
966
+ </sd-navigation-item>
967
+ <sd-navigation-item href="javascript:void(0)">
968
+ <span class="font-bold">Our products</span>
969
+ </sd-navigation-item>
970
+ <sd-navigation-item href="javascript:void(0)">
971
+ <span class="font-bold">Reporting</span>
972
+ </sd-navigation-item>
973
+ <sd-navigation-item href="javascript:void(0)">
974
+ <span class="font-bold">About us</span>
975
+ </sd-navigation-item>
976
+ <sd-navigation-item href="javascript:void(0)">
977
+ <span class="font-bold">Personal area</span>
978
+ </sd-navigation-item>
979
+ </div>
980
+ <!-- bottom-left-area end !-->
981
+ <!-- bottom-right-area start !-->
982
+ <div>
983
+ <!-- bottom-right-area end !-->
984
+ </div>
985
+ </div>
986
+ </sd-header>
987
+ <sd-drawer id="sample-a02-drawer" placement="end" class="relative block">
988
+ <nav aria-label="Main" class="-mx-4">
989
+ <sd-navigation-item vertical current href="javascript:void(0)"> Home </sd-navigation-item>
990
+ <sd-navigation-item vertical chevron divider href="javascript:void(0)">Competencies</sd-navigation-item>
991
+ <sd-navigation-item vertical chevron divider href="javascript:void(0)">Capital Markets</sd-navigation-item>
992
+ <sd-navigation-item vertical chevron divider href="javascript:void(0)">Our products</sd-navigation-item>
993
+ <sd-navigation-item vertical chevron divider href="javascript:void(0)">Reporting</sd-navigation-item>
994
+ <sd-navigation-item vertical chevron divider href="javascript:void(0)">About us</sd-navigation-item>
995
+ <sd-navigation-item vertical chevron divider href="javascript:void(0)">Personal area</sd-navigation-item>
996
+ </nav>
997
+ <nav aria-label="Footer" slot="footer" class="bg-neutral-100 -m-4">
998
+ <sd-navigation-item vertical class="flex align-center" href="javascript:void(0)">
999
+ <sd-icon name="system/user" class="text-xl mx-1"></sd-icon>
1000
+ Sign in
1001
+ </sd-navigation-item>
1002
+ <sd-navigation-item vertical divider class="flex align-center" href="javascript:void(0)">
1003
+ <sd-icon name="system/globe" class="text-xl mx-1"></sd-icon>
1004
+ Language
1005
+ </sd-navigation-item>
1006
+ <sd-navigation-item vertical divider class="flex align-center" href="javascript:void(0)">
1007
+ <sd-icon name="system/website" class="text-xl mx-1"></sd-icon>
1008
+ Our further appearances
1009
+ </sd-navigation-item>
1010
+ </nav>
1011
+ </sd-drawer>
1012
+
1013
+ <style>
1014
+ sd-header#sample-a02-header {
1015
+ --sd-header-padding: 8px 16px;
1016
+ }
1017
+
1018
+ @media (min-width: 376px) {
1019
+ sd-header#sample-a02-header {
1020
+ --sd-header-padding: 24px;
1021
+ }
1022
+ }
1023
+
1024
+ @media (min-width: 1025px) {
1025
+ sd-header#sample-a02-header {
1026
+ --sd-header-padding: 24px 32px 0 32px;
1027
+ }
1028
+ }
1029
+
1030
+ @media (min-width: 1440px) {
1031
+ sd-header#sample-a02-header {
1032
+ --sd-header-padding: 24px 48px 0 48px;
1033
+ }
1034
+ }
1035
+ </style>
1036
+
1037
+ <script type="module">
1038
+ await Promise.all([customElements.whenDefined('sd-navigation-item')]).then(() => {
1039
+ const header = document.getElementById('sample-a02-header');
1040
+ const drawer = document.getElementById('sample-a02-drawer');
1041
+ const navigationItems = [
1042
+ ...header.querySelectorAll('sd-navigation-item'),
1043
+ ...drawer.querySelectorAll('sd-navigation-item')
1044
+ ];
1045
+
1046
+ const handleNavigationItemClick = e => {
1047
+ navigationItems.forEach(item => item.removeAttribute('current'));
1048
+
1049
+ const target = e.target.closest('sd-navigation-item');
1050
+ target.setAttribute('current', '');
1051
+ };
1052
+
1053
+ navigationItems.forEach(item => {
1054
+ if (!item.hasAttribute('href')) return;
1055
+
1056
+ item.addEventListener('click', handleNavigationItemClick);
1057
+ });
1058
+ });
1059
+ </script>
1060
+ <script type="module">
1061
+ await Promise.all([customElements.whenDefined('sd-navigation-item'), customElements.whenDefined('sd-drawer')]).then(
1062
+ () => {
1063
+ const drawerSampleA02 = document.getElementById('sample-a02-drawer');
1064
+ const navigationItemSampleA02 = document.getElementById('open-menu-sample-a-02');
1065
+ const buttonInNavigationItemSampleA02 = navigationItemSampleA02.shadowRoot.querySelector('button');
1066
+
1067
+ buttonInNavigationItemSampleA02.setAttribute('aria-controls', 'sample-a02-drawer');
1068
+ //Add the necessary ARIA attributes to prevent only being added after action
1069
+ buttonInNavigationItemSampleA02.setAttribute('aria-expanded', 'false');
1070
+ drawerSampleA02.addEventListener('sd-hide', () =>
1071
+ buttonInNavigationItemSampleA02.setAttribute('aria-expanded', 'false')
1072
+ );
1073
+
1074
+ navigationItemSampleA02.addEventListener('click', () => {
1075
+ drawerSampleA02.show();
1076
+ buttonInNavigationItemSampleA02.setAttribute('aria-expanded', 'true');
1077
+ });
1078
+ }
1079
+ );
1080
+ </script>
1081
+ ```
1082
+
1083
+ ## Template: Header Variant A-02 (with overrides) with Header Navigation Template
1084
+
1085
+ ```html
1086
+ <!-- Storybook specific styles - DO NOT COPY -->
1087
+ <style>
1088
+ .sb-main-padded {
1089
+ padding: 0 !important;
1090
+ }
1091
+
1092
+ sd-header {
1093
+ --sd-header-calculated-height: 96px;
1094
+ }
1095
+ </style>
1096
+ <div class="min-h-screen grid grid-cols-[auto_1fr] grid-rows-[auto_1fr]">
1097
+ <sd-header id="vertical" fixed class="col-span-2">
1098
+ <div class="flex justify-between items-center">
1099
+ <a class="inline-flex sd-interactive" href="#">
1100
+ <img class="h-8 md:h-12 w-auto object-contain" src="${currentTheme.logoLg}" alt="${currentTheme.alt}" />
1101
+ </a>
1102
+
1103
+ <sd-navigation-item id="open-menu-navigation-vertical" class="lg:hidden">
1104
+ <sd-icon name="system/menu" label="Open navigation" class="text-xl"></sd-icon>
1105
+ </sd-navigation-item>
1106
+
1107
+ <nav aria-label="Service" class="navigation-nav hidden lg:inline">
1108
+ <ul class="flex">
1109
+ <li>
1110
+ <sd-navigation-item>
1111
+ <sd-icon name="system/phone" label="Client Service" class="text-xl"></sd-icon>
1112
+ </sd-navigation-item>
1113
+ </li>
1114
+ <li>
1115
+ <sd-navigation-item>
1116
+ <sd-icon name="system/shopping-cart" label="Cart" class="text-xl"></sd-icon>
1117
+ </sd-navigation-item>
1118
+ </li>
1119
+ <li>
1120
+ <sd-navigation-item>
1121
+ <sd-icon name="system/user" label="Account" class="text-xl"></sd-icon>
1122
+ </sd-navigation-item>
1123
+ </li>
1124
+ </ul>
1125
+ </nav>
1126
+ </div>
1127
+ </sd-header>
1128
+
1129
+ <div class="w-[272px] border-r border-r-neutral-400 hidden flex-col overflow-x-hidden lg:flex">
1130
+ <nav
1131
+ aria-label="Main"
1132
+ class="navigation-nav group relative flex-1 py-4 transition-transform duration-medium data-[submenu-open]:-translate-x-full"
1133
+ >
1134
+ <ul>
1135
+ <li>
1136
+ <sd-navigation-item href="javascript:void(0)" indented vertical current>Home</sd-navigation-item>
1137
+ </li>
1138
+ <li>
1139
+ <sd-navigation-item href="javascript:void(0)" indented vertical>Investment news</sd-navigation-item>
1140
+ </li>
1141
+ <li>
1142
+ <sd-navigation-item indented vertical chevron>Investment funds</sd-navigation-item>
1143
+ <div data-submenu class="absolute top-0 right-0 w-full translate-x-full">
1144
+ <sd-button variant="tertiary" class="mx-4 my-2">
1145
+ <sd-icon slot="icon-left" name="system/arrow-left" label="Close Investment funds submenu"></sd-icon>
1146
+ <span>Back</span>
1147
+ </sd-button>
1148
+
1149
+ <sd-divider class="mx-4 mb-2"></sd-divider>
1150
+
1151
+ <div>
1152
+ <p class="sd-headline sd-headline--size-lg mx-4 px-4 py-3 !text-primary">Investment funds</p>
1153
+ <ul>
1154
+ <li>
1155
+ <sd-navigation-item relaxed vertical>
1156
+ <span>Fund information</span>
1157
+ <sd-navigation-item slot="children" vertical indented relaxed href="javascript:void(0)">
1158
+ Fund type
1159
+ </sd-navigation-item>
1160
+ <sd-navigation-item slot="children" vertical indented relaxed href="javascript:void(0)">
1161
+ Performance history
1162
+ </sd-navigation-item>
1163
+ <sd-navigation-item slot="children" vertical indented relaxed href="javascript:void(0)">
1164
+ My fund data
1165
+ </sd-navigation-item>
1166
+ <sd-navigation-item slot="children" vertical indented relaxed href="javascript:void(0)">
1167
+ Find funds
1168
+ </sd-navigation-item>
1169
+ </sd-navigation-item>
1170
+ </li>
1171
+ </ul>
1172
+ </div>
1173
+ </div>
1174
+ </li>
1175
+ <li>
1176
+ <sd-navigation-item href="javascript:void(0)" indented vertical>Management</sd-navigation-item>
1177
+ </li>
1178
+ <li>
1179
+ <sd-navigation-item href="javascript:void(0)" indented vertical>Market analysis</sd-navigation-item>
1180
+ </li>
1181
+ <li>
1182
+ <sd-navigation-item href="javascript:void(0)" indented vertical>Qualification</sd-navigation-item>
1183
+ </li>
1184
+ <li>
1185
+ <sd-navigation-item href="javascript:void(0)" indented vertical>Consulting support</sd-navigation-item>
1186
+ </li>
1187
+ </ul>
1188
+ </nav>
1189
+
1190
+ <sd-divider class="mx-8" aria-hidden="true"></sd-divider>
1191
+
1192
+ <nav aria-label="Actions" class="px-8 py-6">
1193
+ <sd-button href="javascript:void(0)" class="w-full mb-4">Document upload</sd-button>
1194
+ <sd-button variant="secondary" href="javascript:void(0)" class="w-full">Bank order</sd-button>
1195
+ </nav>
1196
+ </div>
1197
+
1198
+ <main class="px-4"></main>
1199
+
1200
+ <sd-drawer
1201
+ id="navigation-drawer-vertical"
1202
+ placement="end"
1203
+ label="Navigation drawer menu"
1204
+ class="group relative block"
1205
+ >
1206
+ <sd-button slot="header" variant="tertiary" class="navigation-nav-vertical--close">
1207
+ <sd-icon slot="icon-left" name="system/arrow-left" label="Close submenu"></sd-icon>
1208
+ <span>Back</span>
1209
+ </sd-button>
1210
+
1211
+ <div class="flex flex-col h-full -mx-4 overflow-x-hidden">
1212
+ <nav
1213
+ aria-label="Main"
1214
+ class="navigation-nav group relative flex flex-col justify-between flex-1 pt-1 pb-4 transition-transform duration-medium data-[submenu-open]:-translate-x-full"
1215
+ >
1216
+ <ul>
1217
+ <li>
1218
+ <sd-navigation-item href="javascript:void(0)" vertical current>Home</sd-navigation-item>
1219
+ </li>
1220
+ <li>
1221
+ <sd-navigation-item href="javascript:void(0)" divider vertical>Investment news</sd-navigation-item>
1222
+ </li>
1223
+ <li>
1224
+ <sd-navigation-item divider vertical chevron>Investment funds</sd-navigation-item>
1225
+ <div data-submenu class="absolute top-0 right-0 w-full translate-x-full">
1226
+ <div>
1227
+ <p class="sd-headline sd-headline--size-lg px-4 py-3 !text-primary">Investment funds</p>
1228
+ <ul>
1229
+ <li>
1230
+ <sd-navigation-item divider vertical>
1231
+ <span>Fund information</span>
1232
+ <sd-navigation-item slot="children" vertical indented href="javascript:void(0)">
1233
+ Fund type
1234
+ </sd-navigation-item>
1235
+ <sd-navigation-item slot="children" vertical indented href="javascript:void(0)">
1236
+ Performance history
1237
+ </sd-navigation-item>
1238
+ <sd-navigation-item slot="children" vertical indented href="javascript:void(0)">
1239
+ My fund data
1240
+ </sd-navigation-item>
1241
+ <sd-navigation-item slot="children" vertical indented href="javascript:void(0)">
1242
+ Find funds
1243
+ </sd-navigation-item>
1244
+ </sd-navigation-item>
1245
+ </li>
1246
+ </ul>
1247
+ </div>
1248
+ </div>
1249
+ </li>
1250
+ <li>
1251
+ <sd-navigation-item href="javascript:void(0)" divider vertical>Management</sd-navigation-item>
1252
+ </li>
1253
+ <li>
1254
+ <sd-navigation-item href="javascript:void(0)" divider vertical>Market analysis</sd-navigation-item>
1255
+ </li>
1256
+ <li>
1257
+ <sd-navigation-item href="javascript:void(0)" divider vertical>Qualification</sd-navigation-item>
1258
+ </li>
1259
+ <li>
1260
+ <sd-navigation-item href="javascript:void(0)" divider vertical> Consulting support </sd-navigation-item>
1261
+ </li>
1262
+ </ul>
1263
+
1264
+ <div class="py-2 bg-neutral-100">
1265
+ <ul>
1266
+ <li><sd-navigation-item href="javascript:void(0)" vertical> Client Service </sd-navigation-item></li>
1267
+ <li><sd-navigation-item href="javascript:void(0)" divider vertical> Cart </sd-navigation-item></li>
1268
+ <li><sd-navigation-item href="javascript:void(0)" divider vertical> Account </sd-navigation-item></li>
1269
+ </ul>
1270
+ </div>
1271
+ </nav>
1272
+
1273
+ <nav aria-label="Actions" class="px-4 py-6">
1274
+ <sd-button href="javascript:void(0)" class="w-full mb-4">Document upload</sd-button>
1275
+ <sd-button variant="secondary" href="javascript:void(0)" class="w-full">Bank order</sd-button>
1276
+ </nav>
1277
+ </div>
1278
+ </sd-drawer>
1279
+ </div>
1280
+
1281
+ <style>
1282
+ sd-header#vertical {
1283
+ --sd-header-padding: 8px 16px;
1284
+ }
1285
+
1286
+ @media (min-width: 376px) {
1287
+ sd-header#vertical {
1288
+ --sd-header-padding: 24px;
1289
+ }
1290
+ }
1291
+
1292
+ @media (min-width: 1025px) {
1293
+ sd-header#vertical {
1294
+ --sd-header-padding: 24px 32px;
1295
+ }
1296
+ }
1297
+
1298
+ @media (min-width: 1440px) {
1299
+ sd-header#vertical {
1300
+ --sd-header-padding: 24px 48px;
1301
+ }
1302
+ }
1303
+
1304
+ [data-submenu][inert] {
1305
+ display: none;
1306
+ }
1307
+
1308
+ sd-navigation-item:has([slot='children']):has(sd-navigation-item[current])::part(content),
1309
+ sd-navigation-item:has(+ [data-submenu] sd-navigation-item[current])::part(content) {
1310
+ font-weight: bold;
1311
+ }
1312
+
1313
+ sd-navigation-item + div[data-submenu]:not([data-active-submenu]) {
1314
+ pointer-events: none;
1315
+ opacity: 0;
1316
+ }
1317
+
1318
+ sd-navigation-item:has([slot='children'])[open] span:not([slot='description']),
1319
+ sd-navigation-item:has([slot='children'][current]) span:not([slot='description']) {
1320
+ font-weight: bold;
1321
+ }
1322
+ </style>
1323
+
1324
+ <!-- Mobile drawer logic -->
1325
+ <script type="module">
1326
+ const drawer = document.getElementById('navigation-drawer-vertical');
1327
+ const drawerTrigger = document.getElementById('open-menu-navigation-vertical');
1328
+ const innerTrigger = drawerTrigger.shadowRoot.querySelector('button');
1329
+
1330
+ innerTrigger.setAttribute('aria-controls', 'navigation-drawer-vertical');
1331
+ innerTrigger.setAttribute('aria-expanded', 'false');
1332
+ drawerTrigger.addEventListener('click', () => drawer.show());
1333
+ drawer.addEventListener('sd-hide', () => innerTrigger.setAttribute('aria-expanded', 'false'));
1334
+ drawer.addEventListener('sd-show', () => innerTrigger.setAttribute('aria-expanded', 'true'));
1335
+ </script>
1336
+
1337
+ <!--
1338
+ The navigation-menu script can be found here:
1339
+ https://github.com/solid-design-system/solid/blob/main/packages/docs/.storybook/assets/scripts/navigation-menu.js
1340
+ -->
1341
+ <script src="./scripts/navigation-menu.js"></script>
1342
+ <script type="module">
1343
+ const getNavigationItemTitle = item =>
1344
+ item.shadowRoot
1345
+ .querySelector('[part="content"]')
1346
+ .assignedNodes({ flatten: true })
1347
+ .reduce((acc, node) => {
1348
+ if (node.nodeType === Node.ELEMENT_NODE) {
1349
+ return acc + node.innerText;
1350
+ } else if (node.nodeType === Node.TEXT_NODE) {
1351
+ return acc + node.textContent;
1352
+ }
1353
+ return acc;
1354
+ }, '');
1355
+
1356
+ document.querySelectorAll('.navigation-nav').forEach(container => {
1357
+ const megamenu = new NavigationMenu(container, NavigationMenuVerticalItem, {
1358
+ backButton: document.getElementById('navigation-drawer-vertical').querySelector('.navigation-nav-vertical--close')
1359
+ });
1360
+ megamenu.focusController = new VerticalFocusController(megamenu);
1361
+
1362
+ const drawer = container.closest('sd-drawer');
1363
+ if (drawer) {
1364
+ drawer.addEventListener('sd-hide', e => {
1365
+ if (e.target !== drawer) return;
1366
+ megamenu.reset();
1367
+ });
1368
+ }
1369
+ });
1370
+ </script>
1371
+ ```
1372
+
1373
+ ## Template: Header Variant B-01
1374
+
1375
+ ```html
1376
+ <sd-header id="sample-b-01-header" fixed>
1377
+ <div class="flex justify-between items-center">
1378
+ <!-- top-left-area: logo + 2nd sender -->
1379
+ <div class="flex items-center lg:justify-between lg:w-full">
1380
+ <a class="flex flex-shrink" href="#">
1381
+ <img class="h-8 md:h-12 lg:h-14 w-auto object-contain" src="${currentTheme.logoLg}" alt="${currentTheme.alt}" />
1382
+ </a>
1383
+ <sd-divider orientation="vertical" class="lg:hidden h-8 md:h-12 lg:h-14 mx-4"></sd-divider>
1384
+ <div class="flex px-2 py-4 items-center justify-center bg-neutral-100 text-primary text-sm">2nd Sender</div>
1385
+ </div>
1386
+ <!-- hamburger: mobile and tablet only -->
1387
+ <div class="flex lg:hidden">
1388
+ <sd-navigation-item id="open-menu-sample-b-01">
1389
+ <sd-icon name="system/menu" label="Open navigation" class="text-xl"></sd-icon>
1390
+ </sd-navigation-item>
1391
+ </div>
1392
+ </div>
1393
+ <!-- hamburger: mobile and tablet only -->
1394
+ <div class="hidden lg:flex items-end pt-3 justify-between">
1395
+ <!-- bottom-right-area start !-->
1396
+ <div class="-ml-4">
1397
+ <sd-navigation-item href="javascript:void(0)">
1398
+ <span class="font-bold">Home</span>
1399
+ </sd-navigation-item>
1400
+ <sd-navigation-item href="javascript:void(0)">
1401
+ <span class="font-bold">Perspective</span>
1402
+ </sd-navigation-item>
1403
+ <sd-navigation-item href="javascript:void(0)">
1404
+ <span class="font-bold">To the point</span>
1405
+ </sd-navigation-item>
1406
+ <sd-navigation-item href="javascript:void(0)">
1407
+ <span class="font-bold">Meeting point</span>
1408
+ </sd-navigation-item>
1409
+ </div>
1410
+ <!-- bottom-right-area end !-->
1411
+ <!-- bottom-left-area start !-->
1412
+ <div class="flex items-center">
1413
+ <sd-navigation-item href="javascript:void(0)">
1414
+ <sd-icon name="system/website" label="News" class="text-xl"></sd-icon>
1415
+ </sd-navigation-item>
1416
+ <sd-navigation-item onclick="alert('This could open a search bar')">
1417
+ <sd-icon name="system/magnifying-glass" label="Search" class="text-xl"></sd-icon>
1418
+ </sd-navigation-item>
1419
+ <!-- bottom-left-area end !-->
1420
+ </div>
1421
+ </div>
1422
+ </sd-header>
1423
+
1424
+ <sd-drawer id="sample-b-01-drawer" placement="end" class="relative block">
1425
+ <nav aria-label="Main" class="-mx-4">
1426
+ <sd-navigation-item vertical current href="javascript:void(0)">Home</sd-navigation-item>
1427
+ <sd-navigation-item vertical divider href="javascript:void(0)">Perspective</sd-navigation-item>
1428
+ <sd-navigation-item vertical divider href="javascript:void(0)">To the point</sd-navigation-item>
1429
+ <sd-navigation-item vertical divider href="javascript:void(0)">Meeting Point</sd-navigation-item>
1430
+ </nav>
1431
+ <nav aria-label="Footer" slot="footer" class="bg-neutral-100 -m-4">
1432
+ <sd-navigation-item vertical class="flex align-center" href="javascript:void(0)">
1433
+ <sd-icon name="system/lock-locked" class="h-6 w-6 mr-2"></sd-icon>
1434
+ My application
1435
+ </sd-navigation-item>
1436
+ <sd-navigation-item vertical divider class="flex align-center" href="javascript:void(0)">
1437
+ <sd-icon name="system/website" class="h-6 w-6 mr-2"></sd-icon>
1438
+ Our further appearances
1439
+ </sd-navigation-item>
1440
+ </nav>
1441
+ </sd-drawer>
1442
+
1443
+ <style>
1444
+ sd-header#sample-b-01-header {
1445
+ --sd-header-padding: 8px 16px;
1446
+ }
1447
+
1448
+ @media (min-width: 376px) {
1449
+ sd-header#sample-b-01-header {
1450
+ --sd-header-padding: 24px;
1451
+ }
1452
+ }
1453
+
1454
+ @media (min-width: 1025px) {
1455
+ sd-header#sample-b-01-header {
1456
+ --sd-header-padding: 24px 32px 0 32px;
1457
+ }
1458
+ }
1459
+
1460
+ @media (min-width: 1281px) {
1461
+ sd-header#sample-b-01-header {
1462
+ --sd-header-padding: 24px 48px 0 48px;
1463
+ }
1464
+ }
1465
+ </style>
1466
+
1467
+ <script type="module">
1468
+ await Promise.all([customElements.whenDefined('sd-navigation-item')]).then(() => {
1469
+ const header = document.getElementById('sample-b-01-header');
1470
+ const drawer = document.getElementById('sample-b-01-drawer');
1471
+ const navigationItems = [
1472
+ ...header.querySelectorAll('sd-navigation-item'),
1473
+ ...drawer.querySelectorAll('sd-navigation-item')
1474
+ ];
1475
+
1476
+ const handleNavigationItemClick = e => {
1477
+ navigationItems.forEach(item => item.removeAttribute('current'));
1478
+ const target = e.target.closest('sd-navigation-item');
1479
+ target.setAttribute('current', '');
1480
+ };
1481
+
1482
+ navigationItems.forEach(item => {
1483
+ if (!item.hasAttribute('href')) return;
1484
+ item.addEventListener('click', handleNavigationItemClick);
1485
+ });
1486
+ });
1487
+ </script>
1488
+
1489
+ <script type="module">
1490
+ await Promise.all([customElements.whenDefined('sd-navigation-item'), customElements.whenDefined('sd-drawer')]).then(
1491
+ () => {
1492
+ const drawer = document.getElementById('sample-b-01-drawer');
1493
+ const triggerNavigationItem = document.getElementById('open-menu-sample-b-01');
1494
+ const triggerButton = triggerNavigationItem.shadowRoot.querySelector('button');
1495
+
1496
+ triggerButton.setAttribute('aria-controls', 'sample-b-01-drawer');
1497
+ triggerButton.setAttribute('aria-expanded', 'false');
1498
+ drawer.addEventListener('sd-hide', () => triggerButton.setAttribute('aria-expanded', 'false'));
1499
+
1500
+ triggerNavigationItem.addEventListener('click', () => {
1501
+ drawer.show();
1502
+ triggerButton.setAttribute('aria-expanded', 'true');
1503
+ });
1504
+ }
1505
+ );
1506
+ </script>
1507
+ ```
1508
+
1509
+ ## Template: Header Variant B-02
1510
+
1511
+ ```html
1512
+ <sd-header id="sample-b-02-header" fixed>
1513
+ <div class="flex justify-between items-center">
1514
+ <div class="flex items-center lg:justify-between lg:w-full">
1515
+ <div class="flex px-2 py-4 items-center justify-center bg-neutral-100 text-primary text-sm">2nd Sender</div>
1516
+ <sd-divider orientation="vertical" class="lg:hidden h-8 md:h-12 lg:h-14 mx-4"></sd-divider>
1517
+ <a class="flex flex-shrink" href="#">
1518
+ <img class="h-8 md:h-12 lg:h-14 w-auto object-contain" src="${currentTheme.logoLg}" alt="${currentTheme.alt}" />
1519
+ </a>
1520
+ </div>
1521
+ <div class="flex lg:hidden">
1522
+ <sd-navigation-item id="open-menu-sample-b-02">
1523
+ <sd-icon name="system/menu" label="Open navigation" class="text-xl"></sd-icon>
1524
+ </sd-navigation-item>
1525
+ </div>
1526
+ </div>
1527
+
1528
+ <div class="hidden lg:flex items-end pt-3 justify-between">
1529
+ <!-- bottom-left-area start !-->
1530
+ <div class="-ml-4">
1531
+ <sd-navigation-item href="javascript:void(0)">
1532
+ <span class="font-bold">Home</span>
1533
+ </sd-navigation-item>
1534
+ <sd-navigation-item href="javascript:void(0)">
1535
+ <span class="font-bold">Perspective</span>
1536
+ </sd-navigation-item>
1537
+ <sd-navigation-item href="javascript:void(0)">
1538
+ <span class="font-bold">To the point</span>
1539
+ </sd-navigation-item>
1540
+ <sd-navigation-item href="javascript:void(0)">
1541
+ <span class="font-bold">Meeting point</span>
1542
+ </sd-navigation-item>
1543
+ </div>
1544
+ <!-- bottom-left-area end !-->
1545
+ <!-- bottom-right-area start !-->
1546
+ <div class="flex items-center">
1547
+ <sd-navigation-item href="javascript:void(0)">
1548
+ <sd-icon name="system/website" label="News" class="text-xl"></sd-icon>
1549
+ </sd-navigation-item>
1550
+ <sd-navigation-item onclick="alert('This could open a search bar')">
1551
+ <sd-icon name="system/magnifying-glass" label="Search" class="text-xl"></sd-icon>
1552
+ </sd-navigation-item>
1553
+ <!-- bottom-right-area end !-->
1554
+ </div>
1555
+ </div>
1556
+ </sd-header>
1557
+
1558
+ <sd-drawer id="sample-b-02-drawer" placement="end" class="relative block">
1559
+ <nav aria-label="Main" class="-mx-4">
1560
+ <sd-navigation-item vertical current href="javascript:void(0)">Home</sd-navigation-item>
1561
+ <sd-navigation-item vertical divider href="javascript:void(0)">Perspective</sd-navigation-item>
1562
+ <sd-navigation-item vertical divider href="javascript:void(0)">To the point</sd-navigation-item>
1563
+ <sd-navigation-item vertical divider href="javascript:void(0)">Meeting Point</sd-navigation-item>
1564
+ </nav>
1565
+ <nav aria-label="Footer" slot="footer" class="bg-neutral-100 -m-4">
1566
+ <sd-navigation-item vertical class="flex align-center" href="javascript:void(0)">
1567
+ <sd-icon name="system/lock-locked" class="h-6 w-6 mr-2"></sd-icon>
1568
+ My application
1569
+ </sd-navigation-item>
1570
+ <sd-navigation-item vertical divider class="flex align-center" href="javascript:void(0)">
1571
+ <sd-icon name="system/website" class="h-6 w-6 mr-2"></sd-icon>
1572
+ Our further appearances
1573
+ </sd-navigation-item>
1574
+ </nav>
1575
+ </sd-drawer>
1576
+
1577
+ <style>
1578
+ sd-header#sample-b-02-header {
1579
+ --sd-header-padding: 8px 16px;
1580
+ }
1581
+
1582
+ @media (min-width: 376px) {
1583
+ sd-header#sample-b-02-header {
1584
+ --sd-header-padding: 24px;
1585
+ }
1586
+ }
1587
+
1588
+ @media (min-width: 1025px) {
1589
+ sd-header#sample-b-02-header {
1590
+ --sd-header-padding: 24px 32px 0 32px;
1591
+ }
1592
+ }
1593
+
1594
+ @media (min-width: 1281px) {
1595
+ sd-header#sample-b-02-header {
1596
+ --sd-header-padding: 24px 48px 0 48px;
1597
+ }
1598
+ }
1599
+ </style>
1600
+
1601
+ <script type="module">
1602
+ await Promise.all([customElements.whenDefined('sd-navigation-item')]).then(() => {
1603
+ const header = document.getElementById('sample-b-02-header');
1604
+ const drawer = document.getElementById('sample-b-02-drawer');
1605
+ const navigationItems = [
1606
+ ...header.querySelectorAll('sd-navigation-item'),
1607
+ ...drawer.querySelectorAll('sd-navigation-item')
1608
+ ];
1609
+
1610
+ const handleNavigationItemClick = e => {
1611
+ navigationItems.forEach(item => item.removeAttribute('current'));
1612
+ const target = e.target.closest('sd-navigation-item');
1613
+ target.setAttribute('current', '');
1614
+ };
1615
+
1616
+ navigationItems.forEach(item => {
1617
+ if (!item.hasAttribute('href')) return;
1618
+ item.addEventListener('click', handleNavigationItemClick);
1619
+ });
1620
+ });
1621
+ </script>
1622
+
1623
+ <script type="module">
1624
+ await Promise.all([customElements.whenDefined('sd-navigation-item'), customElements.whenDefined('sd-drawer')]).then(
1625
+ () => {
1626
+ const drawer = document.getElementById('sample-b-02-drawer');
1627
+ const triggerNavigationItem = document.getElementById('open-menu-sample-b-02');
1628
+ const triggerButton = triggerNavigationItem.shadowRoot.querySelector('button');
1629
+
1630
+ triggerButton.setAttribute('aria-controls', 'sample-b-02-drawer');
1631
+ triggerButton.setAttribute('aria-expanded', 'false');
1632
+ drawer.addEventListener('sd-hide', () => triggerButton.setAttribute('aria-expanded', 'false'));
1633
+
1634
+ triggerNavigationItem.addEventListener('click', () => {
1635
+ drawer.show();
1636
+ triggerButton.setAttribute('aria-expanded', 'true');
1637
+ });
1638
+ }
1639
+ );
1640
+ </script>
1641
+ ```
1642
+
1643
+ ## Template: Header Variant C-01
1644
+
1645
+ ```html
1646
+ <sd-header id="sample-c-01-header">
1647
+ <div class="flex justify-between items-center">
1648
+ <div class="flex items-center w-fit">
1649
+ <a class="flex flex-shrink" href="#">
1650
+ <img class="h-8 w-auto object-contain" src="${currentTheme.logoLg}" alt="${currentTheme.alt}" />
1651
+ </a>
1652
+ <sd-divider orientation="vertical" class="h-8 mx-4"></sd-divider>
1653
+ <div class="flex px-2 py-4 items-center justify-center bg-neutral-100 text-primary text-sm">2nd Sender</div>
1654
+ </div>
1655
+ <div class="hidden md:flex items-center justify-end w-fit">
1656
+ <div class="flex items-center">
1657
+ <sd-navigation-item href="javascript:void(0)">
1658
+ <span class="font-bold">Home</span>
1659
+ </sd-navigation-item>
1660
+ <sd-navigation-item href="javascript:void(0)">
1661
+ <span class="font-bold">Perspective</span>
1662
+ </sd-navigation-item>
1663
+ <sd-navigation-item href="javascript:void(0)">
1664
+ <span class="font-bold">To the point</span>
1665
+ </sd-navigation-item>
1666
+ </div>
1667
+ </div>
1668
+ <div class="flex md:hidden">
1669
+ <sd-navigation-item id="open-menu-sample-c-01">
1670
+ <sd-icon name="system/menu" label="Open navigation" class="text-xl"></sd-icon>
1671
+ </sd-navigation-item>
1672
+ </div>
1673
+ </div>
1674
+ </sd-header>
1675
+
1676
+ <sd-drawer id="sample-c-01-drawer" placement="end" class="relative block">
1677
+ <nav aria-label="Main" class="-mx-4">
1678
+ <sd-navigation-item vertical current href="javascript:void(0)">Home</sd-navigation-item>
1679
+ <sd-navigation-item vertical divider href="javascript:void(0)">Perspective</sd-navigation-item>
1680
+ <sd-navigation-item vertical divider href="javascript:void(0)">To the point</sd-navigation-item>
1681
+ </nav>
1682
+ <nav aria-label="Footer" slot="footer" class="bg-neutral-100 -m-4">
1683
+ <sd-navigation-item vertical class="flex align-center" href="javascript:void(0)">
1684
+ <sd-icon name="system/user" class="h-6 w-6 mr-2"></sd-icon>
1685
+ My account
1686
+ </sd-navigation-item>
1687
+ <sd-navigation-item vertical divider class="flex align-center" href="javascript:void(0)">
1688
+ <sd-icon name="system/lock-locked" class="h-6 w-6 mr-2"></sd-icon>
1689
+ My application
1690
+ </sd-navigation-item>
1691
+ </nav>
1692
+ </sd-drawer>
1693
+
1694
+ <style>
1695
+ sd-header#sample-c-01-header {
1696
+ --sd-header-padding: 8px 16px;
1697
+ }
1698
+
1699
+ @media (min-width: 376px) {
1700
+ sd-header#sample-c-01-header {
1701
+ --sd-header-padding: 24px;
1702
+ }
1703
+ }
1704
+ </style>
1705
+
1706
+ <script type="module">
1707
+ await Promise.all([customElements.whenDefined('sd-navigation-item')]).then(() => {
1708
+ const header = document.getElementById('sample-c-01-header');
1709
+ const drawer = document.getElementById('sample-c-01-drawer');
1710
+ const navigationItems = [
1711
+ ...header.querySelectorAll('sd-navigation-item'),
1712
+ ...drawer.querySelectorAll('sd-navigation-item')
1713
+ ];
1714
+
1715
+ const handleNavigationItemClick = e => {
1716
+ navigationItems.forEach(item => item.removeAttribute('current'));
1717
+ const target = e.target.closest('sd-navigation-item');
1718
+ target.setAttribute('current', '');
1719
+ };
1720
+
1721
+ navigationItems.forEach(item => {
1722
+ if (!item.hasAttribute('href')) return;
1723
+ item.addEventListener('click', handleNavigationItemClick);
1724
+ });
1725
+ });
1726
+ </script>
1727
+
1728
+ <script type="module">
1729
+ await Promise.all([customElements.whenDefined('sd-navigation-item'), customElements.whenDefined('sd-drawer')]).then(
1730
+ () => {
1731
+ const drawer = document.getElementById('sample-c-01-drawer');
1732
+ const triggerNavigationItem = document.getElementById('open-menu-sample-c-01');
1733
+ const triggerButton = triggerNavigationItem.shadowRoot.querySelector('button');
1734
+
1735
+ triggerButton.setAttribute('aria-controls', 'sample-c-01-drawer');
1736
+ triggerButton.setAttribute('aria-expanded', 'false');
1737
+ drawer.addEventListener('sd-hide', () => triggerButton.setAttribute('aria-expanded', 'false'));
1738
+
1739
+ triggerNavigationItem.addEventListener('click', () => {
1740
+ drawer.show();
1741
+ triggerButton.setAttribute('aria-expanded', 'true');
1742
+ });
1743
+ }
1744
+ );
1745
+ </script>
1746
+ ```
1747
+
1748
+ ## Template: Header Variant C-02
1749
+
1750
+ ```html
1751
+ <sd-header id="sample-c-02-header">
1752
+ <div class="flex justify-between items-center">
1753
+ <div class="flex items-center w-fit">
1754
+ <div class="flex px-2 py-4 items-center justify-center bg-neutral-100 text-primary text-sm">2nd Sender</div>
1755
+ <sd-divider orientation="vertical" class="h-8 mx-4"></sd-divider>
1756
+ <a class="flex flex-shrink" href="#">
1757
+ <img class="h-8 w-auto object-contain" src="${currentTheme.logoLg}" alt="${currentTheme.alt}" />
1758
+ </a>
1759
+ </div>
1760
+ <div class="hidden md:flex items-center justify-end w-fit">
1761
+ <div class="flex items-center">
1762
+ <sd-navigation-item href="javascript:void(0)">
1763
+ <span class="font-bold">Home</span>
1764
+ </sd-navigation-item>
1765
+ <sd-navigation-item href="javascript:void(0)">
1766
+ <span class="font-bold">Perspective</span>
1767
+ </sd-navigation-item>
1768
+ <sd-navigation-item href="javascript:void(0)">
1769
+ <span class="font-bold">To the point</span>
1770
+ </sd-navigation-item>
1771
+ </div>
1772
+ </div>
1773
+ <div class="flex md:hidden">
1774
+ <sd-navigation-item id="open-menu-sample-c-02">
1775
+ <sd-icon name="system/menu" label="Open navigation" class="text-xl"></sd-icon>
1776
+ </sd-navigation-item>
1777
+ </div>
1778
+ </div>
1779
+ </sd-header>
1780
+
1781
+ <sd-drawer id="sample-c-02-drawer" placement="end" class="relative block">
1782
+ <nav aria-label="Main" class="-mx-4">
1783
+ <sd-navigation-item vertical current href="javascript:void(0)">Home</sd-navigation-item>
1784
+ <sd-navigation-item vertical divider href="javascript:void(0)">Perspective</sd-navigation-item>
1785
+ <sd-navigation-item vertical divider href="javascript:void(0)">To the point</sd-navigation-item>
1786
+ </nav>
1787
+ <nav aria-label="Footer" slot="footer" class="bg-neutral-100 -m-4">
1788
+ <sd-navigation-item vertical class="flex align-center" href="javascript:void(0)">
1789
+ <sd-icon name="system/user" class="h-6 w-6 mr-2"></sd-icon>
1790
+ My account
1791
+ </sd-navigation-item>
1792
+ <sd-navigation-item vertical divider class="flex align-center" href="javascript:void(0)">
1793
+ <sd-icon name="system/lock-locked" class="h-6 w-6 mr-2"></sd-icon>
1794
+ My application
1795
+ </sd-navigation-item>
1796
+ </nav>
1797
+ </sd-drawer>
1798
+
1799
+ <style>
1800
+ sd-header#sample-c-02-header {
1801
+ --sd-header-padding: 8px 16px;
1802
+ }
1803
+
1804
+ @media (min-width: 376px) {
1805
+ sd-header#sample-c-02-header {
1806
+ --sd-header-padding: 24px;
1807
+ }
1808
+ }
1809
+ </style>
1810
+
1811
+ <script type="module">
1812
+ await Promise.all([customElements.whenDefined('sd-navigation-item')]).then(() => {
1813
+ const header = document.getElementById('sample-c-02-header');
1814
+ const drawer = document.getElementById('sample-c-02-drawer');
1815
+ const navigationItems = [
1816
+ ...header.querySelectorAll('sd-navigation-item'),
1817
+ ...drawer.querySelectorAll('sd-navigation-item')
1818
+ ];
1819
+
1820
+ const handleNavigationItemClick = e => {
1821
+ navigationItems.forEach(item => item.removeAttribute('current'));
1822
+ const target = e.target.closest('sd-navigation-item');
1823
+ target.setAttribute('current', '');
1824
+ };
1825
+
1826
+ navigationItems.forEach(item => {
1827
+ if (!item.hasAttribute('href')) return;
1828
+ item.addEventListener('click', handleNavigationItemClick);
1829
+ });
1830
+ });
1831
+ </script>
1832
+
1833
+ <script type="module">
1834
+ await Promise.all([customElements.whenDefined('sd-navigation-item'), customElements.whenDefined('sd-drawer')]).then(
1835
+ () => {
1836
+ const drawer = document.getElementById('sample-c-02-drawer');
1837
+ const triggerNavigationItem = document.getElementById('open-menu-sample-c-02');
1838
+ const triggerButton = triggerNavigationItem.shadowRoot.querySelector('button');
1839
+
1840
+ triggerButton.setAttribute('aria-controls', 'sample-c-02-drawer');
1841
+ triggerButton.setAttribute('aria-expanded', 'false');
1842
+ drawer.addEventListener('sd-hide', () => triggerButton.setAttribute('aria-expanded', 'false'));
1843
+
1844
+ triggerNavigationItem.addEventListener('click', () => {
1845
+ drawer.show();
1846
+ triggerButton.setAttribute('aria-expanded', 'true');
1847
+ });
1848
+ }
1849
+ );
1850
+ </script>
1851
+ ```
1852
+
1853
+ ## Template: Header Sample D-01
1854
+
1855
+ ```html
1856
+ <sd-header id="sample-d-01-header">
1857
+ <div class="flex justify-center items-center">
1858
+ <a class="flex flex-shrink" href="#">
1859
+ <img class="h-8 w-auto object-contain" src="${currentTheme.logoLg}" alt="${currentTheme.alt}" />
1860
+ </a>
1861
+ </div>
1862
+ </sd-header>
1863
+
1864
+ <style>
1865
+ sd-header#sample-d-01-header {
1866
+ --sd-header-padding: 8px 16px;
1867
+ }
1868
+
1869
+ @media (min-width: 376px) {
1870
+ sd-header#sample-d-01-header {
1871
+ --sd-header-padding: 8px 24px;
1872
+ }
1873
+ }
1874
+
1875
+ @media (min-width: 1025px) {
1876
+ sd-header#sample-d-01-header {
1877
+ --sd-header-padding: 8px 32px;
1878
+ }
1879
+ }
1880
+
1881
+ @media (min-width: 1281px) {
1882
+ sd-header#sample-d-01-header {
1883
+ --sd-header-padding: 8px 48px;
1884
+ }
1885
+ }
1886
+ </style>
1887
+ ```
1888
+
1889
+ ## Template: Header Sample D-02
1890
+
1891
+ ```html
1892
+ <sd-header id="sample-d-02-header">
1893
+ <div class="grid grid-cols-[1fr_auto_1fr] items-center">
1894
+ <div class="flex items-center">
1895
+ <sd-navigation-item id="back-button-sample-d-02">
1896
+ <sd-icon name="system/arrow-left" label="Go back" class="text-xl"></sd-icon>
1897
+ </sd-navigation-item>
1898
+ </div>
1899
+ <a class="flex justify-center flex-shrink" href="#">
1900
+ <img class="h-8 w-auto object-contain" src="${currentTheme.logoLg}" alt="${currentTheme.alt}" />
1901
+ </a>
1902
+ </div>
1903
+ </sd-header>
1904
+
1905
+ <style>
1906
+ sd-navigation-item#back-button-sample-d-02::part(content) {
1907
+ border-bottom: 0;
1908
+ }
1909
+
1910
+ sd-header#sample-d-02-header {
1911
+ --sd-header-padding: 8px 16px;
1912
+ }
1913
+
1914
+ @media (min-width: 376px) {
1915
+ sd-header#sample-d-02-header {
1916
+ --sd-header-padding: 8px 24px;
1917
+ }
1918
+ }
1919
+
1920
+ @media (min-width: 1025px) {
1921
+ sd-header#sample-d-02-header {
1922
+ --sd-header-padding: 8px 32px;
1923
+ }
1924
+ }
1925
+
1926
+ @media (min-width: 1281px) {
1927
+ sd-header#sample-d-02-header {
1928
+ --sd-header-padding: 8px 48px;
1929
+ }
1930
+ }
1931
+ </style>
1932
+
1933
+ <script type="module">
1934
+ await customElements.whenDefined('sd-notification').then(() => {
1935
+ const backButton = document.getElementById('back-button-sample-d-02');
1936
+
1937
+ backButton.addEventListener('click', () => {
1938
+ const notification = Object.assign(document.createElement('sd-notification'), {
1939
+ closable: true,
1940
+ variant: 'info',
1941
+ toastStack: 'bottom-center',
1942
+ duration: Infinity,
1943
+ innerHTML: 'This is a template preview.<br>No navigation is assigned.'
1944
+ });
1945
+
1946
+ document.body.append(notification);
1947
+ notification.toast();
1948
+ });
1949
+ });
1950
+ </script>
1951
+ ```