lintje 0.2.0 → 0.4.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 (320) hide show
  1. package/README.md +2 -2
  2. package/dist-elements/actions.js +1 -1
  3. package/dist-elements/chunks/{base-Bg-IFOPG.js → base-DRGvkF-r.js} +484 -309
  4. package/dist-elements/chunks/{controls-B1455oPG.js → controls-_4ac1Lpz.js} +7 -1
  5. package/dist-elements/chunks/{date-format-mHtZyBys.js → date-format-DxP9yfDp.js} +1 -1
  6. package/dist-elements/chunks/dialog-B7aRBtjy.js +28 -0
  7. package/dist-elements/chunks/{disclosure-BXTX04gM.js → disclosure-D39vAR5q.js} +1 -1
  8. package/dist-elements/chunks/{disclosure-CMXhX-Vb.js → disclosure-DirPLy2E.js} +6 -6
  9. package/dist-elements/chunks/download-C68kcwPj.js +206 -0
  10. package/dist-elements/chunks/{focus-trap-9BnE-xWv.js → focus-trap-Dv8zu64A.js} +1 -1
  11. package/dist-elements/chunks/input-BGMLam-O.js +195 -0
  12. package/dist-elements/chunks/input-lQTmOMOz.js +4 -0
  13. package/dist-elements/chunks/{player-DXOZEyEy.js → player-BApadXr8.js} +27 -27
  14. package/dist-elements/chunks/{sentence-BI3lwEuT.js → sentence-0wO85ZdJ.js} +3 -3
  15. package/dist-elements/chunks/{stagger-qGD3wmhg.js → stagger-BB_gcxBI.js} +88 -74
  16. package/dist-elements/content.js +1 -0
  17. package/dist-elements/core.js +1 -1
  18. package/dist-elements/custom-elements.json +8858 -7715
  19. package/dist-elements/data-types.json +6900 -0
  20. package/dist-elements/feedback.js +2 -1
  21. package/dist-elements/frame.js +0 -2
  22. package/dist-elements/guides/dashboard.md +8 -0
  23. package/dist-elements/guides/events.md +4 -5
  24. package/dist-elements/guides/loading.md +10 -9
  25. package/dist-elements/guides/page-contents.md +110 -0
  26. package/dist-elements/guides/start.md +12 -0
  27. package/dist-elements/inputs.js +3 -1
  28. package/dist-elements/layout.js +1 -1
  29. package/dist-elements/lintje.js +8562 -7138
  30. package/dist-elements/overlays.js +2 -2
  31. package/dist-elements/skills/lintje/SKILL.md +1 -1
  32. package/dist-elements/tables.js +1 -1
  33. package/dist-elements/tag/activity-log.js +15 -15
  34. package/dist-elements/tag/ai-label.js +10 -10
  35. package/dist-elements/tag/announcement.js +36 -76
  36. package/dist-elements/tag/app-search.js +49 -49
  37. package/dist-elements/tag/audio-player.js +57 -57
  38. package/dist-elements/tag/badge.d.ts +1 -1
  39. package/dist-elements/tag/badge.js +1 -1
  40. package/dist-elements/tag/breadcrumbs.js +15 -15
  41. package/dist-elements/tag/button.d.ts +1 -1
  42. package/dist-elements/tag/button.js +1 -1
  43. package/dist-elements/tag/card-list.js +12 -12
  44. package/dist-elements/tag/card.js +39 -44
  45. package/dist-elements/tag/chart.js +1357 -787
  46. package/dist-elements/tag/chat-answer.js +49 -49
  47. package/dist-elements/tag/chat-composer.js +75 -71
  48. package/dist-elements/tag/chat-message.js +8 -8
  49. package/dist-elements/tag/chat-strip.js +22 -22
  50. package/dist-elements/tag/chat-suggestions.js +12 -12
  51. package/dist-elements/tag/chat.js +56 -56
  52. package/dist-elements/tag/checkbox-group.d.ts +1 -0
  53. package/dist-elements/tag/checkbox-group.js +60 -0
  54. package/dist-elements/tag/checkbox.js +9 -8
  55. package/dist-elements/tag/code.js +9 -9
  56. package/dist-elements/tag/combobox.js +19 -18
  57. package/dist-elements/tag/conflict-alert.js +12 -12
  58. package/dist-elements/tag/copy-button.js +14 -14
  59. package/dist-elements/tag/data-table.js +880 -532
  60. package/dist-elements/tag/date-input.js +30 -29
  61. package/dist-elements/tag/date-range.js +39 -38
  62. package/dist-elements/tag/description-list.js +29 -32
  63. package/dist-elements/tag/dialog.d.ts +1 -0
  64. package/dist-elements/tag/dialog.js +144 -0
  65. package/dist-elements/tag/document-viewer.js +23 -23
  66. package/dist-elements/tag/drawer.js +28 -32
  67. package/dist-elements/tag/empty-state.js +19 -30
  68. package/dist-elements/tag/error-page.d.ts +1 -0
  69. package/dist-elements/tag/error-page.js +109 -0
  70. package/dist-elements/tag/error-summary.js +10 -10
  71. package/dist-elements/tag/expander.js +8 -8
  72. package/dist-elements/tag/explainer.js +11 -11
  73. package/dist-elements/tag/field.js +5 -5
  74. package/dist-elements/tag/file-upload.js +35 -34
  75. package/dist-elements/tag/filter-bar.js +56 -56
  76. package/dist-elements/tag/filter-sheet.js +11 -11
  77. package/dist-elements/tag/filter-zone.js +31 -31
  78. package/dist-elements/tag/find.d.ts +1 -0
  79. package/dist-elements/tag/find.js +128 -0
  80. package/dist-elements/tag/footer.js +21 -21
  81. package/dist-elements/tag/form-actions.js +29 -25
  82. package/dist-elements/tag/form-section.js +6 -6
  83. package/dist-elements/tag/form.js +12 -12
  84. package/dist-elements/tag/gallery.js +14 -14
  85. package/dist-elements/tag/grid-item.d.ts +1 -1
  86. package/dist-elements/tag/grid-item.js +1 -1
  87. package/dist-elements/tag/grid.d.ts +1 -1
  88. package/dist-elements/tag/grid.js +1 -1
  89. package/dist-elements/tag/hero.js +12 -12
  90. package/dist-elements/tag/highlight.js +5 -5
  91. package/dist-elements/tag/icon-button.d.ts +1 -1
  92. package/dist-elements/tag/icon-button.js +1 -1
  93. package/dist-elements/tag/icon.d.ts +1 -1
  94. package/dist-elements/tag/icon.js +1 -1
  95. package/dist-elements/tag/job-list.js +22 -44
  96. package/dist-elements/tag/kpi-row.js +12 -10
  97. package/dist-elements/tag/kpi.js +149 -140
  98. package/dist-elements/tag/level-meter.js +11 -11
  99. package/dist-elements/tag/list.js +55 -55
  100. package/dist-elements/tag/logo.js +30 -30
  101. package/dist-elements/tag/map.js +702 -671
  102. package/dist-elements/tag/menu-button.js +70 -69
  103. package/dist-elements/tag/modal.js +28 -37
  104. package/dist-elements/tag/multiselect.js +35 -34
  105. package/dist-elements/tag/note.js +5 -5
  106. package/dist-elements/tag/notifications.js +36 -36
  107. package/dist-elements/tag/number-input.js +13 -12
  108. package/dist-elements/tag/page-header.js +140 -37
  109. package/dist-elements/tag/pagination.js +54 -49
  110. package/dist-elements/tag/popover.d.ts +1 -1
  111. package/dist-elements/tag/popover.js +1 -1
  112. package/dist-elements/tag/progress-bar.d.ts +1 -1
  113. package/dist-elements/tag/progress-bar.js +1 -1
  114. package/dist-elements/tag/prose.js +6 -6
  115. package/dist-elements/tag/qr-code.js +7 -7
  116. package/dist-elements/tag/radio-group.js +13 -12
  117. package/dist-elements/tag/range.js +23 -22
  118. package/dist-elements/tag/recording-status.js +14 -14
  119. package/dist-elements/tag/repeater.js +10 -10
  120. package/dist-elements/tag/segmented.js +14 -13
  121. package/dist-elements/tag/select.js +11 -10
  122. package/dist-elements/tag/shell.js +356 -339
  123. package/dist-elements/tag/skeleton.d.ts +1 -1
  124. package/dist-elements/tag/skeleton.js +1 -1
  125. package/dist-elements/tag/slot-picker.js +16 -15
  126. package/dist-elements/tag/sortable-list.js +14 -14
  127. package/dist-elements/tag/spinner.d.ts +1 -1
  128. package/dist-elements/tag/spinner.js +1 -1
  129. package/dist-elements/tag/split-pane.js +12 -12
  130. package/dist-elements/tag/status-dot.d.ts +1 -1
  131. package/dist-elements/tag/status-dot.js +1 -1
  132. package/dist-elements/tag/stepper.js +21 -21
  133. package/dist-elements/tag/streaming-text.js +13 -13
  134. package/dist-elements/tag/sub-nav.js +39 -38
  135. package/dist-elements/tag/tabs.js +38 -38
  136. package/dist-elements/tag/tag-input.js +20 -19
  137. package/dist-elements/tag/text-editor.js +25 -24
  138. package/dist-elements/tag/text-input.js +15 -14
  139. package/dist-elements/tag/textarea.js +15 -14
  140. package/dist-elements/tag/tile.d.ts +1 -1
  141. package/dist-elements/tag/tile.js +1 -1
  142. package/dist-elements/tag/time-input.js +20 -19
  143. package/dist-elements/tag/toast.js +32 -23
  144. package/dist-elements/tag/toggle.js +9 -8
  145. package/dist-elements/tag/toggletip.js +27 -27
  146. package/dist-elements/tag/token-value.d.ts +1 -0
  147. package/dist-elements/tag/token-value.js +75 -0
  148. package/dist-elements/tag/tooltip.d.ts +1 -1
  149. package/dist-elements/tag/tooltip.js +1 -1
  150. package/dist-elements/tag/transcript.js +48 -48
  151. package/dist-elements/tag/translator.js +13 -13
  152. package/dist-elements/tag/tree-view.js +13 -13
  153. package/dist-elements/tag/user-menu.js +37 -37
  154. package/dist-elements/tag/video-player.js +21 -21
  155. package/dist-elements/tokens.css +120 -96
  156. package/dist-elements/tokens.json +1244 -0
  157. package/dist-elements/types/bundle/actions.d.ts +3 -3
  158. package/dist-elements/types/bundle/content.d.ts +1 -0
  159. package/dist-elements/types/bundle/feedback.d.ts +6 -5
  160. package/dist-elements/types/bundle/frame.d.ts +0 -2
  161. package/dist-elements/types/bundle/index.d.ts +0 -10
  162. package/dist-elements/types/bundle/inputs.d.ts +2 -0
  163. package/dist-elements/types/bundle/layout.d.ts +3 -3
  164. package/dist-elements/types/bundle/overlays.d.ts +3 -3
  165. package/dist-elements/types/categories.d.ts +4 -0
  166. package/dist-elements/types/{primitives → components/actions}/button/button.d.ts +13 -10
  167. package/dist-elements/types/components/actions/copy-button/copy-button.d.ts +8 -9
  168. package/dist-elements/types/{icons → components/actions}/icon/icon.d.ts +4 -5
  169. package/dist-elements/types/{primitives → components/actions}/icon-button/icon-button.d.ts +8 -6
  170. package/dist-elements/types/components/actions/menu-button/menu-button.d.ts +16 -18
  171. package/dist-elements/types/components/actions/qr-code/qr-code.d.ts +10 -10
  172. package/dist-elements/types/components/charts/chart/chart.d.ts +6 -5
  173. package/dist-elements/types/components/charts/explainer/explainer.d.ts +1 -1
  174. package/dist-elements/types/components/charts/kpi/kpi.d.ts +19 -11
  175. package/dist-elements/types/components/charts/kpi-row/kpi-row.d.ts +2 -8
  176. package/dist-elements/types/components/charts/note/note.d.ts +2 -2
  177. package/dist-elements/types/components/chat/chat/chat.d.ts +9 -11
  178. package/dist-elements/types/components/chat/chat-answer/chat-answer.d.ts +10 -11
  179. package/dist-elements/types/components/chat/chat-composer/chat-composer.d.ts +10 -12
  180. package/dist-elements/types/components/chat/chat-message/chat-message.d.ts +7 -8
  181. package/dist-elements/types/components/chat/chat-strip/chat-strip.d.ts +5 -5
  182. package/dist-elements/types/components/chat/chat-suggestions/chat-suggestions.d.ts +9 -10
  183. package/dist-elements/types/components/content/audio-player/audio-player.d.ts +15 -17
  184. package/dist-elements/types/components/content/code/code.d.ts +3 -4
  185. package/dist-elements/types/components/content/document-viewer/document-viewer.d.ts +10 -11
  186. package/dist-elements/types/components/content/gallery/gallery.d.ts +5 -4
  187. package/dist-elements/types/components/content/highlight/highlight.d.ts +5 -4
  188. package/dist-elements/types/components/content/prose/prose.d.ts +3 -4
  189. package/dist-elements/types/components/content/token-value/token-value.d.ts +42 -0
  190. package/dist-elements/types/components/content/transcript/transcript.d.ts +15 -28
  191. package/dist-elements/types/components/content/translator/translator.d.ts +12 -16
  192. package/dist-elements/types/components/content/video-player/video-player.d.ts +12 -14
  193. package/dist-elements/types/components/feedback/ai-label/ai-label.d.ts +3 -4
  194. package/dist-elements/types/components/feedback/announcement/announcement.d.ts +5 -9
  195. package/dist-elements/types/{primitives → components/feedback}/badge/badge.d.ts +10 -6
  196. package/dist-elements/types/components/feedback/conflict-alert/conflict-alert.d.ts +4 -5
  197. package/dist-elements/types/components/feedback/empty-state/empty-state.d.ts +5 -8
  198. package/dist-elements/types/components/feedback/error-page/error-page.d.ts +52 -0
  199. package/dist-elements/types/components/feedback/job-list/job-list.d.ts +9 -12
  200. package/dist-elements/types/components/feedback/level-meter/level-meter.d.ts +4 -6
  201. package/dist-elements/types/{primitives → components/feedback}/progress-bar/progress-bar.d.ts +9 -7
  202. package/dist-elements/types/components/feedback/recording-status/recording-status.d.ts +5 -6
  203. package/dist-elements/types/{primitives → components/feedback}/skeleton/skeleton.d.ts +2 -2
  204. package/dist-elements/types/{primitives → components/feedback}/spinner/spinner.d.ts +2 -3
  205. package/dist-elements/types/{primitives → components/feedback}/status-dot/status-dot.d.ts +5 -6
  206. package/dist-elements/types/components/feedback/streaming-text/streaming-text.d.ts +12 -9
  207. package/dist-elements/types/components/feedback/toast/toast.d.ts +8 -9
  208. package/dist-elements/types/components/filters/filter-bar/filter-bar.d.ts +9 -4
  209. package/dist-elements/types/components/filters/filter-sheet/filter-sheet.d.ts +7 -7
  210. package/dist-elements/types/components/filters/filter-zone/filter-zone.d.ts +4 -4
  211. package/dist-elements/types/components/forms/error-summary/error-summary.d.ts +6 -7
  212. package/dist-elements/types/components/forms/form/form.d.ts +5 -5
  213. package/dist-elements/types/components/forms/form-actions/form-actions.d.ts +10 -8
  214. package/dist-elements/types/components/forms/form-section/form-section.d.ts +6 -5
  215. package/dist-elements/types/components/forms/repeater/repeater.d.ts +15 -9
  216. package/dist-elements/types/components/forms/stepper/stepper.d.ts +6 -5
  217. package/dist-elements/types/components/frame/app-search/app-search.d.ts +7 -8
  218. package/dist-elements/types/components/frame/breadcrumbs/breadcrumbs.d.ts +2 -2
  219. package/dist-elements/types/components/frame/footer/footer.d.ts +3 -2
  220. package/dist-elements/types/components/frame/hero/hero.d.ts +7 -9
  221. package/dist-elements/types/components/frame/notifications/notifications.d.ts +7 -11
  222. package/dist-elements/types/components/frame/page-header/page-header.d.ts +13 -16
  223. package/dist-elements/types/components/frame/shell/shell.d.ts +15 -14
  224. package/dist-elements/types/components/frame/sub-nav/sub-nav.d.ts +10 -6
  225. package/dist-elements/types/components/frame/user-menu/user-menu.d.ts +13 -12
  226. package/dist-elements/types/components/index.d.ts +51 -12
  227. package/dist-elements/types/components/inputs/checkbox/checkbox.d.ts +4 -4
  228. package/dist-elements/types/components/inputs/checkbox-group/checkbox-group.d.ts +33 -0
  229. package/dist-elements/types/components/inputs/combobox/combobox.d.ts +14 -8
  230. package/dist-elements/types/components/inputs/date-input/date-input.d.ts +6 -6
  231. package/dist-elements/types/components/inputs/date-range/date-range.d.ts +13 -8
  232. package/dist-elements/types/components/inputs/field/field.d.ts +5 -3
  233. package/dist-elements/types/components/inputs/file-upload/file-upload.d.ts +8 -10
  234. package/dist-elements/types/components/inputs/find/find.d.ts +51 -0
  235. package/dist-elements/types/components/inputs/multiselect/multiselect.d.ts +4 -6
  236. package/dist-elements/types/components/inputs/number-input/number-input.d.ts +8 -7
  237. package/dist-elements/types/components/inputs/radio-group/radio-group.d.ts +2 -4
  238. package/dist-elements/types/components/inputs/range/range.d.ts +5 -6
  239. package/dist-elements/types/components/inputs/segmented/segmented.d.ts +7 -4
  240. package/dist-elements/types/components/inputs/select/select.d.ts +6 -3
  241. package/dist-elements/types/components/inputs/shared/input.d.ts +1 -1
  242. package/dist-elements/types/components/inputs/slot-picker/slot-picker.d.ts +6 -5
  243. package/dist-elements/types/components/inputs/tag-input/tag-input.d.ts +8 -6
  244. package/dist-elements/types/components/inputs/text-editor/text-editor.d.ts +8 -8
  245. package/dist-elements/types/components/inputs/text-input/text-input.d.ts +12 -7
  246. package/dist-elements/types/components/inputs/textarea/textarea.d.ts +12 -11
  247. package/dist-elements/types/components/inputs/time-input/time-input.d.ts +8 -9
  248. package/dist-elements/types/components/inputs/toggle/toggle.d.ts +3 -1
  249. package/dist-elements/types/components/layout/expander/expander.d.ts +10 -11
  250. package/dist-elements/types/{primitives → components/layout}/grid/grid.d.ts +4 -4
  251. package/dist-elements/types/{primitives → components/layout}/grid-item/grid-item.d.ts +2 -2
  252. package/dist-elements/types/components/layout/split-pane/split-pane.d.ts +6 -6
  253. package/dist-elements/types/components/layout/tabs/tabs.d.ts +12 -10
  254. package/dist-elements/types/{primitives → components/layout}/tile/tile.d.ts +22 -10
  255. package/dist-elements/types/components/map/map/map.d.ts +12 -11
  256. package/dist-elements/types/components/overlays/dialog/dialog.d.ts +49 -0
  257. package/dist-elements/types/components/overlays/drawer/drawer.d.ts +6 -5
  258. package/dist-elements/types/components/overlays/modal/modal.d.ts +9 -14
  259. package/dist-elements/types/{primitives → components/overlays}/popover/popover.d.ts +7 -6
  260. package/dist-elements/types/components/overlays/toggletip/toggletip.d.ts +4 -8
  261. package/dist-elements/types/{primitives → components/overlays}/tooltip/tooltip.d.ts +8 -8
  262. package/dist-elements/types/components/shared/announcement-block.d.ts +38 -0
  263. package/dist-elements/types/components/shared/charts/index.d.ts +5 -1
  264. package/dist-elements/types/components/shared/charts/kinds.d.ts +92 -0
  265. package/dist-elements/types/components/shared/charts/line-chart/line-chart.d.ts +2 -2
  266. package/dist-elements/types/components/shared/charts/map-chart/leaflet.d.ts +5 -0
  267. package/dist-elements/types/components/shared/charts/map-chart/map-chart.d.ts +1 -1
  268. package/dist-elements/types/components/shared/charts/radar-chart/radar-chart.d.ts +31 -0
  269. package/dist-elements/types/components/shared/charts/shared/axes.d.ts +3 -1
  270. package/dist-elements/types/components/shared/charts/shared/chart-states.d.ts +8 -19
  271. package/dist-elements/types/components/shared/charts/shared/controller.d.ts +12 -0
  272. package/dist-elements/types/components/shared/charts/shared/types.d.ts +62 -0
  273. package/dist-elements/types/components/shared/charts/stacked-area-chart/stacked-area-chart.d.ts +13 -0
  274. package/dist-elements/types/components/shared/content-tile.d.ts +1 -1
  275. package/dist-elements/types/components/{forms/form → shared}/controls.d.ts +3 -2
  276. package/dist-elements/types/components/shared/dialog.d.ts +9 -0
  277. package/dist-elements/types/components/shared/empty-state-block.d.ts +26 -0
  278. package/dist-elements/types/components/shared/overflow.d.ts +58 -0
  279. package/dist-elements/types/components/shared/tone.d.ts +18 -0
  280. package/dist-elements/types/components/tables/activity-log/activity-log.d.ts +3 -4
  281. package/dist-elements/types/components/tables/card/card.d.ts +17 -23
  282. package/dist-elements/types/components/tables/card-list/card-list.d.ts +9 -11
  283. package/dist-elements/types/components/tables/data-table/actions.d.ts +1 -1
  284. package/dist-elements/types/components/tables/data-table/data-table.d.ts +88 -19
  285. package/dist-elements/types/components/tables/data-table/editing.d.ts +1 -1
  286. package/dist-elements/types/components/tables/data-table/filters.d.ts +15 -6
  287. package/dist-elements/types/components/tables/description-list/description-list.d.ts +13 -12
  288. package/dist-elements/types/components/tables/list/list.d.ts +13 -24
  289. package/dist-elements/types/components/tables/pagination/pagination.d.ts +12 -11
  290. package/dist-elements/types/components/tables/sortable-list/sortable-list.d.ts +5 -6
  291. package/dist-elements/types/components/tables/tree-view/tree-view.d.ts +5 -5
  292. package/dist-elements/types/core/focus.d.ts +1 -1
  293. package/dist-elements/types/core/media.d.ts +2 -2
  294. package/dist-elements/types/core/motion.d.ts +5 -0
  295. package/dist-elements/types/core/print.d.ts +15 -0
  296. package/dist-elements/types/core/shortcuts.d.ts +2 -2
  297. package/dist-elements/types/icons/register.d.ts +1 -1
  298. package/dist-elements/types/types.d.ts +70 -10
  299. package/dist-icons/functioneel-kolommen.svg +1 -0
  300. package/dist-icons/functioneel-trechter.svg +1 -0
  301. package/package.json +1 -1
  302. package/dist-elements/chunks/confirm-dialog-D5EVGuil.js +0 -4
  303. package/dist-elements/chunks/download-y528pIHP.js +0 -230
  304. package/dist-elements/chunks/input-BtuNFSWk.js +0 -195
  305. package/dist-elements/tag/confirm-dialog.d.ts +0 -1
  306. package/dist-elements/tag/confirm-dialog.js +0 -118
  307. package/dist-elements/tag/session-expiry.d.ts +0 -1
  308. package/dist-elements/tag/session-expiry.js +0 -184
  309. package/dist-elements/tag/shortcuts.d.ts +0 -1
  310. package/dist-elements/tag/shortcuts.js +0 -104
  311. package/dist-elements/types/components/frame/session-expiry/session-expiry.d.ts +0 -55
  312. package/dist-elements/types/components/frame/shortcuts/shortcuts.d.ts +0 -41
  313. package/dist-elements/types/components/overlays/confirm-dialog/confirm-dialog.d.ts +0 -41
  314. package/dist-elements/types/primitives/index.d.ts +0 -33
  315. /package/dist-elements/types/components/content/{audio-player → shared}/playback.d.ts +0 -0
  316. /package/dist-elements/types/components/content/{audio-player → shared}/player.d.ts +0 -0
  317. /package/dist-elements/types/components/{inputs/date-input → shared}/date-format.d.ts +0 -0
  318. /package/dist-elements/types/{primitives → components}/shared/grid-item-element.d.ts +0 -0
  319. /package/dist-elements/types/{primitives → components}/shared/length.d.ts +0 -0
  320. /package/dist-elements/types/{primitives → components}/shared/place.d.ts +0 -0
@@ -1,13 +1,13 @@
1
- import { $ as e, Bt as t, G as n, Gt as r, Ht as i, I as a, Z as o, et as s, qt as c, zt as l } from "../chunks/base-Bg-IFOPG.js";
1
+ import { H as e, Jt as t, Yt as n, Zt as r, en as i, et as a, lt as o, nn as s, st as c, ut as l } from "../chunks/base-DRGvkF-r.js";
2
2
  import { n as u, nextRow as d, renderMenuEntries as f, t as p } from "./menu-button.js";
3
3
  //#region src/components/frame/user-menu/user-menu.css?inline
4
- var m = "/*\n * The host is the avatar button's `--h-touch` box in the navigation bar; the menu is a fixed popover\n * and takes no space. `inline`, it is a block at the bottom of the mobile navigation.\n * `menu-button.css` is adopted beside this file: the rows are its `.lintje-menu__row`.\n */\n:host { display: inline-flex; flex: none; vertical-align: middle; }\n:host([inline]) { display: block; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n/* The avatar and the chevron that says it opens a menu; at least `--h-touch` high. */\n.lintje-user-menu__trigger {\n display: flex; align-items: center; justify-content: center;\n gap: var(--space-2);\n min-width: var(--h-touch); height: var(--lintje-tool-height, var(--h-touch));\n padding: 0 var(--space-3);\n color: var(--color-nav-text);\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-user-menu__trigger:hover,\n.lintje-user-menu__trigger.is-open { background: var(--color-nav-hover); }\n\n.lintje-user-menu__avatar {\n display: flex; align-items: center; justify-content: center;\n flex: none;\n width: 2rem; height: 2rem;\n border-radius: var(--radius-round);\n background: var(--color-nav-avatar-bg);\n color: var(--color-nav-avatar-text);\n font-size: 0.875rem; font-weight: 700;\n}\n\n.lintje-user-menu__panel {\n width: 17.5rem;\n max-width: 100%;\n font: var(--text-ui);\n color: var(--color-text-primary);\n}\n\n.lintje-user-menu__who {\n display: flex; align-items: center; gap: var(--space-3);\n padding: var(--space-3) var(--space-4);\n border-bottom: 1px solid var(--color-border-default);\n}\n.lintje-user-menu__names { min-width: 0; }\n.lintje-user-menu__name { margin: 0; font-weight: 700; overflow-wrap: anywhere; }\n.lintje-user-menu__role { margin: 0; font-size: 0.875rem; color: var(--color-text-muted); }\n\n.lintje-user-menu__group { display: flex; flex-direction: column; padding: var(--space-1) 0; }\n.lintje-user-menu__group--logout { border-top: 1px solid var(--color-border-default); }\n.lintje-user-menu__group:first-child.lintje-user-menu__group--logout { border-top: 0; }\n.lintje-user-menu__logout { display: flex; flex-direction: column; margin: 0; }\n.lintje-user-menu__logout-row { font-weight: 700; }\n\n.lintje-user-menu__version {\n margin: 0;\n padding: var(--space-2) var(--space-4);\n border-top: 1px solid var(--color-border-default);\n font-size: 0.875rem;\n color: var(--color-text-muted);\n}\n\n.lintje-user-menu__panel.is-inline { width: 100%; color: var(--color-nav-text); }\n.lintje-user-menu__panel.is-inline .lintje-user-menu__who,\n.lintje-user-menu__panel.is-inline .lintje-user-menu__group--logout,\n.lintje-user-menu__panel.is-inline .lintje-user-menu__version { border-color: var(--color-nav-line); }\n.lintje-user-menu__panel.is-inline .lintje-user-menu__who { padding: var(--space-4) var(--space-5); }\n/* Small text on the theme fill takes the menu's own ink: the sub tint is 3.82:1 on #01689B. */\n.lintje-user-menu__panel.is-inline .lintje-user-menu__role,\n.lintje-user-menu__panel.is-inline .lintje-user-menu__version,\n.lintje-user-menu__panel.is-inline .lintje-menu__hint { color: var(--color-nav-text); }\n.lintje-user-menu__panel.is-inline .lintje-user-menu__version { padding: var(--space-2) var(--space-5); }\n.lintje-user-menu__panel.is-inline .lintje-menu__row {\n height: var(--h-touch);\n padding: 0 var(--space-5);\n color: var(--color-nav-text);\n}\n.lintje-user-menu__panel.is-inline .lintje-menu__row:hover { background: var(--color-nav-hover); }\n.lintje-user-menu__panel.is-inline .lintje-menu__row.is-disabled,\n.lintje-user-menu__panel.is-inline .lintje-menu__row.is-disabled .lintje-menu__hint { color: var(--color-nav-disabled); }\n.lintje-user-menu__panel.is-inline .lintje-menu__separator { background: var(--color-nav-line); }\n\n/* On the theme fill the orange ring disappears: the on-theme ring, as the side menu. */\n.lintje-user-menu__trigger:focus-visible,\n.lintje-user-menu__panel.is-inline :focus-visible { outline-color: var(--color-focus-on-theme); }\n\n/* Forced colours: the open button keeps a Highlight edge, the avatar a CanvasText ring. */\n@media (forced-colors: active) {\n .lintje-user-menu__trigger:focus-visible,\n .lintje-user-menu__panel.is-inline :focus-visible { outline-color: Highlight; }\n .lintje-user-menu__trigger.is-open:not(:focus-visible) { outline: 1px solid Highlight; outline-offset: -1px; }\n .lintje-user-menu__avatar { border: 1px solid CanvasText; }\n}\n", h = 0, g = class extends l {
4
+ var m = "/*\n * The host is the avatar button's `--h-touch` box in the navigation bar; the menu is a fixed popover\n * and takes no space. `inline`, it is a block at the bottom of the mobile navigation.\n * `menu-button.css` is adopted beside this file: the rows are its `.lintje-menu__row`.\n */\n:host { display: inline-flex; flex: none; vertical-align: middle; }\n:host([inline]) { display: block; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n/* The avatar and the chevron that says it opens a menu; at least `--h-touch` high. */\n.lintje-user-menu__trigger {\n display: flex; align-items: center; justify-content: center;\n gap: var(--space-2);\n min-width: var(--h-touch); height: var(--lintje-tool-height, var(--h-touch));\n padding: 0 var(--space-3);\n color: var(--color-nav-text);\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-user-menu__trigger:hover,\n.lintje-user-menu__trigger.is-open { background: var(--color-nav-hover); }\n\n.lintje-user-menu__avatar {\n display: flex; align-items: center; justify-content: center;\n flex: none;\n width: 2rem; height: 2rem;\n border-radius: var(--radius-round);\n background: var(--color-nav-avatar-bg);\n color: var(--color-nav-avatar-text);\n font-size: 0.875rem; font-weight: 700;\n}\n\n.lintje-user-menu__panel {\n width: 17.5rem;\n max-width: 100%;\n font: var(--text-ui);\n color: var(--color-text-primary);\n}\n\n.lintje-user-menu__who {\n display: flex; align-items: center; gap: var(--space-3);\n padding: var(--space-3) var(--space-4);\n border-bottom: 1px solid var(--color-border-default);\n}\n.lintje-user-menu__names { min-width: 0; }\n.lintje-user-menu__name { margin: 0; font-weight: 700; overflow-wrap: anywhere; }\n.lintje-user-menu__role { margin: 0; font-size: 0.875rem; color: var(--color-text-muted); }\n\n.lintje-user-menu__group { display: flex; flex-direction: column; padding: var(--space-1) 0; }\n.lintje-user-menu__group--logout { border-top: 1px solid var(--color-border-default); }\n.lintje-user-menu__group:first-child.lintje-user-menu__group--logout { border-top: 0; }\n.lintje-user-menu__logout { display: flex; flex-direction: column; margin: 0; }\n.lintje-user-menu__logout-row { font-weight: 700; }\n\n.lintje-user-menu__version {\n margin: 0;\n padding: var(--space-2) var(--space-4);\n border-top: 1px solid var(--color-border-default);\n font-size: 0.875rem;\n color: var(--color-text-muted);\n}\n\n.lintje-user-menu__panel.is-inline { width: 100%; color: var(--color-nav-text); }\n.lintje-user-menu__panel.is-inline .lintje-user-menu__who,\n.lintje-user-menu__panel.is-inline .lintje-user-menu__group--logout,\n.lintje-user-menu__panel.is-inline .lintje-user-menu__version { border-color: var(--color-nav-line); }\n.lintje-user-menu__panel.is-inline .lintje-user-menu__who { padding: var(--space-4) var(--space-5); }\n/* Small text on the theme fill takes the menu's own ink: the sub tint is 3.82:1 on #01689B. */\n.lintje-user-menu__panel.is-inline .lintje-user-menu__role,\n.lintje-user-menu__panel.is-inline .lintje-user-menu__version,\n.lintje-user-menu__panel.is-inline .lintje-menu__hint { color: var(--color-nav-text); }\n.lintje-user-menu__panel.is-inline .lintje-user-menu__version { padding: var(--space-2) var(--space-5); }\n.lintje-user-menu__panel.is-inline .lintje-menu__row {\n height: var(--h-touch);\n padding: 0 var(--space-5);\n color: var(--color-nav-text);\n}\n.lintje-user-menu__panel.is-inline .lintje-menu__row:hover { background: var(--color-nav-hover); }\n.lintje-user-menu__panel.is-inline .lintje-menu__row.is-disabled,\n.lintje-user-menu__panel.is-inline .lintje-menu__row.is-disabled .lintje-menu__hint { color: var(--color-nav-disabled); }\n.lintje-user-menu__panel.is-inline .lintje-menu__separator { background: var(--color-nav-line); }\n\n/* On the theme fill the orange ring disappears: the on-theme ring, as the side menu. */\n.lintje-user-menu__trigger:focus-visible,\n.lintje-user-menu__panel.is-inline :focus-visible { outline-color: var(--color-focus-on-theme); }\n\n/* Forced colours: the open button keeps a Highlight edge, the avatar a CanvasText ring. */\n@media (forced-colors: active) {\n .lintje-user-menu__trigger:focus-visible,\n .lintje-user-menu__panel.is-inline :focus-visible { outline-color: Highlight; }\n .lintje-user-menu__trigger.is-open:not(:focus-visible) { outline: 1px solid Highlight; outline-offset: -1px; }\n .lintje-user-menu__avatar { border: 1px solid CanvasText; }\n}\n", h = 0, g = class extends t {
5
5
  static {
6
6
  this.styles = [
7
- e,
8
- i(u),
9
- i(p),
10
- i(m)
7
+ o,
8
+ r(u),
9
+ r(p),
10
+ r(m)
11
11
  ];
12
12
  }
13
13
  static {
@@ -58,7 +58,7 @@ var m = "/*\n * The host is the avatar button's `--h-touch` box in the navigatio
58
58
  constructor() {
59
59
  super(), this.items = [], this.csrf = "", this.inline = !1, this.open = !1, this.#e = `lintje-user-menu-${++h}`, this.#t = null, this.onFocusOut = (e) => {
60
60
  let t = e.relatedTarget;
61
- this.open && t && !n(t, this) && !n(this, t) && this.hide(!1);
61
+ this.open && t && !a(t, this) && !a(this, t) && this.hide(!1);
62
62
  }, this.onTriggerKeydown = (e) => {
63
63
  (e.key === "ArrowDown" || e.key === "ArrowUp") && (e.preventDefault(), this.show(e.key === "ArrowDown" ? "first" : "last"));
64
64
  }, this.onMenuKeydown = (e) => {
@@ -90,8 +90,8 @@ var m = "/*\n * The host is the avatar button's `--h-touch` box in the navigatio
90
90
  onPopoverClose(e) {
91
91
  e.stopPropagation(), this.hide(e.detail?.reason === "escape");
92
92
  }
93
- choose(e, t) {
94
- e.disabled ? t.preventDefault() : (!e.href || a(t)) && (this.hide(!this.inline), this.emit("lintje-action", e.value), e.href && this.followLink(e.href, t));
93
+ choose(t, n) {
94
+ t.disabled ? n.preventDefault() : (!t.href || e(n)) && (this.hide(!this.inline), this.emit("lintje-action", t.value), t.href && this.followLink(t.href, n));
95
95
  }
96
96
  logout() {
97
97
  this.hide(!this.inline), this.emit("lintje-logout");
@@ -103,41 +103,41 @@ var m = "/*\n * The host is the avatar button's `--h-touch` box in the navigatio
103
103
  }
104
104
  }
105
105
  renderRow(e) {
106
- let t = this.inline ? r : "menuitem", n = this.inline ? r : "-1", i = o({
106
+ let t = this.inline ? i : "menuitem", n = this.inline ? i : "-1", r = c({
107
107
  "lintje-menu__row": !0,
108
108
  "focus-inset": !0,
109
109
  "is-danger": !!e.danger,
110
110
  "is-disabled": !!e.disabled
111
- }), a = c`${e.icon ? s(e.icon, {
111
+ }), a = s`${e.icon ? l(e.icon, {
112
112
  size: 16,
113
113
  className: "lintje-menu__icon"
114
- }) : r}<span class="lintje-menu__label">${e.label}</span>${e.hint ? c`<span class="lintje-menu__hint">${e.hint}</span>` : r}`;
115
- if (e.href && !e.disabled) return c`<a
116
- class=${i}
114
+ }) : i}<span class="lintje-menu__label">${e.label}</span>${e.hint ? s`<span class="lintje-menu__hint">${e.hint}</span>` : i}`;
115
+ if (e.href && !e.disabled) return s`<a
116
+ class=${r}
117
117
  role=${t}
118
118
  tabindex=${n}
119
119
  href=${e.href}
120
120
  @click=${(t) => this.choose(e, t)}
121
121
  >${a}</a
122
122
  >`;
123
- let l = c`<button
123
+ let o = s`<button
124
124
  type="button"
125
- class=${i}
125
+ class=${r}
126
126
  role=${t}
127
127
  tabindex=${n}
128
- aria-disabled=${e.disabled ? "true" : r}
128
+ aria-disabled=${e.disabled ? "true" : i}
129
129
  @click=${(t) => this.choose(e, t)}
130
130
  >
131
131
  ${a}
132
132
  </button>`;
133
- return e.disabled && e.reason ? c`<lintje-tooltip class="lintje-menu__tip" text=${e.reason}>${l}</lintje-tooltip>` : l;
133
+ return e.disabled && e.reason ? s`<lintje-tooltip class="lintje-menu__tip" text=${e.reason}>${o}</lintje-tooltip>` : o;
134
134
  }
135
135
  renderLogout() {
136
- let e = this.inline ? r : "menuitem", t = this.inline ? r : "-1", n = s("functioneel-uitloggen", {
136
+ let e = this.inline ? i : "menuitem", t = this.inline ? i : "-1", n = l("functioneel-uitloggen", {
137
137
  size: 16,
138
138
  className: "lintje-menu__icon"
139
- }), i = c`${n}<span class="lintje-menu__label">Afmelden</span>`;
140
- return this.logoutAction ? c`<form class="lintje-user-menu__logout" method="post" action=${this.logoutAction}>
139
+ }), r = s`${n}<span class="lintje-menu__label">Afmelden</span>`;
140
+ return this.logoutAction ? s`<form class="lintje-user-menu__logout" method="post" action=${this.logoutAction}>
141
141
  <input type="hidden" name="csrf_token" .value=${this.csrf} />
142
142
  <button
143
143
  type="submit"
@@ -145,53 +145,53 @@ var m = "/*\n * The host is the avatar button's `--h-touch` box in the navigatio
145
145
  role=${e}
146
146
  tabindex=${t}
147
147
  >
148
- ${i}
148
+ ${r}
149
149
  </button>
150
- </form>` : c`<button
150
+ </form>` : s`<button
151
151
  type="button"
152
152
  class="lintje-menu__row lintje-user-menu__logout-row focus-inset"
153
153
  role=${e}
154
154
  tabindex=${t}
155
155
  @click=${() => this.logout()}
156
156
  >
157
- ${i}
157
+ ${r}
158
158
  </button>`;
159
159
  }
160
160
  renderContent() {
161
161
  let e = this.user;
162
- return c`<div
163
- class=${o({
162
+ return s`<div
163
+ class=${c({
164
164
  "lintje-user-menu__panel": !0,
165
165
  "is-inline": this.inline
166
166
  })}
167
167
  @keydown=${this.onMenuKeydown}
168
168
  >
169
- ${e ? c`<div class="lintje-user-menu__who">
170
- ${this.inline ? c`<span class="lintje-user-menu__avatar" aria-hidden="true">${e.initials}</span>` : r}
169
+ ${e ? s`<div class="lintje-user-menu__who">
170
+ ${this.inline ? s`<span class="lintje-user-menu__avatar" aria-hidden="true">${e.initials}</span>` : i}
171
171
  <div class="lintje-user-menu__names">
172
172
  <p class="lintje-user-menu__name">${e.name}</p>
173
- ${e.role ? c`<p class="lintje-user-menu__role">${e.role}</p>` : r}
173
+ ${e.role ? s`<p class="lintje-user-menu__role">${e.role}</p>` : i}
174
174
  </div>
175
- </div>` : r}
175
+ </div>` : i}
176
176
  <div
177
177
  class="lintje-user-menu__menu"
178
178
  role=${this.inline ? "group" : "menu"}
179
179
  aria-label=${e ? `Menu van ${e.name}` : "Gebruikersmenu"}
180
180
  >
181
- ${this.items.length ? c`<div class="lintje-user-menu__group">
181
+ ${this.items.length ? s`<div class="lintje-user-menu__group">
182
182
  ${f(this.items, "lintje-user-menu", (e) => this.renderRow(e))}
183
- </div>` : r}
183
+ </div>` : i}
184
184
  <div class="lintje-user-menu__group lintje-user-menu__group--logout">${this.renderLogout()}</div>
185
185
  </div>
186
- ${this.version ? c`<p class="lintje-user-menu__version">Versie ${this.version}</p>` : r}
186
+ ${this.version ? s`<p class="lintje-user-menu__version">Versie ${this.version}</p>` : i}
187
187
  </div>`;
188
188
  }
189
189
  render() {
190
190
  if (this.inline) return this.renderContent();
191
191
  let e = this.user;
192
- return c`<button
192
+ return s`<button
193
193
  type="button"
194
- class=${o({
194
+ class=${c({
195
195
  "lintje-user-menu__trigger": !0,
196
196
  "is-open": this.open
197
197
  })}
@@ -203,7 +203,7 @@ var m = "/*\n * The host is the avatar button's `--h-touch` box in the navigatio
203
203
  @keydown=${this.onTriggerKeydown}
204
204
  >
205
205
  <span class="lintje-user-menu__avatar" aria-hidden="true">${e?.initials ?? ""}</span>
206
- ${s("functioneel-delta-omlaag", {
206
+ ${l("functioneel-delta-omlaag", {
207
207
  size: 16,
208
208
  rotate: this.open ? 180 : void 0
209
209
  })}
@@ -217,6 +217,6 @@ var m = "/*\n * The host is the avatar button's `--h-touch` box in the navigatio
217
217
  >`;
218
218
  }
219
219
  };
220
- t("lintje-user-menu", g);
220
+ n("lintje-user-menu", g);
221
221
  //#endregion
222
222
  export { g as LintjeUserMenu };
@@ -1,9 +1,9 @@
1
- import { $ as e, Bt as t, Gt as n, Ht as r, Z as i, et as a, j as o, q as s, qt as c } from "../chunks/base-Bg-IFOPG.js";
1
+ import { L as e, Yt as t, Zt as n, en as r, lt as i, nn as a, rt as o, st as s, ut as c } from "../chunks/base-DRGvkF-r.js";
2
2
  import "./menu-button.js";
3
3
  import { n as l, o as u, p as d } from "../chunks/playback-DZJ_NMXv.js";
4
- import { n as f, t as p } from "../chunks/player-DXOZEyEy.js";
4
+ import { n as f, t as p } from "../chunks/player-BApadXr8.js";
5
5
  //#region src/components/content/video-player/video-player.css?inline
6
- var m = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-video-player {\n border: 1px solid var(--color-border-default);\n background: var(--color-bg-surface);\n color: var(--color-text-primary);\n}\n\n/* No surface token stays black in dark, so the surface takes the ink on a light fill. */\n.lintje-video-player__stage {\n position: relative;\n aspect-ratio: 16 / 9;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--color-text-on-light-fill);\n overflow: hidden;\n}\n.lintje-video-player__video {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: contain;\n background: var(--color-text-on-light-fill);\n}\n\n/* What stands on the picture has a white edge, so the fill keeps apart from the dark. */\n.lintje-video-player__big-play.lintje-button,\n.lintje-video-player__retry.lintje-button {\n position: relative;\n border: 2px solid var(--color-text-on-fill);\n}\n.lintje-video-player__big-play.lintje-button { width: 64px; height: 64px; padding: 0; }\n.lintje-video-player__big-play.lintje-button.is-disabled {\n border-color: var(--color-text-on-fill);\n}\n\n/* A failed load says so where the picture would be: the announcement's light fill would float. */\n.lintje-video-player__failed {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--space-3);\n padding: 0 var(--space-6);\n text-align: center;\n color: var(--color-text-on-fill);\n}\n.lintje-video-player__failed-mark {\n width: var(--space-6);\n height: var(--space-6);\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--color-error);\n color: var(--color-text-inverse);\n}\n.lintje-video-player__failed-text { margin: 0; font: var(--text-ui); font-weight: 700; }\n\n.lintje-video-player__caption {\n position: absolute;\n left: var(--space-4);\n right: var(--space-4);\n bottom: var(--space-4);\n text-align: center;\n pointer-events: none;\n}\n.lintje-video-player__caption-text {\n padding: 2px var(--space-2);\n background: var(--color-text-on-light-fill);\n color: var(--color-text-on-fill);\n font: var(--text-body);\n box-decoration-break: clone;\n -webkit-box-decoration-break: clone;\n}\n\n/* Two lines at every width: the time beside the bar keeps the buttons on one line in a tile. */\n.lintje-video-player__controls {\n display: flex;\n flex-direction: column;\n gap: var(--space-2);\n padding: var(--space-3) var(--space-3) var(--space-2);\n}\n.lintje-video-player__timeline { display: flex; align-items: center; gap: var(--space-3); }\n.lintje-video-player__buttons { display: flex; align-items: center; gap: var(--space-1); }\n.lintje-video-player__speed {\n flex: none;\n padding: 0 var(--space-1);\n background: var(--color-term-bg);\n color: var(--color-accent-text);\n font: var(--text-small);\n font-weight: 700;\n font-variant-numeric: tabular-nums;\n}\n/* The menu's trigger takes the 48 px of the player's other buttons. */\n.lintje-video-player__more { margin-left: auto; --h-icon-button: var(--h-touch); }\n\n.lintje-video-player:fullscreen { display: flex; flex-direction: column; border: 0; }\n.lintje-video-player:fullscreen .lintje-video-player__stage {\n flex: 1 1 auto;\n min-height: 0;\n aspect-ratio: auto;\n}\n\n@media (max-width: 767px) {\n .lintje-video-player { border-left: 0; border-right: 0; }\n}\n\n/* Forced colours drop the fills: the speed and the mark keep an outline. */\n@media (forced-colors: active) {\n .lintje-video-player__speed,\n .lintje-video-player__failed-mark { outline: 1px solid CanvasText; }\n}\n", h = "ondertiteling", g = "audiodescriptie";
6
+ var m = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-video-player {\n border: 1px solid var(--color-border-default);\n background: var(--color-bg-surface);\n color: var(--color-text-primary);\n}\n\n/* No surface token stays black in dark, so the surface takes the ink on a light fill. */\n.lintje-video-player__stage {\n position: relative;\n aspect-ratio: 16 / 9;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--color-text-on-light-fill);\n overflow: hidden;\n}\n.lintje-video-player__video {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: contain;\n background: var(--color-text-on-light-fill);\n}\n\n/* What stands on the picture has a white edge, so the fill keeps apart from the dark. */\n.lintje-video-player__big-play.lintje-button,\n.lintje-video-player__retry.lintje-button {\n position: relative;\n border: 2px solid var(--color-text-on-fill);\n}\n.lintje-video-player__big-play.lintje-button { width: 64px; height: 64px; padding: 0; }\n.lintje-video-player__big-play.lintje-button.is-disabled {\n border-color: var(--color-text-on-fill);\n}\n\n/* A failed load says so where the picture would be: the announcement's light fill would float. */\n.lintje-video-player__failed {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--space-3);\n padding: 0 var(--space-6);\n text-align: center;\n color: var(--color-text-on-fill);\n}\n.lintje-video-player__failed-mark {\n width: var(--space-6);\n height: var(--space-6);\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--color-error);\n color: var(--color-text-inverse);\n}\n.lintje-video-player__failed-text { margin: 0; font: var(--text-ui); font-weight: 700; }\n\n.lintje-video-player__caption {\n position: absolute;\n left: var(--space-4);\n right: var(--space-4);\n bottom: var(--space-4);\n text-align: center;\n pointer-events: none;\n}\n.lintje-video-player__caption-text {\n padding: 2px var(--space-2);\n background: var(--color-text-on-light-fill);\n color: var(--color-text-on-fill);\n font: var(--text-body);\n box-decoration-break: clone;\n -webkit-box-decoration-break: clone;\n}\n\n/* Two lines at every width: the time beside the bar keeps the buttons on one line in a tile. */\n.lintje-video-player__controls {\n display: flex;\n flex-direction: column;\n gap: var(--space-2);\n padding: var(--space-3) var(--space-3) var(--space-2);\n}\n.lintje-video-player__timeline { display: flex; align-items: center; gap: var(--space-3); }\n.lintje-video-player__buttons { display: flex; align-items: center; gap: var(--space-1); }\n.lintje-video-player__speed {\n flex: none;\n padding: 0 var(--space-1);\n background: var(--color-term-bg);\n color: var(--color-accent-text);\n font: var(--text-small);\n font-weight: 700;\n font-variant-numeric: tabular-nums;\n}\n/* The menu's trigger takes the 48 px of the player's other buttons. */\n.lintje-video-player__more { margin-left: auto; --h-icon-button: var(--h-touch); }\n\n.lintje-video-player:fullscreen { display: flex; flex-direction: column; border: 0; }\n.lintje-video-player:fullscreen .lintje-video-player__stage {\n flex: 1 1 auto;\n min-height: 0;\n aspect-ratio: auto;\n}\n\n@media screen and (max-width: 767px) {\n .lintje-video-player { border-left: 0; border-right: 0; }\n}\n\n/* Forced colours drop the fills: the speed and the mark keep an outline. */\n@media (forced-colors: active) {\n .lintje-video-player__speed,\n .lintje-video-player__failed-mark { outline: 1px solid CanvasText; }\n}\n", h = "ondertiteling", g = "audiodescriptie";
7
7
  function _(e, t) {
8
8
  return e.key.toLowerCase() !== t || e.ctrlKey || e.metaKey || e.altKey ? !1 : !e.composedPath().some((e) => ["INPUT", "TEXTAREA"].includes(e.tagName ?? ""));
9
9
  }
@@ -20,11 +20,11 @@ var v = class extends f {
20
20
  }
21
21
  static {
22
22
  this.styles = [
23
- e,
24
- r(s),
25
- r(o),
26
- r(p),
27
- r(m)
23
+ i,
24
+ n(o),
25
+ n(e),
26
+ n(p),
27
+ n(m)
28
28
  ];
29
29
  }
30
30
  static {
@@ -109,9 +109,9 @@ var v = class extends f {
109
109
  _(e, "f") ? (e.preventDefault(), this.toggleFullscreen()) : _(e, "c") ? (e.preventDefault(), this.captions = !this.captions) : this.onGroupKeydown(e);
110
110
  }
111
111
  renderFailed() {
112
- return c`<div class="lintje-video-player__failed" role="alert">
112
+ return a`<div class="lintje-video-player__failed" role="alert">
113
113
  <span class="lintje-video-player__failed-mark"
114
- >${a("functioneel-waarschuwing", { size: 14 })}</span
114
+ >${c("functioneel-waarschuwing", { size: 14 })}</span
115
115
  >
116
116
  <p class="lintje-video-player__failed-text">De video kan niet worden geladen.</p>
117
117
  <button
@@ -119,16 +119,16 @@ var v = class extends f {
119
119
  class="lintje-button lintje-button--primary lintje-video-player__retry"
120
120
  @click=${this.onRetry}
121
121
  >
122
- ${a("functioneel-refresh", { size: 20 })}
122
+ ${c("functioneel-refresh", { size: 20 })}
123
123
  <span class="lintje-button__label">Opnieuw proberen</span>
124
124
  </button>
125
125
  </div>`;
126
126
  }
127
127
  renderOverlay() {
128
128
  if (this.failed) return this.renderFailed();
129
- if (this.waiting) return c`<button
129
+ if (this.waiting) return a`<button
130
130
  type="button"
131
- class=${i({
131
+ class=${s({
132
132
  "lintje-button": !0,
133
133
  "lintje-button--primary": !0,
134
134
  "lintje-video-player__big-play": !0,
@@ -136,24 +136,24 @@ var v = class extends f {
136
136
  })}
137
137
  aria-label="Afspelen"
138
138
  title="Afspelen"
139
- aria-disabled=${this.ready ? n : "true"}
139
+ aria-disabled=${this.ready ? r : "true"}
140
140
  @click=${this.onBigPlay}
141
141
  >
142
- ${a("multimedia-player-afspelen", { size: 28 })}
142
+ ${c("multimedia-player-afspelen", { size: 28 })}
143
143
  </button>`;
144
144
  let e = this.captions ? this.caption : "";
145
- return e ? c`<div class="lintje-video-player__caption">
145
+ return e ? a`<div class="lintje-video-player__caption">
146
146
  <span class="lintje-video-player__caption-text">${e}</span>
147
- </div>` : n;
147
+ </div>` : r;
148
148
  }
149
149
  renderStage() {
150
- return c`<div class="lintje-video-player__stage">
150
+ return a`<div class="lintje-video-player__stage">
151
151
  <video
152
152
  class="lintje-video-player__video"
153
153
  preload="metadata"
154
154
  playsinline
155
155
  .muted=${this.muted}
156
- src=${this.source || n}
156
+ src=${this.source || r}
157
157
  @click=${() => this.toggle()}
158
158
  ></video>
159
159
  ${this.renderOverlay()}
@@ -166,12 +166,12 @@ var v = class extends f {
166
166
  });
167
167
  }
168
168
  render() {
169
- return c`<div class="lintje-video-player" role="group" aria-label=${this.name || "Video"} @keydown=${this.onKeydown}>
169
+ return a`<div class="lintje-video-player" role="group" aria-label=${this.name || "Video"} @keydown=${this.onKeydown}>
170
170
  ${this.renderStage()}
171
171
  <div class="lintje-video-player__controls">
172
172
  <div class="lintje-video-player__timeline">
173
173
  ${this.renderBar()} ${this.renderTime(!0)}
174
- ${this.speed === 1 ? n : c`<span class="lintje-video-player__speed">${d(this.speed)}</span>`}
174
+ ${this.speed === 1 ? r : a`<span class="lintje-video-player__speed">${d(this.speed)}</span>`}
175
175
  </div>
176
176
  <div class="lintje-video-player__buttons">
177
177
  ${this.renderPlay()} ${this.renderMute()}
@@ -439,6 +439,7 @@
439
439
  --dur-badge: 300ms; /* @kind other */
440
440
  --dur-draw: 900ms; /* @kind other */
441
441
  --dur-data-label: 300ms; /* @kind other */
442
+ --dur-layer: 400ms; /* @kind other */
442
443
  --dur-skeleton: 1200ms; /* @kind other */
443
444
  --dur-wave: 600ms; /* @kind other */
444
445
 
@@ -742,108 +743,111 @@
742
743
  re-points the layer-2/3 names whose meaning changes; everything that merely follows a
743
744
  neutral is absent on purpose. Page and tiles are both #282828, the border separates them: the
744
745
  step below is the menu's, so it stays a band beside the page and under the logo bar.
746
+ Screen only: paper is always light, whatever the reader chose.
745
747
  ========================================================================= */
746
- [data-mode='dark'] {
747
- --neutral-0: #282828;
748
- --neutral-1: #1D1D1D;
749
- --neutral-2: #333333;
750
- --neutral-3: #4A4A4A;
751
- --neutral-4: #7A7A7A;
752
- --neutral-5: #B0B0B0;
753
- --neutral-6: #FFFFFF;
754
-
755
- /* The hover goes UP in dark: the light mix would put a near-black fill on the near-black page. */
756
- --primary-hover: color-mix(in srgb, var(--primary), white 12%);
757
-
758
- --color-bg-page: var(--neutral-0);
759
- --color-bg-title: var(--neutral-0);
760
- /* The hero's wash sits halfway between the menu (L 0.231) and the page (L 0.277), below the
761
- page as in light: a panel or tab on it is lighter than its ground. */
762
- --primary-wash: oklch(from var(--primary) 0.254 min(c, 0.02) h);
763
-
764
- /* The filter zone must read as a band, so in dark it steps UP to neutral-2 (neutral-1 turned
765
- the fields in it into light boxes). `--color-bg-inset` keeps neutral-1: "sunken". */
766
- --color-bg-filter: var(--neutral-2);
767
- --color-bg-inset: var(--neutral-1);
768
-
769
- --color-text-inverse: var(--neutral-1);
770
-
771
- /* Colour that must read by itself on #282828 becomes the tint; a FILL keeps the primary. */
772
- --color-action-primary-border: var(--primary-tint);
773
- --color-action-secondary-border: var(--primary-tint);
774
- /* Danger hover: 8 % white is the most that keeps white text at 4.5:1 (4.56:1). The border and
775
- the word lift the red as the primary's tints do, to 3:1 on #282828 and 4.5:1 on #333333,
776
- the hover surface; the word's chroma cap keeps it inside sRGB. */
777
- --color-action-danger-hover: color-mix(in srgb, var(--status-error), white 8%);
778
- --color-action-danger-border: oklch(from var(--status-error) max(l, 0.58) c h);
779
- --color-action-danger-text: oklch(from var(--status-error) max(l, 0.71) min(c, 0.18) h);
780
- /* A status mark at 3:1 on its own tint. */
781
- --color-attention-line: var(--status-attention);
782
- --color-error-line: oklch(from var(--status-error) max(l, 0.6) c h);
783
- --color-info-line: oklch(from var(--status-info) max(l, 0.58) c h);
784
- --color-success-line: oklch(from var(--status-success) max(l, 0.57) c h);
785
- /* A status word at 4.5:1 on #333333, lifted as the danger word is. */
786
- --color-error-text: oklch(from var(--status-error) max(l, 0.71) min(c, 0.18) h);
787
- --color-success-text: oklch(from var(--status-success) max(l, 0.68) min(c, 0.18) h);
788
- /* A link is text: the text tint, not the line tint. The hover stays white. */
789
- --color-link: var(--primary-tint-text);
790
- --color-link-hover: var(--neutral-6);
791
- --color-link-on-status: var(--neutral-6);
792
- --color-accent-line: var(--primary-tint);
793
- --color-accent-text: var(--primary-tint-text);
794
-
795
- /* Lintblauw has too little contrast on the dark surface; the house style lightens it. */
796
- --color-logo-ribbon: var(--ribbon-blue-dark);
797
-
798
- /* The menu is neutral in dark: near-black, in the rail and in the bar alike, so in the top
799
- layout it stays its own band under the logo bar. Hover and active are one step up, as they
800
- are one fill in light; the edge is the text tint, as the line tint is 3:1 on neutral-0 only. */
801
- --color-nav-bg: var(--neutral-1);
802
- --color-nav-text: var(--neutral-6);
803
- --color-nav-text-sub: var(--neutral-5);
804
- --color-nav-hover: var(--neutral-2);
805
- --color-nav-active: var(--neutral-2);
806
- --color-nav-active-edge: var(--primary-tint-text);
807
- --color-navbar-hover: var(--neutral-2);
808
- --color-navbar-active: var(--neutral-2);
809
- --color-navbar-active-edge: var(--primary-tint-text);
810
- /* The open entry's word stands on the panel's surface: full text contrast, not the tint. */
811
- --color-navbar-open-text: var(--color-text-primary);
812
- /* The label is 16 px text: the tint is 3.0:1 and needs 4.5:1. The edge keeps the tint. */
813
- --color-nav-active-text: var(--neutral-6);
814
- /* The sheet is told from the page by its shadow and this quiet line; 1.66:1 is accepted here. */
815
- --color-border-popover: var(--neutral-3);
816
- --color-nav-line: var(--neutral-2);
817
- --color-nav-disabled: var(--neutral-4);
818
- /* The menu is neutral here, so its ring is the orange of every other surface. */
819
- --color-focus-on-theme: var(--color-focus);
820
- /* The choice edge keeps neutral-4 in dark: it already reaches 3:1 there (3.43:1 on #282828). */
821
- --color-border-choice: var(--neutral-4);
822
-
823
- /* A term's box is the subtle surface: behind a word on #282828 the dark wash would be a hole. */
824
- --color-term-bg: var(--neutral-2);
825
- --color-choice-active-bg: var(--neutral-2);
826
- --color-hero-focus: var(--color-focus);
827
- --color-term-line: var(--primary-tint-text);
828
-
829
- /* Yellow as text works on the dark surface, so the dark gold is not needed. */
830
- --color-chart-dark-yellow-text: var(--data-dark-yellow);
831
- --color-map-water: var(--neutral-1);
832
-
833
- --shadow-sticky: 0 2px 6px var(--alpha-black-40);
834
- --shadow-popover: 0 4px 16px var(--alpha-black-55);
835
- --shadow-nav: 2px 0 8px var(--alpha-black-40);
836
- --shadow-chart-hover: 0 1px 4px var(--alpha-black-60);
837
- --shadow-scroll-start: inset 12px 0 10px -10px var(--alpha-black-60);
838
- --shadow-scroll-end: inset -12px 0 10px -10px var(--alpha-black-60);
839
- --color-overlay-nav: var(--alpha-black-40);
748
+ @media screen {
749
+ [data-mode='dark'] {
750
+ --neutral-0: #282828;
751
+ --neutral-1: #1D1D1D;
752
+ --neutral-2: #333333;
753
+ --neutral-3: #4A4A4A;
754
+ --neutral-4: #7A7A7A;
755
+ --neutral-5: #B0B0B0;
756
+ --neutral-6: #FFFFFF;
757
+
758
+ /* The hover goes UP in dark: the light mix would put a near-black fill on the near-black page. */
759
+ --primary-hover: color-mix(in srgb, var(--primary), white 12%);
760
+
761
+ --color-bg-page: var(--neutral-0);
762
+ --color-bg-title: var(--neutral-0);
763
+ /* The hero's wash sits halfway between the menu (L 0.231) and the page (L 0.277), below the
764
+ page as in light: a panel or tab on it is lighter than its ground. */
765
+ --primary-wash: oklch(from var(--primary) 0.254 min(c, 0.02) h);
766
+
767
+ /* The filter zone must read as a band, so in dark it steps UP to neutral-2 (neutral-1 turned
768
+ the fields in it into light boxes). `--color-bg-inset` keeps neutral-1: "sunken". */
769
+ --color-bg-filter: var(--neutral-2);
770
+ --color-bg-inset: var(--neutral-1);
771
+
772
+ --color-text-inverse: var(--neutral-1);
773
+
774
+ /* Colour that must read by itself on #282828 becomes the tint; a FILL keeps the primary. */
775
+ --color-action-primary-border: var(--primary-tint);
776
+ --color-action-secondary-border: var(--primary-tint);
777
+ /* Danger hover: 8 % white is the most that keeps white text at 4.5:1 (4.56:1). The border and
778
+ the word lift the red as the primary's tints do, to 3:1 on #282828 and 4.5:1 on #333333,
779
+ the hover surface; the word's chroma cap keeps it inside sRGB. */
780
+ --color-action-danger-hover: color-mix(in srgb, var(--status-error), white 8%);
781
+ --color-action-danger-border: oklch(from var(--status-error) max(l, 0.58) c h);
782
+ --color-action-danger-text: oklch(from var(--status-error) max(l, 0.71) min(c, 0.18) h);
783
+ /* A status mark at 3:1 on its own tint. */
784
+ --color-attention-line: var(--status-attention);
785
+ --color-error-line: oklch(from var(--status-error) max(l, 0.6) c h);
786
+ --color-info-line: oklch(from var(--status-info) max(l, 0.58) c h);
787
+ --color-success-line: oklch(from var(--status-success) max(l, 0.57) c h);
788
+ /* A status word at 4.5:1 on #333333, lifted as the danger word is. */
789
+ --color-error-text: oklch(from var(--status-error) max(l, 0.71) min(c, 0.18) h);
790
+ --color-success-text: oklch(from var(--status-success) max(l, 0.68) min(c, 0.18) h);
791
+ /* A link is text: the text tint, not the line tint. The hover stays white. */
792
+ --color-link: var(--primary-tint-text);
793
+ --color-link-hover: var(--neutral-6);
794
+ --color-link-on-status: var(--neutral-6);
795
+ --color-accent-line: var(--primary-tint);
796
+ --color-accent-text: var(--primary-tint-text);
797
+
798
+ /* Lintblauw has too little contrast on the dark surface; the house style lightens it. */
799
+ --color-logo-ribbon: var(--ribbon-blue-dark);
800
+
801
+ /* The menu is neutral in dark: near-black, in the rail and in the bar alike, so in the top
802
+ layout it stays its own band under the logo bar. Hover and active are one step up, as they
803
+ are one fill in light; the edge is the text tint, as the line tint is 3:1 on neutral-0 only. */
804
+ --color-nav-bg: var(--neutral-1);
805
+ --color-nav-text: var(--neutral-6);
806
+ --color-nav-text-sub: var(--neutral-5);
807
+ --color-nav-hover: var(--neutral-2);
808
+ --color-nav-active: var(--neutral-2);
809
+ --color-nav-active-edge: var(--primary-tint-text);
810
+ --color-navbar-hover: var(--neutral-2);
811
+ --color-navbar-active: var(--neutral-2);
812
+ --color-navbar-active-edge: var(--primary-tint-text);
813
+ /* The open entry's word stands on the panel's surface: full text contrast, not the tint. */
814
+ --color-navbar-open-text: var(--color-text-primary);
815
+ /* The label is 16 px text: the tint is 3.0:1 and needs 4.5:1. The edge keeps the tint. */
816
+ --color-nav-active-text: var(--neutral-6);
817
+ /* The sheet is told from the page by its shadow and this quiet line; 1.66:1 is accepted here. */
818
+ --color-border-popover: var(--neutral-3);
819
+ --color-nav-line: var(--neutral-2);
820
+ --color-nav-disabled: var(--neutral-4);
821
+ /* The menu is neutral here, so its ring is the orange of every other surface. */
822
+ --color-focus-on-theme: var(--color-focus);
823
+ /* The choice edge keeps neutral-4 in dark: it already reaches 3:1 there (3.43:1 on #282828). */
824
+ --color-border-choice: var(--neutral-4);
825
+
826
+ /* A term's box is the subtle surface: behind a word on #282828 the dark wash would be a hole. */
827
+ --color-term-bg: var(--neutral-2);
828
+ --color-choice-active-bg: var(--neutral-2);
829
+ --color-hero-focus: var(--color-focus);
830
+ --color-term-line: var(--primary-tint-text);
831
+
832
+ /* Yellow as text works on the dark surface, so the dark gold is not needed. */
833
+ --color-chart-dark-yellow-text: var(--data-dark-yellow);
834
+ --color-map-water: var(--neutral-1);
835
+
836
+ --shadow-sticky: 0 2px 6px var(--alpha-black-40);
837
+ --shadow-popover: 0 4px 16px var(--alpha-black-55);
838
+ --shadow-nav: 2px 0 8px var(--alpha-black-40);
839
+ --shadow-chart-hover: 0 1px 4px var(--alpha-black-60);
840
+ --shadow-scroll-start: inset 12px 0 10px -10px var(--alpha-black-60);
841
+ --shadow-scroll-end: inset -12px 0 10px -10px var(--alpha-black-60);
842
+ --color-overlay-nav: var(--alpha-black-40);
843
+ }
840
844
  }
841
845
 
842
846
  /* ============================================================================
843
847
  Below 768 px the gutter follows the page padding and every pointer target is the touch
844
- floor.
848
+ floor. Screen only: a portrait page is narrower than 768 px and keeps the desktop form.
845
849
  ========================================================================= */
846
- @media (max-width: 767px) {
850
+ @media screen and (max-width: 767px) {
847
851
  :root {
848
852
  --grid-gutter: 16px;
849
853
  --h-target: var(--h-touch);
@@ -852,3 +856,23 @@
852
856
  --w-ribbon: 2.5rem;
853
857
  }
854
858
  }
859
+
860
+ /* ============================================================================
861
+ Paper — white under the content, since Lintje prints its own fills
862
+ (`print-color-adjust: exact` in base.css): a band in the page's grey would cost ink and
863
+ say nothing.
864
+ ========================================================================= */
865
+ @media print {
866
+ :root {
867
+ /* The paper's margin is the page's edge: bars and content start at it, aligned. */
868
+ --page-pad-x: 0px;
869
+ --color-bg-page: var(--neutral-0);
870
+ --color-bg-title: var(--neutral-0);
871
+ --color-bg-filter: var(--neutral-0);
872
+ }
873
+ }
874
+
875
+ /* The sheet's own margin, so the content never runs to the paper's edge: room for the browser's
876
+ date, address and page number above and below, and a portrait sheet still wide enough for the
877
+ tablet's form. A custom property does not reach `@page`, so the value stands here. */
878
+ @page { margin: 15mm 12mm; }