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,184 +0,0 @@
1
- import { Bt as e, Gt as t, Ht as n, It as r, Lt as i, Nt as a, qt as o, zt as s } from "../chunks/base-Bg-IFOPG.js";
2
- import { n as c, t as l } from "../chunks/focus-trap-9BnE-xWv.js";
3
- import "./announcement.js";
4
- import { t as u } from "../chunks/confirm-dialog-D5EVGuil.js";
5
- //#region src/components/frame/session-expiry/session-expiry.css?inline
6
- var d = "/* The warning is a fixed window in `confirm-dialog.css`'s frame. */\n:host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n@media (max-width: 767px) {\n .lintje-session-expiry__primary { order: 1; }\n .lintje-session-expiry__logout { order: 2; }\n}\n", f = 20;
7
- function p(e, t, n, r = !1) {
8
- if (r) return "expired";
9
- if (e === null || Number.isNaN(e)) return "active";
10
- let i = e - t;
11
- return i <= 0 ? "expired" : i <= n * 1e3 ? "warning" : "active";
12
- }
13
- function m(e) {
14
- let t = Math.max(1, Math.ceil(e / 6e4));
15
- return `Je sessie verloopt over ${t} ${t === 1 ? "minuut" : "minuten"}`;
16
- }
17
- function h(e) {
18
- let t = new Date(e);
19
- return Number.isNaN(t.getTime()) ? null : t.toLocaleTimeString("nl-NL", {
20
- hour: "2-digit",
21
- minute: "2-digit"
22
- });
23
- }
24
- var g = class extends s {
25
- constructor(...e) {
26
- super(...e), this.warnBefore = 120, this.restoredReason = "logout", this.busy = !1, this.expired = !1, this.now = Date.now, this.clock = 0, this.#e = new i(this, r), this.#t = null, this.#n = null, this.#r = new l(), this.#i = null, this.#a = (e) => {
27
- e.key === "Escape" && this.#r.isTopmost() && (e.stopPropagation(), e.preventDefault());
28
- };
29
- }
30
- static {
31
- this.styles = [n(u), n(d)];
32
- }
33
- static {
34
- this.properties = {
35
- expiresAt: {
36
- type: String,
37
- attribute: "expires-at"
38
- },
39
- warnBefore: {
40
- type: Number,
41
- attribute: "warn-before"
42
- },
43
- restoredAt: {
44
- type: String,
45
- attribute: "restored-at"
46
- },
47
- restoredReason: {
48
- type: String,
49
- attribute: "restored-reason"
50
- },
51
- busy: {
52
- type: Boolean,
53
- reflect: !0
54
- },
55
- expired: {
56
- type: Boolean,
57
- reflect: !0
58
- },
59
- now: { attribute: !1 },
60
- clock: { state: !0 }
61
- };
62
- }
63
- #e;
64
- #t;
65
- #n;
66
- #r;
67
- #i;
68
- #a;
69
- get phase() {
70
- let e = this.expiresAt ? new Date(this.expiresAt).getTime() : null, t = Number.isFinite(this.warnBefore) ? this.warnBefore : 120;
71
- return p(e, this.clock, Math.max(20, t), this.expired);
72
- }
73
- connectedCallback() {
74
- super.connectedCallback(), this.clock = this.now(), this.#o();
75
- }
76
- disconnectedCallback() {
77
- this.#s(), this.#c(), super.disconnectedCallback();
78
- }
79
- willUpdate(e) {
80
- super.willUpdate(e), (e.has("expiresAt") || e.has("now")) && (this.clock = this.now());
81
- }
82
- #o() {
83
- if (!this.expiresAt || !this.isConnected) return this.#s();
84
- this.#t === null && (this.#t = setInterval(() => this.clock = this.now(), 1e3));
85
- }
86
- #s() {
87
- this.#t !== null && clearInterval(this.#t), this.#t = null;
88
- }
89
- updated(e) {
90
- super.updated(e), e.has("expiresAt") && this.#o();
91
- let t = this.phase;
92
- if (t === "active") this.#c();
93
- else {
94
- if (!this.#n) {
95
- this.#n = a(), document.addEventListener("keydown", this.#a, !0);
96
- let e = this.renderRoot.querySelector(".lintje-session-expiry");
97
- e && this.#r.activate(e, { focus: !1 });
98
- }
99
- if (this.#i !== t) {
100
- this.#i = t;
101
- let e = this.renderRoot.querySelector(".lintje-session-expiry__primary");
102
- e && e.updateComplete.then(() => {
103
- this.#r.isTopmost() && c(e).focus();
104
- });
105
- }
106
- }
107
- }
108
- #c() {
109
- this.#i = null, this.#n && (document.removeEventListener("keydown", this.#a, !0), this.#n(), this.#n = null, this.#r.deactivate());
110
- }
111
- renderRestored() {
112
- if (!this.restoredAt) return t;
113
- let e = h(this.restoredAt), n = this.restoredReason === "reload" ? {
114
- kind: "ok",
115
- text: e ? `Je concept van ${e} is teruggezet.` : "Je concept is teruggezet."
116
- } : {
117
- kind: "ok",
118
- title: "Je concept is teruggezet.",
119
- text: e ? `Het is van ${e}, van voor het afmelden.` : "Het is van voor het afmelden."
120
- };
121
- return o`<lintje-announcement compact .data=${n}>
122
- <lintje-button slot="action" variant="link" @click=${() => this.emit("lintje-draft-discard")}
123
- >Concept weggooien</lintje-button
124
- >
125
- </lintje-announcement>`;
126
- }
127
- renderDialog(e) {
128
- if (e === "active") return t;
129
- let n = this.#e.matches, r = e === "expired", i = this.expiresAt ? new Date(this.expiresAt).getTime() : this.clock;
130
- return o`<div class="lintje-confirm-dialog__scrim">
131
- <div
132
- class="lintje-confirm-dialog lintje-session-expiry"
133
- role="alertdialog"
134
- aria-modal="true"
135
- aria-labelledby="lintje-session-expiry-heading"
136
- tabindex="-1"
137
- aria-describedby="lintje-session-expiry-text"
138
- >
139
- <h2 id="lintje-session-expiry-heading" class="lintje-confirm-dialog__heading">
140
- ${r ? "Je bent afgemeld" : m(i - this.clock)}
141
- </h2>
142
- <div id="lintje-session-expiry-text" class="lintje-confirm-dialog__text">
143
- ${r ? o`<slot name="expired"
144
- >Je sessie is verlopen. Meld je opnieuw aan; je komt terug op deze pagina.</slot
145
- >` : o`<slot
146
- >Je invoer wordt bewaard in deze browser. Blijf aangemeld om door te werken.</slot
147
- >`}
148
- </div>
149
- <div class="lintje-confirm-dialog__actions">
150
- ${r ? o`<lintje-button
151
- class="lintje-session-expiry__primary"
152
- variant="primary"
153
- ?block=${n}
154
- @click=${() => this.emit("lintje-login")}
155
- >Opnieuw aanmelden</lintje-button
156
- >` : o`<lintje-button
157
- class="lintje-session-expiry__logout"
158
- variant="tertiary"
159
- ?block=${n}
160
- ?disabled=${this.busy}
161
- @click=${() => this.emit("lintje-logout")}
162
- >Afmelden</lintje-button
163
- >
164
- <lintje-button
165
- class="lintje-session-expiry__primary"
166
- variant="primary"
167
- ?block=${n}
168
- ?busy=${this.busy}
169
- @click=${() => {
170
- this.busy || this.emit("lintje-session-extend");
171
- }}
172
- >Aangemeld blijven</lintje-button
173
- >`}
174
- </div>
175
- </div>
176
- </div>`;
177
- }
178
- render() {
179
- return o`${this.renderRestored()}${this.renderDialog(this.phase)}`;
180
- }
181
- };
182
- e("lintje-session-expiry", g);
183
- //#endregion
184
- export { g as LintjeSessionExpiry, f as MIN_WARNING, h as clockTime, p as sessionPhase, m as warningTitle };
@@ -1 +0,0 @@
1
- export * from '../types/components/frame/shortcuts/shortcuts.js'
@@ -1,104 +0,0 @@
1
- import { Bt as e, Ct as t, Gt as n, Ht as r, Nt as i, St as a, qt as o, vt as s, wt as c, xt as l, yt as u, zt as d } from "../chunks/base-Bg-IFOPG.js";
2
- import { t as f } from "../chunks/focus-trap-9BnE-xWv.js";
3
- import { t as p } from "../chunks/key-CuuOw1KE.js";
4
- import "./toggle.js";
5
- import { t as m } from "../chunks/confirm-dialog-D5EVGuil.js";
6
- //#region src/components/frame/shortcuts/shortcuts.css?inline
7
- var h = "/* The frame is `confirm-dialog.css`. The host takes no space: a closed overview renders nothing. */\n:host { display: contents; }\n\n/* ------------------------------------------------------------------------ */\n\n/* The window takes focus when it opens so Escape and the screen reader start there. */\n\n.lintje-shortcuts__list {\n display: grid;\n grid-template-columns: minmax(0, 1fr) auto;\n margin: 0;\n font: var(--text-ui);\n}\n.lintje-shortcuts__what,\n.lintje-shortcuts__keys {\n margin: 0;\n padding: var(--space-2) 0;\n border-bottom: 1px solid var(--color-border-default);\n}\n.lintje-shortcuts__keys {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: var(--space-1);\n padding-left: var(--space-4);\n}\n.lintje-shortcuts__what:nth-last-of-type(1),\n.lintje-shortcuts__keys:nth-last-of-type(1) { border-bottom: 0; }\n\n/* The switch for the one-character keys, under the list. */\n.lintje-shortcuts__setting { display: block; margin-top: var(--space-4); }\n", g = class extends d {
8
- constructor(...e) {
9
- super(...e), this.open = !1, this.heading = "Sneltoetsen", this.list = [], this.characterKeys = !0, this.#e = null, this.#t = null, this.#n = new f(), this.#r = (e) => {
10
- e.key === "Escape" && this.#n.isTopmost() && this.close("escape");
11
- };
12
- }
13
- static {
14
- this.styles = [
15
- r(m),
16
- r(p),
17
- r(h)
18
- ];
19
- }
20
- static {
21
- this.properties = {
22
- open: {
23
- type: Boolean,
24
- reflect: !0
25
- },
26
- heading: { type: String },
27
- list: { state: !0 },
28
- characterKeys: { state: !0 }
29
- };
30
- }
31
- #e;
32
- #t;
33
- #n;
34
- #r;
35
- connectedCallback() {
36
- super.connectedCallback(), this.#e = a({
37
- keys: "?",
38
- description: "Dit overzicht",
39
- handler: () => {
40
- this.open || this.emit("lintje-open");
41
- }
42
- });
43
- }
44
- disconnectedCallback() {
45
- this.#e?.(), this.#e = null, this.#a(), super.disconnectedCallback();
46
- }
47
- close(e) {
48
- this.emit("lintje-close", { reason: e });
49
- }
50
- willUpdate(e) {
51
- super.willUpdate(e), e.has("open") && this.open && (this.list = c(), this.characterKeys = s());
52
- }
53
- updated(e) {
54
- super.updated(e), this.open && !this.#t ? this.#i() : !this.open && this.#t && this.#a();
55
- }
56
- #i() {
57
- this.#t = i(), document.addEventListener("keydown", this.#r);
58
- let e = this.renderRoot.querySelector(".lintje-confirm-dialog");
59
- e && this.#n.activate(e);
60
- }
61
- #a() {
62
- this.#t && (document.removeEventListener("keydown", this.#r), this.#t(), this.#t = null, this.#n.deactivate());
63
- }
64
- renderRow(e) {
65
- return o`<dt class="lintje-shortcuts__what">${e.description}</dt>
66
- <dd class="lintje-shortcuts__keys">
67
- ${l(e.keys).map((e) => o`<kbd class="lintje-key">${e}</kbd>`)}
68
- </dd>`;
69
- }
70
- onCharacterKeys(e) {
71
- this.characterKeys = e.detail, t(e.detail);
72
- }
73
- renderSetting() {
74
- return this.list.some((e) => u(e.keys)) ? o`<lintje-toggle
75
- class="lintje-shortcuts__setting"
76
- label="Sneltoetsen van één teken"
77
- hint="Uit werken alleen de sneltoetsen met Ctrl, Alt of Cmd."
78
- .checked=${this.characterKeys}
79
- @lintje-change=${this.onCharacterKeys}
80
- ></lintje-toggle>` : n;
81
- }
82
- render() {
83
- return this.open ? o`<div class="lintje-confirm-dialog__scrim" @click=${() => this.close("scrim")}>
84
- <div
85
- class="lintje-confirm-dialog lintje-shortcuts"
86
- role="dialog"
87
- aria-modal="true"
88
- aria-labelledby="lintje-shortcuts-heading"
89
- tabindex="-1"
90
- @click=${(e) => e.stopPropagation()}
91
- >
92
- <h2 id="lintje-shortcuts-heading" class="lintje-confirm-dialog__heading">${this.heading}</h2>
93
- <dl class="lintje-shortcuts__list">${this.list.map((e) => this.renderRow(e))}</dl>
94
- ${this.renderSetting()}
95
- <div class="lintje-confirm-dialog__actions">
96
- <lintje-button variant="secondary" @click=${() => this.close("button")}>Sluiten</lintje-button>
97
- </div>
98
- </div>
99
- </div>` : n;
100
- }
101
- };
102
- e("lintje-shortcuts", g);
103
- //#endregion
104
- export { g as LintjeShortcuts };
@@ -1,55 +0,0 @@
1
- /**
2
- * `<lintje-session-expiry>` — the warning before the session runs out, the notice after it, and
3
- * the "Je concept is teruggezet" announcement (`restored-at`).
4
- *
5
- * The window is a `role="alertdialog"` in `<lintje-confirm-dialog>`'s frame (its stylesheet).
6
- * Escape and the scrim do nothing, because the session runs out either way. The element never
7
- * calls a server: the host sets `busy`, moves `expires-at` or sets `expired`.
8
- *
9
- * Events: `lintje-session-extend`, `lintje-logout`, `lintje-login`, `lintje-draft-discard`.
10
- */
11
- import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
12
- import { LintjeElement } from '../../../core/element.js';
13
- import '../../feedback/announcement/announcement.js';
14
- import '../../../primitives/button/button.js';
15
- export type SessionPhase = 'active' | 'warning' | 'expired';
16
- export type RestoredReason = 'logout' | 'reload';
17
- /** The shortest warning, in seconds: time to read the question and answer it. */
18
- export declare const MIN_WARNING = 20;
19
- /** Where the session stands at `now`. Without an `expiresAt` it is active, unless `expired`. */
20
- export declare function sessionPhase(expiresAt: number | null, now: number, warnBeforeSeconds: number, expired?: boolean): SessionPhase;
21
- export declare function warningTitle(remainingMs: number): string;
22
- /** "10:42", or null for a moment that does not parse. */
23
- export declare function clockTime(moment: string): string | null;
24
- export declare class LintjeSessionExpiry extends LintjeElement {
25
- #private;
26
- static styles: import("lit").CSSResult[];
27
- static properties: PropertyDeclarations;
28
- /** When the session ends, as an ISO moment. */
29
- expiresAt?: string;
30
- /** Seconds before the end that the warning opens; at least `MIN_WARNING`. */
31
- warnBefore: number;
32
- /** When the restored draft was saved; set, the announcement shows. */
33
- restoredAt?: string;
34
- /** Why the draft came back; it picks the announcement's words. */
35
- restoredReason: RestoredReason;
36
- busy: boolean;
37
- /** The host's word that the session is gone (extending failed). */
38
- expired: boolean;
39
- /** The clock, read once a second while there is an `expires-at`. A test replaces it. */
40
- now: () => number;
41
- protected clock: number;
42
- get phase(): SessionPhase;
43
- connectedCallback(): void;
44
- disconnectedCallback(): void;
45
- protected willUpdate(changed: PropertyValues<this>): void;
46
- protected updated(changed: PropertyValues<this>): void;
47
- private renderRestored;
48
- private renderDialog;
49
- protected render(): TemplateResult;
50
- }
51
- declare global {
52
- interface HTMLElementTagNameMap {
53
- 'lintje-session-expiry': LintjeSessionExpiry;
54
- }
55
- }
@@ -1,41 +0,0 @@
1
- /**
2
- * `<lintje-shortcuts>` — the overview of the keyboard shortcuts this page has registered.
3
- *
4
- * The list is the register's (`core/shortcuts.ts`), read when the window opens. The element
5
- * registers `?` itself and asks to be opened (`lintje-open`). The owner holds `open`, as with
6
- * `<lintje-confirm-dialog>`, whose frame and stylesheet this uses. Under the list a switch turns
7
- * the one-character keys off and on (WCAG 2.1.4); with them off, `?` opens nothing, so a page
8
- * also opens the overview from a button or a menu.
9
- *
10
- * Events: `lintje-open`, `lintje-close` `{ reason: 'escape' | 'scrim' | 'button' }`.
11
- */
12
- import { nothing, type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
13
- import { LintjeElement } from '../../../core/element.js';
14
- import { type ShortcutInfo } from '../../../core/shortcuts.js';
15
- import '../../../primitives/button/button.js';
16
- import '../../inputs/toggle/toggle.js';
17
- export type ShortcutsCloseReason = 'escape' | 'scrim' | 'button';
18
- export declare class LintjeShortcuts extends LintjeElement {
19
- #private;
20
- static styles: import("lit").CSSResult[];
21
- static properties: PropertyDeclarations;
22
- /** The owner's: the window asks to be closed and never closes itself. */
23
- open: boolean;
24
- heading: string;
25
- protected list: ShortcutInfo[];
26
- protected characterKeys: boolean;
27
- connectedCallback(): void;
28
- disconnectedCallback(): void;
29
- private close;
30
- protected willUpdate(changed: PropertyValues<this>): void;
31
- protected updated(changed: PropertyValues<this>): void;
32
- private renderRow;
33
- private onCharacterKeys;
34
- private renderSetting;
35
- protected render(): TemplateResult | typeof nothing;
36
- }
37
- declare global {
38
- interface HTMLElementTagNameMap {
39
- 'lintje-shortcuts': LintjeShortcuts;
40
- }
41
- }
@@ -1,41 +0,0 @@
1
- /**
2
- * `<lintje-confirm-dialog>` — a question that needs an answer before anything goes on.
3
- *
4
- * The owner holds `open`; Escape, the scrim and cancel only ask (`lintje-close`). The cancel
5
- * button has the focus on open, so Enter never confirms by itself. While `busy` nothing closes.
6
- * A dialog on the shared focus-trap stack.
7
- *
8
- * Events: `lintje-confirm`, `lintje-close` `{ reason: 'cancel' | 'escape' | 'scrim' }`,
9
- * `lintje-action` from the third button.
10
- */
11
- import { nothing, type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
12
- import { LintjeElement } from '../../../core/element.js';
13
- import '../../../primitives/button/button.js';
14
- export type ConfirmTone = 'danger' | 'primary';
15
- export type ConfirmCloseReason = 'cancel' | 'escape' | 'scrim';
16
- export declare class LintjeConfirmDialog extends LintjeElement {
17
- #private;
18
- static styles: import("lit").CSSResult;
19
- static properties: PropertyDeclarations;
20
- /** The owner's: the dialog asks to be closed and never closes itself. */
21
- open: boolean;
22
- /** The question, and the dialog's accessible name. */
23
- heading: string;
24
- /** The verb of the action ("Verwijderen"), never "OK". */
25
- confirmLabel: string;
26
- cancelLabel: string;
27
- /** A third, tertiary button in front ("Weggooien"). */
28
- actionLabel?: string;
29
- tone: ConfirmTone;
30
- /** The confirmed action is under way: nothing else can be pressed, Escape does nothing. */
31
- busy: boolean;
32
- private cancel;
33
- disconnectedCallback(): void;
34
- protected updated(changed: PropertyValues<this>): void;
35
- protected render(): TemplateResult | typeof nothing;
36
- }
37
- declare global {
38
- interface HTMLElementTagNameMap {
39
- 'lintje-confirm-dialog': LintjeConfirmDialog;
40
- }
41
- }