lintje 0.2.0 → 0.4.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-DRGvkF-r.js} +484 -309
- package/dist-elements/chunks/{controls-B1455oPG.js → controls-_4ac1Lpz.js} +7 -1
- package/dist-elements/chunks/{date-format-mHtZyBys.js → date-format-DxP9yfDp.js} +1 -1
- package/dist-elements/chunks/dialog-B7aRBtjy.js +28 -0
- package/dist-elements/chunks/{disclosure-BXTX04gM.js → disclosure-D39vAR5q.js} +1 -1
- package/dist-elements/chunks/{disclosure-CMXhX-Vb.js → disclosure-DirPLy2E.js} +6 -6
- package/dist-elements/chunks/download-C68kcwPj.js +206 -0
- package/dist-elements/chunks/{focus-trap-9BnE-xWv.js → focus-trap-Dv8zu64A.js} +1 -1
- package/dist-elements/chunks/input-BGMLam-O.js +195 -0
- package/dist-elements/chunks/input-lQTmOMOz.js +4 -0
- package/dist-elements/chunks/{player-DXOZEyEy.js → player-BApadXr8.js} +27 -27
- package/dist-elements/chunks/{sentence-BI3lwEuT.js → sentence-0wO85ZdJ.js} +3 -3
- package/dist-elements/chunks/{stagger-qGD3wmhg.js → stagger-BB_gcxBI.js} +88 -74
- package/dist-elements/content.js +1 -0
- package/dist-elements/core.js +1 -1
- package/dist-elements/custom-elements.json +8858 -7715
- package/dist-elements/data-types.json +6900 -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 +10 -9
- package/dist-elements/guides/page-contents.md +110 -0
- package/dist-elements/guides/start.md +12 -0
- package/dist-elements/inputs.js +3 -1
- package/dist-elements/layout.js +1 -1
- package/dist-elements/lintje.js +8562 -7138
- 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.d.ts +1 -1
- package/dist-elements/tag/badge.js +1 -1
- package/dist-elements/tag/breadcrumbs.js +15 -15
- package/dist-elements/tag/button.d.ts +1 -1
- 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 +1357 -787
- 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 +60 -0
- package/dist-elements/tag/checkbox.js +9 -8
- package/dist-elements/tag/code.js +9 -9
- package/dist-elements/tag/combobox.js +19 -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 +880 -532
- package/dist-elements/tag/date-input.js +30 -29
- package/dist-elements/tag/date-range.js +39 -38
- 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 +35 -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/find.d.ts +1 -0
- package/dist-elements/tag/find.js +128 -0
- 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.d.ts +1 -1
- package/dist-elements/tag/grid-item.js +1 -1
- package/dist-elements/tag/grid.d.ts +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.d.ts +1 -1
- package/dist-elements/tag/icon-button.js +1 -1
- package/dist-elements/tag/icon.d.ts +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 +149 -140
- 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 +702 -671
- package/dist-elements/tag/menu-button.js +70 -69
- package/dist-elements/tag/modal.js +28 -37
- package/dist-elements/tag/multiselect.js +35 -34
- package/dist-elements/tag/note.js +5 -5
- package/dist-elements/tag/notifications.js +36 -36
- package/dist-elements/tag/number-input.js +13 -12
- package/dist-elements/tag/page-header.js +140 -37
- package/dist-elements/tag/pagination.js +54 -49
- package/dist-elements/tag/popover.d.ts +1 -1
- package/dist-elements/tag/popover.js +1 -1
- package/dist-elements/tag/progress-bar.d.ts +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 +13 -12
- package/dist-elements/tag/range.js +23 -22
- package/dist-elements/tag/recording-status.js +14 -14
- package/dist-elements/tag/repeater.js +10 -10
- package/dist-elements/tag/segmented.js +14 -13
- package/dist-elements/tag/select.js +11 -10
- package/dist-elements/tag/shell.js +356 -339
- package/dist-elements/tag/skeleton.d.ts +1 -1
- package/dist-elements/tag/skeleton.js +1 -1
- package/dist-elements/tag/slot-picker.js +16 -15
- package/dist-elements/tag/sortable-list.js +14 -14
- package/dist-elements/tag/spinner.d.ts +1 -1
- package/dist-elements/tag/spinner.js +1 -1
- package/dist-elements/tag/split-pane.js +12 -12
- package/dist-elements/tag/status-dot.d.ts +1 -1
- 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 +20 -19
- package/dist-elements/tag/text-editor.js +25 -24
- package/dist-elements/tag/text-input.js +15 -14
- package/dist-elements/tag/textarea.js +15 -14
- package/dist-elements/tag/tile.d.ts +1 -1
- package/dist-elements/tag/tile.js +1 -1
- package/dist-elements/tag/time-input.js +20 -19
- package/dist-elements/tag/toast.js +32 -23
- package/dist-elements/tag/toggle.js +9 -8
- package/dist-elements/tag/toggletip.js +27 -27
- package/dist-elements/tag/token-value.d.ts +1 -0
- package/dist-elements/tag/token-value.js +75 -0
- package/dist-elements/tag/tooltip.d.ts +1 -1
- 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/tokens.json +1244 -0
- package/dist-elements/types/bundle/actions.d.ts +3 -3
- package/dist-elements/types/bundle/content.d.ts +1 -0
- package/dist-elements/types/bundle/feedback.d.ts +6 -5
- package/dist-elements/types/bundle/frame.d.ts +0 -2
- package/dist-elements/types/bundle/index.d.ts +0 -10
- package/dist-elements/types/bundle/inputs.d.ts +2 -0
- package/dist-elements/types/bundle/layout.d.ts +3 -3
- package/dist-elements/types/bundle/overlays.d.ts +3 -3
- package/dist-elements/types/categories.d.ts +4 -0
- package/dist-elements/types/{primitives → components/actions}/button/button.d.ts +13 -10
- package/dist-elements/types/components/actions/copy-button/copy-button.d.ts +8 -9
- package/dist-elements/types/{icons → components/actions}/icon/icon.d.ts +4 -5
- package/dist-elements/types/{primitives → components/actions}/icon-button/icon-button.d.ts +8 -6
- package/dist-elements/types/components/actions/menu-button/menu-button.d.ts +16 -18
- package/dist-elements/types/components/actions/qr-code/qr-code.d.ts +10 -10
- package/dist-elements/types/components/charts/chart/chart.d.ts +6 -5
- package/dist-elements/types/components/charts/explainer/explainer.d.ts +1 -1
- package/dist-elements/types/components/charts/kpi/kpi.d.ts +19 -11
- package/dist-elements/types/components/charts/kpi-row/kpi-row.d.ts +2 -8
- package/dist-elements/types/components/charts/note/note.d.ts +2 -2
- package/dist-elements/types/components/chat/chat/chat.d.ts +9 -11
- package/dist-elements/types/components/chat/chat-answer/chat-answer.d.ts +10 -11
- package/dist-elements/types/components/chat/chat-composer/chat-composer.d.ts +10 -12
- package/dist-elements/types/components/chat/chat-message/chat-message.d.ts +7 -8
- 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 +15 -17
- package/dist-elements/types/components/content/code/code.d.ts +3 -4
- package/dist-elements/types/components/content/document-viewer/document-viewer.d.ts +10 -11
- package/dist-elements/types/components/content/gallery/gallery.d.ts +5 -4
- package/dist-elements/types/components/content/highlight/highlight.d.ts +5 -4
- package/dist-elements/types/components/content/prose/prose.d.ts +3 -4
- package/dist-elements/types/components/content/token-value/token-value.d.ts +42 -0
- package/dist-elements/types/components/content/transcript/transcript.d.ts +15 -28
- package/dist-elements/types/components/content/translator/translator.d.ts +12 -16
- package/dist-elements/types/components/content/video-player/video-player.d.ts +12 -14
- package/dist-elements/types/components/feedback/ai-label/ai-label.d.ts +3 -4
- package/dist-elements/types/components/feedback/announcement/announcement.d.ts +5 -9
- package/dist-elements/types/{primitives → components/feedback}/badge/badge.d.ts +10 -6
- package/dist-elements/types/components/feedback/conflict-alert/conflict-alert.d.ts +4 -5
- 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/{primitives → components/feedback}/progress-bar/progress-bar.d.ts +9 -7
- package/dist-elements/types/components/feedback/recording-status/recording-status.d.ts +5 -6
- package/dist-elements/types/{primitives → components/feedback}/skeleton/skeleton.d.ts +2 -2
- package/dist-elements/types/{primitives → components/feedback}/spinner/spinner.d.ts +2 -3
- package/dist-elements/types/{primitives → components/feedback}/status-dot/status-dot.d.ts +5 -6
- package/dist-elements/types/components/feedback/streaming-text/streaming-text.d.ts +12 -9
- 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 +7 -7
- 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 +6 -7
- package/dist-elements/types/components/forms/form/form.d.ts +5 -5
- package/dist-elements/types/components/forms/form-actions/form-actions.d.ts +10 -8
- package/dist-elements/types/components/forms/form-section/form-section.d.ts +6 -5
- package/dist-elements/types/components/forms/repeater/repeater.d.ts +15 -9
- package/dist-elements/types/components/forms/stepper/stepper.d.ts +6 -5
- package/dist-elements/types/components/frame/app-search/app-search.d.ts +7 -8
- 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 +7 -11
- package/dist-elements/types/components/frame/page-header/page-header.d.ts +13 -16
- package/dist-elements/types/components/frame/shell/shell.d.ts +15 -14
- 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 +13 -12
- package/dist-elements/types/components/index.d.ts +51 -12
- 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 +14 -8
- package/dist-elements/types/components/inputs/date-input/date-input.d.ts +6 -6
- package/dist-elements/types/components/inputs/date-range/date-range.d.ts +13 -8
- package/dist-elements/types/components/inputs/field/field.d.ts +5 -3
- package/dist-elements/types/components/inputs/file-upload/file-upload.d.ts +8 -10
- package/dist-elements/types/components/inputs/find/find.d.ts +51 -0
- 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/shared/input.d.ts +1 -1
- 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 +8 -6
- package/dist-elements/types/components/inputs/text-editor/text-editor.d.ts +8 -8
- package/dist-elements/types/components/inputs/text-input/text-input.d.ts +12 -7
- package/dist-elements/types/components/inputs/textarea/textarea.d.ts +12 -11
- package/dist-elements/types/components/inputs/time-input/time-input.d.ts +8 -9
- package/dist-elements/types/components/inputs/toggle/toggle.d.ts +3 -1
- package/dist-elements/types/components/layout/expander/expander.d.ts +10 -11
- package/dist-elements/types/{primitives → components/layout}/grid/grid.d.ts +4 -4
- package/dist-elements/types/{primitives → components/layout}/grid-item/grid-item.d.ts +2 -2
- package/dist-elements/types/components/layout/split-pane/split-pane.d.ts +6 -6
- package/dist-elements/types/components/layout/tabs/tabs.d.ts +12 -10
- package/dist-elements/types/{primitives → components/layout}/tile/tile.d.ts +22 -10
- package/dist-elements/types/components/map/map/map.d.ts +12 -11
- 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 +9 -14
- package/dist-elements/types/{primitives → components/overlays}/popover/popover.d.ts +7 -6
- package/dist-elements/types/components/overlays/toggletip/toggletip.d.ts +4 -8
- package/dist-elements/types/{primitives → components/overlays}/tooltip/tooltip.d.ts +8 -8
- package/dist-elements/types/components/shared/announcement-block.d.ts +38 -0
- package/dist-elements/types/components/shared/charts/index.d.ts +5 -1
- package/dist-elements/types/components/shared/charts/kinds.d.ts +92 -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/map-chart/map-chart.d.ts +1 -1
- package/dist-elements/types/components/shared/charts/radar-chart/radar-chart.d.ts +31 -0
- package/dist-elements/types/components/shared/charts/shared/axes.d.ts +3 -1
- 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 +12 -0
- package/dist-elements/types/components/shared/charts/shared/types.d.ts +62 -0
- package/dist-elements/types/components/shared/charts/stacked-area-chart/stacked-area-chart.d.ts +13 -0
- package/dist-elements/types/components/shared/content-tile.d.ts +1 -1
- package/dist-elements/types/components/{forms/form → shared}/controls.d.ts +3 -2
- package/dist-elements/types/components/shared/dialog.d.ts +9 -0
- package/dist-elements/types/components/shared/empty-state-block.d.ts +26 -0
- package/dist-elements/types/components/shared/overflow.d.ts +58 -0
- package/dist-elements/types/components/shared/tone.d.ts +18 -0
- package/dist-elements/types/components/tables/activity-log/activity-log.d.ts +3 -4
- package/dist-elements/types/components/tables/card/card.d.ts +17 -23
- package/dist-elements/types/components/tables/card-list/card-list.d.ts +9 -11
- package/dist-elements/types/components/tables/data-table/actions.d.ts +1 -1
- package/dist-elements/types/components/tables/data-table/data-table.d.ts +88 -19
- package/dist-elements/types/components/tables/data-table/editing.d.ts +1 -1
- package/dist-elements/types/components/tables/data-table/filters.d.ts +15 -6
- package/dist-elements/types/components/tables/description-list/description-list.d.ts +13 -12
- package/dist-elements/types/components/tables/list/list.d.ts +13 -24
- 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 +5 -5
- package/dist-elements/types/core/focus.d.ts +1 -1
- 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/register.d.ts +1 -1
- 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
- package/dist-elements/types/primitives/index.d.ts +0 -33
- /package/dist-elements/types/components/content/{audio-player → shared}/playback.d.ts +0 -0
- /package/dist-elements/types/components/content/{audio-player → shared}/player.d.ts +0 -0
- /package/dist-elements/types/components/{inputs/date-input → shared}/date-format.d.ts +0 -0
- /package/dist-elements/types/{primitives → components}/shared/grid-item-element.d.ts +0 -0
- /package/dist-elements/types/{primitives → components}/shared/length.d.ts +0 -0
- /package/dist-elements/types/{primitives → components}/shared/place.d.ts +0 -0
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
import { Gt as e, O as t, Z as n, et as r, qt as i } from "./base-Bg-IFOPG.js";
|
|
2
|
-
import { d as a, s as o, u as s } from "./controls-B1455oPG.js";
|
|
3
|
-
//#region src/components/inputs/shared/field-foot.ts
|
|
4
|
-
function c(t, n, r) {
|
|
5
|
-
return n ? r.errorId : t ? r.hintId : e;
|
|
6
|
-
}
|
|
7
|
-
function l(t, n, a, o = !0) {
|
|
8
|
-
return n ? i`<span id=${a.errorId} class="lintje-field__error" role=${o ? "alert" : e}
|
|
9
|
-
>${r("functioneel-waarschuwing", { size: 14 })}${n}</span
|
|
10
|
-
>` : t ? i`<span id=${a.hintId} class="lintje-field__hint">${t}</span>` : e;
|
|
11
|
-
}
|
|
12
|
-
//#endregion
|
|
13
|
-
//#region src/components/inputs/shared/input.ts
|
|
14
|
-
var u = "(niet verplicht)", d = "afwijkend van standaard", f = class extends t {
|
|
15
|
-
static {
|
|
16
|
-
this.properties = {
|
|
17
|
-
name: { type: String },
|
|
18
|
-
label: { type: String },
|
|
19
|
-
hideLabel: {
|
|
20
|
-
type: Boolean,
|
|
21
|
-
attribute: "hide-label"
|
|
22
|
-
},
|
|
23
|
-
hint: { type: String },
|
|
24
|
-
error: { type: String },
|
|
25
|
-
disabled: {
|
|
26
|
-
type: Boolean,
|
|
27
|
-
reflect: !0
|
|
28
|
-
},
|
|
29
|
-
modified: {
|
|
30
|
-
type: Boolean,
|
|
31
|
-
reflect: !0
|
|
32
|
-
},
|
|
33
|
-
required: {
|
|
34
|
-
type: Boolean,
|
|
35
|
-
reflect: !0
|
|
36
|
-
},
|
|
37
|
-
optional: { type: Boolean },
|
|
38
|
-
layout: {
|
|
39
|
-
type: String,
|
|
40
|
-
reflect: !0
|
|
41
|
-
},
|
|
42
|
-
resetLabel: {
|
|
43
|
-
type: String,
|
|
44
|
-
attribute: "reset-label"
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
static {
|
|
49
|
-
this.formAssociated = !0;
|
|
50
|
-
}
|
|
51
|
-
#e;
|
|
52
|
-
#t;
|
|
53
|
-
constructor() {
|
|
54
|
-
super(), this.name = "", this.label = "", this.hideLabel = !1, this.disabled = !1, this.modified = !1, this.required = !1, this.optional = !1, this.internals = typeof this.attachInternals == "function" ? this.attachInternals() : null, this.#t = !1, this.addController({ hostUpdated: () => this.syncForm() });
|
|
55
|
-
}
|
|
56
|
-
get postedValue() {
|
|
57
|
-
return s(this);
|
|
58
|
-
}
|
|
59
|
-
syncForm() {
|
|
60
|
-
if (this.#t || (this.#t = !0, this.#e = structuredClone(s(this))), !this.internals) return;
|
|
61
|
-
let e = new FormData();
|
|
62
|
-
if (this.name && !this.disabled) for (let [t, n] of o(this.name, this.postedValue)) e.append(t, n);
|
|
63
|
-
this.internals.setFormValue(e);
|
|
64
|
-
}
|
|
65
|
-
formResetCallback() {
|
|
66
|
-
a(this, structuredClone(this.#e));
|
|
67
|
-
}
|
|
68
|
-
formDisabledCallback(e) {
|
|
69
|
-
this.disabled = e;
|
|
70
|
-
}
|
|
71
|
-
get labelId() {
|
|
72
|
-
return "lintje-input-label";
|
|
73
|
-
}
|
|
74
|
-
get controlId() {
|
|
75
|
-
return "lintje-input-control";
|
|
76
|
-
}
|
|
77
|
-
focusControl(e) {
|
|
78
|
-
if (this.disabled) return;
|
|
79
|
-
let t = this.renderRoot;
|
|
80
|
-
(t.querySelector(`#${this.controlId}`) ?? t.querySelector("input[type=\"radio\"]:checked:not(:disabled)") ?? [...t.querySelectorAll("input, select, button, textarea")].find((e) => !e.disabled))?.focus(e);
|
|
81
|
-
}
|
|
82
|
-
focus(e) {
|
|
83
|
-
this.focusControl(e);
|
|
84
|
-
}
|
|
85
|
-
get hintId() {
|
|
86
|
-
return "lintje-input-hint";
|
|
87
|
-
}
|
|
88
|
-
get errorId() {
|
|
89
|
-
return "lintje-input-error";
|
|
90
|
-
}
|
|
91
|
-
get footMessage() {
|
|
92
|
-
return this.error ?? "";
|
|
93
|
-
}
|
|
94
|
-
get describedBy() {
|
|
95
|
-
return c(this.hint, this.footMessage, {
|
|
96
|
-
hintId: this.hintId,
|
|
97
|
-
errorId: this.errorId
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
commit(e) {
|
|
101
|
-
this.announce(e);
|
|
102
|
-
}
|
|
103
|
-
announce(e, t = e) {
|
|
104
|
-
this.disabled || (this.emitLocal("lintje-change", e), this.name && this.emit("lintje-values-change", { [this.name]: t }));
|
|
105
|
-
}
|
|
106
|
-
renderLabel(t, r = e) {
|
|
107
|
-
let a = () => this.focusControl();
|
|
108
|
-
if (this.hideLabel) {
|
|
109
|
-
let e = this.renderLabelSuffix();
|
|
110
|
-
return t ? i`<label id=${this.labelId} for=${t} class="visually-hidden">${this.label} ${e}</label>` : i`<span id=${this.labelId} class="visually-hidden" @click=${a}>${this.label} ${e}</span>`;
|
|
111
|
-
}
|
|
112
|
-
let o = n({
|
|
113
|
-
"lintje-label": !0,
|
|
114
|
-
"is-modified": this.modified
|
|
115
|
-
}), s = this.modified ? i`<span class="lintje-label__dot"><span class="visually-hidden">${d}</span></span>` : e, c = this.renderLabelSuffix();
|
|
116
|
-
return t ? i`<label id=${this.labelId} for=${t} class=${o}>${this.label} ${c} ${s} ${r}</label>` : i`<span id=${this.labelId} class=${o} @click=${a}>${this.label} ${c} ${s} ${r}</span>`;
|
|
117
|
-
}
|
|
118
|
-
renderLabelSuffix() {
|
|
119
|
-
return this.isOptional ? i`<span class="lintje-label__optional">${u}</span>` : e;
|
|
120
|
-
}
|
|
121
|
-
get isOptional() {
|
|
122
|
-
return this.optional && !this.required;
|
|
123
|
-
}
|
|
124
|
-
get labelSuffixText() {
|
|
125
|
-
return [this.isOptional ? u : "", this.modified && !this.hideLabel ? d : ""].filter(Boolean).map((e) => ` ${e}`).join("");
|
|
126
|
-
}
|
|
127
|
-
get labelText() {
|
|
128
|
-
return this.label ? `${this.label}${this.labelSuffixText}` : "";
|
|
129
|
-
}
|
|
130
|
-
renderFoot() {
|
|
131
|
-
let e = l(this.hint, this.footMessage, {
|
|
132
|
-
hintId: this.hintId,
|
|
133
|
-
errorId: this.errorId
|
|
134
|
-
});
|
|
135
|
-
return !this.modified || !this.resetLabel ? e : i`${e}<button
|
|
136
|
-
type="button"
|
|
137
|
-
class="lintje-field__reset"
|
|
138
|
-
?disabled=${this.disabled}
|
|
139
|
-
@click=${() => {
|
|
140
|
-
this.focusControl(), this.emitLocal("lintje-reset");
|
|
141
|
-
}}
|
|
142
|
-
>
|
|
143
|
-
${this.resetLabel}
|
|
144
|
-
</button>`;
|
|
145
|
-
}
|
|
146
|
-
}, p = class extends f {
|
|
147
|
-
constructor(...e) {
|
|
148
|
-
super(...e), this.readonly = !1, this.initialValue = void 0;
|
|
149
|
-
}
|
|
150
|
-
static {
|
|
151
|
-
this.properties = {
|
|
152
|
-
name: {
|
|
153
|
-
type: String,
|
|
154
|
-
reflect: !0
|
|
155
|
-
},
|
|
156
|
-
readonly: {
|
|
157
|
-
type: Boolean,
|
|
158
|
-
reflect: !0
|
|
159
|
-
}
|
|
160
|
-
};
|
|
161
|
-
}
|
|
162
|
-
get nativeControl() {
|
|
163
|
-
return this.renderRoot.querySelector(`#${this.controlId}`);
|
|
164
|
-
}
|
|
165
|
-
announce(e, t = e) {
|
|
166
|
-
this.readonly || super.announce(e, t);
|
|
167
|
-
}
|
|
168
|
-
firstUpdated(e) {
|
|
169
|
-
super.firstUpdated(e), this.initialValue = this.value;
|
|
170
|
-
}
|
|
171
|
-
syncForm() {}
|
|
172
|
-
updated(e) {
|
|
173
|
-
super.updated(e);
|
|
174
|
-
let t = this.internals;
|
|
175
|
-
if (!t) return;
|
|
176
|
-
t.setFormValue(this.disabled ? null : this.formValue);
|
|
177
|
-
let n = this.nativeControl;
|
|
178
|
-
this.required && !this.disabled && !this.readonly && this.formValue === "" && n ? t.setValidity({ valueMissing: !0 }, n.validationMessage || "Vul dit veld in.", n) : t.setValidity({});
|
|
179
|
-
}
|
|
180
|
-
submitOnEnter(e, t) {
|
|
181
|
-
if (e.key !== "Enter" || e.isComposing || this.readonly || this.disabled) return;
|
|
182
|
-
t();
|
|
183
|
-
let n = this.internals?.form;
|
|
184
|
-
n && typeof n.requestSubmit == "function" && setTimeout(() => {
|
|
185
|
-
e.defaultPrevented || n.requestSubmit();
|
|
186
|
-
});
|
|
187
|
-
}
|
|
188
|
-
formResetCallback() {
|
|
189
|
-
this.value = this.initialValue;
|
|
190
|
-
let e = this.nativeControl;
|
|
191
|
-
e && (e.value = this.formValue), this.requestUpdate();
|
|
192
|
-
}
|
|
193
|
-
}, m = "/*\n * The fields' own boxes and the `.lintje-choice` rules of the checkbox, radio and toggle.\n * `lintje-data-table` adopts this sheet too for its selectable rows' checkbox; the\n * `:host(lintje-multiselect)` blocks do not match there.\n */\n:host(lintje-multiselect) {\n display: block;\n min-width: 0;\n width: 180px;\n}\n:host(lintje-range) {\n display: block;\n min-width: 0;\n width: 180px;\n}\n:host(lintje-text-input),\n:host(lintje-number-input),\n:host(lintje-checkbox),\n:host(lintje-toggle),\n:host(lintje-radio-group) {\n display: block;\n min-width: 0;\n}\n:host([hidden]) { display: none; }\n\n/* --- */\n\n/* Order matters in every field sheet: disabled wins over read-only, read-only over error, at\n equal specificity. A disabled control cannot be in error, so its rule sets the whole border. */\n\n.lintje-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }\n.lintje-label {\n display: flex; align-items: baseline; gap: var(--space-2);\n font-size: 0.875rem; font-weight: 700; color: var(--color-text-primary);\n padding: 0;\n}\n.lintje-label.is-modified { color: var(--color-accent-text); }\n.lintje-label__dot {\n width: 6px; height: 6px; border-radius: var(--radius-round);\n background: var(--color-attention);\n flex: none; align-self: center;\n}\n:host([disabled]) .lintje-label { color: var(--color-text-disabled); }\n.lintje-label__optional { font-weight: 400; color: var(--color-text-muted); }\n:host([disabled]) .lintje-label__optional { color: var(--color-text-disabled); }\n/* A value and its unit stay together when a long label wraps. */\n.lintje-field__value { font-weight: 400; color: var(--color-text-muted); white-space: nowrap; }\n.lintje-field__hint { font: var(--text-meta); color: var(--color-text-muted); }\n.lintje-field__error {\n display: flex; align-items: center; gap: 6px;\n font: var(--text-meta); color: var(--color-error-text); font-weight: 700;\n}\n\n/* --- A setting's row: name and hint on the left, the control on the right ----- */\n/* A row reads its own width, not the screen's: in a drawer it stays a column. */\n:host([layout='row']) { width: 100%; container-type: inline-size; }\n@container (min-width: 35rem) {\n :host([layout='row']) .lintje-field {\n display: grid;\n grid-template-columns: minmax(0, 1fr) minmax(0, calc(8 * var(--space-10)));\n gap: var(--space-1) var(--space-8);\n align-items: center;\n }\n :host([layout='row']) .lintje-field > * { grid-column: 2; }\n /* Regular weight: the bold above it is the section's heading, the grey under it the hint. */\n :host([layout='row']) .lintje-field > .lintje-label {\n grid-column: 1; grid-row: 1;\n font: var(--text-ui);\n }\n :host([layout='row']) .lintje-field > .lintje-field__hint,\n :host([layout='row']) .lintje-field > .lintje-field__error { grid-column: 1; grid-row: 2; align-self: start; }\n :host([layout='row']) .lintje-field > .lintje-field__reset { grid-column: 1; grid-row: 3; }\n /* A switch is its own label: the row is the label, the switch stands at its right edge. */\n :host([layout='row']) .lintje-field > .lintje-choice {\n grid-column: 1 / -1; grid-row: 1;\n flex-direction: row-reverse; justify-content: space-between;\n }\n}\n\n/* Back to the default: a link, so it stays quieter than the field it belongs to. */\n.lintje-field__reset {\n align-self: flex-start;\n justify-self: start;\n min-height: var(--h-target);\n padding: 0;\n border: 0;\n background: none;\n color: var(--color-link);\n font: var(--text-meta);\n font-weight: 700;\n text-decoration: underline;\n cursor: pointer;\n}\n.lintje-field__reset:hover { color: var(--color-link-hover); }\n\n/* --- Checkbox, radio, toggle ---------------------------------------------- */\n.lintje-choice {\n display: flex; align-items: center; gap: 10px;\n min-height: var(--h-target);\n font-size: 1rem;\n cursor: pointer;\n}\n.lintje-choice__input { position: absolute; opacity: 0; width: 0; height: 0; }\n.lintje-choice__label.is-modified { color: var(--color-accent-text); font-weight: 700; }\n\n.lintje-choice__box {\n width: 24px; height: 24px; flex: none;\n display: flex; align-items: center; justify-content: center;\n border: 2px solid var(--color-border-choice);\n background: var(--color-bg-surface);\n color: var(--color-action-primary-text); font-size: 0.875rem; font-weight: 700; line-height: 1;\n transition: background-color var(--dur-hover) var(--ease-in-motion),\n border-color var(--dur-hover) var(--ease-in-motion);\n}\n/* The mark is always drawn and grows in when the box is checked, so checking and unchecking both move. */\n.lintje-choice__mark {\n opacity: 0; transform: scale(0.4);\n transition: opacity var(--dur-hover) var(--ease-in-motion),\n transform var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-choice__input:checked ~ .lintje-choice__box .lintje-choice__mark,\n.lintje-choice__input:indeterminate ~ .lintje-choice__box .lintje-choice__mark {\n opacity: 1; transform: none;\n}\n/* The border takes the primary-fill border: in dark the tint, so the box is no dark square. */\n.lintje-choice__input:checked ~ .lintje-choice__box,\n.lintje-choice__input:indeterminate ~ .lintje-choice__box {\n background: var(--color-accent); border-color: var(--color-action-primary-border);\n}\n.lintje-choice__input:focus-visible ~ .lintje-choice__box,\n.lintje-choice__input:focus-visible ~ .lintje-choice__radio,\n.lintje-choice__input:focus-visible ~ .lintje-choice__switch {\n outline: var(--focus-width) solid var(--color-focus);\n outline-offset: var(--focus-offset);\n}\n\n.lintje-choice__radio {\n width: 24px; height: 24px; flex: none;\n border: 2px solid var(--color-border-choice);\n border-radius: 50%;\n background: var(--color-bg-surface);\n display: flex; align-items: center; justify-content: center;\n}\n/* Ring and dot take the line accent: the dot stands on the surface by itself, so the primary\n fill would sink into the dark surface. */\n.lintje-choice__input:checked ~ .lintje-choice__radio { border-color: var(--color-accent-line); }\n.lintje-choice__input:checked ~ .lintje-choice__radio::after {\n content: ''; width: 12px; height: 12px; border-radius: 50%; background: var(--color-accent-line);\n}\n\n/* Off: edged with the field's edge (3:1, WCAG 1.4.11) as an inset ring, keeping the box size. */\n.lintje-choice__switch {\n box-sizing: border-box;\n width: 40px; height: 22px; flex: none;\n border-radius: 11px;\n /* Off is a filled track, not a pale one with a ring: the fill alone reaches 3:1. */\n background: var(--color-border-field);\n display: flex; align-items: center;\n padding: 2px;\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-choice__knob {\n width: 18px; height: 18px; display: block;\n border-radius: 50%;\n background: var(--color-bg-surface);\n transition: transform var(--dur-hover) var(--ease-in-motion);\n}\n/* An inset ring, not a border: a border would eat into the knob's inset and travel. */\n.lintje-choice__input:checked ~ .lintje-choice__switch {\n background: var(--color-accent);\n box-shadow: inset 0 0 0 1px var(--color-action-primary-border);\n}\n.lintje-choice__input:checked ~ .lintje-choice__switch .lintje-choice__knob { transform: translateX(18px); }\n\n.lintje-choice.is-disabled { color: var(--color-text-disabled); cursor: not-allowed; }\n.lintje-choice__input:disabled ~ .lintje-choice__box,\n.lintje-choice__input:disabled ~ .lintje-choice__radio {\n border-color: var(--color-border-strong);\n background: var(--color-bg-subtle);\n color: var(--color-text-disabled);\n}\n.lintje-choice__input:disabled:checked ~ .lintje-choice__box {\n background: var(--color-border-strong);\n}\n.lintje-choice__input:disabled:checked ~ .lintje-choice__radio::after {\n background: var(--color-border-strong);\n}\n/* After the checked rule, so a disabled switch also loses its inset ring. */\n.lintje-choice__input:disabled ~ .lintje-choice__switch { background: var(--color-border-default); box-shadow: none; }\n\n/* --- Stacked in the filter sheet ----------------------------------------- */\n:host([stacked]) {\n width: 100%;\n --h-control: var(--h-touch);\n}\n\n/* --- Forced colours ------------------------------------------------------- */\n/* Fills and box-shadows are dropped: the dot, pill and knob keep their drawing in system\n colours. The pill takes a 1 px border and gives up 1 px of its inset, so the knob's travel stays. */\n@media (forced-colors: active) {\n .lintje-label__dot { forced-color-adjust: none; background: CanvasText; }\n\n .lintje-choice__input:focus-visible ~ .lintje-choice__box,\n .lintje-choice__input:focus-visible ~ .lintje-choice__radio,\n .lintje-choice__input:focus-visible ~ .lintje-choice__switch { outline-color: Highlight; }\n\n .lintje-choice__input:checked ~ .lintje-choice__box,\n .lintje-choice__input:indeterminate ~ .lintje-choice__box,\n .lintje-choice__input:checked ~ .lintje-choice__radio { border-color: Highlight; }\n .lintje-choice__radio::after { forced-color-adjust: none; }\n .lintje-choice__input:checked ~ .lintje-choice__radio::after { background: Highlight; }\n\n .lintje-choice__switch { border: 1px solid CanvasText; padding: 1px; }\n .lintje-choice__input:checked ~ .lintje-choice__switch { border-color: Highlight; }\n .lintje-choice__knob { forced-color-adjust: none; background: CanvasText; }\n .lintje-choice__input:checked ~ .lintje-choice__switch .lintje-choice__knob { background: Highlight; }\n\n .lintje-choice__input:disabled ~ .lintje-choice__box,\n .lintje-choice__input:disabled ~ .lintje-choice__radio,\n .lintje-choice__input:disabled ~ .lintje-choice__switch { border-color: GrayText; }\n .lintje-choice__input:disabled:checked ~ .lintje-choice__radio::after,\n .lintje-choice__input:disabled ~ .lintje-choice__switch .lintje-choice__knob { background: GrayText; }\n .lintje-choice.is-disabled { color: GrayText; }\n}\n";
|
|
194
|
-
//#endregion
|
|
195
|
-
export { l as a, c as i, p as n, f as r, m as t };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '../types/components/overlays/confirm-dialog/confirm-dialog.js'
|
|
@@ -1,118 +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 { t as u } from "../chunks/confirm-dialog-D5EVGuil.js";
|
|
4
|
-
//#region src/components/overlays/confirm-dialog/confirm-dialog.ts
|
|
5
|
-
var d = class extends s {
|
|
6
|
-
constructor(...e) {
|
|
7
|
-
super(...e), this.open = !1, this.heading = "", this.confirmLabel = "Bevestigen", this.cancelLabel = "Annuleren", this.tone = "danger", this.busy = !1, this.#e = new i(this, r), this.#t = null, this.#n = new l(), this.#r = (e) => {
|
|
8
|
-
e.key === "Escape" && this.#n.isTopmost() && this.cancel("escape");
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
static {
|
|
12
|
-
this.styles = n(u);
|
|
13
|
-
}
|
|
14
|
-
static {
|
|
15
|
-
this.properties = {
|
|
16
|
-
open: {
|
|
17
|
-
type: Boolean,
|
|
18
|
-
reflect: !0
|
|
19
|
-
},
|
|
20
|
-
heading: { type: String },
|
|
21
|
-
confirmLabel: {
|
|
22
|
-
type: String,
|
|
23
|
-
attribute: "confirm-label"
|
|
24
|
-
},
|
|
25
|
-
cancelLabel: {
|
|
26
|
-
type: String,
|
|
27
|
-
attribute: "cancel-label"
|
|
28
|
-
},
|
|
29
|
-
actionLabel: {
|
|
30
|
-
type: String,
|
|
31
|
-
attribute: "action-label"
|
|
32
|
-
},
|
|
33
|
-
tone: {
|
|
34
|
-
type: String,
|
|
35
|
-
reflect: !0
|
|
36
|
-
},
|
|
37
|
-
busy: {
|
|
38
|
-
type: Boolean,
|
|
39
|
-
reflect: !0
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
}
|
|
43
|
-
#e;
|
|
44
|
-
#t;
|
|
45
|
-
#n;
|
|
46
|
-
#r;
|
|
47
|
-
cancel(e) {
|
|
48
|
-
this.busy || this.emit("lintje-close", { reason: e });
|
|
49
|
-
}
|
|
50
|
-
disconnectedCallback() {
|
|
51
|
-
this.#a(), super.disconnectedCallback();
|
|
52
|
-
}
|
|
53
|
-
updated(e) {
|
|
54
|
-
super.updated(e), this.open && !this.#t ? this.#i() : !this.open && this.#t && this.#a();
|
|
55
|
-
}
|
|
56
|
-
async #i() {
|
|
57
|
-
this.#t = a(), document.addEventListener("keydown", this.#r);
|
|
58
|
-
let e = this.renderRoot.querySelector(".lintje-confirm-dialog");
|
|
59
|
-
if (!e) return;
|
|
60
|
-
this.#n.activate(e, { focus: !1 });
|
|
61
|
-
let t = this.renderRoot.querySelector(".lintje-confirm-dialog__cancel");
|
|
62
|
-
t && (await t.updateComplete, this.open && this.#n.isTopmost() && c(t).focus());
|
|
63
|
-
}
|
|
64
|
-
#a() {
|
|
65
|
-
this.#t && (document.removeEventListener("keydown", this.#r), this.#t(), this.#t = null, this.#n.deactivate());
|
|
66
|
-
}
|
|
67
|
-
render() {
|
|
68
|
-
if (!this.open) return t;
|
|
69
|
-
let e = this.#e.matches;
|
|
70
|
-
return o`<div class="lintje-confirm-dialog__scrim" @click=${() => this.cancel("scrim")}>
|
|
71
|
-
<div
|
|
72
|
-
class="lintje-confirm-dialog"
|
|
73
|
-
role="alertdialog"
|
|
74
|
-
aria-modal="true"
|
|
75
|
-
aria-labelledby="lintje-confirm-dialog-heading"
|
|
76
|
-
aria-describedby="lintje-confirm-dialog-text"
|
|
77
|
-
tabindex="-1"
|
|
78
|
-
@click=${(e) => e.stopPropagation()}
|
|
79
|
-
>
|
|
80
|
-
<h2 id="lintje-confirm-dialog-heading" class="lintje-confirm-dialog__heading">
|
|
81
|
-
${this.heading}
|
|
82
|
-
</h2>
|
|
83
|
-
<div id="lintje-confirm-dialog-text" class="lintje-confirm-dialog__text">
|
|
84
|
-
<slot></slot>
|
|
85
|
-
</div>
|
|
86
|
-
<div class="lintje-confirm-dialog__actions">
|
|
87
|
-
${this.actionLabel ? o`<lintje-button
|
|
88
|
-
class="lintje-confirm-dialog__action"
|
|
89
|
-
variant="tertiary"
|
|
90
|
-
?block=${e}
|
|
91
|
-
?disabled=${this.busy}
|
|
92
|
-
@click=${() => this.emit("lintje-action")}
|
|
93
|
-
>${this.actionLabel}</lintje-button
|
|
94
|
-
>` : t}
|
|
95
|
-
<lintje-button
|
|
96
|
-
class="lintje-confirm-dialog__cancel"
|
|
97
|
-
variant="secondary"
|
|
98
|
-
?block=${e}
|
|
99
|
-
?disabled=${this.busy}
|
|
100
|
-
@click=${() => this.cancel("cancel")}
|
|
101
|
-
>${this.cancelLabel}</lintje-button
|
|
102
|
-
>
|
|
103
|
-
<lintje-button
|
|
104
|
-
class="lintje-confirm-dialog__confirm"
|
|
105
|
-
variant=${this.tone === "primary" ? "primary" : "danger"}
|
|
106
|
-
?block=${e}
|
|
107
|
-
?busy=${this.busy}
|
|
108
|
-
@click=${() => this.emit("lintje-confirm")}
|
|
109
|
-
>${this.confirmLabel}</lintje-button
|
|
110
|
-
>
|
|
111
|
-
</div>
|
|
112
|
-
</div>
|
|
113
|
-
</div>`;
|
|
114
|
-
}
|
|
115
|
-
};
|
|
116
|
-
e("lintje-confirm-dialog", d);
|
|
117
|
-
//#endregion
|
|
118
|
-
export { d as LintjeConfirmDialog };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from '../types/components/frame/session-expiry/session-expiry.js'
|
|
@@ -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
|
-
}
|