@bonniernews/dn-design-system-web 32.7.43 → 32.7.45

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 (337) hide show
  1. package/.prettierignore +10 -0
  2. package/.prettierrc +20 -1
  3. package/CHANGELOG.md +14 -0
  4. package/assets/types/shared-props.ts +6 -6
  5. package/assets/types/teaser-props.ts +20 -20
  6. package/components/article-body-image/README.md +1 -1
  7. package/components/article-top-image/README.md +1 -1
  8. package/components/blocked-content/README.md +1 -1
  9. package/components/blocked-content/blocked-content.js +16 -19
  10. package/components/buddy-menu/README.md +1 -1
  11. package/components/button/README.md +3 -4
  12. package/components/button/button-interactions.js +11 -14
  13. package/components/button/button-types.ts +29 -36
  14. package/components/button-toggle/README.md +1 -1
  15. package/components/byline/README.md +1 -1
  16. package/components/byline/byline-interaction.js +5 -5
  17. package/components/byline-list/README.md +1 -1
  18. package/components/byline-list/byline-list.js +3 -6
  19. package/components/checkbox/README.md +1 -1
  20. package/components/direkt-circle/README.md +1 -1
  21. package/components/direkt-header/README.md +1 -1
  22. package/components/disclaimer/README.md +1 -1
  23. package/components/divider/README.md +1 -1
  24. package/components/empty-state/README.md +1 -1
  25. package/components/factbox/README.md +35 -0
  26. package/components/factbox/factbox.js +6 -9
  27. package/components/footer/README.md +1 -1
  28. package/components/game-header/README.md +1 -1
  29. package/components/group-header/README-njk.md +2 -2
  30. package/components/group-header/README.md +2 -2
  31. package/components/image-caption/README.md +1 -1
  32. package/components/link-box/README.md +1 -1
  33. package/components/list-item/README.md +70 -0
  34. package/components/list-item/list-item-types.ts +4 -3
  35. package/components/list-item/list-item.js +5 -8
  36. package/components/mask/README.md +1 -1
  37. package/components/modal/README.md +1 -1
  38. package/components/modal/modal.js +20 -24
  39. package/components/pagination/README.md +1 -1
  40. package/components/pictogram/README.md +1 -1
  41. package/components/pill/README.md +1 -1
  42. package/components/profile-header/README.md +1 -1
  43. package/components/quote/README.md +1 -1
  44. package/components/radio-button/README.md +1 -1
  45. package/components/spinner/README.md +1 -1
  46. package/components/switch/README.md +1 -1
  47. package/components/tag-header/README.md +1 -1
  48. package/components/teaser-card/{README-NJK.md → README-njk.md} +1 -1
  49. package/components/teaser-card/README.md +2 -2
  50. package/components/teaser-centered/README.md +2 -2
  51. package/components/teaser-counter/README.md +2 -2
  52. package/components/teaser-dot/README.md +1 -1
  53. package/components/teaser-footer/README.md +1 -1
  54. package/components/teaser-image/README.md +1 -1
  55. package/components/teaser-large/{README-NJK.md → README-njk.md} +1 -1
  56. package/components/teaser-large/README.md +2 -2
  57. package/components/teaser-list-swipe/README.md +2 -2
  58. package/components/teaser-list-vertical/README-njk.md +0 -1
  59. package/components/teaser-list-vertical/README.md +1 -1
  60. package/components/teaser-list-vertical/teaser-list-vertical.js +7 -10
  61. package/components/teaser-longlife/README.md +1 -1
  62. package/components/teaser-native/{README-NJK.md → README-njk.md} +1 -1
  63. package/components/teaser-native/README.md +1 -1
  64. package/components/teaser-onsite/{README-NJK.md → README-njk.md} +1 -1
  65. package/components/teaser-onsite/README.md +2 -2
  66. package/components/teaser-package/README.md +1 -1
  67. package/components/teaser-right-now/README.md +2 -2
  68. package/components/teaser-slideshow/{README-NJK.md → README-njk.md} +1 -1
  69. package/components/teaser-slideshow/README.md +3 -3
  70. package/components/teaser-split/README-container-njk.md +1 -1
  71. package/components/teaser-split/README-njk.md +2 -2
  72. package/components/teaser-standard/README-njk.md +1 -1
  73. package/components/teaser-standard/README.md +2 -2
  74. package/components/teaser-standard/teaser-standard.js +11 -14
  75. package/components/teaser-swipe-card/README.md +2 -2
  76. package/components/teaser-text-on-image/README.md +2 -2
  77. package/components/teaser-tipsa/{README-NJK.md → README-njk.md} +1 -1
  78. package/components/teaser-tipsa/README.md +2 -2
  79. package/components/text-button/README.md +1 -1
  80. package/components/text-button-toggle/README.md +1 -1
  81. package/components/text-button-toggle/text-button-toggle.js +7 -10
  82. package/components/text-input/README.md +1 -1
  83. package/components/text-input/text-input-interactions.js +16 -16
  84. package/components/text-input/text-input.js +10 -10
  85. package/components/thematic-break/README.md +1 -1
  86. package/components/tooltip/README.md +13 -5
  87. package/components/tooltip/tooltip.js +11 -17
  88. package/components/video-caption/README.md +1 -1
  89. package/helpers/formatClassString.ts +2 -2
  90. package/index.d.ts +1 -1
  91. package/package.json +5 -1
  92. package/preact/assets/article-image/article-image.d.ts +1 -1
  93. package/preact/assets/form-field/form-field.d.ts +2 -2
  94. package/preact/components/article-body-image/article-body-image.d.ts +2 -2
  95. package/preact/components/article-body-image/article-body-image.js +1 -5
  96. package/preact/components/article-body-image/article-body-image.js.map +2 -2
  97. package/preact/components/article-top-image/article-top-image.d.ts +2 -2
  98. package/preact/components/article-top-image/article-top-image.js +10 -6
  99. package/preact/components/article-top-image/article-top-image.js.map +2 -2
  100. package/preact/components/blocked-content/blocked-content.d.ts +2 -2
  101. package/preact/components/blocked-content/blocked-content.js +23 -22
  102. package/preact/components/blocked-content/blocked-content.js.map +2 -2
  103. package/preact/components/buddy-menu/buddy-menu.d.ts +2 -2
  104. package/preact/components/buddy-menu/buddy-menu.js +22 -17
  105. package/preact/components/buddy-menu/buddy-menu.js.map +2 -2
  106. package/preact/components/button/button-base.js.map +2 -2
  107. package/preact/components/button/button.d.ts +4 -4
  108. package/preact/components/button/button.js +22 -17
  109. package/preact/components/button/button.js.map +2 -2
  110. package/preact/components/button-toggle/button-toggle.d.ts +2 -2
  111. package/preact/components/button-toggle/button-toggle.js.map +2 -2
  112. package/preact/components/byline/byline.d.ts +2 -2
  113. package/preact/components/byline/byline.js +185 -170
  114. package/preact/components/byline/byline.js.map +3 -3
  115. package/preact/components/byline-list/byline-list.d.ts +4 -4
  116. package/preact/components/byline-list/byline-list.js +32 -21
  117. package/preact/components/byline-list/byline-list.js.map +2 -2
  118. package/preact/components/checkbox/checkbox.d.ts +2 -2
  119. package/preact/components/checkbox/checkbox.js +9 -1
  120. package/preact/components/checkbox/checkbox.js.map +2 -2
  121. package/preact/components/direkt-circle/direkt-circle.d.ts +2 -2
  122. package/preact/components/direkt-circle/direkt-circle.js.map +2 -2
  123. package/preact/components/direkt-header/direkt-header.d.ts +2 -2
  124. package/preact/components/direkt-header/direkt-header.js.map +2 -2
  125. package/preact/components/disclaimer/disclaimer.d.ts +3 -3
  126. package/preact/components/disclaimer/disclaimer.js.map +2 -2
  127. package/preact/components/divider/divider.d.ts +2 -2
  128. package/preact/components/divider/divider.js +1 -5
  129. package/preact/components/divider/divider.js.map +2 -2
  130. package/preact/components/empty-state/empty-state.d.ts +2 -2
  131. package/preact/components/empty-state/empty-state.js +31 -23
  132. package/preact/components/empty-state/empty-state.js.map +2 -2
  133. package/preact/components/factbox/factbox.d.ts +5 -5
  134. package/preact/components/factbox/factbox.js +448 -293
  135. package/preact/components/factbox/factbox.js.map +4 -4
  136. package/preact/components/footer/footer.d.ts +2 -2
  137. package/preact/components/footer/footer.js +18 -9
  138. package/preact/components/footer/footer.js.map +2 -2
  139. package/preact/components/game-header/game-header.d.ts +3 -3
  140. package/preact/components/game-header/game-header.js +17 -6
  141. package/preact/components/game-header/game-header.js.map +2 -2
  142. package/preact/components/group-header/group-header.d.ts +4 -4
  143. package/preact/components/group-header/group-header.js +23 -17
  144. package/preact/components/group-header/group-header.js.map +2 -2
  145. package/preact/components/icon-sprite/icon-sprite.d.ts +2 -2
  146. package/preact/components/icon-sprite/icon-sprite.js +5 -5
  147. package/preact/components/icon-sprite/icon-sprite.js.map +3 -3
  148. package/preact/components/icon-with-wrapper/icon-with-wrapper.d.ts +3 -3
  149. package/preact/components/icon-with-wrapper/icon-with-wrapper.js +13 -6
  150. package/preact/components/icon-with-wrapper/icon-with-wrapper.js.map +3 -3
  151. package/preact/components/image-caption/image-caption.d.ts +2 -2
  152. package/preact/components/image-caption/image-caption.js +1 -5
  153. package/preact/components/image-caption/image-caption.js.map +2 -2
  154. package/preact/components/link-box/link-box-item.d.ts +1 -1
  155. package/preact/components/link-box/link-box-item.js.map +2 -2
  156. package/preact/components/link-box/link-box.d.ts +3 -3
  157. package/preact/components/link-box/link-box.js +24 -21
  158. package/preact/components/link-box/link-box.js.map +2 -2
  159. package/preact/components/list-item/list-item-types.d.ts +3 -3
  160. package/preact/components/list-item/list-item.d.ts +19 -1
  161. package/preact/components/list-item/list-item.js +208 -206
  162. package/preact/components/list-item/list-item.js.map +4 -4
  163. package/preact/components/mask/mask.d.ts +3 -3
  164. package/preact/components/mask/mask.js.map +2 -2
  165. package/preact/components/modal/modal.d.ts +2 -2
  166. package/preact/components/modal/modal.js +22 -17
  167. package/preact/components/modal/modal.js.map +2 -2
  168. package/preact/components/pagination/pagination.d.ts +1 -1
  169. package/preact/components/pagination/pagination.js +3 -20
  170. package/preact/components/pagination/pagination.js.map +2 -2
  171. package/preact/components/pictogram/pictogram.d.ts +2 -2
  172. package/preact/components/pictogram/pictogram.js +8 -1
  173. package/preact/components/pictogram/pictogram.js.map +2 -2
  174. package/preact/components/pill/pill.d.ts +3 -3
  175. package/preact/components/pill/pill.js +1 -8
  176. package/preact/components/pill/pill.js.map +2 -2
  177. package/preact/components/profile-header/profile-header.d.ts +3 -3
  178. package/preact/components/profile-header/profile-header.js.map +2 -2
  179. package/preact/components/quote/quote.d.ts +2 -2
  180. package/preact/components/quote/quote.js +1 -6
  181. package/preact/components/quote/quote.js.map +2 -2
  182. package/preact/components/radio-button/radio-button.d.ts +2 -2
  183. package/preact/components/radio-button/radio-button.js +9 -1
  184. package/preact/components/radio-button/radio-button.js.map +2 -2
  185. package/preact/components/spinner/spinner.d.ts +2 -2
  186. package/preact/components/spinner/spinner.js.map +2 -2
  187. package/preact/components/switch/switch.d.ts +2 -2
  188. package/preact/components/switch/switch.js.map +2 -2
  189. package/preact/components/tag-header/tag-header.d.ts +2 -2
  190. package/preact/components/tag-header/tag-header.js.map +2 -2
  191. package/preact/components/teaser-card/teaser-card.d.ts +5 -5
  192. package/preact/components/teaser-card/teaser-card.js +9 -2
  193. package/preact/components/teaser-card/teaser-card.js.map +2 -2
  194. package/preact/components/teaser-centered/teaser-centered.d.ts +4 -4
  195. package/preact/components/teaser-centered/teaser-centered.js +48 -40
  196. package/preact/components/teaser-centered/teaser-centered.js.map +4 -4
  197. package/preact/components/teaser-counter/teaser-counter.d.ts +2 -2
  198. package/preact/components/teaser-counter/teaser-counter.js +31 -24
  199. package/preact/components/teaser-counter/teaser-counter.js.map +4 -4
  200. package/preact/components/teaser-dot/teaser-dot.d.ts +3 -3
  201. package/preact/components/teaser-dot/teaser-dot.js +1 -6
  202. package/preact/components/teaser-dot/teaser-dot.js.map +2 -2
  203. package/preact/components/teaser-footer/teaser-footer.d.ts +2 -2
  204. package/preact/components/teaser-footer/teaser-footer.js.map +2 -2
  205. package/preact/components/teaser-image/teaser-image.d.ts +3 -3
  206. package/preact/components/teaser-image/teaser-image.js +1 -5
  207. package/preact/components/teaser-image/teaser-image.js.map +2 -2
  208. package/preact/components/teaser-large/teaser-large.d.ts +3 -3
  209. package/preact/components/teaser-large/teaser-large.js +72 -73
  210. package/preact/components/teaser-large/teaser-large.js.map +4 -4
  211. package/preact/components/teaser-list-swipe/teaser-list-swipe.d.ts +2 -2
  212. package/preact/components/teaser-list-swipe/teaser-list-swipe.js +60 -48
  213. package/preact/components/teaser-list-swipe/teaser-list-swipe.js.map +4 -4
  214. package/preact/components/teaser-list-vertical/teaser-list-vertical.d.ts +2 -2
  215. package/preact/components/teaser-list-vertical/teaser-list-vertical.js +23 -17
  216. package/preact/components/teaser-list-vertical/teaser-list-vertical.js.map +2 -2
  217. package/preact/components/teaser-longlife/teaser-longlife.d.ts +1 -1
  218. package/preact/components/teaser-longlife/teaser-longlife.js +33 -27
  219. package/preact/components/teaser-longlife/teaser-longlife.js.map +4 -4
  220. package/preact/components/teaser-native/teaser-native.d.ts +2 -2
  221. package/preact/components/teaser-native/teaser-native.js +36 -35
  222. package/preact/components/teaser-native/teaser-native.js.map +4 -4
  223. package/preact/components/teaser-onsite/teaser-onsite.d.ts +4 -4
  224. package/preact/components/teaser-onsite/teaser-onsite.js +44 -37
  225. package/preact/components/teaser-onsite/teaser-onsite.js.map +4 -4
  226. package/preact/components/teaser-package/teaser-package.d.ts +2 -2
  227. package/preact/components/teaser-package/teaser-package.js +33 -18
  228. package/preact/components/teaser-package/teaser-package.js.map +2 -2
  229. package/preact/components/teaser-right-now/teaser-right-now.d.ts +4 -4
  230. package/preact/components/teaser-right-now/teaser-right-now.js +37 -28
  231. package/preact/components/teaser-right-now/teaser-right-now.js.map +4 -4
  232. package/preact/components/teaser-slideshow/teaser-slideshow.d.ts +3 -3
  233. package/preact/components/teaser-slideshow/teaser-slideshow.js +43 -34
  234. package/preact/components/teaser-slideshow/teaser-slideshow.js.map +4 -4
  235. package/preact/components/teaser-split/teaser-split.d.ts +4 -4
  236. package/preact/components/teaser-split/teaser-split.js +10 -9
  237. package/preact/components/teaser-split/teaser-split.js.map +2 -2
  238. package/preact/components/teaser-standard/teaser-standard.d.ts +1 -1
  239. package/preact/components/teaser-standard/teaser-standard.js +10 -9
  240. package/preact/components/teaser-standard/teaser-standard.js.map +2 -2
  241. package/preact/components/teaser-swipe-card/teaser-swipe-card.d.ts +1 -1
  242. package/preact/components/teaser-swipe-card/teaser-swipe-card.js +30 -24
  243. package/preact/components/teaser-swipe-card/teaser-swipe-card.js.map +4 -4
  244. package/preact/components/teaser-text-on-image/teaser-text-on-image.d.ts +4 -4
  245. package/preact/components/teaser-text-on-image/teaser-text-on-image.js +45 -37
  246. package/preact/components/teaser-text-on-image/teaser-text-on-image.js.map +4 -4
  247. package/preact/components/teaser-tipsa/teaser-tipsa.d.ts +2 -2
  248. package/preact/components/teaser-tipsa/teaser-tipsa.js +33 -32
  249. package/preact/components/teaser-tipsa/teaser-tipsa.js.map +4 -4
  250. package/preact/components/text-button/text-button.d.ts +2 -2
  251. package/preact/components/text-button/text-button.js +4 -4
  252. package/preact/components/text-button/text-button.js.map +3 -3
  253. package/preact/components/text-button-toggle/text-button-toggle.d.ts +3 -3
  254. package/preact/components/text-button-toggle/text-button-toggle.js.map +2 -2
  255. package/preact/components/text-input/text-input.d.ts +2 -2
  256. package/preact/components/text-input/text-input.js +9 -1
  257. package/preact/components/text-input/text-input.js.map +2 -2
  258. package/preact/components/thematic-break/thematic-break.d.ts +2 -2
  259. package/preact/components/thematic-break/thematic-break.js +1 -4
  260. package/preact/components/thematic-break/thematic-break.js.map +2 -2
  261. package/preact/components/tooltip/tooltip.d.ts +2 -2
  262. package/preact/components/tooltip/tooltip.js +22 -17
  263. package/preact/components/tooltip/tooltip.js.map +2 -2
  264. package/preact/components/video-caption/video-caption.d.ts +2 -2
  265. package/preact/components/video-caption/video-caption.js +6 -10
  266. package/preact/components/video-caption/video-caption.js.map +3 -3
  267. package/types-lib/ds-color.d.ts +95 -95
  268. package/types-lib/ds-icon.d.ts +98 -98
  269. package/components/article-body-image/README-UXD.md +0 -0
  270. package/components/article-top-image/README-UXD.md +0 -0
  271. package/components/blocked-content/README-UXD.md +0 -0
  272. package/components/buddy-menu/README-UXD.md +0 -0
  273. package/components/byline/README-UXD.md +0 -0
  274. package/components/byline-list-item/README-UXD.md +0 -0
  275. package/components/checkbox/README-UXD.md +0 -0
  276. package/components/direkt-circle/README-UXD.md +0 -0
  277. package/components/divider/README-UXD.md +0 -0
  278. package/components/floating-button/README-UXD.md +0 -0
  279. package/components/footer/README-UXD.md +0 -0
  280. package/components/game-header/README-UXD.md +0 -0
  281. package/components/icon-sprite/README-UXD.md +0 -0
  282. package/components/icon-with-wrapper/README-UXD.md +0 -0
  283. package/components/image-caption/README-UXD.md +0 -0
  284. package/components/modal/README-UXD.md +0 -0
  285. package/components/profile-header/README-UXD.md +0 -0
  286. package/components/quote/README-UXD.md +0 -0
  287. package/components/radio-button/README-UXD.md +0 -0
  288. package/components/spinner/README-UXD.md +0 -0
  289. package/components/switch/README-UXD.md +0 -0
  290. package/components/teaser-card/README-UXD.md +0 -0
  291. package/components/teaser-footer/README-UXD.md +0 -0
  292. package/components/teaser-onsite/README-UXD.md +0 -0
  293. package/components/text-input/README-UXD.md +0 -0
  294. package/components/thematic-break/README-UXD.md +0 -0
  295. package/components/video-caption/README-UXD.md +0 -0
  296. package/foundations/helpers/README-UXD.md +0 -0
  297. package/foundations/typography/README-UXD.md +0 -0
  298. package/introduction/README-UXD.md +0 -1
  299. package/preact/assets/types/shared-props.d.ts +0 -6
  300. package/preact/assets/types/teaser-props.d.ts +0 -44
  301. package/preact/foundations/a11y/visually-hidden.d.ts +0 -4
  302. package/preact/foundations/icons/grade-icon.d.ts +0 -9
  303. package/preact/helpers/formatClassString.d.ts +0 -1
  304. package/preact/helpers/stringToHtml.d.ts +0 -6
  305. package/preact/helpers/teaser.d.ts +0 -21
  306. /package/components/article-body-image/{README-NJK.md → README-njk.md} +0 -0
  307. /package/components/blocked-content/{README-NJK.md → README-njk.md} +0 -0
  308. /package/components/buddy-menu/{README-NJK.md → README-njk.md} +0 -0
  309. /package/components/button/{README-NJK.md → README-njk.md} +0 -0
  310. /package/components/button-toggle/{README-NJK.md → README-njk.md} +0 -0
  311. /package/components/byline/{README-NJK.md → README-njk.md} +0 -0
  312. /package/components/checkbox/{README-NJK.md → README-njk.md} +0 -0
  313. /package/components/direkt-circle/{README-NJK.md → README-njk.md} +0 -0
  314. /package/components/divider/{README-NJK.md → README-njk.md} +0 -0
  315. /package/components/empty-state/{README-NJK.md → README-njk.md} +0 -0
  316. /package/components/factbox/{README-NJK.md → README-njk.md} +0 -0
  317. /package/components/footer/{README-NJK.md → README-njk.md} +0 -0
  318. /package/components/icon-sprite/{README-NJK.md → README-njk.md} +0 -0
  319. /package/components/image-caption/{README-NJK.md → README-njk.md} +0 -0
  320. /package/components/list-item/{README-NJK.md → README-njk.md} +0 -0
  321. /package/components/mask/{README-NJK.md → README-njk.md} +0 -0
  322. /package/components/modal/{README-NJK.md → README-njk.md} +0 -0
  323. /package/components/pagination/{README-NJK.md → README-njk.md} +0 -0
  324. /package/components/pictogram/{README-NJK.md → README-njk.md} +0 -0
  325. /package/components/quote/{README-NJK.md → README-njk.md} +0 -0
  326. /package/components/radio-button/{README-NJK.md → README-njk.md} +0 -0
  327. /package/components/spinner/{README-NJK.md → README-njk.md} +0 -0
  328. /package/components/switch/{README-NJK.md → README-njk.md} +0 -0
  329. /package/components/teaser-centered/{README-NJK.md → README-njk.md} +0 -0
  330. /package/components/teaser-dot/{README-NJK.md → README-njk.md} +0 -0
  331. /package/components/teaser-image/{README-NJK.md → README-njk.md} +0 -0
  332. /package/components/teaser-right-now/{README-NJK.md → README-njk.md} +0 -0
  333. /package/components/teaser-text-on-image/{README-NJK.md → README-njk.md} +0 -0
  334. /package/components/text-button/{README-NJK.md → README-njk.md} +0 -0
  335. /package/components/text-input/{README-NJK.md → README-njk.md} +0 -0
  336. /package/components/thematic-break/{README-NJK.md → README-njk.md} +0 -0
  337. /package/components/video-caption/{README-NJK.md → README-njk.md} +0 -0
@@ -0,0 +1,10 @@
1
+ **/.git
2
+ **/.svn
3
+ **/.hg
4
+ **/node_modules
5
+ **/CHANGELOG.md
6
+ **/*.md
7
+ **/*.json
8
+ **/*.scss
9
+ .release-it-beta.cjs
10
+ .release-it.cjs
package/.prettierrc CHANGED
@@ -6,12 +6,31 @@
6
6
  "jsxSingleQuote": true,
7
7
  "trailingComma": "all",
8
8
  "bracketSpacing": true,
9
+ "importOrder": [
10
+ "^@bonniernews/dn-design-system-web/assets/(.*)$",
11
+ "^@bonniernews/dn-design-system-web/foundations/(.*)$",
12
+ "^@bonniernews/dn-design-system-web/helpers/(.*)$",
13
+ "^@bonniernews/dn-design-system-web/types-lib/(.*)$",
14
+ "^@bonniernews/dn-design-system-web/variables/(.*)$",
15
+ "^@bonniernews/dn-design-system-web/components/(.*)$",
16
+ "^@bonniernews/dn-design-system-web/(.*)$",
17
+ "^[./]"
18
+ ],
19
+ "importOrderSeparation": true,
20
+ "importOrderSortSpecifiers": true,
9
21
  "overrides": [
10
22
  {
11
23
  "files": "**/*.scss",
12
24
  "options": {
13
25
  "singleQuote": false
14
26
  }
27
+ },
28
+ {
29
+ "files": "**/*.js",
30
+ "options": {
31
+ "semi": true
32
+ }
15
33
  }
16
- ]
34
+ ],
35
+ "plugins": ["@trivago/prettier-plugin-sort-imports"]
17
36
  }
package/CHANGELOG.md CHANGED
@@ -4,6 +4,20 @@ All changes to @bonniernews/dn-design-system-web will be documented in this file
4
4
 
5
5
 
6
6
 
7
+ ## [32.7.45](https://github.com/BonnierNews/dn-design-system/compare/@bonniernews/dn-design-system-web@32.7.44...@bonniernews/dn-design-system-web@32.7.45) (2025-08-06)
8
+
9
+
10
+ ### Bug Fixes
11
+
12
+ * **web:** no relative imports ([#1855](https://github.com/BonnierNews/dn-design-system/issues/1855)) ([4d82749](https://github.com/BonnierNews/dn-design-system/commit/4d82749b3efa712c3c20c44d4818aacde8a43619))
13
+
14
+ ## [32.7.44](https://github.com/BonnierNews/dn-design-system/compare/@bonniernews/dn-design-system-web@32.7.43...@bonniernews/dn-design-system-web@32.7.44) (2025-08-05)
15
+
16
+
17
+ ### Bug Fixes
18
+
19
+ * **web:** remove readme uxd ([#1852](https://github.com/BonnierNews/dn-design-system/issues/1852)) ([e3df108](https://github.com/BonnierNews/dn-design-system/commit/e3df108b74cb80f278d528b37569533030a243cf))
20
+
7
21
  ## [32.7.43](https://github.com/BonnierNews/dn-design-system/compare/@bonniernews/dn-design-system-web@32.7.42...@bonniernews/dn-design-system-web@32.7.43) (2025-08-04)
8
22
 
9
23
 
@@ -1,6 +1,6 @@
1
- export interface SharedProps {
2
- /** Ex. "my-special-class" */
3
- classNames?: string
4
- /** Ex. { target: "_blank", "data-test": "lorem ipsum" } */
5
- attributes?: Record<string, unknown>
6
- }
1
+ export interface SharedProps {
2
+ /** Ex. "my-special-class" */
3
+ classNames?: string
4
+ /** Ex. { target: "_blank", "data-test": "lorem ipsum" } */
5
+ attributes?: Record<string, unknown>
6
+ }
@@ -1,46 +1,46 @@
1
1
  import { ComponentChild } from 'preact'
2
+
2
3
  import type { SharedProps } from '@bonniernews/dn-design-system-web/assets/types/shared-props.ts'
3
4
 
4
5
  export interface TeaserProps extends SharedProps {
5
6
  /** Heading of the teaser */
6
- title: string;
7
+ title: string
7
8
  /** Target URL for the teaser */
8
- targetLink: string;
9
+ targetLink: string
9
10
  /** Variant of the teaser */
10
- variant?: "default" | "podcast" | "insandare" | "direkt";
11
+ variant?: 'default' | 'podcast' | 'insandare' | 'direkt'
11
12
  /** The area where the column is rendered */
12
- areaType?: "right" | "bauta" | "bautaxl";
13
+ areaType?: 'right' | 'bauta' | 'main'
13
14
  /** The theme-class to apply to the teaser */
14
- theme?: "nyheter" | "kultur";
15
+ theme?: 'nyheter' | 'kultur'
15
16
  /** Teaser subtext */
16
- text?: string;
17
+ text?: string
17
18
  /** Top text in the teaser */
18
- vignette?: string;
19
+ vignette?: string
19
20
  /** Text before the heading */
20
- highlight?: string;
21
+ highlight?: string
21
22
  /** Red text before the text */
22
- sticker?: string;
23
+ sticker?: string
23
24
  /** Main image or other media */
24
- media?: ComponentChild;
25
+ media?: ComponentChild
25
26
  /** Flag so we can handle square teaser images */
26
27
  isSquareImage?: boolean
27
28
  /** Image of the author */
28
- bylinePicture?: ComponentChild;
29
+ bylinePicture?: ComponentChild
29
30
  /** If the headline should be italic */
30
- isItalicHeadline?: boolean;
31
+ isItalicHeadline?: boolean
31
32
  /** If the headline should be large (only if `isItalicHeadline` is true) */
32
- isLargeHeadline?: boolean;
33
+ isLargeHeadline?: boolean
33
34
  /** If there should be a flashing ball before the text */
34
- isFlashingDot?: boolean;
35
+ isFlashingDot?: boolean
35
36
  /** Publication time text */
36
- publicationTime?: string;
37
+ publicationTime?: string
37
38
  /** Duration of podcast */
38
- duration?: string;
39
+ duration?: string
39
40
  /** Byline aspect ratio */
40
- bylineAspectRatio?: string;
41
+ bylineAspectRatio?: string
41
42
  /** Byline HTML */
42
- bylineHtml?: string;
43
+ bylineHtml?: string
43
44
  /** Shows in teaser footer */
44
- sectionName?: string;
45
+ sectionName?: string
45
46
  }
46
-
@@ -1,7 +1,7 @@
1
1
  ArticleBodyImage
2
2
  ================
3
3
 
4
- * GitHub: [BonnierNews/dn-design-system/../web/src/components/article-body-image](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/article-body-image)
4
+ * GitHub: [BonnierNews/dn-design-system/web/src/components/article-body-image](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/article-body-image)
5
5
  * Storybook: [ArticleBodyImage](https://designsystem.dn.se/?path=/docs/article-articlebodyimage--docs)
6
6
 
7
7
  The component will not include styling by itself. Make sure to include the right styles for the component. See example below: `@use '@bonniernews/dn-design-system-web/components/article-body-image/article-body-image.scss'`
@@ -1,7 +1,7 @@
1
1
  ArticleTopImage
2
2
  ===============
3
3
 
4
- * GitHub: [BonnierNews/dn-design-system/../web/src/components/article-top-image](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/article-top-image)
4
+ * GitHub: [BonnierNews/dn-design-system/web/src/components/article-top-image](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/article-top-image)
5
5
  * Storybook: [ArticleTopImage](https://designsystem.dn.se/?path=/docs/article-articletopimage--docs)
6
6
 
7
7
  The component will not include styling by itself. Make sure to include the right styles for the component. See example below: `@use '@bonniernews/dn-design-system-web/components/article-top-image/article-top-image.scss'`
@@ -1,7 +1,7 @@
1
1
  BlockedContent
2
2
  ==============
3
3
 
4
- * GitHub: [BonnierNews/dn-design-system/../web/src/components/blocked-content](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/blocked-content)
4
+ * GitHub: [BonnierNews/dn-design-system/web/src/components/blocked-content](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/blocked-content)
5
5
  * Storybook: [BlockedContent](https://designsystem.dn.se/?path=/docs/article-blockedcontent--docs)
6
6
 
7
7
  The component will not include styling by itself. Make sure to include the right styles for the component. See example below: `@use '@bonniernews/dn-design-system-web/components/blocked-content/blocked-content.scss'`
@@ -1,19 +1,16 @@
1
- export {
2
- dsBlockedContent,
3
- dsBlockedContentStory
4
- };
1
+ export { dsBlockedContent, dsBlockedContentStory };
5
2
 
6
3
  function dsBlockedContent(params) {
7
4
  params = params || {};
8
5
 
9
- const blockedContentTmpl = document.createElement("div");
6
+ const blockedContentTmpl = document.createElement('div');
10
7
  // NOTE: this should match output of blocked-content.njk and blocked-content.tsx
11
8
  blockedContentTmpl.innerHTML = `
12
9
  <div class="ds-blocked-content">
13
10
  <div class="ds-blocked-content__inner">
14
11
  <div class="ds-blocked-content__content">
15
12
  <h2 class="ds-blocked-content__title">Hoppsan, här saknas något</h2>
16
- <div class="ds-blocked-content__body">Innehållet ${ params.vendor ? `från ${params.vendor}` : '' } kunde inte visas på grund av dina val i kakinställningarna.</div>
13
+ <div class="ds-blocked-content__body">Innehållet ${params.vendor ? `från ${params.vendor}` : ''} kunde inte visas på grund av dina val i kakinställningarna.</div>
17
14
  </div>
18
15
  <button type="button" class="ds-btn ds-btn--secondaryFilled ds-btn--default ds-btn--md ds-btn--full-width">
19
16
  <div class="ds-btn__inner">
@@ -27,12 +24,12 @@ function dsBlockedContent(params) {
27
24
  </div>
28
25
  `;
29
26
 
30
- const newBlockedContent = blockedContentTmpl.getElementsByClassName("ds-blocked-content")[0];
31
- const btnEl = newBlockedContent.getElementsByClassName("ds-btn")[0];
32
- const bodyEl = newBlockedContent.getElementsByClassName("ds-blocked-content__body")[0];
27
+ const newBlockedContent = blockedContentTmpl.getElementsByClassName('ds-blocked-content')[0];
28
+ const btnEl = newBlockedContent.getElementsByClassName('ds-btn')[0];
29
+ const bodyEl = newBlockedContent.getElementsByClassName('ds-blocked-content__body')[0];
33
30
 
34
31
  if (params.title) {
35
- const titleEl = newBlockedContent.getElementsByClassName("ds-blocked-content__title")[0];
32
+ const titleEl = newBlockedContent.getElementsByClassName('ds-blocked-content__title')[0];
36
33
  titleEl.textContent = params.title;
37
34
  }
38
35
 
@@ -41,15 +38,15 @@ function dsBlockedContent(params) {
41
38
  }
42
39
 
43
40
  if (params.link) {
44
- const linkContainerEl = document.createElement("div");
45
- const linkEl = document.createElement("a");
41
+ const linkContainerEl = document.createElement('div');
42
+ const linkEl = document.createElement('a');
46
43
  linkEl.href = params.link;
47
44
  linkEl.innerText = params.link;
48
- linkEl.className = "ds-blocked-content__link";
45
+ linkEl.className = 'ds-blocked-content__link';
49
46
  if (params.vendor) {
50
- linkEl.setAttribute("aria-label", `Länk till innehåll på ${params.vendor}`);
47
+ linkEl.setAttribute('aria-label', `Länk till innehåll på ${params.vendor}`);
51
48
  }
52
- linkContainerEl.appendChild(linkEl)
49
+ linkContainerEl.appendChild(linkEl);
53
50
  bodyEl.appendChild(linkContainerEl);
54
51
  }
55
52
 
@@ -58,8 +55,8 @@ function dsBlockedContent(params) {
58
55
  }
59
56
 
60
57
  if (params.forcePx) {
61
- newBlockedContent.classList.add("ds-force-px");
62
- btnEl.classList.add("ds-force-px");
58
+ newBlockedContent.classList.add('ds-force-px');
59
+ btnEl.classList.add('ds-force-px');
63
60
  }
64
61
 
65
62
  if (params.attributes) {
@@ -79,11 +76,11 @@ function dsBlockedContent(params) {
79
76
 
80
77
  /** only use in storybook */
81
78
  function dsBlockedContentStory() {
82
- const blockedContentElements = Array.from(document.getElementsByClassName("js-ds-blocked-content-story"));
79
+ const blockedContentElements = Array.from(document.getElementsByClassName('js-ds-blocked-content-story'));
83
80
  if (!blockedContentElements.length) return;
84
81
 
85
82
  blockedContentElements.forEach((blockedContentEl) => {
86
- const params = JSON.parse(blockedContentEl.getAttribute("data-params"));
83
+ const params = JSON.parse(blockedContentEl.getAttribute('data-params'));
87
84
 
88
85
  const newBlockedContent = dsBlockedContent(params);
89
86
  blockedContentEl.replaceWith(newBlockedContent);
@@ -1,7 +1,7 @@
1
1
  BuddyMenu
2
2
  =========
3
3
 
4
- * GitHub: [BonnierNews/dn-design-system/../web/src/components/buddy-menu](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/buddy-menu)
4
+ * GitHub: [BonnierNews/dn-design-system/web/src/components/buddy-menu](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/buddy-menu)
5
5
  * Storybook: [BuddyMenu](https://designsystem.dn.se/?path=/docs/page-buddymenu--docs)
6
6
 
7
7
  The component will not include styling by itself. Make sure to include the right styles for the component. See example below: `@use "@bonniernews/dn-design-system-web/components/buddy-menu/buddy-menu" as *;`
@@ -1,11 +1,10 @@
1
1
  Button
2
2
  ======
3
3
 
4
- * GitHub: [BonnierNews/dn-design-system/../web/src/components/button](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/button)
4
+ * GitHub: [BonnierNews/dn-design-system/web/src/components/button](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/button)
5
5
  * Storybook: [Buttons > Button](https://designsystem.dn.se/?path=/docs/basic-buttons-button--docs)
6
-
7
- The component will not include styling by itself. Make sure to include the right styles for the component. See example below: `@use '@bonniernews/dn-design-system-web/components/button/button.scss'`
8
-
6
+
7
+ The component will not include styling by itself. Make sure to include the right styles for the component. See example below: `@use '@bonniernews/dn-design-system-web/components/button/button.scss'`
9
8
 
10
9
  | Name | Description | Default |
11
10
  |:--- | :--- | :--- |
@@ -1,25 +1,22 @@
1
- export {
2
- dsButtonToggle,
3
- dsButtonToggleAll
4
- };
1
+ export { dsButtonToggle, dsButtonToggleAll };
5
2
 
6
3
  function dsButtonToggle(toggleElements = []) {
7
4
  if (!toggleElements.length) return;
8
5
  toggleElements.forEach((toggleEl) => {
9
- toggleEl.addEventListener("click", () => {
10
- if (toggleEl.classList.contains("ds-btn--disabled")) return;
11
- const selectedText = toggleEl.querySelector(".ds-btn__on").textContent;
12
- const unselectedText = toggleEl.querySelector(".ds-btn__off").textContent;
13
- toggleEl.classList.toggle("ds-btn--selected");
14
- const ariaChecked = toggleEl.getAttribute("aria-checked") === "true" ? "false" : "true";
15
- const ariaLabel = toggleEl.getAttribute("aria-label") === selectedText ? unselectedText : selectedText;
16
- toggleEl.setAttribute("aria-checked", ariaChecked);
17
- toggleEl.setAttribute("aria-label", ariaLabel);
6
+ toggleEl.addEventListener('click', () => {
7
+ if (toggleEl.classList.contains('ds-btn--disabled')) return;
8
+ const selectedText = toggleEl.querySelector('.ds-btn__on').textContent;
9
+ const unselectedText = toggleEl.querySelector('.ds-btn__off').textContent;
10
+ toggleEl.classList.toggle('ds-btn--selected');
11
+ const ariaChecked = toggleEl.getAttribute('aria-checked') === 'true' ? 'false' : 'true';
12
+ const ariaLabel = toggleEl.getAttribute('aria-label') === selectedText ? unselectedText : selectedText;
13
+ toggleEl.setAttribute('aria-checked', ariaChecked);
14
+ toggleEl.setAttribute('aria-label', ariaLabel);
18
15
  });
19
16
  });
20
17
  }
21
18
 
22
19
  function dsButtonToggleAll() {
23
- const toggleElements = Array.from(document.getElementsByClassName("ds-btn--toggle"));
20
+ const toggleElements = Array.from(document.getElementsByClassName('ds-btn--toggle'));
24
21
  dsButtonToggle(toggleElements);
25
22
  }
@@ -16,7 +16,7 @@ export interface ButtonSharedProps {
16
16
  /** Fixed pixel value is used for typography to prevent scaling based on html font-size */
17
17
  forcePx?: boolean
18
18
  size?: 'sm' | 'md' | 'lg' | 'xl'
19
- loading?: boolean,
19
+ loading?: boolean
20
20
  isIconButton?: boolean
21
21
  }
22
22
 
@@ -57,57 +57,50 @@ export interface ToggleWrapperProps {
57
57
 
58
58
  export interface ButtonStandardProps
59
59
  extends ButtonSharedProps,
60
- Pick<
61
- ButtonBaseProps,
62
- 'iconPosition' | 'type' | 'href' | 'mobileFullWidth'
63
- > {
64
- text: string
65
- }
60
+ Pick<ButtonBaseProps, 'iconPosition' | 'type' | 'href' | 'mobileFullWidth'> {
61
+ text: string
62
+ }
66
63
 
67
- export interface ButtonIconProps
64
+ export interface ButtonIconProps
68
65
  extends ButtonSharedProps,
69
- Pick<
70
- ButtonBaseProps,
71
- 'iconPosition' | 'type' | 'href' | 'mobileFullWidth'> {
72
- iconName: DsIcon
73
- }
66
+ Pick<ButtonBaseProps, 'iconPosition' | 'type' | 'href' | 'mobileFullWidth'> {
67
+ iconName: DsIcon
68
+ }
74
69
 
75
- export type ButtonProps =
76
- | ({ isIconButton: true } & ButtonIconProps)
77
- | ({ isIconButton?: false } & ButtonStandardProps)
70
+ export type ButtonProps = ({ isIconButton: true } & ButtonIconProps) | ({ isIconButton?: false } & ButtonStandardProps)
78
71
 
79
72
  export interface ButtonToggleStandardProps
80
73
  extends ButtonSharedProps,
81
- Pick<ButtonBaseProps, 'selected' | 'selectedText' | 'selectedIconName' | 'mobileFullWidth' > {
82
- selectedText: string
83
- }
74
+ Pick<ButtonBaseProps, 'selected' | 'selectedText' | 'selectedIconName' | 'mobileFullWidth'> {
75
+ selectedText: string
76
+ }
84
77
 
85
78
  export interface ButtonToggleIconProps
86
- extends ButtonSharedProps,
87
- Pick<ButtonBaseProps, 'selected' | 'selectedText' | 'mobileFullWidth' > {
88
- iconName: DsIcon
89
- selectedIconName: DsIcon
90
- }
79
+ extends ButtonSharedProps,
80
+ Pick<ButtonBaseProps, 'selected' | 'selectedText' | 'mobileFullWidth'> {
81
+ iconName: DsIcon
82
+ selectedIconName: DsIcon
83
+ }
91
84
 
92
- export type ButtonToggleProps =
93
- | ({ isIconButton?: false } & ButtonToggleStandardProps)
94
- | ({ isIconButton: true } & ButtonToggleIconProps)
85
+ export type ButtonToggleProps =
86
+ | ({ isIconButton?: false } & ButtonToggleStandardProps)
87
+ | ({ isIconButton: true } & ButtonToggleIconProps)
95
88
 
96
89
  export interface TextButtonProps {
97
- text: string;
98
- type?: 'button' | 'submit';
90
+ text: string
91
+ type?: 'button' | 'submit'
99
92
  /** If href is set the button will be rendered as an a-tag */
100
- href?: string;
101
- disabled?: boolean;
93
+ href?: string
94
+ disabled?: boolean
102
95
  fullWidth?: boolean
103
96
  /** Button will only full width on mobile */
104
97
  mobileFullWidth?: boolean
105
98
  /** add, arrow_back, arrow_forward etc | | For all available icons see: https://designsystem.dn.se/?path=/story/foundations-icons--all-icons */
106
- iconName?: DsIcon;
107
- iconPosition?: 'none' | 'left' | 'right';
108
- hideTextOnMobile?: boolean;
109
- size?: 'sm' | 'lg';
110
- loading?: boolean,
99
+ iconName?: DsIcon
100
+ iconPosition?: 'none' | 'left' | 'right'
101
+ hideTextOnMobile?: boolean
102
+ size?: 'sm' | 'lg'
103
+ loading?: boolean
111
104
  forcePx?: boolean
112
105
  classNames?: string
113
106
  /** Ex. { target: "_blank", "data-test": "lorem ipsum" } */
@@ -1,7 +1,7 @@
1
1
  ButtonToggle
2
2
  ============
3
3
 
4
- * GitHub: [BonnierNews/dn-design-system/../web/src/components/button-toggle](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/button-toggle)
4
+ * GitHub: [BonnierNews/dn-design-system/web/src/components/button-toggle](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/button-toggle)
5
5
  * Storybook: [Buttons > ButtonToggle](https://designsystem.dn.se/?path=/docs/basic-buttons-buttontoggle--docs)
6
6
 
7
7
  ### [](#javascript)Javascript
@@ -1,7 +1,7 @@
1
1
  Byline
2
2
  ======
3
3
 
4
- * GitHub: [BonnierNews/dn-design-system/../web/src/components/byline](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/byline)
4
+ * GitHub: [BonnierNews/dn-design-system/web/src/components/byline](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/byline)
5
5
  * Storybook: [Byline](https://designsystem.dn.se/?path=/docs/article-byline--docs)
6
6
 
7
7
  The component will not include styling by itself. Make sure to include the right styles for the component. See example below: `@use '@bonniernews/dn-design-system-web/components/byline/byline.scss'`
@@ -1,14 +1,14 @@
1
- import { initModal, openModal } from '@bonniernews/dn-design-system-web/components/modal/modal.js'
1
+ import { initModal, openModal } from '@bonniernews/dn-design-system-web/components/modal/modal.js';
2
2
 
3
3
  export function initModalByline(article) {
4
- const modalEl = article.querySelector(".ds-modal--byline");
4
+ const modalEl = article.querySelector('.ds-modal--byline');
5
5
  if (!modalEl) return;
6
6
  initModal(modalEl);
7
7
 
8
- const bylines = article.getElementsByClassName("ds-byline");
8
+ const bylines = article.getElementsByClassName('ds-byline');
9
9
  for (const byline of bylines) {
10
- byline.addEventListener("click", (e) => {
10
+ byline.addEventListener('click', (e) => {
11
11
  openModal(modalEl);
12
12
  });
13
- };
13
+ }
14
14
  }
@@ -1,7 +1,7 @@
1
1
  BylineList
2
2
  ==========
3
3
 
4
- * GitHub: [BonnierNews/dn-design-system/../web/src/components/byline-list](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/byline-list)
4
+ * GitHub: [BonnierNews/dn-design-system/web/src/components/byline-list](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/byline-list)
5
5
  * Storybook: [Byline-list](https://designsystem.dn.se/?path=/docs/article-byline-list--docs)
6
6
 
7
7
  BylineList is a component that renders a list of bylines with optional media and titles. It is used for the sheet that displays if we click a byline with more than one author.
@@ -1,14 +1,11 @@
1
1
  import { dsButtonToggle } from '@bonniernews/dn-design-system-web/components/button/button-interactions.js';
2
2
 
3
- export {
4
- dsBylineList,
5
- dsBylineListAll
6
- };
3
+ export { dsBylineList, dsBylineListAll };
7
4
 
8
5
  function dsBylineList(listElements = []) {
9
6
  if (!listElements.length) return;
10
7
  listElements.forEach((listEl) => {
11
- const toggleElements = Array.from(listEl.getElementsByClassName("ds-btn--toggle"));
8
+ const toggleElements = Array.from(listEl.getElementsByClassName('ds-btn--toggle'));
12
9
  dsButtonToggle(toggleElements);
13
10
  if (listEl.classList.contains('ds-btn--toggle')) {
14
11
  dsButtonToggle(listEl);
@@ -17,6 +14,6 @@ function dsBylineList(listElements = []) {
17
14
  }
18
15
 
19
16
  function dsBylineListAll() {
20
- const listElements = Array.from(document.getElementsByClassName("ds-byline-list__item__content"));
17
+ const listElements = Array.from(document.getElementsByClassName('ds-byline-list__item__content'));
21
18
  dsBylineList(listElements);
22
19
  }
@@ -1,7 +1,7 @@
1
1
  Checkbox
2
2
  ========
3
3
 
4
- * GitHub: [BonnierNews/dn-design-system/../web/src/components/checkbox](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/checkbox)
4
+ * GitHub: [BonnierNews/dn-design-system/web/src/components/checkbox](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/checkbox)
5
5
  * Storybook: [Checkbox](https://designsystem.dn.se/?path=/docs/basic-form-checkbox--docs)
6
6
 
7
7
  The component will not include styling by itself. Make sure to include the right styles for the component. See example below: `@use '@bonniernews/dn-design-system-web/components/checkbox/checkbox.scss`
@@ -1,7 +1,7 @@
1
1
  DirektCircle
2
2
  ============
3
3
 
4
- * GitHub: [BonnierNews/dn-design-system/../web/src/components/direkt-circle](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/direkt-circle)
4
+ * GitHub: [BonnierNews/dn-design-system/web/src/components/direkt-circle](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/direkt-circle)
5
5
  * Storybook: [DirektCircle](https://designsystem.dn.se/?path=/docs/section-subcomponents-direktcircle--docs)
6
6
  * The component will not include styling by itself. Make sure to include the right styles for the component. See example below: `@use '@bonniernews/dn-design-system-web/components/direkt-circle/direkt-circle.scss'`
7
7
 
@@ -1,7 +1,7 @@
1
1
  DirektHeader
2
2
  ============
3
3
 
4
- * GitHub: [BonnierNews/dn-design-system/../web/src/components/teaser-onsite](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/direkt-header)
4
+ * GitHub: [BonnierNews/dn-design-system/web/src/components/teaser-onsite](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/direkt-header)
5
5
  * Storybook: [DirektHeader](https://designsystem.dn.se/?path=/docs/section-direkt-header--docs)
6
6
 
7
7
  The component will not include styling by itself. Make sure to include the right styles for the component. See example below: `@use '@bonniernews/dn-design-system-web/components/direkt-header/direkt-header.scss'`
@@ -1,7 +1,7 @@
1
1
  Disclaimer
2
2
  ==========
3
3
 
4
- * GitHub: [BonnierNews/dn-design-system/../web/src/components/disclaimer](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/disclaimer)
4
+ * GitHub: [BonnierNews/dn-design-system/web/src/components/disclaimer](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/disclaimer)
5
5
  * Storybook: [Disclaimer](https://designsystem.dn.se/?path=/docs/basic-disclaimer--docs)
6
6
 
7
7
  The component will not include styling by itself. Make sure to include the right styles for the component. See example below: `@use '@bonniernews/dn-design-system-web/components/disclaimer/disclaimer.scss'`
@@ -1,7 +1,7 @@
1
1
  Divider
2
2
  =======
3
3
 
4
- * GitHub: [BonnierNews/dn-design-system/../web/src/components/divider](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/divider)
4
+ * GitHub: [BonnierNews/dn-design-system/web/src/components/divider](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/divider)
5
5
  * Storybook: [Divider](https://designsystem.dn.se/?path=/docs/basic-divider--docs)
6
6
 
7
7
  The component will not include styling by itself. Make sure to include the right styles for the component. See example below: `@use '@bonniernews/dn-design-system-web/components/divider/divider.scss'`
@@ -1,7 +1,7 @@
1
1
  EmptyState
2
2
  ==========
3
3
 
4
- * GitHub: [BonnierNews/dn-design-system/../web/src/commponents/empty-state](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/empty-state)
4
+ * GitHub: [BonnierNews/dn-design-system/web/src/commponents/empty-state](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/empty-state)
5
5
  * Storybook: [EmptyState](https://designsystem.dn.se/?path=/docs/basic-emptystate--docs)
6
6
 
7
7
  The component will not include styling by itself. Make sure to include the right styles for the component. See example below: `@use '@bonniernews/dn-design-system-web/components/empty-state/empty-state.scss'`
@@ -0,0 +1,35 @@
1
+ Factbox
2
+ =======
3
+
4
+ * GitHub: [BonnierNews/dn-design-system/web/src/components/factbox](https://github.com/BonnierNews/dn-design-system/tree/main/web/src/components/factbox)
5
+ * Storybook: [Factbox](https://designsystem.dn.se/?path=/docs/basic-factbox--docs)
6
+
7
+ The component will not include styling by itself. Make sure to include the right styles for the component. See example below: `@use '@bonniernews/dn-design-system-web/components/factbox/factbox.scss'`
8
+
9
+ | Name | Description | Default |
10
+ |:--- | :--- | :--- |
11
+ | title | string | \- |
12
+ | titleHighlight | string | \- |
13
+ | titleImage | ComponentChild | \- |
14
+ | bodyParts\* | BodyPart\[\] | \- |
15
+ | theme | "nyheter", "kultur", "default" | \- |
16
+ | forceExpand | boolean | false |
17
+ | classNames | Ex. "my-special-class"<br />string | \- |
18
+ | attributes | Ex. { target: "\_blank", "data-test": "lorem ipsum" }<br />Record<string, unknown> | \- |
19
+
20
+ ```jsx
21
+ <Factbox
22
+ bodyParts={[
23
+ {
24
+ bodyHtml: '<p>• Minska andelen kött, och framför allt nötkött, i kosten. Nötkött, men även mejeriprodukter som ost, mjölk och smör, bidrar till stora utsläpp när de produceras. Testa att äta mer plantbaserad kost, eller byt ut nötköttet mot kyckling.</p>',
25
+ type: 'paragraph'
26
+ },
27
+ {
28
+ bodyHtml: '<p>• Handla efter säsong. Sockerärtor som är flygfraktade över halva jordklotet ger en stor klimatpåverkan, samma sak med andra färska grönsaker som kräver flygfrakt i stället för båtfrakt. Naturskyddsföreningen har på sin hemsida <a href="https://www.naturskyddsforeningen.se/nyheter/valj-bland-sasongens-godsaker">en lista</a> över när svenska och europeiska frukt- och grönsaker är i säsong.</p>',
29
+ type: 'paragraph'
30
+ }
31
+ ]}
32
+ title="Livsmedel du kan byta ut för att minska ditt klimatavtryck"
33
+ titleHighlight="Tips."
34
+ />
35
+ ```
@@ -1,9 +1,6 @@
1
- export {
2
- dsFactbox,
3
- dsFactboxAll
4
- };
1
+ export { dsFactbox, dsFactboxAll };
5
2
 
6
- const selector = "ds-factbox";
3
+ const selector = 'ds-factbox';
7
4
  const expandedClass = `${selector}--expanded`;
8
5
  const maxHeight = 468; // this has to match max-height in factbox.scss exluding top/bottom spacing
9
6
 
@@ -24,14 +21,14 @@ function dsFactbox(factboxElements) {
24
21
  const expandMoreBtn = factboxEl.getElementsByClassName(`${selector}__expand-more`)[0];
25
22
  const expandLessBtn = factboxEl.getElementsByClassName(`${selector}__expand-less`)[0];
26
23
 
27
- expandMoreBtn.addEventListener("click", () => {
24
+ expandMoreBtn.addEventListener('click', () => {
28
25
  factboxEl.classList.add(expandedClass);
29
- showMoreEl.setAttribute("data-factbox-expanded", "");
26
+ showMoreEl.setAttribute('data-factbox-expanded', '');
30
27
  });
31
28
 
32
- expandLessBtn.addEventListener("click", () => {
29
+ expandLessBtn.addEventListener('click', () => {
33
30
  factboxEl.classList.remove(expandedClass);
34
- showMoreEl.removeAttribute("data-factbox-expanded");
31
+ showMoreEl.removeAttribute('data-factbox-expanded');
35
32
  });
36
33
  });
37
34
  }