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,26 +1,26 @@
1
- import { $ as e, B as t, Bt as n, G as r, Gt as i, Ht as a, I as o, Z as s, et as c, j as l, q as u, qt as d, zt as f } from "../chunks/base-Bg-IFOPG.js";
1
+ import { H as e, Jt as t, K as n, L as r, Yt as i, Zt as a, en as o, et as s, lt as c, nn as l, nt as u, rt as d, st as f, ut as p } from "../chunks/base-CbmWxUig.js";
2
2
  //#region src/components/shared/menu.css?inline
3
- var p = "/* The rows of a menu, in the popover of a menu button, the user menu or a map's select button.\n The trigger is the owner's. */\n\n.lintje-menu {\n display: flex; flex-direction: column;\n min-width: 240px;\n padding: var(--space-1) 0;\n}\n\n.lintje-menu__row {\n display: flex; align-items: center; gap: var(--space-2);\n width: 100%;\n height: var(--h-control);\n padding: 0 var(--space-4);\n font: var(--text-ui);\n color: var(--color-text-primary);\n text-align: left;\n text-decoration: none;\n white-space: nowrap;\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-menu__row:hover:not(.is-disabled) { background: var(--color-bg-subtle); }\n.lintje-menu__icon { flex: none; }\n.lintje-menu__slot { width: 16px; height: 16px; }\n.lintje-menu__check { color: var(--color-accent-text); }\n/* One of a choice: the form's radio, at the size of the menu's icons. */\n.lintje-menu__radio {\n box-sizing: border-box;\n width: 16px; height: 16px;\n border: 2px solid var(--color-border-choice);\n border-radius: var(--radius-round);\n background: var(--color-bg-surface);\n display: inline-flex; align-items: center; justify-content: center;\n}\n.lintje-menu__radio.is-checked { border-color: var(--color-accent-line); }\n.lintje-menu__radio.is-checked::after {\n content: '';\n width: 6px; height: 6px;\n border-radius: var(--radius-round);\n background: var(--color-accent);\n}\n@media (forced-colors: active) {\n .lintje-menu__radio.is-checked::after { forced-color-adjust: none; background: Highlight; }\n}\n.lintje-menu__label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; }\n.lintje-menu__hint {\n flex: none;\n margin-left: var(--space-4);\n font-family: var(--font-mono);\n font-size: 0.875rem;\n color: var(--color-text-muted);\n}\n\n.lintje-menu__row.is-disabled { color: var(--color-text-disabled); cursor: not-allowed; }\n.lintje-menu__row.is-disabled .lintje-menu__hint { color: var(--color-text-disabled); }\n.lintje-menu__row.is-danger { color: var(--color-error-text); font-weight: 700; }\n\n.lintje-menu__separator {\n height: 1px;\n margin: var(--space-1) 0;\n background: var(--color-border-default);\n}\n\n.lintje-menu__tip { display: flex; }\n\n/* The heading stands in line with the labels: the row's padding, the icon and the gap. */\n/* A group's name stands at the menu's edge, over the checks and circles of its rows. */\n.lintje-menu__heading {\n padding: var(--space-1) var(--space-4);\n font: var(--text-small);\n font-weight: 700;\n color: var(--color-text-muted);\n}\n\n@media (max-width: 767px) {\n .lintje-menu__row { height: var(--h-touch); }\n}\n", m = "/* The host is the trigger's box, with the busy sentence beside it; the menu is a fixed popover\n and takes no space. */\n:host {\n display: inline-flex; flex-wrap: wrap; align-items: center;\n gap: var(--space-2) var(--space-3);\n min-width: 0;\n vertical-align: middle;\n}\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-menu-button__trigger.lintje-button--secondary.is-open { background: var(--color-bg-selected); }\n.lintje-menu-button__trigger.lintje-button--tertiary.is-open { background: var(--color-bg-subtle); }\n.lintje-menu-button__trigger.lintje-icon-button--outlined.is-open { background: var(--color-bg-selected); }\n.lintje-menu-button__trigger.lintje-icon-button--flat.is-open { background: var(--color-bg-subtle); }\n\n\n.lintje-menu-button__trigger.lintje-button { padding-right: var(--space-3); }\n.lintje-menu-button__trigger--flat.lintje-button { padding: 0 var(--space-2); border-color: transparent; }\n/* Split: two halves of one button, the page showing through the 1 px between them. */\n.lintje-menu-button__split { display: inline-flex; gap: 1px; min-width: 0; }\n.lintje-menu-button__split .lintje-menu-button__trigger--split.lintje-button { width: var(--h-button); padding: 0; }\n/* Busy, a split button's ring takes its icon's square: the label stays and nothing moves. */\n.lintje-menu-button__busy {\n flex: none;\n width: 16px; height: 16px;\n margin: 2px;\n border: 2px solid currentColor;\n border-top-color: transparent;\n border-radius: var(--radius-round);\n animation: lintje-spin var(--dur-skeleton) linear infinite;\n}\n.lintje-menu-button__split .is-working { cursor: progress; }\n@media (prefers-reduced-motion: reduce) {\n .lintje-menu-button__busy { animation: none; }\n}\n.lintje-menu-button__trigger.lintje-button--primary.is-open { background: var(--color-action-primary-hover); }\n/* Disabled, like the link button, it only loses its ink. */\n.lintje-menu-button__trigger--flat.lintje-button.is-disabled { background: none; border-color: transparent; }\n\n/* Without a sentence the live region stays in the tree but takes no room, and no gap. */\n.lintje-menu-button__status { position: absolute; }\n.lintje-menu-button__status.is-busy {\n position: static;\n display: flex; align-items: center; gap: var(--space-2);\n font: var(--text-ui);\n color: var(--color-text-primary);\n}\n\n/* The breadcrumbs' \"…\" sits in a line of text, so it reaches the 48 px target upwards and\n downwards only, through a transparent hit area. */\n.lintje-menu-button__trigger--ellipsis {\n position: relative;\n display: inline-flex; align-items: center; justify-content: center;\n min-width: var(--h-chip-field); height: var(--h-chip-field);\n padding: 0 var(--space-2);\n background: var(--color-bg-subtle);\n color: var(--color-accent-text);\n font: var(--text-small);\n font-weight: 700;\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-menu-button__trigger--ellipsis::after {\n content: '';\n position: absolute;\n inset: min(0px, calc((100% - var(--h-target)) / 2)) 0;\n}\n.lintje-menu-button__trigger--ellipsis:hover:not(.is-disabled),\n.lintje-menu-button__trigger--ellipsis.is-open { background: var(--color-bg-selected); }\n.lintje-menu-button__trigger--ellipsis.is-disabled { color: var(--color-text-disabled); cursor: not-allowed; }\n\n/* Forced colours: the disabled \"…\" is `aria-disabled`, so the browser does not gray it. */\n@media (forced-colors: active) {\n .lintje-menu-button__trigger--ellipsis.is-disabled { color: GrayText; }\n}\n", h = (e) => e !== "separator" && !("heading" in e), g = 0;
4
- function _(e, t, n) {
3
+ var m = "/* The rows of a menu, in the popover of a menu button, the user menu or a map's select button.\n The trigger is the owner's. */\n\n.lintje-menu {\n display: flex; flex-direction: column;\n min-width: 240px;\n padding: var(--space-1) 0;\n}\n\n.lintje-menu__row {\n display: flex; align-items: center; gap: var(--space-2);\n width: 100%;\n height: var(--h-control);\n padding: 0 var(--space-4);\n font: var(--text-ui);\n color: var(--color-text-primary);\n text-align: left;\n text-decoration: none;\n white-space: nowrap;\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-menu__row:hover:not(.is-disabled) { background: var(--color-bg-subtle); }\n.lintje-menu__icon { flex: none; }\n.lintje-menu__slot { width: 16px; height: 16px; }\n.lintje-menu__check { color: var(--color-accent-text); }\n/* One of a choice: the form's radio, at the size of the menu's icons. */\n.lintje-menu__radio {\n box-sizing: border-box;\n width: 16px; height: 16px;\n border: 2px solid var(--color-border-choice);\n border-radius: var(--radius-round);\n background: var(--color-bg-surface);\n display: inline-flex; align-items: center; justify-content: center;\n}\n.lintje-menu__radio.is-checked { border-color: var(--color-accent-line); }\n.lintje-menu__radio.is-checked::after {\n content: '';\n width: 6px; height: 6px;\n border-radius: var(--radius-round);\n background: var(--color-accent);\n}\n@media (forced-colors: active) {\n .lintje-menu__radio.is-checked::after { forced-color-adjust: none; background: Highlight; }\n}\n.lintje-menu__label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; }\n.lintje-menu__hint {\n flex: none;\n margin-left: var(--space-4);\n font-family: var(--font-mono);\n font-size: 0.875rem;\n color: var(--color-text-muted);\n}\n\n.lintje-menu__row.is-disabled { color: var(--color-text-disabled); cursor: not-allowed; }\n.lintje-menu__row.is-disabled .lintje-menu__hint { color: var(--color-text-disabled); }\n.lintje-menu__row.is-danger { color: var(--color-error-text); font-weight: 700; }\n\n.lintje-menu__separator {\n height: 1px;\n margin: var(--space-1) 0;\n background: var(--color-border-default);\n}\n\n.lintje-menu__tip { display: flex; }\n\n/* The heading stands in line with the labels: the row's padding, the icon and the gap. */\n/* A group's name stands at the menu's edge, over the checks and circles of its rows. */\n.lintje-menu__heading {\n padding: var(--space-1) var(--space-4);\n font: var(--text-small);\n font-weight: 700;\n color: var(--color-text-muted);\n}\n\n@media screen and (max-width: 767px) {\n .lintje-menu__row { height: var(--h-touch); }\n}\n", h = "/* The host is the trigger's box, with the busy sentence beside it; the menu is a fixed popover\n and takes no space. */\n:host {\n display: inline-flex; flex-wrap: wrap; align-items: center;\n gap: var(--space-2) var(--space-3);\n min-width: 0;\n vertical-align: middle;\n}\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-menu-button__trigger.lintje-button--secondary.is-open { background: var(--color-bg-selected); }\n.lintje-menu-button__trigger.lintje-button--tertiary.is-open { background: var(--color-bg-subtle); }\n.lintje-menu-button__trigger.lintje-icon-button--outlined.is-open { background: var(--color-bg-selected); }\n.lintje-menu-button__trigger.lintje-icon-button--flat.is-open { background: var(--color-bg-subtle); }\n\n\n.lintje-menu-button__trigger.lintje-button { padding-right: var(--space-3); }\n.lintje-menu-button__trigger--flat.lintje-button { padding: 0 var(--space-2); border-color: transparent; }\n/* Split: two halves of one button, the page showing through the 1 px between them. */\n.lintje-menu-button__split { display: inline-flex; gap: 1px; min-width: 0; }\n.lintje-menu-button__split .lintje-menu-button__trigger--split.lintje-button { width: var(--h-button); padding: 0; }\n/* Busy, a split button's ring takes its icon's square: the label stays and nothing moves. */\n.lintje-menu-button__busy {\n flex: none;\n width: 16px; height: 16px;\n margin: 2px;\n border: 2px solid currentColor;\n border-top-color: transparent;\n border-radius: var(--radius-round);\n animation: lintje-spin var(--dur-skeleton) linear infinite;\n}\n.lintje-menu-button__split .is-working { cursor: progress; }\n@media (prefers-reduced-motion: reduce) {\n .lintje-menu-button__busy { animation: none; }\n}\n.lintje-menu-button__trigger.lintje-button--primary.is-open { background: var(--color-action-primary-hover); }\n/* Disabled, like the link button, it only loses its ink. */\n.lintje-menu-button__trigger--flat.lintje-button.is-disabled { background: none; border-color: transparent; }\n\n/* Without a sentence the live region stays in the tree but takes no room, and no gap. */\n.lintje-menu-button__status { position: absolute; }\n.lintje-menu-button__status.is-busy {\n position: static;\n display: flex; align-items: center; gap: var(--space-2);\n font: var(--text-ui);\n color: var(--color-text-primary);\n}\n\n/* The breadcrumbs' \"…\" sits in a line of text, so it reaches the 48 px target upwards and\n downwards only, through a transparent hit area. */\n.lintje-menu-button__trigger--ellipsis {\n position: relative;\n display: inline-flex; align-items: center; justify-content: center;\n min-width: var(--h-chip-field); height: var(--h-chip-field);\n padding: 0 var(--space-2);\n background: var(--color-bg-subtle);\n color: var(--color-accent-text);\n font: var(--text-small);\n font-weight: 700;\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-menu-button__trigger--ellipsis::after {\n content: '';\n position: absolute;\n inset: min(0px, calc((100% - var(--h-target)) / 2)) 0;\n}\n.lintje-menu-button__trigger--ellipsis:hover:not(.is-disabled),\n.lintje-menu-button__trigger--ellipsis.is-open { background: var(--color-bg-selected); }\n.lintje-menu-button__trigger--ellipsis.is-disabled { color: var(--color-text-disabled); cursor: not-allowed; }\n\n/* Forced colours: the disabled \"…\" is `aria-disabled`, so the browser does not gray it. */\n@media (forced-colors: active) {\n .lintje-menu-button__trigger--ellipsis.is-disabled { color: GrayText; }\n}\n", g = (e) => e !== "separator" && !("heading" in e), _ = 0;
4
+ function v(e, t, n) {
5
5
  let r = [], i = null, a = () => {
6
6
  if (!i) return;
7
7
  let e = `${t}-group-${r.length}`;
8
- r.push(d`<div class="lintje-menu__group" role="group" aria-labelledby=${e}>
8
+ r.push(l`<div class="lintje-menu__group" role="group" aria-labelledby=${e}>
9
9
  <div class="lintje-menu__heading" id=${e} role="presentation">${i.heading}</div>
10
10
  ${i.rows}
11
11
  </div>`), i = null;
12
12
  };
13
- for (let t of e) t === "separator" ? (a(), r.push(d`<div class="lintje-menu__separator" role="separator"></div>`)) : h(t) ? i ? i.rows.push(n(t)) : r.push(n(t)) : (a(), i = {
13
+ for (let t of e) t === "separator" ? (a(), r.push(l`<div class="lintje-menu__separator" role="separator"></div>`)) : g(t) ? i ? i.rows.push(n(t)) : r.push(n(t)) : (a(), i = {
14
14
  heading: t.heading,
15
15
  rows: []
16
16
  });
17
17
  return a(), r;
18
18
  }
19
- function v(e, t, n) {
19
+ function y(e, t, n) {
20
20
  let r = e.length;
21
21
  return r === 0 ? -1 : ((t + n) % r + r) % r;
22
22
  }
23
- function y(e, t, n) {
23
+ function b(e, t, n) {
24
24
  let r = n.toLocaleLowerCase("nl"), i = e.length;
25
25
  for (let n = 1; n <= i; n++) {
26
26
  let a = (t + n) % i, o = e[a];
@@ -28,14 +28,15 @@ function y(e, t, n) {
28
28
  }
29
29
  return -1;
30
30
  }
31
- var b = class extends f {
31
+ var x = class extends t {
32
32
  static {
33
33
  this.styles = [
34
- e,
35
- a(u),
36
- a(l),
37
- a(p),
38
- a(m)
34
+ c,
35
+ a(d),
36
+ a(r),
37
+ a(m),
38
+ a(h),
39
+ a(u)
39
40
  ];
40
41
  }
41
42
  static {
@@ -82,7 +83,7 @@ var b = class extends f {
82
83
  return this.disabled || !!this.busyLabel;
83
84
  }
84
85
  get rows() {
85
- return this.items.filter(h);
86
+ return this.items.filter(g);
86
87
  }
87
88
  get trigger() {
88
89
  return this.renderRoot.querySelector(".lintje-menu-button__trigger");
@@ -92,15 +93,15 @@ var b = class extends f {
92
93
  }
93
94
  show(e) {
94
95
  let t = this.rows;
95
- this.pendingFocus = v(t, e === "first" ? -1 : t.length, e === "first" ? 1 : -1), this.open = !0;
96
+ this.pendingFocus = y(t, e === "first" ? -1 : t.length, e === "first" ? 1 : -1), this.open = !0;
96
97
  }
97
98
  hide(e) {
98
99
  this.open = !1, e && this.trigger?.focus();
99
100
  }
100
101
  constructor() {
101
- super(), this.label = "", this.accessibleLabel = "", this.variant = "secondary", this.icon = !1, this.leadingIcon = "", this.disabled = !1, this.busyLabel = "", this.placement = "bottom-start", this.items = [], this.open = !1, this.split = !1, this.action = "", this.menuId = `lintje-menu-${++g}`, this.pendingFocus = null, this.onFocusOut = (e) => {
102
+ super(), this.label = "", this.accessibleLabel = "", this.variant = "secondary", this.icon = !1, this.leadingIcon = "", this.disabled = !1, this.busyLabel = "", this.placement = "bottom-start", this.items = [], this.open = !1, this.split = !1, this.action = "", this.menuId = `lintje-menu-${++_}`, this.pendingFocus = null, this.onFocusOut = (e) => {
102
103
  let t = e.relatedTarget;
103
- this.open && t && !r(t, this) && !r(this, t) && this.hide(!1);
104
+ this.open && t && !s(t, this) && !s(this, t) && this.hide(!1);
104
105
  }, this.onTriggerKeydown = (e) => {
105
106
  this.unavailable || (e.key === "ArrowDown" || e.key === "ArrowUp") && (e.preventDefault(), this.show(e.key === "ArrowDown" ? "first" : "last"));
106
107
  }, this.onTriggerClick = () => {
@@ -109,16 +110,16 @@ var b = class extends f {
109
110
  let t = this.rows, n = this.currentRow();
110
111
  switch (e.key) {
111
112
  case "ArrowDown":
112
- e.preventDefault(), this.focusRow(v(t, n, 1));
113
+ e.preventDefault(), this.focusRow(y(t, n, 1));
113
114
  return;
114
115
  case "ArrowUp":
115
- e.preventDefault(), this.focusRow(v(t, n < 0 ? t.length : n, -1));
116
+ e.preventDefault(), this.focusRow(y(t, n < 0 ? t.length : n, -1));
116
117
  return;
117
118
  case "Home":
118
- e.preventDefault(), this.focusRow(v(t, -1, 1));
119
+ e.preventDefault(), this.focusRow(y(t, -1, 1));
119
120
  return;
120
121
  case "End":
121
- e.preventDefault(), this.focusRow(v(t, t.length, -1));
122
+ e.preventDefault(), this.focusRow(y(t, t.length, -1));
122
123
  return;
123
124
  case "Tab":
124
125
  e.shiftKey || this.trigger?.focus(), this.hide(!1);
@@ -128,7 +129,7 @@ var b = class extends f {
128
129
  t instanceof HTMLAnchorElement && (e.preventDefault(), t.click());
129
130
  return;
130
131
  }
131
- default: e.key.length === 1 && e.key !== " " && !e.ctrlKey && !e.metaKey && this.focusRow(y(t, n, e.key));
132
+ default: e.key.length === 1 && e.key !== " " && !e.ctrlKey && !e.metaKey && this.focusRow(b(t, n, e.key));
132
133
  }
133
134
  }, this.addEventListener("focusout", this.onFocusOut);
134
135
  }
@@ -142,12 +143,12 @@ var b = class extends f {
142
143
  onPopoverClose(e) {
143
144
  e.stopPropagation(), this.hide(e.detail?.reason === "escape");
144
145
  }
145
- choose(e, t) {
146
- if (e.disabled) t.preventDefault();
147
- else if (e.href) {
148
- if (!o(t)) return;
149
- this.hide(!0), this.emit("lintje-action", e.value), this.followLink(e.href, t);
150
- } else this.hide(!0), this.emit("lintje-action", e.value);
146
+ choose(t, n) {
147
+ if (t.disabled) n.preventDefault();
148
+ else if (t.href) {
149
+ if (!e(n)) return;
150
+ this.hide(!0), this.emit("lintje-action", t.value), this.followLink(t.href, n);
151
+ } else this.hide(!0), this.emit("lintje-action", t.value);
151
152
  }
152
153
  willUpdate(e) {
153
154
  super.willUpdate(e), (e.has("disabled") || e.has("busyLabel")) && this.unavailable && (this.open = !1);
@@ -159,32 +160,32 @@ var b = class extends f {
159
160
  }
160
161
  }
161
162
  renderSplit() {
162
- let e = this.disabled ? "true" : i, t = !!this.busyLabel, n = this.variant === "flat" ? "tertiary" : this.variant;
163
- return d`<span class="lintje-menu-button__split">
163
+ let e = this.disabled ? "true" : o, t = !!this.busyLabel, n = this.variant === "flat" ? "tertiary" : this.variant;
164
+ return l`<span class="lintje-menu-button__split">
164
165
  <button
165
166
  type="button"
166
- class=${s({
167
+ class=${f({
167
168
  "lintje-button": !0,
168
169
  [`lintje-button--${n}`]: !0,
169
170
  "lintje-menu-button__main": !0,
170
171
  "is-disabled": this.disabled,
171
172
  "is-working": t
172
173
  })}
173
- aria-disabled=${this.disabled ? "true" : i}
174
- aria-busy=${t ? "true" : i}
174
+ aria-disabled=${this.disabled ? "true" : o}
175
+ aria-busy=${t ? "true" : o}
175
176
  @click=${() => {
176
177
  this.unavailable || this.emit("lintje-action", this.action);
177
178
  }}
178
179
  >
179
- ${t ? d`<span class="lintje-menu-button__busy" aria-hidden="true"></span>` : this.leadingIcon ? c(this.leadingIcon, {
180
+ ${t ? l`<span class="lintje-menu-button__busy" aria-hidden="true"></span>` : this.leadingIcon ? p(this.leadingIcon, {
180
181
  size: 20,
181
182
  className: "lintje-button__icon"
182
- }) : i}
183
+ }) : o}
183
184
  <span class="lintje-button__label">${this.label}</span>
184
185
  </button>
185
186
  <button
186
187
  type="button"
187
- class=${s({
188
+ class=${f({
188
189
  "lintje-button": !0,
189
190
  [`lintje-button--${n}`]: !0,
190
191
  "lintje-menu-button__trigger": !0,
@@ -201,7 +202,7 @@ var b = class extends f {
201
202
  @click=${this.onTriggerClick}
202
203
  @keydown=${this.onTriggerKeydown}
203
204
  >
204
- ${c("functioneel-delta-omlaag", {
205
+ ${p("functioneel-delta-omlaag", {
205
206
  size: 20,
206
207
  rotate: this.open ? 180 : void 0,
207
208
  className: "lintje-button__icon"
@@ -215,10 +216,10 @@ var b = class extends f {
215
216
  "lintje-menu-button__trigger": !0,
216
217
  "is-open": this.open,
217
218
  "is-disabled": this.unavailable
218
- }, t = this.unavailable ? "true" : i;
219
- return this.icon ? d`<button
219
+ }, t = this.unavailable ? "true" : o;
220
+ return this.icon ? l`<button
220
221
  type="button"
221
- class=${s({
222
+ class=${f({
222
223
  ...e,
223
224
  "lintje-icon-button": !0,
224
225
  "lintje-icon-button--outlined": this.variant !== "tertiary",
@@ -233,10 +234,10 @@ var b = class extends f {
233
234
  @click=${this.onTriggerClick}
234
235
  @keydown=${this.onTriggerKeydown}
235
236
  >
236
- ${c("functioneel-meer", { size: 16 })}
237
- </button>` : this.variant === "ellipsis" ? d`<button
237
+ ${p("functioneel-meer", { size: 16 })}
238
+ </button>` : this.variant === "ellipsis" ? l`<button
238
239
  type="button"
239
- class=${s({
240
+ class=${f({
240
241
  ...e,
241
242
  "lintje-menu-button__trigger--ellipsis": !0
242
243
  })}
@@ -249,15 +250,15 @@ var b = class extends f {
249
250
  @keydown=${this.onTriggerKeydown}
250
251
  >
251
252
  …
252
- </button>` : d`<button
253
+ </button>` : l`<button
253
254
  type="button"
254
- class=${s({
255
+ class=${f({
255
256
  ...e,
256
257
  "lintje-button": !0,
257
258
  [`lintje-button--${this.variant === "flat" ? "tertiary" : this.variant}`]: !0,
258
259
  "lintje-menu-button__trigger--flat": this.variant === "flat"
259
260
  })}
260
- aria-label=${this.accessibleLabel || i}
261
+ aria-label=${this.accessibleLabel || o}
261
262
  aria-haspopup="menu"
262
263
  aria-expanded=${String(this.open)}
263
264
  aria-controls=${this.menuId}
@@ -265,12 +266,12 @@ var b = class extends f {
265
266
  @click=${this.onTriggerClick}
266
267
  @keydown=${this.onTriggerKeydown}
267
268
  >
268
- ${this.leadingIcon ? c(this.leadingIcon, {
269
+ ${this.leadingIcon ? p(this.leadingIcon, {
269
270
  size: 16,
270
271
  className: "lintje-button__icon"
271
- }) : i}
272
+ }) : o}
272
273
  <span class="lintje-button__label">${this.label}</span>
273
- ${c("functioneel-delta-omlaag", {
274
+ ${p("functioneel-delta-omlaag", {
274
275
  size: 16,
275
276
  rotate: this.open ? 180 : void 0,
276
277
  className: "lintje-button__icon"
@@ -278,67 +279,67 @@ var b = class extends f {
278
279
  </button>`;
279
280
  }
280
281
  renderRow(e) {
281
- let t = s({
282
+ let t = f({
282
283
  "lintje-menu__row": !0,
283
284
  "focus-inset": !0,
284
285
  "is-danger": !!e.danger,
285
286
  "is-disabled": !!e.disabled
286
- }), n = e.checked !== void 0, r = n ? e.radio ? "menuitemradio" : "menuitemcheckbox" : "menuitem", a = i;
287
- n && e.radio ? a = d`<span
288
- class=${s({
287
+ }), n = e.checked !== void 0, r = n ? e.radio ? "menuitemradio" : "menuitemcheckbox" : "menuitem", i = o;
288
+ n && e.radio ? i = l`<span
289
+ class=${f({
289
290
  "lintje-menu__icon": !0,
290
291
  "lintje-menu__radio": !0,
291
292
  "is-checked": !!e.checked
292
293
  })}
293
- ></span>` : n ? a = e.checked ? c("functioneel-vinkje", {
294
+ ></span>` : n ? i = e.checked ? p("functioneel-vinkje", {
294
295
  size: 16,
295
296
  className: "lintje-menu__icon lintje-menu__check"
296
- }) : d`<span class="lintje-menu__icon lintje-menu__slot"></span>` : e.icon && (a = c(e.icon, {
297
+ }) : l`<span class="lintje-menu__icon lintje-menu__slot"></span>` : e.icon && (i = p(e.icon, {
297
298
  size: 16,
298
299
  className: "lintje-menu__icon"
299
300
  }));
300
- let o = d`${a}<span class="lintje-menu__label">${e.label}</span>${e.hint ? d`<span class="lintje-menu__hint">${e.hint}</span>` : i}`, l = e.href && !e.disabled ? d`<a
301
+ let a = l`${i}<span class="lintje-menu__label">${e.label}</span>${e.hint ? l`<span class="lintje-menu__hint">${e.hint}</span>` : o}`, s = e.href && !e.disabled ? l`<a
301
302
  class=${t}
302
303
  role="menuitem"
303
304
  tabindex="-1"
304
305
  href=${e.href}
305
306
  @click=${(t) => this.choose(e, t)}
306
- >${o}</a
307
- >` : d`<button
307
+ >${a}</a
308
+ >` : l`<button
308
309
  type="button"
309
310
  class=${t}
310
311
  role=${r}
311
312
  tabindex="-1"
312
- aria-checked=${n ? String(e.checked) : i}
313
- aria-disabled=${e.disabled ? "true" : i}
313
+ aria-checked=${n ? String(e.checked) : o}
314
+ aria-disabled=${e.disabled ? "true" : o}
314
315
  @click=${(t) => this.choose(e, t)}
315
316
  >
316
- ${o}
317
+ ${a}
317
318
  </button>`;
318
- return e.disabled && e.reason ? d`<lintje-tooltip class="lintje-menu__tip" text=${e.reason}>${l}</lintje-tooltip>` : l;
319
+ return e.disabled && e.reason ? l`<lintje-tooltip class="lintje-menu__tip" text=${e.reason}>${s}</lintje-tooltip>` : s;
319
320
  }
320
321
  render() {
321
322
  let e = !!this.busyLabel;
322
- return d`${this.renderTrigger()}<lintje-popover
323
+ return l`${this.renderTrigger()}<lintje-popover
323
324
  id=${this.menuId}
324
325
  panel-role="menu"
325
- label=${t(this.accessibleLabel || this.label || void 0)}
326
+ label=${n(this.accessibleLabel || this.label || void 0)}
326
327
  placement=${this.placement}
327
328
  ?open=${this.open}
328
329
  @lintje-close=${this.onPopoverClose}
329
330
  >
330
- <div class="lintje-menu" @keydown=${this.onMenuKeydown}>${_(this.items, this.menuId, (e) => this.renderRow(e))}</div>
331
+ <div class="lintje-menu" @keydown=${this.onMenuKeydown}>${v(this.items, this.menuId, (e) => this.renderRow(e))}</div>
331
332
  </lintje-popover
332
333
  ><div
333
- class=${s({
334
+ class=${f({
334
335
  "lintje-menu-button__status": !0,
335
336
  "is-busy": e && !this.split,
336
337
  "visually-hidden": e && this.split
337
338
  })}
338
339
  role="status"
339
- >${e ? d`<lintje-spinner></lintje-spinner><span>${this.busyLabel}</span>` : i}</div>`;
340
+ >${e ? l`<lintje-spinner></lintje-spinner><span>${this.busyLabel}</span>` : o}</div>`;
340
341
  }
341
342
  };
342
- n("lintje-menu-button", b);
343
+ i("lintje-menu-button", x);
343
344
  //#endregion
344
- export { b as LintjeMenuButton, p as n, v as nextRow, _ as renderMenuEntries, y as rowByLetter, m as t };
345
+ export { x as LintjeMenuButton, m as n, y as nextRow, v as renderMenuEntries, b as rowByLetter, h as t };
@@ -1,18 +1,16 @@
1
- import { $ as e, Bt as t, Gt as n, Ht as r, Nt as i, et as a, qt as o, zt as s } from "../chunks/base-Bg-IFOPG.js";
2
- import { t as c } from "../chunks/focus-trap-9BnE-xWv.js";
3
- import { t as l } from "../chunks/dialog-close-u75fVEw4.js";
1
+ import { Jt as e, Yt as t, Zt as n, en as r, lt as i, nn as a, ut as o } from "../chunks/base-CbmWxUig.js";
2
+ import { t as s } from "../chunks/dialog-close-u75fVEw4.js";
3
+ import { t as c } from "../chunks/dialog-DChINFxD.js";
4
4
  //#region src/components/overlays/modal/modal.css?inline
5
- var u = "/* `display: contents` keeps the host out of its parent's flex or grid layout. */\n:host {\n display: contents;\n}\n\n/* ------------------------------------------------------------------------ */\n\n/* Covers the whole viewport, above the shell's menu (z-index 30). */\n.lintje-modal__scrim {\n position: fixed; z-index: 80;\n inset: 0;\n background: var(--color-overlay-page);\n display: flex; align-items: center; justify-content: center;\n padding: var(--space-6);\n animation: lintje-fade-in var(--dur-scrim) var(--ease-in-motion);\n}\n.lintje-modal {\n width: min(1200px, 100%);\n height: 100%;\n max-height: 100%;\n display: flex; flex-direction: column;\n background: var(--color-bg-surface);\n border: 1px solid var(--color-border-strong);\n box-shadow: var(--shadow-popover);\n animation: lintje-rise var(--dur-modal) var(--ease-in-motion);\n}\n.lintje-modal:focus { outline: none; }\n\n.lintje-modal__header {\n display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4);\n padding: var(--space-5) var(--space-6);\n border-bottom: 1px solid var(--color-border-default);\n}\n.lintje-modal__title { font: var(--text-h2); }\n.lintje-modal__subtitle { font: var(--text-tile-sub); color: var(--color-text-muted); margin-top: var(--space-1); }\n.lintje-modal__close:hover { color: var(--color-text-primary); }\n\n.lintje-modal__body {\n flex: 1; min-height: 0; overflow: auto;\n padding: var(--space-5) var(--space-6);\n /* LintjeModal sets --chart-h-expanded on this body; a chart reads its own height token. */\n --chart-h-main: var(--chart-h-expanded);\n --chart-h-small: var(--chart-h-expanded);\n}\n\n.lintje-modal__footer {\n display: flex; align-items: center; justify-content: space-between; gap: var(--space-4);\n padding: var(--space-3) var(--space-6);\n border-top: 1px solid var(--color-border-default);\n font: var(--text-meta); color: var(--color-text-muted);\n}\n.lintje-modal__actions { display: flex; gap: var(--space-2); }\n.lintje-modal__actions[hidden] { display: none; }\n/* Narrow: a dialog with a form, as high as it needs and as wide as a form reads. */\n:host([narrow]) .lintje-modal { width: min(calc(15 * var(--space-10)), 100%); height: auto; }\n/* A form's dialog has a title of one line: the close button stands in line with it. */\n:host([narrow]) .lintje-modal__header { align-items: center; padding-block: var(--space-4); }\n:host([narrow]) .lintje-modal__footer { font: var(--text-ui); color: var(--color-text-primary); }\n\n@media (max-width: 767px) {\n .lintje-modal__scrim { padding: 0; align-items: stretch; }\n .lintje-modal { max-height: 100%; height: 100%; }\n .lintje-modal__body { --chart-h-main: 320px; --chart-h-small: 320px; }\n}\n", d = class extends s {
5
+ var l = "/* `display: contents` keeps the host out of its parent's flex or grid layout. */\n:host {\n display: contents;\n}\n\n/* ------------------------------------------------------------------------ */\n\n/* Covers the whole viewport, above the shell's menu (z-index 30). */\n.lintje-modal__scrim {\n position: fixed; z-index: 80;\n inset: 0;\n background: var(--color-overlay-page);\n display: flex; align-items: center; justify-content: center;\n padding: var(--space-6);\n animation: lintje-fade-in var(--dur-scrim) var(--ease-in-motion);\n}\n.lintje-modal {\n width: min(1200px, 100%);\n height: 100%;\n max-height: 100%;\n display: flex; flex-direction: column;\n background: var(--color-bg-surface);\n border: 1px solid var(--color-border-strong);\n box-shadow: var(--shadow-popover);\n animation: lintje-rise var(--dur-modal) var(--ease-in-motion);\n}\n.lintje-modal:focus { outline: none; }\n\n.lintje-modal__header {\n display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-4);\n padding: var(--space-5) var(--space-6);\n border-bottom: 1px solid var(--color-border-default);\n}\n.lintje-modal__title { font: var(--text-h2); }\n.lintje-modal__subtitle { font: var(--text-tile-sub); color: var(--color-text-muted); margin-top: var(--space-1); }\n.lintje-modal__close:hover { color: var(--color-text-primary); }\n\n.lintje-modal__body {\n flex: 1; min-height: 0; overflow: auto;\n padding: var(--space-5) var(--space-6);\n /* LintjeModal sets --chart-h-expanded on this body; a chart reads its own height token. */\n --chart-h-main: var(--chart-h-expanded);\n --chart-h-small: var(--chart-h-expanded);\n}\n\n.lintje-modal__footer {\n display: flex; align-items: center; justify-content: space-between; gap: var(--space-4);\n padding: var(--space-3) var(--space-6);\n border-top: 1px solid var(--color-border-default);\n font: var(--text-meta); color: var(--color-text-muted);\n}\n.lintje-modal__actions { display: flex; gap: var(--space-2); }\n.lintje-modal__actions[hidden] { display: none; }\n\n@media screen and (max-width: 767px) {\n .lintje-modal__scrim { padding: 0; align-items: stretch; }\n .lintje-modal { max-height: 100%; height: 100%; }\n .lintje-modal__body { --chart-h-main: 320px; --chart-h-small: 320px; }\n}\n", u = class extends e {
6
6
  constructor(...e) {
7
- super(...e), this.open = !1, this.heading = "Vergroot", this.csv = !0, this.png = !0, this.narrow = !1, this.footerSlotted = !1, this.actionsSlotted = !1, this.#e = null, this.#t = new c(), this.#n = null, this.#r = (e) => {
8
- e.key === "Escape" && this.#t.isTopmost() && this.close();
9
- };
7
+ super(...e), this.open = !1, this.heading = "", this.csv = !1, this.png = !1, this.footerSlotted = !1, this.actionsSlotted = !1, this.#e = new c(() => this.close()), this.#t = null;
10
8
  }
11
9
  static {
12
10
  this.styles = [
13
- e,
14
- r(l),
15
- r(u)
11
+ i,
12
+ n(s),
13
+ n(l)
16
14
  ];
17
15
  }
18
16
  static {
@@ -25,10 +23,6 @@ var u = "/* `display: contents` keeps the host out of its parent's flex or grid
25
23
  subtitle: { type: String },
26
24
  csv: { type: Boolean },
27
25
  png: { type: Boolean },
28
- narrow: {
29
- type: Boolean,
30
- reflect: !0
31
- },
32
26
  footerSlotted: { state: !0 },
33
27
  actionsSlotted: { state: !0 }
34
28
  };
@@ -42,45 +36,42 @@ var u = "/* `display: contents` keeps the host out of its parent's flex or grid
42
36
  }
43
37
  #e;
44
38
  #t;
45
- #n;
46
- #r;
47
39
  disconnectedCallback() {
48
- this.#o(), super.disconnectedCallback();
40
+ this.#i(), super.disconnectedCallback();
49
41
  }
50
42
  updated() {
51
- this.open && !this.#e ? this.#a() : !this.open && this.#e && this.#o(), this.open && this.#i();
43
+ this.open && !this.#e.held ? this.#r() : !this.open && this.#e.held && this.#i(), this.open && this.#n();
52
44
  }
53
- #i() {
45
+ #n() {
54
46
  let e = this.renderRoot.querySelector(".lintje-modal__body");
55
47
  if (!e) return;
56
48
  let t = getComputedStyle(e), n = e.clientHeight - parseFloat(t.paddingTop) - parseFloat(t.paddingBottom);
57
- n > 0 && e.style.setProperty("--chart-h-expanded", `${Math.floor(n)}px`), !this.#n && typeof ResizeObserver < "u" && (this.#n = new ResizeObserver(() => this.#i()), this.#n.observe(e));
49
+ n > 0 && e.style.setProperty("--chart-h-expanded", `${Math.floor(n)}px`), !this.#t && typeof ResizeObserver < "u" && (this.#t = new ResizeObserver(() => this.#n()), this.#t.observe(e));
58
50
  }
59
51
  close() {
60
52
  this.emit("lintje-close");
61
53
  }
62
- #a() {
63
- this.#e = i(), document.addEventListener("keydown", this.#r);
54
+ #r() {
64
55
  let e = this.renderRoot.querySelector(".lintje-modal");
65
- e && this.#t.activate(e);
56
+ e && (this.#e.hold(e), e.focus());
66
57
  }
67
- #o() {
68
- this.#e && (this.#n?.disconnect(), this.#n = null, document.removeEventListener("keydown", this.#r), this.#e(), this.#e = null, this.#t.deactivate());
58
+ #i() {
59
+ this.#e.held && (this.#t?.disconnect(), this.#t = null, this.#e.release());
69
60
  }
70
61
  render() {
71
- return this.open ? o`<div class="lintje-modal__scrim" @click=${() => this.close()}>
62
+ return this.open ? a`<div class="lintje-modal__scrim" @click=${() => this.close()}>
72
63
  <div
73
64
  class="lintje-modal"
74
65
  role="dialog"
75
66
  aria-modal="true"
76
- aria-label=${this.heading}
67
+ aria-label=${this.heading.trim() || "Venster"}
77
68
  tabindex="-1"
78
69
  @click=${(e) => e.stopPropagation()}
79
70
  >
80
71
  <header class="lintje-modal__header">
81
72
  <div>
82
73
  <h2 class="lintje-modal__title">${this.heading}</h2>
83
- ${this.subtitle ? o`<p class="lintje-modal__subtitle">${this.subtitle}</p>` : n}
74
+ ${this.subtitle ? a`<p class="lintje-modal__subtitle">${this.subtitle}</p>` : r}
84
75
  </div>
85
76
  <button
86
77
  type="button"
@@ -88,7 +79,7 @@ var u = "/* `display: contents` keeps the host out of its parent's flex or grid
88
79
  aria-label="Sluiten"
89
80
  @click=${() => this.close()}
90
81
  >
91
- ${a("functioneel-kruis", { size: 16 })}
82
+ ${o("functioneel-kruis", { size: 16 })}
92
83
  </button>
93
84
  </header>
94
85
 
@@ -101,27 +92,27 @@ var u = "/* `display: contents` keeps the host out of its parent's flex or grid
101
92
  <span><slot name="footer" @slotchange=${this.onFooterSlotChange}></slot></span>
102
93
  <div class="lintje-modal__actions" ?hidden=${!this.csv && !this.png && !this.actionsSlotted}>
103
94
  <slot name="actions" @slotchange=${this.onActionsSlotChange}></slot>
104
- ${this.csv || this.png ? o`
105
- ${this.csv ? o`<lintje-button
95
+ ${this.csv || this.png ? a`
96
+ ${this.csv ? a`<lintje-button
106
97
  variant="tertiary"
107
98
  size="compact"
108
99
  icon="functioneel-downloaden"
109
100
  @click=${() => this.emit("lintje-download-csv")}
110
101
  >CSV</lintje-button
111
- >` : n}
112
- ${this.png ? o`<lintje-button
102
+ >` : r}
103
+ ${this.png ? a`<lintje-button
113
104
  variant="tertiary"
114
105
  size="compact"
115
106
  icon="functioneel-downloaden"
116
107
  @click=${() => this.emit("lintje-download-png")}
117
108
  >PNG</lintje-button
118
- >` : n}` : n}
109
+ >` : r}` : r}
119
110
  </div>
120
111
  </footer>
121
112
  </div>
122
- </div>` : n;
113
+ </div>` : r;
123
114
  }
124
115
  };
125
- t("lintje-modal", d);
116
+ t("lintje-modal", u);
126
117
  //#endregion
127
- export { d as LintjeModal };
118
+ export { u as LintjeModal };