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,16 +1,14 @@
1
1
  /**
2
- * `<lintje-chat>` — a conversation with data; takes `ChatData`. The host owns the transport.
2
+ * `<lintje-chat>` — a conversation with data, from `ChatData`; the host owns the transport.
3
3
  *
4
- * An answer arrives by setting `data` again; keep the objects of what did not change so only
5
- * the changed part is redrawn. It stands in the flow and scrolls with what scrolls around it —
6
- * the page, or the nearest box that scrolls — and its question box stays in view at the bottom.
4
+ * An answer arrives by setting `data` again: keep the objects that did not change, so only the
5
+ * changed part is redrawn. It scrolls with what scrolls around it, and its question box stays in
6
+ * view at the bottom.
7
7
  *
8
- * Events: none of its own; its parts' events reach the host as they are (`lintje-message-send`,
9
- * `lintje-answer-stop`, `lintje-sources-change`, `lintje-draft-change`) and, with the `turnId`,
10
- * `lintje-suggestion-select`, `lintje-message-edit`, `lintje-answer-retry`,
11
- * `lintje-answer-rate`, `lintje-strip-change`, `lintje-mark-select`, `lintje-row-click` and
12
- * `lintje-sort-change`. The host replies: send adds a turn and answers it; message-edit asks
13
- * again and drops that turn and all after it; strip-change answers again with the new assumption.
8
+ * It sends no events of its own: those of its question box, messages and answers reach the host,
9
+ * with the `turnId` where a turn sent them. The host answers `lintje-message-send` with a new turn,
10
+ * `lintje-message-edit` by asking again without that turn and all after it, and
11
+ * `lintje-strip-change` by answering again with the new assumption.
14
12
  */
15
13
  import { nothing, type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
16
14
  import { LintjeElement, type FrameSettings } from '../../../core/element.js';
@@ -1,15 +1,13 @@
1
1
  /**
2
2
  * `<lintje-chat-answer>` — what the assistant answered, as a list of existing blocks.
3
3
  *
4
- * It draws none of the blocks itself; only the bold lead, strip, actions and follow-ups are its
5
- * own. A block still to come is that block with `state: 'loading'`. Only the `current` answer
6
- * can be retried, changed through its strip or followed up. The thumbs and "Gekopieerd" are
7
- * the element's own state; the conversation is not stored.
4
+ * It draws none of the blocks itself: a block still to come is that block with `state: 'loading'`.
5
+ * The thumbs and "Gekopieerd" are its own state; it stores nothing of the conversation. The events
6
+ * of its strip, suggestions and blocks pass through unchanged.
8
7
  *
9
- * Events: `lintje-answer-retry` `{turnId}` and `lintje-answer-rate` `{turnId, rating, reason}`
10
- * (`rating` is `'up'`, `'down'` or `null` when taken back; a `'down'` is followed by a second
11
- * event once the reader picks a reason). The strip's, the suggestions' and the blocks' events
12
- * pass through untouched.
8
+ * Events: `lintje-answer-retry` `{ turnId }`, `lintje-answer-rate` `{ turnId, rating, reason }`
9
+ * (`rating` is `'up'`, `'down'` or `null` when taken back; a `'down'` comes again with the
10
+ * `reason` once the reader picks one).
13
11
  */
14
12
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
15
13
  import { LintjeElement } from '../../../core/element.js';
@@ -46,6 +44,7 @@ export declare class LintjeChatAnswer extends LintjeElement {
46
44
  choices?: ChatSuggestion[];
47
45
  /** Suggested next questions; drawn on the current answer only. */
48
46
  followUps?: ChatSuggestion[];
47
+ /** The latest answer: only it can be retried, changed through its strip or followed up. */
49
48
  current: boolean;
50
49
  /** The turn this answers; it comes back in the events. */
51
50
  turnId?: string;
@@ -1,17 +1,14 @@
1
1
  /**
2
2
  * `<lintje-chat-composer>` — the question box: text field, source picker and split send button.
3
3
  *
4
- * The field is a plain-text `contenteditable`; the element never writes markup into it. Terms
5
- * are painted with the CSS Custom Highlight API so typing, input methods and undo stay the
6
- * browser's; without the API the field is unmarked. Terms come from `vocabulary` (matched while
7
- * typing) or from the host's `draftTerms`, which win while the text is unchanged.
8
- * The source selection is the host's; the draft, send key (in `localStorage`) and answer form
9
- * are the element's own.
4
+ * The field is plain text; the element never writes markup into it. Terms are marked through the
5
+ * CSS Custom Highlight API, so typing and undo stay the browser's; without it the field is
6
+ * unmarked. The source selection is the host's; the draft, the send key (kept in `localStorage`)
7
+ * and the answer form are the element's own.
10
8
  *
11
- * Events: `lintje-message-send` `{text, terms, sources, form}`, `lintje-answer-stop`,
12
- * `lintje-sources-change` `{ids}`, `lintje-draft-change` `{text}` (200 ms after the last key).
13
- * In `variant="edit"` it sends `lintje-submit` `{text, terms}` and `lintje-cancel` instead, both
14
- * not composed.
9
+ * Events: `lintje-message-send` `{ text, terms, sources, form }`, `lintje-answer-stop`,
10
+ * `lintje-sources-change` `{ ids }`, `lintje-draft-change` `{ text }` (200 ms after the last key);
11
+ * with `variant="edit"` instead `lintje-submit` `{ text, terms }` and `lintje-cancel`.
15
12
  */
16
13
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
17
14
  import { LintjeElement } from '../../../core/element.js';
@@ -48,6 +45,7 @@ export declare class LintjeChatComposer extends LintjeElement {
48
45
  form: ChatAnswerForm;
49
46
  /** Sources given and none `selected`: sending is off. The host sets them again on a change. */
50
47
  sources?: ChatSourceData[];
48
+ /** The terms marked in the field while the reader types. */
51
49
  vocabulary?: ChatTermData[];
52
50
  /** The host's own reading of the text; it wins while the text is unchanged. */
53
51
  draftTerms?: ChatDraftTerms;
@@ -1,13 +1,12 @@
1
1
  /**
2
- * `<lintje-chat-message>` — what the reader asked: a filled bar on the right. A visually hidden
3
- * "Jij:" carries the role.
2
+ * `<lintje-chat-message>` — what the reader asked: a filled bar on the right.
4
3
  *
5
- * Editing is the message's own state (`lintje-chat-composer variant="edit"`). The message never
6
- * changes its own text: asking again is an event and the host replaces the turn.
4
+ * Editing is the message's own state, in a `lintje-chat-composer`. It never changes its own text:
5
+ * asking again is an event, and the host replaces the turn.
7
6
  *
8
- * Events: `lintje-message-edit` `{turnId, text, terms}` — ask this instead, replacing the answer
9
- * and everything after it. `lintje-editing-change` `{turnId, editing}` is not composed: it tells
10
- * the holding view which answers are about to be replaced.
7
+ * Events: `lintje-message-edit` `{ turnId, text, terms }` (ask this instead, replacing the answer
8
+ * and all after it), `lintje-editing-change` `{ turnId, editing }` (tells the holding view which
9
+ * answers are about to be replaced).
11
10
  */
12
11
  import { type PropertyDeclarations, type TemplateResult } from 'lit';
13
12
  import { LintjeElement } from '../../../core/element.js';
@@ -2,12 +2,12 @@
2
2
  * `<lintje-chat-strip>` — the strip under an answer's text: what the answer assumed, as
3
3
  * label/value pairs, and how it was calculated.
4
4
  *
5
- * A fixed value is plain text; one with `options` is a native `<select>` drawn as a term (the
6
- * browser's own list and phone picker); one with `pressed` is a suggestion. The strip keeps only
7
- * whether its details are open; a change is an event and the host sets the items again.
5
+ * A value with `options` is a choice, one with `pressed` a suggestion, the rest plain text. The
6
+ * strip keeps only whether its details are open: a change is an event, and the host sets the
7
+ * items again.
8
8
  *
9
- * Events: `lintje-strip-change` `{turnId, key, value}` — a state; `value` is the
10
- * chosen option's value, or the suggestion's new `pressed`.
9
+ * Events: `lintje-strip-change` `{ turnId, key, value }` (`value` is the chosen option's value, or
10
+ * the suggestion's new `pressed`).
11
11
  */
12
12
  import { nothing, type PropertyDeclarations, type TemplateResult } from 'lit';
13
13
  import { LintjeElement } from '../../../core/element.js';
@@ -1,13 +1,8 @@
1
1
  /**
2
- * `<lintje-chat-suggestions>` — sentences the reader can send with one press.
2
+ * `<lintje-chat-suggestions>` — sentences the reader can send with one press, on the reader's side.
3
3
  *
4
- * `kind` is a rule, not decoration: `suggestion` (dashed) is something the reader could ask;
5
- * `choice` (solid) is an answer the assistant is waiting for. In a conversation they stand on the
6
- * reader's side, on the right; `align="start"` sets them left and side by side, as the examples
7
- * under a question box on a start page.
8
- *
9
- * Events: `lintje-suggestion-select` `{turnId, kind, label, value}` — a trigger;
10
- * `value` is the item's own, or its label.
4
+ * Events: `lintje-suggestion-select` `{ turnId, kind, label, value }` (`value` is the item's own,
5
+ * or its label).
11
6
  */
12
7
  import { nothing, type PropertyDeclarations, type TemplateResult } from 'lit';
13
8
  import { LintjeElement } from '../../../core/element.js';
@@ -15,14 +10,18 @@ import type { ChatSuggestion } from '../../../types.js';
15
10
  export type ChatSuggestionKind = 'suggestion' | 'choice';
16
11
  export type ChatSuggestionsAlign = 'end' | 'start';
17
12
  export declare class LintjeChatSuggestions extends LintjeElement {
18
- static styles: import("lit").CSSResult;
13
+ static styles: import("lit").CSSResult[];
19
14
  static properties: PropertyDeclarations;
20
15
  /** The caps line above the sentences: "Jij, als vervolgvraag". */
21
16
  label?: string;
22
17
  /** The gray line under a set of choices. */
23
18
  hint?: string;
19
+ /**
20
+ * A rule, not decoration: `suggestion` (dashed) is something the reader could ask, `choice`
21
+ * (solid) an answer the assistant is waiting for.
22
+ */
24
23
  kind: ChatSuggestionKind;
25
- /** `start`: left and side by side, outside a conversation. */
24
+ /** `start`: left and side by side, outside a conversation, as examples under a question box. */
26
25
  align: ChatSuggestionsAlign;
27
26
  items?: ChatSuggestion[];
28
27
  /** It comes back in the event. */
@@ -1,16 +1,11 @@
1
1
  /**
2
- * `<lintje-audio-player>` — plays a recording: play between two 15-second skips, the position
3
- * as a slider, the time, the volume and the speed.
2
+ * `<lintje-audio-player>` — plays a recording: play between two 15-second skips, the position as a
3
+ * slider, the time, the volume and the speed.
4
4
  *
5
- * With `.peaks` (0–1) the slider is the waveform, without them a bar. With `.segments` — the
6
- * transcript's `{ start, speaker }[]` — every speaker takes a colour, named in a legend above
7
- * (`no-legend` leaves it to the transcript, which names the same colours).
8
- * `compact` puts everything on one line; a phone has no room for it and keeps the column.
9
- * `flush` drops its own frame, for a bar the page draws around it. Never autoplays.
10
- * `.currentTime` seeks.
5
+ * It never autoplays.
11
6
  *
12
- * Events: `lintje-time-change` (seconds, at most four times a second), `lintje-seek` (seconds:
13
- * the reader moved the position), `lintje-play`, `lintje-pause`.
7
+ * Events: `lintje-time-change` `number` (seconds, at most four times a second), `lintje-seek`
8
+ * `number` (seconds: the reader moved the position), `lintje-play`, `lintje-pause`.
14
9
  */
15
10
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
16
11
  import '../../../primitives/button/button.js';
@@ -25,11 +20,14 @@ export declare class LintjeAudioPlayer extends LintjePlayerElement {
25
20
  static properties: PropertyDeclarations;
26
21
  /** The waveform's peaks, 0–1. Without them the position is a bar. */
27
22
  peaks?: number[] | null;
28
- /** Who speaks when: the transcript's segments, or any `{ start, speaker }[]` in time order. */
23
+ /**
24
+ * Who speaks when: the transcript's segments, or any `{ start, speaker }[]` in time order. Every
25
+ * speaker takes a colour, named in a legend above.
26
+ */
29
27
  segments: SpeakerTurn[];
30
28
  /** Leaves the legend out where the transcript beside it names every colour. */
31
29
  noLegend: boolean;
32
- /** Everything on one line, for a row or a tile. */
30
+ /** Everything on one line, for a row or a tile; a phone has no room and keeps the column. */
33
31
  compact: boolean;
34
32
  /** No frame of its own: the page's bar around it is the frame. */
35
33
  flush: boolean;
@@ -1,9 +1,7 @@
1
1
  /**
2
2
  * `<lintje-code>` — a block of code or JSON, on `--font-mono`; the host pretty-prints JSON.
3
3
  *
4
- * Scrolls sideways by default because a broken line is a changed line; the block is
5
- * `tabindex="0"` so the scroll is keyboard reachable (WCAG 2.1.1). `numbered` uses a CSS
6
- * counter, so a copy of the block is a copy of the code. No syntax colouring.
4
+ * It scrolls sideways by default, because a broken line is a changed line. No syntax colouring.
7
5
  */
8
6
  import { type PropertyDeclarations, type TemplateResult } from 'lit';
9
7
  import { LintjeGridItemElement } from '../../../primitives/shared/grid-item-element.js';
@@ -13,6 +11,7 @@ export declare class LintjeCode extends LintjeGridItemElement {
13
11
  text?: string;
14
12
  /** Shown as the label top right: `json`, `sql`, `python`. */
15
13
  language?: string;
14
+ /** Line numbers beside the text, not in it: a copy of the block is a copy of the code. */
16
15
  numbered: boolean;
17
16
  /** Break long lines instead of scrolling the block sideways. */
18
17
  wrap: boolean;
@@ -1,16 +1,13 @@
1
1
  /**
2
2
  * `<lintje-document-viewer>` — a document page by page: leaf, zoom and download.
3
3
  *
4
- * Shows images only: `.pages` is one URL per page, `src` a single image. The host renders a PDF
5
- * to page images; no PDF library is shipped. An image is no text: give each page's text in
6
- * `.texts` (same order), which a screen reader reads after the page. The file behind
7
- * "Downloaden" is the accessible version, so it is a tagged, accessible PDF, not a scan.
4
+ * It shows images only: the host renders a PDF to page images, and gives each page's text in
5
+ * `texts`, which a screen reader reads after the page. The file behind "Downloaden" is the
6
+ * accessible version: a tagged PDF, not a scan. Page and zoom are the element's; every change is
7
+ * reported.
8
8
  *
9
- * `page` (from 1) and `zoom` (50–400 in steps of 25, or `fit`) are the element's; every change
10
- * is reported.
11
- *
12
- * Events: `lintje-page-change` (the page, from 1), `lintje-zoom-change` (a percentage or
13
- * `'fit'`), `lintje-download`.
9
+ * Events: `lintje-page-change` `number` (the page, from 1), `lintje-zoom-change`
10
+ * `number | 'fit'` (a percentage), `lintje-download`.
14
11
  */
15
12
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
16
13
  import { LintjeElement } from '../../../core/element.js';
@@ -40,7 +37,9 @@ export declare class LintjeDocumentViewer extends LintjeElement {
40
37
  src: string;
41
38
  /** The file name: the toolbar's title and part of the page's accessible name. */
42
39
  name: string;
40
+ /** The page shown, from 1. */
43
41
  page: number;
42
+ /** A percentage, 50–400 in steps of 25, or `fit`. */
44
43
  zoom: ZoomLevel;
45
44
  protected loaded: boolean;
46
45
  protected failed: boolean;
@@ -1,8 +1,9 @@
1
1
  /**
2
- * `<lintje-gallery>` — pictures of one thing, such as the screens of an application: one large
3
- * with its caption, and under it a thumbnail of each to choose another. A single picture has no
4
- * thumbnails. Which picture stands is the element's; every change is reported, and read out
5
- * from a status region: "Afbeelding 2 van 4: <alt>".
2
+ * `<lintje-gallery>` — pictures of one thing, such as the screens of an application: one large with
3
+ * its caption, and under it a thumbnail of each to choose another; a single picture has none.
4
+ *
5
+ * Which picture stands is the element's; every change is reported, and read out as "Afbeelding 2
6
+ * van 4: <alt>".
6
7
  *
7
8
  * Events: `lintje-gallery-change` `{ index }`.
8
9
  */
@@ -1,8 +1,9 @@
1
1
  /**
2
2
  * `<lintje-highlight>` — a marking in running text: low confidence, a glossary term, a search
3
- * match, or a difference. Each kind draws the element that means it and a line of its own, so
4
- * colour is never the only carrier. A difference also says what it is in hidden words, since a
5
- * screen reader does not name `<del>` and `<ins>`. The host wraps the words. Events: none.
3
+ * match, or a difference.
4
+ *
5
+ * The host wraps the words. Each kind draws the element that means it and a line of its own, so
6
+ * colour is never the only carrier.
6
7
  */
7
8
  import { type PropertyDeclarations, type TemplateResult } from 'lit';
8
9
  import { LintjeElement } from '../../../core/element.js';
@@ -1,9 +1,8 @@
1
1
  /**
2
- * `<lintje-prose>` — a block of text on the type scale. `html` wins over `text`, which wins over
3
- * the slot.
2
+ * `<lintje-prose>` — a block of text on the type scale: `html`, else `text`, else the slot.
4
3
  *
5
4
  * The host renders the markdown and sanitises it: `html` is written into the shadow root as it
6
- * stands, and no sanitiser lives here. Events: none.
5
+ * stands.
7
6
  */
8
7
  import { type PropertyDeclarations, type TemplateResult } from 'lit';
9
8
  import { LintjeGridItemElement } from '../../../primitives/shared/grid-item-element.js';
@@ -1,30 +1,15 @@
1
1
  /**
2
2
  * `<lintje-transcript>` — a recording's text in fragments, each with its speaker and timecode.
3
3
  *
4
- * `readonly` shows the text only, as a preview beside a running recording does: no editing, no
5
- * speaker menu and no seeking.
4
+ * Editing and the speakers are the host's state: the element asks, and the host changes
5
+ * `segments`, `editingId`, `busyId` and `errors`. It plays, saves and renames nothing itself. A
6
+ * speaker has the colour it has in the player's waveform. Above the fragments, the `note-label` and
7
+ * `note` slots say that a model made the text, and `lead` holds the AI work.
6
8
  *
7
- * Every speaker takes a colour, the same as in the player's waveform: a bar along the fragment,
8
- * the name beside it says who it is. `layout="chat"` draws each fragment as a message instead of
9
- * a row; `tinted` lays the speaker's colour under the whole fragment; `grouped` names a speaker
10
- * once over consecutive fragments, each keeping its own time. The fragment that sounds stands out
11
- * with a ring. Live, `speakingId` says who speaks now and a fragment's `pending` text is still
12
- * provisional.
13
- *
14
- * Above the fragments stands a row in the same columns: `note-label` beside `note` — the label
15
- * that a model made the text, and the host's sentence about it — and under it what the host
16
- * slots in `lead` (the AI work, each in its own expander).
17
- *
18
- * A fragment is edited from its pencil or by a double click on its text.
19
- *
20
- * Editing and the speakers are the host's state: the element asks, the host changes `segments`,
21
- * `editingId`, `busyId` and `errors`. It plays, saves and renames nothing itself. The search
22
- * property is `searchMatches`, not `matches` (that is `Element.matches()`).
23
- *
24
- * Events: `lintje-seek` (seconds), `lintje-segment-edit` (id), `lintje-segment-save`
25
- * `{ id, text }`, `lintje-segment-cancel` (id), `lintje-segment-speaker` `{ id, speaker }` (this
26
- * fragment to another speaker), `lintje-speaker-new` (id: this fragment to a speaker not named
27
- * yet), `lintje-speaker-rename` (the name to change everywhere).
9
+ * Events: `lintje-seek` `number` (seconds), `lintje-segment-edit` `string` (the id),
10
+ * `lintje-segment-save` `{ id, text }`, `lintje-segment-cancel` `string` (the id),
11
+ * `lintje-segment-speaker` `{ id, speaker }` (to another speaker), `lintje-speaker-new` `string`
12
+ * (the id, to a speaker not named yet), `lintje-speaker-rename` `string` (the speaker's name).
28
13
  */
29
14
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
30
15
  import { LintjeElement } from '../../../core/element.js';
@@ -86,6 +71,7 @@ export declare class LintjeTranscript extends LintjeElement {
86
71
  * its colours. Without it, those in `segments`.
87
72
  */
88
73
  speakers?: string[] | null;
74
+ /** The text only, as a preview beside a live recording: no editing, speaker menu or seeking. */
89
75
  readonly: boolean;
90
76
  /** Live: the segment of who speaks now. */
91
77
  speakingId?: string | null;
@@ -95,15 +81,16 @@ export declare class LintjeTranscript extends LintjeElement {
95
81
  layout: TranscriptLayout;
96
82
  /** The speaker's colour under the whole fragment, not only in its bar. */
97
83
  tinted: boolean;
98
- /** A speaker's consecutive fragments under one name. */
84
+ /** A speaker's consecutive fragments under one name, each keeping its own time. */
99
85
  grouped: boolean;
100
- /** The recording's position in seconds. */
86
+ /** The recording's position in seconds; the fragment that sounds stands out with a ring. */
101
87
  currentTime?: number | null;
102
88
  /** The segment in editing; the host sets it after `lintje-segment-edit`. */
103
89
  editingId?: string | null;
104
90
  busyId?: string | null;
105
91
  /** A save that failed: the message under the field, per segment id. */
106
92
  errors: Record<string, string>;
93
+ /** The search hits; not `matches`, which is `Element.matches()`. */
107
94
  searchMatches: TranscriptMatches;
108
95
  /** The hit framed as current; scrolled into view when it changes. */
109
96
  currentMatch?: TranscriptMatch | null;
@@ -1,20 +1,13 @@
1
1
  /**
2
- * `<lintje-translator>` — a text and its translation in one surface of two halves: the source on
3
- * the left, the translation on the right, each with its language above and its actions below.
4
- * The two languages flank the swap on the line between them. Below 768 px the halves stack.
2
+ * `<lintje-translator>` — a text and its translation in one surface of two halves, each with its
3
+ * language above and its actions below; below 768 px the halves stack.
5
4
  *
6
- * The source is a plain `lintje-textarea`; the host keeps `value`. The translation, the language
7
- * choices and the actions are the host's, in slots: `source-language`, `target-language`,
8
- * `target` (a plain `lintje-streaming-text`), `source-actions`, `target-note` (the AI label, right
9
- * under the translation) and `target-actions`.
5
+ * The source is a `lintje-textarea` whose `value` the host keeps. The translation, the language
6
+ * choices and the actions are the host's, in slots: `target` takes a plain
7
+ * `lintje-streaming-text`, `target-note` the AI label under it. After a swap a status region says
8
+ * so, with the languages the host's choices then show.
10
9
  *
11
- * `variant="documents"` keeps the language bar and the swap and puts the default slot under them
12
- * at full width, for documents to translate: the upload and the queue.
13
- *
14
- * After the swap a status region says so, with the languages the host's choices then show
15
- * ("Talen omgewisseld: Engels naar Nederlands").
16
- *
17
- * Events: `lintje-text-change` (the source text), `lintje-languages-swap`.
10
+ * Events: `lintje-text-change` `string` (the source text), `lintje-languages-swap`.
18
11
  */
19
12
  import { type PropertyDeclarations, type TemplateResult } from 'lit';
20
13
  import { LintjeElement } from '../../../core/element.js';
@@ -32,7 +25,10 @@ export declare class LintjeTranslator extends LintjeElement {
32
25
  sourceLabel: string;
33
26
  /** The translation half's accessible name. */
34
27
  targetLabel: string;
35
- /** `text` (default): the source and its translation; `documents`: the languages over the default slot. */
28
+ /**
29
+ * `text` (default): the source and its translation. `documents`: the language bar and the swap
30
+ * over the default slot at full width, for documents to translate: the upload and the queue.
31
+ */
36
32
  variant: 'text' | 'documents';
37
33
  /** What the status region says after a swap. */
38
34
  spoken: string;
@@ -1,18 +1,13 @@
1
1
  /**
2
2
  * `<lintje-video-player>` — the picture of a recording, with the audio player's controls.
3
3
  *
4
- * The controls stand under the picture, never over it, also in full screen: the bar with the time
5
- * on one line; play, mute, "Meer opties" and full screen on the next, at any width. The menu holds
6
- * the captions (also on C), the audio description when `described-src` gives a version with one
7
- * (it switches at the same moment) and the speed; a speed other than 1× stands beside the time. The
8
- * controls are `aria-disabled` (in the tab order, the press swallowed) while the video loads or
9
- * cannot be loaded; a failed load says so on the picture, with "Opnieuw proberen". The `<video>`
10
- * has no controls of its own and never starts by itself. It does not fetch the captions. The big
11
- * play button stands on the picture only before the start, and the caption shows only without
12
- * it, so the two never cover each other.
4
+ * The controls stand under the picture, never over it, also in full screen. The video never starts
5
+ * by itself, and the element does not fetch the captions: the host gives them in `segments`. While
6
+ * the video loads or cannot be loaded, the controls stay in the tab order but do nothing; a failed
7
+ * load says so on the picture, with "Opnieuw proberen".
13
8
  *
14
- * Events: `lintje-time-change` (seconds, at most four times a second), `lintje-play`,
15
- * `lintje-pause`.
9
+ * Events: `lintje-time-change` `number` (seconds, at most four times a second), `lintje-seek`
10
+ * `number` (seconds: the reader moved the position), `lintje-play`, `lintje-pause`.
16
11
  */
17
12
  import { type PropertyDeclarations, type TemplateResult } from 'lit';
18
13
  import '../../actions/menu-button/menu-button.js';
@@ -26,9 +21,12 @@ export declare class LintjeVideoPlayer extends LintjePlayerElement {
26
21
  static properties: PropertyDeclarations;
27
22
  /** The captions: the transcript's segments, or any `{ start, text }[]`. */
28
23
  segments: TimedText[];
29
- /** Whether the captions show; the reader switches it. */
24
+ /** Whether the captions show; the reader switches it, in "Meer opties" or with C. */
30
25
  captions: boolean;
31
- /** The same video with an audio description: "Meer opties" offers it when given. */
26
+ /**
27
+ * The same video with an audio description: "Meer opties" offers it when given, and the switch
28
+ * keeps the moment.
29
+ */
32
30
  describedSrc?: string;
33
31
  /** Whether the described version plays; the reader switches it. */
34
32
  described: boolean;
@@ -1,16 +1,15 @@
1
1
  /**
2
2
  * `<lintje-ai-label>` — says that a model made the content below it.
3
3
  *
4
- * A neutral badge (provenance, not a verdict) and the one badge that may wrap, so a long name
5
- * stays on a 390 px screen. Place it above the block, once. `checked-by` turns it into
6
- * "Gecontroleerd door …", and the gear-and-brain mark into a check.
4
+ * A neutral badge: provenance, not a verdict. It is the one badge that may wrap, so a long name
5
+ * stays on a 390 px screen. Place it above the block, once.
7
6
  */
8
7
  import { type PropertyDeclarations, type TemplateResult } from 'lit';
9
8
  import { LintjeElement } from '../../../core/element.js';
10
9
  export declare class LintjeAiLabel extends LintjeElement {
11
10
  static styles: import("lit").CSSResult[];
12
11
  static properties: PropertyDeclarations;
13
- /** Who checked the text: "J. de Vries". */
12
+ /** Who checked the text: "J. de Vries". The label reads "Gecontroleerd door …", with a check. */
14
13
  checkedBy?: string;
15
14
  /** The line behind the badge; unchecked it defaults to the advice to check the text. */
16
15
  hint?: string;
@@ -1,10 +1,9 @@
1
1
  /**
2
2
  * `<lintje-announcement>` — a status message: warning, outage, info or ok.
3
3
  *
4
- * A live region only with `live: true`; drawn empty first and filled on the next frame so screen
5
- * readers announce it. `slot="action"` stands under the text, `slot="media"` beside it: an image
6
- * that belongs to the message, such as a code to scan. Closed with the focus on its close button,
7
- * it hands the focus to the next stop on the page (else the one before) before it goes.
4
+ * It is a live region only with `live: true` in its data. `slot="media"` stands beside the text:
5
+ * an image that belongs to the message, such as a code to scan. Closed with the focus on its close
6
+ * button, it hands the focus to the next stop on the page, else the one before.
8
7
  */
9
8
  import { nothing, type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
10
9
  import { type FrameSettings } from '../../../core/element.js';
@@ -15,8 +14,6 @@ export declare class LintjeAnnouncement extends LintjeGridItemElement {
15
14
  static styles: import("lit").CSSResult[];
16
15
  static properties: PropertyDeclarations;
17
16
  data?: AnnouncementViewData | null;
18
- /** The tighter form. Below 768 px every announcement is compact. */
19
- compact: boolean;
20
17
  dismissed: string | null;
21
18
  filled: string | null;
22
19
  private fillFrame;
@@ -32,7 +29,6 @@ export declare class LintjeAnnouncement extends LintjeGridItemElement {
32
29
  protected updated(changed: PropertyValues<this>): void;
33
30
  protected render(): TemplateResult | typeof nothing;
34
31
  private block;
35
- private content;
36
32
  }
37
33
  declare global {
38
34
  interface HTMLElementTagNameMap {
@@ -1,12 +1,11 @@
1
1
  /**
2
2
  * `<lintje-conflict-alert>` — someone else changed the item while the reader was editing it.
3
3
  *
4
- * A compact live warning announcement above the form with three actions. It takes the focus when
5
- * it appears, so the keyboard continues at its buttons. It saves nothing; the host answers the
6
- * events. `lintje-conflict-compare` lets a host fetch the differences only when asked.
4
+ * A live warning above the form, with three actions; it takes the focus when it appears. It saves
5
+ * nothing: the host answers the events, and fetches the differences only when asked.
7
6
  *
8
7
  * Events: `lintje-conflict-keep-mine`, `lintje-conflict-take-theirs`, `lintje-conflict-compare`
9
- * `{ open }`.
8
+ * `{ open }` (the differences open or close).
10
9
  */
11
10
  import { type PropertyDeclarations, type TemplateResult } from 'lit';
12
11
  import { LintjeElement } from '../../../core/element.js';
@@ -1,15 +1,13 @@
1
1
  /**
2
2
  * `<lintje-empty-state>` — the empty state on its own, outside a tile.
3
3
  *
4
- * Not an error: a failure is the tile's error state or an inline alert. It brings no action or
5
- * words of its own; the host chooses them and slots the action. `compact` is one muted line
6
- * with a link button after it. `status` puts it in a `role="status"` for when it appears after
7
- * an action: drawn empty first and filled on the next frame, since a region that arrives with
8
- * its words is not announced.
4
+ * Not an error: a failure is the tile's error state or an inline alert. It brings no words or
5
+ * action of its own; the host chooses them and slots the action.
9
6
  */
10
7
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
11
8
  import { LintjeElement } from '../../../core/element.js';
12
- export type HeadingLevel = 2 | 3 | 4 | 5 | 6;
9
+ import { type HeadingLevel } from '../../../primitives/shared/empty-state-block.js';
10
+ export type { HeadingLevel } from '../../../primitives/shared/empty-state-block.js';
13
11
  export declare class LintjeEmptyState extends LintjeElement {
14
12
  #private;
15
13
  static styles: import("lit").CSSResult[];
@@ -20,6 +18,7 @@ export declare class LintjeEmptyState extends LintjeElement {
20
18
  text?: string;
21
19
  /** An icon file name. Not drawn when `compact`. */
22
20
  icon?: string;
21
+ /** One muted line, with a link button after it. */
23
22
  compact: boolean;
24
23
  level: HeadingLevel;
25
24
  /** Announces the state: it appeared after an action. */
@@ -29,9 +28,7 @@ export declare class LintjeEmptyState extends LintjeElement {
29
28
  disconnectedCallback(): void;
30
29
  protected updated(changed: PropertyValues<this>): void;
31
30
  private onSlotChange;
32
- private renderHeading;
33
31
  protected render(): TemplateResult;
34
- private content;
35
32
  }
36
33
  declare global {
37
34
  interface HTMLElementTagNameMap {