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.
- package/README.md +2 -2
- package/dist-elements/actions.js +1 -1
- package/dist-elements/chunks/{base-Bg-IFOPG.js → base-CbmWxUig.js} +444 -272
- package/dist-elements/chunks/{controls-B1455oPG.js → controls-DxmnDSBr.js} +6 -0
- package/dist-elements/chunks/dialog-DChINFxD.js +28 -0
- package/dist-elements/chunks/{disclosure-BXTX04gM.js → disclosure-D39vAR5q.js} +1 -1
- package/dist-elements/chunks/{disclosure-CMXhX-Vb.js → disclosure-DLkXPUpV.js} +6 -6
- package/dist-elements/chunks/download-Ct9q2anY.js +206 -0
- package/dist-elements/chunks/{focus-trap-9BnE-xWv.js → focus-trap-BwOxE5BX.js} +1 -1
- package/dist-elements/chunks/input-CRW_exv_.js +195 -0
- package/dist-elements/chunks/{player-DXOZEyEy.js → player-B8QXJ0Z5.js} +26 -26
- package/dist-elements/chunks/{sentence-BI3lwEuT.js → sentence-B19AyZBS.js} +3 -3
- package/dist-elements/chunks/{stagger-qGD3wmhg.js → stagger-BHoOgy0g.js} +81 -75
- package/dist-elements/core.js +1 -1
- package/dist-elements/custom-elements.json +980 -670
- package/dist-elements/data-types.json +6798 -0
- package/dist-elements/feedback.js +2 -1
- package/dist-elements/frame.js +0 -2
- package/dist-elements/guides/dashboard.md +8 -0
- package/dist-elements/guides/events.md +4 -5
- package/dist-elements/guides/loading.md +8 -7
- package/dist-elements/guides/page-contents.md +110 -0
- package/dist-elements/guides/start.md +12 -0
- package/dist-elements/inputs.js +2 -1
- package/dist-elements/layout.js +1 -1
- package/dist-elements/lintje.js +6975 -6120
- package/dist-elements/overlays.js +2 -2
- package/dist-elements/skills/lintje/SKILL.md +1 -1
- package/dist-elements/tables.js +1 -1
- package/dist-elements/tag/activity-log.js +15 -15
- package/dist-elements/tag/ai-label.js +10 -10
- package/dist-elements/tag/announcement.js +36 -76
- package/dist-elements/tag/app-search.js +49 -49
- package/dist-elements/tag/audio-player.js +57 -57
- package/dist-elements/tag/badge.js +1 -1
- package/dist-elements/tag/breadcrumbs.js +15 -15
- package/dist-elements/tag/button.js +1 -1
- package/dist-elements/tag/card-list.js +12 -12
- package/dist-elements/tag/card.js +39 -44
- package/dist-elements/tag/chart.js +1050 -795
- package/dist-elements/tag/chat-answer.js +49 -49
- package/dist-elements/tag/chat-composer.js +75 -71
- package/dist-elements/tag/chat-message.js +8 -8
- package/dist-elements/tag/chat-strip.js +22 -22
- package/dist-elements/tag/chat-suggestions.js +12 -12
- package/dist-elements/tag/chat.js +56 -56
- package/dist-elements/tag/checkbox-group.d.ts +1 -0
- package/dist-elements/tag/checkbox-group.js +59 -0
- package/dist-elements/tag/checkbox.js +8 -8
- package/dist-elements/tag/code.js +9 -9
- package/dist-elements/tag/combobox.js +18 -18
- package/dist-elements/tag/conflict-alert.js +12 -12
- package/dist-elements/tag/copy-button.js +14 -14
- package/dist-elements/tag/data-table.js +878 -530
- package/dist-elements/tag/date-input.js +30 -30
- package/dist-elements/tag/date-range.js +37 -37
- package/dist-elements/tag/description-list.js +29 -32
- package/dist-elements/tag/dialog.d.ts +1 -0
- package/dist-elements/tag/dialog.js +144 -0
- package/dist-elements/tag/document-viewer.js +23 -23
- package/dist-elements/tag/drawer.js +28 -32
- package/dist-elements/tag/empty-state.js +19 -30
- package/dist-elements/tag/error-page.d.ts +1 -0
- package/dist-elements/tag/error-page.js +109 -0
- package/dist-elements/tag/error-summary.js +10 -10
- package/dist-elements/tag/expander.js +8 -8
- package/dist-elements/tag/explainer.js +11 -11
- package/dist-elements/tag/field.js +5 -5
- package/dist-elements/tag/file-upload.js +34 -34
- package/dist-elements/tag/filter-bar.js +56 -56
- package/dist-elements/tag/filter-sheet.js +11 -11
- package/dist-elements/tag/filter-zone.js +31 -31
- package/dist-elements/tag/footer.js +21 -21
- package/dist-elements/tag/form-actions.js +29 -25
- package/dist-elements/tag/form-section.js +6 -6
- package/dist-elements/tag/form.js +12 -12
- package/dist-elements/tag/gallery.js +14 -14
- package/dist-elements/tag/grid-item.js +1 -1
- package/dist-elements/tag/grid.js +1 -1
- package/dist-elements/tag/hero.js +12 -12
- package/dist-elements/tag/highlight.js +5 -5
- package/dist-elements/tag/icon-button.js +1 -1
- package/dist-elements/tag/icon.js +1 -1
- package/dist-elements/tag/job-list.js +22 -44
- package/dist-elements/tag/kpi-row.js +12 -10
- package/dist-elements/tag/kpi.js +146 -137
- package/dist-elements/tag/level-meter.js +11 -11
- package/dist-elements/tag/list.js +55 -55
- package/dist-elements/tag/logo.js +30 -30
- package/dist-elements/tag/map.js +690 -665
- package/dist-elements/tag/menu-button.js +70 -69
- package/dist-elements/tag/modal.js +28 -37
- package/dist-elements/tag/multiselect.js +34 -34
- package/dist-elements/tag/note.js +5 -5
- package/dist-elements/tag/notifications.js +36 -36
- package/dist-elements/tag/number-input.js +12 -12
- package/dist-elements/tag/page-header.js +140 -37
- package/dist-elements/tag/pagination.js +53 -48
- package/dist-elements/tag/popover.js +1 -1
- package/dist-elements/tag/progress-bar.js +1 -1
- package/dist-elements/tag/prose.js +6 -6
- package/dist-elements/tag/qr-code.js +7 -7
- package/dist-elements/tag/radio-group.js +12 -12
- package/dist-elements/tag/range.js +22 -22
- package/dist-elements/tag/recording-status.js +14 -14
- package/dist-elements/tag/repeater.js +10 -10
- package/dist-elements/tag/segmented.js +13 -13
- package/dist-elements/tag/select.js +10 -10
- package/dist-elements/tag/shell.js +356 -339
- package/dist-elements/tag/skeleton.js +1 -1
- package/dist-elements/tag/slot-picker.js +14 -14
- package/dist-elements/tag/sortable-list.js +14 -14
- package/dist-elements/tag/spinner.js +1 -1
- package/dist-elements/tag/split-pane.js +12 -12
- package/dist-elements/tag/status-dot.js +1 -1
- package/dist-elements/tag/stepper.js +21 -21
- package/dist-elements/tag/streaming-text.js +13 -13
- package/dist-elements/tag/sub-nav.js +39 -38
- package/dist-elements/tag/tabs.js +38 -38
- package/dist-elements/tag/tag-input.js +19 -19
- package/dist-elements/tag/text-editor.js +24 -24
- package/dist-elements/tag/text-input.js +14 -14
- package/dist-elements/tag/textarea.js +14 -14
- package/dist-elements/tag/tile.js +1 -1
- package/dist-elements/tag/time-input.js +19 -19
- package/dist-elements/tag/toast.js +32 -23
- package/dist-elements/tag/toggle.js +8 -8
- package/dist-elements/tag/toggletip.js +27 -27
- package/dist-elements/tag/tooltip.js +1 -1
- package/dist-elements/tag/transcript.js +48 -48
- package/dist-elements/tag/translator.js +13 -13
- package/dist-elements/tag/tree-view.js +13 -13
- package/dist-elements/tag/user-menu.js +37 -37
- package/dist-elements/tag/video-player.js +21 -21
- package/dist-elements/tokens.css +120 -96
- package/dist-elements/types/bundle/feedback.d.ts +1 -0
- package/dist-elements/types/bundle/frame.d.ts +0 -2
- package/dist-elements/types/bundle/inputs.d.ts +1 -0
- package/dist-elements/types/bundle/overlays.d.ts +1 -1
- package/dist-elements/types/components/actions/copy-button/copy-button.d.ts +6 -7
- package/dist-elements/types/components/actions/menu-button/menu-button.d.ts +13 -15
- package/dist-elements/types/components/actions/qr-code/qr-code.d.ts +9 -9
- package/dist-elements/types/components/charts/chart/chart.d.ts +5 -4
- package/dist-elements/types/components/charts/kpi/kpi.d.ts +16 -8
- package/dist-elements/types/components/charts/kpi-row/kpi-row.d.ts +1 -7
- package/dist-elements/types/components/charts/note/note.d.ts +1 -1
- package/dist-elements/types/components/chat/chat/chat.d.ts +8 -10
- package/dist-elements/types/components/chat/chat-answer/chat-answer.d.ts +7 -8
- package/dist-elements/types/components/chat/chat-composer/chat-composer.d.ts +8 -10
- package/dist-elements/types/components/chat/chat-message/chat-message.d.ts +6 -7
- package/dist-elements/types/components/chat/chat-strip/chat-strip.d.ts +5 -5
- package/dist-elements/types/components/chat/chat-suggestions/chat-suggestions.d.ts +9 -10
- package/dist-elements/types/components/content/audio-player/audio-player.d.ts +10 -12
- package/dist-elements/types/components/content/code/code.d.ts +2 -3
- package/dist-elements/types/components/content/document-viewer/document-viewer.d.ts +8 -9
- package/dist-elements/types/components/content/gallery/gallery.d.ts +5 -4
- package/dist-elements/types/components/content/highlight/highlight.d.ts +4 -3
- package/dist-elements/types/components/content/prose/prose.d.ts +2 -3
- package/dist-elements/types/components/content/transcript/transcript.d.ts +12 -25
- package/dist-elements/types/components/content/translator/translator.d.ts +11 -15
- package/dist-elements/types/components/content/video-player/video-player.d.ts +11 -13
- package/dist-elements/types/components/feedback/ai-label/ai-label.d.ts +3 -4
- package/dist-elements/types/components/feedback/announcement/announcement.d.ts +3 -7
- package/dist-elements/types/components/feedback/conflict-alert/conflict-alert.d.ts +3 -4
- package/dist-elements/types/components/feedback/empty-state/empty-state.d.ts +5 -8
- package/dist-elements/types/components/feedback/error-page/error-page.d.ts +52 -0
- package/dist-elements/types/components/feedback/job-list/job-list.d.ts +9 -12
- package/dist-elements/types/components/feedback/level-meter/level-meter.d.ts +4 -6
- package/dist-elements/types/components/feedback/recording-status/recording-status.d.ts +5 -6
- package/dist-elements/types/components/feedback/streaming-text/streaming-text.d.ts +10 -7
- package/dist-elements/types/components/feedback/toast/toast.d.ts +8 -9
- package/dist-elements/types/components/filters/filter-bar/filter-bar.d.ts +9 -4
- package/dist-elements/types/components/filters/filter-sheet/filter-sheet.d.ts +5 -5
- package/dist-elements/types/components/filters/filter-zone/filter-zone.d.ts +4 -4
- package/dist-elements/types/components/forms/error-summary/error-summary.d.ts +5 -6
- package/dist-elements/types/components/forms/form/form.d.ts +5 -5
- package/dist-elements/types/components/forms/form-actions/form-actions.d.ts +9 -7
- package/dist-elements/types/components/forms/form-section/form-section.d.ts +6 -5
- package/dist-elements/types/components/forms/repeater/repeater.d.ts +13 -7
- package/dist-elements/types/components/forms/stepper/stepper.d.ts +5 -4
- package/dist-elements/types/components/frame/app-search/app-search.d.ts +6 -7
- package/dist-elements/types/components/frame/breadcrumbs/breadcrumbs.d.ts +2 -2
- package/dist-elements/types/components/frame/footer/footer.d.ts +3 -2
- package/dist-elements/types/components/frame/hero/hero.d.ts +7 -9
- package/dist-elements/types/components/frame/notifications/notifications.d.ts +5 -9
- package/dist-elements/types/components/frame/page-header/page-header.d.ts +12 -15
- package/dist-elements/types/components/frame/shell/shell.d.ts +14 -13
- package/dist-elements/types/components/frame/sub-nav/sub-nav.d.ts +10 -6
- package/dist-elements/types/components/frame/user-menu/user-menu.d.ts +11 -10
- package/dist-elements/types/components/index.d.ts +8 -9
- package/dist-elements/types/components/inputs/checkbox/checkbox.d.ts +4 -4
- package/dist-elements/types/components/inputs/checkbox-group/checkbox-group.d.ts +33 -0
- package/dist-elements/types/components/inputs/combobox/combobox.d.ts +12 -6
- package/dist-elements/types/components/inputs/date-input/date-input.d.ts +5 -5
- package/dist-elements/types/components/inputs/date-range/date-range.d.ts +11 -6
- package/dist-elements/types/components/inputs/field/field.d.ts +5 -3
- package/dist-elements/types/components/inputs/file-upload/file-upload.d.ts +6 -8
- package/dist-elements/types/components/inputs/multiselect/multiselect.d.ts +4 -6
- package/dist-elements/types/components/inputs/number-input/number-input.d.ts +8 -7
- package/dist-elements/types/components/inputs/radio-group/radio-group.d.ts +2 -4
- package/dist-elements/types/components/inputs/range/range.d.ts +5 -6
- package/dist-elements/types/components/inputs/segmented/segmented.d.ts +7 -4
- package/dist-elements/types/components/inputs/select/select.d.ts +6 -3
- package/dist-elements/types/components/inputs/slot-picker/slot-picker.d.ts +6 -5
- package/dist-elements/types/components/inputs/tag-input/tag-input.d.ts +7 -5
- package/dist-elements/types/components/inputs/text-editor/text-editor.d.ts +6 -6
- package/dist-elements/types/components/inputs/text-input/text-input.d.ts +11 -6
- package/dist-elements/types/components/inputs/textarea/textarea.d.ts +12 -11
- package/dist-elements/types/components/inputs/time-input/time-input.d.ts +7 -8
- package/dist-elements/types/components/inputs/toggle/toggle.d.ts +3 -1
- package/dist-elements/types/components/layout/expander/expander.d.ts +9 -10
- package/dist-elements/types/components/layout/split-pane/split-pane.d.ts +6 -6
- package/dist-elements/types/components/layout/tabs/tabs.d.ts +11 -9
- package/dist-elements/types/components/map/map/map.d.ts +10 -9
- package/dist-elements/types/components/overlays/dialog/dialog.d.ts +49 -0
- package/dist-elements/types/components/overlays/drawer/drawer.d.ts +6 -5
- package/dist-elements/types/components/overlays/modal/modal.d.ts +7 -12
- package/dist-elements/types/components/overlays/toggletip/toggletip.d.ts +3 -7
- package/dist-elements/types/components/shared/charts/index.d.ts +4 -1
- package/dist-elements/types/components/shared/charts/kinds.d.ts +86 -0
- package/dist-elements/types/components/shared/charts/line-chart/line-chart.d.ts +2 -2
- package/dist-elements/types/components/shared/charts/map-chart/leaflet.d.ts +5 -0
- package/dist-elements/types/components/shared/charts/shared/chart-states.d.ts +8 -19
- package/dist-elements/types/components/shared/charts/shared/controller.d.ts +7 -0
- package/dist-elements/types/components/shared/charts/shared/types.d.ts +29 -0
- package/dist-elements/types/components/shared/charts/stacked-area-chart/stacked-area-chart.d.ts +13 -0
- package/dist-elements/types/components/shared/dialog.d.ts +9 -0
- package/dist-elements/types/components/shared/overflow.d.ts +58 -0
- package/dist-elements/types/components/tables/activity-log/activity-log.d.ts +2 -3
- package/dist-elements/types/components/tables/card/card.d.ts +14 -20
- package/dist-elements/types/components/tables/card-list/card-list.d.ts +9 -11
- package/dist-elements/types/components/tables/data-table/data-table.d.ts +85 -16
- package/dist-elements/types/components/tables/data-table/filters.d.ts +13 -4
- package/dist-elements/types/components/tables/description-list/description-list.d.ts +12 -11
- package/dist-elements/types/components/tables/list/list.d.ts +9 -20
- package/dist-elements/types/components/tables/pagination/pagination.d.ts +12 -11
- package/dist-elements/types/components/tables/sortable-list/sortable-list.d.ts +5 -6
- package/dist-elements/types/components/tables/tree-view/tree-view.d.ts +4 -4
- package/dist-elements/types/core/media.d.ts +2 -2
- package/dist-elements/types/core/motion.d.ts +5 -0
- package/dist-elements/types/core/print.d.ts +15 -0
- package/dist-elements/types/core/shortcuts.d.ts +2 -2
- package/dist-elements/types/icons/icon/icon.d.ts +2 -3
- package/dist-elements/types/icons/register.d.ts +1 -1
- package/dist-elements/types/primitives/badge/badge.d.ts +9 -5
- package/dist-elements/types/primitives/button/button.d.ts +12 -9
- package/dist-elements/types/primitives/grid/grid.d.ts +3 -3
- package/dist-elements/types/primitives/grid-item/grid-item.d.ts +1 -1
- package/dist-elements/types/primitives/icon-button/icon-button.d.ts +7 -5
- package/dist-elements/types/primitives/index.d.ts +3 -1
- package/dist-elements/types/primitives/popover/popover.d.ts +5 -4
- package/dist-elements/types/primitives/progress-bar/progress-bar.d.ts +8 -6
- package/dist-elements/types/primitives/shared/announcement-block.d.ts +38 -0
- package/dist-elements/types/primitives/shared/empty-state-block.d.ts +26 -0
- package/dist-elements/types/primitives/shared/tone.d.ts +18 -0
- package/dist-elements/types/primitives/skeleton/skeleton.d.ts +1 -1
- package/dist-elements/types/primitives/spinner/spinner.d.ts +1 -2
- package/dist-elements/types/primitives/status-dot/status-dot.d.ts +4 -5
- package/dist-elements/types/primitives/tile/tile.d.ts +17 -5
- package/dist-elements/types/primitives/tooltip/tooltip.d.ts +6 -6
- package/dist-elements/types/types.d.ts +70 -10
- package/dist-icons/functioneel-kolommen.svg +1 -0
- package/dist-icons/functioneel-trechter.svg +1 -0
- package/package.json +1 -1
- package/dist-elements/chunks/confirm-dialog-D5EVGuil.js +0 -4
- package/dist-elements/chunks/download-y528pIHP.js +0 -230
- package/dist-elements/chunks/input-BtuNFSWk.js +0 -195
- package/dist-elements/tag/confirm-dialog.d.ts +0 -1
- package/dist-elements/tag/confirm-dialog.js +0 -118
- package/dist-elements/tag/session-expiry.d.ts +0 -1
- package/dist-elements/tag/session-expiry.js +0 -184
- package/dist-elements/tag/shortcuts.d.ts +0 -1
- package/dist-elements/tag/shortcuts.js +0 -104
- package/dist-elements/types/components/frame/session-expiry/session-expiry.d.ts +0 -55
- package/dist-elements/types/components/frame/shortcuts/shortcuts.d.ts +0 -41
- 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
|
-
}
|