@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,338 +1,255 @@
1
- "use strict";
1
+ const require_rolldown_runtime = require('../_virtual/rolldown_runtime.js');
2
+ const react = require_rolldown_runtime.__toESM(require("react"));
3
+ const __ndla_primitives = require_rolldown_runtime.__toESM(require("@ndla/primitives"));
4
+ const __ndla_styled_system_jsx = require_rolldown_runtime.__toESM(require("@ndla/styled-system/jsx"));
5
+ const react_i18next = require_rolldown_runtime.__toESM(require("react-i18next"));
6
+ const __ndla_icons = require_rolldown_runtime.__toESM(require("@ndla/icons"));
7
+ const react_jsx_runtime = require_rolldown_runtime.__toESM(require("react/jsx-runtime"));
8
+ const __ark_ui_react = require_rolldown_runtime.__toESM(require("@ark-ui/react"));
2
9
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _react = require("react");
8
- var _reactI18next = require("react-i18next");
9
- var _react2 = require("@ark-ui/react");
10
- var _icons = require("@ndla/icons");
11
- var _primitives = require("@ndla/primitives");
12
- var _jsx2 = require("@ndla/styled-system/jsx");
13
- var _jsxRuntime = require("react/jsx-runtime");
14
- /**
15
- * Copyright (c) 2021-present, NDLA.
16
- *
17
- * This source code is licensed under the GPLv3 license found in the
18
- * LICENSE file in the root directory of this source tree.
19
- *
20
- */
21
-
22
- const ControlsWrapper = (0, _jsx2.styled)("div", {
23
- base: {
24
- borderBlockStart: "1px solid",
25
- borderColor: "stroke.default",
26
- borderBottomRadius: "xsmall",
27
- display: "flex",
28
- alignItems: "center",
29
- justifyContent: "center",
30
- background: "background.default",
31
- gap: "xsmall",
32
- paddingBlock: "xsmall",
33
- paddingInline: "medium",
34
- tabletWideDown: {
35
- display: "grid",
36
- paddingBlock: "xsmall",
37
- paddingInline: "xsmall",
38
- gridTemplateColumns: "1fr repeat(5, auto) 1fr",
39
- gridTemplateAreas: `
10
+ //#region src/AudioPlayer/Controls.tsx
11
+ const ControlsWrapper = (0, __ndla_styled_system_jsx.styled)("div", { base: {
12
+ borderBlockStart: "1px solid",
13
+ borderColor: "stroke.default",
14
+ borderBottomRadius: "xsmall",
15
+ display: "flex",
16
+ alignItems: "center",
17
+ justifyContent: "center",
18
+ background: "background.default",
19
+ gap: "xsmall",
20
+ paddingBlock: "xsmall",
21
+ paddingInline: "medium",
22
+ tabletWideDown: {
23
+ display: "grid",
24
+ paddingBlock: "xsmall",
25
+ paddingInline: "xsmall",
26
+ gridTemplateColumns: "1fr repeat(5, auto) 1fr",
27
+ gridTemplateAreas: `
40
28
  "track track track track track track track"
41
29
  ". speed backwards play forwards volume ."
42
30
  `
43
- },
44
- mobileWideDown: {
45
- columnGap: "3xsmall"
46
- }
47
- }
48
- });
49
- const PlayButton = (0, _jsx2.styled)(_primitives.IconButton, {
50
- base: {
51
- gridArea: "play"
52
- }
53
- });
54
- const Forward15SecButton = (0, _jsx2.styled)(_primitives.IconButton, {
55
- base: {
56
- gridArea: "forwards"
57
- }
58
- });
59
- const Back15SecButton = (0, _jsx2.styled)(_primitives.IconButton, {
60
- base: {
61
- gridArea: "backwards"
62
- }
63
- });
64
- const ProgressWrapper = (0, _jsx2.styled)("div", {
65
- base: {
66
- flex: "1",
67
- display: "flex",
68
- alignItems: "center",
69
- gap: "xxsmall",
70
- gridArea: "track",
71
- paddingBlock: "xsmall",
72
- mobileDown: {
73
- paddingInline: "xsmall"
74
- }
75
- }
76
- });
77
- const StyledText = (0, _jsx2.styled)(_primitives.Text, {
78
- base: {
79
- minWidth: "xxlarge",
80
- flexShrink: "0",
81
- textAlign: "center"
82
- }
83
- });
84
- const VolumeButton = (0, _jsx2.styled)(_primitives.IconButton, {
85
- base: {
86
- gridArea: "volume"
87
- }
88
- });
89
- const SpeedButton = (0, _jsx2.styled)(_primitives.Button, {
90
- base: {
91
- paddingBlock: "auto",
92
- paddingInline: "auto",
93
- maxWidth: "xxlarge",
94
- maxHeight: "xxlarge",
95
- minWidth: "xxlarge",
96
- minHeight: "xxlarge",
97
- "& span": {
98
- flex: "1"
99
- }
100
- }
101
- });
102
- const StyledSelectRoot = (0, _jsx2.styled)(_primitives.SelectRoot, {
103
- base: {
104
- gridArea: "speed"
105
- }
106
- });
107
- const StyledSliderControl = (0, _jsx2.styled)(_primitives.SliderControl, {
108
- base: {
109
- height: "surface.3xsmall",
110
- minWidth: "small"
111
- }
112
- });
113
- const StyledPopoverContent = (0, _jsx2.styled)(_primitives.PopoverContent, {
114
- base: {
115
- paddingInline: "small"
116
- }
117
- });
118
- const formatTime = seconds => {
119
- const minutes = Math.floor(seconds / 60);
120
- const currentSeconds = seconds % 60;
121
- const formattedSeconds = currentSeconds < 10 ? `0${currentSeconds}` : currentSeconds;
122
- return `${minutes}:${formattedSeconds}`;
31
+ },
32
+ mobileWideDown: { columnGap: "3xsmall" }
33
+ } });
34
+ const PlayButton = (0, __ndla_styled_system_jsx.styled)(__ndla_primitives.IconButton, { base: { gridArea: "play" } });
35
+ const Forward15SecButton = (0, __ndla_styled_system_jsx.styled)(__ndla_primitives.IconButton, { base: { gridArea: "forwards" } });
36
+ const Back15SecButton = (0, __ndla_styled_system_jsx.styled)(__ndla_primitives.IconButton, { base: { gridArea: "backwards" } });
37
+ const ProgressWrapper = (0, __ndla_styled_system_jsx.styled)("div", { base: {
38
+ flex: "1",
39
+ display: "flex",
40
+ alignItems: "center",
41
+ gap: "xxsmall",
42
+ gridArea: "track",
43
+ paddingBlock: "xsmall",
44
+ mobileDown: { paddingInline: "xsmall" }
45
+ } });
46
+ const StyledText = (0, __ndla_styled_system_jsx.styled)(__ndla_primitives.Text, { base: {
47
+ minWidth: "xxlarge",
48
+ flexShrink: "0",
49
+ textAlign: "center"
50
+ } });
51
+ const VolumeButton = (0, __ndla_styled_system_jsx.styled)(__ndla_primitives.IconButton, { base: { gridArea: "volume" } });
52
+ const SpeedButton = (0, __ndla_styled_system_jsx.styled)(__ndla_primitives.Button, { base: {
53
+ paddingBlock: "auto",
54
+ paddingInline: "auto",
55
+ maxWidth: "xxlarge",
56
+ maxHeight: "xxlarge",
57
+ minWidth: "xxlarge",
58
+ minHeight: "xxlarge",
59
+ "& span": { flex: "1" }
60
+ } });
61
+ const StyledSelectRoot = (0, __ndla_styled_system_jsx.styled)(__ndla_primitives.SelectRoot, { base: { gridArea: "speed" } });
62
+ const StyledSliderControl = (0, __ndla_styled_system_jsx.styled)(__ndla_primitives.SliderControl, { base: {
63
+ height: "surface.3xsmall",
64
+ minWidth: "small"
65
+ } });
66
+ const StyledPopoverContent = (0, __ndla_styled_system_jsx.styled)(__ndla_primitives.PopoverContent, { base: { paddingInline: "small" } });
67
+ const formatTime = (seconds) => {
68
+ const minutes = Math.floor(seconds / 60);
69
+ const currentSeconds = seconds % 60;
70
+ const formattedSeconds = currentSeconds < 10 ? `0${currentSeconds}` : currentSeconds;
71
+ return `${minutes}:${formattedSeconds}`;
123
72
  };
124
- const speedValues = (0, _react2.createListCollection)({
125
- items: ["0.5", "0.75", "1", "1.25", "1.5", "1.75", "2"]
126
- });
127
- const Controls = _ref => {
128
- let {
129
- src,
130
- title
131
- } = _ref;
132
- const {
133
- t
134
- } = (0, _reactI18next.useTranslation)();
135
- const [speedValue, setSpeedValue] = (0, _react.useState)(1);
136
- const [volumeValue, setVolumeValue] = (0, _react.useState)(100);
137
- const [currentTime, setCurrentTime] = (0, _react.useState)(0);
138
- const [remainingTime, setRemainingTime] = (0, _react.useState)(0);
139
- const [playing, setPlaying] = (0, _react.useState)(false);
140
- const audioRef = (0, _react.useRef)(null);
141
- (0, _react.useEffect)(() => {
142
- if (audioRef.current) {
143
- audioRef.current.playbackRate = speedValue;
144
- }
145
- }, [speedValue]);
146
- (0, _react.useEffect)(() => {
147
- if (audioRef.current) {
148
- const audioElement = audioRef.current;
149
- const handleTimeUpdate = () => {
150
- const {
151
- currentTime,
152
- duration
153
- } = audioElement;
154
- setCurrentTime(Math.round(currentTime));
155
- setRemainingTime(Math.round(duration - currentTime));
156
- };
157
- const handleLoadedMetaData = () => {
158
- const {
159
- currentTime,
160
- duration
161
- } = audioElement;
162
- setCurrentTime(Math.round(currentTime));
163
- setRemainingTime(Math.round(duration - currentTime));
164
- };
165
- const handleTimeEnded = () => {
166
- setPlaying(false);
167
- };
168
- audioElement.addEventListener("timeupdate", handleTimeUpdate);
169
- audioElement.addEventListener("loadedmetadata", handleLoadedMetaData);
170
- audioElement.addEventListener("ended", handleTimeEnded);
171
- return () => {
172
- audioElement.removeEventListener("timeupdate", handleTimeUpdate);
173
- audioElement.removeEventListener("loadedmetadata", handleLoadedMetaData);
174
- audioElement.removeEventListener("ended", handleTimeEnded);
175
- };
176
- }
177
- }, []);
178
- const togglePlay = () => {
179
- if (audioRef.current) {
180
- const audioElement = audioRef.current;
181
- if (!playing) {
182
- audioElement.play();
183
- } else {
184
- audioElement.pause();
185
- }
186
- setPlaying(!playing);
187
- }
188
- };
189
- const onSeekSeconds = seconds => {
190
- if (audioRef.current) {
191
- audioRef.current.currentTime += seconds;
192
- }
193
- };
194
- const handleSliderChange = details => {
195
- const newValue = details.value[0];
196
- if (audioRef.current && newValue != null && !isNaN(newValue)) {
197
- audioRef.current.currentTime = details.value[0];
198
- }
199
- };
200
- const handleVolumeSliderChange = details => {
201
- if (audioRef.current) {
202
- audioRef.current.volume = details.value[0] / 100;
203
- setVolumeValue(details.value[0]);
204
- }
205
- };
206
- return /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
207
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)("audio", {
208
- ref: audioRef,
209
- src: src,
210
- title: title,
211
- preload: "metadata"
212
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(ControlsWrapper, {
213
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(Back15SecButton, {
214
- variant: "tertiary",
215
- title: t("audio.controls.rewind15sec"),
216
- "aria-label": t("audio.controls.rewind15sec"),
217
- onClick: () => onSeekSeconds(-15),
218
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.Replay15Line, {})
219
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(PlayButton, {
220
- "aria-label": t(playing ? t("audio.pause") : t("audio.play")),
221
- variant: "primary",
222
- onClick: togglePlay,
223
- children: playing ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.PauseLine, {}) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.PlayFill, {})
224
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(Forward15SecButton, {
225
- variant: "tertiary",
226
- title: t("audio.controls.forward15sec"),
227
- "aria-label": t("audio.controls.forward15sec"),
228
- onClick: () => onSeekSeconds(15),
229
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.Forward15Line, {})
230
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(ProgressWrapper, {
231
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(StyledText, {
232
- textStyle: "label.medium",
233
- asChild: true,
234
- consumeCss: true,
235
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
236
- children: formatTime(currentTime)
237
- })
238
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_primitives.SliderRoot, {
239
- value: [audioRef.current?.currentTime ?? 0],
240
- defaultValue: [0],
241
- step: 1,
242
- max: Math.round(audioRef.current?.duration ?? 0),
243
- onValueChange: handleSliderChange,
244
- getAriaValueText: value => t("audio.valueText", {
245
- start: formatTime(Math.round(value.value)),
246
- end: formatTime(Math.round(audioRef.current?.duration ?? 0))
247
- }),
248
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.SliderLabel, {
249
- srOnly: true,
250
- children: t("audio.progressBar")
251
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_primitives.SliderControl, {
252
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.SliderTrack, {
253
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.SliderRange, {})
254
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.SliderThumb, {
255
- index: 0,
256
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.SliderHiddenInput, {})
257
- })]
258
- })]
259
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledText, {
260
- textStyle: "label.medium",
261
- asChild: true,
262
- consumeCss: true,
263
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)("div", {
264
- children: ["-", formatTime(remainingTime)]
265
- })
266
- })]
267
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.FieldRoot, {
268
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(StyledSelectRoot, {
269
- collection: speedValues,
270
- value: [speedValue.toString()],
271
- onValueChange: details => setSpeedValue(parseFloat(details.value[0])),
272
- positioning: {
273
- placement: "top"
274
- },
275
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.SelectLabel, {
276
- srOnly: true,
277
- children: t("audio.controls.selectSpeed")
278
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.SelectControl, {
279
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.SelectTrigger, {
280
- asChild: true,
281
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(SpeedButton, {
282
- variant: "tertiary",
283
- title: t("audio.controls.selectSpeed"),
284
- "aria-label": t("audio.controls.selectSpeed"),
285
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
286
- children: `${speedValue}x`
287
- })
288
- })
289
- })
290
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.SelectContent, {
291
- children: speedValues.items.map(speed => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_primitives.SelectItem, {
292
- item: speed,
293
- children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_primitives.SelectItemText, {
294
- children: [speed, "x"]
295
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.SelectItemIndicator, {
296
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.CheckLine, {})
297
- })]
298
- }, speed))
299
- })]
300
- })
301
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(_primitives.PopoverRoot, {
302
- positioning: {
303
- placement: "top"
304
- },
305
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.PopoverTrigger, {
306
- asChild: true,
307
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(VolumeButton, {
308
- variant: "tertiary",
309
- "aria-label": t("audio.controls.adjustVolume"),
310
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_icons.VolumeUpFill, {})
311
- })
312
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledPopoverContent, {
313
- children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_primitives.SliderRoot, {
314
- orientation: "vertical",
315
- value: [volumeValue],
316
- min: 0,
317
- max: 100,
318
- defaultValue: [100],
319
- step: 1,
320
- onValueChange: handleVolumeSliderChange,
321
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.SliderLabel, {
322
- srOnly: true,
323
- children: t("audio.controls.adjustVolume")
324
- }), /*#__PURE__*/(0, _jsxRuntime.jsxs)(StyledSliderControl, {
325
- children: [/*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.SliderTrack, {
326
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.SliderRange, {})
327
- }), /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.SliderThumb, {
328
- index: 0,
329
- children: /*#__PURE__*/(0, _jsxRuntime.jsx)(_primitives.SliderHiddenInput, {})
330
- })]
331
- })]
332
- })
333
- })]
334
- })]
335
- })]
336
- });
73
+ const speedValues = (0, __ark_ui_react.createListCollection)({ items: [
74
+ "0.5",
75
+ "0.75",
76
+ "1",
77
+ "1.25",
78
+ "1.5",
79
+ "1.75",
80
+ "2"
81
+ ] });
82
+ const Controls = ({ src, title }) => {
83
+ const { t } = (0, react_i18next.useTranslation)();
84
+ const [speedValue, setSpeedValue] = (0, react.useState)(1);
85
+ const [volumeValue, setVolumeValue] = (0, react.useState)(100);
86
+ const [currentTime, setCurrentTime] = (0, react.useState)(0);
87
+ const [remainingTime, setRemainingTime] = (0, react.useState)(0);
88
+ const [playing, setPlaying] = (0, react.useState)(false);
89
+ const audioRef = (0, react.useRef)(null);
90
+ (0, react.useEffect)(() => {
91
+ if (audioRef.current) audioRef.current.playbackRate = speedValue;
92
+ }, [speedValue]);
93
+ (0, react.useEffect)(() => {
94
+ if (audioRef.current) {
95
+ const audioElement = audioRef.current;
96
+ const handleTimeUpdate = () => {
97
+ const { currentTime: currentTime$1, duration } = audioElement;
98
+ setCurrentTime(Math.round(currentTime$1));
99
+ setRemainingTime(Math.round(duration - currentTime$1));
100
+ };
101
+ const handleLoadedMetaData = () => {
102
+ const { currentTime: currentTime$1, duration } = audioElement;
103
+ setCurrentTime(Math.round(currentTime$1));
104
+ setRemainingTime(Math.round(duration - currentTime$1));
105
+ };
106
+ const handleTimeEnded = () => {
107
+ setPlaying(false);
108
+ };
109
+ audioElement.addEventListener("timeupdate", handleTimeUpdate);
110
+ audioElement.addEventListener("loadedmetadata", handleLoadedMetaData);
111
+ audioElement.addEventListener("ended", handleTimeEnded);
112
+ return () => {
113
+ audioElement.removeEventListener("timeupdate", handleTimeUpdate);
114
+ audioElement.removeEventListener("loadedmetadata", handleLoadedMetaData);
115
+ audioElement.removeEventListener("ended", handleTimeEnded);
116
+ };
117
+ }
118
+ }, []);
119
+ const togglePlay = () => {
120
+ if (audioRef.current) {
121
+ const audioElement = audioRef.current;
122
+ if (!playing) audioElement.play();
123
+ else audioElement.pause();
124
+ setPlaying(!playing);
125
+ }
126
+ };
127
+ const onSeekSeconds = (seconds) => {
128
+ if (audioRef.current) audioRef.current.currentTime += seconds;
129
+ };
130
+ const handleSliderChange = (details) => {
131
+ const newValue = details.value[0];
132
+ if (audioRef.current && newValue != null && !isNaN(newValue)) audioRef.current.currentTime = details.value[0];
133
+ };
134
+ const handleVolumeSliderChange = (details) => {
135
+ if (audioRef.current) {
136
+ audioRef.current.volume = details.value[0] / 100;
137
+ setVolumeValue(details.value[0]);
138
+ }
139
+ };
140
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)("audio", {
141
+ ref: audioRef,
142
+ src,
143
+ title,
144
+ preload: "metadata"
145
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(ControlsWrapper, { children: [
146
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Back15SecButton, {
147
+ variant: "tertiary",
148
+ title: t("audio.controls.rewind15sec"),
149
+ "aria-label": t("audio.controls.rewind15sec"),
150
+ onClick: () => onSeekSeconds(-15),
151
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__ndla_icons.Replay15Line, {})
152
+ }),
153
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(PlayButton, {
154
+ "aria-label": t(playing ? t("audio.pause") : t("audio.play")),
155
+ variant: "primary",
156
+ onClick: togglePlay,
157
+ children: playing ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__ndla_icons.PauseLine, {}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__ndla_icons.PlayFill, {})
158
+ }),
159
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(Forward15SecButton, {
160
+ variant: "tertiary",
161
+ title: t("audio.controls.forward15sec"),
162
+ "aria-label": t("audio.controls.forward15sec"),
163
+ onClick: () => onSeekSeconds(15),
164
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__ndla_icons.Forward15Line, {})
165
+ }),
166
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(ProgressWrapper, { children: [
167
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StyledText, {
168
+ textStyle: "label.medium",
169
+ asChild: true,
170
+ consumeCss: true,
171
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", { children: formatTime(currentTime) })
172
+ }),
173
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__ndla_primitives.SliderRoot, {
174
+ value: [audioRef.current?.currentTime ?? 0],
175
+ defaultValue: [0],
176
+ step: 1,
177
+ max: Math.round(audioRef.current?.duration ?? 0),
178
+ onValueChange: handleSliderChange,
179
+ getAriaValueText: (value) => t("audio.valueText", {
180
+ start: formatTime(Math.round(value.value)),
181
+ end: formatTime(Math.round(audioRef.current?.duration ?? 0))
182
+ }),
183
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__ndla_primitives.SliderLabel, {
184
+ srOnly: true,
185
+ children: t("audio.progressBar")
186
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__ndla_primitives.SliderControl, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__ndla_primitives.SliderTrack, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__ndla_primitives.SliderRange, {}) }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__ndla_primitives.SliderThumb, {
187
+ index: 0,
188
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__ndla_primitives.SliderHiddenInput, {})
189
+ })] })]
190
+ }),
191
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StyledText, {
192
+ textStyle: "label.medium",
193
+ asChild: true,
194
+ consumeCss: true,
195
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: ["-", formatTime(remainingTime)] })
196
+ })
197
+ ] }),
198
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__ndla_primitives.FieldRoot, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(StyledSelectRoot, {
199
+ collection: speedValues,
200
+ value: [speedValue.toString()],
201
+ onValueChange: (details) => setSpeedValue(parseFloat(details.value[0])),
202
+ positioning: { placement: "top" },
203
+ children: [
204
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__ndla_primitives.SelectLabel, {
205
+ srOnly: true,
206
+ children: t("audio.controls.selectSpeed")
207
+ }),
208
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__ndla_primitives.SelectControl, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__ndla_primitives.SelectTrigger, {
209
+ asChild: true,
210
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(SpeedButton, {
211
+ variant: "tertiary",
212
+ title: t("audio.controls.selectSpeed"),
213
+ "aria-label": t("audio.controls.selectSpeed"),
214
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { children: `${speedValue}x` })
215
+ })
216
+ }) }),
217
+ /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__ndla_primitives.SelectContent, { children: speedValues.items.map((speed) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__ndla_primitives.SelectItem, {
218
+ item: speed,
219
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__ndla_primitives.SelectItemText, { children: [speed, "x"] }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__ndla_primitives.SelectItemIndicator, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__ndla_icons.CheckLine, {}) })]
220
+ }, speed)) })
221
+ ]
222
+ }) }),
223
+ /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__ndla_primitives.PopoverRoot, {
224
+ positioning: { placement: "top" },
225
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__ndla_primitives.PopoverTrigger, {
226
+ asChild: true,
227
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(VolumeButton, {
228
+ variant: "tertiary",
229
+ "aria-label": t("audio.controls.adjustVolume"),
230
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__ndla_icons.VolumeUpFill, {})
231
+ })
232
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(StyledPopoverContent, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__ndla_primitives.SliderRoot, {
233
+ orientation: "vertical",
234
+ value: [volumeValue],
235
+ min: 0,
236
+ max: 100,
237
+ defaultValue: [100],
238
+ step: 1,
239
+ onValueChange: handleVolumeSliderChange,
240
+ children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__ndla_primitives.SliderLabel, {
241
+ srOnly: true,
242
+ children: t("audio.controls.adjustVolume")
243
+ }), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(StyledSliderControl, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__ndla_primitives.SliderTrack, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__ndla_primitives.SliderRange, {}) }), /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__ndla_primitives.SliderThumb, {
244
+ index: 0,
245
+ children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__ndla_primitives.SliderHiddenInput, {})
246
+ })] })]
247
+ }) })]
248
+ })
249
+ ] })] });
337
250
  };
338
- var _default = exports.default = Controls;
251
+ var Controls_default = Controls;
252
+
253
+ //#endregion
254
+ exports.Controls_default = Controls_default;
255
+ //# sourceMappingURL=Controls.js.map