@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,340 @@
1
+ ---
2
+ name: pagination
3
+ title: Pagination
4
+ components:
5
+ - sd-icon
6
+ - sd-pagination
7
+ - sd-pagination--simple
8
+ - sd-pagination--with-buttons
9
+ version: 1.0.0
10
+ ---
11
+
12
+ ## Template: Pagination Number
13
+
14
+ ```html
15
+ <nav id="pagination" class="sd-pagination" aria-label="Pagination">
16
+ <ul>
17
+ <li>
18
+ <a aria-hidden="true"><sd-icon name="system/chevron-left" label="Go to previous page"></sd-icon></a>
19
+ </li>
20
+ <li><a aria-current="page">1</a></li>
21
+ <li><a href="/?page=2">2</a></li>
22
+ <li><a href="/?page=3">3</a></li>
23
+ <li><a href="/?page=4">4</a></li>
24
+ <li><a href="/?page=5">5</a></li>
25
+ <li><a href="/?page=6">6</a></li>
26
+ <li><a href="/?page=7">7</a></li>
27
+ <li><a href="/?page=8">8</a></li>
28
+ <li><a href="/?page=9">9</a></li>
29
+ <li><a href="/?page=10">10</a></li>
30
+ <li><a href="/?page=11">11</a></li>
31
+ <li><a href="/?page=12">12</a></li>
32
+ <li><a href="/?page=13">13</a></li>
33
+ <li><a href="/?page=14">14</a></li>
34
+ <li><a href="/?page=15">15</a></li>
35
+ <li><a href="/?page=16">16</a></li>
36
+ <li><a href="/?page=17">17</a></li>
37
+ <li><a href="/?page=18">18</a></li>
38
+ <li><a href="/?page=19">19</a></li>
39
+ <li><a href="/?page=20">20</a></li>
40
+ <li>
41
+ <a href="/?page=2"><sd-icon name="system/chevron-right" label="Go to next page"></sd-icon></a>
42
+ </li>
43
+ </ul>
44
+ <p id="pagination-live" aria-live="polite"></p>
45
+ </nav>
46
+ <script type="module">
47
+ const pagination = document.querySelector('#pagination');
48
+ const live = pagination.querySelector('#pagination-live');
49
+ const state = { current: 1 };
50
+
51
+ const pages = pagination.querySelectorAll('ul > li a:not(:has(sd-icon))');
52
+ const previous = pagination.querySelector('ul > li:first-child a:has(sd-icon)');
53
+ const next = pagination.querySelector('ul > li:last-child a:has(sd-icon)');
54
+
55
+ const update = () => {
56
+ const current = pages[state.current - 1];
57
+ pages.forEach(page => {
58
+ page.removeAttribute('aria-current');
59
+ page.setAttribute('href', '/?page=' + page.innerHTML);
60
+ });
61
+
62
+ current.setAttribute('aria-current', 'page');
63
+ current.removeAttribute('href');
64
+ live.innerHTML = 'Current page: ' + state.current;
65
+
66
+ const isFirstPage = state.current <= 1;
67
+ const isLastPage = state.current >= pages.length;
68
+
69
+ previous.href = '/?page=' + (state.current - 1);
70
+ previous.removeAttribute('aria-hidden');
71
+
72
+ if (isFirstPage) {
73
+ previous.removeAttribute('href');
74
+ previous.setAttribute('aria-hidden', 'true');
75
+ }
76
+
77
+ next.href = '/?page=' + (state.current + 1);
78
+ next.removeAttribute('aria-hidden');
79
+
80
+ if (isLastPage) {
81
+ next.removeAttribute('href');
82
+ next.setAttribute('aria-hidden', 'true');
83
+ }
84
+ };
85
+
86
+ const handlePageClick = event => {
87
+ event.preventDefault();
88
+
89
+ const page = parseInt(event.target.innerHTML, 10);
90
+ if (page === state.current) return;
91
+
92
+ state.current = page;
93
+ update();
94
+ };
95
+
96
+ const handlePrevious = event => {
97
+ event.preventDefault();
98
+
99
+ if (state.current <= 1) return;
100
+
101
+ state.current--;
102
+ update();
103
+
104
+ /**
105
+ * NOTE: Due to a11y purposes, when the start or end is reached,
106
+ * the focus must switch to the oposite button
107
+ */
108
+ if (state.current === 1) {
109
+ next.focus();
110
+ }
111
+ };
112
+
113
+ const handleNext = event => {
114
+ event.preventDefault();
115
+
116
+ if (state.current >= pages.length) return;
117
+
118
+ state.current++;
119
+ update();
120
+
121
+ /**
122
+ * NOTE: Due to a11y purposes, when the start or end is reached,
123
+ * the focus must switch to the oposite button
124
+ */
125
+ if (state.current === pages.length) {
126
+ previous.focus();
127
+ }
128
+ };
129
+
130
+ pages.forEach(page => page.addEventListener('click', handlePageClick));
131
+ previous.addEventListener('click', handlePrevious);
132
+ next.addEventListener('click', handleNext);
133
+
134
+ update();
135
+ </script>
136
+ ```
137
+
138
+ ## Template: Pagination Number with Buttons
139
+
140
+ ```html
141
+ <nav id="pagination-with-buttons" class="sd-pagination sd-pagination--with-buttons" aria-label="Pagination">
142
+ <ul>
143
+ <li>
144
+ <button aria-hidden="true" disabled>
145
+ <sd-icon name="system/chevron-left" label="Go to previous page"></sd-icon>
146
+ </button>
147
+ </li>
148
+ <li><button aria-current="page">1</button></li>
149
+ <li><button>2</button></li>
150
+ <li><button>3</button></li>
151
+ <li><button>4</button></li>
152
+ <li><button>5</button></li>
153
+ <li><button>6</button></li>
154
+ <li><button>7</button></li>
155
+ <li><button>8</button></li>
156
+ <li><button>9</button></li>
157
+ <li><button>10</button></li>
158
+ <li><button>11</button></li>
159
+ <li><button>12</button></li>
160
+ <li><button>13</button></li>
161
+ <li><button>14</button></li>
162
+ <li><button>15</button></li>
163
+ <li><button>16</button></li>
164
+ <li><button>17</button></li>
165
+ <li><button>18</button></li>
166
+ <li><button>19</button></li>
167
+ <li><button>20</button></li>
168
+ <li>
169
+ <button>
170
+ <sd-icon name="system/chevron-right" label="Go to next page"></sd-icon>
171
+ </button>
172
+ </li>
173
+ </ul>
174
+ <p id="pagination-live" aria-live="polite"></p>
175
+ </nav>
176
+ <script type="module">
177
+ const pagination = document.querySelector('#pagination-with-buttons');
178
+ const live = pagination.querySelector('#pagination-live');
179
+ const state = { current: 1 };
180
+ const pages = pagination.querySelectorAll('ul > li button:not(:has(sd-icon))');
181
+ const previous = pagination.querySelector('ul > li:first-child button:has(sd-icon)');
182
+ const next = pagination.querySelector('ul > li:last-child button:has(sd-icon)');
183
+ const update = () => {
184
+ // Remove aria-current from all page buttons
185
+ pages.forEach(page => {
186
+ page.removeAttribute('aria-current');
187
+ page.removeAttribute('tabindex');
188
+ });
189
+ // Set aria-current on the current page button
190
+ const currentPageButton = pages[state.current - 1];
191
+ currentPageButton.setAttribute('aria-current', 'page');
192
+ currentPageButton.setAttribute('tabindex', '-1');
193
+ currentPageButton.blur();
194
+ live.innerHTML = 'Current page: ' + state.current;
195
+ const isFirstPage = state.current <= 1;
196
+ const isLastPage = state.current >= pages.length;
197
+ previous.removeAttribute('aria-hidden');
198
+ previous.disabled = false;
199
+ if (isFirstPage) {
200
+ previous.setAttribute('aria-hidden', 'true');
201
+ previous.disabled = true;
202
+ }
203
+ next.removeAttribute('aria-hidden');
204
+ next.disabled = false;
205
+ if (isLastPage) {
206
+ next.setAttribute('aria-hidden', 'true');
207
+ next.disabled = true;
208
+ }
209
+ };
210
+ const handlePageClick = event => {
211
+ event.preventDefault();
212
+ const clickedButton = event.target;
213
+ const page = parseInt(clickedButton.innerHTML, 10);
214
+ if (page === state.current) return;
215
+ state.current = page;
216
+ update();
217
+ };
218
+ const handlePrevious = event => {
219
+ event.preventDefault();
220
+ if (state.current <= 1) return;
221
+ state.current--;
222
+ update();
223
+ /**
224
+ * NOTE: Due to a11y purposes, when the start or end is reached,
225
+ * the focus must switch to the opposite button
226
+ */
227
+ if (state.current === 1) {
228
+ next.focus();
229
+ }
230
+ };
231
+ const handleNext = event => {
232
+ event.preventDefault();
233
+ if (state.current >= pages.length) return;
234
+ state.current++;
235
+ /**
236
+ * NOTE: Due to a11y purposes, when the start or end is reached,
237
+ * the focus must switch to the opposite button
238
+ */
239
+ if (state.current === pages.length) {
240
+ previous.focus();
241
+ }
242
+ update();
243
+ };
244
+ pages.forEach(page => page.addEventListener('click', handlePageClick));
245
+ previous.addEventListener('click', handlePrevious);
246
+ next.addEventListener('click', handleNext);
247
+ update();
248
+ </script>
249
+ ```
250
+
251
+ ## Template: Pagination Simple
252
+
253
+ ```html
254
+ <nav id="simple-pagination" class="sd-pagination sd-pagination--simple" aria-label="Simple pagination">
255
+ <ul>
256
+ <li>
257
+ <a aria-hidden="true"><sd-icon name="system/chevron-left" label="Go to previous page"></sd-icon></a>
258
+ </li>
259
+ <li>1</li>
260
+ <li>20</li>
261
+ <li>
262
+ <a href="/?page=2"><sd-icon name="system/chevron-right" label="Go to next page"></sd-icon></a>
263
+ </li>
264
+ </ul>
265
+ <p id="simple-pagination-live" aria-live="polite"></p>
266
+ </nav>
267
+ <script type="module">
268
+ const pagination = document.querySelector('#simple-pagination');
269
+ const live = pagination.querySelector('#simple-pagination-live');
270
+ const state = { total: 20, current: 1 };
271
+
272
+ const [current, total] = pagination.querySelectorAll('ul > li:not(:has(a))');
273
+ const previous = pagination.querySelector('ul > li:first-child a:has(sd-icon)');
274
+ const next = pagination.querySelector('ul > li:last-child a:has(sd-icon)');
275
+
276
+ const update = () => {
277
+ current.innerHTML = state.current;
278
+ total.innerHTML = state.total;
279
+ live.innerHTML = 'Current page: ' + state.current;
280
+
281
+ const isFirstPage = state.current <= 1;
282
+ const isLastPage = state.current >= state.total;
283
+
284
+ previous.href = '/?page=' + (state.current - 1);
285
+ previous.removeAttribute('aria-hidden');
286
+
287
+ if (isFirstPage) {
288
+ previous.removeAttribute('href');
289
+ previous.setAttribute('aria-hidden', 'true');
290
+ }
291
+
292
+ next.href = '/?page=' + (state.current + 1);
293
+ next.removeAttribute('aria-hidden');
294
+
295
+ if (isLastPage) {
296
+ next.removeAttribute('href');
297
+ next.setAttribute('aria-hidden', 'true');
298
+ }
299
+ };
300
+
301
+ const handlePrevious = event => {
302
+ event.preventDefault();
303
+
304
+ if (state.current <= 1) return;
305
+
306
+ state.current--;
307
+ update();
308
+
309
+ /**
310
+ * NOTE: Due to a11y purposes, when the start or end is reached,
311
+ * the focus must switch to the oposite button
312
+ */
313
+ if (state.current === 1) {
314
+ next.focus();
315
+ }
316
+ };
317
+
318
+ const handleNext = event => {
319
+ event.preventDefault();
320
+
321
+ if (state.current >= state.total) return;
322
+
323
+ state.current++;
324
+ update();
325
+
326
+ /**
327
+ * NOTE: Due to a11y purposes, when the start or end is reached,
328
+ * the focus must switch to the oposite button
329
+ */
330
+ if (state.current === state.total) {
331
+ previous.focus();
332
+ }
333
+ };
334
+
335
+ previous.addEventListener('click', handlePrevious);
336
+ next.addEventListener('click', handleNext);
337
+
338
+ update();
339
+ </script>
340
+ ```
@@ -0,0 +1,267 @@
1
+ ---
2
+ name: quickfact
3
+ title: Quickfact
4
+ components:
5
+ - sd-hide
6
+ - sd-icon
7
+ - sd-quickfact
8
+ - sd-quickfacts
9
+ - sd-show
10
+ version: 1.0.0
11
+ ---
12
+
13
+ ## Template: Quickfact with Summary
14
+
15
+ ```html
16
+ <sd-quickfact class="max-w-[410px] mx-auto">
17
+ <sd-icon name="content/people" color="primary" aria-hidden="true" library="default" slot="icon"></sd-icon>
18
+ <div slot="summary">
19
+ <div>Over 4,000 employees in 9 international locations</div>
20
+ </div>
21
+ </sd-quickfact>
22
+ ```
23
+
24
+ ## Template: Quickfact with Description
25
+
26
+ ```html
27
+ <style>
28
+ sd-quickfact::part(header) {
29
+ align-items: flex-start;
30
+ }
31
+
32
+ @media (min-width: 640px) {
33
+ sd-quickfact::part(header) {
34
+ align-items: center;
35
+ }
36
+ }
37
+ </style>
38
+ <sd-quickfact>
39
+ <sd-icon name="content/handshake" color="primary" aria-hidden="true" library="default" slot="icon"></sd-icon>
40
+ <div slot="summary" class="space-y-4">
41
+ <p>Partnership</p>
42
+ <p class="text-base font-normal leading-normal md:text-xl">
43
+ Union Investment is part of the Volksbanken Raiffeisenbanken cooperative financial network. The cooperative model
44
+ is based on a simple idea: when people join forces, they are much stronger together: "What one cannot do alone,
45
+ many can".
46
+ </p>
47
+ </div>
48
+ </sd-quickfact>
49
+ ```
50
+
51
+ ## Template: Grouping
52
+
53
+ ```html
54
+ <div>
55
+ <style>
56
+ @media (min-width: 640px) {
57
+ .grouping-sample {
58
+ display: flex;
59
+ flex-direction: row;
60
+ justify-content: space-around;
61
+ justify-items: center;
62
+ align-content: space-around;
63
+ align-items: center;
64
+ width: 100%;
65
+ }
66
+
67
+ .grouping-sample sd-quickfact.fact::part(content) {
68
+ position: absolute;
69
+ width: 100%;
70
+ left: 0;
71
+ }
72
+ }
73
+ </style>
74
+ <div class="grouping-sample relative">
75
+ <sd-quickfact expandable class="first fact">
76
+ <sd-icon name="content/image" color="primary" aria-hidden="true" library="default" slot="icon"></sd-icon>
77
+
78
+ <div class="slot slot--border slot--text h-12">Quickfact 1</div>
79
+
80
+ <div slot="summary">
81
+ <p class="text-base font-normal leading-normal sm:text-xl md:text-3xl sm:leading-tight">
82
+ Lorem ipsum in medias
83
+ </p>
84
+ <div class="text-base font-normal leading-normal sm:text-lg md:text-xl">
85
+ Con sectetur adipiscing elit magna cum laude perfides
86
+ </div>
87
+ </div>
88
+ </sd-quickfact>
89
+
90
+ <sd-quickfact expandable class="second fact">
91
+ <sd-icon name="content/image" color="primary" aria-hidden="true" library="default" slot="icon"></sd-icon>
92
+
93
+ <div class="slot slot--border slot--text h-12">Quickfact 2</div>
94
+
95
+ <div slot="summary">
96
+ <p class="text-base font-normal leading-normal sm:text-xl md:text-3xl sm:leading-tight">
97
+ Lorem ipsum in medias
98
+ </p>
99
+ <div class="text-base font-normal leading-normal sm:text-lg md:text-xl">
100
+ Con sectetur adipiscing elit magna cum laude perfides
101
+ </div>
102
+ </div>
103
+ </sd-quickfact>
104
+
105
+ <sd-quickfact expandable class="third fact">
106
+ <sd-icon name="content/image" color="primary" aria-hidden="true" library="default" slot="icon"></sd-icon>
107
+
108
+ <div class="slot slot--border slot--text h-12">Quickfact 3</div>
109
+
110
+ <div slot="summary">
111
+ <p class="text-base font-normal leading-normal sm:text-xl md:text-3xl sm:leading-tight">
112
+ Lorem ipsum in medias
113
+ </p>
114
+ <div class="text-base font-normal leading-normal sm:text-lg md:text-xl">
115
+ Con sectetur adipiscing elit magna cum laude perfides
116
+ </div>
117
+ </div>
118
+ </sd-quickfact>
119
+ </div>
120
+ <script type="module">
121
+ // Wait for custom elements to be defined
122
+ await Promise.all([customElements.whenDefined('sd-quickfact')]).then(() => {
123
+ var quickfacts = document.querySelectorAll('sd-quickfact');
124
+ let activeRow = null;
125
+
126
+ // Closes all other quickfacts when one is opened
127
+ quickfacts.forEach((quickfact, index) => {
128
+ quickfact.addEventListener('sd-show', () => {
129
+ quickfacts.forEach(qf => {
130
+ if (qf !== quickfact) {
131
+ qf.hide();
132
+ }
133
+ });
134
+
135
+ activeRow = getRow(quickfact);
136
+
137
+ let height = getQuickfactContentHeight(quickfact);
138
+
139
+ quickfacts.forEach(qf => {
140
+ if (getRow(qf) === activeRow) {
141
+ qf.style.marginBottom = height + 'px';
142
+ }
143
+ });
144
+ });
145
+
146
+ quickfact.addEventListener('sd-hide', () => {
147
+ quickfacts.forEach(qf => {
148
+ if (getRow(qf) === getRow(quickfact) && getRow(qf) !== activeRow) {
149
+ qf.style.marginBottom = '0px';
150
+ }
151
+ });
152
+ });
153
+ });
154
+
155
+ function getQuickfactContentHeight(quickfact) {
156
+ let content = quickfact.shadowRoot.querySelector('[part~="content"]');
157
+
158
+ // store original styles
159
+ const originalStyles = {
160
+ visibility: content.style.getPropertyValue('visibility'),
161
+ display: content.style.getPropertyValue('display'),
162
+ position: content.style.getPropertyValue('position'),
163
+ height: content.style.getPropertyValue('height')
164
+ };
165
+
166
+ content.style.setProperty('visibility', 'hidden');
167
+ content.style.setProperty('display', 'block');
168
+ content.style.setProperty('position', 'absolute');
169
+ content.style.setProperty('height', 'auto');
170
+
171
+ let height = content.clientHeight;
172
+
173
+ // restore original styles
174
+ content.style.setProperty('visibility', originalStyles.visibility);
175
+ content.style.setProperty('display', originalStyles.display);
176
+ content.style.setProperty('position', originalStyles.position);
177
+ content.style.setProperty('height', originalStyles.height);
178
+
179
+ return height;
180
+ }
181
+
182
+ function getPositions() {
183
+ let grid = document.querySelector('.grouping-sample');
184
+ let gridComputedStyle = window.getComputedStyle(grid);
185
+
186
+ let numberOfRows = gridComputedStyle.getPropertyValue('grid-template-rows').split(' ').length;
187
+
188
+ let numberOfColumns = gridComputedStyle.getPropertyValue('grid-template-columns').split(' ').length;
189
+ let positions = [];
190
+
191
+ for (let row = 1; row <= numberOfRows; row++) {
192
+ for (let col = 1; col <= numberOfColumns; col++) {
193
+ positions.push({ row, column: col });
194
+ }
195
+ }
196
+
197
+ return { numberOfRows, numberOfColumns, positions };
198
+ }
199
+
200
+ // Create a grid map with quickfact and position
201
+ function createGridMap() {
202
+ let gridMap = {};
203
+
204
+ let { numberOfRows, numberOfColumns, positions } = getPositions();
205
+
206
+ quickfacts.forEach((quickfact, index) => {
207
+ gridMap[index] = { quickfact: quickfact, position: positions[index] };
208
+ });
209
+
210
+ return { gridMap, numberOfRows, numberOfColumns };
211
+ }
212
+
213
+ // Take a quickfact as input and return the row of the quickfact in the grid
214
+ function getRow(quickfact) {
215
+ let { gridMap, numberOfRows, numberOfColumns } = createGridMap();
216
+
217
+ for (let [key, value] of Object.entries(gridMap)) {
218
+ if (value?.quickfact === quickfact) {
219
+ return value?.position?.row;
220
+ }
221
+ }
222
+ }
223
+
224
+ // Resets the height of all summaries to auto. This is useful when the window is resized to mobile view.
225
+ function resetHeights() {
226
+ quickfacts.forEach(quickfact => {
227
+ quickfact.shadowRoot.querySelector('[part~="summary"]').style.setProperty('height', 'auto');
228
+ });
229
+ }
230
+
231
+ function equalizeHeights() {
232
+ if (window.innerWidth < 640) {
233
+ resetHeights();
234
+ return;
235
+ }
236
+ let { gridMap, numberOfRows, numberOfColumns } = createGridMap();
237
+
238
+ // Equalize heights of summaries on the same row
239
+ for (let x = 1; x <= numberOfRows; x++) {
240
+ let summariesOnRow = [];
241
+
242
+ for (let value of Object.values(gridMap)) {
243
+ if (value?.position?.row === x) {
244
+ summariesOnRow.push(value.quickfact.shadowRoot.querySelector('[part~="summary"]'));
245
+ }
246
+ }
247
+
248
+ // Reset height to auto to get the actual height of the element
249
+ summariesOnRow.forEach(summary => {
250
+ summary.style.setProperty('height', 'auto');
251
+ });
252
+
253
+ let maxHeight = Math.max(...Array.from(summariesOnRow).map(summary => summary.clientHeight));
254
+
255
+ summariesOnRow.forEach((summary, index) => {
256
+ summary.style.setProperty('height', maxHeight + 'px');
257
+ });
258
+ }
259
+ }
260
+
261
+ equalizeHeights();
262
+
263
+ window.addEventListener('resize', equalizeHeights);
264
+ });
265
+ </script>
266
+ </div>
267
+ ```