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,24 +1,22 @@
1
1
  /**
2
- * `<lintje-shell>` — the frame around a page: the Rijkshuisstijl header above it (`layout`
3
- * `top`, the default) or the menu beside it (`side`), the mobile header and menu below 768 px,
4
- * and a `<main>` with the host's content.
2
+ * `<lintje-shell>` — the frame around a page: the Rijkshuisstijl header above it or the menu
3
+ * beside it, the mobile header and menu below 768 px, and a `<main>` with the host's content.
5
4
  *
6
- * It never fetches and never reads the URL: the active page (`active`) and the reader's settings
7
- * (`view`, `menu`, `layout`) are the host's. A change goes out as `lintje-view-change` and comes
8
- * back as data. `name` is the page's one `h1`.
5
+ * It never fetches and never reads the URL: the active page and the reader's settings are the
6
+ * host's, and a change goes out as `lintje-view-change` and comes back as data. `full` runs edge
7
+ * to edge above the content, `header` holds the `lintje-page-header` and `footer` the
8
+ * `lintje-footer`. The events of its parts (`lintje-action`, `lintje-logout`,
9
+ * `lintje-notification-open`, `lintje-notifications-read`) reach the host as they are.
9
10
  *
10
- * Slots: `full` runs edge to edge above the content (a hero, a filter bar, a conversation); `header`
11
- * holds the page's title (`lintje-page-header`); the default slot the content, at the page's
12
- * width and padding; `footer` runs edge to edge under it all (`lintje-footer`).
13
- *
14
- * Events: `lintje-navigate` `{ href }`, `lintje-view-change`, `lintje-search-open`; from its
15
- * parts `lintje-action`, `lintje-logout`, `lintje-notification-open`, `lintje-notifications-read`.
11
+ * Events: `lintje-navigate` `{ href }`, `lintje-view-change` `ShellViewChange`,
12
+ * `lintje-search-open`.
16
13
  */
17
14
  import { nothing, type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
18
15
  import { LintjeElement, type FrameSettings } from '../../../core/element.js';
19
16
  import '../../../primitives/button/button.js';
20
17
  import '../../actions/logo/logo.js';
21
18
  import '../../feedback/toast/toast.js';
19
+ import type { ToastKind } from '../../feedback/toast/toast.js';
22
20
  import '../../actions/qr-code/qr-code.js';
23
21
  import '../notifications/notifications.js';
24
22
  import '../user-menu/user-menu.js';
@@ -58,6 +56,7 @@ export declare class LintjeShell extends LintjeElement {
58
56
  /** The `header` or default slot holds something; without, `full` takes the room. */
59
57
  hasContent: boolean;
60
58
  toast?: string | null;
59
+ toastKind: ToastKind;
61
60
  readonly wide: MediaController;
62
61
  readonly mobile: MediaController;
63
62
  readonly submenu: SubmenuController;
@@ -88,7 +87,7 @@ export declare class LintjeShell extends LintjeElement {
88
87
  /** Closes "Weergave" or "Delen" with the focus on its tool, in the bar that shows: each bar has
89
88
  * one, and below 768 px the top bar's is hidden. A `lintje-button` hands the focus inside. */
90
89
  closePanel(tool: string): void;
91
- showToast(text: string): void;
90
+ showToast(text: string, kind?: ToastKind): void;
92
91
  /** The main region lies under the bars that stay; the page scrolls it up to just below them. */
93
92
  skipToContent(event: Event): void;
94
93
  renderSearch(): TemplateResult | typeof nothing;
@@ -97,6 +96,8 @@ export declare class LintjeShell extends LintjeElement {
97
96
  renderUserMenu(inline: boolean): TemplateResult | typeof nothing;
98
97
  private renderSkipLink;
99
98
  private renderLogo;
99
+ /** Paper has no bars: the logo, the application's name and the environment say what it is. */
100
+ private renderPrintHead;
100
101
  private renderNavEnd;
101
102
  /** The slot of the nav bar keeps its height while the bar itself is pinned to the viewport. */
102
103
  private renderTop;
@@ -1,12 +1,11 @@
1
1
  /**
2
2
  * `<lintje-sub-nav>` — the navigation within one part of an application, beside its content.
3
3
  *
4
- * Groups of links, optionally under a label, and one action below them ("Nieuw …"). The host
5
- * marks the reader's page with `active`; an item's `items` show while it or one of them is active.
6
- * Below 768 px it is one button with the reader's page, which opens the list in place. It never
7
- * reads the URL.
4
+ * Groups of links and one action below them ("Nieuw …"). The host marks the reader's page with
5
+ * `active`; the element never reads the URL. Below 768 px it is one button with the reader's
6
+ * page, which opens the list in place.
8
7
  *
9
- * Events: `lintje-navigate` `{ href }`, `lintje-action` `{ value }` (the action).
8
+ * Events: `lintje-navigate` `{ href }`, `lintje-action` `{ value }` (the action was pressed).
10
9
  */
11
10
  import { nothing, type PropertyDeclarations, type TemplateResult } from 'lit';
12
11
  import { LintjeElement } from '../../../core/element.js';
@@ -25,7 +24,7 @@ export interface SubNavItem {
25
24
  };
26
25
  /** The page exists but the reader may not open it: struck through, with a lock. */
27
26
  noAccess?: boolean;
28
- /** The level below, shown while this item or one of them is active. */
27
+ /** The level below, shown while this item or one of them is active, or with `expanded`. */
29
28
  items?: SubNavItem[];
30
29
  }
31
30
  export interface SubNavGroup {
@@ -55,6 +54,11 @@ export declare class LintjeSubNav extends LintjeElement {
55
54
  action?: SubNavAction;
56
55
  /** The navigation's accessible name: "Instellingen". */
57
56
  label: string;
57
+ /**
58
+ * Every level shows, not only the one on the reader's path: for the list of a long page's
59
+ * sections, which must not shift while it is read.
60
+ */
61
+ expanded: boolean;
58
62
  /** Whether the phone's list is open. */
59
63
  open: boolean;
60
64
  private follow;
@@ -1,14 +1,12 @@
1
1
  /**
2
2
  * `<lintje-user-menu>` — the user's avatar in the navigation bar and the menu it opens: name and
3
- * role, the host's rows (`MenuEntry`, as `lintje-menu-button`), "Afmelden", the version.
3
+ * role, the host's rows (`MenuEntry`), "Afmelden" and the version.
4
4
  *
5
- * A menu, not a dialog: no trap, and an Escape pressed in a dialog opened over it is the
6
- * dialog's. With `logout-action` "Afmelden" is a real `<form method="post">` with the CSRF
7
- * token in a hidden `csrf_token` field: signing out leaves the page, which a fetch cannot do.
8
- * `inline` draws the content without button and popover, for the shell's mobile sheet.
5
+ * A menu, not a dialog: it traps no focus, and an Escape in a dialog opened over it is the
6
+ * dialog's.
9
7
  *
10
- * Events: `lintje-action` (the row's value), `lintje-navigate` `{ href }` for a link row,
11
- * `lintje-logout` (only without `logout-action`).
8
+ * Events: `lintje-action` `string` (the row's value), `lintje-navigate` `{ href }` (a link row),
9
+ * `lintje-logout` (without `logout-action`).
12
10
  */
13
11
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
14
12
  import { LintjeElement } from '../../../core/element.js';
@@ -24,11 +22,14 @@ export declare class LintjeUserMenu extends LintjeElement {
24
22
  items: MenuEntry[];
25
23
  /** Shown at the bottom: "Versie 2.4.1". */
26
24
  version?: string;
27
- /** The URL "Afmelden" posts to; without it "Afmelden" sends `lintje-logout`. */
25
+ /**
26
+ * The URL "Afmelden" posts a real `<form>` to: signing out leaves the page, which a fetch
27
+ * cannot do. Without it "Afmelden" sends `lintje-logout`.
28
+ */
28
29
  logoutAction?: string;
29
- /** The session's CSRF token, posted with "Afmelden". */
30
+ /** The session's CSRF token, posted with "Afmelden" in a hidden `csrf_token` field. */
30
31
  csrf: string;
31
- /** The content without button and popover, on the navigation's colours. */
32
+ /** The content without button and popover, on the navigation's colours: for the mobile sheet. */
32
33
  inline: boolean;
33
34
  open: boolean;
34
35
  private get trigger();
@@ -30,6 +30,7 @@ import './content/prose/prose.js';
30
30
  import './feedback/toast/toast.js';
31
31
  import './overlays/toggletip/toggletip.js';
32
32
  import './inputs/checkbox/checkbox.js';
33
+ import './inputs/checkbox-group/checkbox-group.js';
33
34
  import './inputs/number-input/number-input.js';
34
35
  import './inputs/radio-group/radio-group.js';
35
36
  import './inputs/text-input/text-input.js';
@@ -47,7 +48,7 @@ import './forms/form/form.js';
47
48
  import './forms/form-section/form-section.js';
48
49
  import './forms/error-summary/error-summary.js';
49
50
  import './forms/form-actions/form-actions.js';
50
- import './overlays/confirm-dialog/confirm-dialog.js';
51
+ import './overlays/dialog/dialog.js';
51
52
  import './inputs/textarea/textarea.js';
52
53
  import './inputs/file-upload/file-upload.js';
53
54
  import './inputs/combobox/combobox.js';
@@ -78,6 +79,7 @@ import './tables/tree-view/tree-view.js';
78
79
  import './tables/sortable-list/sortable-list.js';
79
80
  import './tables/description-list/description-list.js';
80
81
  import './feedback/empty-state/empty-state.js';
82
+ import './feedback/error-page/error-page.js';
81
83
  import './tables/activity-log/activity-log.js';
82
84
  import './actions/copy-button/copy-button.js';
83
85
  import './actions/qr-code/qr-code.js';
@@ -91,8 +93,6 @@ import './content/transcript/transcript.js';
91
93
  import './content/document-viewer/document-viewer.js';
92
94
  import './feedback/conflict-alert/conflict-alert.js';
93
95
  import './frame/app-search/app-search.js';
94
- import './frame/shortcuts/shortcuts.js';
95
- import './frame/session-expiry/session-expiry.js';
96
96
  import './frame/notifications/notifications.js';
97
97
  export { LintjeAnnouncement } from './feedback/announcement/announcement.js';
98
98
  export { LintjeChart } from './charts/chart/chart.js';
@@ -126,6 +126,7 @@ export type { ToggletipPlacement } from './overlays/toggletip/toggletip.js';
126
126
  export { LintjeInputElement } from './inputs/shared/input.js';
127
127
  export type { InputValue } from './inputs/shared/input.js';
128
128
  export { LintjeCheckbox } from './inputs/checkbox/checkbox.js';
129
+ export { LintjeCheckboxGroup } from './inputs/checkbox-group/checkbox-group.js';
129
130
  export { LintjeNumberInput } from './inputs/number-input/number-input.js';
130
131
  export { LintjeRadioGroup } from './inputs/radio-group/radio-group.js';
131
132
  export { LintjeTextInput } from './inputs/text-input/text-input.js';
@@ -150,8 +151,8 @@ export { LintjeErrorSummary } from './forms/error-summary/error-summary.js';
150
151
  export type { ErrorSummaryItem } from './forms/error-summary/error-summary.js';
151
152
  export { LintjeFormActions } from './forms/form-actions/form-actions.js';
152
153
  export type { FormActionsState } from './forms/form-actions/form-actions.js';
153
- export { LintjeConfirmDialog } from './overlays/confirm-dialog/confirm-dialog.js';
154
- export type { ConfirmTone, ConfirmCloseReason } from './overlays/confirm-dialog/confirm-dialog.js';
154
+ export { LintjeDialog } from './overlays/dialog/dialog.js';
155
+ export type { DialogCloseReason } from './overlays/dialog/dialog.js';
155
156
  export { LintjeTextarea } from './inputs/textarea/textarea.js';
156
157
  export { LintjeFileUpload } from './inputs/file-upload/file-upload.js';
157
158
  export type { UploadFile } from './inputs/file-upload/file-upload.js';
@@ -201,6 +202,8 @@ export type { SortableItem } from './tables/sortable-list/sortable-list.js';
201
202
  export { LintjeDescriptionList } from './tables/description-list/description-list.js';
202
203
  export type { DescriptionItem, DescriptionAction } from './tables/description-list/description-list.js';
203
204
  export { LintjeEmptyState } from './feedback/empty-state/empty-state.js';
205
+ export { LintjeErrorPage } from './feedback/error-page/error-page.js';
206
+ export type { ErrorPageLink } from './feedback/error-page/error-page.js';
204
207
  export { LintjeActivityLog } from './tables/activity-log/activity-log.js';
205
208
  export type { ActivityEntry } from './tables/activity-log/activity-log.js';
206
209
  export { LintjeCopyButton } from './actions/copy-button/copy-button.js';
@@ -225,10 +228,6 @@ export { LintjeDocumentViewer } from './content/document-viewer/document-viewer.
225
228
  export type { ZoomLevel } from './content/document-viewer/document-viewer.js';
226
229
  export { LintjeAppSearch } from './frame/app-search/app-search.js';
227
230
  export type { SearchGroup, SearchResult, AppSearchCloseReason } from './frame/app-search/app-search.js';
228
- export { LintjeShortcuts } from './frame/shortcuts/shortcuts.js';
229
- export type { ShortcutsCloseReason } from './frame/shortcuts/shortcuts.js';
230
- export { LintjeSessionExpiry } from './frame/session-expiry/session-expiry.js';
231
- export type { SessionPhase, RestoredReason } from './frame/session-expiry/session-expiry.js';
232
231
  export { LintjeNotifications } from './frame/notifications/notifications.js';
233
232
  export type { NotificationItem } from './frame/notifications/notifications.js';
234
233
  export { MediaController, MOBILE, WIDE } from '../core/media.js';
@@ -1,15 +1,15 @@
1
1
  /**
2
- * `<lintje-checkbox>` — a checkbox; `indeterminate` shows a dash. The value is `checked`, a
3
- * boolean, not `value` (the string a native checkbox submits). `lintje-values-change` goes out
4
- * only with a `name`, so `lintje-multiselect`'s unnamed rows leak nothing to the host.
2
+ * `<lintje-checkbox>` — a checkbox; `indeterminate` shows a dash.
5
3
  *
6
- * Events: `lintje-change` with the boolean; with a `name` also `lintje-values-change`.
4
+ * Events: `lintje-change` `boolean`, `lintje-values-change` `{ [name]: value }` (with a `name`),
5
+ * `lintje-reset` (the reset link was pressed).
7
6
  */
8
7
  import { type PropertyDeclarations, type TemplateResult } from 'lit';
9
8
  import { LintjeInputElement } from '../shared/input.js';
10
9
  export declare class LintjeCheckbox extends LintjeInputElement {
11
10
  static styles: import("lit").CSSResult[];
12
11
  static properties: PropertyDeclarations;
12
+ /** The value: a boolean, not `value` (the string a native checkbox submits). */
13
13
  checked: boolean;
14
14
  indeterminate: boolean;
15
15
  private change;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * `<lintje-checkbox-group>` — several options under one label, a checkbox per line, with one hint
3
+ * and one message for the group.
4
+ *
5
+ * Only the group tells the host: its rows carry no `name`. `required` draws nothing and sets no
6
+ * ARIA, since a group cannot carry `aria-required`: the host's message says what is missing.
7
+ *
8
+ * Events: `lintje-change` `string[]` (the checked values), `lintje-values-change`
9
+ * `{ [name]: value }` (with a `name`), `lintje-reset` (the reset link was pressed).
10
+ */
11
+ import { type PropertyDeclarations, type TemplateResult } from 'lit';
12
+ import { LintjeInputElement } from '../shared/input.js';
13
+ import '../checkbox/checkbox.js';
14
+ import type { FilterOption } from '../../../types.js';
15
+ export declare class LintjeCheckboxGroup extends LintjeInputElement {
16
+ static styles: import("lit").CSSResult[];
17
+ static properties: PropertyDeclarations;
18
+ /** A `description` stands under its option. */
19
+ options?: FilterOption[];
20
+ /**
21
+ * The checked values, in the order of `options`; a value the options do not hold is kept after
22
+ * them. A property, not an attribute: a server-rendered page sets it as data.
23
+ */
24
+ selected: string[];
25
+ private toggle;
26
+ protected focusControl(options?: FocusOptions): void;
27
+ protected render(): TemplateResult;
28
+ }
29
+ declare global {
30
+ interface HTMLElementTagNameMap {
31
+ 'lintje-checkbox-group': LintjeCheckboxGroup;
32
+ }
33
+ }
@@ -1,11 +1,13 @@
1
1
  /**
2
- * `<lintje-combobox>` — search while typing and choose one value. Typing narrows `.options`
3
- * itself; with `remote` it sends `lintje-search` after typing stops and shows a busy row until
4
- * the host sets new `.options` (it never fetches). Text that matches no option is never a value;
5
- * emptying the field commits `null`. Escape closes and restores the previous value.
2
+ * `<lintje-combobox>` — search while typing and choose one value.
6
3
  *
7
- * Events: `lintje-change`; with a `name` also the composed `lintje-values-change`. With
8
- * `remote`: composed `lintje-search` `{ query }`.
4
+ * Typing narrows `options` itself, unless `remote`; the element never fetches. Text that matches
5
+ * no option is never a value, and emptying the field commits `null`. Escape closes and restores
6
+ * the previous value.
7
+ *
8
+ * Events: `lintje-change` `string | null`, `lintje-values-change` `{ [name]: value }` (with a
9
+ * `name`), `lintje-reset` (the reset link was pressed), `lintje-search` `{ query }` (with
10
+ * `remote`, after typing stops).
9
11
  */
10
12
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
11
13
  import '../../../primitives/popover/popover.js';
@@ -21,6 +23,10 @@ export declare class LintjeCombobox extends LintjeInputElement {
21
23
  value: string | null;
22
24
  options?: FilterOption[];
23
25
  placeholder: string;
26
+ /**
27
+ * The host searches: `lintje-search` goes out after typing stops, and a busy row shows until
28
+ * the host sets new `options`.
29
+ */
24
30
  remote: boolean;
25
31
  loadingLabel: string;
26
32
  emptyLabel: string;
@@ -1,12 +1,12 @@
1
1
  /**
2
2
  * `<lintje-date-input>` — one day, typed or picked in a calendar popover.
3
3
  *
4
- * The field shows `dd-mm-jjjj`; what crosses is ISO, or `null` when empty. Typed text is read on
5
- * leaving the field or Enter (`date-format.ts`). The element checks its own text and shows a
6
- * message in place of the hint; a host's `error` wins. A calendar day is no time zone. Tab out of
7
- * the element closes the calendar, so it does not cover the next field.
4
+ * The field shows `dd-mm-jjjj`; what crosses is ISO, or `null` when empty. The element reads typed
5
+ * text on leaving the field or Enter, checks it and shows a message in place of the hint; a host's
6
+ * `error` wins. A calendar day knows no time zone. Tab out of the element closes the calendar.
8
7
  *
9
- * Events: `lintje-change` with the ISO day or `null`; with a `name` also `lintje-values-change`.
8
+ * Events: `lintje-change` `string | null` (the ISO day), `lintje-values-change`
9
+ * `{ [name]: value }` (with a `name`), `lintje-reset` (the reset link was pressed).
10
10
  */
11
11
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
12
12
  import { LintjeInputElement } from '../shared/input.js';
@@ -1,12 +1,12 @@
1
1
  /**
2
2
  * `<lintje-date-range>` — the date range picker: a field and a popover with a calendar, presets
3
- * and "Wissen"/"Toepassen". Dates cross as `dd-mm-yyyy`; a change carries `{from, to}`.
3
+ * and "Wissen"/"Toepassen".
4
4
  *
5
- * `accessible-name` names the field inside, which `aria-label` on the host would not; the field's
6
- * name ends in the chosen range. The calendar is one tab stop, walked with the date input's keys.
7
- * Escape closes only the popover (`ownsEscape`); it and "Toepassen" give the focus back to the
8
- * field. Tab out of the element closes the popover. Events: `lintje-change`; with a `name` also
9
- * `lintje-values-change` (`shared/input.ts`).
5
+ * Escape closes only the popover; it and "Toepassen" give the focus back to the field. Tab out of
6
+ * the element closes the popover.
7
+ *
8
+ * Events: `lintje-change` `{ from, to }`, `lintje-values-change` `{ [name]: value }` (with a
9
+ * `name`), `lintje-reset` (the reset link was pressed).
10
10
  */
11
11
  import { type PropertyDeclarations, type TemplateResult } from 'lit';
12
12
  import { LintjeInputElement } from '../shared/input.js';
@@ -28,9 +28,14 @@ export declare function formatDate(date: Date): string;
28
28
  export declare class LintjeDateRange extends LintjeInputElement {
29
29
  static styles: import("lit").CSSResult[];
30
30
  static properties: PropertyDeclarations;
31
+ /**
32
+ * Names the field inside, which `aria-label` on the host would not; the name ends in the
33
+ * chosen range.
34
+ */
31
35
  accessibleName: string;
32
36
  stacked: boolean;
33
37
  open: boolean;
38
+ /** The chosen days, as `dd-mm-yyyy`. */
34
39
  range: DateRange;
35
40
  /** A form gets the days as the URL does: ISO. */
36
41
  protected get postedValue(): unknown;
@@ -1,7 +1,9 @@
1
1
  /**
2
- * `<lintje-field>` — the label above a filter control. No `for`: a `<label for>` cannot name a
3
- * control in another shadow root, so each control carries its own `aria-label`; a click on the
4
- * label focuses the first slotted control that takes focus.
2
+ * `<lintje-field>` — the label above a filter control.
3
+ *
4
+ * A click on the label focuses the first slotted control that takes focus. There is no `for`: a
5
+ * `<label for>` cannot name a control in another shadow root, so each control carries its own
6
+ * `aria-label`.
5
7
  */
6
8
  import { type PropertyDeclarations, type TemplateResult } from 'lit';
7
9
  import { LintjeElement } from '../../../core/element.js';
@@ -1,15 +1,13 @@
1
1
  /**
2
2
  * `<lintje-file-upload>` — choose or drop files, and see per file how far it is and how it ended.
3
- * It never uploads: it checks files against `accept` and `max-size`, sends the ones that pass
4
- * with `lintje-files-add`, and draws the rows from `.files`. A file it refuses itself never
5
- * reaches the host. Its value is the ids of the rows that are done.
6
3
  *
7
- * The button is the one control: it carries the label in its name and the types, the size and
8
- * the hint or error as its description. When a row with the focus goes, the focus moves to the
9
- * row in its place, else the one before, else the button.
4
+ * It never uploads: it checks files against `accept` and `max-size`, sends the ones that pass with
5
+ * `lintje-files-add` and draws the rows from `files`. A file it refuses never reaches the host.
6
+ * Its value is the ids of the rows that are done.
10
7
  *
11
- * Events: `lintje-files-add` (the `File[]`), `lintje-file-remove` `{ id }`, `lintje-file-cancel`
12
- * `{ id }` — composed; `lintje-change` and, with a `name`, `lintje-values-change`.
8
+ * Events: `lintje-files-add` `File[]`, `lintje-file-remove` `{ id }`, `lintje-file-cancel`
9
+ * `{ id }`, `lintje-change` `string[]`, `lintje-values-change` `{ [name]: value }` (with a
10
+ * `name`), `lintje-reset` (the reset link was pressed).
13
11
  */
14
12
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
15
13
  import '../../../primitives/button/button.js';
@@ -2,13 +2,11 @@
2
2
  * `<lintje-multiselect>` — several values in one field: chips in the field, a search and a
3
3
  * checkbox list in the popover.
4
4
  *
5
- * Rows are `<lintje-checkbox>` without a `name`, so no filter change escapes the popover. The
6
- * popover is a dialog, not a listbox: it holds a search field and buttons besides the rows. It is
7
- * fixed to the viewport and anchored to the field: an absolute one is cut off by the scrolling
8
- * filter bar and sheet around it. Escape closes only the popover (`ownsEscape`) and gives the
9
- * focus back to the field; so does Tab out of the element, without taking the focus back.
5
+ * The popover is fixed to the viewport, so a scrolling filter bar or sheet around it does not cut
6
+ * it off. Escape and Tab out of the element close only the popover.
10
7
  *
11
- * Events: `lintje-change`; with a `name` also `lintje-values-change` (`shared/input.ts`).
8
+ * Events: `lintje-change` `string[]`, `lintje-values-change` `{ [name]: value }` (with a `name`),
9
+ * `lintje-reset` (the reset link was pressed).
12
10
  */
13
11
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
14
12
  import { LintjeInputElement } from '../shared/input.js';
@@ -1,11 +1,12 @@
1
1
  /**
2
- * `<lintje-number-input>` — a −/+ stepper around a centred value, or a unit on the right
3
- * without the stepper. Commits on `change`; a press on − or + commits at once.
2
+ * `<lintje-number-input>` — a −/+ stepper around a centred value, or a unit on the right without
3
+ * the stepper.
4
4
  *
5
- * `stepper` defaults to `true`, so it can only be turned off as a property: `?stepper=${false}`
6
- * removes an attribute that was never there. A shown unit describes the field. At `min` or `max`
7
- * the step is `aria-disabled`, not disabled, so the focus on it stays. Events: `lintje-change`,
8
- * and `lintje-values-change` with a `name`.
5
+ * It commits on `change`; a press on − or + commits at once. At `min` or `max` the step stays
6
+ * focusable but does nothing.
7
+ *
8
+ * Events: `lintje-change` `number | null`, `lintje-values-change` `{ [name]: value }` (with a
9
+ * `name`), `lintje-reset` (the reset link was pressed).
9
10
  */
10
11
  import { type PropertyDeclarations, type TemplateResult } from 'lit';
11
12
  import { LintjeFormInputElement } from '../shared/input.js';
@@ -17,7 +18,7 @@ export declare class LintjeNumberInput extends LintjeFormInputElement {
17
18
  min?: number;
18
19
  max?: number;
19
20
  step: number;
20
- /** The unit on the right, e.g. "min"; shown only without the stepper. */
21
+ /** The unit on the right, e.g. "min", which describes the field; only without the stepper. */
21
22
  unit?: string;
22
23
  /** The −/+ buttons. Bind as `.stepper=${false}`, never `?stepper=`. */
23
24
  stepper: boolean;
@@ -1,10 +1,8 @@
1
1
  /**
2
2
  * `<lintje-radio-group>` — one option per line, for options that do not fit `lintje-segmented`.
3
- * Options are `FilterOption[]`. Arrow keys are the browser's: the inputs share one `name` inside
4
- * this shadow root, so two groups never collide. `variant="cards"` draws each option as a card in
5
- * a grid, its `description` under the label, the chosen one quiet as in `lintje-segmented`.
6
3
  *
7
- * Events: `lintje-change`; with a `name` also `lintje-values-change` (`shared/input.ts`).
4
+ * Events: `lintje-change` `string`, `lintje-values-change` `{ [name]: value }` (with a `name`),
5
+ * `lintje-reset` (the reset link was pressed).
8
6
  */
9
7
  import { type PropertyDeclarations, type TemplateResult } from 'lit';
10
8
  import { LintjeInputElement } from '../shared/input.js';
@@ -1,13 +1,12 @@
1
1
  /**
2
2
  * `<lintje-range>` — one track, one or two handles, over labeled steps.
3
3
  *
4
- * Two handles: `from` and `to` are indexes into `steps`, and a change is `[from, to]`. With
5
- * `single`, `value` is the step itself, not its index, and a change is that step. A drag commits
6
- * when the pointer is let go (`draft`/`draftPair` show it meanwhile); a key press commits at once.
7
- * With two handles only the thumbs take the pointer, so a press on the track moves the nearer
8
- * handle there; on stacked handles the side of the press decides.
4
+ * With two handles `from` and `to` are indexes into `steps`, and a change is `[from, to]`; with
5
+ * `single`, `value` is the step itself, and a change is that step. A drag commits when the pointer
6
+ * is let go, a key press at once.
9
7
  *
10
- * Events: `lintje-change`; with a `name` also `lintje-values-change` (`shared/input.ts`).
8
+ * Events: `lintje-change` `[number, number] | number | string`, `lintje-values-change`
9
+ * `{ [name]: value }` (with a `name`), `lintje-reset` (the reset link was pressed).
11
10
  */
12
11
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
13
12
  import { LintjeInputElement } from '../shared/input.js';
@@ -1,11 +1,14 @@
1
1
  /**
2
- * `<lintje-segmented>` — one row of options, the chosen one marked. A row wider than its room
3
- * stands as a column instead, each option a row of its own.
4
- * In a filter bar it is `hide-label` and nameless; the bar decides what to commit.
2
+ * `<lintje-segmented>` — one row of options, the chosen one marked; a row wider than its room
3
+ * stands as a column.
5
4
  *
6
- * Events: `lintje-change`; with a `name` also the composed `lintje-values-change`.
5
+ * In a filter bar it is `hide-label` and nameless: the bar decides what to commit.
6
+ *
7
+ * Events: `lintje-change` `string`, `lintje-values-change` `{ [name]: value }` (with a `name`),
8
+ * `lintje-reset` (the reset link was pressed).
7
9
  */
8
10
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
11
+ import '../../../primitives/badge/badge.js';
9
12
  import { LintjeInputElement } from '../shared/input.js';
10
13
  import type { FilterOption } from '../../../types.js';
11
14
  export declare class LintjeSegmented extends LintjeInputElement {
@@ -1,9 +1,11 @@
1
1
  /**
2
2
  * `<lintje-select>` — a select, bold once the value differs from the default.
3
- * The filter bar passes no `name` and sets `hide-label`. The width is the host's, not inline,
4
- * so `filter-layout.css` can narrow it from outside.
5
3
  *
6
- * Events: `lintje-change`; with a `name` also the composed `lintje-values-change`.
4
+ * In a filter bar it is `hide-label` and nameless. Its width is the host's, so the filter layout
5
+ * can narrow it from outside.
6
+ *
7
+ * Events: `lintje-change` `string`, `lintje-values-change` `{ [name]: value }` (with a `name`),
8
+ * `lintje-reset` (the reset link was pressed).
7
9
  */
8
10
  import { type PropertyDeclarations, type TemplateResult } from 'lit';
9
11
  import { LintjeInputElement } from '../shared/input.js';
@@ -12,6 +14,7 @@ export declare class LintjeSelect extends LintjeInputElement {
12
14
  static styles: import("lit").CSSResult[];
13
15
  static properties: PropertyDeclarations;
14
16
  value: string;
17
+ /** Bold the value, as a modified filter does. */
15
18
  bold: boolean;
16
19
  stacked: boolean;
17
20
  options?: FilterOption[];
@@ -1,11 +1,12 @@
1
1
  /**
2
2
  * `<lintje-slot-picker>` — a time for an appointment: days side by side, each with its times as
3
- * options. One radio group over every day, so the arrow keys walk the times and Tab stops once;
4
- * a time's name carries its day. A full time stays, disabled, with the word "Vol" beside it
5
- * (rule 13), and a day without times says so. The days are the host's: it sends the ones it
6
- * offers, and pages them itself.
3
+ * options.
7
4
  *
8
- * Events: `lintje-change` with the chosen time's `value`; with a `name` also `lintje-values-change`.
5
+ * The days are the host's: it sends the ones it offers, and pages them itself. One radio group
6
+ * spans every day, so Tab stops once. A full time stays, disabled, with the word "Vol" beside it.
7
+ *
8
+ * Events: `lintje-change` `string` (the chosen time's `value`), `lintje-values-change`
9
+ * `{ [name]: value }` (with a `name`), `lintje-reset` (the reset link was pressed).
9
10
  */
10
11
  import { type PropertyDeclarations, type TemplateResult } from 'lit';
11
12
  import { LintjeInputElement } from '../shared/input.js';
@@ -1,10 +1,12 @@
1
1
  /**
2
- * `<lintje-tag-input>` — free keywords as chips in one field. Enter, a comma, a paste with commas
3
- * or leaving the field makes chips; a duplicate lights up its chip and is said instead of being
4
- * added. With `.options` it also suggests options, and still takes a word that is not among them.
5
- * A chip's cross is its one control: the arrows walk the crosses, Backspace and Delete remove.
2
+ * `<lintje-tag-input>` — free keywords as chips in one field.
6
3
  *
7
- * Events: `lintje-change`; with a `name` also the composed `lintje-values-change`.
4
+ * Enter, a comma, a paste with commas or leaving the field makes chips; a duplicate is pointed out
5
+ * instead of added. With `options` it also suggests, and still takes a word that is not among
6
+ * them.
7
+ *
8
+ * Events: `lintje-change` `string[]`, `lintje-values-change` `{ [name]: value }` (with a `name`),
9
+ * `lintje-reset` (the reset link was pressed).
8
10
  */
9
11
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
10
12
  import '../../../primitives/popover/popover.js';
@@ -1,11 +1,11 @@
1
1
  /**
2
- * `<lintje-text-editor>` — formatted text (bold, italic, one heading, a bullet list, a link);
3
- * the value is markdown (`markdown.ts`). Formatting uses `document.execCommand`, the one API
4
- * every browser has for a `contenteditable` selection; the markdown writer reads only the five
5
- * formats from whatever markup it leaves. Commits when the surface loses focus, if changed.
6
- * A link is http(s), mailto, tel or relative; any other scheme is dropped.
2
+ * `<lintje-text-editor>` — formatted text: bold, italic, one heading, a bullet list and a link.
7
3
  *
8
- * Events: `lintje-change` with the markdown; with a `name` also the composed `lintje-values-change`.
4
+ * The value is markdown, committed when the surface loses focus, if changed. A link is http(s),
5
+ * mailto, tel or relative; any other scheme is dropped.
6
+ *
7
+ * Events: `lintje-change` `string` (the markdown), `lintje-values-change` `{ [name]: value }`
8
+ * (with a `name`), `lintje-reset` (the reset link was pressed).
9
9
  */
10
10
  import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
11
11
  import { LintjeInputElement } from '../shared/input.js';
@@ -1,10 +1,12 @@
1
1
  /**
2
- * `<lintje-text-input>` — a text field: `clearable`, `error`, `readonly`, and `type` text,
3
- * search, password or email. It checks nothing itself; the host sets `error`.
2
+ * `<lintje-text-input>` — a text field: text, search, password or email.
4
3
  *
5
- * It commits on `change` (leaving the field, Enter), since every commit is a URL change and a
6
- * tile reload. `commit="input"` bundles keystrokes and commits 300 ms after the last. The same
7
- * value is never committed twice. Events: `lintje-change`, and `lintje-values-change` with `name`.
4
+ * It checks nothing itself: the host sets `error`. It commits on `change` (leaving the field,
5
+ * Enter), since every commit is a URL change and a tile reload, and never commits the same value
6
+ * twice.
7
+ *
8
+ * Events: `lintje-change` `string`, `lintje-values-change` `{ [name]: value }` (with a `name`),
9
+ * `lintje-reset` (the reset link was pressed).
8
10
  */
9
11
  import { nothing, type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
10
12
  import '../../../primitives/button/button.js';
@@ -22,7 +24,10 @@ export declare class LintjeTextInput extends LintjeFormInputElement {
22
24
  clearable: boolean;
23
25
  stacked: boolean;
24
26
  type: TextInputType;
25
- /** The attribute `commit`; `commit()` is the method every input commits through. */
27
+ /**
28
+ * The attribute `commit`; `commit()` is the method every input commits through. `input`
29
+ * bundles keystrokes and commits 300 ms after the last.
30
+ */
26
31
  commitOn: CommitOn;
27
32
  /** Passed to the native input as is. */
28
33
  autocomplete: string;