lintje 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (276) hide show
  1. package/README.md +2 -2
  2. package/dist-elements/actions.js +1 -1
  3. package/dist-elements/chunks/{base-Bg-IFOPG.js → base-CbmWxUig.js} +444 -272
  4. package/dist-elements/chunks/{controls-B1455oPG.js → controls-DxmnDSBr.js} +6 -0
  5. package/dist-elements/chunks/dialog-DChINFxD.js +28 -0
  6. package/dist-elements/chunks/{disclosure-BXTX04gM.js → disclosure-D39vAR5q.js} +1 -1
  7. package/dist-elements/chunks/{disclosure-CMXhX-Vb.js → disclosure-DLkXPUpV.js} +6 -6
  8. package/dist-elements/chunks/download-Ct9q2anY.js +206 -0
  9. package/dist-elements/chunks/{focus-trap-9BnE-xWv.js → focus-trap-BwOxE5BX.js} +1 -1
  10. package/dist-elements/chunks/input-CRW_exv_.js +195 -0
  11. package/dist-elements/chunks/{player-DXOZEyEy.js → player-B8QXJ0Z5.js} +26 -26
  12. package/dist-elements/chunks/{sentence-BI3lwEuT.js → sentence-B19AyZBS.js} +3 -3
  13. package/dist-elements/chunks/{stagger-qGD3wmhg.js → stagger-BHoOgy0g.js} +81 -75
  14. package/dist-elements/core.js +1 -1
  15. package/dist-elements/custom-elements.json +980 -670
  16. package/dist-elements/data-types.json +6798 -0
  17. package/dist-elements/feedback.js +2 -1
  18. package/dist-elements/frame.js +0 -2
  19. package/dist-elements/guides/dashboard.md +8 -0
  20. package/dist-elements/guides/events.md +4 -5
  21. package/dist-elements/guides/loading.md +8 -7
  22. package/dist-elements/guides/page-contents.md +110 -0
  23. package/dist-elements/guides/start.md +12 -0
  24. package/dist-elements/inputs.js +2 -1
  25. package/dist-elements/layout.js +1 -1
  26. package/dist-elements/lintje.js +6975 -6120
  27. package/dist-elements/overlays.js +2 -2
  28. package/dist-elements/skills/lintje/SKILL.md +1 -1
  29. package/dist-elements/tables.js +1 -1
  30. package/dist-elements/tag/activity-log.js +15 -15
  31. package/dist-elements/tag/ai-label.js +10 -10
  32. package/dist-elements/tag/announcement.js +36 -76
  33. package/dist-elements/tag/app-search.js +49 -49
  34. package/dist-elements/tag/audio-player.js +57 -57
  35. package/dist-elements/tag/badge.js +1 -1
  36. package/dist-elements/tag/breadcrumbs.js +15 -15
  37. package/dist-elements/tag/button.js +1 -1
  38. package/dist-elements/tag/card-list.js +12 -12
  39. package/dist-elements/tag/card.js +39 -44
  40. package/dist-elements/tag/chart.js +1050 -795
  41. package/dist-elements/tag/chat-answer.js +49 -49
  42. package/dist-elements/tag/chat-composer.js +75 -71
  43. package/dist-elements/tag/chat-message.js +8 -8
  44. package/dist-elements/tag/chat-strip.js +22 -22
  45. package/dist-elements/tag/chat-suggestions.js +12 -12
  46. package/dist-elements/tag/chat.js +56 -56
  47. package/dist-elements/tag/checkbox-group.d.ts +1 -0
  48. package/dist-elements/tag/checkbox-group.js +59 -0
  49. package/dist-elements/tag/checkbox.js +8 -8
  50. package/dist-elements/tag/code.js +9 -9
  51. package/dist-elements/tag/combobox.js +18 -18
  52. package/dist-elements/tag/conflict-alert.js +12 -12
  53. package/dist-elements/tag/copy-button.js +14 -14
  54. package/dist-elements/tag/data-table.js +878 -530
  55. package/dist-elements/tag/date-input.js +30 -30
  56. package/dist-elements/tag/date-range.js +37 -37
  57. package/dist-elements/tag/description-list.js +29 -32
  58. package/dist-elements/tag/dialog.d.ts +1 -0
  59. package/dist-elements/tag/dialog.js +144 -0
  60. package/dist-elements/tag/document-viewer.js +23 -23
  61. package/dist-elements/tag/drawer.js +28 -32
  62. package/dist-elements/tag/empty-state.js +19 -30
  63. package/dist-elements/tag/error-page.d.ts +1 -0
  64. package/dist-elements/tag/error-page.js +109 -0
  65. package/dist-elements/tag/error-summary.js +10 -10
  66. package/dist-elements/tag/expander.js +8 -8
  67. package/dist-elements/tag/explainer.js +11 -11
  68. package/dist-elements/tag/field.js +5 -5
  69. package/dist-elements/tag/file-upload.js +34 -34
  70. package/dist-elements/tag/filter-bar.js +56 -56
  71. package/dist-elements/tag/filter-sheet.js +11 -11
  72. package/dist-elements/tag/filter-zone.js +31 -31
  73. package/dist-elements/tag/footer.js +21 -21
  74. package/dist-elements/tag/form-actions.js +29 -25
  75. package/dist-elements/tag/form-section.js +6 -6
  76. package/dist-elements/tag/form.js +12 -12
  77. package/dist-elements/tag/gallery.js +14 -14
  78. package/dist-elements/tag/grid-item.js +1 -1
  79. package/dist-elements/tag/grid.js +1 -1
  80. package/dist-elements/tag/hero.js +12 -12
  81. package/dist-elements/tag/highlight.js +5 -5
  82. package/dist-elements/tag/icon-button.js +1 -1
  83. package/dist-elements/tag/icon.js +1 -1
  84. package/dist-elements/tag/job-list.js +22 -44
  85. package/dist-elements/tag/kpi-row.js +12 -10
  86. package/dist-elements/tag/kpi.js +146 -137
  87. package/dist-elements/tag/level-meter.js +11 -11
  88. package/dist-elements/tag/list.js +55 -55
  89. package/dist-elements/tag/logo.js +30 -30
  90. package/dist-elements/tag/map.js +690 -665
  91. package/dist-elements/tag/menu-button.js +70 -69
  92. package/dist-elements/tag/modal.js +28 -37
  93. package/dist-elements/tag/multiselect.js +34 -34
  94. package/dist-elements/tag/note.js +5 -5
  95. package/dist-elements/tag/notifications.js +36 -36
  96. package/dist-elements/tag/number-input.js +12 -12
  97. package/dist-elements/tag/page-header.js +140 -37
  98. package/dist-elements/tag/pagination.js +53 -48
  99. package/dist-elements/tag/popover.js +1 -1
  100. package/dist-elements/tag/progress-bar.js +1 -1
  101. package/dist-elements/tag/prose.js +6 -6
  102. package/dist-elements/tag/qr-code.js +7 -7
  103. package/dist-elements/tag/radio-group.js +12 -12
  104. package/dist-elements/tag/range.js +22 -22
  105. package/dist-elements/tag/recording-status.js +14 -14
  106. package/dist-elements/tag/repeater.js +10 -10
  107. package/dist-elements/tag/segmented.js +13 -13
  108. package/dist-elements/tag/select.js +10 -10
  109. package/dist-elements/tag/shell.js +356 -339
  110. package/dist-elements/tag/skeleton.js +1 -1
  111. package/dist-elements/tag/slot-picker.js +14 -14
  112. package/dist-elements/tag/sortable-list.js +14 -14
  113. package/dist-elements/tag/spinner.js +1 -1
  114. package/dist-elements/tag/split-pane.js +12 -12
  115. package/dist-elements/tag/status-dot.js +1 -1
  116. package/dist-elements/tag/stepper.js +21 -21
  117. package/dist-elements/tag/streaming-text.js +13 -13
  118. package/dist-elements/tag/sub-nav.js +39 -38
  119. package/dist-elements/tag/tabs.js +38 -38
  120. package/dist-elements/tag/tag-input.js +19 -19
  121. package/dist-elements/tag/text-editor.js +24 -24
  122. package/dist-elements/tag/text-input.js +14 -14
  123. package/dist-elements/tag/textarea.js +14 -14
  124. package/dist-elements/tag/tile.js +1 -1
  125. package/dist-elements/tag/time-input.js +19 -19
  126. package/dist-elements/tag/toast.js +32 -23
  127. package/dist-elements/tag/toggle.js +8 -8
  128. package/dist-elements/tag/toggletip.js +27 -27
  129. package/dist-elements/tag/tooltip.js +1 -1
  130. package/dist-elements/tag/transcript.js +48 -48
  131. package/dist-elements/tag/translator.js +13 -13
  132. package/dist-elements/tag/tree-view.js +13 -13
  133. package/dist-elements/tag/user-menu.js +37 -37
  134. package/dist-elements/tag/video-player.js +21 -21
  135. package/dist-elements/tokens.css +120 -96
  136. package/dist-elements/types/bundle/feedback.d.ts +1 -0
  137. package/dist-elements/types/bundle/frame.d.ts +0 -2
  138. package/dist-elements/types/bundle/inputs.d.ts +1 -0
  139. package/dist-elements/types/bundle/overlays.d.ts +1 -1
  140. package/dist-elements/types/components/actions/copy-button/copy-button.d.ts +6 -7
  141. package/dist-elements/types/components/actions/menu-button/menu-button.d.ts +13 -15
  142. package/dist-elements/types/components/actions/qr-code/qr-code.d.ts +9 -9
  143. package/dist-elements/types/components/charts/chart/chart.d.ts +5 -4
  144. package/dist-elements/types/components/charts/kpi/kpi.d.ts +16 -8
  145. package/dist-elements/types/components/charts/kpi-row/kpi-row.d.ts +1 -7
  146. package/dist-elements/types/components/charts/note/note.d.ts +1 -1
  147. package/dist-elements/types/components/chat/chat/chat.d.ts +8 -10
  148. package/dist-elements/types/components/chat/chat-answer/chat-answer.d.ts +7 -8
  149. package/dist-elements/types/components/chat/chat-composer/chat-composer.d.ts +8 -10
  150. package/dist-elements/types/components/chat/chat-message/chat-message.d.ts +6 -7
  151. package/dist-elements/types/components/chat/chat-strip/chat-strip.d.ts +5 -5
  152. package/dist-elements/types/components/chat/chat-suggestions/chat-suggestions.d.ts +9 -10
  153. package/dist-elements/types/components/content/audio-player/audio-player.d.ts +10 -12
  154. package/dist-elements/types/components/content/code/code.d.ts +2 -3
  155. package/dist-elements/types/components/content/document-viewer/document-viewer.d.ts +8 -9
  156. package/dist-elements/types/components/content/gallery/gallery.d.ts +5 -4
  157. package/dist-elements/types/components/content/highlight/highlight.d.ts +4 -3
  158. package/dist-elements/types/components/content/prose/prose.d.ts +2 -3
  159. package/dist-elements/types/components/content/transcript/transcript.d.ts +12 -25
  160. package/dist-elements/types/components/content/translator/translator.d.ts +11 -15
  161. package/dist-elements/types/components/content/video-player/video-player.d.ts +11 -13
  162. package/dist-elements/types/components/feedback/ai-label/ai-label.d.ts +3 -4
  163. package/dist-elements/types/components/feedback/announcement/announcement.d.ts +3 -7
  164. package/dist-elements/types/components/feedback/conflict-alert/conflict-alert.d.ts +3 -4
  165. package/dist-elements/types/components/feedback/empty-state/empty-state.d.ts +5 -8
  166. package/dist-elements/types/components/feedback/error-page/error-page.d.ts +52 -0
  167. package/dist-elements/types/components/feedback/job-list/job-list.d.ts +9 -12
  168. package/dist-elements/types/components/feedback/level-meter/level-meter.d.ts +4 -6
  169. package/dist-elements/types/components/feedback/recording-status/recording-status.d.ts +5 -6
  170. package/dist-elements/types/components/feedback/streaming-text/streaming-text.d.ts +10 -7
  171. package/dist-elements/types/components/feedback/toast/toast.d.ts +8 -9
  172. package/dist-elements/types/components/filters/filter-bar/filter-bar.d.ts +9 -4
  173. package/dist-elements/types/components/filters/filter-sheet/filter-sheet.d.ts +5 -5
  174. package/dist-elements/types/components/filters/filter-zone/filter-zone.d.ts +4 -4
  175. package/dist-elements/types/components/forms/error-summary/error-summary.d.ts +5 -6
  176. package/dist-elements/types/components/forms/form/form.d.ts +5 -5
  177. package/dist-elements/types/components/forms/form-actions/form-actions.d.ts +9 -7
  178. package/dist-elements/types/components/forms/form-section/form-section.d.ts +6 -5
  179. package/dist-elements/types/components/forms/repeater/repeater.d.ts +13 -7
  180. package/dist-elements/types/components/forms/stepper/stepper.d.ts +5 -4
  181. package/dist-elements/types/components/frame/app-search/app-search.d.ts +6 -7
  182. package/dist-elements/types/components/frame/breadcrumbs/breadcrumbs.d.ts +2 -2
  183. package/dist-elements/types/components/frame/footer/footer.d.ts +3 -2
  184. package/dist-elements/types/components/frame/hero/hero.d.ts +7 -9
  185. package/dist-elements/types/components/frame/notifications/notifications.d.ts +5 -9
  186. package/dist-elements/types/components/frame/page-header/page-header.d.ts +12 -15
  187. package/dist-elements/types/components/frame/shell/shell.d.ts +14 -13
  188. package/dist-elements/types/components/frame/sub-nav/sub-nav.d.ts +10 -6
  189. package/dist-elements/types/components/frame/user-menu/user-menu.d.ts +11 -10
  190. package/dist-elements/types/components/index.d.ts +8 -9
  191. package/dist-elements/types/components/inputs/checkbox/checkbox.d.ts +4 -4
  192. package/dist-elements/types/components/inputs/checkbox-group/checkbox-group.d.ts +33 -0
  193. package/dist-elements/types/components/inputs/combobox/combobox.d.ts +12 -6
  194. package/dist-elements/types/components/inputs/date-input/date-input.d.ts +5 -5
  195. package/dist-elements/types/components/inputs/date-range/date-range.d.ts +11 -6
  196. package/dist-elements/types/components/inputs/field/field.d.ts +5 -3
  197. package/dist-elements/types/components/inputs/file-upload/file-upload.d.ts +6 -8
  198. package/dist-elements/types/components/inputs/multiselect/multiselect.d.ts +4 -6
  199. package/dist-elements/types/components/inputs/number-input/number-input.d.ts +8 -7
  200. package/dist-elements/types/components/inputs/radio-group/radio-group.d.ts +2 -4
  201. package/dist-elements/types/components/inputs/range/range.d.ts +5 -6
  202. package/dist-elements/types/components/inputs/segmented/segmented.d.ts +7 -4
  203. package/dist-elements/types/components/inputs/select/select.d.ts +6 -3
  204. package/dist-elements/types/components/inputs/slot-picker/slot-picker.d.ts +6 -5
  205. package/dist-elements/types/components/inputs/tag-input/tag-input.d.ts +7 -5
  206. package/dist-elements/types/components/inputs/text-editor/text-editor.d.ts +6 -6
  207. package/dist-elements/types/components/inputs/text-input/text-input.d.ts +11 -6
  208. package/dist-elements/types/components/inputs/textarea/textarea.d.ts +12 -11
  209. package/dist-elements/types/components/inputs/time-input/time-input.d.ts +7 -8
  210. package/dist-elements/types/components/inputs/toggle/toggle.d.ts +3 -1
  211. package/dist-elements/types/components/layout/expander/expander.d.ts +9 -10
  212. package/dist-elements/types/components/layout/split-pane/split-pane.d.ts +6 -6
  213. package/dist-elements/types/components/layout/tabs/tabs.d.ts +11 -9
  214. package/dist-elements/types/components/map/map/map.d.ts +10 -9
  215. package/dist-elements/types/components/overlays/dialog/dialog.d.ts +49 -0
  216. package/dist-elements/types/components/overlays/drawer/drawer.d.ts +6 -5
  217. package/dist-elements/types/components/overlays/modal/modal.d.ts +7 -12
  218. package/dist-elements/types/components/overlays/toggletip/toggletip.d.ts +3 -7
  219. package/dist-elements/types/components/shared/charts/index.d.ts +4 -1
  220. package/dist-elements/types/components/shared/charts/kinds.d.ts +86 -0
  221. package/dist-elements/types/components/shared/charts/line-chart/line-chart.d.ts +2 -2
  222. package/dist-elements/types/components/shared/charts/map-chart/leaflet.d.ts +5 -0
  223. package/dist-elements/types/components/shared/charts/shared/chart-states.d.ts +8 -19
  224. package/dist-elements/types/components/shared/charts/shared/controller.d.ts +7 -0
  225. package/dist-elements/types/components/shared/charts/shared/types.d.ts +29 -0
  226. package/dist-elements/types/components/shared/charts/stacked-area-chart/stacked-area-chart.d.ts +13 -0
  227. package/dist-elements/types/components/shared/dialog.d.ts +9 -0
  228. package/dist-elements/types/components/shared/overflow.d.ts +58 -0
  229. package/dist-elements/types/components/tables/activity-log/activity-log.d.ts +2 -3
  230. package/dist-elements/types/components/tables/card/card.d.ts +14 -20
  231. package/dist-elements/types/components/tables/card-list/card-list.d.ts +9 -11
  232. package/dist-elements/types/components/tables/data-table/data-table.d.ts +85 -16
  233. package/dist-elements/types/components/tables/data-table/filters.d.ts +13 -4
  234. package/dist-elements/types/components/tables/description-list/description-list.d.ts +12 -11
  235. package/dist-elements/types/components/tables/list/list.d.ts +9 -20
  236. package/dist-elements/types/components/tables/pagination/pagination.d.ts +12 -11
  237. package/dist-elements/types/components/tables/sortable-list/sortable-list.d.ts +5 -6
  238. package/dist-elements/types/components/tables/tree-view/tree-view.d.ts +4 -4
  239. package/dist-elements/types/core/media.d.ts +2 -2
  240. package/dist-elements/types/core/motion.d.ts +5 -0
  241. package/dist-elements/types/core/print.d.ts +15 -0
  242. package/dist-elements/types/core/shortcuts.d.ts +2 -2
  243. package/dist-elements/types/icons/icon/icon.d.ts +2 -3
  244. package/dist-elements/types/icons/register.d.ts +1 -1
  245. package/dist-elements/types/primitives/badge/badge.d.ts +9 -5
  246. package/dist-elements/types/primitives/button/button.d.ts +12 -9
  247. package/dist-elements/types/primitives/grid/grid.d.ts +3 -3
  248. package/dist-elements/types/primitives/grid-item/grid-item.d.ts +1 -1
  249. package/dist-elements/types/primitives/icon-button/icon-button.d.ts +7 -5
  250. package/dist-elements/types/primitives/index.d.ts +3 -1
  251. package/dist-elements/types/primitives/popover/popover.d.ts +5 -4
  252. package/dist-elements/types/primitives/progress-bar/progress-bar.d.ts +8 -6
  253. package/dist-elements/types/primitives/shared/announcement-block.d.ts +38 -0
  254. package/dist-elements/types/primitives/shared/empty-state-block.d.ts +26 -0
  255. package/dist-elements/types/primitives/shared/tone.d.ts +18 -0
  256. package/dist-elements/types/primitives/skeleton/skeleton.d.ts +1 -1
  257. package/dist-elements/types/primitives/spinner/spinner.d.ts +1 -2
  258. package/dist-elements/types/primitives/status-dot/status-dot.d.ts +4 -5
  259. package/dist-elements/types/primitives/tile/tile.d.ts +17 -5
  260. package/dist-elements/types/primitives/tooltip/tooltip.d.ts +6 -6
  261. package/dist-elements/types/types.d.ts +70 -10
  262. package/dist-icons/functioneel-kolommen.svg +1 -0
  263. package/dist-icons/functioneel-trechter.svg +1 -0
  264. package/package.json +1 -1
  265. package/dist-elements/chunks/confirm-dialog-D5EVGuil.js +0 -4
  266. package/dist-elements/chunks/download-y528pIHP.js +0 -230
  267. package/dist-elements/chunks/input-BtuNFSWk.js +0 -195
  268. package/dist-elements/tag/confirm-dialog.d.ts +0 -1
  269. package/dist-elements/tag/confirm-dialog.js +0 -118
  270. package/dist-elements/tag/session-expiry.d.ts +0 -1
  271. package/dist-elements/tag/session-expiry.js +0 -184
  272. package/dist-elements/tag/shortcuts.d.ts +0 -1
  273. package/dist-elements/tag/shortcuts.js +0 -104
  274. package/dist-elements/types/components/frame/session-expiry/session-expiry.d.ts +0 -55
  275. package/dist-elements/types/components/frame/shortcuts/shortcuts.d.ts +0 -41
  276. package/dist-elements/types/components/overlays/confirm-dialog/confirm-dialog.d.ts +0 -41
@@ -1,4 +1,4 @@
1
- import { $ as e, Bt as t, Gt as n, H as r, Ht as i, U as a, X as o, Y as s, Z as c, et as l, g as u, qt as d, ut as f, zt as p } from "../chunks/base-Bg-IFOPG.js";
1
+ import { Jt as e, Q as t, Yt as n, Z as r, Zt as i, at as a, bt as o, en as s, lt as c, nn as l, ot as u, st as d, ut as f, y as p } from "../chunks/base-CbmWxUig.js";
2
2
  import "./menu-button.js";
3
3
  import "./highlight.js";
4
4
  import "./textarea.js";
@@ -51,7 +51,7 @@ function S(e, t) {
51
51
  }
52
52
  ];
53
53
  }
54
- var C = class extends p {
54
+ var C = class extends e {
55
55
  constructor(...e) {
56
56
  super(...e), this.segments = [], this.readonly = !1, this.size = "regular", this.layout = "rows", this.tinted = !1, this.grouped = !1, this.errors = {}, this.searchMatches = {}, this.hasNote = !1, this.lastUserScroll = -Infinity, this.followed = null, this.savedFrom = null, this.onNoteChange = (e) => {
57
57
  this.hasNote = e.target.assignedNodes({ flatten: !0 }).length > 0;
@@ -63,8 +63,8 @@ var C = class extends p {
63
63
  }
64
64
  static {
65
65
  this.styles = [
66
- e,
67
- s,
66
+ c,
67
+ a,
68
68
  i(_)
69
69
  ];
70
70
  }
@@ -158,20 +158,20 @@ var C = class extends p {
158
158
  willUpdate(e) {
159
159
  if (super.willUpdate(e), e.has("busyId") && this.busyId) {
160
160
  let e = this.segmentElement(this.busyId)?.querySelector("lintje-textarea");
161
- this.savedFrom = e && a(e) ? this.busyId : null;
161
+ this.savedFrom = e && t(e) ? this.busyId : null;
162
162
  }
163
163
  }
164
164
  keepSaveFocus() {
165
165
  let e = this.savedFrom;
166
166
  if (!e) return;
167
- let t = this.segmentElement(e)?.querySelector(".lintje-transcript__editor");
167
+ let n = this.segmentElement(e)?.querySelector(".lintje-transcript__editor");
168
168
  if (this.busyId === e) {
169
- t?.querySelector("lintje-button")?.shadowRoot?.querySelector("button")?.focus();
169
+ n?.querySelector("lintje-button")?.shadowRoot?.querySelector("button")?.focus();
170
170
  return;
171
171
  }
172
- if (this.savedFrom = null, this.editingId !== e || !t) return;
173
- let n = r();
174
- (!n || n === document.body || a(t)) && this.focusInside(t.querySelector("lintje-textarea"), "textarea");
172
+ if (this.savedFrom = null, this.editingId !== e || !n) return;
173
+ let i = r();
174
+ (!i || i === document.body || t(n)) && this.focusInside(n.querySelector("lintje-textarea"), "textarea");
175
175
  }
176
176
  updated(e) {
177
177
  if (super.updated(e), e.has("busyId") && this.keepSaveFocus(), e.has("editingId")) {
@@ -180,7 +180,7 @@ var C = class extends p {
180
180
  }
181
181
  (e.has("currentTime") || e.has("segments")) && this.follow(), e.has("currentMatch") && this.currentMatch && this.renderRoot.querySelector("lintje-highlight[kind=\"match\"][current]")?.scrollIntoView?.({
182
182
  block: "nearest",
183
- behavior: u() ? "auto" : "smooth"
183
+ behavior: p() ? "auto" : "smooth"
184
184
  });
185
185
  }
186
186
  reveal() {
@@ -188,31 +188,31 @@ var C = class extends p {
188
188
  let e = this.segments[this.currentIndex];
189
189
  e && (this.followed = e.id, this.updateComplete.then(() => this.segmentElement(e.id)?.scrollIntoView?.({
190
190
  block: "center",
191
- behavior: u() ? "auto" : "smooth"
191
+ behavior: p() ? "auto" : "smooth"
192
192
  })));
193
193
  }
194
194
  follow() {
195
195
  let e = this.segments[this.currentIndex];
196
196
  e && e.id !== this.followed && !this.editingId && x(Date.now(), this.lastUserScroll) && (this.followed = e.id, this.segmentElement(e.id)?.scrollIntoView?.({
197
197
  block: "nearest",
198
- behavior: u() ? "auto" : "smooth"
198
+ behavior: p() ? "auto" : "smooth"
199
199
  }));
200
200
  }
201
201
  renderText(e) {
202
- let t = this.currentMatch?.id === e.id ? this.currentMatch.index : -1, r = b(e.text, e.uncertain, this.searchMatches?.[e.id]);
203
- return d`<p class="lintje-transcript__text">
204
- ${r.map((e) => {
205
- let n = e.uncertain ? d`<lintje-highlight kind="uncertain">${e.text}</lintje-highlight>` : e.text;
206
- return e.match === -1 ? n : d`<lintje-highlight kind="match" ?current=${e.match === t}
202
+ let t = this.currentMatch?.id === e.id ? this.currentMatch.index : -1, n = b(e.text, e.uncertain, this.searchMatches?.[e.id]);
203
+ return l`<p class="lintje-transcript__text">
204
+ ${n.map((e) => {
205
+ let n = e.uncertain ? l`<lintje-highlight kind="uncertain">${e.text}</lintje-highlight>` : e.text;
206
+ return e.match === -1 ? n : l`<lintje-highlight kind="match" ?current=${e.match === t}
207
207
  >${n}</lintje-highlight
208
208
  >`;
209
- })}${e.pending ? d` <span class="lintje-transcript__pending">${e.pending}</span
210
- ><span class="lintje-transcript__caret" aria-hidden="true"></span>` : n}
209
+ })}${e.pending ? l` <span class="lintje-transcript__pending">${e.pending}</span
210
+ ><span class="lintje-transcript__caret" aria-hidden="true"></span>` : s}
211
211
  </p>`;
212
212
  }
213
213
  renderEditor(e) {
214
214
  let t = this.busyId === e.id;
215
- return d`<div
215
+ return l`<div
216
216
  class="lintje-transcript__editor"
217
217
  @keydown=${(t) => this.onEditorKeydown(e, t)}
218
218
  >
@@ -223,7 +223,7 @@ var C = class extends p {
223
223
  hint="Ctrl+Enter bewaart, Esc annuleert"
224
224
  .value=${e.text}
225
225
  ?disabled=${t}
226
- error=${this.errors?.[e.id] || n}
226
+ error=${this.errors?.[e.id] || s}
227
227
  ></lintje-textarea>
228
228
  <div class="lintje-transcript__actions">
229
229
  <lintje-button
@@ -244,7 +244,7 @@ var C = class extends p {
244
244
  </div>`;
245
245
  }
246
246
  renderSpeaker(e, t) {
247
- return this.readonly ? d`<span class="lintje-transcript__speaker is-static">${e.speaker}</span>` : d`<lintje-menu-button
247
+ return this.readonly ? l`<span class="lintje-transcript__speaker is-static">${e.speaker}</span>` : l`<lintje-menu-button
248
248
  class="lintje-transcript__speaker"
249
249
  variant="flat"
250
250
  label=${e.speaker}
@@ -254,26 +254,26 @@ var C = class extends p {
254
254
  ></lintje-menu-button>`;
255
255
  }
256
256
  renderTime(e, t) {
257
- let r = m(e.start);
258
- return this.readonly ? d`<span class="lintje-transcript__time is-static">${r}</span>` : d`<button
257
+ let n = m(e.start);
258
+ return this.readonly ? l`<span class="lintje-transcript__time is-static">${n}</span>` : l`<button
259
259
  type="button"
260
260
  class="lintje-transcript__time"
261
- aria-label=${`Speel af vanaf ${r}`}
261
+ aria-label=${`Speel af vanaf ${n}`}
262
262
  @click=${() => this.seek(e)}
263
263
  >
264
- ${t ? l("multimedia-player-afspelen", {
264
+ ${t ? f("multimedia-player-afspelen", {
265
265
  size: 12,
266
266
  className: "lintje-transcript__playing"
267
- }) : n}${r}
267
+ }) : s}${n}
268
268
  </button>`;
269
269
  }
270
270
  render() {
271
271
  let e = this.currentIndex, t = this.speakers?.length ? this.speakers.map((e) => ({
272
272
  start: 0,
273
273
  speaker: e
274
- })) : null, r = h(t ?? this.segments), i = [...r.keys()];
275
- return d`<div class="lintje-transcript">
276
- <div class=${c({
274
+ })) : null, n = h(t ?? this.segments), r = [...n.keys()];
275
+ return l`<div class="lintje-transcript">
276
+ <div class=${d({
277
277
  "lintje-transcript__note": !0,
278
278
  "has-note": this.hasNote
279
279
  })}>
@@ -289,39 +289,39 @@ var C = class extends p {
289
289
  @touchmove=${this.onUserScroll}
290
290
  @keydown=${this.onListKeydown}
291
291
  >
292
- ${this.segments.map((t, a) => {
293
- let s = a === e, l = this.editingId === t.id, u = this.segments[a - 1]?.speaker === t.speaker, p = r.get(t.speaker);
294
- return d`<li
295
- class=${c({
292
+ ${this.segments.map((t, i) => {
293
+ let a = i === e, c = this.editingId === t.id, f = this.segments[i - 1]?.speaker === t.speaker, p = n.get(t.speaker);
294
+ return l`<li
295
+ class=${d({
296
296
  "lintje-transcript__segment": !0,
297
- "is-current": s,
298
- "is-editing": l,
299
- "is-repeat": u
297
+ "is-current": a,
298
+ "is-editing": c,
299
+ "is-repeat": f
300
300
  })}
301
301
  data-id=${t.id}
302
- aria-current=${s ? "true" : n}
303
- ${f({ "--lintje-speaker": p ? `var(--color-chart-${p})` : null })}
302
+ aria-current=${a ? "true" : s}
303
+ ${o({ "--lintje-speaker": p ? `var(--color-chart-${p})` : null })}
304
304
  >
305
305
  <div class="lintje-transcript__who">
306
- ${this.renderSpeaker(t, i)}
307
- ${t.id === this.speakingId ? d`<span class="lintje-transcript__now">spreekt nu</span>` : n}
306
+ ${this.renderSpeaker(t, r)}
307
+ ${t.id === this.speakingId ? l`<span class="lintje-transcript__now">spreekt nu</span>` : s}
308
308
  </div>
309
309
  <div class="lintje-transcript__when">
310
- ${this.renderTime(t, s)}
311
- ${(t.tags ?? []).map((e) => o({
310
+ ${this.renderTime(t, a)}
311
+ ${(t.tags ?? []).map((e) => u({
312
312
  value: e.label,
313
313
  tone: e.tone ?? "neutral"
314
314
  }))}
315
315
  </div>
316
316
  <div
317
317
  class="lintje-transcript__body"
318
- @dblclick=${this.readonly || l ? n : (e) => {
318
+ @dblclick=${this.readonly || c ? s : (e) => {
319
319
  e.preventDefault(), getSelection()?.removeAllRanges(), this.edit(t);
320
320
  }}
321
321
  >
322
- ${l ? this.renderEditor(t) : this.renderText(t)}
322
+ ${c ? this.renderEditor(t) : this.renderText(t)}
323
323
  </div>
324
- ${this.readonly || l ? n : d`<lintje-icon-button
324
+ ${this.readonly || c ? s : l`<lintje-icon-button
325
325
  class="lintje-transcript__edit"
326
326
  icon="functioneel-bewerken"
327
327
  label=${`Fragment van ${m(t.start)} bewerken`}
@@ -334,6 +334,6 @@ var C = class extends p {
334
334
  </div>`;
335
335
  }
336
336
  };
337
- t("lintje-transcript", C);
337
+ n("lintje-transcript", C);
338
338
  //#endregion
339
339
  export { v as FOLLOW_PAUSE, C as LintjeTranscript, b as markedParts, x as shouldFollow, S as speakerMenu };
@@ -1,7 +1,7 @@
1
- import { Bt as e, Gt as t, Ht as n, It as r, Lt as i, qt as a, zt as o } from "../chunks/base-Bg-IFOPG.js";
1
+ import { Gt as e, Jt as t, Kt as n, Yt as r, Zt as i, en as a, nn as o } from "../chunks/base-CbmWxUig.js";
2
2
  import "./textarea.js";
3
3
  //#region src/components/content/translator/translator.css?inline
4
- var s = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n/* The halves stretch to one height: the taller text sets both. The plain field has no edge of\n its own, so the surface's is the field's (3:1). */\n.lintje-translator {\n display: flex;\n border: 1px solid var(--color-border-field);\n background: var(--color-bg-surface);\n}\n.lintje-translator__half {\n flex: 1 1 0;\n min-width: 0;\n display: flex;\n flex-direction: column;\n font: var(--text-translation);\n color: var(--color-text-primary);\n}\n/* Inset, not subtle: the fields and buttons on it are the surface, so in dark it steps down. */\n.lintje-translator__half--target {\n position: relative;\n background: var(--color-bg-inset);\n border-left: 1px solid var(--color-border-default);\n}\n\n.lintje-translator__bar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--space-2);\n min-height: calc(var(--h-control) + 2 * var(--space-4));\n box-sizing: border-box;\n padding: var(--space-4);\n border-bottom: 1px solid var(--color-border-default);\n font: var(--text-ui);\n}\n/* A language choice keeps a readable width; on a phone it takes the row. What else stands in the\n bar keeps its own width. */\n.lintje-translator__bar ::slotted(lintje-combobox) { flex: 0 1 var(--w-translator-language); min-width: 0; }\n/* The languages flank the swap, which stands half in each bar: the source at the line, the\n target after it, so the pair reads as one \"from ⇄ to\". */\n.lintje-translator__bar--source { justify-content: flex-end; padding-right: var(--space-10); }\n.lintje-translator__half--target .lintje-translator__bar { padding-left: var(--space-10); }\n\n.lintje-translator__body {\n position: relative;\n flex: 1 1 auto;\n display: flex;\n flex-direction: column;\n padding: var(--space-4);\n}\n.lintje-translator__body--source { padding-right: calc(var(--space-4) + var(--h-icon-button)); }\n/* The source body is the field: the text fills it, and the ring goes round it, inside the edge. */\n.lintje-translator__text { flex: 1; }\n.lintje-translator__body--source:has(.lintje-translator__text:focus-within) {\n outline: var(--focus-width) solid var(--color-focus);\n outline-offset: calc(var(--focus-width) * -1);\n}\n.lintje-translator__clear { position: absolute; top: var(--space-2); right: var(--space-2); }\n\n.lintje-translator__foot {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--space-1) var(--space-2);\n min-height: var(--h-touch);\n /* As far from the sides and the bottom as the language choices stand from the top. */\n padding: var(--space-1) var(--space-4) var(--space-4);\n font: var(--text-ui);\n}\n.lintje-translator__actions { display: flex; align-items: center; gap: var(--space-1); margin-left: auto; }\n/* The AI label belongs to the text it marks: right under it, so the foot holds only actions and\n stands level with the source's at every width. A hidden label leaves no gap. */\n.lintje-translator__body ::slotted([slot='target-note']) { align-self: flex-start; margin-top: var(--space-4); }\n/* The counter stands on the source's foot line, right, level with its tools; the text keeps\n the body. */\n.lintje-translator__text::part(counter) {\n position: absolute;\n top: calc(100% + var(--space-1) + var(--h-icon-button) / 2);\n right: var(--space-4);\n transform: translateY(-50%);\n}\n\n/* Documents: the languages in one row, the content under them at full width. */\n.lintje-translator--documents { flex-direction: column; }\n.lintje-translator__bars { display: flex; }\n.lintje-translator__content {\n display: flex;\n flex-direction: column;\n gap: var(--space-6);\n padding: var(--space-6);\n font: var(--text-ui);\n}\n\n/* On the line between the halves, level with the language choices. */\n.lintje-translator__swap {\n position: absolute;\n z-index: 1;\n top: calc(var(--space-4) + (var(--h-control) - var(--h-icon-button)) / 2);\n left: 0;\n transform: translateX(-50%);\n}\n\n@media (max-width: 767px) {\n .lintje-translator, .lintje-translator__bars { flex-direction: column; }\n .lintje-translator__content { padding: var(--space-4); }\n .lintje-translator__half--target { border-left: 0; border-top: 1px solid var(--color-border-default); }\n .lintje-translator__bar ::slotted(lintje-combobox) { flex: 1 1 100%; }\n .lintje-translator__bar--source { padding-right: var(--space-4); }\n .lintje-translator__swap { top: 0; left: 50%; transform: translate(-50%, -50%); }\n .lintje-translator__half--target .lintje-translator__bar {\n padding-top: calc(var(--space-2) + var(--h-icon-button) / 2);\n padding-left: var(--space-4);\n }\n}\n";
4
+ var s = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n/* The halves stretch to one height: the taller text sets both. The plain field has no edge of\n its own, so the surface's is the field's (3:1). */\n.lintje-translator {\n display: flex;\n border: 1px solid var(--color-border-field);\n background: var(--color-bg-surface);\n}\n.lintje-translator__half {\n flex: 1 1 0;\n min-width: 0;\n display: flex;\n flex-direction: column;\n font: var(--text-translation);\n color: var(--color-text-primary);\n}\n/* Inset, not subtle: the fields and buttons on it are the surface, so in dark it steps down. */\n.lintje-translator__half--target {\n position: relative;\n background: var(--color-bg-inset);\n border-left: 1px solid var(--color-border-default);\n}\n\n.lintje-translator__bar {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--space-2);\n min-height: calc(var(--h-control) + 2 * var(--space-4));\n box-sizing: border-box;\n padding: var(--space-4);\n border-bottom: 1px solid var(--color-border-default);\n font: var(--text-ui);\n}\n/* A language choice keeps a readable width; on a phone it takes the row. What else stands in the\n bar keeps its own width. */\n.lintje-translator__bar ::slotted(lintje-combobox) { flex: 0 1 var(--w-translator-language); min-width: 0; }\n/* The languages flank the swap, which stands half in each bar: the source at the line, the\n target after it, so the pair reads as one \"from ⇄ to\". */\n.lintje-translator__bar--source { justify-content: flex-end; padding-right: var(--space-10); }\n.lintje-translator__half--target .lintje-translator__bar { padding-left: var(--space-10); }\n\n.lintje-translator__body {\n position: relative;\n flex: 1 1 auto;\n display: flex;\n flex-direction: column;\n padding: var(--space-4);\n}\n.lintje-translator__body--source { padding-right: calc(var(--space-4) + var(--h-icon-button)); }\n/* The source body is the field: the text fills it, and the ring goes round it, inside the edge. */\n.lintje-translator__text { flex: 1; }\n.lintje-translator__body--source:has(.lintje-translator__text:focus-within) {\n outline: var(--focus-width) solid var(--color-focus);\n outline-offset: calc(var(--focus-width) * -1);\n}\n.lintje-translator__clear { position: absolute; top: var(--space-2); right: var(--space-2); }\n\n.lintje-translator__foot {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--space-1) var(--space-2);\n min-height: var(--h-touch);\n /* As far from the sides and the bottom as the language choices stand from the top. */\n padding: var(--space-1) var(--space-4) var(--space-4);\n font: var(--text-ui);\n}\n.lintje-translator__actions { display: flex; align-items: center; gap: var(--space-1); margin-left: auto; }\n/* The AI label belongs to the text it marks: right under it, so the foot holds only actions and\n stands level with the source's at every width. A hidden label leaves no gap. */\n.lintje-translator__body ::slotted([slot='target-note']) { align-self: flex-start; margin-top: var(--space-4); }\n/* The counter stands on the source's foot line, right, level with its tools; the text keeps\n the body. */\n.lintje-translator__text::part(counter) {\n position: absolute;\n top: calc(100% + var(--space-1) + var(--h-icon-button) / 2);\n right: var(--space-4);\n transform: translateY(-50%);\n}\n\n/* Documents: the languages in one row, the content under them at full width. */\n.lintje-translator--documents { flex-direction: column; }\n.lintje-translator__bars { display: flex; }\n.lintje-translator__content {\n display: flex;\n flex-direction: column;\n gap: var(--space-6);\n padding: var(--space-6);\n font: var(--text-ui);\n}\n\n/* On the line between the halves, level with the language choices. */\n.lintje-translator__swap {\n position: absolute;\n z-index: 1;\n top: calc(var(--space-4) + (var(--h-control) - var(--h-icon-button)) / 2);\n left: 0;\n transform: translateX(-50%);\n}\n\n@media screen and (max-width: 767px) {\n .lintje-translator, .lintje-translator__bars { flex-direction: column; }\n .lintje-translator__content { padding: var(--space-4); }\n .lintje-translator__half--target { border-left: 0; border-top: 1px solid var(--color-border-default); }\n .lintje-translator__bar ::slotted(lintje-combobox) { flex: 1 1 100%; }\n .lintje-translator__bar--source { padding-right: var(--space-4); }\n .lintje-translator__swap { top: 0; left: 50%; transform: translate(-50%, -50%); }\n .lintje-translator__half--target .lintje-translator__bar {\n padding-top: calc(var(--space-2) + var(--h-icon-button) / 2);\n padding-left: var(--space-4);\n }\n}\n";
5
5
  //#endregion
6
6
  //#region src/components/content/translator/translator.ts
7
7
  function c(e) {
@@ -10,12 +10,12 @@ function c(e) {
10
10
  let { options: n, value: r } = t ?? {};
11
11
  return Array.isArray(n) && n.find((e) => e.value === r)?.label || "";
12
12
  }
13
- var l = class extends o {
14
- constructor(...e) {
15
- super(...e), this.value = "", this.placeholder = "Typ of plak hier je tekst", this.sourceLabel = "Tekst om te vertalen", this.targetLabel = "Vertaling", this.variant = "text", this.spoken = "", this.spokenTimer = 0, this.#e = new i(this, r);
13
+ var l = class extends t {
14
+ constructor(...t) {
15
+ super(...t), this.value = "", this.placeholder = "Typ of plak hier je tekst", this.sourceLabel = "Tekst om te vertalen", this.targetLabel = "Vertaling", this.variant = "text", this.spoken = "", this.spokenTimer = 0, this.#e = new n(this, e);
16
16
  }
17
17
  static {
18
- this.styles = n(s);
18
+ this.styles = i(s);
19
19
  }
20
20
  static {
21
21
  this.properties = {
@@ -57,10 +57,10 @@ var l = class extends o {
57
57
  }, 100);
58
58
  }
59
59
  renderStatus() {
60
- return a`<span class="visually-hidden" role="status">${this.spoken}</span>`;
60
+ return o`<span class="visually-hidden" role="status">${this.spoken}</span>`;
61
61
  }
62
62
  renderSwap() {
63
- return a`<div class="lintje-translator__swap">
63
+ return o`<div class="lintje-translator__swap">
64
64
  <lintje-icon-button
65
65
  icon="functioneel-wissel-horizontaal"
66
66
  label="Talen omwisselen"
@@ -70,7 +70,7 @@ var l = class extends o {
70
70
  </div>`;
71
71
  }
72
72
  renderDocuments() {
73
- return a`<div class="lintje-translator lintje-translator--documents">
73
+ return o`<div class="lintje-translator lintje-translator--documents">
74
74
  <div class="lintje-translator__bars">
75
75
  <div class="lintje-translator__half">
76
76
  <div class="lintje-translator__bar lintje-translator__bar--source"><slot name="source-language"></slot></div>
@@ -84,7 +84,7 @@ var l = class extends o {
84
84
  </div>${this.renderStatus()}`;
85
85
  }
86
86
  render() {
87
- return this.variant === "documents" ? this.renderDocuments() : a`<div class="lintje-translator">
87
+ return this.variant === "documents" ? this.renderDocuments() : o`<div class="lintje-translator">
88
88
  <div class="lintje-translator__half" role="group" aria-label=${this.sourceLabel}>
89
89
  <div class="lintje-translator__bar lintje-translator__bar--source"><slot name="source-language"></slot></div>
90
90
  <div class="lintje-translator__body lintje-translator__body--source">
@@ -100,13 +100,13 @@ var l = class extends o {
100
100
  .placeholder=${this.placeholder}
101
101
  @lintje-change=${this.onText}
102
102
  ></lintje-textarea>
103
- ${this.value ? a`<lintje-icon-button
103
+ ${this.value ? o`<lintje-icon-button
104
104
  class="lintje-translator__clear"
105
105
  icon="functioneel-kruis"
106
106
  label="Tekst wissen"
107
107
  variant="flat"
108
108
  @click=${this.clear}
109
- ></lintje-icon-button>` : t}
109
+ ></lintje-icon-button>` : a}
110
110
  </div>
111
111
  <div class="lintje-translator__foot">
112
112
  <slot name="source-actions"></slot>
@@ -126,6 +126,6 @@ var l = class extends o {
126
126
  </div>${this.renderStatus()}`;
127
127
  }
128
128
  };
129
- e("lintje-translator", l);
129
+ r("lintje-translator", l);
130
130
  //#endregion
131
131
  export { l as LintjeTranslator };
@@ -1,4 +1,4 @@
1
- import { $ as e, Bt as t, Gt as n, Ht as r, Z as i, et as a, qt as o, ut as s, zt as c } from "../chunks/base-Bg-IFOPG.js";
1
+ import { Jt as e, Yt as t, Zt as n, bt as r, en as i, lt as a, nn as o, st as s, ut as c } from "../chunks/base-CbmWxUig.js";
2
2
  //#region src/components/tables/tree-view/tree-view.css?inline
3
3
  var l = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-tree,\n.lintje-tree__group { list-style: none; margin: 0; padding: 0; }\n.lintje-tree { font: var(--text-ui); color: var(--color-text-primary); }\n\n/* The treeitem holds its row and its children, so the ring is drawn inside the row alone. */\n.lintje-tree__item:focus-visible { outline: none; }\n.lintje-tree__item:focus-visible > .lintje-tree__row {\n outline: var(--focus-width) solid var(--color-focus);\n outline-offset: calc(var(--focus-width) * -1);\n}\n\n.lintje-tree__row {\n display: flex; align-items: center;\n gap: var(--space-1);\n height: var(--h-option);\n padding: 0 var(--space-2) 0 calc(var(--space-2) + var(--lintje-tree-depth, 0) * var(--space-5));\n cursor: pointer;\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-tree__row:hover { background: var(--color-bg-subtle); }\n.lintje-tree__row.is-selected {\n background: var(--color-bg-selected);\n box-shadow: inset 4px 0 0 var(--color-accent-line);\n font-weight: 700;\n}\n\n.lintje-tree__arrow {\n flex: none;\n display: inline-flex; align-items: center; justify-content: center;\n width: 16px; height: 16px;\n color: var(--color-text-muted);\n}\n/* The fold target reaches 24 × 24 px with a transparent hit area; it stays inside the gap. */\n.lintje-tree__arrow--toggle { position: relative; }\n.lintje-tree__arrow--toggle::after {\n content: '';\n position: absolute;\n inset: calc(var(--space-1) * -1);\n}\n.lintje-tree__label {\n min-width: 0;\n overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\n}\n.lintje-tree__count { flex: none; font-weight: 400; color: var(--color-text-muted); }\n\n@media (prefers-reduced-motion: reduce) {\n .lintje-tree__row { transition: none; }\n}\n\n/* Forced colours: the fill and inset bar are dropped. The bar becomes a real border (Canvas at\n rest, Highlight when selected), so selecting moves nothing. */\n@media (forced-colors: active) {\n .lintje-tree__row { border-left: 4px solid Canvas; }\n .lintje-tree__row.is-selected { border-left-color: Highlight; }\n}\n";
4
4
  //#endregion
@@ -23,12 +23,12 @@ function f(e, t, n) {
23
23
  }
24
24
  return -1;
25
25
  }
26
- var p = class extends c {
26
+ var p = class extends e {
27
27
  constructor(...e) {
28
28
  super(...e), this.nodes = [], this.expanded = [], this.name = "", this.open = /* @__PURE__ */ new Set(), this.focusId = null;
29
29
  }
30
30
  static {
31
- this.styles = [e, r(l)];
31
+ this.styles = [a, n(l)];
32
32
  }
33
33
  static {
34
34
  this.properties = {
@@ -118,41 +118,41 @@ var p = class extends c {
118
118
  @click=${(n) => {
119
119
  n.stopPropagation(), this.toggle(e, !t);
120
120
  }}
121
- >${a(t ? "functioneel-delta-omlaag" : "functioneel-delta-rechts", { size: 16 })}</span
121
+ >${c(t ? "functioneel-delta-omlaag" : "functioneel-delta-rechts", { size: 16 })}</span
122
122
  >`;
123
123
  }
124
- item(e, t, r) {
124
+ item(e, t, n) {
125
125
  let a = u(e), c = a && this.open.has(e.id), l = e.id === this.selectedId, d = e.count ?? e.children?.length;
126
126
  return o`<li
127
127
  class="lintje-tree__item"
128
128
  role="treeitem"
129
129
  data-id=${e.id}
130
- tabindex=${e.id === r ? "0" : "-1"}
130
+ tabindex=${e.id === n ? "0" : "-1"}
131
131
  aria-level=${t}
132
132
  aria-selected=${l ? "true" : "false"}
133
- aria-expanded=${a ? String(c) : n}
134
- aria-busy=${e.loading ? "true" : n}
133
+ aria-expanded=${a ? String(c) : i}
134
+ aria-busy=${e.loading ? "true" : i}
135
135
  @focus=${(t) => {
136
136
  t.target === t.currentTarget && (this.focusId = e.id);
137
137
  }}
138
138
  >
139
139
  <div
140
- class=${i({
140
+ class=${s({
141
141
  "lintje-tree__row": !0,
142
142
  "is-selected": l
143
143
  })}
144
- ${s({ "--lintje-tree-depth": t - 1 })}
144
+ ${r({ "--lintje-tree-depth": t - 1 })}
145
145
  @click=${() => {
146
146
  this.choose(e), this.moveFocus(e.id);
147
147
  }}
148
148
  >
149
149
  ${this.arrow(e)}
150
150
  <span class="lintje-tree__label">${e.label}</span>
151
- ${a && !c && d ? o`<span class="lintje-tree__count">· ${d}</span>` : n}
151
+ ${a && !c && d ? o`<span class="lintje-tree__count">· ${d}</span>` : i}
152
152
  </div>
153
153
  ${c && e.children?.length ? o`<ul class="lintje-tree__group" role="group">
154
- ${e.children.map((e) => this.item(e, t + 1, r))}
155
- </ul>` : n}
154
+ ${e.children.map((e) => this.item(e, t + 1, n))}
155
+ </ul>` : i}
156
156
  </li>`;
157
157
  }
158
158
  render() {
@@ -1,13 +1,13 @@
1
- import { $ as e, Bt as t, G as n, Gt as r, Ht as i, I as a, Z as o, et as s, qt as c, zt as l } from "../chunks/base-Bg-IFOPG.js";
1
+ import { H as e, Jt as t, Yt as n, Zt as r, en as i, et as a, lt as o, nn as s, st as c, ut as l } from "../chunks/base-CbmWxUig.js";
2
2
  import { n as u, nextRow as d, renderMenuEntries as f, t as p } from "./menu-button.js";
3
3
  //#region src/components/frame/user-menu/user-menu.css?inline
4
- var m = "/*\n * The host is the avatar button's `--h-touch` box in the navigation bar; the menu is a fixed popover\n * and takes no space. `inline`, it is a block at the bottom of the mobile navigation.\n * `menu-button.css` is adopted beside this file: the rows are its `.lintje-menu__row`.\n */\n:host { display: inline-flex; flex: none; vertical-align: middle; }\n:host([inline]) { display: block; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n/* The avatar and the chevron that says it opens a menu; at least `--h-touch` high. */\n.lintje-user-menu__trigger {\n display: flex; align-items: center; justify-content: center;\n gap: var(--space-2);\n min-width: var(--h-touch); height: var(--lintje-tool-height, var(--h-touch));\n padding: 0 var(--space-3);\n color: var(--color-nav-text);\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-user-menu__trigger:hover,\n.lintje-user-menu__trigger.is-open { background: var(--color-nav-hover); }\n\n.lintje-user-menu__avatar {\n display: flex; align-items: center; justify-content: center;\n flex: none;\n width: 2rem; height: 2rem;\n border-radius: var(--radius-round);\n background: var(--color-nav-avatar-bg);\n color: var(--color-nav-avatar-text);\n font-size: 0.875rem; font-weight: 700;\n}\n\n.lintje-user-menu__panel {\n width: 17.5rem;\n max-width: 100%;\n font: var(--text-ui);\n color: var(--color-text-primary);\n}\n\n.lintje-user-menu__who {\n display: flex; align-items: center; gap: var(--space-3);\n padding: var(--space-3) var(--space-4);\n border-bottom: 1px solid var(--color-border-default);\n}\n.lintje-user-menu__names { min-width: 0; }\n.lintje-user-menu__name { margin: 0; font-weight: 700; overflow-wrap: anywhere; }\n.lintje-user-menu__role { margin: 0; font-size: 0.875rem; color: var(--color-text-muted); }\n\n.lintje-user-menu__group { display: flex; flex-direction: column; padding: var(--space-1) 0; }\n.lintje-user-menu__group--logout { border-top: 1px solid var(--color-border-default); }\n.lintje-user-menu__group:first-child.lintje-user-menu__group--logout { border-top: 0; }\n.lintje-user-menu__logout { display: flex; flex-direction: column; margin: 0; }\n.lintje-user-menu__logout-row { font-weight: 700; }\n\n.lintje-user-menu__version {\n margin: 0;\n padding: var(--space-2) var(--space-4);\n border-top: 1px solid var(--color-border-default);\n font-size: 0.875rem;\n color: var(--color-text-muted);\n}\n\n.lintje-user-menu__panel.is-inline { width: 100%; color: var(--color-nav-text); }\n.lintje-user-menu__panel.is-inline .lintje-user-menu__who,\n.lintje-user-menu__panel.is-inline .lintje-user-menu__group--logout,\n.lintje-user-menu__panel.is-inline .lintje-user-menu__version { border-color: var(--color-nav-line); }\n.lintje-user-menu__panel.is-inline .lintje-user-menu__who { padding: var(--space-4) var(--space-5); }\n/* Small text on the theme fill takes the menu's own ink: the sub tint is 3.82:1 on #01689B. */\n.lintje-user-menu__panel.is-inline .lintje-user-menu__role,\n.lintje-user-menu__panel.is-inline .lintje-user-menu__version,\n.lintje-user-menu__panel.is-inline .lintje-menu__hint { color: var(--color-nav-text); }\n.lintje-user-menu__panel.is-inline .lintje-user-menu__version { padding: var(--space-2) var(--space-5); }\n.lintje-user-menu__panel.is-inline .lintje-menu__row {\n height: var(--h-touch);\n padding: 0 var(--space-5);\n color: var(--color-nav-text);\n}\n.lintje-user-menu__panel.is-inline .lintje-menu__row:hover { background: var(--color-nav-hover); }\n.lintje-user-menu__panel.is-inline .lintje-menu__row.is-disabled,\n.lintje-user-menu__panel.is-inline .lintje-menu__row.is-disabled .lintje-menu__hint { color: var(--color-nav-disabled); }\n.lintje-user-menu__panel.is-inline .lintje-menu__separator { background: var(--color-nav-line); }\n\n/* On the theme fill the orange ring disappears: the on-theme ring, as the side menu. */\n.lintje-user-menu__trigger:focus-visible,\n.lintje-user-menu__panel.is-inline :focus-visible { outline-color: var(--color-focus-on-theme); }\n\n/* Forced colours: the open button keeps a Highlight edge, the avatar a CanvasText ring. */\n@media (forced-colors: active) {\n .lintje-user-menu__trigger:focus-visible,\n .lintje-user-menu__panel.is-inline :focus-visible { outline-color: Highlight; }\n .lintje-user-menu__trigger.is-open:not(:focus-visible) { outline: 1px solid Highlight; outline-offset: -1px; }\n .lintje-user-menu__avatar { border: 1px solid CanvasText; }\n}\n", h = 0, g = class extends l {
4
+ var m = "/*\n * The host is the avatar button's `--h-touch` box in the navigation bar; the menu is a fixed popover\n * and takes no space. `inline`, it is a block at the bottom of the mobile navigation.\n * `menu-button.css` is adopted beside this file: the rows are its `.lintje-menu__row`.\n */\n:host { display: inline-flex; flex: none; vertical-align: middle; }\n:host([inline]) { display: block; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n/* The avatar and the chevron that says it opens a menu; at least `--h-touch` high. */\n.lintje-user-menu__trigger {\n display: flex; align-items: center; justify-content: center;\n gap: var(--space-2);\n min-width: var(--h-touch); height: var(--lintje-tool-height, var(--h-touch));\n padding: 0 var(--space-3);\n color: var(--color-nav-text);\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-user-menu__trigger:hover,\n.lintje-user-menu__trigger.is-open { background: var(--color-nav-hover); }\n\n.lintje-user-menu__avatar {\n display: flex; align-items: center; justify-content: center;\n flex: none;\n width: 2rem; height: 2rem;\n border-radius: var(--radius-round);\n background: var(--color-nav-avatar-bg);\n color: var(--color-nav-avatar-text);\n font-size: 0.875rem; font-weight: 700;\n}\n\n.lintje-user-menu__panel {\n width: 17.5rem;\n max-width: 100%;\n font: var(--text-ui);\n color: var(--color-text-primary);\n}\n\n.lintje-user-menu__who {\n display: flex; align-items: center; gap: var(--space-3);\n padding: var(--space-3) var(--space-4);\n border-bottom: 1px solid var(--color-border-default);\n}\n.lintje-user-menu__names { min-width: 0; }\n.lintje-user-menu__name { margin: 0; font-weight: 700; overflow-wrap: anywhere; }\n.lintje-user-menu__role { margin: 0; font-size: 0.875rem; color: var(--color-text-muted); }\n\n.lintje-user-menu__group { display: flex; flex-direction: column; padding: var(--space-1) 0; }\n.lintje-user-menu__group--logout { border-top: 1px solid var(--color-border-default); }\n.lintje-user-menu__group:first-child.lintje-user-menu__group--logout { border-top: 0; }\n.lintje-user-menu__logout { display: flex; flex-direction: column; margin: 0; }\n.lintje-user-menu__logout-row { font-weight: 700; }\n\n.lintje-user-menu__version {\n margin: 0;\n padding: var(--space-2) var(--space-4);\n border-top: 1px solid var(--color-border-default);\n font-size: 0.875rem;\n color: var(--color-text-muted);\n}\n\n.lintje-user-menu__panel.is-inline { width: 100%; color: var(--color-nav-text); }\n.lintje-user-menu__panel.is-inline .lintje-user-menu__who,\n.lintje-user-menu__panel.is-inline .lintje-user-menu__group--logout,\n.lintje-user-menu__panel.is-inline .lintje-user-menu__version { border-color: var(--color-nav-line); }\n.lintje-user-menu__panel.is-inline .lintje-user-menu__who { padding: var(--space-4) var(--space-5); }\n/* Small text on the theme fill takes the menu's own ink: the sub tint is 3.82:1 on #01689B. */\n.lintje-user-menu__panel.is-inline .lintje-user-menu__role,\n.lintje-user-menu__panel.is-inline .lintje-user-menu__version,\n.lintje-user-menu__panel.is-inline .lintje-menu__hint { color: var(--color-nav-text); }\n.lintje-user-menu__panel.is-inline .lintje-user-menu__version { padding: var(--space-2) var(--space-5); }\n.lintje-user-menu__panel.is-inline .lintje-menu__row {\n height: var(--h-touch);\n padding: 0 var(--space-5);\n color: var(--color-nav-text);\n}\n.lintje-user-menu__panel.is-inline .lintje-menu__row:hover { background: var(--color-nav-hover); }\n.lintje-user-menu__panel.is-inline .lintje-menu__row.is-disabled,\n.lintje-user-menu__panel.is-inline .lintje-menu__row.is-disabled .lintje-menu__hint { color: var(--color-nav-disabled); }\n.lintje-user-menu__panel.is-inline .lintje-menu__separator { background: var(--color-nav-line); }\n\n/* On the theme fill the orange ring disappears: the on-theme ring, as the side menu. */\n.lintje-user-menu__trigger:focus-visible,\n.lintje-user-menu__panel.is-inline :focus-visible { outline-color: var(--color-focus-on-theme); }\n\n/* Forced colours: the open button keeps a Highlight edge, the avatar a CanvasText ring. */\n@media (forced-colors: active) {\n .lintje-user-menu__trigger:focus-visible,\n .lintje-user-menu__panel.is-inline :focus-visible { outline-color: Highlight; }\n .lintje-user-menu__trigger.is-open:not(:focus-visible) { outline: 1px solid Highlight; outline-offset: -1px; }\n .lintje-user-menu__avatar { border: 1px solid CanvasText; }\n}\n", h = 0, g = class extends t {
5
5
  static {
6
6
  this.styles = [
7
- e,
8
- i(u),
9
- i(p),
10
- i(m)
7
+ o,
8
+ r(u),
9
+ r(p),
10
+ r(m)
11
11
  ];
12
12
  }
13
13
  static {
@@ -58,7 +58,7 @@ var m = "/*\n * The host is the avatar button's `--h-touch` box in the navigatio
58
58
  constructor() {
59
59
  super(), this.items = [], this.csrf = "", this.inline = !1, this.open = !1, this.#e = `lintje-user-menu-${++h}`, this.#t = null, this.onFocusOut = (e) => {
60
60
  let t = e.relatedTarget;
61
- this.open && t && !n(t, this) && !n(this, t) && this.hide(!1);
61
+ this.open && t && !a(t, this) && !a(this, t) && this.hide(!1);
62
62
  }, this.onTriggerKeydown = (e) => {
63
63
  (e.key === "ArrowDown" || e.key === "ArrowUp") && (e.preventDefault(), this.show(e.key === "ArrowDown" ? "first" : "last"));
64
64
  }, this.onMenuKeydown = (e) => {
@@ -90,8 +90,8 @@ var m = "/*\n * The host is the avatar button's `--h-touch` box in the navigatio
90
90
  onPopoverClose(e) {
91
91
  e.stopPropagation(), this.hide(e.detail?.reason === "escape");
92
92
  }
93
- choose(e, t) {
94
- e.disabled ? t.preventDefault() : (!e.href || a(t)) && (this.hide(!this.inline), this.emit("lintje-action", e.value), e.href && this.followLink(e.href, t));
93
+ choose(t, n) {
94
+ t.disabled ? n.preventDefault() : (!t.href || e(n)) && (this.hide(!this.inline), this.emit("lintje-action", t.value), t.href && this.followLink(t.href, n));
95
95
  }
96
96
  logout() {
97
97
  this.hide(!this.inline), this.emit("lintje-logout");
@@ -103,41 +103,41 @@ var m = "/*\n * The host is the avatar button's `--h-touch` box in the navigatio
103
103
  }
104
104
  }
105
105
  renderRow(e) {
106
- let t = this.inline ? r : "menuitem", n = this.inline ? r : "-1", i = o({
106
+ let t = this.inline ? i : "menuitem", n = this.inline ? i : "-1", r = c({
107
107
  "lintje-menu__row": !0,
108
108
  "focus-inset": !0,
109
109
  "is-danger": !!e.danger,
110
110
  "is-disabled": !!e.disabled
111
- }), a = c`${e.icon ? s(e.icon, {
111
+ }), a = s`${e.icon ? l(e.icon, {
112
112
  size: 16,
113
113
  className: "lintje-menu__icon"
114
- }) : r}<span class="lintje-menu__label">${e.label}</span>${e.hint ? c`<span class="lintje-menu__hint">${e.hint}</span>` : r}`;
115
- if (e.href && !e.disabled) return c`<a
116
- class=${i}
114
+ }) : i}<span class="lintje-menu__label">${e.label}</span>${e.hint ? s`<span class="lintje-menu__hint">${e.hint}</span>` : i}`;
115
+ if (e.href && !e.disabled) return s`<a
116
+ class=${r}
117
117
  role=${t}
118
118
  tabindex=${n}
119
119
  href=${e.href}
120
120
  @click=${(t) => this.choose(e, t)}
121
121
  >${a}</a
122
122
  >`;
123
- let l = c`<button
123
+ let o = s`<button
124
124
  type="button"
125
- class=${i}
125
+ class=${r}
126
126
  role=${t}
127
127
  tabindex=${n}
128
- aria-disabled=${e.disabled ? "true" : r}
128
+ aria-disabled=${e.disabled ? "true" : i}
129
129
  @click=${(t) => this.choose(e, t)}
130
130
  >
131
131
  ${a}
132
132
  </button>`;
133
- return e.disabled && e.reason ? c`<lintje-tooltip class="lintje-menu__tip" text=${e.reason}>${l}</lintje-tooltip>` : l;
133
+ return e.disabled && e.reason ? s`<lintje-tooltip class="lintje-menu__tip" text=${e.reason}>${o}</lintje-tooltip>` : o;
134
134
  }
135
135
  renderLogout() {
136
- let e = this.inline ? r : "menuitem", t = this.inline ? r : "-1", n = s("functioneel-uitloggen", {
136
+ let e = this.inline ? i : "menuitem", t = this.inline ? i : "-1", n = l("functioneel-uitloggen", {
137
137
  size: 16,
138
138
  className: "lintje-menu__icon"
139
- }), i = c`${n}<span class="lintje-menu__label">Afmelden</span>`;
140
- return this.logoutAction ? c`<form class="lintje-user-menu__logout" method="post" action=${this.logoutAction}>
139
+ }), r = s`${n}<span class="lintje-menu__label">Afmelden</span>`;
140
+ return this.logoutAction ? s`<form class="lintje-user-menu__logout" method="post" action=${this.logoutAction}>
141
141
  <input type="hidden" name="csrf_token" .value=${this.csrf} />
142
142
  <button
143
143
  type="submit"
@@ -145,53 +145,53 @@ var m = "/*\n * The host is the avatar button's `--h-touch` box in the navigatio
145
145
  role=${e}
146
146
  tabindex=${t}
147
147
  >
148
- ${i}
148
+ ${r}
149
149
  </button>
150
- </form>` : c`<button
150
+ </form>` : s`<button
151
151
  type="button"
152
152
  class="lintje-menu__row lintje-user-menu__logout-row focus-inset"
153
153
  role=${e}
154
154
  tabindex=${t}
155
155
  @click=${() => this.logout()}
156
156
  >
157
- ${i}
157
+ ${r}
158
158
  </button>`;
159
159
  }
160
160
  renderContent() {
161
161
  let e = this.user;
162
- return c`<div
163
- class=${o({
162
+ return s`<div
163
+ class=${c({
164
164
  "lintje-user-menu__panel": !0,
165
165
  "is-inline": this.inline
166
166
  })}
167
167
  @keydown=${this.onMenuKeydown}
168
168
  >
169
- ${e ? c`<div class="lintje-user-menu__who">
170
- ${this.inline ? c`<span class="lintje-user-menu__avatar" aria-hidden="true">${e.initials}</span>` : r}
169
+ ${e ? s`<div class="lintje-user-menu__who">
170
+ ${this.inline ? s`<span class="lintje-user-menu__avatar" aria-hidden="true">${e.initials}</span>` : i}
171
171
  <div class="lintje-user-menu__names">
172
172
  <p class="lintje-user-menu__name">${e.name}</p>
173
- ${e.role ? c`<p class="lintje-user-menu__role">${e.role}</p>` : r}
173
+ ${e.role ? s`<p class="lintje-user-menu__role">${e.role}</p>` : i}
174
174
  </div>
175
- </div>` : r}
175
+ </div>` : i}
176
176
  <div
177
177
  class="lintje-user-menu__menu"
178
178
  role=${this.inline ? "group" : "menu"}
179
179
  aria-label=${e ? `Menu van ${e.name}` : "Gebruikersmenu"}
180
180
  >
181
- ${this.items.length ? c`<div class="lintje-user-menu__group">
181
+ ${this.items.length ? s`<div class="lintje-user-menu__group">
182
182
  ${f(this.items, "lintje-user-menu", (e) => this.renderRow(e))}
183
- </div>` : r}
183
+ </div>` : i}
184
184
  <div class="lintje-user-menu__group lintje-user-menu__group--logout">${this.renderLogout()}</div>
185
185
  </div>
186
- ${this.version ? c`<p class="lintje-user-menu__version">Versie ${this.version}</p>` : r}
186
+ ${this.version ? s`<p class="lintje-user-menu__version">Versie ${this.version}</p>` : i}
187
187
  </div>`;
188
188
  }
189
189
  render() {
190
190
  if (this.inline) return this.renderContent();
191
191
  let e = this.user;
192
- return c`<button
192
+ return s`<button
193
193
  type="button"
194
- class=${o({
194
+ class=${c({
195
195
  "lintje-user-menu__trigger": !0,
196
196
  "is-open": this.open
197
197
  })}
@@ -203,7 +203,7 @@ var m = "/*\n * The host is the avatar button's `--h-touch` box in the navigatio
203
203
  @keydown=${this.onTriggerKeydown}
204
204
  >
205
205
  <span class="lintje-user-menu__avatar" aria-hidden="true">${e?.initials ?? ""}</span>
206
- ${s("functioneel-delta-omlaag", {
206
+ ${l("functioneel-delta-omlaag", {
207
207
  size: 16,
208
208
  rotate: this.open ? 180 : void 0
209
209
  })}
@@ -217,6 +217,6 @@ var m = "/*\n * The host is the avatar button's `--h-touch` box in the navigatio
217
217
  >`;
218
218
  }
219
219
  };
220
- t("lintje-user-menu", g);
220
+ n("lintje-user-menu", g);
221
221
  //#endregion
222
222
  export { g as LintjeUserMenu };