lintje 0.5.1 → 0.7.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 (260) hide show
  1. package/dist-elements/actions.js +1 -5
  2. package/dist-elements/charts.js +1 -5
  3. package/dist-elements/chat.js +1 -6
  4. package/dist-elements/chunks/addon-CFoSG70u.js +5 -0
  5. package/dist-elements/chunks/base-BsZyWDre.js +226 -0
  6. package/dist-elements/chunks/chart-styles-C5IzbVUF.js +44 -0
  7. package/dist-elements/chunks/controls-lVYdiFQu.js +1 -0
  8. package/dist-elements/chunks/copied-Dx6jfxoK.js +1 -0
  9. package/dist-elements/chunks/date-format-5bii3QLP.js +1 -0
  10. package/dist-elements/chunks/debounce-Dfwdcv-z.js +1 -0
  11. package/dist-elements/chunks/dialog-close-CzMRXkJ6.js +1 -0
  12. package/dist-elements/chunks/disclosure-CQcLUnKh.js +22 -0
  13. package/dist-elements/chunks/disclosure-DjLQzn9n.js +1 -0
  14. package/dist-elements/chunks/download-CxEzwMxI.js +13 -0
  15. package/dist-elements/chunks/focus-trap-BDxiHED1.js +1 -0
  16. package/dist-elements/chunks/follow-7IBDa51N.js +1 -0
  17. package/dist-elements/chunks/input-C7qx0e4p.js +8 -0
  18. package/dist-elements/chunks/input-CazTpGUd.js +1 -0
  19. package/dist-elements/chunks/key-CAxrgBxD.js +1 -0
  20. package/dist-elements/chunks/live-message-CYZ-Ch7D.js +1 -0
  21. package/dist-elements/chunks/other-BaLStKaf.js +11 -0
  22. package/dist-elements/chunks/playback-gEUDw038.js +1 -0
  23. package/dist-elements/chunks/player-BEG3MVCm.js +39 -0
  24. package/dist-elements/chunks/prose-DOF7h3je.js +1 -0
  25. package/dist-elements/chunks/sentence-CjgQjBP9.js +3 -0
  26. package/dist-elements/chunks/sentence-end-DqHdi7Wb.js +1 -0
  27. package/dist-elements/chunks/stagger-CwsMNTLl.js +133 -0
  28. package/dist-elements/chunks/transition-DZKyyCQs.js +1 -0
  29. package/dist-elements/content.js +1 -11
  30. package/dist-elements/core.js +1 -1
  31. package/dist-elements/custom-elements.json +627 -161
  32. package/dist-elements/data-types.json +294 -28
  33. package/dist-elements/dev.js +1 -31
  34. package/dist-elements/feedback.js +1 -11
  35. package/dist-elements/filters.js +1 -3
  36. package/dist-elements/forms.js +1 -7
  37. package/dist-elements/frame.js +1 -9
  38. package/dist-elements/guides/dashboard.md +3 -2
  39. package/dist-elements/guides/events.md +19 -3
  40. package/dist-elements/guides/start.md +6 -3
  41. package/dist-elements/inputs.js +1 -21
  42. package/dist-elements/layout.js +1 -4
  43. package/dist-elements/lintje.js +3769 -43711
  44. package/dist-elements/map.js +1 -1
  45. package/dist-elements/overlays.js +1 -5
  46. package/dist-elements/tables.js +1 -9
  47. package/dist-elements/tag/activity-log.js +11 -59
  48. package/dist-elements/tag/ai-label.js +5 -38
  49. package/dist-elements/tag/announcement.js +9 -105
  50. package/dist-elements/tag/app-search.js +26 -177
  51. package/dist-elements/tag/audio-player.js +51 -265
  52. package/dist-elements/tag/badge.js +1 -1
  53. package/dist-elements/tag/breadcrumbs.js +11 -76
  54. package/dist-elements/tag/button.js +1 -1
  55. package/dist-elements/tag/card-list.js +9 -78
  56. package/dist-elements/tag/card.js +37 -172
  57. package/dist-elements/tag/chart.js +468 -2302
  58. package/dist-elements/tag/chat-answer.js +56 -201
  59. package/dist-elements/tag/chat-composer.js +53 -410
  60. package/dist-elements/tag/chat-message.js +14 -76
  61. package/dist-elements/tag/chat-strip.js +28 -108
  62. package/dist-elements/tag/chat-suggestions.js +9 -52
  63. package/dist-elements/tag/chat.js +40 -198
  64. package/dist-elements/tag/checkbox-group.js +17 -49
  65. package/dist-elements/tag/checkbox.js +10 -49
  66. package/dist-elements/tag/code.js +9 -55
  67. package/dist-elements/tag/combobox.js +25 -183
  68. package/dist-elements/tag/conflict-alert.js +15 -70
  69. package/dist-elements/tag/copy-button.js +13 -104
  70. package/dist-elements/tag/data-table.js +314 -1546
  71. package/dist-elements/tag/date-input.js +30 -159
  72. package/dist-elements/tag/date-range.js +35 -235
  73. package/dist-elements/tag/description-list.js +20 -89
  74. package/dist-elements/tag/dialog.js +10 -120
  75. package/dist-elements/tag/document-viewer.js +39 -211
  76. package/dist-elements/tag/drawer.js +10 -86
  77. package/dist-elements/tag/empty-state.js +1 -58
  78. package/dist-elements/tag/error-page.js +13 -90
  79. package/dist-elements/tag/error-summary.js +16 -75
  80. package/dist-elements/tag/expander.js +5 -68
  81. package/dist-elements/tag/explainer.js +6 -61
  82. package/dist-elements/tag/field.js +5 -50
  83. package/dist-elements/tag/file-upload.js +45 -239
  84. package/dist-elements/tag/filter-bar.js +48 -221
  85. package/dist-elements/tag/filter-sheet.js +8 -78
  86. package/dist-elements/tag/filter-zone.js +24 -202
  87. package/dist-elements/tag/find.js +18 -112
  88. package/dist-elements/tag/footer.js +14 -36
  89. package/dist-elements/tag/form-actions.js +3 -103
  90. package/dist-elements/tag/form-section.js +6 -49
  91. package/dist-elements/tag/form.js +7 -293
  92. package/dist-elements/tag/gallery.js +12 -50
  93. package/dist-elements/tag/grid-item.js +1 -1
  94. package/dist-elements/tag/grid.js +1 -1
  95. package/dist-elements/tag/hero.js +7 -50
  96. package/dist-elements/tag/highlight.js +4 -58
  97. package/dist-elements/tag/icon-button.js +1 -1
  98. package/dist-elements/tag/icon.js +1 -1
  99. package/dist-elements/tag/job-list.js +4 -117
  100. package/dist-elements/tag/kpi-row.js +10 -30
  101. package/dist-elements/tag/kpi.js +79 -362
  102. package/dist-elements/tag/level-meter.js +9 -52
  103. package/dist-elements/tag/list.js +44 -233
  104. package/dist-elements/tag/log-viewer.js +104 -710
  105. package/dist-elements/tag/logo.js +27 -85
  106. package/dist-elements/tag/map.js +833 -21857
  107. package/dist-elements/tag/menu-button.js +40 -291
  108. package/dist-elements/tag/modal.js +16 -82
  109. package/dist-elements/tag/multiselect.js +29 -158
  110. package/dist-elements/tag/note.js +3 -22
  111. package/dist-elements/tag/notifications.js +34 -160
  112. package/dist-elements/tag/number-input.js +23 -90
  113. package/dist-elements/tag/page-header.js +18 -180
  114. package/dist-elements/tag/pagination.js +31 -234
  115. package/dist-elements/tag/popover.js +1 -1
  116. package/dist-elements/tag/progress-bar.js +1 -1
  117. package/dist-elements/tag/prose.js +1 -31
  118. package/dist-elements/tag/qr-code.js +6 -878
  119. package/dist-elements/tag/radio-group.js +31 -64
  120. package/dist-elements/tag/range.js +33 -231
  121. package/dist-elements/tag/recording-status.js +10 -82
  122. package/dist-elements/tag/repeater-row.js +1 -1
  123. package/dist-elements/tag/repeater.js +9 -140
  124. package/dist-elements/tag/segmented.js +13 -74
  125. package/dist-elements/tag/select.js +9 -51
  126. package/dist-elements/tag/shell.js +274 -1026
  127. package/dist-elements/tag/skeleton.js +1 -1
  128. package/dist-elements/tag/slot-picker.js +18 -61
  129. package/dist-elements/tag/sortable-list.js +23 -197
  130. package/dist-elements/tag/spinner.js +1 -1
  131. package/dist-elements/tag/split-pane.js +12 -157
  132. package/dist-elements/tag/status-dot.js +1 -1
  133. package/dist-elements/tag/stepper.js +20 -120
  134. package/dist-elements/tag/streaming-text.js +14 -94
  135. package/dist-elements/tag/sub-nav.js +27 -141
  136. package/dist-elements/tag/tabs.js +41 -153
  137. package/dist-elements/tag/tag-input.js +35 -218
  138. package/dist-elements/tag/text-editor.js +32 -398
  139. package/dist-elements/tag/text-input.js +56 -130
  140. package/dist-elements/tag/textarea.js +14 -142
  141. package/dist-elements/tag/tile.js +1 -1
  142. package/dist-elements/tag/time-input.js +19 -201
  143. package/dist-elements/tag/toast.js +12 -100
  144. package/dist-elements/tag/toggle.js +7 -40
  145. package/dist-elements/tag/toggletip.js +7 -108
  146. package/dist-elements/tag/token-value.js +2 -72
  147. package/dist-elements/tag/tooltip.js +1 -1
  148. package/dist-elements/tag/transcript.js +38 -285
  149. package/dist-elements/tag/translator.js +7 -80
  150. package/dist-elements/tag/tree-view.js +25 -159
  151. package/dist-elements/tag/user-menu.js +47 -182
  152. package/dist-elements/tag/video-player.js +16 -155
  153. package/dist-elements/tokens.css +26 -8
  154. package/dist-elements/tokens.json +14 -6
  155. package/dist-elements/types/components/actions/button/button.d.ts +1 -0
  156. package/dist-elements/types/components/actions/icon/icon.d.ts +2 -1
  157. package/dist-elements/types/components/actions/icon-button/icon-button.d.ts +0 -5
  158. package/dist-elements/types/components/actions/logo/logo.d.ts +7 -2
  159. package/dist-elements/types/components/charts/chart/chart.d.ts +9 -1
  160. package/dist-elements/types/components/chat/chat/chat.d.ts +0 -2
  161. package/dist-elements/types/components/chat/chat-composer/chat-composer.d.ts +1 -11
  162. package/dist-elements/types/components/content/document-viewer/document-viewer.d.ts +14 -1
  163. package/dist-elements/types/components/content/log-viewer/log-viewer.d.ts +1 -2
  164. package/dist-elements/types/components/feedback/job-list/job-list.d.ts +9 -2
  165. package/dist-elements/types/components/feedback/recording-status/recording-status.d.ts +5 -2
  166. package/dist-elements/types/components/feedback/streaming-text/streaming-text.d.ts +1 -0
  167. package/dist-elements/types/components/filters/filter-bar/filter-bar.d.ts +3 -0
  168. package/dist-elements/types/components/filters/filter-sheet/filter-sheet.d.ts +2 -7
  169. package/dist-elements/types/components/filters/filter-zone/filter-zone.d.ts +0 -2
  170. package/dist-elements/types/components/forms/error-summary/error-summary.d.ts +5 -1
  171. package/dist-elements/types/components/forms/form/form.d.ts +10 -3
  172. package/dist-elements/types/components/forms/form-actions/form-actions.d.ts +4 -1
  173. package/dist-elements/types/components/forms/repeater/repeater.d.ts +1 -1
  174. package/dist-elements/types/components/forms/stepper/stepper.d.ts +12 -1
  175. package/dist-elements/types/components/frame/app-search/app-search.d.ts +1 -0
  176. package/dist-elements/types/components/frame/notifications/notifications.d.ts +0 -2
  177. package/dist-elements/types/components/frame/page-header/page-header.d.ts +1 -1
  178. package/dist-elements/types/components/frame/shell/header.d.ts +6 -8
  179. package/dist-elements/types/components/frame/shell/navigation.d.ts +0 -7
  180. package/dist-elements/types/components/frame/shell/shell.d.ts +7 -6
  181. package/dist-elements/types/components/frame/shell/top-bar.d.ts +5 -2
  182. package/dist-elements/types/components/frame/user-menu/user-menu.d.ts +15 -2
  183. package/dist-elements/types/components/index.d.ts +3 -2
  184. package/dist-elements/types/components/inputs/checkbox-group/checkbox-group.d.ts +15 -8
  185. package/dist-elements/types/components/inputs/file-upload/file-upload.d.ts +12 -2
  186. package/dist-elements/types/components/inputs/find/find.d.ts +0 -3
  187. package/dist-elements/types/components/inputs/number-input/number-input.d.ts +7 -4
  188. package/dist-elements/types/components/inputs/radio-group/radio-group.d.ts +16 -4
  189. package/dist-elements/types/components/inputs/range/range.d.ts +1 -1
  190. package/dist-elements/types/components/inputs/segmented/segmented.d.ts +0 -2
  191. package/dist-elements/types/components/inputs/shared/addon.d.ts +14 -0
  192. package/dist-elements/types/components/inputs/shared/input.d.ts +83 -4
  193. package/dist-elements/types/components/inputs/tag-input/tag-input.d.ts +0 -1
  194. package/dist-elements/types/components/inputs/text-input/text-input.d.ts +15 -1
  195. package/dist-elements/types/components/inputs/textarea/textarea.d.ts +3 -2
  196. package/dist-elements/types/components/layout/tabs/tabs.d.ts +0 -4
  197. package/dist-elements/types/components/map/map/map.d.ts +9 -1
  198. package/dist-elements/types/components/overlays/popover/popover.d.ts +8 -5
  199. package/dist-elements/types/components/overlays/toggletip/toggletip.d.ts +2 -4
  200. package/dist-elements/types/components/overlays/tooltip/tooltip.d.ts +0 -2
  201. package/dist-elements/types/components/shared/charts/map-chart/drawings.d.ts +4 -1
  202. package/dist-elements/types/components/shared/charts/map-chart/leaflet.d.ts +1 -1
  203. package/dist-elements/types/components/shared/charts/map-chart/map-chart.d.ts +5 -2
  204. package/dist-elements/types/components/shared/charts/map-chart/marks.d.ts +15 -4
  205. package/dist-elements/types/components/shared/charts/map-chart/series-style.d.ts +10 -0
  206. package/dist-elements/types/components/shared/charts/pie-chart/pie-chart.d.ts +2 -1
  207. package/dist-elements/types/components/shared/charts/shared/axes.d.ts +5 -3
  208. package/dist-elements/types/components/shared/charts/shared/controller.d.ts +15 -3
  209. package/dist-elements/types/components/shared/charts/shared/mark-select.d.ts +2 -1
  210. package/dist-elements/types/components/shared/charts/shared/runs.d.ts +7 -0
  211. package/dist-elements/types/components/shared/charts/shared/types.d.ts +57 -3
  212. package/dist-elements/types/components/shared/controls.d.ts +28 -0
  213. package/dist-elements/types/components/shared/cut-text.d.ts +6 -0
  214. package/dist-elements/types/components/shared/dialog.d.ts +8 -2
  215. package/dist-elements/types/components/shared/disclosure.d.ts +2 -2
  216. package/dist-elements/types/components/shared/focus-trap.d.ts +2 -0
  217. package/dist-elements/types/components/shared/follow.d.ts +8 -0
  218. package/dist-elements/types/components/shared/frame-resize-observer.d.ts +12 -0
  219. package/dist-elements/types/components/shared/live-message.d.ts +17 -0
  220. package/dist-elements/types/components/shared/other.d.ts +24 -0
  221. package/dist-elements/types/components/shared/overflow.d.ts +4 -3
  222. package/dist-elements/types/components/shared/place.d.ts +5 -0
  223. package/dist-elements/types/components/shared/transition.d.ts +12 -0
  224. package/dist-elements/types/components/tables/card/card.d.ts +0 -5
  225. package/dist-elements/types/components/tables/card-list/card-list.d.ts +2 -5
  226. package/dist-elements/types/components/tables/data-table/actions.d.ts +1 -1
  227. package/dist-elements/types/components/tables/data-table/data-table.d.ts +23 -8
  228. package/dist-elements/types/components/tables/data-table/filters.d.ts +6 -2
  229. package/dist-elements/types/components/tables/description-list/description-list.d.ts +3 -2
  230. package/dist-elements/types/components/tables/list/list.d.ts +2 -6
  231. package/dist-elements/types/components/tables/sortable-list/sortable-list.d.ts +1 -1
  232. package/dist-elements/types/core/element.d.ts +5 -2
  233. package/dist-elements/types/core/frame-state.d.ts +2 -0
  234. package/dist-elements/types/core/links.d.ts +2 -0
  235. package/dist-elements/types/core/styles.d.ts +2 -0
  236. package/dist-elements/types/icons/register.d.ts +1 -1
  237. package/dist-elements/types/icons/render.d.ts +1 -1
  238. package/dist-elements/types/types.d.ts +35 -8
  239. package/package.json +2 -2
  240. package/dist-elements/chunks/base-Bd2pmq86.js +0 -2865
  241. package/dist-elements/chunks/chart-styles-DEd0uIWK.js +0 -108
  242. package/dist-elements/chunks/controls-_4ac1Lpz.js +0 -121
  243. package/dist-elements/chunks/copied-7BXYVkXT.js +0 -4
  244. package/dist-elements/chunks/date-format-DxP9yfDp.js +0 -152
  245. package/dist-elements/chunks/debounce-JXnLMCcF.js +0 -25
  246. package/dist-elements/chunks/dialog-BNbkcAxH.js +0 -28
  247. package/dist-elements/chunks/dialog-close-u75fVEw4.js +0 -4
  248. package/dist-elements/chunks/disclosure-BK-MJsEn.js +0 -4
  249. package/dist-elements/chunks/disclosure-CcTr_FLd.js +0 -64
  250. package/dist-elements/chunks/download-BGe7rpQo.js +0 -103
  251. package/dist-elements/chunks/focus-trap-Cl99vti9.js +0 -73
  252. package/dist-elements/chunks/input-Dg1o0Sfu.js +0 -4
  253. package/dist-elements/chunks/input-KqBT3qWD.js +0 -195
  254. package/dist-elements/chunks/key-D5wy9ZTj.js +0 -4
  255. package/dist-elements/chunks/playback-DZJ_NMXv.js +0 -133
  256. package/dist-elements/chunks/player-BRG7bk_h.js +0 -208
  257. package/dist-elements/chunks/prose-CmKVp5kL.js +0 -4
  258. package/dist-elements/chunks/sentence-DIByCXQV.js +0 -15
  259. package/dist-elements/chunks/sentence-end-8jlqKJ5P.js +0 -8
  260. package/dist-elements/chunks/stagger-DGRHP_We.js +0 -515
@@ -1 +1 @@
1
- import "./tag/map.js";
1
+ import"./tag/map.js";
@@ -1,5 +1 @@
1
- import "./chunks/base-Bd2pmq86.js";
2
- import "./tag/modal.js";
3
- import "./tag/dialog.js";
4
- import "./tag/drawer.js";
5
- import "./tag/toggletip.js";
1
+ import"./chunks/base-BsZyWDre.js";import"./tag/modal.js";import"./tag/dialog.js";import"./tag/drawer.js";import"./tag/toggletip.js";
@@ -1,9 +1 @@
1
- import "./tag/description-list.js";
2
- import "./tag/list.js";
3
- import "./tag/pagination.js";
4
- import "./tag/sortable-list.js";
5
- import "./tag/data-table.js";
6
- import "./tag/card.js";
7
- import "./tag/card-list.js";
8
- import "./tag/tree-view.js";
9
- import "./tag/activity-log.js";
1
+ import"./tag/description-list.js";import"./tag/list.js";import"./tag/pagination.js";import"./tag/sortable-list.js";import"./tag/data-table.js";import"./tag/card.js";import"./tag/card-list.js";import"./tag/tree-view.js";import"./tag/activity-log.js";
@@ -1,44 +1,5 @@
1
- import { Jt as e, Yt as t, Zt as n, en as r, nn as i, st as a } from "../chunks/base-Bd2pmq86.js";
2
- //#region src/components/tables/activity-log/activity-log.css?inline
3
- var o = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-activity-log {\n font: var(--text-ui);\n color: var(--color-text-primary);\n}\n.lintje-activity-log__heading {\n margin: 0 0 var(--space-3);\n font: var(--text-tile-title);\n}\n.lintje-activity-log__list { list-style: none; margin: 0; padding: 0; }\n\n.lintje-activity-log__entry { display: flex; gap: var(--space-3); }\n.lintje-activity-log__rail {\n flex: 0 0 10px;\n display: flex; flex-direction: column; align-items: center;\n}\n/* The square sits on the sentence's first line; this stub joins it to the square above. */\n.lintje-activity-log__rail::before {\n content: '';\n flex: 0 0 6px;\n width: 2px;\n background: var(--color-border-default);\n}\n.lintje-activity-log__entry.is-newest .lintje-activity-log__rail::before { visibility: hidden; }\n.lintje-activity-log__mark {\n flex: none;\n width: 10px; height: 10px;\n background: var(--color-border-heavy);\n}\n.lintje-activity-log__entry.is-newest .lintje-activity-log__mark { background: var(--color-accent-line); }\n.lintje-activity-log__line {\n flex: 1 1 auto;\n width: 2px;\n background: var(--color-border-default);\n}\n.lintje-activity-log__entry.is-last .lintje-activity-log__line { visibility: hidden; }\n\n.lintje-activity-log__body { min-width: 0; padding-bottom: var(--space-4); }\n.lintje-activity-log__entry.is-last .lintje-activity-log__body { padding-bottom: 0; }\n.lintje-activity-log__what { margin: 0; }\n.lintje-activity-log__who { font-weight: 700; }\n.lintje-activity-log__when {\n display: block;\n font: var(--text-small);\n color: var(--color-text-muted);\n}\n\n.lintje-activity-log__more { margin-top: var(--space-3); }\n\n/* Forced colours drop fills, so the rail is drawn in the text colour. */\n@media (forced-colors: active) {\n .lintje-activity-log__rail::before,\n .lintje-activity-log__mark,\n .lintje-activity-log__line { forced-color-adjust: none; background: CanvasText; }\n .lintje-activity-log__entry.is-newest .lintje-activity-log__mark { background: Highlight; }\n}\n", s = 10, c = class extends e {
4
- constructor(...e) {
5
- super(...e), this.entries = [], this.level = 3, this.limit = s;
6
- }
7
- static {
8
- this.styles = n(o);
9
- }
10
- static {
11
- this.properties = {
12
- entries: { attribute: !1 },
13
- heading: { type: String },
14
- level: { type: Number },
15
- limit: { type: Number }
16
- };
17
- }
18
- async showMore() {
19
- let e = this.limit;
20
- if (this.limit += s, await this.updateComplete, this.renderRoot.querySelector(".lintje-activity-log__more")) return;
21
- let t = this.renderRoot.querySelectorAll(".lintje-activity-log__entry")[e];
22
- t && (t.tabIndex = -1, t.focus());
23
- }
24
- renderHeading() {
25
- if (!this.heading) return r;
26
- let e = this.heading, t = "lintje-activity-log-heading";
27
- switch (this.level) {
28
- case 2: return i`<h2 id=${t} class="lintje-activity-log__heading">${e}</h2>`;
29
- case 4: return i`<h4 id=${t} class="lintje-activity-log__heading">${e}</h4>`;
30
- case 5: return i`<h5 id=${t} class="lintje-activity-log__heading">${e}</h5>`;
31
- case 6: return i`<h6 id=${t} class="lintje-activity-log__heading">${e}</h6>`;
32
- default: return i`<h3 id=${t} class="lintje-activity-log__heading">${e}</h3>`;
33
- }
34
- }
35
- entry(e, t, n) {
36
- return i`<li
37
- class=${a({
38
- "lintje-activity-log__entry": !0,
39
- "is-newest": t === 0,
40
- "is-last": n
41
- })}
1
+ import{cn as e,en as t,on as n,pt as r,rn as i,tn as a}from"../chunks/base-BsZyWDre.js";var o=`:host{min-width:0;display:block}:host([hidden]){display:none}.lintje-activity-log{font:var(--text-ui);color:var(--color-text-primary)}.lintje-activity-log__heading{margin:0 0 var(--space-3);font:var(--text-tile-title)}.lintje-activity-log__list{margin:0;padding:0;list-style:none}.lintje-activity-log__entry{gap:var(--space-3);display:flex}.lintje-activity-log__rail{flex-direction:column;flex:0 0 10px;align-items:center;display:flex}.lintje-activity-log__rail:before{content:"";background:var(--color-border-default);flex:0 0 6px;width:2px}.lintje-activity-log__entry.is-newest .lintje-activity-log__rail:before{visibility:hidden}.lintje-activity-log__mark{background:var(--color-border-heavy);flex:none;width:10px;height:10px}.lintje-activity-log__entry.is-newest .lintje-activity-log__mark{background:var(--color-accent-line)}.lintje-activity-log__line{background:var(--color-border-default);flex:auto;width:2px}.lintje-activity-log__entry.is-last .lintje-activity-log__line{visibility:hidden}.lintje-activity-log__body{min-width:0;padding-bottom:var(--space-4)}.lintje-activity-log__entry.is-last .lintje-activity-log__body{padding-bottom:0}.lintje-activity-log__what{margin:0}.lintje-activity-log__who{font-weight:700}.lintje-activity-log__when{font:var(--text-small);color:var(--color-text-muted);display:block}.lintje-activity-log__more{margin-top:var(--space-3)}@media (forced-colors:active){.lintje-activity-log__rail:before,.lintje-activity-log__mark,.lintje-activity-log__line{forced-color-adjust:none;background:canvastext}.lintje-activity-log__entry.is-newest .lintje-activity-log__mark{background:highlight}}`,s=10,c=class extends t{constructor(...e){super(...e),this.entries=[],this.level=3,this.limit=s}static{this.styles=i(o)}static{this.properties={entries:{attribute:!1},heading:{type:String},level:{type:Number},limit:{type:Number}}}async showMore(){let e=this.limit;if(this.limit+=s,await this.updateComplete,this.renderRoot.querySelector(`.lintje-activity-log__more`))return;let t=this.renderRoot.querySelectorAll(`.lintje-activity-log__entry`)[e];t&&(t.tabIndex=-1,t.focus())}renderHeading(){if(!this.heading)return n;let t=this.heading,r=`lintje-activity-log-heading`;switch(this.level){case 2:return e`<h2 id=${r} class="lintje-activity-log__heading">${t}</h2>`;case 4:return e`<h4 id=${r} class="lintje-activity-log__heading">${t}</h4>`;case 5:return e`<h5 id=${r} class="lintje-activity-log__heading">${t}</h5>`;case 6:return e`<h6 id=${r} class="lintje-activity-log__heading">${t}</h6>`;default:return e`<h3 id=${r} class="lintje-activity-log__heading">${t}</h3>`}}entry(t,n,i){return e`<li
2
+ class=${r({"lintje-activity-log__entry":!0,"is-newest":n===0,"is-last":i})}
42
3
  >
43
4
  <span class="lintje-activity-log__rail" aria-hidden="true">
44
5
  <span class="lintje-activity-log__mark"></span>
@@ -46,31 +7,22 @@ var o = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: non
46
7
  </span>
47
8
  <div class="lintje-activity-log__body">
48
9
  <p class="lintje-activity-log__what">
49
- <strong class="lintje-activity-log__who">${e.who}</strong> ${e.what}
10
+ <strong class="lintje-activity-log__who">${t.who}</strong> ${t.what}
50
11
  </p>
51
- ${e.at ? i`<time class="lintje-activity-log__when" datetime=${e.at}>${e.when}</time>` : i`<span class="lintje-activity-log__when">${e.when}</span>`}
12
+ ${t.at?e`<time class="lintje-activity-log__when" datetime=${t.at}>${t.when}</time>`:e`<span class="lintje-activity-log__when">${t.when}</span>`}
52
13
  </div>
53
- </li>`;
54
- }
55
- render() {
56
- let e = this.entries.slice(0, Math.max(0, this.limit)), t = this.entries.length - e.length;
57
- return i`<section class="lintje-activity-log">
14
+ </li>`}render(){let t=this.entries.slice(0,Math.max(0,this.limit)),r=this.entries.length-t.length;return e`<section class="lintje-activity-log">
58
15
  ${this.renderHeading()}
59
16
  <ol
60
17
  class="lintje-activity-log__list"
61
- aria-labelledby=${this.heading ? "lintje-activity-log-heading" : r}
18
+ aria-labelledby=${this.heading?`lintje-activity-log-heading`:n}
62
19
  >
63
- ${e.map((t, n) => this.entry(t, n, n === e.length - 1))}
20
+ ${t.map((e,n)=>this.entry(e,n,n===t.length-1))}
64
21
  </ol>
65
- ${t > 0 ? i`<lintje-button
22
+ ${r>0?e`<lintje-button
66
23
  class="lintje-activity-log__more"
67
24
  variant="link"
68
- @click=${() => void this.showMore()}
25
+ @click=${()=>void this.showMore()}
69
26
  >Toon eerdere</lintje-button
70
- >` : r}
71
- </section>`;
72
- }
73
- };
74
- t("lintje-activity-log", c);
75
- //#endregion
76
- export { c as LintjeActivityLog };
27
+ >`:n}
28
+ </section>`}};a(`lintje-activity-log`,c);export{c as LintjeActivityLog};
@@ -1,38 +1,5 @@
1
- import { Jt as e, Yt as t, Zt as n, at as r, en as i, lt as a, nn as o, ot as s, ut as c } from "../chunks/base-Bd2pmq86.js";
2
- //#region src/components/feedback/ai-label/ai-label.css?inline
3
- var l = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-ai-label {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--space-2) var(--space-3);\n}\n/* Unlike other badges this one may wrap: a long name would run past a 390 px screen. */\n.lintje-ai-label__box {\n max-width: 100%;\n height: auto;\n min-height: 1.5rem;\n line-height: 1.25;\n white-space: normal;\n}\n.lintje-ai-label__badge { display: inline-flex; align-items: center; gap: var(--space-1); min-width: 0; }\n.lintje-ai-label__icon { flex: none; }\n.lintje-ai-label__hint { font: var(--text-small); color: var(--color-text-muted); }\n", u = "Controleer de tekst voor je hem gebruikt", d = class extends e {
4
- static {
5
- this.styles = [
6
- a,
7
- r,
8
- n(l)
9
- ];
10
- }
11
- static {
12
- this.properties = {
13
- checkedBy: {
14
- type: String,
15
- attribute: "checked-by"
16
- },
17
- hint: { type: String }
18
- };
19
- }
20
- render() {
21
- let e = !!this.checkedBy, t = this.hint ?? (e ? "" : u), n = o`<span class="lintje-ai-label__badge"
22
- >${c(e ? "functioneel-vinkje" : "gereedschap-half-tandwiel-half-brein", {
23
- size: 14,
24
- className: "lintje-ai-label__icon"
25
- })}<span>${e ? `Gecontroleerd door ${this.checkedBy}` : "Gemaakt door AI"}</span></span
26
- >`;
27
- return o`<span class="lintje-ai-label">
28
- ${s({
29
- value: n,
30
- tone: "neutral",
31
- className: "lintje-ai-label__box"
32
- })}${t ? o`<span class="lintje-ai-label__hint">${t}</span>` : i}
33
- </span>`;
34
- }
35
- };
36
- t("lintje-ai-label", d);
37
- //#endregion
38
- export { d as LintjeAiLabel };
1
+ import{cn as e,dt as t,en as n,ft as r,gt as i,ht as a,on as o,rn as s,tn as c}from"../chunks/base-BsZyWDre.js";var l=`:host{min-width:0;display:block}:host([hidden]){display:none}.lintje-ai-label{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.lintje-ai-label__box{white-space:normal;max-width:100%;height:auto;min-height:1.5rem;line-height:1.25}.lintje-ai-label__badge{align-items:center;gap:var(--space-1);min-width:0;display:inline-flex}.lintje-ai-label__icon{flex:none}.lintje-ai-label__hint{font:var(--text-small);color:var(--color-text-muted)}`,u=`Controleer de tekst voor je hem gebruikt`,d=class extends n{static{this.styles=[a,t,s(l)]}static{this.properties={checkedBy:{type:String,attribute:`checked-by`},hint:{type:String}}}render(){let t=!!this.checkedBy,n=this.hint??(t?``:u),a=e`<span class="lintje-ai-label__badge"
2
+ >${i(t?`functioneel-vinkje`:`gereedschap-half-tandwiel-half-brein`,{size:14,className:`lintje-ai-label__icon`})}<span>${t?`Gecontroleerd door ${this.checkedBy}`:`Gemaakt door AI`}</span></span
3
+ >`;return e`<span class="lintje-ai-label">
4
+ ${r({value:a,tone:`neutral`,className:`lintje-ai-label__box`})}${n?e`<span class="lintje-ai-label__hint">${n}</span>`:o}
5
+ </span>`}};c(`lintje-ai-label`,d);export{d as LintjeAiLabel};
@@ -1,106 +1,10 @@
1
- import { F as e, M as t, N as n, P as r, Q as i, Yt as a, Z as o, Zt as s, en as c, lt as l, nn as u } from "../chunks/base-Bd2pmq86.js";
2
- import { r as d } from "../chunks/focus-trap-Cl99vti9.js";
3
- //#region src/components/shared/view-tile.css?inline
4
- var f = "/*\n * A view element around a tile: the tile fills the host, so the footnote\n * (`margin-top: auto`) reaches the bottom of the grid cell.\n * `display: block` because a standalone custom element is inline.\n */\n:host {\n display: block;\n min-width: 0;\n}\n:host([hidden]) {\n display: none;\n}\n/* The grid cell moves to the next sheet whole; a tile split between its title and its drawing\n reads as two. */\n@media print {\n :host { break-inside: avoid; }\n}\n/* `min-height: inherit`: a held host has a min-height and no height, so `100%` resolves to auto. */\nlintje-tile {\n height: 100%;\n min-height: inherit;\n}\n", p = (e) => `lintje-announcement-dismissed:${e}`, m = class extends r {
5
- constructor(...e) {
6
- super(...e), this.dismissed = null, this.filled = null, this.fillFrame = 0;
7
- }
8
- static {
9
- this.styles = [
10
- l,
11
- e,
12
- s(f),
13
- t
14
- ];
15
- }
16
- static {
17
- this.properties = {
18
- data: { attribute: !1 },
19
- dismissed: { state: !0 },
20
- filled: { state: !0 }
21
- };
22
- }
23
- get dataSettings() {
24
- return this.data ?? void 0;
25
- }
26
- get identity() {
27
- let e = this.data;
28
- return e ? e.announcementId ?? [
29
- e.kind,
30
- e.title,
31
- e.text
32
- ].join("\0") : "";
33
- }
34
- get isDismissed() {
35
- let e = this.data;
36
- if (!e) return !1;
37
- if (this.dismissed === this.identity) return !0;
38
- if (!e.announcementId) return !1;
39
- try {
40
- return localStorage.getItem(p(e.announcementId)) === "1";
41
- } catch {
42
- return !1;
43
- }
44
- }
45
- holds(e) {
46
- for (let t = e; t;) {
47
- if (t === this) return !0;
48
- t = t.parentNode ?? (t instanceof ShadowRoot ? t.host : null);
49
- }
50
- return !1;
51
- }
52
- neighbour() {
53
- let e = d(document.body), t = e.indexOf(o());
54
- if (t === -1) return null;
55
- let n = (e) => !this.holds(e);
56
- return e.slice(t + 1).find(n) ?? e.slice(0, t).reverse().find(n) ?? null;
57
- }
58
- async close() {
59
- let e = i(this) ? this.neighbour() : null, t = this.data?.announcementId;
60
- if (t) try {
61
- localStorage.setItem(p(t), "1");
62
- } catch {}
63
- this.dismissed = this.identity, e && (await this.updateComplete, e.focus());
64
- }
65
- disconnectedCallback() {
66
- this.fillFrame && cancelAnimationFrame(this.fillFrame), this.fillFrame = 0, super.disconnectedCallback();
67
- }
68
- updated(e) {
69
- super.updated(e), !(!this.data?.live || this.isDismissed || this.filled === this.identity || this.fillFrame) && (this.fillFrame = requestAnimationFrame(() => {
70
- this.fillFrame = 0, this.filled = this.identity;
71
- }));
72
- }
73
- render() {
74
- let e = this.data;
75
- if (!e || this.isDismissed) return c;
76
- let t = this.block(e), n = e.tile;
77
- return n ? u`<lintje-tile
78
- id=${this.id ? `${this.id}-tile` : c}
79
- span=${n.span ?? c}
80
- heading=${n.title ?? c}
81
- icon=${n.icon ?? c}
82
- subtitle=${n.subtitle ?? c}
83
- intro=${n.intro ?? c}
84
- footnote=${n.footnote ?? c}
1
+ import{F as e,M as t,N as n,P as r,cn as i,ht as a,nt as o,on as s,rn as c,rt as l,tn as u}from"../chunks/base-BsZyWDre.js";import{i as d}from"../chunks/focus-trap-BDxiHED1.js";var f=`:host{min-width:0;display:block}:host([hidden]){display:none}@media print{:host{break-inside:avoid}}lintje-tile{height:100%;min-height:inherit}`,p=e=>`lintje-announcement-dismissed:${e}`,m=class extends r{constructor(...e){super(...e),this.dismissed=null,this.filled=null,this.fillFrame=0}static{this.styles=[a,e,c(f),t]}static{this.properties={data:{attribute:!1},dismissed:{state:!0},filled:{state:!0}}}get dataSettings(){return this.data??void 0}get identity(){let e=this.data;return e?e.announcementId??[e.kind,e.title,e.text].join(`\0`):``}get isDismissed(){let e=this.data;if(!e)return!1;if(this.dismissed===this.identity)return!0;if(!e.announcementId)return!1;try{return localStorage.getItem(p(e.announcementId))===`1`}catch{return!1}}holds(e){for(let t=e;t;){if(t===this)return!0;t=t.parentNode??(t instanceof ShadowRoot?t.host:null)}return!1}neighbour(){let e=d(document.body),t=e.indexOf(o());if(t===-1)return null;let n=e=>!this.holds(e);return e.slice(t+1).find(n)??e.slice(0,t).reverse().find(n)??null}async close(){let e=l(this)?this.neighbour():null,t=this.data?.announcementId;if(t)try{localStorage.setItem(p(t),`1`)}catch{}this.dismissed=this.identity,e&&(await this.updateComplete,e.focus())}disconnectedCallback(){this.fillFrame&&cancelAnimationFrame(this.fillFrame),this.fillFrame=0,super.disconnectedCallback()}updated(e){super.updated(e),!(!this.data?.live||this.isDismissed||this.filled===this.identity||this.fillFrame)&&(this.fillFrame=requestAnimationFrame(()=>{this.fillFrame=0,this.filled=this.identity}))}render(){let e=this.data;if(!e||this.isDismissed)return s;let t=this.block(e),n=e.tile;return n?i`<lintje-tile
2
+ id=${this.id?`${this.id}-tile`:s}
3
+ span=${n.span??s}
4
+ heading=${n.title??s}
5
+ icon=${n.icon??s}
6
+ subtitle=${n.subtitle??s}
7
+ intro=${n.intro??s}
8
+ footnote=${n.footnote??s}
85
9
  >${t}</lintje-tile
86
- >` : t;
87
- }
88
- block(e) {
89
- let t = e.kind ?? "warning", r = !!e.dismissible && t !== "outage", i = e.live === !0;
90
- return n({
91
- kind: t,
92
- title: e.title,
93
- text: e.text,
94
- meta: e.meta,
95
- link: e.link,
96
- live: i,
97
- filled: this.filled === this.identity,
98
- action: u`<slot name="action" class="lintje-announcement__action"></slot>`,
99
- media: u`<slot name="media" class="lintje-announcement__media"></slot>`,
100
- onClose: r ? () => void this.close() : void 0
101
- });
102
- }
103
- };
104
- a("lintje-announcement", m);
105
- //#endregion
106
- export { m as LintjeAnnouncement, f as t };
10
+ >`:t}block(e){let t=e.kind??`warning`,r=!!e.dismissible&&t!==`outage`,a=e.live===!0;return n({kind:t,title:e.title,text:e.text,meta:e.meta,link:e.link,live:a,filled:this.filled===this.identity,action:i`<slot name="action" class="lintje-announcement__action"></slot>`,media:i`<slot name="media" class="lintje-announcement__media"></slot>`,onClose:r?()=>void this.close():void 0})}};u(`lintje-announcement`,m);export{m as LintjeAnnouncement,f as t};
@@ -1,204 +1,58 @@
1
- import { Gt as e, H as t, Ht as n, Jt as r, Kt as i, Yt as a, Zt as o, en as s, jt as c, lt as l, nn as u, st as d, ut as f } from "../chunks/base-Bd2pmq86.js";
2
- import { t as p } from "../chunks/focus-trap-Cl99vti9.js";
3
- import { t as m } from "../chunks/dialog-close-u75fVEw4.js";
4
- import { t as h } from "../chunks/key-D5wy9ZTj.js";
5
- import { t as g } from "../chunks/debounce-JXnLMCcF.js";
6
- //#region src/components/frame/app-search/app-search.css?inline
7
- var _ = ":host { display: contents; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-app-search__scrim {\n position: fixed;\n z-index: 80;\n inset: 0;\n display: flex;\n align-items: flex-start;\n justify-content: center;\n padding: calc(var(--space-10) * 2) var(--space-6) var(--space-6);\n background: var(--color-overlay-page);\n animation: lintje-fade-in var(--dur-scrim) var(--ease-in-motion);\n}\n\n.lintje-app-search {\n display: flex;\n flex-direction: column;\n width: min(560px, 100%);\n max-height: 100%;\n background: var(--color-bg-surface);\n color: var(--color-text-primary);\n border: 1px solid var(--color-border-strong);\n box-shadow: var(--shadow-popover);\n font: var(--text-ui);\n animation: lintje-rise var(--dur-modal) var(--ease-in-motion);\n}\n/* The window takes focus only when the trap pulls stray focus back; the field draws the ring. */\n.lintje-app-search:focus { outline: none; }\n\n.lintje-app-search__field {\n position: relative;\n display: flex;\n align-items: center;\n flex: none;\n padding: var(--space-3);\n background: var(--color-bg-filter);\n border-bottom: 1px solid var(--color-border-default);\n}\n.lintje-app-search__icon {\n position: absolute;\n left: calc(var(--space-3) * 2);\n color: var(--color-text-muted);\n pointer-events: none;\n}\n/* A field like every other, so its focus ring has room inside the band. */\n.lintje-app-search__input {\n flex: 1;\n min-width: 0;\n height: var(--h-control);\n /* Clears the glyph. */\n padding: 0 var(--space-3) 0 calc(var(--space-3) + 20px + var(--space-3));\n border: 1px solid var(--color-border-field);\n background: var(--color-bg-surface);\n font-size: 1rem;\n}\n.lintje-app-search__input::-webkit-search-cancel-button { display: none; }\n\n.lintje-app-search__results {\n flex: 1 1 auto;\n min-height: 0;\n overflow-y: auto;\n padding: var(--space-3) 0 var(--space-2);\n}\n\n.lintje-app-search__heading {\n padding: var(--space-3) var(--space-4) var(--space-2);\n font-size: var(--label-size);\n font-weight: var(--label-weight);\n letter-spacing: var(--label-tracking);\n text-transform: uppercase;\n color: var(--color-text-muted);\n}\n.lintje-app-search__group:first-child .lintje-app-search__heading { padding-top: 0; }\n\n.lintje-app-search__option {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--space-4);\n min-height: var(--h-control);\n padding: 0 var(--space-4);\n color: var(--color-text-primary);\n text-decoration: none;\n cursor: pointer;\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-app-search__option + .lintje-app-search__option { border-top: 1px solid var(--color-border-default); }\n.lintje-app-search__option:hover { background: var(--color-bg-subtle); }\n/* The chosen row has the virtual focus (`aria-activedescendant`), so it draws the focus ring,\n inside; the fill alone is too faint to find. */\n.lintje-app-search__option.is-active {\n background: var(--color-bg-selected);\n outline: var(--focus-width) solid var(--color-focus);\n outline-offset: calc(var(--focus-width) * -1);\n}\n.lintje-app-search__label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.lintje-app-search__match { font-weight: 700; }\n.lintje-app-search__meta { flex: none; color: var(--color-text-muted); }\n\n.lintje-app-search__busy { display: flex; align-items: center; justify-content: center; padding: var(--space-4); color: var(--color-text-muted); }\n.lintje-app-search__empty { margin: 0; padding: var(--space-4); text-align: center; color: var(--color-text-muted); }\n\n.lintje-app-search__keys {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n flex: none;\n gap: var(--space-1) var(--space-6);\n margin: 0;\n padding: var(--space-3) var(--space-4);\n background: var(--color-bg-filter);\n border-top: 1px solid var(--color-border-default);\n font-size: 0.875rem;\n color: var(--color-text-muted);\n}\n.lintje-app-search__hint { display: inline-flex; align-items: center; gap: var(--space-1); }\n\n.lintje-app-search__close:hover { color: var(--color-text-primary); }\n\n/* Phone: a sheet from below, as \"Weergave\", \"Delen\" and the filters open, with their head. Its\n height stays as the results change, and the field stands high, above the keyboard. */\n.lintje-app-search__header {\n display: flex; align-items: center; gap: var(--space-2);\n flex: none;\n padding: var(--space-4);\n border-bottom: 1px solid var(--color-border-default);\n}\n.lintje-app-search__title { flex: 1; margin: 0; font: var(--text-h2); }\n\n@media screen and (max-width: 767px) {\n .lintje-app-search__scrim { align-items: flex-end; padding: 0; }\n .lintje-app-search {\n width: 100%;\n height: 88vh;\n border: 0;\n border-top: 1px solid var(--color-border-strong);\n box-shadow: none;\n animation: lintje-sheet-in var(--dur-sheet) var(--ease-in-motion);\n }\n .lintje-app-search__input { height: var(--h-touch); }\n .lintje-app-search__option { min-height: var(--h-touch); }\n}\n\n/* Forced colours drop the fill; the ring takes Highlight. */\n@media (forced-colors: active) {\n .lintje-app-search__option.is-active { outline: 2px solid Highlight; outline-offset: -2px; }\n}\n", v = 200, y = 0;
8
- function b(e, t) {
9
- let n = t.trim();
10
- if (!n) return null;
11
- let r = e.toLocaleLowerCase("nl").indexOf(n.toLocaleLowerCase("nl"));
12
- return r < 0 ? null : [
13
- e.slice(0, r),
14
- e.slice(r, r + n.length),
15
- e.slice(r + n.length)
16
- ];
17
- }
18
- function x(e, t, n) {
19
- return n ? "" : e === 0 ? t.trim() ? `Geen resultaten voor “${t.trim()}”` : "" : e === 1 ? "1 resultaat" : `${e} resultaten`;
20
- }
21
- var S = class extends r {
22
- constructor(...t) {
23
- super(...t), this.open = !1, this.label = "Zoeken", this.query = "", this.loading = !1, this.groups = [], this.active = -1, this.#e = new i(this, e), this.#t = new g(this, 200), this.#n = `lintje-app-search-${++y}`, this.#r = null, this.#i = null, this.#a = new p(), this.#o = (e) => {
24
- e.key === "Escape" && this.#a.isTopmost() && this.close("escape");
25
- };
26
- }
27
- static {
28
- this.styles = [
29
- l,
30
- o(m),
31
- o(h),
32
- o(_)
33
- ];
34
- }
35
- static {
36
- this.properties = {
37
- open: {
38
- type: Boolean,
39
- reflect: !0
40
- },
41
- label: { type: String },
42
- query: { type: String },
43
- loading: {
44
- type: Boolean,
45
- reflect: !0
46
- },
47
- groups: { attribute: !1 },
48
- active: { state: !0 }
49
- };
50
- }
51
- #e;
52
- #t;
53
- #n;
54
- #r;
55
- #i;
56
- #a;
57
- get results() {
58
- return this.groups.flatMap((e) => e.items);
59
- }
60
- get input() {
61
- return this.renderRoot.querySelector(".lintje-app-search__input");
62
- }
63
- optionId(e) {
64
- return `${this.#n}-option-${e}`;
65
- }
66
- #o;
67
- connectedCallback() {
68
- super.connectedCallback(), this.#r = c({
69
- keys: "/",
70
- description: "Zoeken",
71
- handler: () => {
72
- this.open || this.emit("lintje-open");
73
- }
74
- });
75
- }
76
- disconnectedCallback() {
77
- this.#r?.(), this.#r = null, this.#c(), super.disconnectedCallback();
78
- }
79
- close(e) {
80
- this.emit("lintje-close", { reason: e });
81
- }
82
- willUpdate(e) {
83
- super.willUpdate(e), (e.has("groups") || e.has("loading")) && (this.active = !this.loading && this.results.length ? 0 : -1);
84
- }
85
- updated(e) {
86
- super.updated(e), this.open && !this.#i ? this.#s() : !this.open && this.#i && this.#c(), e.has("active") && this.active >= 0 && this.renderRoot.querySelector(`#${this.optionId(this.active)}`)?.scrollIntoView?.({ block: "nearest" });
87
- }
88
- #s() {
89
- this.#i = n(), document.addEventListener("keydown", this.#o);
90
- let e = this.renderRoot.querySelector(".lintje-app-search");
91
- e && this.#a.activate(e, { focus: this.input ?? !0 });
92
- }
93
- #c() {
94
- this.#i && (this.#t.cancel(), document.removeEventListener("keydown", this.#o), this.#i(), this.#i = null, this.#a.deactivate());
95
- }
96
- onInput(e) {
97
- this.query = e.target.value, this.#t.schedule(() => this.emit("lintje-search", this.query));
98
- }
99
- onFieldKeydown(e) {
100
- let t = this.results.length;
101
- switch (e.key) {
102
- case "ArrowDown":
103
- e.preventDefault(), t && (this.active = (this.active + 1) % t);
104
- return;
105
- case "ArrowUp":
106
- e.preventDefault(), t && (this.active = (this.active - 1 + t) % t);
107
- return;
108
- case "Enter": {
109
- e.preventDefault();
110
- let t = this.results[this.active];
111
- t && !this.loading ? this.choose(t) : this.#t.flush();
112
- }
113
- }
114
- }
115
- choose(e, n) {
116
- if (e.href) {
117
- if (n && !t(n)) return;
118
- this.followLink(e.href, n);
119
- } else this.emit("lintje-action", e.id);
120
- this.close("choice");
121
- }
122
- renderLabel(e) {
123
- let t = b(e, this.query);
124
- return t ? u`${t[0]}<strong class="lintje-app-search__match">${t[1]}</strong>${t[2]}` : u`${e}`;
125
- }
126
- renderOption(e, t) {
127
- let n = t === this.active, r = d({
128
- "lintje-app-search__option": !0,
129
- "is-active": n
130
- }), i = u`<span class="lintje-app-search__label">${this.renderLabel(e.label)}</span>${e.meta ? u`<span class="lintje-app-search__meta">${e.meta}</span>` : s}`, a = (t) => this.choose(e, t);
131
- return e.href ? u`<a
1
+ import{Lt as e,Qt as t,U as n,Zt as r,cn as i,en as a,gt as o,ht as s,on as c,pt as l,rn as u,st as d,tn as f}from"../chunks/base-BsZyWDre.js";import{n as p,t as m}from"../chunks/dialog-close-CzMRXkJ6.js";import{t as h}from"../chunks/debounce-Dfwdcv-z.js";import{t as g}from"../chunks/key-CAxrgBxD.js";var _=`:host{display:contents}.lintje-app-search__scrim{z-index:80;padding:calc(var(--space-10) * 2) var(--space-6) var(--space-6);background:var(--color-overlay-page);animation:lintje-fade-in var(--dur-scrim) var(--ease-in-motion);justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0}.lintje-app-search{background:var(--color-bg-surface);width:min(560px,100%);max-height:100%;color:var(--color-text-primary);border:1px solid var(--color-border-strong);box-shadow:var(--shadow-popover);font:var(--text-ui);animation:lintje-rise var(--dur-modal) var(--ease-in-motion);flex-direction:column;display:flex}.lintje-app-search:focus{outline:none}.lintje-app-search__field{padding:var(--space-3);background:var(--color-bg-filter);border-bottom:1px solid var(--color-border-default);flex:none;align-items:center;display:flex;position:relative}.lintje-app-search__icon{left:calc(var(--space-3) * 2);color:var(--color-text-muted);pointer-events:none;position:absolute}.lintje-app-search__input{min-width:0;height:var(--h-control);padding:0 var(--space-3) 0 calc(var(--space-3) + 20px + var(--space-3));border:1px solid var(--color-border-field);background:var(--color-bg-surface);flex:1;font-size:1rem}.lintje-app-search__input::-webkit-search-cancel-button{display:none}.lintje-app-search__results{min-height:0;padding:var(--space-3) 0 var(--space-2);flex:auto;overflow-y:auto}.lintje-app-search__heading{padding:var(--space-3) var(--space-4) var(--space-2);font-size:var(--label-size);font-weight:var(--label-weight);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--color-text-muted)}.lintje-app-search__group:first-child .lintje-app-search__heading{padding-top:0}.lintje-app-search__option{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:var(--h-control);padding:var(--space-2) var(--space-4);color:var(--color-text-primary);cursor:pointer;transition:background var(--dur-hover) var(--ease-in-motion);text-decoration:none;display:flex}.lintje-app-search__option+.lintje-app-search__option{border-top:1px solid var(--color-border-default)}.lintje-app-search__option:hover{background:var(--color-bg-subtle)}.lintje-app-search__option.is-active{background:var(--color-bg-selected);outline:var(--focus-width) solid var(--color-focus);outline-offset:calc(var(--focus-width) * -1)}.lintje-app-search__label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.lintje-app-search__option.is-active .lintje-app-search__label{white-space:normal;overflow-wrap:anywhere}@media (hover:none),screen and (width<=767px){.lintje-app-search__label{white-space:normal;overflow-wrap:anywhere}}.lintje-app-search__match{font-weight:700}.lintje-app-search__meta{color:var(--color-text-muted);flex:none}.lintje-app-search__busy{padding:var(--space-4);color:var(--color-text-muted);justify-content:center;align-items:center;display:flex}.lintje-app-search__empty{padding:var(--space-4);text-align:center;color:var(--color-text-muted);margin:0}.lintje-app-search__keys{align-items:center;gap:var(--space-1) var(--space-6);padding:var(--space-3) var(--space-4);background:var(--color-bg-filter);border-top:1px solid var(--color-border-default);color:var(--color-text-muted);flex-wrap:wrap;flex:none;margin:0;font-size:.875rem;display:flex}.lintje-app-search__hint{align-items:center;gap:var(--space-1);display:inline-flex}.lintje-app-search__close:hover{color:var(--color-text-primary)}.lintje-app-search__header{align-items:center;gap:var(--space-2);padding:var(--space-4);border-bottom:1px solid var(--color-border-default);flex:none;display:flex}.lintje-app-search__title{font:var(--text-h2);flex:1;margin:0}@media screen and (width<=767px){.lintje-app-search__scrim{align-items:flex-end;padding:0}.lintje-app-search{border:0;border-top:1px solid var(--color-border-strong);width:100%;height:88vh;box-shadow:none;animation:lintje-sheet-in var(--dur-sheet) var(--ease-in-motion)}.lintje-app-search__input{height:var(--h-touch)}.lintje-app-search__option{min-height:var(--h-touch)}}@media (forced-colors:active){.lintje-app-search__option.is-active{outline-offset:-2px;outline:2px solid highlight}}`,v=200,y=0,b=[],x=null;function S(e,t){let n=t.trim();if(!n)return null;let r=e.toLocaleLowerCase(`nl`).indexOf(n.toLocaleLowerCase(`nl`));return r<0?null:[e.slice(0,r),e.slice(r,r+n.length),e.slice(r+n.length)]}function C(e,t,n){return n?``:e===0?t.trim()?`Geen resultaten voor “${t.trim()}”`:``:e===1?`1 resultaat`:`${e} resultaten`}var w=class extends a{constructor(...e){super(...e),this.open=!1,this.label=`Zoeken`,this.query=``,this.loading=!1,this.groups=[],this.active=-1,this.#e=new t(this,r),this.#t=new h(this,200),this.#n=`lintje-app-search-${++y}`,this.#r=new p(()=>this.close(`escape`))}static{this.styles=[s,u(m),u(g),u(_)]}static{this.properties={open:{type:Boolean,reflect:!0},label:{type:String},query:{type:String},loading:{type:Boolean,reflect:!0},groups:{attribute:!1},active:{state:!0}}}#e;#t;#n;#r;get results(){return this.groups.flatMap(e=>e.items)}get input(){return this.renderRoot.querySelector(`.lintje-app-search__input`)}optionId(e){return`${this.#n}-option-${e}`}connectedCallback(){super.connectedCallback(),b.push(this),x??=e({keys:`/`,description:`Zoeken`,handler:()=>b.at(-1)?.askOpen()})}disconnectedCallback(){let e=b.indexOf(this);e!==-1&&b.splice(e,1),b.length||(x?.(),x=null),this.#a(),super.disconnectedCallback()}askOpen(){this.open||this.emit(`lintje-open`)}close(e){this.emit(`lintje-close`,{reason:e})}willUpdate(e){super.willUpdate(e),(e.has(`groups`)||e.has(`loading`))&&(this.active=!this.loading&&this.results.length?0:-1)}updated(e){super.updated(e),this.open&&!this.#r.held?this.#i():!this.open&&this.#r.held&&this.#a(),e.has(`active`)&&this.active>=0&&this.renderRoot.querySelector(`#${this.optionId(this.active)}`)?.scrollIntoView?.({block:`nearest`})}#i(){let e=this.renderRoot.querySelector(`.lintje-app-search`);e&&this.#r.hold(e,{focus:this.input??!0})}#a(){this.#r.held&&(this.#t.cancel(),this.#r.release())}onInput(e){this.query=e.target.value,this.#t.schedule(()=>this.emit(`lintje-search`,this.query))}onFieldKeydown(e){let t=this.results.length;switch(e.key){case`ArrowDown`:e.preventDefault(),t&&(this.active=(this.active+1)%t);return;case`ArrowUp`:e.preventDefault(),t&&(this.active=(this.active-1+t)%t);return;case`Enter`:{e.preventDefault();let t=this.results[this.active];t&&!this.loading?this.choose(t):this.#t.flush()}}}choose(e,t){if(e.href){if(t&&!n(t))return;this.followLink(e.href,t)}else this.emit(`lintje-action`,e.id);this.close(`choice`)}renderLabel(e){let t=S(e,this.query);return t?i`${t[0]}<strong class="lintje-app-search__match">${t[1]}</strong>${t[2]}`:i`${e}`}renderOption(e,t){let n=t===this.active,r=l({"lintje-app-search__option":!0,"is-active":n}),a=i`<span class="lintje-app-search__label" @pointerenter=${d}>${this.renderLabel(e.label)}</span>${e.meta?i`<span class="lintje-app-search__meta">${e.meta}</span>`:c}`,o=t=>this.choose(e,t);return e.href?i`<a
132
2
  id=${this.optionId(t)}
133
3
  class=${r}
134
4
  role="option"
135
5
  aria-selected=${String(n)}
136
6
  tabindex="-1"
137
7
  href=${e.href}
138
- @click=${a}
139
- >${i}</a
140
- >` : u`<div
8
+ @click=${o}
9
+ >${a}</a
10
+ >`:i`<div
141
11
  id=${this.optionId(t)}
142
12
  class=${r}
143
13
  role="option"
144
14
  aria-selected=${String(n)}
145
- @click=${a}
15
+ @click=${o}
146
16
  >
147
- ${i}
148
- </div>`;
149
- }
150
- renderResults() {
151
- let e = 0, t = `${this.#n}-list`, n = this.results.length, r = this.query.trim();
152
- return u`
153
- ${this.loading ? u`<div class="lintje-app-search__busy">
17
+ ${a}
18
+ </div>`}renderResults(){let e=0,t=`${this.#n}-list`,n=this.results.length,r=this.query.trim();return i`
19
+ ${this.loading?i`<div class="lintje-app-search__busy">
154
20
  <lintje-spinner label="Zoeken"></lintje-spinner>
155
- </div>` : !n && r ? u`<p class="lintje-app-search__empty">Geen resultaten voor “${r}”</p>` : s}
21
+ </div>`:!n&&r?i`<p class="lintje-app-search__empty">Geen resultaten voor “${r}”</p>`:c}
156
22
  <div
157
23
  id=${t}
158
24
  class="lintje-app-search__list"
159
25
  role="listbox"
160
26
  aria-label="Resultaten"
161
- ?hidden=${this.loading || !n}
27
+ ?hidden=${this.loading||!n}
162
28
  >
163
- ${this.groups.map((t, n) => {
164
- if (!t.items.length) return s;
165
- let r = `${this.#n}-group-${n}`;
166
- return u`<div class="lintje-app-search__group" role="group" aria-labelledby=${r}>
29
+ ${this.groups.map((t,n)=>{if(!t.items.length)return c;let r=`${this.#n}-group-${n}`;return i`<div class="lintje-app-search__group" role="group" aria-labelledby=${r}>
167
30
  <div id=${r} class="lintje-app-search__heading">${t.label}</div>
168
- ${t.items.map((t) => this.renderOption(t, e++))}
169
- </div>`;
170
- })}
31
+ ${t.items.map(t=>this.renderOption(t,e++))}
32
+ </div>`})}
171
33
  </div>
172
- `;
173
- }
174
- render() {
175
- if (!this.open) return s;
176
- let e = `${this.#n}-list`, t = this.results.length, n = !this.loading && t > 0;
177
- return u`<div class="lintje-app-search__scrim" @click=${() => this.close("scrim")}>
34
+ `}render(){if(!this.open)return c;let e=`${this.#n}-list`,t=this.results.length,n=!this.loading&&t>0;return i`<div class="lintje-app-search__scrim" @click=${()=>this.close(`scrim`)}>
178
35
  <div
179
36
  class="lintje-app-search"
180
37
  role="dialog"
181
38
  aria-modal="true"
182
39
  aria-label="Zoeken"
183
40
  tabindex="-1"
184
- @click=${(e) => e.stopPropagation()}
41
+ @click=${e=>e.stopPropagation()}
185
42
  >
186
- ${this.#e.matches ? u`<div class="lintje-app-search__header">
43
+ ${this.#e.matches?i`<div class="lintje-app-search__header">
187
44
  <h2 class="lintje-app-search__title">Zoeken</h2>
188
45
  <button
189
46
  type="button"
190
47
  class="lintje-dialog-close lintje-app-search__close"
191
48
  aria-label="Zoeken sluiten"
192
- @click=${() => this.close("button")}
49
+ @click=${()=>this.close(`button`)}
193
50
  >
194
- ${f("functioneel-kruis", { size: 16 })}
51
+ ${o(`functioneel-kruis`,{size:16})}
195
52
  </button>
196
- </div>` : s}
53
+ </div>`:c}
197
54
  <div class="lintje-app-search__field">
198
- ${f("functioneel-zoek", {
199
- size: 20,
200
- className: "lintje-app-search__icon"
201
- })}
55
+ ${o(`functioneel-zoek`,{size:20,className:`lintje-app-search__icon`})}
202
56
  <input
203
57
  class="lintje-app-search__input"
204
58
  type="search"
@@ -209,7 +63,7 @@ var S = class extends r {
209
63
  aria-autocomplete="list"
210
64
  aria-expanded=${String(n)}
211
65
  aria-controls=${e}
212
- aria-activedescendant=${n && this.active >= 0 ? this.optionId(this.active) : s}
66
+ aria-activedescendant=${n&&this.active>=0?this.optionId(this.active):c}
213
67
  .value=${this.query}
214
68
  @input=${this.onInput}
215
69
  @keydown=${this.onFieldKeydown}
@@ -217,15 +71,15 @@ var S = class extends r {
217
71
  </div>
218
72
  <div
219
73
  class="lintje-app-search__results"
220
- ?hidden=${!this.loading && !t && !this.query.trim()}
221
- @mousedown=${(e) => e.preventDefault()}
74
+ ?hidden=${!this.loading&&!t&&!this.query.trim()}
75
+ @mousedown=${e=>e.preventDefault()}
222
76
  >
223
77
  ${this.renderResults()}
224
78
  </div>
225
79
  <p class="visually-hidden" aria-live="polite">
226
- ${x(t, this.query, this.loading)}
80
+ ${C(t,this.query,this.loading)}
227
81
  </p>
228
- ${this.#e.matches ? s : u`<p class="lintje-app-search__keys">
82
+ ${this.#e.matches?c:i`<p class="lintje-app-search__keys">
229
83
  <span class="lintje-app-search__hint"
230
84
  ><kbd class="lintje-key">↑</kbd><kbd class="lintje-key">↓</kbd> kiezen</span
231
85
  >
@@ -233,9 +87,4 @@ var S = class extends r {
233
87
  <span class="lintje-app-search__hint"><kbd class="lintje-key">Esc</kbd> sluiten</span>
234
88
  </p>`}
235
89
  </div>
236
- </div>`;
237
- }
238
- };
239
- a("lintje-app-search", S);
240
- //#endregion
241
- export { S as LintjeAppSearch, v as SEARCH_DELAY, x as resultsMessage, b as splitMatch };
90
+ </div>`}};f(`lintje-app-search`,w);export{w as LintjeAppSearch,v as SEARCH_DELAY,C as resultsMessage,S as splitMatch};