lintje 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. package/README.md +1 -1
  2. package/dist-elements/actions.js +1 -1
  3. package/dist-elements/chunks/{base-CbmWxUig.js → base-DRGvkF-r.js} +90 -87
  4. package/dist-elements/chunks/{controls-DxmnDSBr.js → controls-_4ac1Lpz.js} +1 -1
  5. package/dist-elements/chunks/{date-format-mHtZyBys.js → date-format-DxP9yfDp.js} +1 -1
  6. package/dist-elements/chunks/{dialog-DChINFxD.js → dialog-B7aRBtjy.js} +2 -2
  7. package/dist-elements/chunks/{disclosure-DLkXPUpV.js → disclosure-DirPLy2E.js} +1 -1
  8. package/dist-elements/chunks/download-C68kcwPj.js +206 -0
  9. package/dist-elements/chunks/{focus-trap-BwOxE5BX.js → focus-trap-Dv8zu64A.js} +1 -1
  10. package/dist-elements/chunks/input-BGMLam-O.js +195 -0
  11. package/dist-elements/chunks/input-lQTmOMOz.js +4 -0
  12. package/dist-elements/chunks/{player-B8QXJ0Z5.js → player-BApadXr8.js} +2 -2
  13. package/dist-elements/chunks/{sentence-B19AyZBS.js → sentence-0wO85ZdJ.js} +1 -1
  14. package/dist-elements/chunks/{stagger-BHoOgy0g.js → stagger-BB_gcxBI.js} +55 -47
  15. package/dist-elements/content.js +1 -0
  16. package/dist-elements/core.js +1 -1
  17. package/dist-elements/custom-elements.json +7635 -6802
  18. package/dist-elements/data-types.json +130 -28
  19. package/dist-elements/feedback.js +1 -1
  20. package/dist-elements/guides/loading.md +3 -3
  21. package/dist-elements/inputs.js +1 -0
  22. package/dist-elements/layout.js +1 -1
  23. package/dist-elements/lintje.js +6301 -5732
  24. package/dist-elements/overlays.js +1 -1
  25. package/dist-elements/tag/activity-log.js +1 -1
  26. package/dist-elements/tag/ai-label.js +1 -1
  27. package/dist-elements/tag/announcement.js +2 -2
  28. package/dist-elements/tag/app-search.js +2 -2
  29. package/dist-elements/tag/audio-player.js +2 -2
  30. package/dist-elements/tag/badge.d.ts +1 -1
  31. package/dist-elements/tag/badge.js +1 -1
  32. package/dist-elements/tag/breadcrumbs.js +1 -1
  33. package/dist-elements/tag/button.d.ts +1 -1
  34. package/dist-elements/tag/button.js +1 -1
  35. package/dist-elements/tag/card-list.js +1 -1
  36. package/dist-elements/tag/card.js +1 -1
  37. package/dist-elements/tag/chart.js +721 -406
  38. package/dist-elements/tag/chat-answer.js +2 -2
  39. package/dist-elements/tag/chat-composer.js +1 -1
  40. package/dist-elements/tag/chat-message.js +1 -1
  41. package/dist-elements/tag/chat-strip.js +1 -1
  42. package/dist-elements/tag/chat-suggestions.js +1 -1
  43. package/dist-elements/tag/chat.js +1 -1
  44. package/dist-elements/tag/checkbox-group.js +3 -2
  45. package/dist-elements/tag/checkbox.js +3 -2
  46. package/dist-elements/tag/code.js +1 -1
  47. package/dist-elements/tag/combobox.js +11 -10
  48. package/dist-elements/tag/conflict-alert.js +1 -1
  49. package/dist-elements/tag/copy-button.js +1 -1
  50. package/dist-elements/tag/data-table.js +137 -137
  51. package/dist-elements/tag/date-input.js +14 -13
  52. package/dist-elements/tag/date-range.js +5 -4
  53. package/dist-elements/tag/description-list.js +1 -1
  54. package/dist-elements/tag/dialog.js +4 -4
  55. package/dist-elements/tag/document-viewer.js +1 -1
  56. package/dist-elements/tag/drawer.js +3 -3
  57. package/dist-elements/tag/empty-state.js +1 -1
  58. package/dist-elements/tag/error-page.js +1 -1
  59. package/dist-elements/tag/error-summary.js +2 -2
  60. package/dist-elements/tag/expander.js +2 -2
  61. package/dist-elements/tag/explainer.js +2 -2
  62. package/dist-elements/tag/field.js +1 -1
  63. package/dist-elements/tag/file-upload.js +4 -3
  64. package/dist-elements/tag/filter-bar.js +2 -2
  65. package/dist-elements/tag/filter-sheet.js +3 -3
  66. package/dist-elements/tag/filter-zone.js +2 -2
  67. package/dist-elements/tag/find.d.ts +1 -0
  68. package/dist-elements/tag/find.js +128 -0
  69. package/dist-elements/tag/footer.js +1 -1
  70. package/dist-elements/tag/form-actions.js +2 -2
  71. package/dist-elements/tag/form-section.js +2 -2
  72. package/dist-elements/tag/form.js +2 -2
  73. package/dist-elements/tag/gallery.js +1 -1
  74. package/dist-elements/tag/grid-item.d.ts +1 -1
  75. package/dist-elements/tag/grid-item.js +1 -1
  76. package/dist-elements/tag/grid.d.ts +1 -1
  77. package/dist-elements/tag/grid.js +1 -1
  78. package/dist-elements/tag/hero.js +1 -1
  79. package/dist-elements/tag/highlight.js +1 -1
  80. package/dist-elements/tag/icon-button.d.ts +1 -1
  81. package/dist-elements/tag/icon-button.js +1 -1
  82. package/dist-elements/tag/icon.d.ts +1 -1
  83. package/dist-elements/tag/icon.js +1 -1
  84. package/dist-elements/tag/job-list.js +1 -1
  85. package/dist-elements/tag/kpi-row.js +1 -1
  86. package/dist-elements/tag/kpi.js +61 -61
  87. package/dist-elements/tag/level-meter.js +1 -1
  88. package/dist-elements/tag/list.js +2 -2
  89. package/dist-elements/tag/logo.js +1 -1
  90. package/dist-elements/tag/map.js +148 -142
  91. package/dist-elements/tag/menu-button.js +1 -1
  92. package/dist-elements/tag/modal.js +2 -2
  93. package/dist-elements/tag/multiselect.js +4 -3
  94. package/dist-elements/tag/note.js +1 -1
  95. package/dist-elements/tag/notifications.js +2 -2
  96. package/dist-elements/tag/number-input.js +3 -2
  97. package/dist-elements/tag/page-header.js +1 -1
  98. package/dist-elements/tag/pagination.js +32 -32
  99. package/dist-elements/tag/popover.d.ts +1 -1
  100. package/dist-elements/tag/popover.js +1 -1
  101. package/dist-elements/tag/progress-bar.d.ts +1 -1
  102. package/dist-elements/tag/progress-bar.js +1 -1
  103. package/dist-elements/tag/prose.js +1 -1
  104. package/dist-elements/tag/qr-code.js +1 -1
  105. package/dist-elements/tag/radio-group.js +3 -2
  106. package/dist-elements/tag/range.js +3 -2
  107. package/dist-elements/tag/recording-status.js +1 -1
  108. package/dist-elements/tag/repeater.js +1 -1
  109. package/dist-elements/tag/segmented.js +3 -2
  110. package/dist-elements/tag/select.js +3 -2
  111. package/dist-elements/tag/shell.js +3 -3
  112. package/dist-elements/tag/skeleton.d.ts +1 -1
  113. package/dist-elements/tag/skeleton.js +1 -1
  114. package/dist-elements/tag/slot-picker.js +4 -3
  115. package/dist-elements/tag/sortable-list.js +1 -1
  116. package/dist-elements/tag/spinner.d.ts +1 -1
  117. package/dist-elements/tag/spinner.js +1 -1
  118. package/dist-elements/tag/split-pane.js +1 -1
  119. package/dist-elements/tag/status-dot.d.ts +1 -1
  120. package/dist-elements/tag/status-dot.js +1 -1
  121. package/dist-elements/tag/stepper.js +1 -1
  122. package/dist-elements/tag/streaming-text.js +1 -1
  123. package/dist-elements/tag/sub-nav.js +1 -1
  124. package/dist-elements/tag/tabs.js +1 -1
  125. package/dist-elements/tag/tag-input.js +11 -10
  126. package/dist-elements/tag/text-editor.js +3 -2
  127. package/dist-elements/tag/text-input.js +3 -2
  128. package/dist-elements/tag/textarea.js +3 -2
  129. package/dist-elements/tag/tile.d.ts +1 -1
  130. package/dist-elements/tag/tile.js +1 -1
  131. package/dist-elements/tag/time-input.js +7 -6
  132. package/dist-elements/tag/toast.js +2 -2
  133. package/dist-elements/tag/toggle.js +3 -2
  134. package/dist-elements/tag/toggletip.js +2 -2
  135. package/dist-elements/tag/token-value.d.ts +1 -0
  136. package/dist-elements/tag/token-value.js +75 -0
  137. package/dist-elements/tag/tooltip.d.ts +1 -1
  138. package/dist-elements/tag/tooltip.js +1 -1
  139. package/dist-elements/tag/transcript.js +1 -1
  140. package/dist-elements/tag/translator.js +1 -1
  141. package/dist-elements/tag/tree-view.js +1 -1
  142. package/dist-elements/tag/user-menu.js +1 -1
  143. package/dist-elements/tag/video-player.js +2 -2
  144. package/dist-elements/tokens.json +1244 -0
  145. package/dist-elements/types/bundle/actions.d.ts +3 -3
  146. package/dist-elements/types/bundle/content.d.ts +1 -0
  147. package/dist-elements/types/bundle/feedback.d.ts +5 -5
  148. package/dist-elements/types/bundle/index.d.ts +0 -10
  149. package/dist-elements/types/bundle/inputs.d.ts +1 -0
  150. package/dist-elements/types/bundle/layout.d.ts +3 -3
  151. package/dist-elements/types/bundle/overlays.d.ts +2 -2
  152. package/dist-elements/types/categories.d.ts +4 -0
  153. package/dist-elements/types/{primitives → components/actions}/button/button.d.ts +1 -1
  154. package/dist-elements/types/components/actions/copy-button/copy-button.d.ts +2 -2
  155. package/dist-elements/types/{icons → components/actions}/icon/icon.d.ts +2 -2
  156. package/dist-elements/types/{primitives → components/actions}/icon-button/icon-button.d.ts +1 -1
  157. package/dist-elements/types/components/actions/menu-button/menu-button.d.ts +3 -3
  158. package/dist-elements/types/components/actions/qr-code/qr-code.d.ts +1 -1
  159. package/dist-elements/types/components/charts/chart/chart.d.ts +1 -1
  160. package/dist-elements/types/components/charts/explainer/explainer.d.ts +1 -1
  161. package/dist-elements/types/components/charts/kpi/kpi.d.ts +3 -3
  162. package/dist-elements/types/components/charts/kpi-row/kpi-row.d.ts +1 -1
  163. package/dist-elements/types/components/charts/note/note.d.ts +1 -1
  164. package/dist-elements/types/components/chat/chat/chat.d.ts +1 -1
  165. package/dist-elements/types/components/chat/chat-answer/chat-answer.d.ts +3 -3
  166. package/dist-elements/types/components/chat/chat-composer/chat-composer.d.ts +2 -2
  167. package/dist-elements/types/components/chat/chat-message/chat-message.d.ts +1 -1
  168. package/dist-elements/types/components/content/audio-player/audio-player.d.ts +5 -5
  169. package/dist-elements/types/components/content/code/code.d.ts +1 -1
  170. package/dist-elements/types/components/content/document-viewer/document-viewer.d.ts +2 -2
  171. package/dist-elements/types/components/content/highlight/highlight.d.ts +1 -1
  172. package/dist-elements/types/components/content/prose/prose.d.ts +1 -1
  173. package/dist-elements/types/components/content/token-value/token-value.d.ts +42 -0
  174. package/dist-elements/types/components/content/transcript/transcript.d.ts +3 -3
  175. package/dist-elements/types/components/content/translator/translator.d.ts +1 -1
  176. package/dist-elements/types/components/content/video-player/video-player.d.ts +1 -1
  177. package/dist-elements/types/components/feedback/announcement/announcement.d.ts +2 -2
  178. package/dist-elements/types/{primitives → components/feedback}/badge/badge.d.ts +2 -2
  179. package/dist-elements/types/components/feedback/conflict-alert/conflict-alert.d.ts +1 -1
  180. package/dist-elements/types/components/feedback/empty-state/empty-state.d.ts +2 -2
  181. package/dist-elements/types/components/feedback/job-list/job-list.d.ts +1 -1
  182. package/dist-elements/types/{primitives → components/feedback}/progress-bar/progress-bar.d.ts +2 -2
  183. package/dist-elements/types/{primitives → components/feedback}/skeleton/skeleton.d.ts +1 -1
  184. package/dist-elements/types/{primitives → components/feedback}/spinner/spinner.d.ts +1 -1
  185. package/dist-elements/types/{primitives → components/feedback}/status-dot/status-dot.d.ts +2 -2
  186. package/dist-elements/types/components/feedback/streaming-text/streaming-text.d.ts +2 -2
  187. package/dist-elements/types/components/filters/filter-sheet/filter-sheet.d.ts +2 -2
  188. package/dist-elements/types/components/forms/error-summary/error-summary.d.ts +1 -1
  189. package/dist-elements/types/components/forms/form-actions/form-actions.d.ts +1 -1
  190. package/dist-elements/types/components/forms/repeater/repeater.d.ts +2 -2
  191. package/dist-elements/types/components/forms/stepper/stepper.d.ts +1 -1
  192. package/dist-elements/types/components/frame/app-search/app-search.d.ts +1 -1
  193. package/dist-elements/types/components/frame/notifications/notifications.d.ts +2 -2
  194. package/dist-elements/types/components/frame/page-header/page-header.d.ts +1 -1
  195. package/dist-elements/types/components/frame/shell/shell.d.ts +1 -1
  196. package/dist-elements/types/components/frame/user-menu/user-menu.d.ts +2 -2
  197. package/dist-elements/types/components/index.d.ts +43 -3
  198. package/dist-elements/types/components/inputs/combobox/combobox.d.ts +2 -2
  199. package/dist-elements/types/components/inputs/date-input/date-input.d.ts +1 -1
  200. package/dist-elements/types/components/inputs/date-range/date-range.d.ts +2 -2
  201. package/dist-elements/types/components/inputs/file-upload/file-upload.d.ts +2 -2
  202. package/dist-elements/types/components/inputs/find/find.d.ts +51 -0
  203. package/dist-elements/types/components/inputs/segmented/segmented.d.ts +1 -1
  204. package/dist-elements/types/components/inputs/shared/input.d.ts +1 -1
  205. package/dist-elements/types/components/inputs/tag-input/tag-input.d.ts +1 -1
  206. package/dist-elements/types/components/inputs/text-editor/text-editor.d.ts +2 -2
  207. package/dist-elements/types/components/inputs/text-input/text-input.d.ts +1 -1
  208. package/dist-elements/types/components/inputs/time-input/time-input.d.ts +1 -1
  209. package/dist-elements/types/components/layout/expander/expander.d.ts +1 -1
  210. package/dist-elements/types/{primitives → components/layout}/grid/grid.d.ts +1 -1
  211. package/dist-elements/types/{primitives → components/layout}/grid-item/grid-item.d.ts +1 -1
  212. package/dist-elements/types/components/layout/tabs/tabs.d.ts +1 -1
  213. package/dist-elements/types/{primitives → components/layout}/tile/tile.d.ts +6 -6
  214. package/dist-elements/types/components/map/map/map.d.ts +2 -2
  215. package/dist-elements/types/components/overlays/modal/modal.d.ts +2 -2
  216. package/dist-elements/types/{primitives → components/overlays}/popover/popover.d.ts +2 -2
  217. package/dist-elements/types/components/overlays/toggletip/toggletip.d.ts +1 -1
  218. package/dist-elements/types/{primitives → components/overlays}/tooltip/tooltip.d.ts +2 -2
  219. package/dist-elements/types/components/shared/charts/index.d.ts +1 -0
  220. package/dist-elements/types/components/shared/charts/kinds.d.ts +6 -0
  221. package/dist-elements/types/components/shared/charts/map-chart/map-chart.d.ts +1 -1
  222. package/dist-elements/types/components/shared/charts/radar-chart/radar-chart.d.ts +31 -0
  223. package/dist-elements/types/components/shared/charts/shared/axes.d.ts +3 -1
  224. package/dist-elements/types/components/shared/charts/shared/controller.d.ts +5 -0
  225. package/dist-elements/types/components/shared/charts/shared/types.d.ts +33 -0
  226. package/dist-elements/types/components/shared/content-tile.d.ts +1 -1
  227. package/dist-elements/types/components/{forms/form → shared}/controls.d.ts +3 -2
  228. package/dist-elements/types/components/shared/overflow.d.ts +1 -1
  229. package/dist-elements/types/components/tables/activity-log/activity-log.d.ts +1 -1
  230. package/dist-elements/types/components/tables/card/card.d.ts +4 -4
  231. package/dist-elements/types/components/tables/data-table/actions.d.ts +1 -1
  232. package/dist-elements/types/components/tables/data-table/data-table.d.ts +3 -3
  233. package/dist-elements/types/components/tables/data-table/editing.d.ts +1 -1
  234. package/dist-elements/types/components/tables/data-table/filters.d.ts +3 -3
  235. package/dist-elements/types/components/tables/description-list/description-list.d.ts +2 -2
  236. package/dist-elements/types/components/tables/list/list.d.ts +4 -4
  237. package/dist-elements/types/components/tables/tree-view/tree-view.d.ts +1 -1
  238. package/dist-elements/types/core/focus.d.ts +1 -1
  239. package/dist-elements/types/types.d.ts +7 -7
  240. package/package.json +1 -1
  241. package/dist-elements/chunks/download-Ct9q2anY.js +0 -206
  242. package/dist-elements/chunks/input-CRW_exv_.js +0 -195
  243. package/dist-elements/types/primitives/index.d.ts +0 -35
  244. /package/dist-elements/types/components/content/{audio-player → shared}/playback.d.ts +0 -0
  245. /package/dist-elements/types/components/content/{audio-player → shared}/player.d.ts +0 -0
  246. /package/dist-elements/types/{primitives → components}/shared/announcement-block.d.ts +0 -0
  247. /package/dist-elements/types/components/{inputs/date-input → shared}/date-format.d.ts +0 -0
  248. /package/dist-elements/types/{primitives → components}/shared/empty-state-block.d.ts +0 -0
  249. /package/dist-elements/types/{primitives → components}/shared/grid-item-element.d.ts +0 -0
  250. /package/dist-elements/types/{primitives → components}/shared/length.d.ts +0 -0
  251. /package/dist-elements/types/{primitives → components}/shared/place.d.ts +0 -0
  252. /package/dist-elements/types/{primitives → components}/shared/tone.d.ts +0 -0
@@ -1,4 +1,4 @@
1
- import { F as e, O as t, P as n, Yt as r, Zt as i, _ as a, bt as o, d as s, en as c, lt as l, n as u, nn as d, p as f, rn as p, s as m, st as h, t as g, ut as _, y as v } from "../chunks/base-CbmWxUig.js";
1
+ import { F as e, O as t, P as n, Yt as r, Zt as i, _ as a, bt as o, d as s, en as c, i as l, lt as u, n as d, nn as f, o as p, rn as m, st as h, t as g, ut as _, y as v } from "../chunks/base-DRGvkF-r.js";
2
2
  //#region src/components/charts/kpi/kpi.css?inline
3
3
  var y = ":host {\n display: block;\n min-width: 0;\n}\n:host([hidden]) { display: none; }\n@media print { :host { break-inside: avoid; } }\n.lintje-kpi { height: 100%; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-kpi {\n display: flex;\n flex-direction: column;\n gap: var(--space-2);\n min-width: 0;\n background: var(--color-bg-surface);\n border: 1px solid var(--color-border-default);\n border-top: 4px solid var(--color-text-muted);\n border-radius: var(--radius);\n padding: var(--space-4) var(--space-5);\n text-align: left;\n animation: lintje-rise var(--dur-kpi) var(--ease-in-motion) both;\n}\n\n.lintje-kpi__label { font: var(--text-tile-title); color: var(--color-text-primary); }\n/* With an icon the KPI is a two-column grid: the glyph on the label's first line, everything else\n over the full width. The icon stays in every state and takes the text colour. */\n.lintje-kpi--icon {\n display: grid;\n grid-template-columns: auto minmax(0, 1fr);\n align-content: start;\n}\n.lintje-kpi--icon > * { grid-column: 1 / -1; min-width: 0; }\n.lintje-kpi--icon > .lintje-kpi__icon {\n grid-column: 1; grid-row: 1;\n display: flex; align-items: center;\n height: 1lh;\n font: var(--text-tile-title);\n color: var(--color-text-primary);\n}\n/* The gap is the glyph's own margin, not a `column-gap`: a name with no file draws nothing, and\n a gap between tracks would indent the label beside an empty column. */\n.lintje-kpi--icon > .lintje-kpi__icon { margin-right: var(--space-2); }\n.lintje-kpi--icon > .lintje-kpi__icon:empty { display: none; }\n.lintje-kpi--icon > .lintje-kpi__label { grid-column: 2; grid-row: 1; }\n.lintje-kpi__value {\n font: var(--text-kpi);\n letter-spacing: var(--kpi-tracking);\n /* After the shorthand, which resets it to normal. */\n font-variant-numeric: tabular-nums;\n color: var(--color-text-primary);\n}\n.lintje-kpi__suffix { font-size: 1.25rem; font-weight: 400; color: var(--color-text-muted); margin-left: 6px; }\n/* The final value is transparent but keeps the width, so the suffix does not move while counting. */\n.lintje-kpi__count { display: inline-grid; }\n.lintje-kpi__count-final,\n.lintje-kpi__count-live { grid-area: 1 / 1; }\n.lintje-kpi__count-final { opacity: 0; }\n.lintje-kpi__note { font: var(--text-small); color: var(--color-text-primary); }\n.lintje-kpi__note--error { display: flex; align-items: center; gap: 6px; }\n.lintje-kpi__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--color-attention); flex: none; }\n.lintje-kpi__detail { font: var(--text-meta); color: var(--color-text-muted); }\n\n/* The wrapper is the query container, so a row can stack in a narrow KPI without containing it. */\n.lintje-kpi__figures { container-type: inline-size; }\n.lintje-kpi__items { display: flex; flex-direction: column; gap: var(--space-2); }\n.lintje-kpi__item {\n display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between;\n column-gap: var(--space-4); min-width: 0;\n}\n.lintje-kpi__item--comparison .lintje-kpi__value { color: var(--color-text-secondary); }\n.lintje-kpi__period { font: var(--text-small); color: var(--color-text-muted); }\n.lintje-kpi__divider { display: block; height: 1px; background: var(--color-border-default); }\n.lintje-kpi__items--row { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); align-items: end; gap: var(--space-4); }\n.lintje-kpi__items--row.lintje-kpi__items--divided { grid-auto-columns: minmax(0, 1fr) 1px; }\n.lintje-kpi__items--row .lintje-kpi__item { display: block; }\n.lintje-kpi__items--row .lintje-kpi__divider { height: auto; align-self: stretch; }\n@container (width < 318px) {\n .lintje-kpi__items--row { display: flex; align-items: stretch; gap: var(--space-2); }\n .lintje-kpi__items--row .lintje-kpi__item { display: flex; }\n .lintje-kpi__items--row .lintje-kpi__divider { height: 1px; }\n}\n.lintje-kpi--primary .lintje-kpi__divider { margin-block: var(--space-1); }\n.lintje-kpi__secondary-value {\n font: var(--text-kpi-secondary);\n letter-spacing: var(--kpi-tracking);\n font-variant-numeric: tabular-nums;\n color: var(--color-text-secondary);\n}\n\n.lintje-kpi__skeleton { display: flex; flex-direction: column; gap: var(--space-2); }\n\n@media screen and (max-width: 767px) {\n .lintje-kpi { padding: 12px 14px; gap: var(--space-1); }\n .lintje-kpi__value { font: var(--text-kpi-mobile); font-variant-numeric: tabular-nums; }\n}\n@media (min-width: 1024px) and (max-width: 1439px) {\n .lintje-kpi__value { font-size: 1.75rem; }\n}\n\n/* --- The sparkline ------------------------------------------------------------ */\n/* The box is measured and the svg takes that size, so nothing stretches. `color` is the\n variable's token, set inline; the area is that colour at the line chart's opacity. */\n.lintje-kpi__sparkline { display: block; width: 100%; height: var(--h-sparkline); }\n.lintje-kpi__sparkline-svg { display: block; overflow: visible; }\n.lintje-kpi__sparkline-line { fill: none; stroke: currentColor; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }\n.lintje-kpi__sparkline-area { fill: currentColor; fill-opacity: 0.14; }\n.lintje-kpi__sparkline-point { fill: currentColor; }\n/* The end point parts from the line with a ring in the surface. */\n.lintje-kpi__sparkline-end { fill: currentColor; stroke: var(--color-bg-surface); stroke-width: 2; }\n/* Uncovered from left to right once the tile is in view, like the count, and hidden before;\n reduced motion leaves nothing out, so there it simply stands. */\n@media (prefers-reduced-motion: no-preference) {\n .lintje-kpi__sparkline-plot { clip-path: inset(-8px calc(100% + 8px) -8px -8px); }\n .lintje-kpi__sparkline.is-drawn .lintje-kpi__sparkline-plot {\n clip-path: inset(-8px);\n animation: lintje-kpi-reveal var(--dur-draw) var(--ease-in-motion) backwards;\n animation-delay: calc(var(--dur-kpi) + 40ms * var(--kpi-index, 0));\n }\n}\n@keyframes lintje-kpi-reveal {\n from { clip-path: inset(-8px calc(100% + 8px) -8px -8px); }\n to { clip-path: inset(-8px); }\n}\n\n/* --- The trend line -------------------------------------------------------- */\n.lintje-trend {\n display: flex;\n gap: var(--space-2);\n align-items: flex-start;\n font: var(--text-small);\n color: var(--color-text-primary);\n}\n.lintje-trend__glyph { font-size: 1rem; font-weight: 700; line-height: 1.2; flex: none; }\n.lintje-trend__glyph--good { color: var(--color-success); }\n.lintje-trend__glyph--bad { color: var(--color-error); }\n.lintje-trend__glyph--neutral { color: var(--color-text-muted); }\n.lintje-trend__detail { font: var(--text-meta); color: var(--color-text-muted); }\n\n/* --- The gauge ------------------------------------------------------------ */\n/* Room above for a target near the top and below for the ends' numbers; the arc never grows past\n its drawn size, so the band keeps its weight beside the text. */\n.lintje-gauge--arc {\n position: relative;\n width: min(100%, 168px);\n aspect-ratio: 2;\n margin-block: var(--space-4);\n}\n.lintje-gauge__svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }\n.lintje-gauge--arc .lintje-kpi__value,\n.lintje-gauge__skeleton {\n position: absolute;\n left: 0; right: 0; bottom: 0;\n margin-inline: auto;\n text-align: center;\n}\n.lintje-gauge__track { fill: none; stroke: var(--color-chart-remainder); }\n.lintje-gauge__arc-fill {\n fill: none;\n stroke-dasharray: 1;\n animation: lintje-gauge-sweep var(--dur-draw) var(--ease-in-motion) both paused;\n}\n.lintje-gauge__tick { stroke: var(--color-chart-emphasis); stroke-width: 1; stroke-dasharray: 3 3; }\n.lintje-gauge__label {\n position: absolute;\n font: var(--text-axis);\n color: var(--color-chart-axis);\n white-space: nowrap;\n}\n.lintje-gauge__label--limit { transform: translateX(-50%); }\n.lintje-gauge__label--middle { transform: translate(-50%, -100%); }\n.lintje-gauge__label--start { transform: translateY(-50%); }\n.lintje-gauge__label--end { transform: translate(-100%, -50%); }\n/* A tile narrower than the arc and a side label puts the target's label on its own line under the\n ends' numbers, where it cannot leave the tile or meet them. A tile narrower still takes the\n smaller figure, so the value stays inside the band. */\n.lintje-gauge__frame { container-type: inline-size; }\n@container (width < 232px) {\n .lintje-gauge--arc { margin-bottom: var(--space-8); }\n .lintje-gauge__label--target {\n left: 50% !important;\n top: calc(100% + var(--space-4)) !important;\n transform: translateX(-50%);\n }\n}\n@container (width < 160px) {\n .lintje-gauge--arc .lintje-kpi__value { font: var(--text-kpi-secondary); font-variant-numeric: tabular-nums; }\n .lintje-gauge--arc .lintje-kpi__suffix { font-size: 1rem; margin-left: 2px; }\n}\n\n\n.lintje-gauge--linear { display: flex; flex-direction: column; gap: var(--space-1); }\n/* The mark stands out over the bar, so the bar leaves it room above and below. */\n.lintje-gauge__bar {\n position: relative;\n height: var(--space-4);\n margin-block: var(--space-1);\n background: var(--color-chart-remainder);\n}\n.lintje-gauge__bar-fill {\n height: 100%;\n transform-origin: 0 50%;\n animation: lintje-gauge-grow var(--dur-draw) var(--ease-in-motion) both paused;\n}\n.lintje-gauge__mark {\n position: absolute;\n top: calc(-1 * var(--space-1));\n bottom: calc(-1 * var(--space-1));\n border-left: 1px dashed var(--color-chart-emphasis);\n}\n.lintje-gauge__scale {\n position: relative;\n display: flex;\n justify-content: space-between;\n font: var(--text-axis);\n color: var(--color-chart-axis);\n}\n.lintje-gauge__scale-target { position: absolute; top: 0; white-space: nowrap; }\n.lintje-gauge__scale-target--middle { transform: translateX(-50%); }\n.lintje-gauge__scale-target--end { transform: translateX(-100%); }\n\n.lintje-gauge.is-drawn .lintje-gauge__arc-fill,\n.lintje-gauge.is-drawn .lintje-gauge__bar-fill { animation-play-state: running; }\n@keyframes lintje-gauge-sweep { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }\n@keyframes lintje-gauge-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }\n@media (prefers-reduced-motion: reduce) {\n .lintje-gauge__arc-fill,\n .lintje-gauge__bar-fill { animation: none; }\n}\n\n/* Forced colours: the divider, the error dot and the gauge's fills are fills, which the browser\n drops. */\n@media (forced-colors: active) {\n .lintje-kpi__divider,\n .lintje-kpi__dot { forced-color-adjust: none; background: CanvasText; }\n .lintje-kpi__sparkline-line { stroke: CanvasText; }\n .lintje-kpi__sparkline-area { fill: none; }\n .lintje-kpi__sparkline-point,\n .lintje-kpi__sparkline-end { fill: CanvasText; stroke: Canvas; }\n .lintje-gauge__bar { forced-color-adjust: none; background: Canvas; outline: 1px solid CanvasText; }\n .lintje-gauge__bar-fill { forced-color-adjust: none; background: Highlight !important; }\n .lintje-gauge__svg { forced-color-adjust: none; }\n .lintje-gauge__track { stroke: GrayText; }\n .lintje-gauge__arc-fill { stroke: Highlight !important; }\n .lintje-gauge__tick { stroke: CanvasText; }\n .lintje-gauge__mark { border-color: CanvasText; }\n}\n\n.lintje-kpi__last-known { font: var(--text-small); color: var(--color-text-muted); }\n", b = 64, x = 24, S = b - x / 2 - 6, C = 82, w = 86, T = 84;
4
4
  function E(e) {
@@ -14,18 +14,18 @@ function D(e, t) {
14
14
  return [e * Math.cos(n), -e * Math.sin(n)];
15
15
  }
16
16
  function O(e, t) {
17
- let { gauge: n, value: r } = e, i = n.target == null ? "" : `, ${n.targetLabel ?? "doel"} ${m(n.target)}`;
18
- return `${r == null || !e.ready ? "" : `${m(r)} `}op een schaal van ${m(t.min)} tot ${m(t.max)}${i}`;
17
+ let { gauge: n, value: r } = e, i = n.target == null ? "" : `, ${n.targetLabel ?? "doel"} ${s(n.target)}`;
18
+ return `${r == null || !e.ready ? "" : `${s(r)} `}op een schaal van ${s(t.min)} tot ${s(t.max)}${i}`;
19
19
  }
20
20
  function k(e) {
21
- return `${e.targetLabel ?? "doel"} ${m(e.target)}`;
21
+ return `${e.targetLabel ?? "doel"} ${s(e.target)}`;
22
22
  }
23
23
  function A(e, t) {
24
24
  return e.gauge.shape === "linear" ? M(e, t) : j(e, t);
25
25
  }
26
26
  function j(e, t) {
27
- let { gauge: n, value: r, ready: i } = e, a = E(n), s = i && r != null && a.share(r) > 0 ? a.share(r) : null, l = s == null ? null : D(b, s), u = !e.loading && n.target != null, f = u ? a.share(n.target) : 0, [g, _] = D(S, f), [v, y] = D(C, f), [A, j] = D(w, f), M = Math.cos(Math.PI * (1 - f)), N = M > .3 ? "start" : M < -.3 ? "end" : "middle", P = (e) => `${(e + T) / 168 * 100}%`;
28
- return d`<div class="lintje-gauge__frame"><div
27
+ let { gauge: n, value: r, ready: i } = e, a = E(n), l = i && r != null && a.share(r) > 0 ? a.share(r) : null, u = l == null ? null : D(b, l), d = !e.loading && n.target != null, p = d ? a.share(n.target) : 0, [g, _] = D(S, p), [v, y] = D(C, p), [A, j] = D(w, p), M = Math.cos(Math.PI * (1 - p)), N = M > .3 ? "start" : M < -.3 ? "end" : "middle", P = (e) => `${(e + T) / 168 * 100}%`;
28
+ return f`<div class="lintje-gauge__frame"><div
29
29
  class=${h({
30
30
  "lintje-gauge": !0,
31
31
  "lintje-gauge--arc": !0,
@@ -37,23 +37,23 @@ function j(e, t) {
37
37
  <desc>${O(e, a)}</desc>
38
38
  <path class="lintje-gauge__track" d="M ${-64} 0 A ${b} ${b} 0 0 1 ${b} 0"
39
39
  stroke-width=${x} />
40
- ${l ? p`<path class="lintje-gauge__arc-fill" pathLength="1"
41
- d="M ${-64} 0 A ${b} ${b} 0 0 1 ${l[0].toFixed(2)} ${l[1].toFixed(2)}"
40
+ ${u ? m`<path class="lintje-gauge__arc-fill" pathLength="1"
41
+ d="M ${-64} 0 A ${b} ${b} 0 0 1 ${u[0].toFixed(2)} ${u[1].toFixed(2)}"
42
42
  stroke-width=${x} ${o({ stroke: e.color })} />` : c}
43
- ${u ? p`<line class="lintje-gauge__tick" x1=${g.toFixed(2)} y1=${_.toFixed(2)}
43
+ ${d ? m`<line class="lintje-gauge__tick" x1=${g.toFixed(2)} y1=${_.toFixed(2)}
44
44
  x2=${v.toFixed(2)} y2=${y.toFixed(2)} />` : c}
45
45
  </svg>
46
46
  <span class="lintje-gauge__label lintje-gauge__label--limit" aria-hidden="true"
47
47
  ${o({
48
48
  left: P(-64),
49
49
  top: "100%"
50
- })}>${m(a.min)}</span>
50
+ })}>${s(a.min)}</span>
51
51
  <span class="lintje-gauge__label lintje-gauge__label--limit" aria-hidden="true"
52
52
  ${o({
53
53
  left: P(b),
54
54
  top: "100%"
55
- })}>${m(a.max)}</span>
56
- ${u ? d`<span class="lintje-gauge__label lintje-gauge__label--target lintje-gauge__label--${N}"
55
+ })}>${s(a.max)}</span>
56
+ ${d ? f`<span class="lintje-gauge__label lintje-gauge__label--target lintje-gauge__label--${N}"
57
57
  aria-hidden="true" ${o({
58
58
  left: P(A),
59
59
  top: ((e) => `${(e + T) / T * 100}%`)(j)
@@ -61,8 +61,8 @@ function j(e, t) {
61
61
  </div></div>`;
62
62
  }
63
63
  function M(e, t) {
64
- let { gauge: n, value: r, ready: i } = e, a = E(n), s = i && r != null ? a.share(r) : null, l = !e.loading && n.target != null, u = l ? a.share(n.target) : 0, f = u > .8 ? "end" : u < .2 ? "start" : "middle";
65
- return d`${t}
64
+ let { gauge: n, value: r, ready: i } = e, a = E(n), l = i && r != null ? a.share(r) : null, u = !e.loading && n.target != null, d = u ? a.share(n.target) : 0, p = d > .8 ? "end" : d < .2 ? "start" : "middle";
65
+ return f`${t}
66
66
  <div class=${h({
67
67
  "lintje-gauge": !0,
68
68
  "lintje-gauge--linear": !0,
@@ -70,25 +70,25 @@ function M(e, t) {
70
70
  })}
71
71
  role="img" aria-label=${O(e, a)}>
72
72
  <div class="lintje-gauge__bar">
73
- ${s == null ? c : d`<div class="lintje-gauge__bar-fill"
73
+ ${l == null ? c : f`<div class="lintje-gauge__bar-fill"
74
74
  ${o({
75
- width: `${s * 100}%`,
75
+ width: `${l * 100}%`,
76
76
  background: e.color
77
77
  })}></div>`}
78
- ${l ? d`<span class="lintje-gauge__mark" ${o({ left: `${u * 100}%` })}></span>` : c}
78
+ ${u ? f`<span class="lintje-gauge__mark" ${o({ left: `${d * 100}%` })}></span>` : c}
79
79
  </div>
80
80
  <div class="lintje-gauge__scale">
81
- <span>${m(a.min)}</span>
82
- ${l ? d`<span class="lintje-gauge__scale-target lintje-gauge__scale-target--${f}"
83
- ${o({ left: `${u * 100}%` })}>${k(n)}</span>` : c}
84
- <span>${m(a.max)}</span>
81
+ <span>${s(a.min)}</span>
82
+ ${u ? f`<span class="lintje-gauge__scale-target lintje-gauge__scale-target--${p}"
83
+ ${o({ left: `${d * 100}%` })}>${k(n)}</span>` : c}
84
+ <span>${s(a.max)}</span>
85
85
  </div>
86
86
  </div>`;
87
87
  }
88
88
  //#endregion
89
89
  //#region src/components/charts/kpi/kpi.ts
90
90
  var N = {
91
- ...Object.fromEntries(g.map((e) => [e, u(e)])),
91
+ ...Object.fromEntries(g.map((e) => [e, d(e)])),
92
92
  coverage: "var(--color-text-muted)"
93
93
  }, P = {
94
94
  width: 200,
@@ -148,7 +148,7 @@ var W = class extends n {
148
148
  static {
149
149
  this.styles = [
150
150
  e,
151
- l,
151
+ u,
152
152
  i(t),
153
153
  i(y)
154
154
  ];
@@ -202,7 +202,7 @@ var W = class extends n {
202
202
  return v();
203
203
  }
204
204
  connectedCallback() {
205
- super.connectedCallback(), this.#s = s(() => this.finishCount()), typeof IntersectionObserver > "u" ? (this.#o = !0, this.drawn = !0) : (this.#r = new IntersectionObserver(([e]) => {
205
+ super.connectedCallback(), this.#s = l(() => this.finishCount()), typeof IntersectionObserver > "u" ? (this.#o = !0, this.drawn = !0) : (this.#r = new IntersectionObserver(([e]) => {
206
206
  let t = e.rootBounds?.height ?? window.innerHeight;
207
207
  (e.intersectionRatio >= B || e.intersectionRect.height >= t * B) && (this.#o = !0, this.drawn = !0, this.#r?.disconnect(), this.startCount());
208
208
  }, { threshold: V }), this.#r.observe(this));
@@ -234,7 +234,7 @@ var W = class extends n {
234
234
  }
235
235
  render() {
236
236
  let e = this.figures, t = e != null && this.emphasis === "primary";
237
- return d`<div
237
+ return f`<div
238
238
  class=${h({
239
239
  "lintje-kpi": !0,
240
240
  "lintje-kpi--primary": t,
@@ -246,7 +246,7 @@ var W = class extends n {
246
246
  "--kpi-index": this.index
247
247
  })}
248
248
  >
249
- ${this.icon ? d`<span class="lintje-kpi__icon">${_(this.icon, { size: 20 })}</span>` : c}
249
+ ${this.icon ? f`<span class="lintje-kpi__icon">${_(this.icon, { size: 20 })}</span>` : c}
250
250
  <p class="lintje-kpi__label">${this.label}</p>
251
251
  ${this.body(e, t)}
252
252
  </div>`;
@@ -254,30 +254,30 @@ var W = class extends n {
254
254
  body(e, t) {
255
255
  let n = this.state === "loading", r = this.state === "ready";
256
256
  if (!e && this.gauge) return this.gauged(this.gauge);
257
- if (!e) return n ? d`<div class="lintje-kpi__skeleton">
257
+ if (!e) return n ? f`<div class="lintje-kpi__skeleton">
258
258
  <lintje-skeleton height="34" width="70%"></lintje-skeleton>
259
259
  ${this.renderSparkline()}
260
260
  <lintje-skeleton height="13" width="90%"></lintje-skeleton>
261
261
  <lintje-skeleton height="12" width="55%"></lintje-skeleton>
262
- </div>` : d`${this.figure(0, {
262
+ </div>` : f`${this.figure(0, {
263
263
  value: this.value,
264
264
  suffix: this.suffix
265
265
  })}${this.renderSparkline()}${this.lines(!0)}`;
266
266
  if (t) {
267
267
  let [t, ...i] = e, a = this.detail && (r || this.state === "empty");
268
- return d`
269
- ${n ? d`<lintje-skeleton height="34" width="70%"></lintje-skeleton>` : this.figure(0, t)}
268
+ return f`
269
+ ${n ? f`<lintje-skeleton height="34" width="70%"></lintje-skeleton>` : this.figure(0, t)}
270
270
  ${this.renderSparkline()}
271
- ${n ? d`<lintje-skeleton height="13" width="90%"></lintje-skeleton>` : this.lines(!1)}
272
- ${i.length > 0 && this.dividers ? d`<span class="lintje-kpi__divider" aria-hidden="true"></span>` : c}
271
+ ${n ? f`<lintje-skeleton height="13" width="90%"></lintje-skeleton>` : this.lines(!1)}
272
+ ${i.length > 0 && this.dividers ? f`<span class="lintje-kpi__divider" aria-hidden="true"></span>` : c}
273
273
  ${i.length > 0 ? this.itemList(i, !0, !1, 1) : c}
274
- ${n ? d`<lintje-skeleton height="12" width="55%"></lintje-skeleton>` : a ? d`<p class="lintje-kpi__detail">${this.detail}</p>` : c}
274
+ ${n ? f`<lintje-skeleton height="12" width="55%"></lintje-skeleton>` : a ? f`<p class="lintje-kpi__detail">${this.detail}</p>` : c}
275
275
  `;
276
276
  }
277
- return d`
277
+ return f`
278
278
  ${this.itemList(e, !1, this.dividers && e.length > 1, 0)}
279
279
  ${this.renderSparkline()}
280
- ${n ? d`<div class="lintje-kpi__skeleton">
280
+ ${n ? f`<div class="lintje-kpi__skeleton">
281
281
  <lintje-skeleton height="13" width="90%"></lintje-skeleton>
282
282
  <lintje-skeleton height="12" width="55%"></lintje-skeleton>
283
283
  </div>` : this.lines(!0)}
@@ -285,17 +285,17 @@ var W = class extends n {
285
285
  }
286
286
  renderSparkline() {
287
287
  if (!this.sparkline) return c;
288
- if (this.state === "loading") return d`<div class="lintje-kpi__sparkline lintje-kpi__sparkline--loading">
288
+ if (this.state === "loading") return f`<div class="lintje-kpi__sparkline lintje-kpi__sparkline--loading">
289
289
  <lintje-skeleton height="100%"></lintje-skeleton>
290
290
  </div>`;
291
291
  if (this.state !== "ready") return c;
292
292
  let { width: e, height: t } = this.sparklineBox, n = L(this.sparkline.values, e, t), r = this.sparkline.values.at(-1) == null ? void 0 : n.at(-1)?.at(-1);
293
- return d`<div
293
+ return f`<div
294
294
  class=${h({
295
295
  "lintje-kpi__sparkline": !0,
296
296
  "is-drawn": this.drawn
297
297
  })}
298
- ${f(this.observeSparkline)}
298
+ ${p(this.observeSparkline)}
299
299
  ${o({ color: N[this.variable] })}
300
300
  >
301
301
  <svg
@@ -309,7 +309,7 @@ var W = class extends n {
309
309
  <desc>${this.sparkline.description}</desc>
310
310
  <g class="lintje-kpi__sparkline-plot">
311
311
  ${n.map((e) => this.run(e, t))}
312
- ${r ? p`<circle class="lintje-kpi__sparkline-end" cx=${r[0].toFixed(1)} cy=${r[1].toFixed(1)} r=${I} />` : c}
312
+ ${r ? m`<circle class="lintje-kpi__sparkline-end" cx=${r[0].toFixed(1)} cy=${r[1].toFixed(1)} r=${I} />` : c}
313
313
  </g>
314
314
  </svg>
315
315
  </div>`;
@@ -317,10 +317,10 @@ var W = class extends n {
317
317
  run(e, t) {
318
318
  if (e.length === 1) {
319
319
  let [[t, n]] = e;
320
- return p`<circle class="lintje-kpi__sparkline-point" cx=${t.toFixed(1)} cy=${n.toFixed(1)} r="2" />`;
320
+ return m`<circle class="lintje-kpi__sparkline-point" cx=${t.toFixed(1)} cy=${n.toFixed(1)} r="2" />`;
321
321
  }
322
322
  let [n] = e, r = e[e.length - 1];
323
- return p`
323
+ return m`
324
324
  <polygon
325
325
  class="lintje-kpi__sparkline-area"
326
326
  points=${`${n[0].toFixed(1)},${t} ${R(e)} ${r[0].toFixed(1)},${t}`}
@@ -329,11 +329,11 @@ var W = class extends n {
329
329
  `;
330
330
  }
331
331
  gauged(e) {
332
- let t = this.state === "loading", n = e.value === void 0 ? H(this.value)?.target ?? null : e.value, r = t ? d`<lintje-skeleton class="lintje-gauge__skeleton" height="34" width="40%"></lintje-skeleton>` : this.figure(0, {
332
+ let t = this.state === "loading", n = e.value === void 0 ? H(this.value)?.target ?? null : e.value, r = t ? f`<lintje-skeleton class="lintje-gauge__skeleton" height="34" width="40%"></lintje-skeleton>` : this.figure(0, {
333
333
  value: this.value,
334
334
  suffix: this.suffix
335
335
  });
336
- return d`
336
+ return f`
337
337
  ${A({
338
338
  gauge: e,
339
339
  value: n,
@@ -343,7 +343,7 @@ var W = class extends n {
343
343
  color: N[this.variable]
344
344
  }, r)}
345
345
  ${this.renderSparkline()}
346
- ${t ? d`<div class="lintje-kpi__skeleton">
346
+ ${t ? f`<div class="lintje-kpi__skeleton">
347
347
  <lintje-skeleton height="13" width="90%"></lintje-skeleton>
348
348
  <lintje-skeleton height="12" width="55%"></lintje-skeleton>
349
349
  </div>` : this.lines(!0)}
@@ -351,30 +351,30 @@ var W = class extends n {
351
351
  }
352
352
  lines(e) {
353
353
  let t = this.state === "ready";
354
- return d`
354
+ return f`
355
355
  ${t && this.trend ? this.trendLine(e) : c}
356
- ${t && !this.trend && this.note ? d`<p class="lintje-kpi__note">${this.note}</p>` : c}
357
- ${this.state === "empty" ? d`<p class="lintje-kpi__note">${this.message ?? "Geen gegevens"}</p>` : c}
358
- ${this.state === "error" ? d`<p class="lintje-kpi__note lintje-kpi__note--error">
356
+ ${t && !this.trend && this.note ? f`<p class="lintje-kpi__note">${this.note}</p>` : c}
357
+ ${this.state === "empty" ? f`<p class="lintje-kpi__note">${this.message ?? "Geen gegevens"}</p>` : c}
358
+ ${this.state === "error" ? f`<p class="lintje-kpi__note lintje-kpi__note--error">
359
359
  <span class="lintje-kpi__dot" aria-hidden="true"></span>${this.message ?? "Niet geladen"}
360
- </p>${this.lastKnown ? d`<p class="lintje-kpi__last-known">${this.lastKnown}</p>` : c}` : c}
361
- ${e && this.detail && (t && !this.trend || this.state === "empty") ? d`<p class="lintje-kpi__detail">${this.detail}</p>` : c}
360
+ </p>${this.lastKnown ? f`<p class="lintje-kpi__last-known">${this.lastKnown}</p>` : c}` : c}
361
+ ${e && this.detail && (t && !this.trend || this.state === "empty") ? f`<p class="lintje-kpi__detail">${this.detail}</p>` : c}
362
362
  `;
363
363
  }
364
364
  trendLine(e) {
365
365
  let { direction: t, sentence: n, inverted: r = !1 } = this.trend, i = "neutral";
366
- return t !== "flat" && (i = (r ? t === "down" : t === "up") ? "good" : "bad"), d`
366
+ return t !== "flat" && (i = (r ? t === "down" : t === "up") ? "good" : "bad"), f`
367
367
  <p class="lintje-trend"><span
368
368
  class="lintje-trend__glyph lintje-trend__glyph--${i}"
369
369
  aria-hidden="true"
370
370
  >${z[t]}</span
371
- >${i === "neutral" ? c : d`<span class="visually-hidden">${i === "good" ? "gunstig" : "ongunstig"}: </span>`}<span>${n}</span></p>
372
- ${e && this.detail ? d`<p class="lintje-trend__detail">${this.detail}</p>` : c}
371
+ >${i === "neutral" ? c : f`<span class="visually-hidden">${i === "good" ? "gunstig" : "ongunstig"}: </span>`}<span>${n}</span></p>
372
+ ${e && this.detail ? f`<p class="lintje-trend__detail">${this.detail}</p>` : c}
373
373
  `;
374
374
  }
375
375
  itemList(e, t, n, r) {
376
376
  let i = this.state === "loading";
377
- return d`<div class="lintje-kpi__figures">
377
+ return f`<div class="lintje-kpi__figures">
378
378
  <div
379
379
  class=${h({
380
380
  "lintje-kpi__items": !0,
@@ -382,19 +382,19 @@ var W = class extends n {
382
382
  "lintje-kpi__items--divided": n
383
383
  })}
384
384
  >
385
- ${e.map((e, a) => d`
386
- ${a > 0 && n ? d`<span class="lintje-kpi__divider" aria-hidden="true"></span>` : c}
385
+ ${e.map((e, a) => f`
386
+ ${a > 0 && n ? f`<span class="lintje-kpi__divider" aria-hidden="true"></span>` : c}
387
387
  <div
388
388
  class=${h({
389
389
  "lintje-kpi__item": !0,
390
390
  "lintje-kpi__item--comparison": !t && a > 0
391
391
  })}
392
392
  >
393
- ${i ? d`<lintje-skeleton
393
+ ${i ? f`<lintje-skeleton
394
394
  height=${t ? 20 : 34}
395
395
  width="70%"
396
396
  ></lintje-skeleton>` : this.figure(r + a, e, t)}
397
- ${e.period ? d`<p class="lintje-kpi__period">${e.period}</p>` : c}
397
+ ${e.period ? f`<p class="lintje-kpi__period">${e.period}</p>` : c}
398
398
  </div>
399
399
  `)}
400
400
  </div>
@@ -402,11 +402,11 @@ var W = class extends n {
402
402
  }
403
403
  figure(e, t, n = !1) {
404
404
  let r = this.state === "ready", i = this.counting[e] ?? null, a = this.emphasis === "primary" && e === 0 ? t.period : void 0, o = [r ? t.suffix : void 0, a].filter(Boolean).join(" · ");
405
- return d`<p class=${n ? "lintje-kpi__secondary-value" : "lintje-kpi__value"}>
406
- ${r ? i == null ? t.value : d`<span class="lintje-kpi__count">
405
+ return f`<p class=${n ? "lintje-kpi__secondary-value" : "lintje-kpi__value"}>
406
+ ${r ? i == null ? t.value : f`<span class="lintje-kpi__count">
407
407
  <span class="lintje-kpi__count-final">${t.value}</span>
408
408
  <span class="lintje-kpi__count-live" aria-hidden="true">${i}</span>
409
- </span>` : "—"}${o ? d`<span class="lintje-kpi__suffix">${o}</span>` : c}
409
+ </span>` : "—"}${o ? f`<span class="lintje-kpi__suffix">${o}</span>` : c}
410
410
  </p>`;
411
411
  }
412
412
  };
@@ -1,4 +1,4 @@
1
- import { Jt as e, Yt as t, Zt as n, bt as r, nn as i, st as a } from "../chunks/base-CbmWxUig.js";
1
+ import { Jt as e, Yt as t, Zt as n, bt as r, nn as i, st as a } from "../chunks/base-DRGvkF-r.js";
2
2
  //#region src/components/feedback/level-meter/level-meter.css?inline
3
3
  var o = ":host { display: inline-flex; min-width: 0; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-level-meter {\n display: inline-flex;\n align-items: center;\n gap: var(--space-3);\n color: var(--color-text-primary);\n font: var(--text-ui);\n font-weight: 700;\n}\n.lintje-level-meter__bars {\n display: inline-flex;\n align-items: center;\n gap: 3px;\n height: var(--space-6);\n}\n/* Centred bars read as a voice; their height is the sound. */\n.lintje-level-meter__bar {\n width: 4px;\n background: var(--color-accent-line);\n transition: height var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-level-meter.is-quiet .lintje-level-meter__bar { background: var(--color-border-strong); }\n\n@media (prefers-reduced-motion: reduce) {\n .lintje-level-meter__bar { transition: none; }\n}\n\n@media (forced-colors: active) {\n .lintje-level-meter__bar { background: CanvasText; }\n}\n", s = [
4
4
  .4,
@@ -1,5 +1,5 @@
1
- import { H as e, Jt as t, Kt as n, Q as r, Yt as i, Z as a, Zt as o, bt as s, en as c, h as l, lt as u, nn as d, st as f, ut as p } from "../chunks/base-CbmWxUig.js";
2
- import { n as m } from "../chunks/focus-trap-BwOxE5BX.js";
1
+ import { H as e, Jt as t, Kt as n, Q as r, Yt as i, Z as a, Zt as o, bt as s, en as c, h as l, lt as u, nn as d, st as f, ut as p } from "../chunks/base-DRGvkF-r.js";
2
+ import { n as m } from "../chunks/focus-trap-Dv8zu64A.js";
3
3
  import "./menu-button.js";
4
4
  import "./empty-state.js";
5
5
  import "./text-input.js";
@@ -1,4 +1,4 @@
1
- import { Jt as e, Yt as t, Zt as n, _t as r, bt as i, ct as a, en as o, nn as s, rn as c, vt as l, xt as u } from "../chunks/base-CbmWxUig.js";
1
+ import { Jt as e, Yt as t, Zt as n, _t as r, bt as i, ct as a, en as o, nn as s, rn as c, vt as l, xt as u } from "../chunks/base-DRGvkF-r.js";
2
2
  //#region src/components/actions/logo/logo.css?inline
3
3
  var d = "/* The emblem's own box: `display: block; flex: none` on `:host`, the drawing fills it. */\n:host {\n display: block;\n flex: none;\n}\n:host([hidden]) { display: none; }\n.lintje-logo { display: block; }\n/* The emblem file's lintblauw ribbon; in dark it takes the house style's lighter tint. */\n.lintje-logo [fill='#154273' i] { fill: var(--color-logo-ribbon); }\n/* The frame is the window on the drawing; it narrows to the ribbon on the menu's duration. */\n.lintje-logo__frame {\n display: block;\n overflow: hidden;\n transition: width var(--dur-rail, 180ms) var(--ease-in-motion, ease);\n}\n@media (prefers-reduced-motion: reduce) {\n .lintje-logo__frame { transition: none; }\n}\n\n/* The name hangs outside the drawing's box, so the ribbon keeps its place whatever the name's\n length. Its left is set inline, in px, from the ribbon's width. */\n.lintje-logo__lockup { position: relative; display: block; }\n.lintje-logo__name {\n position: absolute;\n top: 55%;\n display: flex;\n flex-direction: column;\n margin-left: var(--space-3);\n width: max-content;\n max-width: 20rem;\n font: 700 1rem/1.2 var(--font-ui);\n color: inherit;\n}\n.lintje-logo__byline { font-weight: 400; font-style: italic; }\n@media screen and (max-width: 767px) {\n .lintje-logo__name { max-width: 9rem; font-size: 0.875rem; }\n}\n", f = {
4
4
  x: 154,