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,16 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { r as l, t as u } from "../chunks/input-
|
|
1
|
+
import { Yt as e, Zt as t, en as n, et as r, lt as i, m as a, nn as o, st as s, ut as c } from "../chunks/base-CbmWxUig.js";
|
|
2
|
+
import { r as l, t as u } from "../chunks/input-CRW_exv_.js";
|
|
3
3
|
import { a as d, c as f, d as p, f as m, g as h, i as g, l as _, m as v, n as y, o as b, r as x, s as S, t as C, u as w } from "../chunks/date-format-mHtZyBys.js";
|
|
4
4
|
//#region src/components/inputs/date-input/date-input.css?inline
|
|
5
|
-
var T = "/* The date input: a text field with a calendar button, and the calendar in a `lintje-popover`. */\n:host {\n display: block;\n min-width: 0;\n}\n:host([hidden]) { display: none; }\n:host([stacked]) {\n width: 100%;\n --h-control: var(--h-touch);\n}\n/* Below 768 px: the touch height and the full width, as `stacked`. */\n@media (max-width: 767px) {\n :host {\n width: 100%;\n --h-control: var(--h-touch);\n }\n}\n\n/* --- */\n\n/* --- The field ----------------------------------------------------------- */\n.lintje-date-input { position: relative; display: flex; align-items: center; }\n.lintje-date-input__control {\n width: 100%; height: var(--h-control);\n padding: 0 calc(var(--h-control) - 2px + var(--space-2)) 0 14px;\n border: 1px solid var(--color-border-field);\n background: var(--color-bg-surface);\n color: var(--color-text-primary);\n font-size: 1rem;\n font-variant-numeric: tabular-nums;\n border-radius: var(--radius);\n}\n.lintje-date-input__control::placeholder { color: var(--color-text-placeholder); opacity: 1; }\n.lintje-date-input__control.is-error { border: 2px solid var(--color-error); }\n/* Disabled wins over error: after it, the whole border back to 1 px strong. */\n.lintje-date-input__control:disabled {\n border: 1px solid var(--color-border-strong);\n background: var(--color-bg-subtle);\n color: var(--color-text-disabled);\n cursor: not-allowed;\n}\n\n.lintje-date-input__toggle {\n position: absolute; top: 1px; right: 1px;\n width: calc(var(--h-control) - 2px); height: calc(var(--h-control) - 2px);\n display: flex; align-items: center; justify-content: center;\n border-left: 1px solid var(--color-border-default);\n background: transparent;\n color: var(--color-accent-text);\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n/* A transparent hit area reaches the target height, never to the left where the typing part is. */\n.lintje-date-input__toggle::after {\n content: '';\n position: absolute;\n inset: min(0px, calc((100% - var(--h-target)) / 2)) min(0px, calc(100% - var(--h-target)))\n min(0px, calc((100% - var(--h-target)) / 2)) 0;\n}\n/* The button steps in past the 2 px error border; a disabled field has 1 px again. */\n.lintje-date-input__control.is-error:not(:disabled) + .lintje-date-input__toggle {\n top: 2px; right: 2px;\n width: calc(var(--h-control) - 4px); height: calc(var(--h-control) - 4px);\n}\n.lintje-date-input__toggle:hover:not(:disabled) { background: var(--color-bg-selected); }\n.lintje-date-input__toggle:disabled { color: var(--color-text-disabled); cursor: not-allowed; }\n\n/* --- The calendar -------------------------------------------------------- */\n.lintje-date-input__calendar {\n width: calc(7 * var(--h-option) + 2 * var(--space-3)); max-width: 100%;\n padding: var(--space-3);\n color: var(--color-text-primary);\n}\n.lintje-date-input__month { display: flex; align-items: center; gap: var(--space-1); }\n.lintje-date-input__month-label { flex: 1; text-align: center; font-size: 1rem; font-weight: 700; }\n/* A transparent hit area, above and below only, reaches the target height. */\n.lintje-date-input__nav {\n position: relative;\n flex: none;\n width: var(--h-icon-button); height: var(--h-icon-button);\n display: inline-flex; align-items: center; justify-content: center;\n border: 1px solid transparent;\n background: transparent;\n color: var(--color-text-primary);\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-date-input__nav:hover { background: var(--color-bg-subtle); }\n.lintje-date-input__nav::after {\n content: '';\n position: absolute;\n inset: min(0px, calc((100% - var(--h-target)) / 2)) 0;\n}\n\n.lintje-date-input__grid {\n display: grid; grid-template-columns: repeat(7, minmax(0, 1fr));\n margin-top: var(--space-2);\n}\n/* A row is there for the grid's ARIA only. */\n.lintje-date-input__row { display: contents; }\n.lintje-date-input__weekday {\n padding: var(--space-1) 0;\n text-align: center;\n font-size: var(--label-size); font-weight: var(--label-weight);\n letter-spacing: var(--label-tracking); text-transform: uppercase;\n color: var(--color-text-muted);\n}\n.lintje-date-input__day {\n height: var(--h-option);\n display: flex; align-items: center; justify-content: center;\n background: transparent;\n color: var(--color-text-primary);\n font-size: 0.875rem;\n font-variant-numeric: tabular-nums;\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-date-input__day:hover { background: var(--color-bg-subtle); }\n.lintje-date-input__day.is-today { box-shadow: inset 0 0 0 1px var(--color-accent-line); }\n/* The border is an inset ring, so the cell keeps its size. */\n.lintje-date-input__day.is-selected {\n background: var(--color-action-primary);\n color: var(--color-action-primary-text);\n box-shadow: inset 0 0 0 1px var(--color-action-primary-border);\n font-weight: 700;\n}\n.lintje-date-input__day.is-selected.is-today {\n box-shadow: inset 0 0 0 1px var(--color-action-primary-border),\n inset 0 0 0 2px var(--color-accent-line);\n}\n/* Outside `min`/`max`: arrow keys still pass over it. */\n.lintje-date-input__day.is-blocked {\n background: transparent;\n color: var(--color-text-disabled);\n cursor: not-allowed;\n}\n\n@media (max-width: 767px) {\n /* The popover's edge margin, less its 1 px border on either side. */\n .lintje-date-input__calendar { width: calc(100vw - var(--space-4) - 2px); }\n}\n\n/* Forced colours drop rings and fills: they become borders inside the cell. */\n@media (forced-colors: active) {\n .lintje-date-input__day.is-today { border: 1px solid CanvasText; }\n .lintje-date-input__day.is-selected { border: 1px solid Highlight; }\n .lintje-date-input__day.is-selected.is-today:not(:focus-visible) {\n outline: 1px solid CanvasText;\n outline-offset: -2px;\n }\n .lintje-date-input__day.is-blocked { color: GrayText; }\n}\n", E = class extends l {
|
|
5
|
+
var T = "/* The date input: a text field with a calendar button, and the calendar in a `lintje-popover`. */\n:host {\n display: block;\n min-width: 0;\n}\n:host([hidden]) { display: none; }\n:host([stacked]) {\n width: 100%;\n --h-control: var(--h-touch);\n}\n/* Below 768 px: the touch height and the full width, as `stacked`. */\n@media screen and (max-width: 767px) {\n :host {\n width: 100%;\n --h-control: var(--h-touch);\n }\n}\n\n/* --- */\n\n/* --- The field ----------------------------------------------------------- */\n.lintje-date-input { position: relative; display: flex; align-items: center; }\n.lintje-date-input__control {\n width: 100%; height: var(--h-control);\n padding: 0 calc(var(--h-control) - 2px + var(--space-2)) 0 14px;\n border: 1px solid var(--color-border-field);\n background: var(--color-bg-surface);\n color: var(--color-text-primary);\n font-size: 1rem;\n font-variant-numeric: tabular-nums;\n border-radius: var(--radius);\n}\n.lintje-date-input__control::placeholder { color: var(--color-text-placeholder); opacity: 1; }\n.lintje-date-input__control.is-error { border: 2px solid var(--color-error); }\n/* Disabled wins over error: after it, the whole border back to 1 px strong. */\n.lintje-date-input__control:disabled {\n border: 1px solid var(--color-border-strong);\n background: var(--color-bg-subtle);\n color: var(--color-text-disabled);\n cursor: not-allowed;\n}\n\n.lintje-date-input__toggle {\n position: absolute; top: 1px; right: 1px;\n width: calc(var(--h-control) - 2px); height: calc(var(--h-control) - 2px);\n display: flex; align-items: center; justify-content: center;\n border-left: 1px solid var(--color-border-default);\n background: transparent;\n color: var(--color-accent-text);\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n/* A transparent hit area reaches the target height, never to the left where the typing part is. */\n.lintje-date-input__toggle::after {\n content: '';\n position: absolute;\n inset: min(0px, calc((100% - var(--h-target)) / 2)) min(0px, calc(100% - var(--h-target)))\n min(0px, calc((100% - var(--h-target)) / 2)) 0;\n}\n/* The button steps in past the 2 px error border; a disabled field has 1 px again. */\n.lintje-date-input__control.is-error:not(:disabled) + .lintje-date-input__toggle {\n top: 2px; right: 2px;\n width: calc(var(--h-control) - 4px); height: calc(var(--h-control) - 4px);\n}\n.lintje-date-input__toggle:hover:not(:disabled) { background: var(--color-bg-selected); }\n.lintje-date-input__toggle:disabled { color: var(--color-text-disabled); cursor: not-allowed; }\n\n/* --- The calendar -------------------------------------------------------- */\n.lintje-date-input__calendar {\n width: calc(7 * var(--h-option) + 2 * var(--space-3)); max-width: 100%;\n padding: var(--space-3);\n color: var(--color-text-primary);\n}\n.lintje-date-input__month { display: flex; align-items: center; gap: var(--space-1); }\n.lintje-date-input__month-label { flex: 1; text-align: center; font-size: 1rem; font-weight: 700; }\n/* A transparent hit area, above and below only, reaches the target height. */\n.lintje-date-input__nav {\n position: relative;\n flex: none;\n width: var(--h-icon-button); height: var(--h-icon-button);\n display: inline-flex; align-items: center; justify-content: center;\n border: 1px solid transparent;\n background: transparent;\n color: var(--color-text-primary);\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-date-input__nav:hover { background: var(--color-bg-subtle); }\n.lintje-date-input__nav::after {\n content: '';\n position: absolute;\n inset: min(0px, calc((100% - var(--h-target)) / 2)) 0;\n}\n\n.lintje-date-input__grid {\n display: grid; grid-template-columns: repeat(7, minmax(0, 1fr));\n margin-top: var(--space-2);\n}\n/* A row is there for the grid's ARIA only. */\n.lintje-date-input__row { display: contents; }\n.lintje-date-input__weekday {\n padding: var(--space-1) 0;\n text-align: center;\n font-size: var(--label-size); font-weight: var(--label-weight);\n letter-spacing: var(--label-tracking); text-transform: uppercase;\n color: var(--color-text-muted);\n}\n.lintje-date-input__day {\n height: var(--h-option);\n display: flex; align-items: center; justify-content: center;\n background: transparent;\n color: var(--color-text-primary);\n font-size: 0.875rem;\n font-variant-numeric: tabular-nums;\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-date-input__day:hover { background: var(--color-bg-subtle); }\n.lintje-date-input__day.is-today { box-shadow: inset 0 0 0 1px var(--color-accent-line); }\n/* The border is an inset ring, so the cell keeps its size. */\n.lintje-date-input__day.is-selected {\n background: var(--color-action-primary);\n color: var(--color-action-primary-text);\n box-shadow: inset 0 0 0 1px var(--color-action-primary-border);\n font-weight: 700;\n}\n.lintje-date-input__day.is-selected.is-today {\n box-shadow: inset 0 0 0 1px var(--color-action-primary-border),\n inset 0 0 0 2px var(--color-accent-line);\n}\n/* Outside `min`/`max`: arrow keys still pass over it. */\n.lintje-date-input__day.is-blocked {\n background: transparent;\n color: var(--color-text-disabled);\n cursor: not-allowed;\n}\n\n@media screen and (max-width: 767px) {\n /* The popover's edge margin, less its 1 px border on either side. */\n .lintje-date-input__calendar { width: calc(100vw - var(--space-4) - 2px); }\n}\n\n/* Forced colours drop rings and fills: they become borders inside the cell. */\n@media (forced-colors: active) {\n .lintje-date-input__day.is-today { border: 1px solid CanvasText; }\n .lintje-date-input__day.is-selected { border: 1px solid Highlight; }\n .lintje-date-input__day.is-selected.is-today:not(:focus-visible) {\n outline: 1px solid CanvasText;\n outline-offset: -2px;\n }\n .lintje-date-input__day.is-blocked { color: GrayText; }\n}\n", E = class extends l {
|
|
6
6
|
constructor(...e) {
|
|
7
7
|
super(...e), this.value = null, this.placeholder = "", this.stacked = !1, this.open = !1, this.hint = "dd-mm-jjjj", this.text = "", this.problem = "", this.focusDay = "";
|
|
8
8
|
}
|
|
9
9
|
static {
|
|
10
10
|
this.styles = [
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
i,
|
|
12
|
+
t(u),
|
|
13
|
+
t(T)
|
|
14
14
|
];
|
|
15
15
|
}
|
|
16
16
|
static {
|
|
@@ -88,7 +88,7 @@ var T = "/* The date input: a text field with a calendar button, and the calenda
|
|
|
88
88
|
}
|
|
89
89
|
onFocusOut(e) {
|
|
90
90
|
let t = e.relatedTarget;
|
|
91
|
-
this.open && t && !this.renderRoot.contains(t) && !
|
|
91
|
+
this.open && t && !this.renderRoot.contains(t) && !r(this, t) && (this.open = !1);
|
|
92
92
|
}
|
|
93
93
|
pick(e) {
|
|
94
94
|
this.outOfBounds(e) || (this.choose(e), this.open = !1, this.renderRoot.querySelector(".lintje-date-input__control")?.focus());
|
|
@@ -101,8 +101,8 @@ var T = "/* The date input: a text field with a calendar button, and the calenda
|
|
|
101
101
|
this.focusDay = g(this.focusDay, e);
|
|
102
102
|
}
|
|
103
103
|
renderCalendar() {
|
|
104
|
-
let e = this.focusDay || this.todayDay, t = v(e).slice(0, 7),
|
|
105
|
-
return
|
|
104
|
+
let e = this.focusDay || this.todayDay, t = v(e).slice(0, 7), r = this.todayDay;
|
|
105
|
+
return o`<div class="lintje-date-input__calendar">
|
|
106
106
|
<div class="lintje-date-input__month">
|
|
107
107
|
<button
|
|
108
108
|
type="button"
|
|
@@ -110,7 +110,7 @@ var T = "/* The date input: a text field with a calendar button, and the calenda
|
|
|
110
110
|
aria-label="Vorige maand"
|
|
111
111
|
@click=${() => this.shiftMonth(-1)}
|
|
112
112
|
>
|
|
113
|
-
${
|
|
113
|
+
${c("functioneel-delta-rechts", {
|
|
114
114
|
size: 16,
|
|
115
115
|
flip: "horizontal"
|
|
116
116
|
})}
|
|
@@ -124,7 +124,7 @@ var T = "/* The date input: a text field with a calendar button, and the calenda
|
|
|
124
124
|
aria-label="Volgende maand"
|
|
125
125
|
@click=${() => this.shiftMonth(1)}
|
|
126
126
|
>
|
|
127
|
-
${
|
|
127
|
+
${c("functioneel-delta-rechts", { size: 16 })}
|
|
128
128
|
</button>
|
|
129
129
|
</div>
|
|
130
130
|
<div
|
|
@@ -134,26 +134,26 @@ var T = "/* The date input: a text field with a calendar button, and the calenda
|
|
|
134
134
|
@keydown=${this.onGridKeydown}
|
|
135
135
|
>
|
|
136
136
|
<div class="lintje-date-input__row" role="row">
|
|
137
|
-
${y.map((e) =>
|
|
137
|
+
${y.map((e) => o`<span class="lintje-date-input__weekday" role="columnheader">${e}</span>`)}
|
|
138
138
|
</div>
|
|
139
|
-
${w(e).map((i) =>
|
|
139
|
+
${w(e).map((i) => o`<div class="lintje-date-input__row" role="row">
|
|
140
140
|
${i.map((i) => {
|
|
141
|
-
if (!i.startsWith(t)) return
|
|
142
|
-
let
|
|
143
|
-
return
|
|
141
|
+
if (!i.startsWith(t)) return o`<span class="lintje-date-input__blank" role="gridcell"></span>`;
|
|
142
|
+
let a = !!this.outOfBounds(i);
|
|
143
|
+
return o`<button
|
|
144
144
|
type="button"
|
|
145
145
|
role="gridcell"
|
|
146
|
-
class=${
|
|
146
|
+
class=${s({
|
|
147
147
|
"lintje-date-input__day": !0,
|
|
148
|
-
"is-blocked":
|
|
149
|
-
"is-today": i ===
|
|
148
|
+
"is-blocked": a,
|
|
149
|
+
"is-today": i === r,
|
|
150
150
|
"is-selected": i === this.value
|
|
151
151
|
})}
|
|
152
152
|
tabindex=${i === e ? "0" : "-1"}
|
|
153
153
|
aria-label=${b(i)}
|
|
154
154
|
aria-selected=${i === this.value ? "true" : "false"}
|
|
155
|
-
aria-current=${i ===
|
|
156
|
-
aria-disabled=${
|
|
155
|
+
aria-current=${i === r ? "date" : n}
|
|
156
|
+
aria-disabled=${a ? "true" : n}
|
|
157
157
|
@click=${() => this.pick(i)}
|
|
158
158
|
>
|
|
159
159
|
${Number(i.slice(8))}
|
|
@@ -165,7 +165,7 @@ var T = "/* The date input: a text field with a calendar button, and the calenda
|
|
|
165
165
|
}
|
|
166
166
|
render() {
|
|
167
167
|
let e = this.message;
|
|
168
|
-
return
|
|
168
|
+
return o`<div class="lintje-field" @focusout=${this.onFocusOut}>
|
|
169
169
|
${this.renderLabel(this.controlId)}
|
|
170
170
|
<div class="lintje-date-input">
|
|
171
171
|
<input
|
|
@@ -173,16 +173,16 @@ var T = "/* The date input: a text field with a calendar button, and the calenda
|
|
|
173
173
|
id=${this.controlId}
|
|
174
174
|
inputmode="numeric"
|
|
175
175
|
autocomplete="off"
|
|
176
|
-
class=${
|
|
176
|
+
class=${s({
|
|
177
177
|
"lintje-date-input__control": !0,
|
|
178
178
|
"is-error": !!e
|
|
179
179
|
})}
|
|
180
|
-
.value=${
|
|
181
|
-
placeholder=${this.placeholder ||
|
|
180
|
+
.value=${a(this.text)}
|
|
181
|
+
placeholder=${this.placeholder || n}
|
|
182
182
|
aria-labelledby=${this.labelId}
|
|
183
183
|
aria-describedby=${this.describedBy}
|
|
184
|
-
aria-invalid=${e ? "true" :
|
|
185
|
-
aria-required=${this.required ? "true" :
|
|
184
|
+
aria-invalid=${e ? "true" : n}
|
|
185
|
+
aria-required=${this.required ? "true" : n}
|
|
186
186
|
?disabled=${this.disabled}
|
|
187
187
|
@change=${this.onChange}
|
|
188
188
|
@keydown=${this.onFieldKeydown}
|
|
@@ -196,7 +196,7 @@ var T = "/* The date input: a text field with a calendar button, and the calenda
|
|
|
196
196
|
?disabled=${this.disabled}
|
|
197
197
|
@click=${this.toggle}
|
|
198
198
|
>
|
|
199
|
-
${
|
|
199
|
+
${c("functioneel-kalender", { size: 18 })}
|
|
200
200
|
</button>
|
|
201
201
|
</div>
|
|
202
202
|
<lintje-popover
|
|
@@ -205,12 +205,12 @@ var T = "/* The date input: a text field with a calendar button, and the calenda
|
|
|
205
205
|
label="Kalender"
|
|
206
206
|
@lintje-close=${this.onPopoverClose}
|
|
207
207
|
>
|
|
208
|
-
${this.open ? this.renderCalendar() :
|
|
208
|
+
${this.open ? this.renderCalendar() : n}
|
|
209
209
|
</lintje-popover>
|
|
210
210
|
${this.renderFoot()}
|
|
211
211
|
</div>`;
|
|
212
212
|
}
|
|
213
213
|
};
|
|
214
|
-
|
|
214
|
+
e("lintje-date-input", E);
|
|
215
215
|
//#endregion
|
|
216
216
|
export { E as LintjeDateInput };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { $ as e,
|
|
2
|
-
import "../chunks/focus-trap-
|
|
3
|
-
import { r as u, t as d } from "../chunks/input-
|
|
1
|
+
import { $ as e, Q as t, Yt as n, Zt as r, en as i, et as a, lt as o, nn as s, st as c, ut as l } from "../chunks/base-CbmWxUig.js";
|
|
2
|
+
import "../chunks/focus-trap-BwOxE5BX.js";
|
|
3
|
+
import { r as u, t as d } from "../chunks/input-CRW_exv_.js";
|
|
4
4
|
import { g as f, h as p, i as m, l as h, m as g, o as _, r as v, t as y } from "../chunks/date-format-mHtZyBys.js";
|
|
5
5
|
//#region src/components/inputs/date-range/date-range.css?inline
|
|
6
|
-
var b = "/* The date range picker. The popover is positioned against the host (`position: relative`). */\n:host {\n display: block;\n position: relative;\n}\n\n/* --- */\n\n.lintje-date-range-picker { position: relative; display: flex; flex-direction: column; gap: 6px; }\n.lintje-date-range-picker__field {\n display: flex; align-items: center; justify-content: space-between; gap: 10px;\n min-width: 210px; height: var(--h-control);\n padding: 0 12px 0 14px;\n border: 1px solid var(--color-border-field);\n background: var(--color-bg-surface);\n color: var(--color-text-placeholder);\n font-size: 1rem;\n}\n.lintje-date-range-picker__field.is-filled { color: var(--color-text-primary); font-weight: 700; }\n.lintje-date-range-picker__field.is-error { border: 2px solid var(--color-error); }\n.lintje-date-range-picker__field:disabled {\n border: 1px solid var(--color-border-strong);\n background: var(--color-bg-subtle);\n color: var(--color-text-disabled);\n cursor: not-allowed;\n}\n.lintje-date-range-picker__icon { color: var(--color-text-primary); }\n\n.lintje-date-range-picker__popover {\n position: absolute; top: calc(100% + 4px); left: 0; z-index: 50;\n /* Seven cells, six 1 px gaps, the grid's padding and the border. */\n width: calc(7 * var(--h-option) + 6px + 2 * var(--space-2) + 2px);\n background: var(--color-bg-surface);\n border: 1px solid var(--color-border-popover);\n box-shadow: var(--shadow-popover);\n animation: lintje-popover-in var(--dur-popover) var(--ease-in-motion);\n}\n.lintje-date-range-picker__month {\n display: flex; align-items: center; justify-content: space-between;\n padding: var(--space-2) var(--space-3);\n border-bottom: 1px solid var(--color-border-default);\n font-size: 1rem; font-weight: 700;\n}\n/* A transparent hit area reaches the target height. */\n.lintje-date-range-picker__nav {\n position: relative;\n width: var(--h-icon-button); height: var(--h-icon-button);\n display: flex; align-items: center; justify-content: center;\n color: var(--color-text-primary);\n}\n.lintje-date-range-picker__nav:hover { background: var(--color-bg-subtle); }\n.lintje-date-range-picker__nav::after {\n content: '';\n position: absolute;\n inset: min(0px, calc((100% - var(--h-target)) / 2));\n}\n\n.lintje-date-range-picker__grid {\n display: grid; grid-template-columns: repeat(7, var(--h-option));\n gap: 1px; padding: var(--space-2);\n}\n/* A row is there for the grid's ARIA only. */\n.lintje-date-range-picker__row { display: contents; }\n.lintje-date-range-picker__weekday {\n text-align: center; font-size: 0.875rem; font-weight: 700;\n color: var(--color-text-muted); padding-bottom: 4px;\n}\n.lintje-date-range-picker__day {\n height: var(--h-option);\n display: flex; align-items: center; justify-content: center;\n font-size: 0.875rem; color: var(--color-text-primary);\n font-variant-numeric: tabular-nums;\n}\n.lintje-date-range-picker__day:hover:not(.is-blocked) { background: var(--color-bg-subtle); }\n.lintje-date-range-picker__day.is-outside { color: var(--color-text-disabled); }\n/* After `maxDate`: `aria-disabled`, so the arrow keys still pass over it. */\n.lintje-date-range-picker__day.is-blocked { color: var(--color-text-disabled); cursor: not-allowed; }\n.lintje-date-range-picker__day.is-today { box-shadow: inset 0 0 0 1px var(--color-info); font-weight: 700; }\n.lintje-date-range-picker__day.is-in-range { background: var(--color-bg-selected); }\n/* An inset ring like `.is-today`: the cell keeps its size and an edge on a dark surface. */\n.lintje-date-range-picker__day.is-endpoint {\n background: var(--color-action-primary); color: var(--color-action-primary-text); font-weight: 700;\n box-shadow: inset 0 0 0 1px var(--color-action-primary-border);\n}\n/* Today and an endpoint: both rings, so the \"today\" marker survives. */\n.lintje-date-range-picker__day.is-endpoint.is-today {\n box-shadow: inset 0 0 0 1px var(--color-action-primary-border), inset 0 0 0 2px var(--color-info);\n}\n\n.lintje-date-range-picker__presets {\n /* The row gap keeps the hit areas below from overlapping. */\n display: flex; flex-wrap: wrap; gap: var(--space-4) var(--space-2);\n padding: var(--space-2) var(--space-3);\n border-top: 1px solid var(--color-border-default);\n}\n.lintje-date-range-picker__preset {\n position: relative;\n height: var(--h-chip);\n padding: 0 8px;\n border: 1px solid var(--color-border-default);\n background: var(--color-bg-subtle);\n font-size: 0.875rem; color: var(--color-text-primary);\n}\n/* A transparent hit area, above and below only, reaches the target height. */\n.lintje-date-range-picker__preset::after {\n content: '';\n position: absolute;\n inset: min(0px, calc((100% - var(--h-target)) / 2)) 0;\n}\n/* The accent line, not the fill colour: in dark the primary on #333333 is 1.2:1. */\n.lintje-date-range-picker__preset:hover { border-color: var(--color-accent-line); }\n\n.lintje-date-range-picker__footer {\n display: flex; flex-direction: column; gap: var(--space-2);\n padding: var(--space-3);\n border-top: 1px solid var(--color-border-default);\n font: var(--text-small); color: var(--color-text-muted);\n}\n.lintje-date-range-picker__actions { display: flex; gap: var(--space-2); justify-content: flex-end; }\n\n/* --- Stacked in the filter sheet ----------------------------------------- */\n:host([stacked]) {\n width: 100%;\n}\n\n/* Below 768 px the 48 px cells would run off a narrow phone: the popover keeps the page's gutter\n on either side and the cells share what is left. */\n@media (max-width: 767px) {\n .lintje-date-range-picker__popover { max-width: calc(100vw - 2 * var(--space-4)); }\n .lintje-date-range-picker__grid { grid-template-columns: repeat(7, minmax(0, 1fr)); }\n}\n\n/* Forced colours drop rings and fills: they become borders inside the cell. */\n@media (forced-colors: active) {\n .lintje-date-range-picker__day.is-in-range { border-block: 1px solid CanvasText; }\n .lintje-date-range-picker__day.is-today { border: 1px solid CanvasText; }\n .lintje-date-range-picker__day.is-endpoint { border: 1px solid Highlight; }\n .lintje-date-range-picker__day.is-endpoint.is-today:not(:focus-visible) {\n outline: 1px solid CanvasText;\n outline-offset: -2px;\n }\n}\n", x = [
|
|
6
|
+
var b = "/* The date range picker. The popover is positioned against the host (`position: relative`). */\n:host {\n display: block;\n position: relative;\n}\n\n/* --- */\n\n.lintje-date-range-picker { position: relative; display: flex; flex-direction: column; gap: 6px; }\n.lintje-date-range-picker__field {\n display: flex; align-items: center; justify-content: space-between; gap: 10px;\n min-width: 210px; height: var(--h-control);\n padding: 0 12px 0 14px;\n border: 1px solid var(--color-border-field);\n background: var(--color-bg-surface);\n color: var(--color-text-placeholder);\n font-size: 1rem;\n}\n.lintje-date-range-picker__field.is-filled { color: var(--color-text-primary); font-weight: 700; }\n.lintje-date-range-picker__field.is-error { border: 2px solid var(--color-error); }\n.lintje-date-range-picker__field:disabled {\n border: 1px solid var(--color-border-strong);\n background: var(--color-bg-subtle);\n color: var(--color-text-disabled);\n cursor: not-allowed;\n}\n.lintje-date-range-picker__icon { color: var(--color-text-primary); }\n\n.lintje-date-range-picker__popover {\n position: absolute; top: calc(100% + 4px); left: 0; z-index: 50;\n /* Seven cells, six 1 px gaps, the grid's padding and the border. */\n width: calc(7 * var(--h-option) + 6px + 2 * var(--space-2) + 2px);\n background: var(--color-bg-surface);\n border: 1px solid var(--color-border-popover);\n box-shadow: var(--shadow-popover);\n animation: lintje-popover-in var(--dur-popover) var(--ease-in-motion);\n}\n.lintje-date-range-picker__month {\n display: flex; align-items: center; justify-content: space-between;\n padding: var(--space-2) var(--space-3);\n border-bottom: 1px solid var(--color-border-default);\n font-size: 1rem; font-weight: 700;\n}\n/* A transparent hit area reaches the target height. */\n.lintje-date-range-picker__nav {\n position: relative;\n width: var(--h-icon-button); height: var(--h-icon-button);\n display: flex; align-items: center; justify-content: center;\n color: var(--color-text-primary);\n}\n.lintje-date-range-picker__nav:hover { background: var(--color-bg-subtle); }\n.lintje-date-range-picker__nav::after {\n content: '';\n position: absolute;\n inset: min(0px, calc((100% - var(--h-target)) / 2));\n}\n\n.lintje-date-range-picker__grid {\n display: grid; grid-template-columns: repeat(7, var(--h-option));\n gap: 1px; padding: var(--space-2);\n}\n/* A row is there for the grid's ARIA only. */\n.lintje-date-range-picker__row { display: contents; }\n.lintje-date-range-picker__weekday {\n text-align: center; font-size: 0.875rem; font-weight: 700;\n color: var(--color-text-muted); padding-bottom: 4px;\n}\n.lintje-date-range-picker__day {\n height: var(--h-option);\n display: flex; align-items: center; justify-content: center;\n font-size: 0.875rem; color: var(--color-text-primary);\n font-variant-numeric: tabular-nums;\n}\n.lintje-date-range-picker__day:hover:not(.is-blocked) { background: var(--color-bg-subtle); }\n.lintje-date-range-picker__day.is-outside { color: var(--color-text-disabled); }\n/* After `maxDate`: `aria-disabled`, so the arrow keys still pass over it. */\n.lintje-date-range-picker__day.is-blocked { color: var(--color-text-disabled); cursor: not-allowed; }\n.lintje-date-range-picker__day.is-today { box-shadow: inset 0 0 0 1px var(--color-info); font-weight: 700; }\n.lintje-date-range-picker__day.is-in-range { background: var(--color-bg-selected); }\n/* An inset ring like `.is-today`: the cell keeps its size and an edge on a dark surface. */\n.lintje-date-range-picker__day.is-endpoint {\n background: var(--color-action-primary); color: var(--color-action-primary-text); font-weight: 700;\n box-shadow: inset 0 0 0 1px var(--color-action-primary-border);\n}\n/* Today and an endpoint: both rings, so the \"today\" marker survives. */\n.lintje-date-range-picker__day.is-endpoint.is-today {\n box-shadow: inset 0 0 0 1px var(--color-action-primary-border), inset 0 0 0 2px var(--color-info);\n}\n\n.lintje-date-range-picker__presets {\n /* The row gap keeps the hit areas below from overlapping. */\n display: flex; flex-wrap: wrap; gap: var(--space-4) var(--space-2);\n padding: var(--space-2) var(--space-3);\n border-top: 1px solid var(--color-border-default);\n}\n.lintje-date-range-picker__preset {\n position: relative;\n height: var(--h-chip);\n padding: 0 8px;\n border: 1px solid var(--color-border-default);\n background: var(--color-bg-subtle);\n font-size: 0.875rem; color: var(--color-text-primary);\n}\n/* A transparent hit area, above and below only, reaches the target height. */\n.lintje-date-range-picker__preset::after {\n content: '';\n position: absolute;\n inset: min(0px, calc((100% - var(--h-target)) / 2)) 0;\n}\n/* The accent line, not the fill colour: in dark the primary on #333333 is 1.2:1. */\n.lintje-date-range-picker__preset:hover { border-color: var(--color-accent-line); }\n\n.lintje-date-range-picker__footer {\n display: flex; flex-direction: column; gap: var(--space-2);\n padding: var(--space-3);\n border-top: 1px solid var(--color-border-default);\n font: var(--text-small); color: var(--color-text-muted);\n}\n.lintje-date-range-picker__actions { display: flex; gap: var(--space-2); justify-content: flex-end; }\n\n/* --- Stacked in the filter sheet ----------------------------------------- */\n:host([stacked]) {\n width: 100%;\n}\n\n/* Below 768 px the 48 px cells would run off a narrow phone: the popover keeps the page's gutter\n on either side and the cells share what is left. */\n@media screen and (max-width: 767px) {\n .lintje-date-range-picker__popover { max-width: calc(100vw - 2 * var(--space-4)); }\n .lintje-date-range-picker__grid { grid-template-columns: repeat(7, minmax(0, 1fr)); }\n}\n\n/* Forced colours drop rings and fills: they become borders inside the cell. */\n@media (forced-colors: active) {\n .lintje-date-range-picker__day.is-in-range { border-block: 1px solid CanvasText; }\n .lintje-date-range-picker__day.is-today { border: 1px solid CanvasText; }\n .lintje-date-range-picker__day.is-endpoint { border: 1px solid Highlight; }\n .lintje-date-range-picker__day.is-endpoint.is-today:not(:focus-visible) {\n outline: 1px solid CanvasText;\n outline-offset: -2px;\n }\n}\n", x = [
|
|
7
7
|
"ma",
|
|
8
8
|
"di",
|
|
9
9
|
"wo",
|
|
@@ -55,8 +55,8 @@ function A(e, t, n) {
|
|
|
55
55
|
return e && t ? ", begin- en einddatum" : e ? ", begindatum" : t ? ", einddatum" : n ? ", in periode" : "";
|
|
56
56
|
}
|
|
57
57
|
var j = class extends u {
|
|
58
|
-
constructor(...
|
|
59
|
-
super(...
|
|
58
|
+
constructor(...t) {
|
|
59
|
+
super(...t), this.accessibleName = "", this.stacked = !1, this.open = !1, this.range = {
|
|
60
60
|
from: null,
|
|
61
61
|
to: null
|
|
62
62
|
}, this.draft = {
|
|
@@ -64,15 +64,15 @@ var j = class extends u {
|
|
|
64
64
|
to: null
|
|
65
65
|
}, this.focusDay = "", this.onOutsideClick = (e) => {
|
|
66
66
|
this.open && (e.composedPath().includes(this) || (this.open = !1));
|
|
67
|
-
}, this.onEscape = (
|
|
68
|
-
this.open &&
|
|
67
|
+
}, this.onEscape = (t) => {
|
|
68
|
+
this.open && t.key === "Escape" && e(this) && (t.stopPropagation(), this.close());
|
|
69
69
|
};
|
|
70
70
|
}
|
|
71
71
|
static {
|
|
72
72
|
this.styles = [
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
73
|
+
o,
|
|
74
|
+
r(b),
|
|
75
|
+
r(d)
|
|
76
76
|
];
|
|
77
77
|
}
|
|
78
78
|
static {
|
|
@@ -104,12 +104,12 @@ var j = class extends u {
|
|
|
104
104
|
};
|
|
105
105
|
}
|
|
106
106
|
async close() {
|
|
107
|
-
let e = this.renderRoot.querySelector(".lintje-date-range-picker__popover"),
|
|
108
|
-
this.open = !1, await this.updateComplete,
|
|
107
|
+
let e = this.renderRoot.querySelector(".lintje-date-range-picker__popover"), n = e !== null && t(e);
|
|
108
|
+
this.open = !1, await this.updateComplete, n && this.renderRoot.querySelector(".lintje-date-range-picker__field")?.focus();
|
|
109
109
|
}
|
|
110
110
|
onFocusOut(e) {
|
|
111
111
|
let t = e.relatedTarget;
|
|
112
|
-
this.open && t && !this.renderRoot.contains(t) && !
|
|
112
|
+
this.open && t && !this.renderRoot.contains(t) && !a(this, t) && (this.open = !1);
|
|
113
113
|
}
|
|
114
114
|
connectedCallback() {
|
|
115
115
|
super.connectedCallback(), document.addEventListener("mousedown", this.onOutsideClick), document.addEventListener("keydown", this.onEscape, !0);
|
|
@@ -163,17 +163,17 @@ var j = class extends u {
|
|
|
163
163
|
}), this.close();
|
|
164
164
|
}
|
|
165
165
|
render() {
|
|
166
|
-
let e = f(this.day), t = this.month ?? O(this.range.from) ?? this.day, n = f(t).slice(0, 7),
|
|
166
|
+
let e = f(this.day), t = this.month ?? O(this.range.from) ?? this.day, n = f(t).slice(0, 7), r = D(this.draft.from), a = D(this.draft.to), o = this.maxDate ? f(this.maxDate) : null, u = p(`${n}-01`), d = Array.from({ length: 42 }, (e, t) => v(u, t)), m = Array.from({ length: 6 }, (e, t) => d.slice(t * 7, t * 7 + 7)), g = [
|
|
167
167
|
this.focusDay,
|
|
168
|
-
|
|
168
|
+
r,
|
|
169
169
|
e
|
|
170
170
|
].find((e) => e && d.includes(e)) ?? `${n}-01`, y = this.accessibleName || this.labelText, b = !!(this.range.from && this.range.to), S = b ? `${this.range.from} – ${this.range.to}` : "dd-mm-jjjj – dd-mm-jjjj", C = O(this.draft.from), T = O(this.draft.to), E = C && T ? Math.round((T.getTime() - C.getTime()) / 864e5) + 1 : 0, k = E > 0 || b && !this.draft.from && !this.draft.to;
|
|
171
|
-
return
|
|
172
|
-
${this.label ? this.renderLabel() :
|
|
171
|
+
return s`<div class="lintje-date-range-picker" @focusout=${this.onFocusOut}>
|
|
172
|
+
${this.label ? this.renderLabel() : i}
|
|
173
173
|
<button
|
|
174
174
|
type="button"
|
|
175
|
-
aria-label=${y ? `${y}, ${b ? S : "geen periode gekozen"}` :
|
|
176
|
-
class=${
|
|
175
|
+
aria-label=${y ? `${y}, ${b ? S : "geen periode gekozen"}` : i}
|
|
176
|
+
class=${c({
|
|
177
177
|
"lintje-date-range-picker__field": !0,
|
|
178
178
|
"is-filled": !!this.range.from,
|
|
179
179
|
"is-error": !!this.error
|
|
@@ -181,18 +181,18 @@ var j = class extends u {
|
|
|
181
181
|
aria-expanded=${this.open}
|
|
182
182
|
aria-haspopup="dialog"
|
|
183
183
|
aria-describedby=${this.describedBy}
|
|
184
|
-
aria-invalid=${this.error ? "true" :
|
|
184
|
+
aria-invalid=${this.error ? "true" : i}
|
|
185
185
|
?disabled=${this.disabled}
|
|
186
186
|
@click=${this.toggle}
|
|
187
187
|
>
|
|
188
188
|
<span>${S}</span>
|
|
189
|
-
${
|
|
189
|
+
${l("functioneel-kalender", {
|
|
190
190
|
size: 16,
|
|
191
191
|
className: "lintje-date-range-picker__icon"
|
|
192
192
|
})}
|
|
193
193
|
</button>
|
|
194
194
|
|
|
195
|
-
${this.open ?
|
|
195
|
+
${this.open ? s`<div
|
|
196
196
|
class="lintje-date-range-picker__popover"
|
|
197
197
|
role="dialog"
|
|
198
198
|
aria-label=${y || "Periode"}
|
|
@@ -204,7 +204,7 @@ var j = class extends u {
|
|
|
204
204
|
aria-label="Vorige maand"
|
|
205
205
|
@click=${() => this.shiftMonth(t, -1, g)}
|
|
206
206
|
>
|
|
207
|
-
${
|
|
207
|
+
${l("functioneel-delta-rechts", {
|
|
208
208
|
size: 16,
|
|
209
209
|
flip: "horizontal"
|
|
210
210
|
})}
|
|
@@ -216,7 +216,7 @@ var j = class extends u {
|
|
|
216
216
|
aria-label="Volgende maand"
|
|
217
217
|
@click=${() => this.shiftMonth(t, 1, g)}
|
|
218
218
|
>
|
|
219
|
-
${
|
|
219
|
+
${l("functioneel-delta-rechts", { size: 16 })}
|
|
220
220
|
</button>
|
|
221
221
|
</div>
|
|
222
222
|
|
|
@@ -227,30 +227,30 @@ var j = class extends u {
|
|
|
227
227
|
@keydown=${(e) => this.onGridKeydown(e, g, d)}
|
|
228
228
|
>
|
|
229
229
|
<div class="lintje-date-range-picker__row" role="row">
|
|
230
|
-
${x.map((e) =>
|
|
230
|
+
${x.map((e) => s`<span class="lintje-date-range-picker__weekday" role="columnheader"
|
|
231
231
|
>${e}</span
|
|
232
232
|
>`)}
|
|
233
233
|
</div>
|
|
234
|
-
${m.map((t) =>
|
|
234
|
+
${m.map((t) => s`<div class="lintje-date-range-picker__row" role="row">
|
|
235
235
|
${t.map((t) => {
|
|
236
|
-
let
|
|
237
|
-
return
|
|
236
|
+
let l = o !== null && t > o, u = t === r, d = t === a, f = r !== null && a !== null && t > r && t < a;
|
|
237
|
+
return s`<button
|
|
238
238
|
type="button"
|
|
239
239
|
role="gridcell"
|
|
240
240
|
tabindex=${t === g ? "0" : "-1"}
|
|
241
241
|
aria-label=${_(t) + A(u, d, f)}
|
|
242
242
|
aria-selected=${u || d || f ? "true" : "false"}
|
|
243
|
-
aria-current=${t === e ? "date" :
|
|
244
|
-
aria-disabled=${
|
|
245
|
-
class=${
|
|
243
|
+
aria-current=${t === e ? "date" : i}
|
|
244
|
+
aria-disabled=${l ? "true" : i}
|
|
245
|
+
class=${c({
|
|
246
246
|
"lintje-date-range-picker__day": !0,
|
|
247
247
|
"is-outside": !t.startsWith(n),
|
|
248
|
-
"is-blocked":
|
|
248
|
+
"is-blocked": l,
|
|
249
249
|
"is-today": t === e,
|
|
250
250
|
"is-endpoint": u || d,
|
|
251
251
|
"is-in-range": f
|
|
252
252
|
})}
|
|
253
|
-
@click=${() => this.pick(t,
|
|
253
|
+
@click=${() => this.pick(t, l)}
|
|
254
254
|
>
|
|
255
255
|
${Number(t.slice(8))}
|
|
256
256
|
</button>`;
|
|
@@ -259,7 +259,7 @@ var j = class extends u {
|
|
|
259
259
|
</div>
|
|
260
260
|
|
|
261
261
|
<div class="lintje-date-range-picker__presets">
|
|
262
|
-
${w.map(([e]) =>
|
|
262
|
+
${w.map(([e]) => s`<button
|
|
263
263
|
type="button"
|
|
264
264
|
class="lintje-date-range-picker__preset"
|
|
265
265
|
@click=${() => this.applyPreset(e)}
|
|
@@ -293,11 +293,11 @@ var j = class extends u {
|
|
|
293
293
|
>
|
|
294
294
|
</div>
|
|
295
295
|
</div>
|
|
296
|
-
</div>` :
|
|
296
|
+
</div>` : i}
|
|
297
297
|
${this.renderFoot()}
|
|
298
298
|
</div>`;
|
|
299
299
|
}
|
|
300
300
|
};
|
|
301
|
-
|
|
301
|
+
n("lintje-date-range", j);
|
|
302
302
|
//#endregion
|
|
303
303
|
export { j as LintjeDateRange, w as PRESETS, E as formatDate, T as presetRange };
|
|
@@ -1,18 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { F as e, H as t, J as n, P as r, Yt as i, Zt as a, at as o, bt as s, en as c, lt as l, nn as u, ot as d, st as f, ut as p } from "../chunks/base-CbmWxUig.js";
|
|
2
2
|
//#region src/components/tables/description-list/description-list.css?inline
|
|
3
|
-
var
|
|
4
|
-
warning: "functioneel-waarschuwing",
|
|
5
|
-
error: "functioneel-foutmelding"
|
|
6
|
-
}, h = class extends a {
|
|
3
|
+
var m = ":host { display: block; min-width: 0; }\n/* A size container has no width of its own: in a column that shrinks to its content it would\n be none, so the grid takes the room it stands in. */\n:host([layout='grid']) { container-type: inline-size; width: 100%; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-description-list {\n margin: 0;\n font: var(--text-ui);\n font-variant-numeric: tabular-nums;\n}\n\n/* Every row has the same fractions, so the columns line up without an outer grid. */\n.lintje-description-list__row {\n display: grid;\n grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr);\n border-bottom: 1px solid var(--color-border-default);\n}\n.lintje-description-list__row:last-child { border-bottom: 0; }\n\n.lintje-description-list__label {\n padding: 10px var(--space-3) 10px 0;\n color: var(--color-text-muted);\n}\n.lintje-description-list__value {\n display: flex; justify-content: space-between; align-items: baseline;\n gap: var(--space-3);\n min-width: 0;\n margin: 0;\n padding: 10px 0;\n color: var(--color-text-primary);\n overflow-wrap: anywhere;\n}\n\n.lintje-description-list__missing { color: var(--color-text-muted); }\n\n.lintje-description-list__link { color: var(--color-link); }\n.lintje-description-list__action {\n flex: none;\n font-weight: 700;\n color: var(--color-link);\n transition: color var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-description-list__link:hover,\n.lintje-description-list__action:hover { color: var(--color-link-hover); }\n\n/* `layout=\"column\"` and every list below 768 px: label above value, no lines. */\n.lintje-description-list--column .lintje-description-list__row { display: block; border-bottom: 0; }\n.lintje-description-list--column .lintje-description-list__row + .lintje-description-list__row { margin-top: 10px; }\n.lintje-description-list--column .lintje-description-list__label { padding: 0; font: var(--text-small); }\n.lintje-description-list--column .lintje-description-list__value { padding: 0; }\n@media screen and (max-width: 767px) {\n .lintje-description-list:not(.lintje-description-list--grid) .lintje-description-list__row { display: block; border-bottom: 0; }\n .lintje-description-list:not(.lintje-description-list--grid) .lintje-description-list__row + .lintje-description-list__row { margin-top: 10px; }\n .lintje-description-list:not(.lintje-description-list--grid) .lintje-description-list__label { padding: 0; font: var(--text-small); }\n .lintje-description-list:not(.lintje-description-list--grid) .lintje-description-list__value { padding: 0; }\n}\n\n.lintje-description-list__main { display: inline-flex; align-items: baseline; gap: var(--space-2); min-width: 0; }\n.lintje-description-list__main .lintje-icon { align-self: center; flex: none; }\n.lintje-description-list__tags { display: flex; flex-wrap: wrap; gap: var(--space-2); margin: 0; padding: 0; list-style: none; }\n.lintje-description-list__tag {\n display: inline-flex; align-items: center;\n min-height: var(--h-chip);\n padding: 0 var(--space-3);\n border: 1px solid var(--color-border-strong);\n background: var(--color-bg-surface);\n font-weight: 700;\n}\n\n/* --- Grid: cells side by side, divided by a line, each with its own tone ----------------- */\n.lintje-description-list--grid {\n display: grid;\n grid-template-columns: repeat(var(--lintje-columns, 4), minmax(0, 1fr));\n gap: 1px;\n background: var(--color-border-default);\n}\n.lintje-description-list--grid .lintje-description-list__row {\n display: flex; flex-direction: column; gap: var(--space-1);\n min-width: 0;\n padding: var(--space-3) var(--space-4);\n border: 0;\n background: var(--color-bg-subtle);\n}\n.lintje-description-list--grid .lintje-description-list__row.is-wide { grid-column: span 2; }\n/* On a surface that is not the page's own (a hero's wash) the cells are panels: the surface, framed. */\n:host([surface]) .lintje-description-list--grid { border: 1px solid var(--color-border-default); }\n:host([surface]) .lintje-description-list--grid .lintje-description-list__row:not(.is-changed):not(.is-success):not(.is-info):not(.is-attention):not(.is-warning):not(.is-error) {\n background: var(--color-bg-surface);\n}\n.lintje-description-list--grid .lintje-description-list__label {\n display: flex; align-items: center; gap: var(--space-2);\n padding: 0;\n font: var(--text-meta);\n}\n.lintje-description-list--grid .lintje-description-list__value {\n /* The values of one row stand on one line, however tall each is. */\n flex: 1 1 auto;\n flex-direction: column; align-items: flex-start; justify-content: center;\n gap: var(--space-2);\n padding: 0;\n font-weight: 700;\n}\n/* What differs from the default: the chosen option's quiet surface with an edge on top. */\n.lintje-description-list--grid .is-changed {\n background: var(--color-choice-active-bg);\n box-shadow: inset 0 3px 0 var(--color-accent-line);\n}\n.lintje-description-list--grid .lintje-description-list__row.is-success {\n background: var(--color-success-bg);\n box-shadow: inset 0 3px 0 var(--color-success-line);\n}\n.lintje-description-list--grid .lintje-description-list__row.is-info {\n background: var(--color-info-bg);\n box-shadow: inset 0 3px 0 var(--color-info-line);\n}\n.lintje-description-list--grid .lintje-description-list__row.is-attention {\n background: var(--color-attention-bg);\n box-shadow: inset 0 3px 0 var(--color-attention-line);\n}\n.lintje-description-list--grid .lintje-description-list__row.is-warning {\n background: var(--color-warning-bg);\n box-shadow: inset 0 3px 0 var(--color-attention-line);\n}\n.lintje-description-list--grid .lintje-description-list__row.is-error {\n background: var(--color-error-bg);\n box-shadow: inset 0 3px 0 var(--color-error-line);\n}\n.lintje-description-list__row.is-success .lintje-description-list__main .lintje-icon { color: var(--color-success-line); }\n.lintje-description-list__row.is-info .lintje-description-list__main .lintje-icon { color: var(--color-info-line); }\n.lintje-description-list__row.is-error .lintje-description-list__main .lintje-icon { color: var(--color-error-line); }\n.lintje-description-list__row.is-attention .lintje-description-list__main .lintje-icon { color: var(--color-attention-line); }\n.lintje-description-list__row.is-warning .lintje-description-list__main .lintje-icon { color: var(--color-attention-line); }\n.lintje-description-list__row.is-busy .lintje-description-list__main .lintje-icon { color: var(--color-accent-text); }\n.lintje-description-list__row.is-neutral .lintje-description-list__main .lintje-icon { color: var(--color-text-muted); }\n.lintje-description-list__row.is-subtle .lintje-description-list__main .lintje-icon { color: var(--color-text-muted); }\n.lintje-description-list__row.is-live .lintje-description-list__main .lintje-icon { color: var(--color-error-line); }\n.lintje-description-list--grid .lintje-description-list__action { font: var(--text-meta); font-weight: 700; }\n.lintje-description-list--grid .is-large .lintje-description-list__value {\n font: var(--text-kpi);\n letter-spacing: var(--kpi-tracking);\n font-variant-numeric: tabular-nums;\n}\n@container (max-width: 30rem) {\n .lintje-description-list--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }\n /* A wide cell, and a last one alone on its row, take the whole row: no empty cell beside it. */\n .lintje-description-list--grid .lintje-description-list__row.is-wide,\n .lintje-description-list--grid .lintje-description-list__row:last-child:nth-child(odd) {\n grid-column: 1 / -1;\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .lintje-description-list__action { transition: none; }\n}\n\n@media (forced-colors: active) {\n .lintje-description-list--grid .lintje-description-list__row { border: 1px solid CanvasText; }\n}\n", h = class extends r {
|
|
7
4
|
constructor(...e) {
|
|
8
5
|
super(...e), this.items = [], this.columns = 4, this.surface = !1, this.layout = "row";
|
|
9
6
|
}
|
|
10
7
|
static {
|
|
11
8
|
this.styles = [
|
|
9
|
+
l,
|
|
10
|
+
o,
|
|
12
11
|
e,
|
|
13
|
-
|
|
14
|
-
u,
|
|
15
|
-
r(p)
|
|
12
|
+
a(m)
|
|
16
13
|
];
|
|
17
14
|
}
|
|
18
15
|
static {
|
|
@@ -29,44 +26,44 @@ var p = ":host { display: block; min-width: 0; }\n:host([layout='grid']) { conta
|
|
|
29
26
|
}
|
|
30
27
|
};
|
|
31
28
|
}
|
|
32
|
-
follow(e,
|
|
33
|
-
|
|
29
|
+
follow(e, n) {
|
|
30
|
+
t(e) && this.followLink(n, e);
|
|
34
31
|
}
|
|
35
32
|
value(e) {
|
|
36
|
-
if (e.tags) return e.tags.length ?
|
|
37
|
-
${e.tags.map((e) =>
|
|
38
|
-
</ul>` :
|
|
33
|
+
if (e.tags) return e.tags.length ? u`<ul class="lintje-description-list__tags">
|
|
34
|
+
${e.tags.map((e) => u`<li class="lintje-description-list__tag">${e}</li>`)}
|
|
35
|
+
</ul>` : u`<span class="lintje-description-list__missing">Geen</span>`;
|
|
39
36
|
let t = e.value === null || e.value === void 0 || e.value === "";
|
|
40
|
-
if (t && e.slot) return
|
|
41
|
-
if (t) return
|
|
37
|
+
if (t && e.slot) return u``;
|
|
38
|
+
if (t) return u`<span class="lintje-description-list__missing"
|
|
42
39
|
><span aria-hidden="true">—</span><span class="visually-hidden">geen waarde</span></span
|
|
43
40
|
>`;
|
|
44
41
|
if (e.href) {
|
|
45
42
|
let t = e.href;
|
|
46
|
-
return
|
|
43
|
+
return u`<a
|
|
47
44
|
class="lintje-description-list__link"
|
|
48
45
|
href=${t}
|
|
49
46
|
@click=${(e) => this.follow(e, t)}
|
|
50
47
|
>${e.value}</a
|
|
51
48
|
>`;
|
|
52
49
|
}
|
|
53
|
-
return
|
|
50
|
+
return u`<span>${e.value}</span>`;
|
|
54
51
|
}
|
|
55
52
|
action(e) {
|
|
56
|
-
if (!e.action) return
|
|
57
|
-
let { href: t } = e.action,
|
|
58
|
-
return
|
|
53
|
+
if (!e.action) return c;
|
|
54
|
+
let { href: t } = e.action, n = e.action.label ?? "Wijzigen";
|
|
55
|
+
return u`<a
|
|
59
56
|
class="lintje-description-list__action"
|
|
60
57
|
href=${t}
|
|
61
|
-
aria-label=${`${e.label} ${
|
|
58
|
+
aria-label=${`${e.label} ${n.toLowerCase()}`}
|
|
62
59
|
@click=${(e) => this.follow(e, t)}
|
|
63
|
-
>${
|
|
60
|
+
>${n}</a
|
|
64
61
|
>`;
|
|
65
62
|
}
|
|
66
63
|
renderItem(e) {
|
|
67
64
|
let t = this.layout === "grid", r = e.tone;
|
|
68
|
-
return
|
|
69
|
-
class=${
|
|
65
|
+
return u`<div
|
|
66
|
+
class=${f({
|
|
70
67
|
"lintje-description-list__row": !0,
|
|
71
68
|
"is-wide": t && e.span === 2,
|
|
72
69
|
"is-large": t && !!e.large,
|
|
@@ -74,34 +71,34 @@ var p = ":host { display: block; min-width: 0; }\n:host([layout='grid']) { conta
|
|
|
74
71
|
})}
|
|
75
72
|
>
|
|
76
73
|
<dt class="lintje-description-list__label"
|
|
77
|
-
>${t && e.icon ?
|
|
74
|
+
>${t && e.icon ? p(e.icon, { size: 16 }) : c}${e.label}</dt
|
|
78
75
|
>
|
|
79
76
|
<dd class="lintje-description-list__value">
|
|
80
77
|
<span class="lintje-description-list__main">
|
|
81
|
-
${r && r !== "changed" ?
|
|
78
|
+
${r && r !== "changed" ? p(n[r], { size: 16 }) : c}
|
|
82
79
|
${this.value(e)}
|
|
83
80
|
</span>
|
|
84
|
-
${e.slot ?
|
|
85
|
-
${r === "changed" ?
|
|
81
|
+
${e.slot ? u`<slot name=${e.slot}></slot>` : c}
|
|
82
|
+
${r === "changed" ? d({
|
|
86
83
|
value: "Aangepast",
|
|
87
84
|
tone: "neutral",
|
|
88
85
|
className: "lintje-description-list__changed"
|
|
89
|
-
}) :
|
|
86
|
+
}) : c}
|
|
90
87
|
${this.action(e)}
|
|
91
88
|
</dd>
|
|
92
89
|
</div>`;
|
|
93
90
|
}
|
|
94
91
|
render() {
|
|
95
|
-
let e =
|
|
92
|
+
let e = f({
|
|
96
93
|
"lintje-description-list": !0,
|
|
97
94
|
"lintje-description-list--column": this.layout === "column",
|
|
98
95
|
"lintje-description-list--grid": this.layout === "grid"
|
|
99
96
|
});
|
|
100
|
-
return
|
|
97
|
+
return u`<dl class=${e} ${s({ "--lintje-columns": String(this.columns) })}>
|
|
101
98
|
${this.items.map((e) => this.renderItem(e))}
|
|
102
99
|
</dl>`;
|
|
103
100
|
}
|
|
104
101
|
};
|
|
105
|
-
|
|
102
|
+
i("lintje-description-list", h);
|
|
106
103
|
//#endregion
|
|
107
104
|
export { h as LintjeDescriptionList };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../types/components/overlays/dialog/dialog.js'
|