@ndla/ui 56.0.123-alpha.0 → 56.0.124-alpha.0

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 (347) hide show
  1. package/es/Article/Article.js +122 -194
  2. package/es/Article/Article.js.map +1 -0
  3. package/es/Article/ArticleByline.js +121 -170
  4. package/es/Article/ArticleByline.js.map +1 -0
  5. package/es/Article/ArticleFootNotes.js +38 -58
  6. package/es/Article/ArticleFootNotes.js.map +1 -0
  7. package/es/AudioPlayer/AudioPlayer.js +151 -212
  8. package/es/AudioPlayer/AudioPlayer.js.map +1 -0
  9. package/es/AudioPlayer/Controls.js +246 -324
  10. package/es/AudioPlayer/Controls.js.map +1 -0
  11. package/es/AudioPlayer/SpeechControl.js +36 -52
  12. package/es/AudioPlayer/SpeechControl.js.map +1 -0
  13. package/es/AudioPlayer/index.js +7 -9
  14. package/es/AudioPlayer/index.js.map +1 -0
  15. package/es/Breadcrumb/Breadcrumb.js +42 -58
  16. package/es/Breadcrumb/Breadcrumb.js.map +1 -0
  17. package/es/Breadcrumb/BreadcrumbItem.js +33 -59
  18. package/es/Breadcrumb/BreadcrumbItem.js.map +1 -0
  19. package/es/Breadcrumb/HomeBreadcrumb.js +41 -74
  20. package/es/Breadcrumb/HomeBreadcrumb.js.map +1 -0
  21. package/es/Breadcrumb/index.js +8 -10
  22. package/es/Breadcrumb/index.js.map +1 -0
  23. package/es/CampaignBlock/CampaignBlock.js +124 -173
  24. package/es/CampaignBlock/CampaignBlock.js.map +1 -0
  25. package/es/CodeBlock/CodeBlock.js +21 -31
  26. package/es/CodeBlock/CodeBlock.js.map +1 -0
  27. package/es/CodeBlock/codeLanguageOptions.js +112 -82
  28. package/es/CodeBlock/codeLanguageOptions.js.map +1 -0
  29. package/es/Concept/Concept.js +46 -68
  30. package/es/Concept/Concept.js.map +1 -0
  31. package/es/ContactBlock/ContactBlock.js +137 -191
  32. package/es/ContactBlock/ContactBlock.js.map +1 -0
  33. package/es/ContentTypeBadge/ContentTypeBadge.js +38 -47
  34. package/es/ContentTypeBadge/ContentTypeBadge.js.map +1 -0
  35. package/es/ContentTypeBlockQuote/ContentTypeBlockQuote.js +21 -28
  36. package/es/ContentTypeBlockQuote/ContentTypeBlockQuote.js.map +1 -0
  37. package/es/ContentTypeFramedContent/ContentTypeFramedContent.js +21 -28
  38. package/es/ContentTypeFramedContent/ContentTypeFramedContent.js.map +1 -0
  39. package/es/ContentTypeHero/ContentTypeHero.js +36 -47
  40. package/es/ContentTypeHero/ContentTypeHero.js.map +1 -0
  41. package/es/CopyParagraphButton/CopyParagraphButton.js +57 -78
  42. package/es/CopyParagraphButton/CopyParagraphButton.js.map +1 -0
  43. package/es/CopyParagraphButton/index.js +7 -10
  44. package/es/CopyParagraphButton/index.js.map +1 -0
  45. package/es/Embed/AudioEmbed.js +49 -73
  46. package/es/Embed/AudioEmbed.js.map +1 -0
  47. package/es/Embed/BrightcoveEmbed.js +90 -127
  48. package/es/Embed/BrightcoveEmbed.js.map +1 -0
  49. package/es/Embed/CodeEmbed.js +55 -73
  50. package/es/Embed/CodeEmbed.js.map +1 -0
  51. package/es/Embed/ConceptEmbed.js +72 -117
  52. package/es/Embed/ConceptEmbed.js.map +1 -0
  53. package/es/Embed/ConceptInlineTriggerButton.js +39 -44
  54. package/es/Embed/ConceptInlineTriggerButton.js.map +1 -0
  55. package/es/Embed/ContentLinkEmbed.js +29 -49
  56. package/es/Embed/ContentLinkEmbed.js.map +1 -0
  57. package/es/Embed/CopyrightEmbed.js +21 -31
  58. package/es/Embed/CopyrightEmbed.js.map +1 -0
  59. package/es/Embed/EmbedErrorPlaceholder.js +40 -55
  60. package/es/Embed/EmbedErrorPlaceholder.js.map +1 -0
  61. package/es/Embed/EmbedWrapper.js +21 -46
  62. package/es/Embed/EmbedWrapper.js.map +1 -0
  63. package/es/Embed/ExternalEmbed.js +50 -70
  64. package/es/Embed/ExternalEmbed.js.map +1 -0
  65. package/es/Embed/FootnoteEmbed.js +25 -42
  66. package/es/Embed/FootnoteEmbed.js.map +1 -0
  67. package/es/Embed/GlossEmbed.js +49 -77
  68. package/es/Embed/GlossEmbed.js.map +1 -0
  69. package/es/Embed/H5pEmbed.js +35 -58
  70. package/es/Embed/H5pEmbed.js.map +1 -0
  71. package/es/Embed/IframeEmbed.js +65 -89
  72. package/es/Embed/IframeEmbed.js.map +1 -0
  73. package/es/Embed/ImageEmbed.js +167 -225
  74. package/es/Embed/ImageEmbed.js.map +1 -0
  75. package/es/Embed/InlineTriggerButton.js +20 -32
  76. package/es/Embed/InlineTriggerButton.js.map +1 -0
  77. package/es/Embed/RelatedContentEmbed.js +36 -53
  78. package/es/Embed/RelatedContentEmbed.js.map +1 -0
  79. package/es/Embed/UnknownEmbed.js +18 -29
  80. package/es/Embed/UnknownEmbed.js.map +1 -0
  81. package/es/Embed/UuDisclaimerEmbed.js +51 -85
  82. package/es/Embed/UuDisclaimerEmbed.js.map +1 -0
  83. package/es/ErrorMessage/ErrorMessage.js +51 -92
  84. package/es/ErrorMessage/ErrorMessage.js.map +1 -0
  85. package/es/ErrorMessage/index.js +7 -9
  86. package/es/ErrorMessage/index.js.map +1 -0
  87. package/es/FactBox/FactBox.js +114 -170
  88. package/es/FactBox/FactBox.js.map +1 -0
  89. package/es/FactBox/index.js +7 -9
  90. package/es/FactBox/index.js.map +1 -0
  91. package/es/FileList/File.js +70 -95
  92. package/es/FileList/File.js.map +1 -0
  93. package/es/FileList/FileList.js +31 -46
  94. package/es/FileList/FileList.js.map +1 -0
  95. package/es/FileList/PdfFile.js +27 -49
  96. package/es/FileList/PdfFile.js.map +1 -0
  97. package/es/Gloss/Gloss.js +133 -166
  98. package/es/Gloss/Gloss.js.map +1 -0
  99. package/es/Gloss/GlossExample.js +42 -60
  100. package/es/Gloss/GlossExample.js.map +1 -0
  101. package/es/Grid/Grid.js +63 -91
  102. package/es/Grid/Grid.js.map +1 -0
  103. package/es/Grid/GridParallaxItem.js +19 -30
  104. package/es/Grid/GridParallaxItem.js.map +1 -0
  105. package/es/KeyFigure/KeyFigure.js +44 -61
  106. package/es/KeyFigure/KeyFigure.js.map +1 -0
  107. package/es/LicenseByline/EmbedByline.js +126 -206
  108. package/es/LicenseByline/EmbedByline.js.map +1 -0
  109. package/es/LicenseByline/LicenseLink.js +28 -53
  110. package/es/LicenseByline/LicenseLink.js.map +1 -0
  111. package/es/LinkBlock/LinkBlock.js +70 -99
  112. package/es/LinkBlock/LinkBlock.js.map +1 -0
  113. package/es/LinkBlock/LinkBlockSection.js +20 -32
  114. package/es/LinkBlock/LinkBlockSection.js.map +1 -0
  115. package/es/Pitch/Pitch.js +59 -80
  116. package/es/Pitch/Pitch.js.map +1 -0
  117. package/es/RelatedArticleList/RelatedArticleList.js +91 -129
  118. package/es/RelatedArticleList/RelatedArticleList.js.map +1 -0
  119. package/es/RelatedArticleList/index.js +7 -10
  120. package/es/RelatedArticleList/index.js.map +1 -0
  121. package/es/ResourceBox/ResourceBox.js +71 -96
  122. package/es/ResourceBox/ResourceBox.js.map +1 -0
  123. package/es/TagSelector/TagSelector.js +93 -136
  124. package/es/TagSelector/TagSelector.js.map +1 -0
  125. package/es/ZendeskButton/ZendeskButton.js +38 -52
  126. package/es/ZendeskButton/ZendeskButton.js.map +1 -0
  127. package/es/_virtual/rolldown_runtime.js +11 -0
  128. package/es/i18n/formatNestedMessages.js +16 -24
  129. package/es/i18n/formatNestedMessages.js.map +1 -0
  130. package/es/i18n/i18n.js +25 -31
  131. package/es/i18n/i18n.js.map +1 -0
  132. package/es/i18n/useComponentTranslations.js +147 -203
  133. package/es/i18n/useComponentTranslations.js.map +1 -0
  134. package/es/index.js +64 -44
  135. package/es/locale/messages-en.js +435 -459
  136. package/es/locale/messages-en.js.map +1 -0
  137. package/es/locale/messages-nb.js +435 -459
  138. package/es/locale/messages-nb.js.map +1 -0
  139. package/es/locale/messages-nn.js +435 -459
  140. package/es/locale/messages-nn.js.map +1 -0
  141. package/es/locale/messages-se.js +435 -459
  142. package/es/locale/messages-se.js.map +1 -0
  143. package/es/model/ContentType.js +69 -65
  144. package/es/model/ContentType.js.map +1 -0
  145. package/es/model/SubjectCategories.js +23 -10
  146. package/es/model/SubjectCategories.js.map +1 -0
  147. package/es/model/SubjectTypes.js +21 -9
  148. package/es/model/SubjectTypes.js.map +1 -0
  149. package/es/model/WordClass.js +51 -43
  150. package/es/model/WordClass.js.map +1 -0
  151. package/es/model/index.js +16 -18
  152. package/es/model/index.js.map +1 -0
  153. package/es/utils/licenseAttributes.js +15 -17
  154. package/es/utils/licenseAttributes.js.map +1 -0
  155. package/es/utils/relativeUrl.js +21 -32
  156. package/es/utils/relativeUrl.js.map +1 -0
  157. package/lib/Article/Article.js +130 -203
  158. package/lib/Article/Article.js.map +1 -0
  159. package/lib/Article/ArticleByline.js +125 -179
  160. package/lib/Article/ArticleByline.js.map +1 -0
  161. package/lib/Article/ArticleFootNotes.js +39 -65
  162. package/lib/Article/ArticleFootNotes.js.map +1 -0
  163. package/lib/AudioPlayer/AudioPlayer.js +155 -221
  164. package/lib/AudioPlayer/AudioPlayer.js.map +1 -0
  165. package/lib/AudioPlayer/Controls.js +249 -332
  166. package/lib/AudioPlayer/Controls.js.map +1 -0
  167. package/lib/AudioPlayer/SpeechControl.js +39 -60
  168. package/lib/AudioPlayer/SpeechControl.js.map +1 -0
  169. package/lib/AudioPlayer/index.js +7 -15
  170. package/lib/AudioPlayer/index.js.map +1 -0
  171. package/lib/Breadcrumb/Breadcrumb.js +43 -65
  172. package/lib/Breadcrumb/Breadcrumb.js.map +1 -0
  173. package/lib/Breadcrumb/BreadcrumbItem.js +34 -65
  174. package/lib/Breadcrumb/BreadcrumbItem.js.map +1 -0
  175. package/lib/Breadcrumb/HomeBreadcrumb.js +43 -82
  176. package/lib/Breadcrumb/HomeBreadcrumb.js.map +1 -0
  177. package/lib/Breadcrumb/index.js +8 -22
  178. package/lib/Breadcrumb/index.js.map +1 -0
  179. package/lib/CampaignBlock/CampaignBlock.js +128 -183
  180. package/lib/CampaignBlock/CampaignBlock.js.map +1 -0
  181. package/lib/CodeBlock/CodeBlock.js +23 -38
  182. package/lib/CodeBlock/CodeBlock.js.map +1 -0
  183. package/lib/CodeBlock/codeLanguageOptions.js +112 -87
  184. package/lib/CodeBlock/codeLanguageOptions.js.map +1 -0
  185. package/lib/Concept/Concept.js +48 -75
  186. package/lib/Concept/Concept.js.map +1 -0
  187. package/lib/ContactBlock/ContactBlock.js +141 -200
  188. package/lib/ContactBlock/ContactBlock.js.map +1 -0
  189. package/lib/ContentTypeBadge/ContentTypeBadge.js +40 -54
  190. package/lib/ContentTypeBadge/ContentTypeBadge.js.map +1 -0
  191. package/lib/ContentTypeBlockQuote/ContentTypeBlockQuote.js +23 -35
  192. package/lib/ContentTypeBlockQuote/ContentTypeBlockQuote.js.map +1 -0
  193. package/lib/ContentTypeFramedContent/ContentTypeFramedContent.js +23 -35
  194. package/lib/ContentTypeFramedContent/ContentTypeFramedContent.js.map +1 -0
  195. package/lib/ContentTypeHero/ContentTypeHero.js +37 -54
  196. package/lib/ContentTypeHero/ContentTypeHero.js.map +1 -0
  197. package/lib/CopyParagraphButton/CopyParagraphButton.js +61 -87
  198. package/lib/CopyParagraphButton/CopyParagraphButton.js.map +1 -0
  199. package/lib/CopyParagraphButton/index.js +7 -21
  200. package/lib/CopyParagraphButton/index.js.map +1 -0
  201. package/lib/Embed/AudioEmbed.js +51 -82
  202. package/lib/Embed/AudioEmbed.js.map +1 -0
  203. package/lib/Embed/BrightcoveEmbed.js +93 -138
  204. package/lib/Embed/BrightcoveEmbed.js.map +1 -0
  205. package/lib/Embed/CodeEmbed.js +59 -83
  206. package/lib/Embed/CodeEmbed.js.map +1 -0
  207. package/lib/Embed/ConceptEmbed.js +77 -127
  208. package/lib/Embed/ConceptEmbed.js.map +1 -0
  209. package/lib/Embed/ConceptInlineTriggerButton.js +39 -49
  210. package/lib/Embed/ConceptInlineTriggerButton.js.map +1 -0
  211. package/lib/Embed/ContentLinkEmbed.js +30 -55
  212. package/lib/Embed/ContentLinkEmbed.js.map +1 -0
  213. package/lib/Embed/CopyrightEmbed.js +22 -37
  214. package/lib/Embed/CopyrightEmbed.js.map +1 -0
  215. package/lib/Embed/EmbedErrorPlaceholder.js +42 -62
  216. package/lib/Embed/EmbedErrorPlaceholder.js.map +1 -0
  217. package/lib/Embed/EmbedWrapper.js +24 -54
  218. package/lib/Embed/EmbedWrapper.js.map +1 -0
  219. package/lib/Embed/ExternalEmbed.js +53 -79
  220. package/lib/Embed/ExternalEmbed.js.map +1 -0
  221. package/lib/Embed/FootnoteEmbed.js +26 -48
  222. package/lib/Embed/FootnoteEmbed.js.map +1 -0
  223. package/lib/Embed/GlossEmbed.js +51 -86
  224. package/lib/Embed/GlossEmbed.js.map +1 -0
  225. package/lib/Embed/H5pEmbed.js +37 -66
  226. package/lib/Embed/H5pEmbed.js.map +1 -0
  227. package/lib/Embed/IframeEmbed.js +68 -98
  228. package/lib/Embed/IframeEmbed.js.map +1 -0
  229. package/lib/Embed/ImageEmbed.js +173 -238
  230. package/lib/Embed/ImageEmbed.js.map +1 -0
  231. package/lib/Embed/InlineTriggerButton.js +23 -40
  232. package/lib/Embed/InlineTriggerButton.js.map +1 -0
  233. package/lib/Embed/RelatedContentEmbed.js +37 -59
  234. package/lib/Embed/RelatedContentEmbed.js.map +1 -0
  235. package/lib/Embed/UnknownEmbed.js +19 -35
  236. package/lib/Embed/UnknownEmbed.js.map +1 -0
  237. package/lib/Embed/UuDisclaimerEmbed.js +53 -92
  238. package/lib/Embed/UuDisclaimerEmbed.js.map +1 -0
  239. package/lib/ErrorMessage/ErrorMessage.js +53 -99
  240. package/lib/ErrorMessage/ErrorMessage.js.map +1 -0
  241. package/lib/ErrorMessage/index.js +7 -15
  242. package/lib/ErrorMessage/index.js.map +1 -0
  243. package/lib/FactBox/FactBox.js +118 -180
  244. package/lib/FactBox/FactBox.js.map +1 -0
  245. package/lib/FactBox/index.js +7 -15
  246. package/lib/FactBox/index.js.map +1 -0
  247. package/lib/FileList/File.js +75 -105
  248. package/lib/FileList/File.js.map +1 -0
  249. package/lib/FileList/FileList.js +33 -52
  250. package/lib/FileList/FileList.js.map +1 -0
  251. package/lib/FileList/PdfFile.js +27 -55
  252. package/lib/FileList/PdfFile.js.map +1 -0
  253. package/lib/Gloss/Gloss.js +138 -176
  254. package/lib/Gloss/Gloss.js.map +1 -0
  255. package/lib/Gloss/GlossExample.js +45 -68
  256. package/lib/Gloss/GlossExample.js.map +1 -0
  257. package/lib/Grid/Grid.js +64 -98
  258. package/lib/Grid/Grid.js.map +1 -0
  259. package/lib/Grid/GridParallaxItem.js +19 -36
  260. package/lib/Grid/GridParallaxItem.js.map +1 -0
  261. package/lib/KeyFigure/KeyFigure.js +45 -68
  262. package/lib/KeyFigure/KeyFigure.js.map +1 -0
  263. package/lib/LicenseByline/EmbedByline.js +130 -216
  264. package/lib/LicenseByline/EmbedByline.js.map +1 -0
  265. package/lib/LicenseByline/LicenseLink.js +29 -59
  266. package/lib/LicenseByline/LicenseLink.js.map +1 -0
  267. package/lib/LinkBlock/LinkBlock.js +73 -108
  268. package/lib/LinkBlock/LinkBlock.js.map +1 -0
  269. package/lib/LinkBlock/LinkBlockSection.js +22 -39
  270. package/lib/LinkBlock/LinkBlockSection.js.map +1 -0
  271. package/lib/Pitch/Pitch.js +61 -89
  272. package/lib/Pitch/Pitch.js.map +1 -0
  273. package/lib/RelatedArticleList/RelatedArticleList.js +96 -140
  274. package/lib/RelatedArticleList/RelatedArticleList.js.map +1 -0
  275. package/lib/RelatedArticleList/index.js +7 -20
  276. package/lib/RelatedArticleList/index.js.map +1 -0
  277. package/lib/ResourceBox/ResourceBox.js +73 -104
  278. package/lib/ResourceBox/ResourceBox.js.map +1 -0
  279. package/lib/TagSelector/TagSelector.js +103 -145
  280. package/lib/TagSelector/TagSelector.js.map +1 -0
  281. package/lib/ZendeskButton/ZendeskButton.js +39 -58
  282. package/lib/ZendeskButton/ZendeskButton.js.map +1 -0
  283. package/lib/_virtual/rolldown_runtime.js +42 -0
  284. package/lib/i18n/formatNestedMessages.js +16 -30
  285. package/lib/i18n/formatNestedMessages.js.map +1 -0
  286. package/lib/i18n/i18n.js +28 -38
  287. package/lib/i18n/i18n.js.map +1 -0
  288. package/lib/i18n/useComponentTranslations.js +154 -215
  289. package/lib/i18n/useComponentTranslations.js.map +1 -0
  290. package/lib/index.js +156 -598
  291. package/lib/locale/messages-en.js +436 -466
  292. package/lib/locale/messages-en.js.map +1 -0
  293. package/lib/locale/messages-nb.js +436 -466
  294. package/lib/locale/messages-nb.js.map +1 -0
  295. package/lib/locale/messages-nn.js +436 -466
  296. package/lib/locale/messages-nn.js.map +1 -0
  297. package/lib/locale/messages-se.js +436 -466
  298. package/lib/locale/messages-se.js.map +1 -0
  299. package/lib/model/ContentType.js +90 -70
  300. package/lib/model/ContentType.js.map +1 -0
  301. package/lib/model/SubjectCategories.js +26 -14
  302. package/lib/model/SubjectCategories.js.map +1 -0
  303. package/lib/model/SubjectTypes.js +24 -13
  304. package/lib/model/SubjectTypes.js.map +1 -0
  305. package/lib/model/WordClass.js +55 -48
  306. package/lib/model/WordClass.js.map +1 -0
  307. package/lib/model/index.js +16 -25
  308. package/lib/model/index.js.map +1 -0
  309. package/lib/utils/licenseAttributes.js +14 -22
  310. package/lib/utils/licenseAttributes.js.map +1 -0
  311. package/lib/utils/relativeUrl.js +20 -38
  312. package/lib/utils/relativeUrl.js.map +1 -0
  313. package/package.json +12 -11
  314. package/es/Article/index.js +0 -11
  315. package/es/CampaignBlock/index.js +0 -9
  316. package/es/CodeBlock/index.js +0 -10
  317. package/es/ContactBlock/index.js +0 -9
  318. package/es/ContentTypeHero/index.js +0 -9
  319. package/es/Embed/index.js +0 -25
  320. package/es/Embed/types.js +0 -1
  321. package/es/FileList/index.js +0 -11
  322. package/es/Gloss/index.js +0 -10
  323. package/es/Grid/index.js +0 -10
  324. package/es/KeyFigure/index.js +0 -9
  325. package/es/LicenseByline/index.js +0 -10
  326. package/es/LinkBlock/index.js +0 -10
  327. package/es/Pitch/index.js +0 -9
  328. package/es/ResourceBox/index.js +0 -10
  329. package/es/i18n/index.js +0 -11
  330. package/es/types.js +0 -1
  331. package/lib/Article/index.js +0 -68
  332. package/lib/CampaignBlock/index.js +0 -13
  333. package/lib/CodeBlock/index.js +0 -20
  334. package/lib/ContactBlock/index.js +0 -18
  335. package/lib/ContentTypeHero/index.js +0 -12
  336. package/lib/Embed/index.js +0 -150
  337. package/lib/Embed/types.js +0 -5
  338. package/lib/FileList/index.js +0 -44
  339. package/lib/Gloss/index.js +0 -20
  340. package/lib/Grid/index.js +0 -19
  341. package/lib/KeyFigure/index.js +0 -13
  342. package/lib/LicenseByline/index.js +0 -19
  343. package/lib/LinkBlock/index.js +0 -20
  344. package/lib/Pitch/index.js +0 -12
  345. package/lib/ResourceBox/index.js +0 -13
  346. package/lib/i18n/index.js +0 -68
  347. package/lib/types.js +0 -5
@@ -1,199 +1,127 @@
1
- /**
2
- * Copyright (c) 2016-present, NDLA.
3
- *
4
- * This source code is licensed under the GPLv3 license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- */
8
-
1
+ import { ContentTypeBadge } from "../ContentTypeBadge/ContentTypeBadge.js";
2
+ import { ArticleByline } from "./ArticleByline.js";
9
3
  import { forwardRef } from "react";
10
- import { ark } from "@ark-ui/react";
11
4
  import { Heading, Text } from "@ndla/primitives";
12
- import { cx } from "@ndla/styled-system/css";
13
5
  import { Stack, styled } from "@ndla/styled-system/jsx";
14
- import { ArticleByline } from "./ArticleByline";
15
- import { ContentTypeBadge } from "../ContentTypeBadge/ContentTypeBadge";
16
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
17
- const StyledArticleContent = styled(ark.section, {}, {
18
- baseComponent: true
19
- });
20
- export const ArticleContent = /*#__PURE__*/forwardRef((_ref, ref) => {
21
- let {
22
- className,
23
- ...props
24
- } = _ref;
25
- return /*#__PURE__*/_jsx(StyledArticleContent, {
26
- className: cx("ndla-article", className),
27
- ...props,
28
- ref: ref
29
- });
30
- });
31
- const StyledArticleWrapper = styled(ark.article, {
32
- base: {
33
- background: "background.default",
34
- display: "flex",
35
- flexDirection: "column",
36
- color: "text.default",
37
- alignItems: "center",
38
- width: "100%",
39
- overflowWrap: "break-word",
40
- position: "relative",
41
- "& mjx-stretchy-v > mjx-ext > mjx-c": {
42
- transform: "scaleY(100) translateY(0.075em)"
43
- },
44
- _after: {
45
- content: "",
46
- display: "table",
47
- clear: "both"
48
- }
49
- }
50
- }, {
51
- baseComponent: true
52
- });
53
- export const ArticleWrapper = /*#__PURE__*/forwardRef((props, ref) => /*#__PURE__*/_jsx(StyledArticleWrapper, {
54
- "data-ndla-article": "",
55
- ref: ref,
56
- ...props
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import { ark } from "@ark-ui/react";
8
+ import { cx } from "@ndla/styled-system/css";
9
+
10
+ //#region src/Article/Article.tsx
11
+ const StyledArticleContent = styled(ark.section, {}, { baseComponent: true });
12
+ const ArticleContent = forwardRef(({ className,...props }, ref) => /* @__PURE__ */ jsx(StyledArticleContent, {
13
+ className: cx("ndla-article", className),
14
+ ...props,
15
+ ref
16
+ }));
17
+ const StyledArticleWrapper = styled(ark.article, { base: {
18
+ background: "background.default",
19
+ display: "flex",
20
+ flexDirection: "column",
21
+ color: "text.default",
22
+ alignItems: "center",
23
+ width: "100%",
24
+ overflowWrap: "break-word",
25
+ position: "relative",
26
+ "& mjx-stretchy-v > mjx-ext > mjx-c": { transform: "scaleY(100) translateY(0.075em)" },
27
+ _after: {
28
+ content: "",
29
+ display: "table",
30
+ clear: "both"
31
+ }
32
+ } }, { baseComponent: true });
33
+ const ArticleWrapper = forwardRef((props, ref) => /* @__PURE__ */ jsx(StyledArticleWrapper, {
34
+ "data-ndla-article": "",
35
+ ref,
36
+ ...props
57
37
  }));
58
- export const ArticleHGroup = styled(ark.hgroup, {
59
- base: {
60
- display: "flex",
61
- width: "100%",
62
- flexDirection: "column",
63
- alignItems: "flex-start",
64
- "& h1": {
65
- overflowWrap: "anywhere"
66
- }
67
- }
68
- }, {
69
- baseComponent: true
70
- });
71
- export const ArticleHeader = styled(ark.header, {
72
- base: {
73
- display: "flex",
74
- flexDirection: "column",
75
- gap: "medium",
76
- alignItems: "flex-start",
77
- width: "100%",
78
- paddingBlockStart: "xxlarge",
79
- overflowWrap: "anywhere"
80
- }
81
- }, {
82
- baseComponent: true
83
- });
84
- export const ArticleFooter = styled(ark.footer, {
85
- base: {
86
- display: "flex",
87
- flexDirection: "column",
88
- gap: "xxlarge",
89
- width: "100%",
90
- "& > :is(:last-child)": {
91
- paddingBlockEnd: "5xlarge"
92
- }
93
- }
94
- }, {
95
- baseComponent: true
96
- });
97
- const StyledStack = styled(Stack, {
98
- base: {
99
- width: "100%",
100
- minHeight: "xxlarge"
101
- }
102
- });
103
- const StyledWrapper = styled("div", {
104
- base: {
105
- display: "flex",
106
- gap: "small",
107
- flexWrap: "wrap",
108
- alignItems: "center"
109
- }
110
- });
111
- export const ArticleTitle = _ref2 => {
112
- let {
113
- contentType,
114
- heartButton,
115
- title,
116
- lang,
117
- id,
118
- introduction,
119
- contentTypeLabel,
120
- competenceGoals,
121
- disclaimer
122
- } = _ref2;
123
- return /*#__PURE__*/_jsxs(ArticleHeader, {
124
- children: [/*#__PURE__*/_jsxs(ArticleHGroup, {
125
- children: [(!!contentType || !!heartButton) && /*#__PURE__*/_jsxs(StyledStack, {
126
- justify: "space-between",
127
- align: "center",
128
- direction: "row",
129
- gap: "small",
130
- children: [!!contentType && /*#__PURE__*/_jsx(ContentTypeBadge, {
131
- contentType: contentType,
132
- children: contentTypeLabel
133
- }), heartButton]
134
- }), /*#__PURE__*/_jsx(Heading, {
135
- textStyle: "heading.medium",
136
- id: id,
137
- lang: lang,
138
- property: "dct:title",
139
- children: title
140
- })]
141
- }), !!introduction && /*#__PURE__*/_jsx(Text, {
142
- lang: lang,
143
- textStyle: "body.xlarge",
144
- asChild: true,
145
- consumeCss: true,
146
- children: /*#__PURE__*/_jsx("div", {
147
- children: introduction
148
- })
149
- }), /*#__PURE__*/_jsxs(StyledWrapper, {
150
- children: [competenceGoals, disclaimer]
151
- })]
152
- });
38
+ const ArticleHGroup = styled(ark.hgroup, { base: {
39
+ display: "flex",
40
+ width: "100%",
41
+ flexDirection: "column",
42
+ alignItems: "flex-start",
43
+ "& h1": { overflowWrap: "anywhere" }
44
+ } }, { baseComponent: true });
45
+ const ArticleHeader = styled(ark.header, { base: {
46
+ display: "flex",
47
+ flexDirection: "column",
48
+ gap: "medium",
49
+ alignItems: "flex-start",
50
+ width: "100%",
51
+ paddingBlockStart: "xxlarge",
52
+ overflowWrap: "anywhere"
53
+ } }, { baseComponent: true });
54
+ const ArticleFooter = styled(ark.footer, { base: {
55
+ display: "flex",
56
+ flexDirection: "column",
57
+ gap: "xxlarge",
58
+ width: "100%",
59
+ "& > :is(:last-child)": { paddingBlockEnd: "5xlarge" }
60
+ } }, { baseComponent: true });
61
+ const StyledStack = styled(Stack, { base: {
62
+ width: "100%",
63
+ minHeight: "xxlarge"
64
+ } });
65
+ const StyledWrapper = styled("div", { base: {
66
+ display: "flex",
67
+ gap: "small",
68
+ flexWrap: "wrap",
69
+ alignItems: "center"
70
+ } });
71
+ const ArticleTitle = ({ contentType, heartButton, title, lang, id, introduction, contentTypeLabel, competenceGoals, disclaimer }) => {
72
+ return /* @__PURE__ */ jsxs(ArticleHeader, { children: [
73
+ /* @__PURE__ */ jsxs(ArticleHGroup, { children: [(!!contentType || !!heartButton) && /* @__PURE__ */ jsxs(StyledStack, {
74
+ justify: "space-between",
75
+ align: "center",
76
+ direction: "row",
77
+ gap: "small",
78
+ children: [!!contentType && /* @__PURE__ */ jsx(ContentTypeBadge, {
79
+ contentType,
80
+ children: contentTypeLabel
81
+ }), heartButton]
82
+ }), /* @__PURE__ */ jsx(Heading, {
83
+ textStyle: "heading.medium",
84
+ id,
85
+ lang,
86
+ property: "dct:title",
87
+ children: title
88
+ })] }),
89
+ !!introduction && /* @__PURE__ */ jsx(Text, {
90
+ lang,
91
+ textStyle: "body.xlarge",
92
+ asChild: true,
93
+ consumeCss: true,
94
+ children: /* @__PURE__ */ jsx("div", { children: introduction })
95
+ }),
96
+ /* @__PURE__ */ jsxs(StyledWrapper, { children: [competenceGoals, disclaimer] })
97
+ ] });
153
98
  };
154
- export const Article = _ref3 => {
155
- let {
156
- article,
157
- contentType,
158
- licenseBox,
159
- children,
160
- competenceGoals,
161
- contentTypeLabel,
162
- id,
163
- heartButton,
164
- lang,
165
- disclaimer
166
- } = _ref3;
167
- const {
168
- title,
169
- introduction,
170
- published,
171
- content,
172
- footNotes,
173
- copyright
174
- } = article;
175
- const authors = copyright?.creators.length || copyright?.rightsholders.length ? copyright.creators : copyright?.processors;
176
- return /*#__PURE__*/_jsxs(ArticleWrapper, {
177
- children: [/*#__PURE__*/_jsx(ArticleTitle, {
178
- id: id,
179
- contentType: contentType,
180
- heartButton: heartButton,
181
- title: title,
182
- introduction: introduction,
183
- competenceGoals: competenceGoals,
184
- lang: lang,
185
- contentTypeLabel: contentTypeLabel,
186
- disclaimer: disclaimer
187
- }), /*#__PURE__*/_jsx(ArticleContent, {
188
- children: content
189
- }), /*#__PURE__*/_jsxs(ArticleFooter, {
190
- children: [/*#__PURE__*/_jsx(ArticleByline, {
191
- footnotes: footNotes,
192
- authors: authors,
193
- suppliers: copyright?.rightsholders,
194
- published: published,
195
- licenseBox: licenseBox
196
- }), children]
197
- })]
198
- });
199
- };
99
+ const Article = ({ article, contentType, licenseBox, children, competenceGoals, contentTypeLabel, id, heartButton, lang, disclaimer }) => {
100
+ const { title, introduction, published, content, footNotes, copyright } = article;
101
+ const authors = copyright?.creators.length || copyright?.rightsholders.length ? copyright.creators : copyright?.processors;
102
+ return /* @__PURE__ */ jsxs(ArticleWrapper, { children: [
103
+ /* @__PURE__ */ jsx(ArticleTitle, {
104
+ id,
105
+ contentType,
106
+ heartButton,
107
+ title,
108
+ introduction,
109
+ competenceGoals,
110
+ lang,
111
+ contentTypeLabel,
112
+ disclaimer
113
+ }),
114
+ /* @__PURE__ */ jsx(ArticleContent, { children: content }),
115
+ /* @__PURE__ */ jsxs(ArticleFooter, { children: [/* @__PURE__ */ jsx(ArticleByline, {
116
+ footnotes: footNotes,
117
+ authors,
118
+ suppliers: copyright?.rightsholders,
119
+ published,
120
+ licenseBox
121
+ }), children] })
122
+ ] });
123
+ };
124
+
125
+ //#endregion
126
+ export { Article, ArticleContent, ArticleFooter, ArticleHGroup, ArticleHeader, ArticleTitle, ArticleWrapper };
127
+ //# sourceMappingURL=Article.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Article.js","names":[],"sources":["../../src/Article/Article.tsx"],"sourcesContent":["/**\n * Copyright (c) 2016-present, NDLA.\n *\n * This source code is licensed under the GPLv3 license found in the\n * LICENSE file in the root directory of this source tree.\n *\n */\n\nimport { type ComponentPropsWithRef, type ReactNode, forwardRef } from \"react\";\nimport { ark, type HTMLArkProps } from \"@ark-ui/react\";\nimport { Heading, Text } from \"@ndla/primitives\";\nimport { cx } from \"@ndla/styled-system/css\";\nimport { Stack, styled } from \"@ndla/styled-system/jsx\";\nimport type { JsxStyleProps } from \"@ndla/styled-system/types\";\nimport { ArticleByline } from \"./ArticleByline\";\nimport { ContentTypeBadge, type ContentType } from \"../ContentTypeBadge/ContentTypeBadge\";\nimport type { Article as ArticleType } from \"../types\";\n\nconst StyledArticleContent = styled(ark.section, {}, { baseComponent: true });\n\nexport const ArticleContent = forwardRef<HTMLElement, HTMLArkProps<\"div\"> & JsxStyleProps>(\n ({ className, ...props }, ref) => (\n <StyledArticleContent className={cx(\"ndla-article\", className)} {...props} ref={ref} />\n ),\n);\n\nconst StyledArticleWrapper = styled(\n ark.article,\n {\n base: {\n background: \"background.default\",\n display: \"flex\",\n flexDirection: \"column\",\n color: \"text.default\",\n alignItems: \"center\",\n width: \"100%\",\n overflowWrap: \"break-word\",\n position: \"relative\",\n \"& mjx-stretchy-v > mjx-ext > mjx-c\": {\n transform: \"scaleY(100) translateY(0.075em)\",\n },\n _after: {\n content: \"\",\n display: \"table\",\n clear: \"both\",\n },\n },\n },\n { baseComponent: true },\n);\n\nexport const ArticleWrapper = forwardRef<HTMLElement, ComponentPropsWithRef<\"article\"> & JsxStyleProps>(\n (props, ref) => <StyledArticleWrapper data-ndla-article=\"\" ref={ref} {...props} />,\n);\n\nexport const ArticleHGroup = styled(\n ark.hgroup,\n {\n base: {\n display: \"flex\",\n width: \"100%\",\n flexDirection: \"column\",\n alignItems: \"flex-start\",\n \"& h1\": {\n overflowWrap: \"anywhere\",\n },\n },\n },\n { baseComponent: true },\n);\n\nexport const ArticleHeader = styled(\n ark.header,\n {\n base: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"medium\",\n alignItems: \"flex-start\",\n width: \"100%\",\n paddingBlockStart: \"xxlarge\",\n overflowWrap: \"anywhere\",\n },\n },\n { baseComponent: true },\n);\n\nexport const ArticleFooter = styled(\n ark.footer,\n {\n base: {\n display: \"flex\",\n flexDirection: \"column\",\n gap: \"xxlarge\",\n width: \"100%\",\n \"& > :is(:last-child)\": {\n paddingBlockEnd: \"5xlarge\",\n },\n },\n },\n { baseComponent: true },\n);\n\nconst StyledStack = styled(Stack, {\n base: {\n width: \"100%\",\n minHeight: \"xxlarge\",\n },\n});\n\nconst StyledWrapper = styled(\"div\", {\n base: {\n display: \"flex\",\n gap: \"small\",\n flexWrap: \"wrap\",\n alignItems: \"center\",\n },\n});\n\ninterface ArticleTitleProps {\n heartButton?: ReactNode;\n contentType?: ContentType;\n contentTypeLabel?: ReactNode;\n competenceGoals?: ReactNode;\n id: string;\n lang?: string;\n title?: ReactNode;\n introduction?: ReactNode;\n disclaimer?: ReactNode;\n}\n\nexport const ArticleTitle = ({\n contentType,\n heartButton,\n title,\n lang,\n id,\n introduction,\n contentTypeLabel,\n competenceGoals,\n disclaimer,\n}: ArticleTitleProps) => {\n return (\n <ArticleHeader>\n <ArticleHGroup>\n {(!!contentType || !!heartButton) && (\n <StyledStack justify=\"space-between\" align=\"center\" direction=\"row\" gap=\"small\">\n {!!contentType && <ContentTypeBadge contentType={contentType}>{contentTypeLabel}</ContentTypeBadge>}\n {heartButton}\n </StyledStack>\n )}\n <Heading textStyle=\"heading.medium\" id={id} lang={lang} property=\"dct:title\">\n {title}\n </Heading>\n </ArticleHGroup>\n {!!introduction && (\n <Text lang={lang} textStyle=\"body.xlarge\" asChild consumeCss>\n <div>{introduction}</div>\n </Text>\n )}\n <StyledWrapper>\n {competenceGoals}\n {disclaimer}\n </StyledWrapper>\n </ArticleHeader>\n );\n};\n\ninterface Props {\n heartButton?: ReactNode;\n article: ArticleType;\n licenseBox?: ReactNode;\n contentType?: ContentType;\n contentTypeLabel?: ReactNode;\n children?: ReactNode;\n competenceGoals?: ReactNode;\n id: string;\n lang?: string;\n disclaimer?: ReactNode;\n}\n\nexport const Article = ({\n article,\n contentType,\n licenseBox,\n children,\n competenceGoals,\n contentTypeLabel,\n id,\n heartButton,\n lang,\n disclaimer,\n}: Props) => {\n const { title, introduction, published, content, footNotes, copyright } = article;\n\n const authors =\n copyright?.creators.length || copyright?.rightsholders.length ? copyright.creators : copyright?.processors;\n\n return (\n <ArticleWrapper>\n <ArticleTitle\n id={id}\n contentType={contentType}\n heartButton={heartButton}\n title={title}\n introduction={introduction}\n competenceGoals={competenceGoals}\n lang={lang}\n contentTypeLabel={contentTypeLabel}\n disclaimer={disclaimer}\n />\n <ArticleContent>{content}</ArticleContent>\n <ArticleFooter>\n <ArticleByline\n footnotes={footNotes}\n authors={authors}\n suppliers={copyright?.rightsholders}\n published={published}\n licenseBox={licenseBox}\n />\n {children}\n </ArticleFooter>\n </ArticleWrapper>\n );\n};\n"],"mappings":";;;;;;;;;;AAkBA,MAAM,uBAAuB,OAAO,IAAI,SAAS,CAAE,GAAE,EAAE,eAAe,KAAM,EAAC;AAE7E,MAAa,iBAAiB,WAC5B,CAAC,EAAE,UAAW,GAAG,OAAO,EAAE,wBACxB,IAAC;CAAqB,WAAW,GAAG,gBAAgB,UAAU;CAAE,GAAI;CAAY;EAAO,CAE1F;AAED,MAAM,uBAAuB,OAC3B,IAAI,SACJ,EACE,MAAM;CACJ,YAAY;CACZ,SAAS;CACT,eAAe;CACf,OAAO;CACP,YAAY;CACZ,OAAO;CACP,cAAc;CACd,UAAU;CACV,sCAAsC,EACpC,WAAW,kCACZ;CACD,QAAQ;EACN,SAAS;EACT,SAAS;EACT,OAAO;CACR;AACF,EACF,GACD,EAAE,eAAe,KAAM,EACxB;AAED,MAAa,iBAAiB,WAC5B,CAAC,OAAO,wBAAQ,IAAC;CAAqB,qBAAkB;CAAQ;CAAK,GAAI;EAAS,CACnF;AAED,MAAa,gBAAgB,OAC3B,IAAI,QACJ,EACE,MAAM;CACJ,SAAS;CACT,OAAO;CACP,eAAe;CACf,YAAY;CACZ,QAAQ,EACN,cAAc,WACf;AACF,EACF,GACD,EAAE,eAAe,KAAM,EACxB;AAED,MAAa,gBAAgB,OAC3B,IAAI,QACJ,EACE,MAAM;CACJ,SAAS;CACT,eAAe;CACf,KAAK;CACL,YAAY;CACZ,OAAO;CACP,mBAAmB;CACnB,cAAc;AACf,EACF,GACD,EAAE,eAAe,KAAM,EACxB;AAED,MAAa,gBAAgB,OAC3B,IAAI,QACJ,EACE,MAAM;CACJ,SAAS;CACT,eAAe;CACf,KAAK;CACL,OAAO;CACP,wBAAwB,EACtB,iBAAiB,UAClB;AACF,EACF,GACD,EAAE,eAAe,KAAM,EACxB;AAED,MAAM,cAAc,OAAO,OAAO,EAChC,MAAM;CACJ,OAAO;CACP,WAAW;AACZ,EACF,EAAC;AAEF,MAAM,gBAAgB,OAAO,OAAO,EAClC,MAAM;CACJ,SAAS;CACT,KAAK;CACL,UAAU;CACV,YAAY;AACb,EACF,EAAC;AAcF,MAAa,eAAe,CAAC,EAC3B,aACA,aACA,OACA,MACA,IACA,cACA,kBACA,iBACA,YACkB,KAAK;AACvB,wBACE,KAAC;kBACC,KAAC,+BACK,iBAAiB,gCACnB,KAAC;GAAY,SAAQ;GAAgB,OAAM;GAAS,WAAU;GAAM,KAAI;gBACnE,+BAAe,IAAC;IAA8B;cAAc;KAAoC,EAClG;IACW,kBAEhB,IAAC;GAAQ,WAAU;GAAqB;GAAU;GAAM,UAAS;aAC9D;IACO,IACI;IACb,gCACD,IAAC;GAAW;GAAM,WAAU;GAAc;GAAQ;6BAChD,IAAC,mBAAK,eAAmB;IACpB;kBAET,KAAC,4BACE,iBACA,cACa;KACF;AAEnB;AAeD,MAAa,UAAU,CAAC,EACtB,SACA,aACA,YACA,UACA,iBACA,kBACA,IACA,aACA,MACA,YACM,KAAK;CACX,MAAM,EAAE,OAAO,cAAc,WAAW,SAAS,WAAW,WAAW,GAAG;CAE1E,MAAM,UACJ,WAAW,SAAS,UAAU,WAAW,cAAc,SAAS,UAAU,WAAW,WAAW;AAElG,wBACE,KAAC;kBACC,IAAC;GACK;GACS;GACA;GACN;GACO;GACG;GACX;GACY;GACN;IACZ;kBACF,IAAC,4BAAgB,UAAyB;kBAC1C,KAAC,4CACC,IAAC;GACC,WAAW;GACF;GACT,WAAW,WAAW;GACX;GACC;IACZ,EACD,YACa;KACD;AAEpB"}
@@ -1,182 +1,133 @@
1
- /**
2
- * Copyright (c) 2020-present, NDLA.
3
- *
4
- * This source code is licensed under the GPLv3 license found in the
5
- * LICENSE file in the root directory of this source tree.
6
- *
7
- */
8
-
1
+ import { ArticleFootNotes } from "./ArticleFootNotes.js";
9
2
  import { forwardRef, useCallback, useEffect, useState } from "react";
10
- import { useTranslation } from "react-i18next";
11
- import { useLocation } from "react-router-dom";
12
- import { ArrowDownShortLine } from "@ndla/icons";
13
3
  import { AccordionItem, AccordionItemContent, AccordionItemIndicator, AccordionItemTrigger, AccordionRoot, Heading } from "@ndla/primitives";
14
4
  import { styled } from "@ndla/styled-system/jsx";
15
- import { ArticleFootNotes } from "./ArticleFootNotes";
16
- import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
17
- const Wrapper = styled("div", {
18
- base: {
19
- // TODO: Figure out if we want to remove this margin. It's only here to add some gap between the article content and the byline.
20
- marginBlockStart: "medium",
21
- paddingBlockStart: "xsmall",
22
- borderTop: "1px solid",
23
- borderColor: "stroke.subtle"
24
- }
25
- });
5
+ import { useTranslation } from "react-i18next";
6
+ import { ArrowDownShortLine } from "@ndla/icons";
7
+ import { jsx, jsxs } from "react/jsx-runtime";
8
+ import { useLocation } from "react-router-dom";
9
+
10
+ //#region src/Article/ArticleByline.tsx
11
+ const Wrapper = styled("div", { base: {
12
+ marginBlockStart: "medium",
13
+ paddingBlockStart: "xsmall",
14
+ borderTop: "1px solid",
15
+ borderColor: "stroke.subtle"
16
+ } });
26
17
  const TextWrapper = styled("div", {
27
- base: {
28
- display: "flex",
29
- flexDirection: "column",
30
- gap: "3xsmall",
31
- width: "100%",
32
- justifyContent: "space-between",
33
- paddingBlock: "xsmall",
34
- textStyle: "body.medium",
35
- '& [data-contributors="false"]': {
36
- marginInlineStart: "auto"
37
- }
38
- },
39
- variants: {
40
- learningpath: {
41
- true: {},
42
- false: {
43
- tabletWide: {
44
- flexDirection: "row"
45
- }
46
- }
47
- }
48
- }
18
+ base: {
19
+ display: "flex",
20
+ flexDirection: "column",
21
+ gap: "3xsmall",
22
+ width: "100%",
23
+ justifyContent: "space-between",
24
+ paddingBlock: "xsmall",
25
+ textStyle: "body.medium",
26
+ "& [data-contributors=\"false\"]": { marginInlineStart: "auto" }
27
+ },
28
+ variants: { learningpath: {
29
+ true: {},
30
+ false: { tabletWide: { flexDirection: "row" } }
31
+ } }
49
32
  });
50
33
  const renderContributors = (contributors, t) => {
51
- const contributorsArray = contributors.map((contributor, index) => {
52
- if (index < 1) return contributor.name;
53
- const sep = index === contributors.length - 1 ? ` ${t("article.conjunction")} ` : ", ";
54
- return `${sep}${contributor.name}`;
55
- });
56
- return contributorsArray.join("");
34
+ const contributorsArray = contributors.map((contributor, index) => {
35
+ if (index < 1) return contributor.name;
36
+ const sep = index === contributors.length - 1 ? ` ${t("article.conjunction")} ` : ", ";
37
+ return `${sep}${contributor.name}`;
38
+ });
39
+ return contributorsArray.join("");
57
40
  };
58
41
  const getSuppliersText = (suppliers, t) => {
59
- if (suppliers.length === 0) {
60
- return "";
61
- }
62
- return suppliers.length > 1 ? t("article.multipleSuppliersLabel", {
63
- names: renderContributors(suppliers, t),
64
- interpolation: {
65
- escapeValue: false
66
- }
67
- }) : t("article.supplierLabel", {
68
- name: renderContributors(suppliers, t),
69
- interpolation: {
70
- escapeValue: false
71
- }
72
- });
42
+ if (suppliers.length === 0) return "";
43
+ return suppliers.length > 1 ? t("article.multipleSuppliersLabel", {
44
+ names: renderContributors(suppliers, t),
45
+ interpolation: { escapeValue: false }
46
+ }) : t("article.supplierLabel", {
47
+ name: renderContributors(suppliers, t),
48
+ interpolation: { escapeValue: false }
49
+ });
73
50
  };
74
- const StyledAccordionRoot = styled(AccordionRoot, {
75
- base: {
76
- paddingBlockStart: "xxlarge"
77
- }
78
- });
51
+ const StyledAccordionRoot = styled(AccordionRoot, { base: { paddingBlockStart: "xxlarge" } });
79
52
  const refRegexp = /note\d/;
80
53
  const footnotesAccordionId = "footnotes";
81
- export const ArticleByline = _ref => {
82
- let {
83
- authors = [],
84
- suppliers = [],
85
- footnotes,
86
- licenseBox,
87
- published,
88
- displayByline = true,
89
- bylineType = "article",
90
- bylineSuffix
91
- } = _ref;
92
- const {
93
- t
94
- } = useTranslation();
95
- const {
96
- pathname
97
- } = useLocation();
98
- const [openAccordions, setOpenAccordions] = useState([]);
99
- const accordionItemValue = "rulesForUse";
100
- const onHashChange = useCallback(e => {
101
- const hash = e.newURL.split("#")[1];
102
- if (hash?.match(refRegexp) && !openAccordions.includes(footnotesAccordionId)) {
103
- setOpenAccordions([...openAccordions, footnotesAccordionId]);
104
- const el = document.getElementById(`#${hash}`);
105
- el?.click();
106
- el?.focus();
107
- }
108
- }, [openAccordions]);
109
- useEffect(() => {
110
- setOpenAccordions(prev => prev.filter(state => state !== accordionItemValue));
111
- }, [pathname]);
112
- useEffect(() => {
113
- window.addEventListener("hashchange", onHashChange);
114
- return () => window.removeEventListener("hashchange", onHashChange);
115
- }, [onHashChange]);
116
- const showPrimaryContributors = suppliers.length > 0 || authors.length > 0;
117
- const authorLabel = {
118
- article: "article.authorsLabel",
119
- learningPath: "article.authorsLabelLearningpath",
120
- external: "article.authorsLabelExternal"
121
- };
122
- return /*#__PURE__*/_jsxs(Wrapper, {
123
- children: [!!displayByline && /*#__PURE__*/_jsxs(TextWrapper, {
124
- learningpath: bylineType === "learningPath",
125
- children: [!!showPrimaryContributors && /*#__PURE__*/_jsxs("span", {
126
- children: [authors.length > 0 && `${t(authorLabel[bylineType], {
127
- names: renderContributors(authors, t),
128
- interpolation: {
129
- escapeValue: false
130
- }
131
- })}. `, getSuppliersText(suppliers, t)]
132
- }), published ? /*#__PURE__*/_jsxs("div", {
133
- "data-contributors": showPrimaryContributors,
134
- children: [t(`${bylineType}.lastUpdated`), " ", published]
135
- }) : null, bylineSuffix]
136
- }), (!!licenseBox || !!footnotes?.length) && /*#__PURE__*/_jsxs(StyledAccordionRoot, {
137
- multiple: true,
138
- value: openAccordions,
139
- onValueChange: details => setOpenAccordions(details.value),
140
- children: [!!licenseBox && /*#__PURE__*/_jsx(ArticleBylineAccordionItem, {
141
- value: accordionItemValue,
142
- accordionTitle: t("article.useContent"),
143
- children: licenseBox
144
- }), !!footnotes?.length && /*#__PURE__*/_jsx(ArticleBylineAccordionItem, {
145
- value: footnotesAccordionId,
146
- accordionTitle: t("article.footnotes"),
147
- children: /*#__PURE__*/_jsx(ArticleFootNotes, {
148
- footNotes: footnotes
149
- })
150
- })]
151
- })]
152
- });
54
+ const ArticleByline = ({ authors = [], suppliers = [], footnotes, licenseBox, published, displayByline = true, bylineType = "article", bylineSuffix }) => {
55
+ const { t } = useTranslation();
56
+ const { pathname } = useLocation();
57
+ const [openAccordions, setOpenAccordions] = useState([]);
58
+ const accordionItemValue = "rulesForUse";
59
+ const onHashChange = useCallback((e) => {
60
+ const hash = e.newURL.split("#")[1];
61
+ if (hash?.match(refRegexp) && !openAccordions.includes(footnotesAccordionId)) {
62
+ setOpenAccordions([...openAccordions, footnotesAccordionId]);
63
+ const el = document.getElementById(`#${hash}`);
64
+ el?.click();
65
+ el?.focus();
66
+ }
67
+ }, [openAccordions]);
68
+ useEffect(() => {
69
+ setOpenAccordions((prev) => prev.filter((state) => state !== accordionItemValue));
70
+ }, [pathname]);
71
+ useEffect(() => {
72
+ window.addEventListener("hashchange", onHashChange);
73
+ return () => window.removeEventListener("hashchange", onHashChange);
74
+ }, [onHashChange]);
75
+ const showPrimaryContributors = suppliers.length > 0 || authors.length > 0;
76
+ const authorLabel = {
77
+ article: "article.authorsLabel",
78
+ learningPath: "article.authorsLabelLearningpath",
79
+ external: "article.authorsLabelExternal"
80
+ };
81
+ return /* @__PURE__ */ jsxs(Wrapper, { children: [!!displayByline && /* @__PURE__ */ jsxs(TextWrapper, {
82
+ learningpath: bylineType === "learningPath",
83
+ children: [
84
+ !!showPrimaryContributors && /* @__PURE__ */ jsxs("span", { children: [authors.length > 0 && `${t(authorLabel[bylineType], {
85
+ names: renderContributors(authors, t),
86
+ interpolation: { escapeValue: false }
87
+ })}. `, getSuppliersText(suppliers, t)] }),
88
+ published ? /* @__PURE__ */ jsxs("div", {
89
+ "data-contributors": showPrimaryContributors,
90
+ children: [
91
+ t(`${bylineType}.lastUpdated`),
92
+ " ",
93
+ published
94
+ ]
95
+ }) : null,
96
+ bylineSuffix
97
+ ]
98
+ }), (!!licenseBox || !!footnotes?.length) && /* @__PURE__ */ jsxs(StyledAccordionRoot, {
99
+ multiple: true,
100
+ value: openAccordions,
101
+ onValueChange: (details) => setOpenAccordions(details.value),
102
+ children: [!!licenseBox && /* @__PURE__ */ jsx(ArticleBylineAccordionItem, {
103
+ value: accordionItemValue,
104
+ accordionTitle: t("article.useContent"),
105
+ children: licenseBox
106
+ }), !!footnotes?.length && /* @__PURE__ */ jsx(ArticleBylineAccordionItem, {
107
+ value: footnotesAccordionId,
108
+ accordionTitle: t("article.footnotes"),
109
+ children: /* @__PURE__ */ jsx(ArticleFootNotes, { footNotes: footnotes })
110
+ })]
111
+ })] });
153
112
  };
154
- export const ArticleBylineAccordionItem = /*#__PURE__*/forwardRef((_ref2, ref) => {
155
- let {
156
- value,
157
- accordionTitle,
158
- children,
159
- ...props
160
- } = _ref2;
161
- return /*#__PURE__*/_jsxs(AccordionItem, {
162
- value: value,
163
- ref: ref,
164
- ...props,
165
- children: [/*#__PURE__*/_jsx(Heading, {
166
- asChild: true,
167
- consumeCss: true,
168
- textStyle: "label.medium",
169
- fontWeight: "bold",
170
- children: /*#__PURE__*/_jsx("h2", {
171
- children: /*#__PURE__*/_jsxs(AccordionItemTrigger, {
172
- children: [accordionTitle, /*#__PURE__*/_jsx(AccordionItemIndicator, {
173
- asChild: true,
174
- children: /*#__PURE__*/_jsx(ArrowDownShortLine, {})
175
- })]
176
- })
177
- })
178
- }), /*#__PURE__*/_jsx(AccordionItemContent, {
179
- children: children
180
- })]
181
- });
182
- });
113
+ const ArticleBylineAccordionItem = forwardRef(({ value, accordionTitle, children,...props }, ref) => {
114
+ return /* @__PURE__ */ jsxs(AccordionItem, {
115
+ value,
116
+ ref,
117
+ ...props,
118
+ children: [/* @__PURE__ */ jsx(Heading, {
119
+ asChild: true,
120
+ consumeCss: true,
121
+ textStyle: "label.medium",
122
+ fontWeight: "bold",
123
+ children: /* @__PURE__ */ jsx("h2", { children: /* @__PURE__ */ jsxs(AccordionItemTrigger, { children: [accordionTitle, /* @__PURE__ */ jsx(AccordionItemIndicator, {
124
+ asChild: true,
125
+ children: /* @__PURE__ */ jsx(ArrowDownShortLine, {})
126
+ })] }) })
127
+ }), /* @__PURE__ */ jsx(AccordionItemContent, { children })]
128
+ });
129
+ });
130
+
131
+ //#endregion
132
+ export { ArticleByline, ArticleBylineAccordionItem };
133
+ //# sourceMappingURL=ArticleByline.js.map