lintje 0.2.0 → 0.3.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 (276) 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-CbmWxUig.js} +444 -272
  4. package/dist-elements/chunks/{controls-B1455oPG.js → controls-DxmnDSBr.js} +6 -0
  5. package/dist-elements/chunks/dialog-DChINFxD.js +28 -0
  6. package/dist-elements/chunks/{disclosure-BXTX04gM.js → disclosure-D39vAR5q.js} +1 -1
  7. package/dist-elements/chunks/{disclosure-CMXhX-Vb.js → disclosure-DLkXPUpV.js} +6 -6
  8. package/dist-elements/chunks/download-Ct9q2anY.js +206 -0
  9. package/dist-elements/chunks/{focus-trap-9BnE-xWv.js → focus-trap-BwOxE5BX.js} +1 -1
  10. package/dist-elements/chunks/input-CRW_exv_.js +195 -0
  11. package/dist-elements/chunks/{player-DXOZEyEy.js → player-B8QXJ0Z5.js} +26 -26
  12. package/dist-elements/chunks/{sentence-BI3lwEuT.js → sentence-B19AyZBS.js} +3 -3
  13. package/dist-elements/chunks/{stagger-qGD3wmhg.js → stagger-BHoOgy0g.js} +81 -75
  14. package/dist-elements/core.js +1 -1
  15. package/dist-elements/custom-elements.json +980 -670
  16. package/dist-elements/data-types.json +6798 -0
  17. package/dist-elements/feedback.js +2 -1
  18. package/dist-elements/frame.js +0 -2
  19. package/dist-elements/guides/dashboard.md +8 -0
  20. package/dist-elements/guides/events.md +4 -5
  21. package/dist-elements/guides/loading.md +8 -7
  22. package/dist-elements/guides/page-contents.md +110 -0
  23. package/dist-elements/guides/start.md +12 -0
  24. package/dist-elements/inputs.js +2 -1
  25. package/dist-elements/layout.js +1 -1
  26. package/dist-elements/lintje.js +6975 -6120
  27. package/dist-elements/overlays.js +2 -2
  28. package/dist-elements/skills/lintje/SKILL.md +1 -1
  29. package/dist-elements/tables.js +1 -1
  30. package/dist-elements/tag/activity-log.js +15 -15
  31. package/dist-elements/tag/ai-label.js +10 -10
  32. package/dist-elements/tag/announcement.js +36 -76
  33. package/dist-elements/tag/app-search.js +49 -49
  34. package/dist-elements/tag/audio-player.js +57 -57
  35. package/dist-elements/tag/badge.js +1 -1
  36. package/dist-elements/tag/breadcrumbs.js +15 -15
  37. package/dist-elements/tag/button.js +1 -1
  38. package/dist-elements/tag/card-list.js +12 -12
  39. package/dist-elements/tag/card.js +39 -44
  40. package/dist-elements/tag/chart.js +1050 -795
  41. package/dist-elements/tag/chat-answer.js +49 -49
  42. package/dist-elements/tag/chat-composer.js +75 -71
  43. package/dist-elements/tag/chat-message.js +8 -8
  44. package/dist-elements/tag/chat-strip.js +22 -22
  45. package/dist-elements/tag/chat-suggestions.js +12 -12
  46. package/dist-elements/tag/chat.js +56 -56
  47. package/dist-elements/tag/checkbox-group.d.ts +1 -0
  48. package/dist-elements/tag/checkbox-group.js +59 -0
  49. package/dist-elements/tag/checkbox.js +8 -8
  50. package/dist-elements/tag/code.js +9 -9
  51. package/dist-elements/tag/combobox.js +18 -18
  52. package/dist-elements/tag/conflict-alert.js +12 -12
  53. package/dist-elements/tag/copy-button.js +14 -14
  54. package/dist-elements/tag/data-table.js +878 -530
  55. package/dist-elements/tag/date-input.js +30 -30
  56. package/dist-elements/tag/date-range.js +37 -37
  57. package/dist-elements/tag/description-list.js +29 -32
  58. package/dist-elements/tag/dialog.d.ts +1 -0
  59. package/dist-elements/tag/dialog.js +144 -0
  60. package/dist-elements/tag/document-viewer.js +23 -23
  61. package/dist-elements/tag/drawer.js +28 -32
  62. package/dist-elements/tag/empty-state.js +19 -30
  63. package/dist-elements/tag/error-page.d.ts +1 -0
  64. package/dist-elements/tag/error-page.js +109 -0
  65. package/dist-elements/tag/error-summary.js +10 -10
  66. package/dist-elements/tag/expander.js +8 -8
  67. package/dist-elements/tag/explainer.js +11 -11
  68. package/dist-elements/tag/field.js +5 -5
  69. package/dist-elements/tag/file-upload.js +34 -34
  70. package/dist-elements/tag/filter-bar.js +56 -56
  71. package/dist-elements/tag/filter-sheet.js +11 -11
  72. package/dist-elements/tag/filter-zone.js +31 -31
  73. package/dist-elements/tag/footer.js +21 -21
  74. package/dist-elements/tag/form-actions.js +29 -25
  75. package/dist-elements/tag/form-section.js +6 -6
  76. package/dist-elements/tag/form.js +12 -12
  77. package/dist-elements/tag/gallery.js +14 -14
  78. package/dist-elements/tag/grid-item.js +1 -1
  79. package/dist-elements/tag/grid.js +1 -1
  80. package/dist-elements/tag/hero.js +12 -12
  81. package/dist-elements/tag/highlight.js +5 -5
  82. package/dist-elements/tag/icon-button.js +1 -1
  83. package/dist-elements/tag/icon.js +1 -1
  84. package/dist-elements/tag/job-list.js +22 -44
  85. package/dist-elements/tag/kpi-row.js +12 -10
  86. package/dist-elements/tag/kpi.js +146 -137
  87. package/dist-elements/tag/level-meter.js +11 -11
  88. package/dist-elements/tag/list.js +55 -55
  89. package/dist-elements/tag/logo.js +30 -30
  90. package/dist-elements/tag/map.js +690 -665
  91. package/dist-elements/tag/menu-button.js +70 -69
  92. package/dist-elements/tag/modal.js +28 -37
  93. package/dist-elements/tag/multiselect.js +34 -34
  94. package/dist-elements/tag/note.js +5 -5
  95. package/dist-elements/tag/notifications.js +36 -36
  96. package/dist-elements/tag/number-input.js +12 -12
  97. package/dist-elements/tag/page-header.js +140 -37
  98. package/dist-elements/tag/pagination.js +53 -48
  99. package/dist-elements/tag/popover.js +1 -1
  100. package/dist-elements/tag/progress-bar.js +1 -1
  101. package/dist-elements/tag/prose.js +6 -6
  102. package/dist-elements/tag/qr-code.js +7 -7
  103. package/dist-elements/tag/radio-group.js +12 -12
  104. package/dist-elements/tag/range.js +22 -22
  105. package/dist-elements/tag/recording-status.js +14 -14
  106. package/dist-elements/tag/repeater.js +10 -10
  107. package/dist-elements/tag/segmented.js +13 -13
  108. package/dist-elements/tag/select.js +10 -10
  109. package/dist-elements/tag/shell.js +356 -339
  110. package/dist-elements/tag/skeleton.js +1 -1
  111. package/dist-elements/tag/slot-picker.js +14 -14
  112. package/dist-elements/tag/sortable-list.js +14 -14
  113. package/dist-elements/tag/spinner.js +1 -1
  114. package/dist-elements/tag/split-pane.js +12 -12
  115. package/dist-elements/tag/status-dot.js +1 -1
  116. package/dist-elements/tag/stepper.js +21 -21
  117. package/dist-elements/tag/streaming-text.js +13 -13
  118. package/dist-elements/tag/sub-nav.js +39 -38
  119. package/dist-elements/tag/tabs.js +38 -38
  120. package/dist-elements/tag/tag-input.js +19 -19
  121. package/dist-elements/tag/text-editor.js +24 -24
  122. package/dist-elements/tag/text-input.js +14 -14
  123. package/dist-elements/tag/textarea.js +14 -14
  124. package/dist-elements/tag/tile.js +1 -1
  125. package/dist-elements/tag/time-input.js +19 -19
  126. package/dist-elements/tag/toast.js +32 -23
  127. package/dist-elements/tag/toggle.js +8 -8
  128. package/dist-elements/tag/toggletip.js +27 -27
  129. package/dist-elements/tag/tooltip.js +1 -1
  130. package/dist-elements/tag/transcript.js +48 -48
  131. package/dist-elements/tag/translator.js +13 -13
  132. package/dist-elements/tag/tree-view.js +13 -13
  133. package/dist-elements/tag/user-menu.js +37 -37
  134. package/dist-elements/tag/video-player.js +21 -21
  135. package/dist-elements/tokens.css +120 -96
  136. package/dist-elements/types/bundle/feedback.d.ts +1 -0
  137. package/dist-elements/types/bundle/frame.d.ts +0 -2
  138. package/dist-elements/types/bundle/inputs.d.ts +1 -0
  139. package/dist-elements/types/bundle/overlays.d.ts +1 -1
  140. package/dist-elements/types/components/actions/copy-button/copy-button.d.ts +6 -7
  141. package/dist-elements/types/components/actions/menu-button/menu-button.d.ts +13 -15
  142. package/dist-elements/types/components/actions/qr-code/qr-code.d.ts +9 -9
  143. package/dist-elements/types/components/charts/chart/chart.d.ts +5 -4
  144. package/dist-elements/types/components/charts/kpi/kpi.d.ts +16 -8
  145. package/dist-elements/types/components/charts/kpi-row/kpi-row.d.ts +1 -7
  146. package/dist-elements/types/components/charts/note/note.d.ts +1 -1
  147. package/dist-elements/types/components/chat/chat/chat.d.ts +8 -10
  148. package/dist-elements/types/components/chat/chat-answer/chat-answer.d.ts +7 -8
  149. package/dist-elements/types/components/chat/chat-composer/chat-composer.d.ts +8 -10
  150. package/dist-elements/types/components/chat/chat-message/chat-message.d.ts +6 -7
  151. package/dist-elements/types/components/chat/chat-strip/chat-strip.d.ts +5 -5
  152. package/dist-elements/types/components/chat/chat-suggestions/chat-suggestions.d.ts +9 -10
  153. package/dist-elements/types/components/content/audio-player/audio-player.d.ts +10 -12
  154. package/dist-elements/types/components/content/code/code.d.ts +2 -3
  155. package/dist-elements/types/components/content/document-viewer/document-viewer.d.ts +8 -9
  156. package/dist-elements/types/components/content/gallery/gallery.d.ts +5 -4
  157. package/dist-elements/types/components/content/highlight/highlight.d.ts +4 -3
  158. package/dist-elements/types/components/content/prose/prose.d.ts +2 -3
  159. package/dist-elements/types/components/content/transcript/transcript.d.ts +12 -25
  160. package/dist-elements/types/components/content/translator/translator.d.ts +11 -15
  161. package/dist-elements/types/components/content/video-player/video-player.d.ts +11 -13
  162. package/dist-elements/types/components/feedback/ai-label/ai-label.d.ts +3 -4
  163. package/dist-elements/types/components/feedback/announcement/announcement.d.ts +3 -7
  164. package/dist-elements/types/components/feedback/conflict-alert/conflict-alert.d.ts +3 -4
  165. package/dist-elements/types/components/feedback/empty-state/empty-state.d.ts +5 -8
  166. package/dist-elements/types/components/feedback/error-page/error-page.d.ts +52 -0
  167. package/dist-elements/types/components/feedback/job-list/job-list.d.ts +9 -12
  168. package/dist-elements/types/components/feedback/level-meter/level-meter.d.ts +4 -6
  169. package/dist-elements/types/components/feedback/recording-status/recording-status.d.ts +5 -6
  170. package/dist-elements/types/components/feedback/streaming-text/streaming-text.d.ts +10 -7
  171. package/dist-elements/types/components/feedback/toast/toast.d.ts +8 -9
  172. package/dist-elements/types/components/filters/filter-bar/filter-bar.d.ts +9 -4
  173. package/dist-elements/types/components/filters/filter-sheet/filter-sheet.d.ts +5 -5
  174. package/dist-elements/types/components/filters/filter-zone/filter-zone.d.ts +4 -4
  175. package/dist-elements/types/components/forms/error-summary/error-summary.d.ts +5 -6
  176. package/dist-elements/types/components/forms/form/form.d.ts +5 -5
  177. package/dist-elements/types/components/forms/form-actions/form-actions.d.ts +9 -7
  178. package/dist-elements/types/components/forms/form-section/form-section.d.ts +6 -5
  179. package/dist-elements/types/components/forms/repeater/repeater.d.ts +13 -7
  180. package/dist-elements/types/components/forms/stepper/stepper.d.ts +5 -4
  181. package/dist-elements/types/components/frame/app-search/app-search.d.ts +6 -7
  182. package/dist-elements/types/components/frame/breadcrumbs/breadcrumbs.d.ts +2 -2
  183. package/dist-elements/types/components/frame/footer/footer.d.ts +3 -2
  184. package/dist-elements/types/components/frame/hero/hero.d.ts +7 -9
  185. package/dist-elements/types/components/frame/notifications/notifications.d.ts +5 -9
  186. package/dist-elements/types/components/frame/page-header/page-header.d.ts +12 -15
  187. package/dist-elements/types/components/frame/shell/shell.d.ts +14 -13
  188. package/dist-elements/types/components/frame/sub-nav/sub-nav.d.ts +10 -6
  189. package/dist-elements/types/components/frame/user-menu/user-menu.d.ts +11 -10
  190. package/dist-elements/types/components/index.d.ts +8 -9
  191. package/dist-elements/types/components/inputs/checkbox/checkbox.d.ts +4 -4
  192. package/dist-elements/types/components/inputs/checkbox-group/checkbox-group.d.ts +33 -0
  193. package/dist-elements/types/components/inputs/combobox/combobox.d.ts +12 -6
  194. package/dist-elements/types/components/inputs/date-input/date-input.d.ts +5 -5
  195. package/dist-elements/types/components/inputs/date-range/date-range.d.ts +11 -6
  196. package/dist-elements/types/components/inputs/field/field.d.ts +5 -3
  197. package/dist-elements/types/components/inputs/file-upload/file-upload.d.ts +6 -8
  198. package/dist-elements/types/components/inputs/multiselect/multiselect.d.ts +4 -6
  199. package/dist-elements/types/components/inputs/number-input/number-input.d.ts +8 -7
  200. package/dist-elements/types/components/inputs/radio-group/radio-group.d.ts +2 -4
  201. package/dist-elements/types/components/inputs/range/range.d.ts +5 -6
  202. package/dist-elements/types/components/inputs/segmented/segmented.d.ts +7 -4
  203. package/dist-elements/types/components/inputs/select/select.d.ts +6 -3
  204. package/dist-elements/types/components/inputs/slot-picker/slot-picker.d.ts +6 -5
  205. package/dist-elements/types/components/inputs/tag-input/tag-input.d.ts +7 -5
  206. package/dist-elements/types/components/inputs/text-editor/text-editor.d.ts +6 -6
  207. package/dist-elements/types/components/inputs/text-input/text-input.d.ts +11 -6
  208. package/dist-elements/types/components/inputs/textarea/textarea.d.ts +12 -11
  209. package/dist-elements/types/components/inputs/time-input/time-input.d.ts +7 -8
  210. package/dist-elements/types/components/inputs/toggle/toggle.d.ts +3 -1
  211. package/dist-elements/types/components/layout/expander/expander.d.ts +9 -10
  212. package/dist-elements/types/components/layout/split-pane/split-pane.d.ts +6 -6
  213. package/dist-elements/types/components/layout/tabs/tabs.d.ts +11 -9
  214. package/dist-elements/types/components/map/map/map.d.ts +10 -9
  215. package/dist-elements/types/components/overlays/dialog/dialog.d.ts +49 -0
  216. package/dist-elements/types/components/overlays/drawer/drawer.d.ts +6 -5
  217. package/dist-elements/types/components/overlays/modal/modal.d.ts +7 -12
  218. package/dist-elements/types/components/overlays/toggletip/toggletip.d.ts +3 -7
  219. package/dist-elements/types/components/shared/charts/index.d.ts +4 -1
  220. package/dist-elements/types/components/shared/charts/kinds.d.ts +86 -0
  221. package/dist-elements/types/components/shared/charts/line-chart/line-chart.d.ts +2 -2
  222. package/dist-elements/types/components/shared/charts/map-chart/leaflet.d.ts +5 -0
  223. package/dist-elements/types/components/shared/charts/shared/chart-states.d.ts +8 -19
  224. package/dist-elements/types/components/shared/charts/shared/controller.d.ts +7 -0
  225. package/dist-elements/types/components/shared/charts/shared/types.d.ts +29 -0
  226. package/dist-elements/types/components/shared/charts/stacked-area-chart/stacked-area-chart.d.ts +13 -0
  227. package/dist-elements/types/components/shared/dialog.d.ts +9 -0
  228. package/dist-elements/types/components/shared/overflow.d.ts +58 -0
  229. package/dist-elements/types/components/tables/activity-log/activity-log.d.ts +2 -3
  230. package/dist-elements/types/components/tables/card/card.d.ts +14 -20
  231. package/dist-elements/types/components/tables/card-list/card-list.d.ts +9 -11
  232. package/dist-elements/types/components/tables/data-table/data-table.d.ts +85 -16
  233. package/dist-elements/types/components/tables/data-table/filters.d.ts +13 -4
  234. package/dist-elements/types/components/tables/description-list/description-list.d.ts +12 -11
  235. package/dist-elements/types/components/tables/list/list.d.ts +9 -20
  236. package/dist-elements/types/components/tables/pagination/pagination.d.ts +12 -11
  237. package/dist-elements/types/components/tables/sortable-list/sortable-list.d.ts +5 -6
  238. package/dist-elements/types/components/tables/tree-view/tree-view.d.ts +4 -4
  239. package/dist-elements/types/core/media.d.ts +2 -2
  240. package/dist-elements/types/core/motion.d.ts +5 -0
  241. package/dist-elements/types/core/print.d.ts +15 -0
  242. package/dist-elements/types/core/shortcuts.d.ts +2 -2
  243. package/dist-elements/types/icons/icon/icon.d.ts +2 -3
  244. package/dist-elements/types/icons/register.d.ts +1 -1
  245. package/dist-elements/types/primitives/badge/badge.d.ts +9 -5
  246. package/dist-elements/types/primitives/button/button.d.ts +12 -9
  247. package/dist-elements/types/primitives/grid/grid.d.ts +3 -3
  248. package/dist-elements/types/primitives/grid-item/grid-item.d.ts +1 -1
  249. package/dist-elements/types/primitives/icon-button/icon-button.d.ts +7 -5
  250. package/dist-elements/types/primitives/index.d.ts +3 -1
  251. package/dist-elements/types/primitives/popover/popover.d.ts +5 -4
  252. package/dist-elements/types/primitives/progress-bar/progress-bar.d.ts +8 -6
  253. package/dist-elements/types/primitives/shared/announcement-block.d.ts +38 -0
  254. package/dist-elements/types/primitives/shared/empty-state-block.d.ts +26 -0
  255. package/dist-elements/types/primitives/shared/tone.d.ts +18 -0
  256. package/dist-elements/types/primitives/skeleton/skeleton.d.ts +1 -1
  257. package/dist-elements/types/primitives/spinner/spinner.d.ts +1 -2
  258. package/dist-elements/types/primitives/status-dot/status-dot.d.ts +4 -5
  259. package/dist-elements/types/primitives/tile/tile.d.ts +17 -5
  260. package/dist-elements/types/primitives/tooltip/tooltip.d.ts +6 -6
  261. package/dist-elements/types/types.d.ts +70 -10
  262. package/dist-icons/functioneel-kolommen.svg +1 -0
  263. package/dist-icons/functioneel-trechter.svg +1 -0
  264. package/package.json +1 -1
  265. package/dist-elements/chunks/confirm-dialog-D5EVGuil.js +0 -4
  266. package/dist-elements/chunks/download-y528pIHP.js +0 -230
  267. package/dist-elements/chunks/input-BtuNFSWk.js +0 -195
  268. package/dist-elements/tag/confirm-dialog.d.ts +0 -1
  269. package/dist-elements/tag/confirm-dialog.js +0 -118
  270. package/dist-elements/tag/session-expiry.d.ts +0 -1
  271. package/dist-elements/tag/session-expiry.js +0 -184
  272. package/dist-elements/tag/shortcuts.d.ts +0 -1
  273. package/dist-elements/tag/shortcuts.js +0 -104
  274. package/dist-elements/types/components/frame/session-expiry/session-expiry.d.ts +0 -55
  275. package/dist-elements/types/components/frame/shortcuts/shortcuts.d.ts +0 -41
  276. package/dist-elements/types/components/overlays/confirm-dialog/confirm-dialog.d.ts +0 -41
@@ -1,4 +1,4 @@
1
- import { $ as e, Bt as t, Gt as n, Ht as r, I as i, It as a, Lt as o, U as s, X as c, Y as l, Z as u, et as d, qt as f, zt as p } from "../chunks/base-Bg-IFOPG.js";
1
+ import { Gt as e, H as t, Jt as n, Kt as r, Q as i, Yt as a, Zt as o, at as s, en as c, lt as l, nn as u, ot as d, st as f, ut as p } from "../chunks/base-CbmWxUig.js";
2
2
  //#region src/components/frame/sub-nav/sub-nav.css?inline
3
3
  var m = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n/* Typographic, as the Rijkshuisstijl's side-nav: links in the link colour, the reader's page in\n the text colour and bold, groups apart by space alone. No fill and no edge. */\n.lintje-sub-nav { font: var(--text-ui); }\n\n.lintje-sub-nav__group + .lintje-sub-nav__group { margin-top: var(--space-6); }\n\n.lintje-sub-nav__heading {\n margin: 0;\n padding: var(--space-3) 0 var(--space-1);\n font-size: var(--label-size);\n font-weight: var(--label-weight);\n letter-spacing: var(--label-tracking);\n line-height: 1.3;\n text-transform: uppercase;\n color: var(--color-text-muted);\n}\n\n.lintje-sub-nav__list { list-style: none; margin: 0; padding: 0; }\n\n/* The second level hangs from a line, the width of the separators the house style draws. */\n.lintje-sub-nav__list--nested {\n margin-bottom: var(--space-1);\n padding-left: calc(var(--space-6) - 2px);\n border-left: 2px solid var(--color-border-default);\n}\n\n/* The row reaches past the text column on both sides, so the inset focus ring clears the word. */\n.lintje-sub-nav__link {\n display: flex; align-items: flex-start; gap: var(--space-2);\n box-sizing: border-box;\n min-height: var(--h-nav-row);\n margin: 0 calc(var(--space-2) * -1);\n padding: var(--space-3) var(--space-2);\n border: 0;\n background: none;\n font: inherit;\n line-height: 1.5;\n color: var(--color-link);\n text-align: left;\n text-decoration: none;\n cursor: pointer;\n transition: color var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-sub-nav__link--action { width: calc(100% + var(--space-2) * 2); }\n\n/* Only the word is underlined: an icon or a count under a line reads as part of the link text. */\n.lintje-sub-nav__label { min-width: 0; text-underline-offset: 0.2em; }\n.lintje-sub-nav__link:hover { color: var(--color-link-hover); }\n.lintje-sub-nav__link:hover .lintje-sub-nav__label { text-decoration: underline; }\n\n/* Bold carries the reader's page beside the colour (rule 13); on a fill, the side menu does not. */\n.lintje-sub-nav__link.is-current { color: var(--color-text-primary); font-weight: 700; cursor: default; }\n.lintje-sub-nav__link.is-current .lintje-sub-nav__label { text-decoration: none; }\n.lintje-sub-nav__link.is-ancestor { color: var(--color-text-primary); }\n\n.lintje-sub-nav__link.is-no-page,\n.lintje-sub-nav__link.is-no-access { color: var(--color-text-disabled); cursor: default; }\n.lintje-sub-nav__link.is-no-access { cursor: not-allowed; }\n.lintje-sub-nav__link.is-no-access .lintje-sub-nav__label { text-decoration: line-through; }\n\n/* Icon, lock and count stand on the first line of a label that wraps. */\n.lintje-sub-nav__icon { flex: none; margin-top: 2px; }\n.lintje-sub-nav__lock { flex: none; margin-top: var(--space-1); }\n.lintje-sub-nav__count { flex: none; }\n\n/* Below 768 px: one button with the reader's page, which opens the list in place. */\n.lintje-sub-nav__toggle {\n display: flex; align-items: center; justify-content: space-between; gap: var(--space-3);\n width: 100%;\n min-height: var(--h-control);\n padding: var(--space-2) var(--space-3) var(--space-2) var(--space-4);\n border: 1px solid var(--color-border-field);\n background: var(--color-bg-surface);\n color: var(--color-text-primary);\n font: inherit;\n text-align: left;\n cursor: pointer;\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-sub-nav__toggle:hover { background: var(--color-bg-subtle); }\n.lintje-sub-nav__toggle-text { display: flex; flex-direction: column; min-width: 0; }\n.lintje-sub-nav__toggle-group { font: var(--text-small); color: var(--color-text-muted); }\n.lintje-sub-nav__toggle-current { font-weight: 700; }\n.lintje-sub-nav__toggle-icon { flex: none; transition: transform var(--dur-hover) var(--ease-in-motion); }\n.lintje-sub-nav__toggle.is-open .lintje-sub-nav__toggle-icon { transform: rotate(180deg); }\n\n.lintje-sub-nav__panel {\n padding: var(--space-1) var(--space-6) var(--space-2);\n border: 1px solid var(--color-border-field);\n border-top: 0;\n background: var(--color-bg-surface);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .lintje-sub-nav__link,\n .lintje-sub-nav__toggle,\n .lintje-sub-nav__toggle-icon { transition: none; }\n}\n\n@media (forced-colors: active) {\n .lintje-sub-nav__link.is-current { text-decoration: underline; }\n .lintje-sub-nav__link.is-no-page,\n .lintje-sub-nav__link.is-no-access { color: GrayText; }\n}\n", h = (e) => !!e.active || !!e.items?.some(h);
4
4
  function g(e) {
@@ -19,15 +19,15 @@ function g(e) {
19
19
  }
20
20
  return null;
21
21
  }
22
- var _ = 0, v = class extends p {
23
- constructor(...e) {
24
- super(...e), this.groups = [], this.label = "Submenu", this.open = !1, this.#e = new o(this, a), this.#t = `lintje-sub-nav-${++_}`;
22
+ var _ = 0, v = class extends n {
23
+ constructor(...t) {
24
+ super(...t), this.groups = [], this.label = "Submenu", this.expanded = !1, this.open = !1, this.#e = new r(this, e), this.#t = `lintje-sub-nav-${++_}`;
25
25
  }
26
26
  static {
27
27
  this.styles = [
28
- e,
29
28
  l,
30
- r(m)
29
+ s,
30
+ o(m)
31
31
  ];
32
32
  }
33
33
  static {
@@ -35,6 +35,7 @@ var _ = 0, v = class extends p {
35
35
  groups: { attribute: !1 },
36
36
  action: { attribute: !1 },
37
37
  label: { type: String },
38
+ expanded: { type: Boolean },
38
39
  open: { state: !0 }
39
40
  };
40
41
  }
@@ -42,10 +43,10 @@ var _ = 0, v = class extends p {
42
43
  #t;
43
44
  #n() {
44
45
  let e = this.renderRoot.querySelector(".lintje-sub-nav__panel");
45
- e && s(e) && this.renderRoot.querySelector(".lintje-sub-nav__toggle")?.focus(), this.open = !1;
46
+ e && i(e) && this.renderRoot.querySelector(".lintje-sub-nav__toggle")?.focus(), this.open = !1;
46
47
  }
47
- follow(e, t) {
48
- i(e) && (this.#n(), this.followLink(t, e));
48
+ follow(e, n) {
49
+ t(e) && (this.#n(), this.followLink(n, e));
49
50
  }
50
51
  act(e) {
51
52
  this.#n(), this.emit("lintje-action", { value: e });
@@ -54,80 +55,80 @@ var _ = 0, v = class extends p {
54
55
  e.key === "Escape" && this.open && (e.stopPropagation(), this.open = !1, this.renderRoot.querySelector(".lintje-sub-nav__toggle")?.focus());
55
56
  }
56
57
  renderItem(e) {
57
- let t = e.items?.length && h(e) ? e.items : null, r = !e.active && !!t, i = e.icon ? d(e.icon, {
58
+ let t = e.items?.length && (this.expanded || h(e)) ? e.items : null, n = !e.active && h(e), r = e.icon ? p(e.icon, {
58
59
  size: 20,
59
60
  className: "lintje-sub-nav__icon"
60
- }) : n, a = e.badge ? c({
61
+ }) : c, i = e.badge ? d({
61
62
  value: e.badge.value,
62
63
  variant: "count",
63
64
  label: e.badge.label,
64
65
  className: "lintje-sub-nav__count"
65
- }) : n, o = f`<span class="lintje-sub-nav__label">${e.label}</span>`, s;
66
+ }) : c, a = u`<span class="lintje-sub-nav__label">${e.label}</span>`, o;
66
67
  if (e.noAccess || !e.href) {
67
- let t = d("gebruiksvoorwerpen-hangslot-dicht", {
68
+ let t = p("gebruiksvoorwerpen-hangslot-dicht", {
68
69
  size: 16,
69
70
  label: "Geen toegang",
70
71
  className: "lintje-sub-nav__lock"
71
72
  });
72
- s = f`<span
73
- class=${u({
73
+ o = u`<span
74
+ class=${f({
74
75
  "lintje-sub-nav__link": !0,
75
76
  "is-no-access": !!e.noAccess,
76
77
  "is-no-page": !e.noAccess
77
78
  })}
78
79
  aria-disabled="true"
79
- >${i}${o}${e.noAccess ? t === n ? f`<span>geen toegang</span>` : t : f`<span class="visually-hidden"> (niet beschikbaar)</span>`}</span
80
+ >${r}${a}${e.noAccess ? t === c ? u`<span>geen toegang</span>` : t : u`<span class="visually-hidden"> (niet beschikbaar)</span>`}</span
80
81
  >`;
81
82
  } else {
82
83
  let t = e.href;
83
- s = f`<a
84
- class=${u({
84
+ o = u`<a
85
+ class=${f({
85
86
  "lintje-sub-nav__link": !0,
86
87
  "focus-inset": !0,
87
88
  "is-current": !!e.active,
88
- "is-ancestor": r
89
+ "is-ancestor": n
89
90
  })}
90
91
  href=${t}
91
- aria-current=${e.active ? "page" : n}
92
+ aria-current=${e.active ? "page" : c}
92
93
  @click=${(e) => this.follow(e, t)}
93
- >${i}${o}${a}</a
94
+ >${r}${a}${i}</a
94
95
  >`;
95
96
  }
96
- return f`<li>
97
- ${s}${t ? f`<ul class="lintje-sub-nav__list lintje-sub-nav__list--nested">
97
+ return u`<li>
98
+ ${o}${t ? u`<ul class="lintje-sub-nav__list lintje-sub-nav__list--nested">
98
99
  ${t.map((e) => this.renderItem(e))}
99
- </ul>` : n}
100
+ </ul>` : c}
100
101
  </li>`;
101
102
  }
102
103
  renderGroups() {
103
104
  let e = this.action;
104
- return f`${this.groups.map((e, t) => {
105
- let r = `${this.#t}-g${t}`;
106
- return f`<div class="lintje-sub-nav__group">
107
- ${e.label ? f`<p id=${r} class="lintje-sub-nav__heading">${e.label}</p>` : n}
108
- <ul class="lintje-sub-nav__list" aria-labelledby=${e.label ? r : n}>
105
+ return u`${this.groups.map((e, t) => {
106
+ let n = `${this.#t}-g${t}`;
107
+ return u`<div class="lintje-sub-nav__group">
108
+ ${e.label ? u`<p id=${n} class="lintje-sub-nav__heading">${e.label}</p>` : c}
109
+ <ul class="lintje-sub-nav__list" aria-labelledby=${e.label ? n : c}>
109
110
  ${e.items.map((e) => this.renderItem(e))}
110
111
  </ul>
111
112
  </div>`;
112
- })}${e ? f`<div class="lintje-sub-nav__group">
113
+ })}${e ? u`<div class="lintje-sub-nav__group">
113
114
  <button
114
115
  type="button"
115
116
  class="lintje-sub-nav__link lintje-sub-nav__link--action focus-inset"
116
117
  @click=${() => this.act(e.value)}
117
118
  >
118
- ${d(e.icon ?? "functioneel-plus", {
119
+ ${p(e.icon ?? "functioneel-plus", {
119
120
  size: 20,
120
121
  className: "lintje-sub-nav__icon"
121
122
  })}<span class="lintje-sub-nav__label">${e.label}</span>
122
123
  </button>
123
- </div>` : n}`;
124
+ </div>` : c}`;
124
125
  }
125
126
  renderPhone() {
126
127
  let e = g(this.groups), t = `${this.#t}-panel`;
127
- return f`<nav class="lintje-sub-nav" aria-label=${this.label} @keydown=${this.onKeydown}>
128
+ return u`<nav class="lintje-sub-nav" aria-label=${this.label} @keydown=${this.onKeydown}>
128
129
  <button
129
130
  type="button"
130
- class=${u({
131
+ class=${f({
131
132
  "lintje-sub-nav__toggle": !0,
132
133
  "is-open": this.open
133
134
  })}
@@ -136,10 +137,10 @@ var _ = 0, v = class extends p {
136
137
  @click=${() => this.open = !this.open}
137
138
  >
138
139
  <span class="lintje-sub-nav__toggle-text">
139
- ${e?.group ? f`<span class="lintje-sub-nav__toggle-group">${e.group}</span>` : n}
140
+ ${e?.group ? u`<span class="lintje-sub-nav__toggle-group">${e.group}</span>` : c}
140
141
  <span class="lintje-sub-nav__toggle-current">${e?.item.label ?? this.label}</span>
141
142
  </span>
142
- ${d("functioneel-delta-omlaag", {
143
+ ${p("functioneel-delta-omlaag", {
143
144
  size: 24,
144
145
  className: "lintje-sub-nav__toggle-icon"
145
146
  })}
@@ -148,9 +149,9 @@ var _ = 0, v = class extends p {
148
149
  </nav>`;
149
150
  }
150
151
  render() {
151
- return !this.groups.length && !this.action ? n : this.#e.matches ? this.renderPhone() : f`<nav class="lintje-sub-nav" aria-label=${this.label}>${this.renderGroups()}</nav>`;
152
+ return !this.groups.length && !this.action ? c : this.#e.matches ? this.renderPhone() : u`<nav class="lintje-sub-nav" aria-label=${this.label}>${this.renderGroups()}</nav>`;
152
153
  }
153
154
  };
154
- t("lintje-sub-nav", v);
155
+ a("lintje-sub-nav", v);
155
156
  //#endregion
156
157
  export { v as LintjeSubNav, g as activeEntry };
@@ -1,6 +1,6 @@
1
- import { $ as e, Bt as t, Gt as n, Ht as r, I as i, Z as a, et as o, qt as s, zt as c } from "../chunks/base-Bg-IFOPG.js";
1
+ import { H as e, Jt as t, Yt as n, Zt as r, en as i, lt as a, nn as o, st as s, ut as c } from "../chunks/base-CbmWxUig.js";
2
2
  //#region src/components/layout/tabs/tabs.css?inline
3
- var l = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n/* `position: relative` makes the row the tabs' offset parent, for scrolling the chosen tab into sight. */\n.lintje-tabs__list {\n position: relative;\n display: flex; flex-wrap: wrap;\n border-bottom: 1px solid var(--color-border-heavy);\n}\n\n/* A transparent bottom edge in reserve, so the chosen tab's line takes no space of its own. */\n.lintje-tabs__tab {\n display: inline-flex; align-items: center; gap: var(--space-2);\n height: var(--h-touch);\n padding: 0 var(--space-4);\n background: transparent;\n color: var(--color-text-primary);\n border-bottom: 3px solid transparent;\n font: var(--text-ui);\n text-decoration: none;\n white-space: nowrap;\n transition: background var(--dur-hover) var(--ease-in-motion),\n border-color var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-tabs__tab:hover:not(.is-active):not(.is-disabled) {\n background: var(--color-bg-subtle);\n border-bottom-color: var(--color-border-heavy);\n}\n\n/* The chosen tab: the line is a line (3:1) and the word is text (4.5:1), hence two tokens. */\n.lintje-tabs__tab.is-active {\n border-bottom-color: var(--color-accent-line);\n color: var(--color-accent-text);\n font-weight: 700;\n}\n\n.lintje-tabs__tab.is-disabled { color: var(--color-text-disabled); cursor: not-allowed; }\n\n.lintje-tabs__panel { padding-top: var(--space-4); }\n.lintje-tabs__panel.is-pressed:focus-visible { outline: none; }\n\n@media (max-width: 767px) {\n .lintje-tabs__list {\n flex-wrap: nowrap;\n overflow-x: auto;\n scrollbar-width: none;\n }\n .lintje-tabs__list::-webkit-scrollbar { display: none; }\n .lintje-tabs__tab { flex: 0 0 auto; }\n .lintje-tabs__list.is-scroll-start { box-shadow: var(--shadow-scroll-start); }\n .lintje-tabs__list.is-scroll-end { box-shadow: var(--shadow-scroll-end); }\n .lintje-tabs__list.is-scroll-start.is-scroll-end {\n box-shadow: var(--shadow-scroll-start), var(--shadow-scroll-end);\n }\n}\n\n/* Forced colours: the chosen tab's line turns Highlight, a disabled tab GrayText. */\n@media (forced-colors: active) {\n .lintje-tabs__tab.is-active { border-bottom-color: Highlight; }\n .lintje-tabs__tab.is-disabled { color: GrayText; }\n}\n\n/* --- The panel variant --------------------------------------------------------\n Large tabs that head a bordered panel. The chosen tab is the panel's own surface and runs into\n it; the others stand on the subtle fill. No line: surface, accent word and weight say it. */\n.lintje-tabs--panel {\n background: var(--color-bg-surface);\n border: 1px solid var(--color-border-default);\n}\n.lintje-tabs--panel .lintje-tabs__list {\n flex-wrap: nowrap;\n background: var(--color-bg-subtle);\n border-bottom-color: var(--color-border-default);\n}\n.lintje-tabs--panel .lintje-tabs__tab {\n flex: 1 1 0;\n min-width: 0;\n height: auto;\n min-height: var(--h-touch);\n margin-bottom: -1px;\n align-items: flex-start;\n gap: var(--space-3);\n padding: var(--space-4) var(--space-5);\n border-right: 1px solid var(--color-border-default);\n border-bottom: 1px solid var(--color-border-default);\n white-space: normal;\n text-align: left;\n}\n.lintje-tabs--panel .lintje-tabs__tab:last-child { border-right: 0; }\n.lintje-tabs--panel .lintje-tabs__tab:hover:not(.is-active):not(.is-disabled) {\n background: var(--color-bg-subtle);\n border-bottom-color: var(--color-border-default);\n}\n.lintje-tabs--panel .lintje-tabs__tab:hover:not(.is-active):not(.is-disabled) .lintje-tabs__label {\n text-decoration: underline;\n}\n/* The bottom edge takes the surface, so the tab and the panel are one shape. */\n.lintje-tabs--panel .lintje-tabs__tab.is-active {\n background: var(--color-bg-surface);\n border-bottom-color: var(--color-bg-surface);\n color: var(--color-accent-text);\n}\n.lintje-tabs__icon { flex: none; }\n.lintje-tabs__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }\n.lintje-tabs__head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1) var(--space-2); }\n.lintje-tabs__hint { font: var(--text-meta); color: var(--color-text-muted); }\n.lintje-tabs--panel .lintje-tabs__panel { padding: var(--space-6); }\n\n@media (max-width: 767px) {\n .lintje-tabs--panel .lintje-tabs__tab {\n flex-direction: column;\n align-items: center;\n gap: var(--space-2);\n padding: var(--space-3) var(--space-2);\n text-align: center;\n }\n .lintje-tabs--panel .lintje-tabs__text { align-items: center; }\n .lintje-tabs--panel .lintje-tabs__head { justify-content: center; }\n .lintje-tabs--panel .lintje-tabs__hint { display: none; }\n .lintje-tabs--panel .lintje-tabs__panel { padding: var(--space-4); }\n}\n\n/* Forced colours drop the surface: the chosen tab's label is underlined instead. */\n@media (forced-colors: active) {\n .lintje-tabs--panel .lintje-tabs__tab.is-active .lintje-tabs__label { text-decoration: underline; }\n}\n";
3
+ var l = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n/* `position: relative` makes the row the tabs' offset parent, for scrolling the chosen tab into sight. */\n.lintje-tabs__list {\n position: relative;\n display: flex; flex-wrap: wrap;\n border-bottom: 1px solid var(--color-border-heavy);\n}\n\n/* A transparent bottom edge in reserve, so the chosen tab's line takes no space of its own. */\n.lintje-tabs__tab {\n display: inline-flex; align-items: center; gap: var(--space-2);\n height: var(--h-touch);\n padding: 0 var(--space-4);\n background: transparent;\n color: var(--color-text-primary);\n border-bottom: 3px solid transparent;\n font: var(--text-ui);\n text-decoration: none;\n white-space: nowrap;\n transition: background var(--dur-hover) var(--ease-in-motion),\n border-color var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-tabs__tab:hover:not(.is-active):not(.is-disabled) {\n background: var(--color-bg-subtle);\n border-bottom-color: var(--color-border-heavy);\n}\n\n/* The chosen tab: the line is a line (3:1) and the word is text (4.5:1), hence two tokens. */\n.lintje-tabs__tab.is-active {\n border-bottom-color: var(--color-accent-line);\n color: var(--color-accent-text);\n font-weight: 700;\n}\n\n.lintje-tabs__tab.is-disabled { color: var(--color-text-disabled); cursor: not-allowed; }\n\n.lintje-tabs__panel { padding-top: var(--space-4); }\n.lintje-tabs__panel.is-pressed:focus-visible { outline: none; }\n\n@media screen and (max-width: 767px) {\n .lintje-tabs__list {\n flex-wrap: nowrap;\n overflow-x: auto;\n scrollbar-width: none;\n }\n .lintje-tabs__list::-webkit-scrollbar { display: none; }\n .lintje-tabs__tab { flex: 0 0 auto; }\n .lintje-tabs__list.is-scroll-start { box-shadow: var(--shadow-scroll-start); }\n .lintje-tabs__list.is-scroll-end { box-shadow: var(--shadow-scroll-end); }\n .lintje-tabs__list.is-scroll-start.is-scroll-end {\n box-shadow: var(--shadow-scroll-start), var(--shadow-scroll-end);\n }\n}\n\n/* Forced colours: the chosen tab's line turns Highlight, a disabled tab GrayText. */\n@media (forced-colors: active) {\n .lintje-tabs__tab.is-active { border-bottom-color: Highlight; }\n .lintje-tabs__tab.is-disabled { color: GrayText; }\n}\n\n/* --- The panel variant --------------------------------------------------------\n Large tabs that head a bordered panel. The chosen tab is the panel's own surface and runs into\n it; the others stand on the subtle fill. No line: surface, accent word and weight say it. */\n.lintje-tabs--panel {\n background: var(--color-bg-surface);\n border: 1px solid var(--color-border-default);\n}\n.lintje-tabs--panel .lintje-tabs__list {\n flex-wrap: nowrap;\n background: var(--color-bg-subtle);\n border-bottom-color: var(--color-border-default);\n}\n.lintje-tabs--panel .lintje-tabs__tab {\n flex: 1 1 0;\n min-width: 0;\n height: auto;\n min-height: var(--h-touch);\n margin-bottom: -1px;\n align-items: flex-start;\n gap: var(--space-3);\n padding: var(--space-4) var(--space-5);\n border-right: 1px solid var(--color-border-default);\n border-bottom: 1px solid var(--color-border-default);\n white-space: normal;\n text-align: left;\n}\n.lintje-tabs--panel .lintje-tabs__tab:last-child { border-right: 0; }\n.lintje-tabs--panel .lintje-tabs__tab:hover:not(.is-active):not(.is-disabled) {\n background: var(--color-bg-subtle);\n border-bottom-color: var(--color-border-default);\n}\n.lintje-tabs--panel .lintje-tabs__tab:hover:not(.is-active):not(.is-disabled) .lintje-tabs__label {\n text-decoration: underline;\n}\n/* The bottom edge takes the surface, so the tab and the panel are one shape. */\n.lintje-tabs--panel .lintje-tabs__tab.is-active {\n background: var(--color-bg-surface);\n border-bottom-color: var(--color-bg-surface);\n color: var(--color-accent-text);\n}\n.lintje-tabs__icon { flex: none; }\n.lintje-tabs__text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }\n.lintje-tabs__head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-1) var(--space-2); }\n.lintje-tabs__hint { font: var(--text-meta); color: var(--color-text-muted); }\n.lintje-tabs--panel .lintje-tabs__panel { padding: var(--space-6); }\n\n@media screen and (max-width: 767px) {\n .lintje-tabs--panel .lintje-tabs__tab {\n flex-direction: column;\n align-items: center;\n gap: var(--space-2);\n padding: var(--space-3) var(--space-2);\n text-align: center;\n }\n .lintje-tabs--panel .lintje-tabs__text { align-items: center; }\n .lintje-tabs--panel .lintje-tabs__head { justify-content: center; }\n .lintje-tabs--panel .lintje-tabs__hint { display: none; }\n .lintje-tabs--panel .lintje-tabs__panel { padding: var(--space-4); }\n}\n\n/* Forced colours drop the surface: the chosen tab's label is underlined instead. */\n@media (forced-colors: active) {\n .lintje-tabs--panel .lintje-tabs__tab.is-active .lintje-tabs__label { text-decoration: underline; }\n}\n";
4
4
  //#endregion
5
5
  //#region src/components/layout/tabs/tabs.ts
6
6
  function u(e, t, n) {
@@ -12,7 +12,7 @@ function u(e, t, n) {
12
12
  function d(e, t, n, r) {
13
13
  return e < n ? e : e + t > n + r ? e + t - r : n;
14
14
  }
15
- var f = class extends c {
15
+ var f = class extends t {
16
16
  constructor(...e) {
17
17
  super(...e), this.tabs = [], this.label = "", this.variant = "line", this.edges = {
18
18
  start: !1,
@@ -20,7 +20,7 @@ var f = class extends c {
20
20
  }, this.#e = null, this.#t = !1;
21
21
  }
22
22
  static {
23
- this.styles = [e, r(l)];
23
+ this.styles = [a, r(l)];
24
24
  }
25
25
  static {
26
26
  this.properties = {
@@ -59,9 +59,9 @@ var f = class extends c {
59
59
  let n = this.tabs[e];
60
60
  n && !n.disabled && (this.emit("lintje-tab-change", n.value), n.href && this.followLink(n.href, t));
61
61
  }
62
- onClick(e, t) {
63
- let n = this.tabs[t];
64
- n && (!n.href || n.disabled || i(e)) && this.choose(t, e);
62
+ onClick(t, n) {
63
+ let r = this.tabs[n];
64
+ r && (!r.href || r.disabled || e(t)) && this.choose(n, t);
65
65
  }
66
66
  onKeydown(e) {
67
67
  let t = this.tabs.length;
@@ -84,73 +84,73 @@ var f = class extends c {
84
84
  let t = this.list, n = this.tabElement(this.selectedIndex);
85
85
  t && n && t.scrollWidth > t.clientWidth && (t.scrollLeft = d(n.offsetLeft, n.offsetWidth, t.scrollLeft, t.clientWidth)), this.measureEdges();
86
86
  }
87
- renderTab(e, t, r) {
88
- let i = a({
87
+ renderTab(e, t, n) {
88
+ let r = s({
89
89
  "lintje-tabs__tab": !0,
90
90
  "focus-inset": !0,
91
- "is-active": r,
91
+ "is-active": n,
92
92
  "is-disabled": !!e.disabled
93
- }), c = s`<span class="lintje-tabs__label">${e.label}</span>${typeof e.count == "number" ? s`<lintje-badge variant="count">${e.count}</lintje-badge>` : n}${e.badge ? s`<lintje-badge tone="info">${e.badge}</lintje-badge>` : n}`, l = this.variant === "panel" ? s`${e.icon ? o(e.icon, {
93
+ }), a = o`<span class="lintje-tabs__label">${e.label}</span>${typeof e.count == "number" ? o`<lintje-badge variant="count">${e.count}</lintje-badge>` : i}${e.badge ? o`<lintje-badge tone="info">${e.badge}</lintje-badge>` : i}`, l = this.variant === "panel" ? o`${e.icon ? c(e.icon, {
94
94
  size: 24,
95
95
  className: "lintje-tabs__icon"
96
- }) : n}<span
96
+ }) : i}<span
97
97
  class="lintje-tabs__text"
98
- ><span class="lintje-tabs__head">${c}</span>${e.hint ? s`<span class="lintje-tabs__hint">${e.hint}</span>` : n}</span
99
- >` : c;
100
- return this.isNav ? e.disabled ? s`<a id="tab-${t}" class=${i} role="link" aria-disabled="true">${l}</a>` : s`<a
98
+ ><span class="lintje-tabs__head">${a}</span>${e.hint ? o`<span class="lintje-tabs__hint">${e.hint}</span>` : i}</span
99
+ >` : a;
100
+ return this.isNav ? e.disabled ? o`<a id="tab-${t}" class=${r} role="link" aria-disabled="true">${l}</a>` : o`<a
101
101
  id="tab-${t}"
102
- class=${i}
102
+ class=${r}
103
103
  href=${e.href}
104
- aria-current=${r ? "page" : n}
104
+ aria-current=${n ? "page" : i}
105
105
  @click=${(e) => this.onClick(e, t)}
106
106
  >${l}</a
107
- >` : e.href && !e.disabled ? s`<a
107
+ >` : e.href && !e.disabled ? o`<a
108
108
  id="tab-${t}"
109
- class=${i}
109
+ class=${r}
110
110
  role="tab"
111
111
  href=${e.href}
112
- aria-selected=${String(r)}
112
+ aria-selected=${String(n)}
113
113
  aria-controls="panel-${t}"
114
- tabindex=${r ? 0 : -1}
114
+ tabindex=${n ? 0 : -1}
115
115
  @click=${(e) => this.onClick(e, t)}
116
116
  >${l}</a
117
- >` : s`<button
117
+ >` : o`<button
118
118
  id="tab-${t}"
119
119
  type="button"
120
- class=${i}
120
+ class=${r}
121
121
  role="tab"
122
- aria-selected=${String(r)}
122
+ aria-selected=${String(n)}
123
123
  aria-controls="panel-${t}"
124
- aria-disabled=${e.disabled ? "true" : n}
125
- tabindex=${r ? 0 : -1}
124
+ aria-disabled=${e.disabled ? "true" : i}
125
+ tabindex=${n ? 0 : -1}
126
126
  @click=${(e) => this.onClick(e, t)}
127
127
  >
128
128
  ${l}
129
129
  </button>`;
130
130
  }
131
131
  render() {
132
- let e = this.selectedIndex, t = this.isNav, r = s`<div
133
- class=${a({
132
+ let e = this.selectedIndex, t = this.isNav, n = o`<div
133
+ class=${s({
134
134
  "lintje-tabs__list": !0,
135
135
  "is-scroll-start": this.edges.start,
136
136
  "is-scroll-end": this.edges.end
137
137
  })}
138
- role=${t ? n : "tablist"}
139
- aria-label=${t ? n : this.label || n}
140
- @keydown=${t ? n : this.onKeydown}
138
+ role=${t ? i : "tablist"}
139
+ aria-label=${t ? i : this.label || i}
140
+ @keydown=${t ? i : this.onKeydown}
141
141
  @scroll=${this.measureEdges}
142
142
  >
143
143
  ${this.tabs.map((t, n) => this.renderTab(t, n, n === e))}
144
- </div>`, i = a({
144
+ </div>`, r = s({
145
145
  "lintje-tabs": !0,
146
146
  "lintje-tabs--panel": this.variant === "panel"
147
147
  });
148
- return t ? s`<div class=${i}>
149
- <nav aria-label=${this.label || n}>${r}</nav>
148
+ return t ? o`<div class=${r}>
149
+ <nav aria-label=${this.label || i}>${n}</nav>
150
150
  <div class="lintje-tabs__panel"><slot name=${this.tabs[e].value}></slot></div>
151
- </div>` : s`<div class=${i}>
152
- ${r}
153
- ${this.tabs.map((t, n) => s`<div
151
+ </div>` : o`<div class=${r}>
152
+ ${n}
153
+ ${this.tabs.map((t, n) => o`<div
154
154
  id="panel-${n}"
155
155
  class="lintje-tabs__panel"
156
156
  role="tabpanel"
@@ -167,6 +167,6 @@ var f = class extends c {
167
167
  </div>`;
168
168
  }
169
169
  };
170
- t("lintje-tabs", f);
170
+ n("lintje-tabs", f);
171
171
  //#endregion
172
172
  export { f as LintjeTabs, u as scrollEdges, d as scrollToShow };
@@ -1,8 +1,8 @@
1
- import { $ as e, Bt as t, Gt as n, Ht as r, Z as i, et as a, f as o, qt as s } from "../chunks/base-Bg-IFOPG.js";
2
- import { r as c, t as l } from "../chunks/input-BtuNFSWk.js";
1
+ import { Yt as e, Zt as t, en as n, lt as r, m as i, nn as a, st as o, ut as s } from "../chunks/base-CbmWxUig.js";
2
+ import { r as c, t as l } from "../chunks/input-CRW_exv_.js";
3
3
  import { filterOptions as u, splitMatch as d } from "./combobox.js";
4
4
  //#region src/components/inputs/tag-input/tag-input.css?inline
5
- var f = "/* The keyword field: chips and the typing part in one box that grows in height. */\n:host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n/* Below 768 px: the touch height and the full width, as `stacked`. */\n@media (max-width: 767px) {\n :host {\n width: 100%;\n --h-control: var(--h-touch);\n }\n}\n\n/* --- */\n\n/* The padding centres a chip in the control height; wrapped chips grow the box. */\n.lintje-tag-input {\n display: flex; flex-wrap: wrap; align-items: center;\n gap: 6px;\n min-height: var(--h-control);\n padding: calc((var(--h-control) - var(--h-chip-field)) / 2 - 1px) var(--space-2);\n border: 1px solid var(--color-border-field);\n border-radius: var(--radius);\n background: var(--color-bg-surface);\n color: var(--color-text-primary);\n}\n/* The ring is around the whole field; a chip draws it around itself when its cross has the focus. */\n.lintje-tag-input:has(.lintje-tag-input__input:focus-visible),\n.lintje-tag-input__chip:has(.lintje-tag-input__remove:focus-visible) {\n outline: var(--focus-width) solid var(--color-focus);\n outline-offset: var(--focus-offset);\n}\n.lintje-tag-input__input:focus-visible,\n.lintje-tag-input__remove:focus-visible { outline: none; }\n/* The padding gives back the pixel the 2 px error border takes. */\n.lintje-tag-input.is-error {\n border: 2px solid var(--color-error);\n padding: calc((var(--h-control) - var(--h-chip-field)) / 2 - 2px) calc(var(--space-2) - 1px);\n}\n/* Disabled wins over error: placed after it. */\n.lintje-tag-input.is-disabled {\n border: 1px solid var(--color-border-strong);\n padding: calc((var(--h-control) - var(--h-chip-field)) / 2 - 1px) var(--space-2);\n background: var(--color-bg-subtle);\n cursor: not-allowed;\n}\n\n.lintje-tag-input__chips { display: contents; }\n.lintje-tag-input__item { display: flex; min-width: 0; }\n.lintje-tag-input__chip {\n display: inline-flex; align-items: center;\n min-width: 0;\n height: var(--h-chip-field);\n padding: 0 0 0 var(--space-2);\n background: var(--color-bg-subtle);\n border: 1px solid var(--color-border-default);\n font-size: 0.875rem; white-space: nowrap;\n}\n.lintje-tag-input.is-disabled .lintje-tag-input__chip { padding-right: var(--space-2); }\n/* A word typed twice flashes its chip. */\n.lintje-tag-input__chip.is-flash { border-color: var(--color-accent-line); }\n.lintje-tag-input.is-disabled .lintje-tag-input__chip { color: var(--color-text-disabled); }\n/* A transparent hit area, above and below only, reaches the target height. */\n.lintje-tag-input__remove {\n position: relative;\n flex: none;\n width: var(--space-6); align-self: stretch;\n display: inline-flex; align-items: center; justify-content: center;\n color: var(--color-text-muted);\n}\n.lintje-tag-input__remove:hover { color: var(--color-text-primary); }\n.lintje-tag-input__remove::after {\n content: '';\n position: absolute;\n inset: min(0px, calc((var(--h-chip-field) - var(--h-target)) / 2)) 0;\n}\n\n.lintje-tag-input__input {\n flex: 1 1 60px; min-width: 0;\n height: var(--h-chip-field);\n padding: 0 var(--space-1);\n border: 0;\n background: none;\n color: inherit;\n font-size: 1rem;\n}\n.lintje-tag-input__input::placeholder { color: var(--color-text-placeholder); opacity: 1; }\n.lintje-tag-input__input:disabled { cursor: not-allowed; }\n\n.lintje-tag-input__list {\n max-height: calc(7 * var(--h-option) + var(--space-2));\n overflow-y: auto;\n padding: var(--space-1) 0;\n font: var(--text-ui);\n}\n.lintje-tag-input__option {\n display: flex; align-items: center;\n min-height: var(--h-option);\n padding: 0 14px;\n cursor: pointer;\n}\n.lintje-tag-input__option:hover,\n.lintje-tag-input__option.is-active { background: var(--color-bg-subtle); }\n/* The option the keys stand on: the fill alone is about 1.1:1, so the focus ring inside the row. */\n.lintje-tag-input__option.is-active {\n outline: var(--focus-width) solid var(--color-focus);\n outline-offset: calc(var(--focus-width) * -1);\n}\n\n/* Forced colours drop the fill: the row takes an edge inside, keeping its size. */\n@media (forced-colors: active) {\n .lintje-tag-input__option.is-active { outline: 1px solid CanvasText; outline-offset: -1px; }\n}\n";
5
+ var f = "/* The keyword field: chips and the typing part in one box that grows in height. */\n:host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n/* Below 768 px: the touch height and the full width, as `stacked`. */\n@media screen and (max-width: 767px) {\n :host {\n width: 100%;\n --h-control: var(--h-touch);\n }\n}\n\n/* --- */\n\n/* The padding centres a chip in the control height; wrapped chips grow the box. */\n.lintje-tag-input {\n display: flex; flex-wrap: wrap; align-items: center;\n gap: 6px;\n min-height: var(--h-control);\n padding: calc((var(--h-control) - var(--h-chip-field)) / 2 - 1px) var(--space-2);\n border: 1px solid var(--color-border-field);\n border-radius: var(--radius);\n background: var(--color-bg-surface);\n color: var(--color-text-primary);\n}\n/* The ring is around the whole field; a chip draws it around itself when its cross has the focus. */\n.lintje-tag-input:has(.lintje-tag-input__input:focus-visible),\n.lintje-tag-input__chip:has(.lintje-tag-input__remove:focus-visible) {\n outline: var(--focus-width) solid var(--color-focus);\n outline-offset: var(--focus-offset);\n}\n.lintje-tag-input__input:focus-visible,\n.lintje-tag-input__remove:focus-visible { outline: none; }\n/* The padding gives back the pixel the 2 px error border takes. */\n.lintje-tag-input.is-error {\n border: 2px solid var(--color-error);\n padding: calc((var(--h-control) - var(--h-chip-field)) / 2 - 2px) calc(var(--space-2) - 1px);\n}\n/* Disabled wins over error: placed after it. */\n.lintje-tag-input.is-disabled {\n border: 1px solid var(--color-border-strong);\n padding: calc((var(--h-control) - var(--h-chip-field)) / 2 - 1px) var(--space-2);\n background: var(--color-bg-subtle);\n cursor: not-allowed;\n}\n\n.lintje-tag-input__chips { display: contents; }\n.lintje-tag-input__item { display: flex; min-width: 0; }\n.lintje-tag-input__chip {\n display: inline-flex; align-items: center;\n min-width: 0;\n height: var(--h-chip-field);\n padding: 0 0 0 var(--space-2);\n background: var(--color-bg-subtle);\n border: 1px solid var(--color-border-default);\n font-size: 0.875rem; white-space: nowrap;\n}\n.lintje-tag-input.is-disabled .lintje-tag-input__chip { padding-right: var(--space-2); }\n/* A word typed twice flashes its chip. */\n.lintje-tag-input__chip.is-flash { border-color: var(--color-accent-line); }\n.lintje-tag-input.is-disabled .lintje-tag-input__chip { color: var(--color-text-disabled); }\n/* A transparent hit area, above and below only, reaches the target height. */\n.lintje-tag-input__remove {\n position: relative;\n flex: none;\n width: var(--space-6); align-self: stretch;\n display: inline-flex; align-items: center; justify-content: center;\n color: var(--color-text-muted);\n}\n.lintje-tag-input__remove:hover { color: var(--color-text-primary); }\n.lintje-tag-input__remove::after {\n content: '';\n position: absolute;\n inset: min(0px, calc((var(--h-chip-field) - var(--h-target)) / 2)) 0;\n}\n\n.lintje-tag-input__input {\n flex: 1 1 60px; min-width: 0;\n height: var(--h-chip-field);\n padding: 0 var(--space-1);\n border: 0;\n background: none;\n color: inherit;\n font-size: 1rem;\n}\n.lintje-tag-input__input::placeholder { color: var(--color-text-placeholder); opacity: 1; }\n.lintje-tag-input__input:disabled { cursor: not-allowed; }\n\n.lintje-tag-input__list {\n max-height: calc(7 * var(--h-option) + var(--space-2));\n overflow-y: auto;\n padding: var(--space-1) 0;\n font: var(--text-ui);\n}\n.lintje-tag-input__option {\n display: flex; align-items: center;\n min-height: var(--h-option);\n padding: 0 14px;\n cursor: pointer;\n}\n.lintje-tag-input__option:hover,\n.lintje-tag-input__option.is-active { background: var(--color-bg-subtle); }\n/* The option the keys stand on: the fill alone is about 1.1:1, so the focus ring inside the row. */\n.lintje-tag-input__option.is-active {\n outline: var(--focus-width) solid var(--color-focus);\n outline-offset: calc(var(--focus-width) * -1);\n}\n\n/* Forced colours drop the fill: the row takes an edge inside, keeping its size. */\n@media (forced-colors: active) {\n .lintje-tag-input__option.is-active { outline: 1px solid CanvasText; outline-offset: -1px; }\n}\n";
6
6
  //#endregion
7
7
  //#region src/components/inputs/tag-input/tag-input.ts
8
8
  function p(e) {
@@ -26,9 +26,9 @@ var h = 1e3, g = "lintje-tag-input-list", _ = "lintje-tag-input-keys", v = (e) =
26
26
  }
27
27
  static {
28
28
  this.styles = [
29
- e,
30
- r(l),
31
- r(f)
29
+ r,
30
+ t(l),
31
+ t(f)
32
32
  ];
33
33
  }
34
34
  static {
@@ -155,12 +155,12 @@ var h = 1e3, g = "lintje-tag-input-list", _ = "lintje-tag-input-keys", v = (e) =
155
155
  }
156
156
  renderChip(e, t) {
157
157
  let r = this.labelOf(e);
158
- return s`<li class="lintje-tag-input__item">
159
- <span class=${i({
158
+ return a`<li class="lintje-tag-input__item">
159
+ <span class=${o({
160
160
  "lintje-tag-input__chip": !0,
161
161
  "is-flash": this.flash === e
162
162
  })}
163
- >${r}${this.disabled ? n : s`<button
163
+ >${r}${this.disabled ? n : a`<button
164
164
  type="button"
165
165
  class="lintje-tag-input__remove"
166
166
  tabindex="-1"
@@ -169,13 +169,13 @@ var h = 1e3, g = "lintje-tag-input-list", _ = "lintje-tag-input-keys", v = (e) =
169
169
  @keydown=${(e) => this.onChipKeydown(e, t)}
170
170
  @click=${() => this.removeChip(t, "input")}
171
171
  >
172
- ${a("functioneel-kruis", { size: 12 })}
172
+ ${s("functioneel-kruis", { size: 12 })}
173
173
  </button>`}</span
174
174
  >
175
175
  </li>`;
176
176
  }
177
177
  renderSuggestions() {
178
- return this.listOpen ? s`<ul
178
+ return this.listOpen ? a`<ul
179
179
  id=${g}
180
180
  class="lintje-tag-input__list"
181
181
  role="listbox"
@@ -183,10 +183,10 @@ var h = 1e3, g = "lintje-tag-input-list", _ = "lintje-tag-input-keys", v = (e) =
183
183
  aria-labelledby=${this.labelId}
184
184
  >
185
185
  ${this.suggestions.map((e, t) => {
186
- let [r, a, o] = d(e.label, this.text);
187
- return s`<li
186
+ let [r, i, s] = d(e.label, this.text);
187
+ return a`<li
188
188
  id=${v(t)}
189
- class=${i({
189
+ class=${o({
190
190
  "lintje-tag-input__option": !0,
191
191
  "is-active": t === this.active
192
192
  })}
@@ -194,17 +194,17 @@ var h = 1e3, g = "lintje-tag-input-list", _ = "lintje-tag-input-keys", v = (e) =
194
194
  aria-selected="false"
195
195
  @click=${() => this.add([e.label])}
196
196
  >
197
- ${r}${a ? s`<strong>${a}</strong>` : n}${o}
197
+ ${r}${i ? a`<strong>${i}</strong>` : n}${s}
198
198
  </li>`;
199
199
  })}
200
200
  </ul>` : n;
201
201
  }
202
202
  render() {
203
203
  let e = this.listOpen, t = !!this.options;
204
- return s`<div class="lintje-field">
204
+ return a`<div class="lintje-field">
205
205
  ${this.renderLabel(this.controlId)}
206
206
  <div
207
- class=${i({
207
+ class=${o({
208
208
  "lintje-tag-input": !0,
209
209
  "is-error": !!this.error,
210
210
  "is-disabled": this.disabled
@@ -219,7 +219,7 @@ var h = 1e3, g = "lintje-tag-input-list", _ = "lintje-tag-input-keys", v = (e) =
219
219
  type="text"
220
220
  id=${this.controlId}
221
221
  class="lintje-tag-input__input"
222
- .value=${o(this.text)}
222
+ .value=${i(this.text)}
223
223
  placeholder=${this.value.length ? n : this.placeholder || n}
224
224
  autocomplete="off"
225
225
  enterkeyhint="enter"
@@ -257,6 +257,6 @@ var h = 1e3, g = "lintje-tag-input-list", _ = "lintje-tag-input-keys", v = (e) =
257
257
  </div>`;
258
258
  }
259
259
  };
260
- t("lintje-tag-input", y);
260
+ e("lintje-tag-input", y);
261
261
  //#endregion
262
262
  export { y as LintjeTagInput, m as addWords, p as splitWords };
@@ -1,9 +1,9 @@
1
- import { $ as e, Bt as t, G as n, Gt as r, Ht as i, Z as a, qt as o } from "../chunks/base-Bg-IFOPG.js";
2
- import { r as s, t as c } from "../chunks/input-BtuNFSWk.js";
1
+ import { Yt as e, Zt as t, en as n, et as r, lt as i, nn as a, st as o } from "../chunks/base-CbmWxUig.js";
2
+ import { r as s, t as c } from "../chunks/input-CRW_exv_.js";
3
3
  import { t as l } from "../chunks/prose-CmKVp5kL.js";
4
4
  import "./text-input.js";
5
5
  //#region src/components/inputs/text-editor/text-editor.css?inline
6
- var u = "/* The text editor: a frame with the toolbar on top and the editing surface under it. */\n:host {\n display: block;\n min-width: 0;\n}\n:host([hidden]) { display: none; }\n\n/* --- */\n\n/* 1 px field border; with the focus in the surface the ring goes round the whole frame. */\n.lintje-text-editor {\n display: flex; flex-direction: column;\n min-width: 0;\n border: 1px solid var(--color-border-field);\n background: var(--color-bg-surface);\n}\n.lintje-text-editor:has(.lintje-text-editor__surface:focus-visible) {\n outline: var(--focus-width) solid var(--color-focus);\n outline-offset: var(--focus-offset);\n}\n.lintje-text-editor.is-error { border: 2px solid var(--color-error); }\n/* Disabled wins over error: after it, the whole border back to 1 px strong. */\n.lintje-text-editor.is-disabled { border: 1px solid var(--color-border-strong); }\n\n/* --- The toolbar --------------------------------------------------------- */\n/* The row gap keeps the buttons' hit areas from overlapping. */\n.lintje-text-editor__toolbar {\n display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-1);\n padding: var(--space-1);\n background: var(--color-bg-page);\n border-bottom: 1px solid var(--color-border-default);\n}\n/* A transparent hit area, above and below only, reaches the target height. */\n.lintje-text-editor__tool {\n position: relative;\n flex: none;\n width: var(--h-icon-button); height: var(--h-icon-button);\n display: inline-flex; align-items: center; justify-content: center;\n border: 1px solid transparent;\n background: transparent;\n color: var(--color-text-primary);\n font-size: 1rem;\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-text-editor__tool::after {\n content: '';\n position: absolute;\n inset: min(0px, calc((100% - var(--h-target)) / 2)) 0;\n}\n.lintje-text-editor__tool--bold,\n.lintje-text-editor__tool--heading { font-weight: 700; }\n.lintje-text-editor__tool--italic { font-style: italic; }\n/* The text fallback while an icon has no file. */\n.lintje-text-editor__tool--word {\n width: auto; min-width: var(--h-icon-button);\n padding: 0 var(--space-2);\n font-size: 0.875rem; font-weight: 700;\n}\n.lintje-text-editor__tool:hover:not(:disabled):not(.is-idle) { background: var(--color-bg-subtle); }\n/* The border keeps an edge in dark. */\n.lintje-text-editor__tool.is-pressed {\n background: var(--color-action-primary);\n color: var(--color-action-primary-text);\n border-color: var(--color-action-primary-border);\n}\n.lintje-text-editor__tool.is-pressed:hover:not(:disabled) { background: var(--color-action-primary); }\n.lintje-text-editor__tool.is-idle,\n.lintje-text-editor__tool:disabled { color: var(--color-text-disabled); cursor: not-allowed; }\n\n/* --- The surface --------------------------------------------------------- */\n.lintje-text-editor__surface {\n min-height: 132px;\n padding: var(--space-3);\n overflow-wrap: anywhere;\n}\n/* The ring is the frame's, not the surface's. */\n.lintje-text-editor__surface:focus-visible { outline: none; }\n.lintje-text-editor.is-disabled .lintje-text-editor__surface {\n background: var(--color-bg-subtle);\n color: var(--color-text-disabled);\n cursor: not-allowed;\n}\n/* The prose sheet colours its headings itself. */\n.lintje-text-editor.is-disabled .lintje-text-editor__surface * { color: inherit; }\n\n/* --- The link field ------------------------------------------------------ */\n.lintje-text-editor__link { width: 280px; max-width: 100%; padding: var(--space-4); }\n\n/* Below 768 px the toolbar scrolls sideways; at 48 px high the hit areas stay whole. */\n@media (max-width: 767px) {\n .lintje-text-editor__toolbar { flex-wrap: nowrap; overflow-x: auto; }\n}\n\n/* Forced colours drop the fill: the border turns Highlight, 2 px inside the fixed box. */\n@media (forced-colors: active) {\n .lintje-text-editor__tool.is-pressed { border: 2px solid Highlight; }\n}\n", d = (e) => e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
6
+ var u = "/* The text editor: a frame with the toolbar on top and the editing surface under it. */\n:host {\n display: block;\n min-width: 0;\n}\n:host([hidden]) { display: none; }\n\n/* --- */\n\n/* 1 px field border; with the focus in the surface the ring goes round the whole frame. */\n.lintje-text-editor {\n display: flex; flex-direction: column;\n min-width: 0;\n border: 1px solid var(--color-border-field);\n background: var(--color-bg-surface);\n}\n.lintje-text-editor:has(.lintje-text-editor__surface:focus-visible) {\n outline: var(--focus-width) solid var(--color-focus);\n outline-offset: var(--focus-offset);\n}\n.lintje-text-editor.is-error { border: 2px solid var(--color-error); }\n/* Disabled wins over error: after it, the whole border back to 1 px strong. */\n.lintje-text-editor.is-disabled { border: 1px solid var(--color-border-strong); }\n\n/* --- The toolbar --------------------------------------------------------- */\n/* The row gap keeps the buttons' hit areas from overlapping. */\n.lintje-text-editor__toolbar {\n display: flex; flex-wrap: wrap; gap: var(--space-2) var(--space-1);\n padding: var(--space-1);\n background: var(--color-bg-page);\n border-bottom: 1px solid var(--color-border-default);\n}\n/* A transparent hit area, above and below only, reaches the target height. */\n.lintje-text-editor__tool {\n position: relative;\n flex: none;\n width: var(--h-icon-button); height: var(--h-icon-button);\n display: inline-flex; align-items: center; justify-content: center;\n border: 1px solid transparent;\n background: transparent;\n color: var(--color-text-primary);\n font-size: 1rem;\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-text-editor__tool::after {\n content: '';\n position: absolute;\n inset: min(0px, calc((100% - var(--h-target)) / 2)) 0;\n}\n.lintje-text-editor__tool--bold,\n.lintje-text-editor__tool--heading { font-weight: 700; }\n.lintje-text-editor__tool--italic { font-style: italic; }\n/* The text fallback while an icon has no file. */\n.lintje-text-editor__tool--word {\n width: auto; min-width: var(--h-icon-button);\n padding: 0 var(--space-2);\n font-size: 0.875rem; font-weight: 700;\n}\n.lintje-text-editor__tool:hover:not(:disabled):not(.is-idle) { background: var(--color-bg-subtle); }\n/* The border keeps an edge in dark. */\n.lintje-text-editor__tool.is-pressed {\n background: var(--color-action-primary);\n color: var(--color-action-primary-text);\n border-color: var(--color-action-primary-border);\n}\n.lintje-text-editor__tool.is-pressed:hover:not(:disabled) { background: var(--color-action-primary); }\n.lintje-text-editor__tool.is-idle,\n.lintje-text-editor__tool:disabled { color: var(--color-text-disabled); cursor: not-allowed; }\n\n/* --- The surface --------------------------------------------------------- */\n.lintje-text-editor__surface {\n min-height: 132px;\n padding: var(--space-3);\n overflow-wrap: anywhere;\n}\n/* The ring is the frame's, not the surface's. */\n.lintje-text-editor__surface:focus-visible { outline: none; }\n.lintje-text-editor.is-disabled .lintje-text-editor__surface {\n background: var(--color-bg-subtle);\n color: var(--color-text-disabled);\n cursor: not-allowed;\n}\n/* The prose sheet colours its headings itself. */\n.lintje-text-editor.is-disabled .lintje-text-editor__surface * { color: inherit; }\n\n/* --- The link field ------------------------------------------------------ */\n.lintje-text-editor__link { width: 280px; max-width: 100%; padding: var(--space-4); }\n\n/* Below 768 px the toolbar scrolls sideways; at 48 px high the hit areas stay whole. */\n@media screen and (max-width: 767px) {\n .lintje-text-editor__toolbar { flex-wrap: nowrap; overflow-x: auto; }\n}\n\n/* Forced colours drop the fill: the border turns Highlight, 2 px inside the fixed box. */\n@media (forced-colors: active) {\n .lintje-text-editor__tool.is-pressed { border: 2px solid Highlight; }\n}\n", d = (e) => e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;");
7
7
  function f(e) {
8
8
  let t = (e ?? "").replace(/\p{Cc}/gu, "").trim();
9
9
  if (!t) return null;
@@ -225,10 +225,10 @@ var z = class extends s {
225
225
  }
226
226
  static {
227
227
  this.styles = [
228
- e,
229
- i(c),
230
- i(l),
231
- i(u)
228
+ i,
229
+ t(c),
230
+ t(l),
231
+ t(u)
232
232
  ];
233
233
  }
234
234
  static {
@@ -320,8 +320,8 @@ var z = class extends s {
320
320
  e.key === "Enter" && !e.isComposing && e.preventDefault();
321
321
  }
322
322
  onLinkFocusOut(e) {
323
- let t = e.relatedTarget, r = e.currentTarget;
324
- this.linkOpen && t && !n(t, r) && !n(this, t) && (this.linkOpen = !1);
323
+ let t = e.relatedTarget, n = e.currentTarget;
324
+ this.linkOpen && t && !r(t, n) && !r(this, t) && (this.linkOpen = !1);
325
325
  }
326
326
  onLinkClose(e) {
327
327
  e.stopPropagation(), this.linkOpen = !1, this.restore();
@@ -354,20 +354,20 @@ var z = class extends s {
354
354
  }));
355
355
  }
356
356
  renderTool(e, t) {
357
- let n = this.active.has(e.format), i = e.format === "link" && this.collapsed && !n;
358
- return o`<button
357
+ let r = this.active.has(e.format), i = e.format === "link" && this.collapsed && !r;
358
+ return a`<button
359
359
  type="button"
360
- class=${a({
360
+ class=${o({
361
361
  "lintje-text-editor__tool": !0,
362
362
  [`lintje-text-editor__tool--${e.format}`]: !0,
363
363
  "lintje-text-editor__tool--word": e.text.length > 1,
364
- "is-pressed": n,
364
+ "is-pressed": r,
365
365
  "is-idle": i
366
366
  })}
367
367
  tabindex=${t === this.toolIndex ? "0" : "-1"}
368
368
  aria-label=${e.label}
369
- aria-pressed=${n ? "true" : "false"}
370
- aria-disabled=${i ? "true" : r}
369
+ aria-pressed=${r ? "true" : "false"}
370
+ aria-disabled=${i ? "true" : n}
371
371
  ?disabled=${this.disabled}
372
372
  @mousedown=${(e) => e.preventDefault()}
373
373
  @click=${() => {
@@ -378,10 +378,10 @@ var z = class extends s {
378
378
  </button>`;
379
379
  }
380
380
  render() {
381
- return o`<div class="lintje-field" @focusout=${this.onFocusOut}>
381
+ return a`<div class="lintje-field" @focusout=${this.onFocusOut}>
382
382
  ${this.renderLabel()}
383
383
  <div
384
- class=${a({
384
+ class=${o({
385
385
  "lintje-text-editor": !0,
386
386
  "is-error": !!this.error,
387
387
  "is-disabled": this.disabled
@@ -403,16 +403,16 @@ var z = class extends s {
403
403
  @lintje-close=${this.onLinkClose}
404
404
  @focusout=${this.onLinkFocusOut}
405
405
  >
406
- ${this.linkOpen ? o`<div class="lintje-text-editor__link" @keydown=${this.onLinkKeydown}>
406
+ ${this.linkOpen ? a`<div class="lintje-text-editor__link" @keydown=${this.onLinkKeydown}>
407
407
  <lintje-text-input
408
408
  class="lintje-text-editor__link-field"
409
409
  label="Adres van de link"
410
410
  placeholder="https://"
411
411
  hint="Enter plaatst de link"
412
- error=${this.linkError || r}
412
+ error=${this.linkError || n}
413
413
  @lintje-change=${this.onLinkChange}
414
414
  ></lintje-text-input>
415
- </div>` : r}
415
+ </div>` : n}
416
416
  </lintje-popover>
417
417
  <div
418
418
  id=${this.controlId}
@@ -421,9 +421,9 @@ var z = class extends s {
421
421
  aria-multiline="true"
422
422
  aria-labelledby=${this.labelId}
423
423
  aria-describedby=${this.describedBy}
424
- aria-invalid=${this.error ? "true" : r}
425
- aria-required=${this.required ? "true" : r}
426
- aria-disabled=${this.disabled ? "true" : r}
424
+ aria-invalid=${this.error ? "true" : n}
425
+ aria-required=${this.required ? "true" : n}
426
+ aria-disabled=${this.disabled ? "true" : n}
427
427
  contenteditable=${this.disabled ? "false" : "true"}
428
428
  tabindex=${this.disabled ? "-1" : "0"}
429
429
  @keydown=${this.onSurfaceKeydown}
@@ -434,6 +434,6 @@ var z = class extends s {
434
434
  </div>`;
435
435
  }
436
436
  };
437
- t("lintje-text-editor", z);
437
+ e("lintje-text-editor", z);
438
438
  //#endregion
439
439
  export { z as LintjeTextEditor };