lintje 0.1.1 → 0.2.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/dist-elements/actions.js +1 -1
- package/dist-elements/charts.js +1 -1
- package/dist-elements/chunks/{base-rBLTcEIv.js → base-Bg-IFOPG.js} +134 -105
- package/dist-elements/chunks/{date-format-B5DPGjAw.js → date-format-mHtZyBys.js} +28 -2
- package/dist-elements/chunks/disclosure-BXTX04gM.js +4 -0
- package/dist-elements/chunks/{disclosure-CHasOudX.js → disclosure-CMXhX-Vb.js} +7 -7
- package/dist-elements/chunks/download-y528pIHP.js +230 -0
- package/dist-elements/chunks/{focus-trap-w3vCamJ6.js → focus-trap-9BnE-xWv.js} +1 -1
- package/dist-elements/chunks/{input-jQVTln7H.js → input-BtuNFSWk.js} +13 -13
- package/dist-elements/chunks/{player-Bq9YGnpt.js → player-DXOZEyEy.js} +24 -24
- package/dist-elements/chunks/{sentence-CLNJOeXz.js → sentence-BI3lwEuT.js} +3 -3
- package/dist-elements/chunks/{stagger-9hYzxhMG.js → stagger-qGD3wmhg.js} +145 -123
- package/dist-elements/core.js +1 -1
- package/dist-elements/custom-elements.json +436 -26
- package/dist-elements/feedback.js +1 -1
- package/dist-elements/guides/dashboard.md +1 -1
- package/dist-elements/guides/events.md +3 -2
- package/dist-elements/guides/loading.md +3 -3
- package/dist-elements/guides/start.md +1 -1
- package/dist-elements/inputs.js +1 -0
- package/dist-elements/layout.js +1 -1
- package/dist-elements/lintje.js +22659 -22216
- package/dist-elements/map.js +1 -1
- package/dist-elements/overlays.js +1 -1
- package/dist-elements/tag/activity-log.js +11 -11
- package/dist-elements/tag/ai-label.js +7 -7
- package/dist-elements/tag/announcement.js +19 -19
- package/dist-elements/tag/app-search.js +21 -21
- package/dist-elements/tag/audio-player.js +34 -34
- package/dist-elements/tag/badge.js +1 -1
- package/dist-elements/tag/breadcrumbs.js +11 -11
- package/dist-elements/tag/button.js +1 -1
- package/dist-elements/tag/card-list.js +1 -1
- package/dist-elements/tag/card.js +25 -25
- package/dist-elements/tag/chart.d.ts +1 -0
- package/dist-elements/tag/chart.js +1868 -0
- package/dist-elements/tag/chat-answer.js +28 -28
- package/dist-elements/tag/chat-composer.js +20 -20
- package/dist-elements/tag/chat-message.js +9 -9
- package/dist-elements/tag/chat-strip.js +16 -16
- package/dist-elements/tag/chat-suggestions.js +1 -1
- package/dist-elements/tag/chat.js +27 -27
- package/dist-elements/tag/checkbox.js +6 -6
- package/dist-elements/tag/code.js +8 -8
- package/dist-elements/tag/combobox.js +13 -13
- package/dist-elements/tag/confirm-dialog.js +6 -6
- package/dist-elements/tag/conflict-alert.js +5 -5
- package/dist-elements/tag/copy-button.js +7 -7
- package/dist-elements/tag/data-table.js +179 -179
- package/dist-elements/tag/date-input.js +34 -42
- package/dist-elements/tag/date-range.js +33 -33
- package/dist-elements/tag/description-list.js +20 -20
- package/dist-elements/tag/document-viewer.js +19 -19
- package/dist-elements/tag/drawer.js +7 -7
- package/dist-elements/tag/empty-state.js +11 -11
- package/dist-elements/tag/error-summary.js +8 -8
- package/dist-elements/tag/expander.js +7 -7
- package/dist-elements/tag/explainer.js +9 -9
- package/dist-elements/tag/field.js +4 -4
- package/dist-elements/tag/file-upload.js +20 -20
- package/dist-elements/tag/filter-bar.js +35 -35
- package/dist-elements/tag/filter-sheet.js +6 -6
- package/dist-elements/tag/filter-zone.js +21 -21
- package/dist-elements/tag/footer.js +1 -1
- package/dist-elements/tag/form-actions.js +7 -7
- package/dist-elements/tag/form-section.js +3 -3
- package/dist-elements/tag/form.js +4 -4
- package/dist-elements/tag/gallery.js +6 -6
- package/dist-elements/tag/grid-item.js +1 -1
- package/dist-elements/tag/grid.js +1 -1
- package/dist-elements/tag/hero.js +6 -6
- package/dist-elements/tag/highlight.js +6 -6
- package/dist-elements/tag/icon-button.js +1 -1
- package/dist-elements/tag/icon.js +1 -1
- package/dist-elements/tag/job-list.js +6 -6
- package/dist-elements/tag/kpi-row.js +7 -5
- package/dist-elements/tag/kpi.js +259 -69
- package/dist-elements/tag/level-meter.js +5 -5
- package/dist-elements/tag/list.js +28 -28
- package/dist-elements/tag/logo.js +9 -9
- package/dist-elements/tag/map.d.ts +1 -0
- package/dist-elements/tag/map.js +21910 -0
- package/dist-elements/tag/menu-button.js +48 -47
- package/dist-elements/tag/modal.js +9 -9
- package/dist-elements/tag/multiselect.js +18 -18
- package/dist-elements/tag/note.js +4 -4
- package/dist-elements/tag/notifications.js +24 -24
- package/dist-elements/tag/number-input.js +8 -8
- package/dist-elements/tag/page-header.js +13 -13
- package/dist-elements/tag/pagination.js +27 -27
- package/dist-elements/tag/popover.js +1 -1
- package/dist-elements/tag/progress-bar.js +1 -1
- package/dist-elements/tag/prose.js +4 -4
- package/dist-elements/tag/qr-code.js +6 -6
- package/dist-elements/tag/radio-group.js +7 -7
- package/dist-elements/tag/range.js +13 -13
- package/dist-elements/tag/recording-status.js +8 -8
- package/dist-elements/tag/repeater.js +1 -1
- package/dist-elements/tag/segmented.js +7 -7
- package/dist-elements/tag/select.js +6 -6
- package/dist-elements/tag/session-expiry.js +13 -13
- package/dist-elements/tag/shell.js +168 -168
- package/dist-elements/tag/shortcuts.js +8 -8
- package/dist-elements/tag/skeleton.js +1 -1
- package/dist-elements/tag/slot-picker.d.ts +1 -0
- package/dist-elements/tag/slot-picker.js +74 -0
- package/dist-elements/tag/sortable-list.js +11 -11
- package/dist-elements/tag/spinner.js +1 -1
- package/dist-elements/tag/split-pane.js +4 -4
- package/dist-elements/tag/status-dot.js +1 -1
- package/dist-elements/tag/stepper.js +13 -13
- package/dist-elements/tag/streaming-text.js +15 -15
- package/dist-elements/tag/sub-nav.js +26 -26
- package/dist-elements/tag/tabs.js +13 -13
- package/dist-elements/tag/tag-input.js +14 -14
- package/dist-elements/tag/text-editor.js +7 -7
- package/dist-elements/tag/text-input.js +10 -10
- package/dist-elements/tag/textarea.js +6 -6
- package/dist-elements/tag/tile.js +1 -1
- package/dist-elements/tag/time-input.js +136 -42
- package/dist-elements/tag/toast.js +10 -10
- package/dist-elements/tag/toggle.js +6 -6
- package/dist-elements/tag/toggletip.js +11 -11
- package/dist-elements/tag/tooltip.js +1 -1
- package/dist-elements/tag/transcript.js +31 -31
- package/dist-elements/tag/translator.js +7 -7
- package/dist-elements/tag/tree-view.js +12 -12
- package/dist-elements/tag/user-menu.js +31 -30
- package/dist-elements/tag/video-player.js +13 -13
- package/dist-elements/tokens.css +2 -0
- package/dist-elements/types/bundle/charts.d.ts +1 -1
- package/dist-elements/types/bundle/index.d.ts +1 -1
- package/dist-elements/types/bundle/inputs.d.ts +1 -0
- package/dist-elements/types/bundle/map.d.ts +1 -1
- package/dist-elements/types/components/charts/{chart-tile/chart-tile.d.ts → chart/chart.d.ts} +7 -7
- package/dist-elements/types/components/charts/kpi/gauge.d.ts +18 -0
- package/dist-elements/types/components/charts/kpi/kpi.d.ts +28 -3
- package/dist-elements/types/components/chat/chat-answer/chat-answer.d.ts +1 -1
- package/dist-elements/types/components/index.d.ts +8 -5
- package/dist-elements/types/components/inputs/date-input/date-format.d.ts +4 -0
- package/dist-elements/types/components/inputs/slot-picker/slot-picker.d.ts +41 -0
- package/dist-elements/types/components/inputs/time-input/time-format.d.ts +4 -0
- package/dist-elements/types/components/inputs/time-input/time-input.d.ts +25 -6
- package/dist-elements/types/components/map/{map-tile/map-tile.d.ts → map/map.d.ts} +10 -6
- package/dist-elements/types/components/shared/charts/histogram-chart/histogram-chart.d.ts +33 -0
- package/dist-elements/types/components/shared/charts/index.d.ts +3 -1
- package/dist-elements/types/components/shared/charts/map-chart/area.d.ts +16 -0
- package/dist-elements/types/components/shared/charts/map-chart/drawings.d.ts +6 -2
- package/dist-elements/types/components/shared/charts/map-chart/geo.d.ts +6 -0
- package/dist-elements/types/components/shared/charts/map-chart/leaflet.d.ts +40 -2
- package/dist-elements/types/components/shared/charts/map-chart/map-chart.d.ts +17 -3
- package/dist-elements/types/components/shared/charts/map-chart/map-legend.d.ts +26 -0
- package/dist-elements/types/components/shared/charts/map-chart/marks.d.ts +47 -0
- package/dist-elements/types/components/shared/charts/map-chart/reveal.d.ts +1 -1
- package/dist-elements/types/components/shared/charts/scatter-chart/scatter-chart.d.ts +29 -0
- package/dist-elements/types/components/shared/charts/shared/axes.d.ts +21 -4
- package/dist-elements/types/components/shared/charts/shared/chart-icons.d.ts +4 -3
- package/dist-elements/types/components/shared/charts/shared/controller.d.ts +27 -15
- package/dist-elements/types/components/shared/charts/shared/types.d.ts +112 -6
- package/dist-elements/types/core/format.d.ts +5 -2
- package/dist-elements/types/icons/register.d.ts +1 -1
- package/dist-elements/types/primitives/shared/place.d.ts +1 -1
- package/dist-elements/types/primitives/tooltip/tooltip.d.ts +2 -0
- package/dist-elements/types/types.d.ts +37 -7
- package/dist-icons/functioneel-cirkelselectie.svg +1 -0
- package/dist-icons/functioneel-lasso.svg +1 -0
- package/dist-icons/functioneel-punaise-outline.svg +1 -0
- package/dist-icons/functioneel-punaise.svg +1 -0
- package/dist-icons/functioneel-rechthoekselectie.svg +1 -0
- package/dist-icons/functioneel-selectie.svg +1 -0
- package/package.json +1 -1
- package/dist-elements/chunks/disclosure-Z7Ny17sS.js +0 -4
- package/dist-elements/chunks/download-lFooAfD1.js +0 -226
- package/dist-elements/tag/chart-tile.d.ts +0 -1
- package/dist-elements/tag/chart-tile.js +0 -1474
- package/dist-elements/tag/map-tile.d.ts +0 -1
- package/dist-elements/tag/map-tile.js +0 -22292
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { $ as e, A as t, Bt as n, Gt as r, Ht as i, It as a,
|
|
2
|
-
import { t as p } from "../chunks/sentence-
|
|
1
|
+
import { $ as e, A as t, Bt as n, Gt as r, Ht as i, It as a, Lt as o, Pt as s, U as c, Z as l, et as u, qt as d, zt as f } from "../chunks/base-Bg-IFOPG.js";
|
|
2
|
+
import { t as p } from "../chunks/sentence-BI3lwEuT.js";
|
|
3
3
|
function m(e) {
|
|
4
4
|
return e.open;
|
|
5
5
|
}
|
|
@@ -30,9 +30,9 @@ function g(e) {
|
|
|
30
30
|
//#region src/components/filters/filter-zone/filter-zone.css?inline
|
|
31
31
|
var _ = "/*\n * The filter zone's own box: header, controls row, sentence and summary bar. Rules that reach\n * into a control live in `filter-layout.css`, adopted by the elements that own the controls.\n */\n:host {\n display: block;\n}\n\n/* --- */\n\n.lintje-filter-bar {\n background: var(--color-bg-filter);\n border-top: 1px solid var(--color-border-filter);\n}\n\n.lintje-filter-bar__header {\n display: flex;\n align-items: center;\n gap: var(--space-3);\n height: var(--h-contextbar);\n padding: 0 calc(var(--space-6) + var(--page-gutter));\n /* An inset shadow, not a border: a border would shift the toggle half a pixel off the\n summary bar's. */\n box-shadow: inset 0 -1px 0 var(--color-border-filter);\n}\n.lintje-filter-bar__title { font-size: 1rem; font-weight: 700; }\n.lintje-filter-bar__hint { font: var(--text-small); color: var(--color-text-muted); }\n.lintje-filter-bar__spacer { flex: 1; }\n\n.lintje-filter-bar__counter {\n display: flex; align-items: center; gap: 6px;\n font: var(--text-small); color: var(--color-text-primary);\n}\n.lintje-filter-bar__dot {\n width: 8px; height: 8px; border-radius: 50%;\n background: var(--color-attention); flex: none;\n}\n.lintje-filter-bar__reset {\n display: flex; align-items: center;\n min-height: var(--h-target);\n font-size: 0.875rem; font-weight: 700;\n color: var(--color-link); text-decoration: underline;\n margin: 0 var(--space-2);\n}\n\n/* --- Opening and closing -------------------------------------------------- */\n/* `0fr -> 1fr` transitions to the content height without measuring it in JS. The body stays\n in the DOM, so the fade is a transition, not a keyframe. */\n.lintje-filter-bar__body {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows var(--dur-collapse) var(--ease-in-motion);\n}\n.lintje-filter-bar.is-open .lintje-filter-bar__body { grid-template-rows: 1fr; }\n\n.lintje-filter-bar__body-inner {\n min-height: 0;\n overflow: hidden;\n opacity: 0;\n /* Closed, out of the tab order and the accessibility tree; hiding waits for the collapse. */\n visibility: hidden;\n transition:\n opacity var(--dur-collapse) var(--ease-in-motion),\n visibility 0s linear var(--dur-collapse);\n}\n.lintje-filter-bar.is-open .lintje-filter-bar__body-inner {\n opacity: 1;\n visibility: visible;\n transition: opacity var(--dur-collapse) var(--ease-in-motion), visibility 0s;\n}\n/* Standing open, nothing clips: popovers hang out of the zone. */\n.lintje-filter-bar.is-settled .lintje-filter-bar__body-inner { overflow: visible; }\n\n.lintje-filter-bar__header,\n.lintje-summary-bar {\n animation: lintje-fade-in var(--dur-collapse) var(--ease-in-motion);\n}\n\n/* Aligned at the top: what a control carries below its box (the range's ticks) hangs below the\n line instead of pushing its neighbours down. */\n.lintje-filter-bar__controls {\n display: flex;\n gap: var(--grid-gutter);\n padding: 14px calc(var(--space-6) + var(--page-gutter)) 18px;\n align-items: flex-start;\n flex-wrap: wrap;\n}\n\n@media (min-width: 1440px) {\n .lintje-filter-bar__controls { flex-wrap: nowrap; }\n}\n@media (min-width: 768px) and (max-width: 1023px) {\n .lintje-filter-bar__controls { display: grid; grid-template-columns: 1fr 1fr; }\n}\n\n.lintje-filter-bar__summary {\n display: flex; align-items: center; gap: 10px;\n padding: 0 calc(var(--space-6) + var(--page-gutter)) 14px;\n font: var(--text-ui);\n color: var(--color-text-primary);\n}\n\n/* --- Collapsed summary bar (48 px) -------------------------------------- */\n.lintje-summary-bar {\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: var(--space-4);\n height: var(--h-contextbar);\n padding: 0 calc(var(--space-6) + var(--page-gutter));\n}\n.lintje-summary-bar__sentence {\n display: flex; align-items: center; gap: 10px;\n font: var(--text-ui);\n color: var(--color-text-primary);\n min-width: 0;\n white-space: nowrap; overflow: hidden; text-overflow: ellipsis;\n text-align: left;\n padding: 0 6px; margin: 0 -6px;\n height: 100%;\n}\n.lintje-summary-bar__sentence:hover { background: var(--color-bg-subtle); }\n.lintje-summary-bar__sentence .lintje-filter-summary__text { overflow: hidden; text-overflow: ellipsis; }\n.lintje-summary-bar__spacer { flex: 1; }\n.lintje-summary-bar__counter {\n display: flex; align-items: center; gap: 6px;\n font: var(--text-small); color: var(--color-text-muted); flex: none;\n}\n.lintje-summary-bar__dot {\n width: 6px; height: 6px; border-radius: 50%;\n background: var(--color-attention); flex: none;\n}\n.lintje-summary-bar__reset {\n display: flex; align-items: center;\n min-height: var(--h-target);\n font-size: 0.875rem; font-weight: 700;\n color: var(--color-link); text-decoration: underline;\n margin: 0 var(--space-2);\n}\n/* --- The one filter toggle ----------------------------------------------- */\n/* Last in the row in both states, so the second click lands on the toggle again. */\n.lintje-filter-toggle {\n position: relative;\n display: flex; align-items: center; gap: var(--space-2);\n height: var(--h-button-compact);\n padding: 0 var(--space-3);\n border: 1px solid var(--color-border-strong);\n background: transparent;\n font-size: 0.875rem; font-weight: 400;\n color: var(--color-text-primary);\n flex: none;\n transition: background var(--dur-hover) var(--ease-in-motion),\n border-color var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-filter-toggle:hover { background: var(--color-bg-subtle); }\n/* A transparent hit area above and below reaches the full target height. */\n.lintje-filter-toggle::after {\n content: '';\n position: absolute;\n inset: min(0px, calc((100% - var(--h-target)) / 2)) 0;\n}\n.lintje-filter-toggle__chevron {\n transform-origin: 50% 50%;\n transition: transform var(--dur-collapse) var(--ease-in-motion);\n}\n.lintje-filter-toggle.is-expanded .lintje-filter-toggle__chevron { transform: rotate(180deg); }\n\n/* Before the filter bar: 1 px tall for the observer, -1 px margin so layout is unchanged. */\n.lintje-filter-bar__sentinel { height: 1px; margin-bottom: -1px; }\n/* Scrolled: the collapsed zone sticks below the top bar. */\n.lintje-filter-bar.is-sticky {\n position: sticky;\n top: var(--h-topbar);\n z-index: 19;\n box-shadow: inset 0 -1px 0 var(--color-border-filter), var(--shadow-sticky);\n /* Stuck, the top bar's line is the separator; this one goes transparent, keeping its pixel. */\n border-top-color: transparent;\n}\n\n/* Stuck and expanded: the zone unfolds where it stands; the z-index stays under the menu's 30. */\n.lintje-filter-bar.is-stuck-open {\n max-height: calc(100vh - var(--h-topbar));\n}\n/* Only when the panel does not fit (`LintjeFilterZone` measures it): scrolling clips popovers. */\n.lintje-filter-bar.is-stuck-open.is-scrollable { overflow-y: auto; }\n\n/* --- Mobile -------------------------------------------------------------- */\n.lintje-filter-bar--mobile {\n border-bottom: 1px solid var(--color-border-default);\n padding: var(--space-3) var(--space-4);\n box-shadow: var(--shadow-sticky);\n position: sticky;\n top: var(--h-mobile-header);\n z-index: 19;\n}\n.lintje-filter-bar__mobile-summary {\n display: flex; align-items: flex-start; gap: 10px;\n font: var(--text-ui); line-height: 1.4;\n}\n.lintje-filter-bar__mobile-summary .lintje-filter-summary__icon { margin-top: 2px; }\n\n/* --- Pinned instead of sticky ---------------------------------------------- */\n.lintje-filter-bar--fixed.is-sticky {\n position: fixed;\n left: var(--lintje-shell-left, 0px);\n right: 0;\n}\n.lintje-filter-bar__placeholder { height: var(--h-contextbar); }\n\n/* --- More than four filters ------------------------------------------------ */\n/* The one-line rule from 1440 px fits four controls; more wrap. */\n.lintje-filter-bar--wrap .lintje-filter-bar__controls { flex-wrap: wrap; }\n\n\n@media print {\n .lintje-filter-bar.is-sticky, .lintje-filter-bar--fixed.is-sticky { position: static; box-shadow: none; }\n .lintje-filter-toggle, .lintje-filter-bar__reset, .lintje-filter-bar__counter { display: none; }\n}\n\n/* Forced colours drop the fill and the inset shadow, so the row takes a real border. */\n@media (forced-colors: active) {\n .lintje-filter-bar__header { border-bottom: 1px solid CanvasText; }\n}\n", v = class extends f {
|
|
32
32
|
constructor(...e) {
|
|
33
|
-
super(...e), this.total = 0, this.modified = 0, this.open = !1, this.scrolled = !1, this.settled = !0, this.scrollable = !1, this.stick = "sticky", this.sentence = [], this.mobile = new
|
|
33
|
+
super(...e), this.total = 0, this.modified = 0, this.open = !1, this.scrolled = !1, this.settled = !0, this.scrollable = !1, this.stick = "sticky", this.sentence = [], this.mobile = new o(this, a), this.observer = null, this.observed = void 0, this.wasExpanded = void 0, this.onResize = () => this.measureOverflow(), this.#e = !1, this.#t = 0, this.#n = null, this.onPageScroll = () => {
|
|
34
34
|
let e = this.renderRoot.querySelector(".lintje-filter-bar__body");
|
|
35
|
-
e &&
|
|
35
|
+
e && c(e) || this.act({
|
|
36
36
|
type: "page-scrolled",
|
|
37
37
|
distance: this.pageScroll() - this.#t
|
|
38
38
|
});
|
|
@@ -83,10 +83,10 @@ var _ = "/*\n * The filter zone's own box: header, controls row, sentence and su
|
|
|
83
83
|
willUpdate(e) {
|
|
84
84
|
if (super.willUpdate(e), !e.has("open") && !e.has("modified")) return;
|
|
85
85
|
let t = this.renderRoot.querySelector(".lintje-filter-bar__header, .lintje-summary-bar");
|
|
86
|
-
this.#e = this.#e || t != null &&
|
|
86
|
+
this.#e = this.#e || t != null && c(t);
|
|
87
87
|
}
|
|
88
88
|
updated(e) {
|
|
89
|
-
this.#e && (this.#e = !1,
|
|
89
|
+
this.#e && (this.#e = !1, c(this) || this.renderRoot.querySelector(".lintje-filter-toggle")?.focus());
|
|
90
90
|
let n = !this.mobile.matches && m(this.state);
|
|
91
91
|
if (n !== this.wasExpanded) {
|
|
92
92
|
let e = this.wasExpanded === void 0;
|
|
@@ -110,7 +110,7 @@ var _ = "/*\n * The filter zone's own box: header, controls row, sentence and su
|
|
|
110
110
|
}
|
|
111
111
|
canPin() {
|
|
112
112
|
if (this.stick !== "fixed" || this.scrolled) return !0;
|
|
113
|
-
let e = this.renderRoot.querySelector(".lintje-filter-bar__sentinel"), n = this.renderRoot.querySelector(".lintje-filter-bar"), r =
|
|
113
|
+
let e = this.renderRoot.querySelector(".lintje-filter-bar__sentinel"), n = this.renderRoot.querySelector(".lintje-filter-bar"), r = s(), i = r && r !== document.scrollingElement ? r : document.scrollingElement;
|
|
114
114
|
if (!e || !n || !i) return !0;
|
|
115
115
|
let a = t(e, "--h-topbar", 56);
|
|
116
116
|
return g({
|
|
@@ -133,28 +133,28 @@ var _ = "/*\n * The filter zone's own box: header, controls row, sentence and su
|
|
|
133
133
|
#t;
|
|
134
134
|
#n;
|
|
135
135
|
pageScroll() {
|
|
136
|
-
let e =
|
|
136
|
+
let e = s();
|
|
137
137
|
return e && e !== document.scrollingElement ? e.scrollTop : window.scrollY;
|
|
138
138
|
}
|
|
139
139
|
watchPageScroll(e) {
|
|
140
140
|
if (this.#n?.removeEventListener("scroll", this.onPageScroll), this.#n = null, !e || this.mobile.matches) return;
|
|
141
|
-
let t =
|
|
141
|
+
let t = s();
|
|
142
142
|
this.#n = t && t !== document.scrollingElement ? t : window, this.#t = this.pageScroll(), this.#n.addEventListener("scroll", this.onPageScroll, { passive: !0 });
|
|
143
143
|
}
|
|
144
144
|
render() {
|
|
145
|
-
if (this.mobile.matches) return
|
|
145
|
+
if (this.mobile.matches) return d`<div class="lintje-filter-bar lintje-filter-bar--mobile">
|
|
146
146
|
<p class="lintje-filter-bar__mobile-summary">${p(this.sentence)}</p>
|
|
147
147
|
</div>`;
|
|
148
148
|
let e = m(this.state), t = this.scrolled && this.stick === "fixed";
|
|
149
|
-
return
|
|
149
|
+
return d`
|
|
150
150
|
<!-- The sentinel sits before the zone, not after it. After the zone it moves along
|
|
151
151
|
when the zone collapses (461 -> 334 px), so when scrolling back up the threshold
|
|
152
152
|
releases 127 px later than it triggered. Before the zone it stays put, and the
|
|
153
153
|
threshold triggers the moment the bar touches the top bar. -->
|
|
154
154
|
<div class="lintje-filter-bar__sentinel" aria-hidden="true"></div>
|
|
155
|
-
${t ?
|
|
155
|
+
${t ? d`<div class="lintje-filter-bar__placeholder" aria-hidden="true"></div>` : r}
|
|
156
156
|
<div
|
|
157
|
-
class=${
|
|
157
|
+
class=${l({
|
|
158
158
|
"lintje-filter-bar": !0,
|
|
159
159
|
"is-open": e,
|
|
160
160
|
"is-settled": e && this.settled,
|
|
@@ -180,13 +180,13 @@ var _ = "/*\n * The filter zone's own box: header, controls row, sentence and su
|
|
|
180
180
|
`;
|
|
181
181
|
}
|
|
182
182
|
renderHeader() {
|
|
183
|
-
return
|
|
183
|
+
return d`
|
|
184
184
|
<div class="lintje-filter-bar__header">
|
|
185
|
-
${
|
|
185
|
+
${u("functioneel-filters", { size: 16 })}
|
|
186
186
|
<span class="lintje-filter-bar__title">Filters</span>
|
|
187
187
|
<span class="lintje-filter-bar__hint">gelden voor alle cijfers op deze pagina</span>
|
|
188
188
|
<span class="lintje-filter-bar__spacer"></span>
|
|
189
|
-
${this.modified > 0 ?
|
|
189
|
+
${this.modified > 0 ? d`<span class="lintje-filter-bar__counter">
|
|
190
190
|
<span class="lintje-filter-bar__dot"></span>
|
|
191
191
|
${this.modified} van ${this.total} afwijkend
|
|
192
192
|
</span>
|
|
@@ -202,7 +202,7 @@ var _ = "/*\n * The filter zone's own box: header, controls row, sentence and su
|
|
|
202
202
|
`;
|
|
203
203
|
}
|
|
204
204
|
renderSummaryBar() {
|
|
205
|
-
return
|
|
205
|
+
return d`<div
|
|
206
206
|
class="lintje-summary-bar"
|
|
207
207
|
@click=${(e) => {
|
|
208
208
|
e.target.closest("button") || this.act({ type: "expand" });
|
|
@@ -218,7 +218,7 @@ var _ = "/*\n * The filter zone's own box: header, controls row, sentence and su
|
|
|
218
218
|
${p(this.sentence)}
|
|
219
219
|
</button>
|
|
220
220
|
<span class="lintje-summary-bar__spacer"></span>
|
|
221
|
-
${this.modified > 0 ?
|
|
221
|
+
${this.modified > 0 ? d`<span class="lintje-summary-bar__counter">
|
|
222
222
|
<span class="lintje-summary-bar__dot"></span>
|
|
223
223
|
${this.modified} afwijkend ·
|
|
224
224
|
<button
|
|
@@ -233,9 +233,9 @@ var _ = "/*\n * The filter zone's own box: header, controls row, sentence and su
|
|
|
233
233
|
</div>`;
|
|
234
234
|
}
|
|
235
235
|
renderToggle(e) {
|
|
236
|
-
return
|
|
236
|
+
return d`<button
|
|
237
237
|
type="button"
|
|
238
|
-
class=${
|
|
238
|
+
class=${l({
|
|
239
239
|
"lintje-filter-toggle": !0,
|
|
240
240
|
"is-expanded": e
|
|
241
241
|
})}
|
|
@@ -245,7 +245,7 @@ var _ = "/*\n * The filter zone's own box: header, controls row, sentence and su
|
|
|
245
245
|
@click=${() => this.act({ type: e ? "collapse" : "expand" })}
|
|
246
246
|
>
|
|
247
247
|
Filters
|
|
248
|
-
${
|
|
248
|
+
${u("functioneel-delta-omlaag", {
|
|
249
249
|
size: 16,
|
|
250
250
|
className: "lintje-filter-toggle__chevron"
|
|
251
251
|
})}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Bt as e, Gt as t, Ht as n, I as r,
|
|
1
|
+
import { Bt as e, Gt as t, Ht as n, I as r, qt as i, zt as a } from "../chunks/base-Bg-IFOPG.js";
|
|
2
2
|
//#region src/components/frame/footer/footer.css?inline
|
|
3
3
|
var o = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-footer {\n background: var(--color-footer-bg);\n color: var(--color-footer-text);\n font: var(--text-ui);\n}\n.lintje-footer :focus-visible { outline-color: var(--color-footer-focus); }\n\n/* The text keeps to the content column, as the bars above the page do. */\n.lintje-footer__inner {\n display: flex; flex-direction: column;\n gap: var(--space-8);\n padding: var(--space-10) calc(var(--page-pad-x) + var(--page-gutter)) var(--space-8);\n}\n\n.lintje-footer__tagline { margin: 0; font: var(--text-h2); }\n\n.lintje-footer__columns {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--w-footer-column)), 1fr));\n gap: var(--space-8) var(--grid-gutter);\n}\n.lintje-footer__column { display: flex; flex-direction: column; gap: var(--space-3); min-width: 0; }\n.lintje-footer__heading {\n margin: 0;\n font-size: var(--label-size); font-weight: var(--label-weight);\n letter-spacing: var(--label-tracking); text-transform: uppercase;\n}\n.lintje-footer__list,\n.lintje-footer__meta { list-style: none; margin: 0; padding: 0; }\n.lintje-footer__list { display: flex; flex-direction: column; gap: var(--space-3); }\n\n.lintje-footer__link,\n.lintje-footer__meta-link {\n display: inline-flex; align-items: center;\n min-height: var(--h-touch);\n color: inherit;\n text-decoration: none;\n}\n/* A list of text links keeps the house style's rhythm: a line high, 12 px apart. */\n.lintje-footer__link { min-height: var(--h-target-text); }\n.lintje-footer__link:hover,\n.lintje-footer__meta-link:hover { text-decoration: underline; text-underline-offset: 0.2em; }\n\n/* The links every page carries, apart from the columns by a line. */\n.lintje-footer__bottom {\n display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;\n gap: var(--space-2) var(--space-6);\n padding-top: var(--space-4);\n border-top: 1px solid var(--color-footer-line);\n}\n.lintje-footer__meta { display: flex; flex-wrap: wrap; gap: 0 var(--space-6); }\n.lintje-footer__meta-link { font: var(--text-small); }\n/* The full text colour: a muted one would fall under 4.5:1 on the theme's fill. */\n.lintje-footer__note { margin: 0; font: var(--text-small); }\n\n@media (max-width: 767px) {\n .lintje-footer__inner { padding-top: var(--space-8); }\n .lintje-footer__columns { grid-template-columns: minmax(0, 1fr); }\n}\n", s = class extends a {
|
|
4
4
|
static {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as e, Bt as t, Gt as n, Ht as r, It as i,
|
|
1
|
+
import { $ as e, Bt as t, Gt as n, Ht as r, It as i, Lt as a, Pt as o, et as s, qt as c, zt as l } from "../chunks/base-Bg-IFOPG.js";
|
|
2
2
|
import { n as u, t as d } from "../chunks/controls-B1455oPG.js";
|
|
3
3
|
//#region src/components/forms/form-actions/form-actions.css?inline
|
|
4
4
|
var f = "/* The host is the sticky box. z-index 20: above the form, below the shell's menu (30) and popovers (46). */\n:host {\n display: block;\n min-width: 0;\n position: sticky;\n bottom: 0;\n z-index: 20;\n}\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-form-actions {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n gap: var(--space-3) var(--space-4);\n padding: var(--space-3) var(--space-6);\n background: var(--color-bg-surface);\n border: 1px solid var(--color-border-default);\n border-top: 2px solid var(--color-accent-line);\n}\n\n/* The words carry the state; the dot and the check only support it (rule 13). */\n.lintje-form-actions__status {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n min-width: 0;\n font: var(--text-small);\n color: var(--color-text-muted);\n}\n.lintje-form-actions__dot {\n flex: none;\n width: 6px;\n height: 6px;\n border-radius: var(--radius-round);\n background: var(--color-attention);\n}\n.lintje-form-actions__check {\n flex: none;\n color: var(--color-success);\n}\n\n.lintje-form-actions__buttons {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n gap: var(--space-2);\n margin-left: auto;\n}\n\n/* Phone: the bar sets `block` on each button, so it fills its row. */\n@media (max-width: 767px) {\n .lintje-form-actions {\n flex-direction: column;\n align-items: stretch;\n }\n .lintje-form-actions__buttons {\n flex-direction: column-reverse;\n margin-left: 0;\n }\n}\n\n/* Forced colours: the dot is a fill only, which the palette drops; it keeps its drawing. */\n@media (forced-colors: active) {\n .lintje-form-actions__dot { forced-color-adjust: none; background: CanvasText; }\n}\n", p = "Wijzigingen nog niet opgeslagen", m = "Bezig met opslaan";
|
|
@@ -17,7 +17,7 @@ function v() {
|
|
|
17
17
|
_ && (_.element.style.scrollPaddingBottom = _.before), _ = null;
|
|
18
18
|
return;
|
|
19
19
|
}
|
|
20
|
-
let t =
|
|
20
|
+
let t = o();
|
|
21
21
|
t && (_?.element !== t && (_ && (_.element.style.scrollPaddingBottom = _.before), _ = {
|
|
22
22
|
element: t,
|
|
23
23
|
before: t.style.scrollPaddingBottom
|
|
@@ -25,7 +25,7 @@ function v() {
|
|
|
25
25
|
}
|
|
26
26
|
var y = class extends l {
|
|
27
27
|
constructor(...e) {
|
|
28
|
-
super(...e), this.state = "", this.#e = new
|
|
28
|
+
super(...e), this.state = "", this.#e = new a(this, i), this.#t = new u("busy"), this.#n = new u("disabled"), this.#r = new d("block"), this.#i = null;
|
|
29
29
|
}
|
|
30
30
|
static {
|
|
31
31
|
this.styles = [e, r(f)];
|
|
@@ -75,12 +75,12 @@ var y = class extends l {
|
|
|
75
75
|
renderStatus() {
|
|
76
76
|
let e = h(this.savedAt);
|
|
77
77
|
switch (this.state) {
|
|
78
|
-
case "dirty": return
|
|
79
|
-
case "busy": return
|
|
78
|
+
case "dirty": return c`<span class="lintje-form-actions__dot" aria-hidden="true"></span>${p}`;
|
|
79
|
+
case "busy": return c`${m}`;
|
|
80
80
|
case "saved":
|
|
81
81
|
case "draft": {
|
|
82
82
|
let t = this.state === "draft" ? "Concept opgeslagen" : "Opgeslagen";
|
|
83
|
-
return
|
|
83
|
+
return c`${s("functioneel-vinkje", {
|
|
84
84
|
size: 16,
|
|
85
85
|
className: "lintje-form-actions__check"
|
|
86
86
|
})}${e ? `${t} om ${e}` : t}`;
|
|
@@ -89,7 +89,7 @@ var y = class extends l {
|
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
render() {
|
|
92
|
-
return
|
|
92
|
+
return c`<div class="lintje-form-actions">
|
|
93
93
|
<div class="lintje-form-actions__status" role="status">${this.renderStatus()}</div>
|
|
94
94
|
<div class="lintje-form-actions__buttons">
|
|
95
95
|
<slot @slotchange=${() => this.#a()}></slot>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Bt as e, Gt as t, Ht as n,
|
|
1
|
+
import { Bt as e, Gt as t, Ht as n, Z as r, qt as i, zt as a } from "../chunks/base-Bg-IFOPG.js";
|
|
2
2
|
import { a as o, n as s } from "../chunks/controls-B1455oPG.js";
|
|
3
3
|
//#region src/components/forms/form-section/form-section.css?inline
|
|
4
4
|
var c = "/* Slotted children keep clear of the sticky top bar when the error summary scrolls to them. */\n:host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n::slotted(*) { scroll-margin-top: var(--h-sticky); }\n\n/* ------------------------------------------------------------------------ */\n\n/* The legend floats at full width so it lays out as a block, not on the fieldset's border. */\n.lintje-form-section {\n margin: 0;\n padding: 0;\n min-width: 0;\n border: 0;\n}\n.lintje-form-section__legend {\n float: left;\n width: 100%;\n padding: 0;\n font: var(--text-h2);\n color: var(--color-text-primary);\n}\n.lintje-form-section__description {\n clear: both;\n padding-top: var(--space-2);\n font: var(--text-small);\n color: var(--color-text-muted);\n}\n.lintje-form-section__fields {\n clear: both;\n display: flex;\n flex-direction: column;\n gap: var(--space-5);\n padding-top: var(--space-5);\n}\n\n/* Setting rows read as a list: a line between two of them. */\n.lintje-form-section__fields ::slotted([layout='row']:not(:first-child)) {\n padding-top: var(--space-5);\n border-top: 1px solid var(--color-border-default);\n}\n\n.lintje-form-section--tile {\n background: var(--color-bg-surface);\n border: 1px solid var(--color-border-default);\n border-radius: var(--radius);\n padding: var(--tile-pad-y) var(--tile-pad-x);\n}\n.lintje-form-section--tile .lintje-form-section__legend { font: var(--text-tile-title); }\n/* The heading takes the legend's look; it is there for the outline, not to restyle. */\n.lintje-form-section__heading { margin: 0; font: inherit; color: inherit; }\n", l = class extends a {
|
|
@@ -33,8 +33,8 @@ var c = "/* Slotted children keep clear of the sticky top bar when the error sum
|
|
|
33
33
|
this.disabled ? this.#e.apply(o(this), !0) : this.#e.release();
|
|
34
34
|
}
|
|
35
35
|
render() {
|
|
36
|
-
return
|
|
37
|
-
class=${
|
|
36
|
+
return i`<fieldset
|
|
37
|
+
class=${r({
|
|
38
38
|
"lintje-form-section": !0,
|
|
39
39
|
"lintje-form-section--tile": this.variant === "tile"
|
|
40
40
|
})}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Bt as e, Gt as t, H as n, Ht as r, It as i,
|
|
1
|
+
import { Bt as e, Gt as t, H as n, Ht as r, It as i, Lt as a, U as o, qt as s, zt as c } from "../chunks/base-Bg-IFOPG.js";
|
|
2
2
|
import { c as l, d as u, i as d, l as f, n as p, r as m, u as h } from "../chunks/controls-B1455oPG.js";
|
|
3
3
|
import "./error-summary.js";
|
|
4
4
|
import "./form-actions.js";
|
|
@@ -42,7 +42,7 @@ var C = class extends c {
|
|
|
42
42
|
let t = d(e);
|
|
43
43
|
!this.contains(e) && !r.has(t) && this.forget(t);
|
|
44
44
|
}
|
|
45
|
-
}), this.#s = new
|
|
45
|
+
}), this.#s = new a(this, i), this.#c = new p("disabled"), this.#l = new p("stacked"), this.#u = (e) => {
|
|
46
46
|
let t = e.target;
|
|
47
47
|
if (t === this) return;
|
|
48
48
|
let n = d(t);
|
|
@@ -243,7 +243,7 @@ var C = class extends c {
|
|
|
243
243
|
return t;
|
|
244
244
|
}
|
|
245
245
|
willUpdate(e) {
|
|
246
|
-
super.willUpdate(e), this.#n || (this.#n = !0, this.#g(), this.#b(Object.keys(this.#e).length ? "dirty" : "")), e.has("savedAt") && this.hasUpdated && this.savedAt && this.phase !== "saved" && this.#y(), e.has("errors") && (this.#E = this.#T()), e.has("busy") && this.busy && (this.#a =
|
|
246
|
+
super.willUpdate(e), this.#n || (this.#n = !0, this.#g(), this.#b(Object.keys(this.#e).length ? "dirty" : "")), e.has("savedAt") && this.hasUpdated && this.savedAt && this.phase !== "saved" && this.#y(), e.has("errors") && (this.#E = this.#T()), e.has("busy") && this.busy && (this.#a = o(this) ? n() : null), e.has("dirty") && (this.dirty ? window.addEventListener("beforeunload", this.#m) : window.removeEventListener("beforeunload", this.#m));
|
|
247
247
|
}
|
|
248
248
|
#E;
|
|
249
249
|
#D;
|
|
@@ -275,7 +275,7 @@ var C = class extends c {
|
|
|
275
275
|
for (let n of this.querySelectorAll("lintje-form-actions")) n.state = e, n.savedAt = t;
|
|
276
276
|
}
|
|
277
277
|
render() {
|
|
278
|
-
return
|
|
278
|
+
return s`<form
|
|
279
279
|
class="lintje-form"
|
|
280
280
|
novalidate
|
|
281
281
|
aria-busy=${this.busy ? "true" : t}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Bt as e, Gt as t, Ht as n,
|
|
1
|
+
import { Bt as e, Gt as t, Ht as n, Z as r, qt as i, zt as a } from "../chunks/base-Bg-IFOPG.js";
|
|
2
2
|
//#region src/components/content/gallery/gallery.css?inline
|
|
3
3
|
var o = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-gallery { display: flex; flex-direction: column; gap: var(--space-3); }\n\n.lintje-gallery__figure { margin: 0; display: flex; flex-direction: column; gap: var(--space-2); }\n/* A screen whole, on the subtle surface: a screenshot is never cropped. */\n.lintje-gallery__image {\n display: block;\n width: 100%;\n aspect-ratio: 16 / 10;\n object-fit: contain;\n background: var(--color-bg-subtle);\n border: 1px solid var(--color-border-default);\n box-sizing: border-box;\n}\n.lintje-gallery__caption { font: var(--text-small); color: var(--color-text-muted); }\n\n.lintje-gallery__thumbs {\n list-style: none; margin: 0; padding: 0;\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(var(--w-gallery-thumb), 1fr));\n gap: var(--space-2);\n}\n.lintje-gallery__thumb {\n display: block;\n width: 100%;\n padding: 0;\n border: 1px solid var(--color-border-default);\n background: var(--color-bg-subtle);\n cursor: pointer;\n}\n.lintje-gallery__thumb:hover { border-color: var(--color-border-heavy); }\n/* The chosen one carries the selected edge, and aria-current says it in words. */\n.lintje-gallery__thumb.is-selected { outline: 2px solid var(--color-accent-line); outline-offset: -2px; }\n.lintje-gallery__thumb:focus-visible { outline: var(--focus-width) solid var(--color-focus); outline-offset: var(--focus-offset); }\n.lintje-gallery__thumb-image {\n display: block;\n width: 100%;\n aspect-ratio: 16 / 10;\n object-fit: cover;\n object-position: top left;\n}\n\n@media (forced-colors: active) {\n .lintje-gallery__thumb.is-selected { outline-color: Highlight; }\n}\n", s = class extends a {
|
|
4
4
|
constructor(...e) {
|
|
@@ -28,16 +28,16 @@ var o = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: non
|
|
|
28
28
|
let e = this.items;
|
|
29
29
|
if (!e.length) return t;
|
|
30
30
|
let n = this.shown, a = e[n];
|
|
31
|
-
return
|
|
31
|
+
return i`<div class="lintje-gallery">
|
|
32
32
|
<figure class="lintje-gallery__figure">
|
|
33
33
|
<img class="lintje-gallery__image" src=${a.src} alt=${a.alt} />
|
|
34
|
-
${a.caption ?
|
|
34
|
+
${a.caption ? i`<figcaption class="lintje-gallery__caption">${a.caption}</figcaption>` : t}
|
|
35
35
|
</figure>
|
|
36
|
-
${e.length > 1 ?
|
|
37
|
-
${e.map((a, o) =>
|
|
36
|
+
${e.length > 1 ? i`<ul class="lintje-gallery__thumbs" aria-label=${this.label}>
|
|
37
|
+
${e.map((a, o) => i`<li>
|
|
38
38
|
<button
|
|
39
39
|
type="button"
|
|
40
|
-
class=${
|
|
40
|
+
class=${r({
|
|
41
41
|
"lintje-gallery__thumb": !0,
|
|
42
42
|
"is-selected": o === n
|
|
43
43
|
})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { y as LintjeGridItem } from "../chunks/base-
|
|
1
|
+
export { y as LintjeGridItem } from "../chunks/base-Bg-IFOPG.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { b as LintjeGrid } from "../chunks/base-
|
|
1
|
+
export { b as LintjeGrid } from "../chunks/base-Bg-IFOPG.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as e, Bt as t, Gt as n, Ht as r, I as i,
|
|
1
|
+
import { $ as e, Bt as t, Gt as n, Ht as r, I as i, Z as a, et as o, qt as s, zt as c } from "../chunks/base-Bg-IFOPG.js";
|
|
2
2
|
//#region src/components/frame/hero/hero.css?inline
|
|
3
3
|
var l = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n/* The side padding is the content column's, taken of the full width the band stands in. */\n.lintje-hero__band {\n padding: calc(var(--space-10) + var(--space-4)) calc(var(--page-pad-x) + var(--page-gutter))\n calc(var(--space-10) + var(--space-2));\n background: var(--color-hero-bg);\n color: var(--color-hero-text);\n}\n/* With an aside the text keeps its column and the picture takes the room to its right. */\n.lintje-hero.has-aside .lintje-hero__band {\n display: flex;\n align-items: center;\n gap: var(--space-10);\n}\n.lintje-hero.has-overlap .lintje-hero__band {\n padding-bottom: calc(var(--space-10) + var(--space-2) + var(--hero-overlap));\n}\n.lintje-hero__band :focus-visible { outline-color: var(--color-hero-focus); }\n\n.lintje-hero__body {\n flex: 1 1 auto;\n min-width: 0;\n display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-6);\n}\n\n.lintje-hero__aside {\n flex: 0 1 var(--w-hero-aside);\n min-width: 0;\n display: flex; justify-content: flex-end;\n}\n.lintje-hero__aside ::slotted(*) { max-width: 100%; }\n/* A picture keeps its proportions when the column narrows it. */\n.lintje-hero__aside ::slotted(img) { height: auto; }\n.lintje-hero:not(.has-aside) .lintje-hero__aside { display: none; }\n\n/* Below 1024 px the text needs the room; the picture only supports it. */\n@media (max-width: 1023px) {\n .lintje-hero.has-aside .lintje-hero__band { display: block; }\n .lintje-hero__aside { display: none; }\n .lintje-hero__panel { margin-top: var(--space-8); }\n}\n\n/* Content beside the text takes the other half from 1024 px; below it, it follows the text. */\n.lintje-hero:not(.has-panel) .lintje-hero__panel { display: none; }\n.lintje-hero__panel { display: flex; flex-direction: column; min-width: 0; }\n.lintje-hero__panel ::slotted(*) { flex: 1 1 auto; }\n.lintje-hero.has-panel .lintje-hero__aside { display: none; }\n@media (min-width: 1024px) {\n .lintje-hero.has-panel .lintje-hero__band {\n display: grid;\n grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n align-items: stretch;\n gap: var(--space-10);\n }\n}\n.lintje-hero__heading { display: flex; flex-direction: column; gap: var(--space-3); }\n.lintje-hero__title { margin: 0; font: var(--text-h1-display); }\n.lintje-hero__description {\n margin: 0;\n max-width: var(--w-text);\n font-size: 1.25rem;\n line-height: 1.4;\n text-wrap: pretty;\n}\n\n.lintje-hero__action {\n display: inline-flex;\n align-items: center;\n gap: var(--space-2);\n min-height: var(--h-touch);\n color: inherit;\n font-weight: 700;\n text-decoration: underline;\n text-underline-offset: 0.2em;\n}\n.lintje-hero__action:hover { text-decoration-thickness: 2px; }\n\n/* Pulled up by the room the band keeps for it; without content it takes no space. */\n.lintje-hero__overlap {\n position: relative;\n margin-top: calc(-1 * var(--hero-overlap));\n padding: 0 calc(var(--page-pad-x) + var(--page-gutter));\n}\n.lintje-hero:not(.has-overlap) .lintje-hero__overlap { display: none; }\n\n@media (max-width: 767px) {\n .lintje-hero__band { padding-top: var(--space-8); padding-bottom: var(--space-8); }\n .lintje-hero.has-overlap .lintje-hero__band {\n padding-bottom: calc(var(--space-8) + var(--hero-overlap));\n }\n .lintje-hero__title { font: var(--text-h1); }\n .lintje-hero__description { font-size: 1.125rem; }\n}\n", u = class extends c {
|
|
4
4
|
constructor(...e) {
|
|
@@ -31,8 +31,8 @@ var l = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: non
|
|
|
31
31
|
this.href && i(e) && this.followLink(this.href, e);
|
|
32
32
|
}
|
|
33
33
|
render() {
|
|
34
|
-
return
|
|
35
|
-
class=${
|
|
34
|
+
return s`<div
|
|
35
|
+
class=${a({
|
|
36
36
|
"lintje-hero": !0,
|
|
37
37
|
"has-overlap": this.hasOverlap,
|
|
38
38
|
"has-aside": this.hasAside,
|
|
@@ -44,11 +44,11 @@ var l = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: non
|
|
|
44
44
|
<slot name="status"></slot>
|
|
45
45
|
<div class="lintje-hero__heading">
|
|
46
46
|
<h2 class="lintje-hero__title">${this.heading}</h2>
|
|
47
|
-
${this.description ?
|
|
47
|
+
${this.description ? s`<p class="lintje-hero__description">${this.description}</p>` : n}
|
|
48
48
|
</div>
|
|
49
49
|
<slot></slot>
|
|
50
|
-
${this.action && this.href ?
|
|
51
|
-
>${this.action}${
|
|
50
|
+
${this.action && this.href ? s`<a class="lintje-hero__action" href=${this.href} @click=${this.onAction}
|
|
51
|
+
>${this.action}${o("functioneel-delta-rechts", { size: 16 })}</a
|
|
52
52
|
>` : n}
|
|
53
53
|
</div>
|
|
54
54
|
<div class="lintje-hero__aside">
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Bt as e, Ht as t,
|
|
1
|
+
import { Bt as e, Ht as t, Z as n, qt as r, zt as i } from "../chunks/base-Bg-IFOPG.js";
|
|
2
2
|
//#region src/components/content/highlight/highlight.css?inline
|
|
3
3
|
var a = ":host { display: inline; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n/* `clone`: a marking that wraps paints its fill and line on every line it covers. */\n.lintje-highlight {\n font: inherit;\n color: var(--color-text-primary);\n -webkit-box-decoration-break: clone;\n box-decoration-break: clone;\n}\n\n.lintje-highlight--uncertain {\n background: var(--color-attention-bg);\n border-bottom: 2px dotted var(--color-attention);\n}\n\n.lintje-highlight--term {\n background: var(--color-bg-selected);\n border: 0;\n border-bottom: 2px solid var(--color-accent-line);\n padding: 0;\n}\n.lintje-highlight--control { cursor: help; }\n.lintje-highlight--control:hover { background: var(--color-bg-subtle); }\n\n.lintje-highlight--match {\n background: var(--color-warning);\n color: var(--color-text-on-light-fill);\n}\n.lintje-highlight--match.is-current { outline: 2px solid var(--color-text-primary); }\n\n.lintje-highlight--removed {\n background: var(--color-error-bg);\n text-decoration: line-through;\n}\n.lintje-highlight--added {\n background: var(--color-success-bg);\n text-decoration: underline;\n}\n\n/* Forced colours: a match is only a fill, so it takes the system's marking colours. */\n@media (forced-colors: active) {\n .lintje-highlight--match { forced-color-adjust: none; background: Mark; color: MarkText; }\n .lintje-highlight--match.is-current { outline-color: CanvasText; }\n}\n", o = {
|
|
4
4
|
uncertain: "lage zekerheid",
|
|
@@ -32,7 +32,7 @@ var a = ":host { display: inline; }\n:host([hidden]) { display: none; }\n\n/* --
|
|
|
32
32
|
return this.kind === "term" && !!this.explanation;
|
|
33
33
|
}
|
|
34
34
|
get classes() {
|
|
35
|
-
return
|
|
35
|
+
return n({
|
|
36
36
|
"lintje-highlight": !0,
|
|
37
37
|
[`lintje-highlight--${this.kind}`]: !0,
|
|
38
38
|
"lintje-highlight--control": this.isControl,
|
|
@@ -42,14 +42,14 @@ var a = ":host { display: inline; }\n:host([hidden]) { display: none; }\n\n/* --
|
|
|
42
42
|
render() {
|
|
43
43
|
let e = this.kind;
|
|
44
44
|
if (e === "removed" || e === "added") {
|
|
45
|
-
let t =
|
|
46
|
-
return e === "removed" ?
|
|
45
|
+
let t = r`<span class="visually-hidden">${this.label || s[e]}: </span>`;
|
|
46
|
+
return e === "removed" ? r`<del class=${this.classes}>${t}<slot></slot></del>` : r`<ins class=${this.classes}>${t}<slot></slot></ins>`;
|
|
47
47
|
}
|
|
48
|
-
if (this.isControl) return
|
|
48
|
+
if (this.isControl) return r`<lintje-tooltip text=${this.explanation}
|
|
49
49
|
><button type="button" class=${this.classes}><slot></slot></button
|
|
50
50
|
></lintje-tooltip>`;
|
|
51
51
|
let t = e === "match" && this.current ? "huidig zoekresultaat" : o[e] ?? "markering";
|
|
52
|
-
return
|
|
52
|
+
return r`<mark class=${this.classes}
|
|
53
53
|
><span class="visually-hidden">begin markering ${t}, </span><slot></slot
|
|
54
54
|
><span class="visually-hidden">, einde markering</span></mark
|
|
55
55
|
>`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { D as LintjeIconButton } from "../chunks/base-
|
|
1
|
+
export { D as LintjeIconButton } from "../chunks/base-Bg-IFOPG.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { gt as ICONS, _ as ICON_NAMES, v as LintjeIcon } from "../chunks/base-
|
|
1
|
+
export { gt as ICONS, _ as ICON_NAMES, v as LintjeIcon } from "../chunks/base-Bg-IFOPG.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Bt as e, Gt as t, Ht as n,
|
|
1
|
+
import { Bt as e, Gt as t, Ht as n, U as r, qt as i, zt as a } from "../chunks/base-Bg-IFOPG.js";
|
|
2
2
|
import "./list.js";
|
|
3
3
|
//#region src/components/feedback/job-list/job-list.css?inline
|
|
4
4
|
var o = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n/* The rows are the work list's (`lintje-list`); the job list adds no look of its own. */\n.lintje-job-list { display: block; }\n", s = {
|
|
@@ -103,14 +103,14 @@ var f = class extends a {
|
|
|
103
103
|
willUpdate(e) {
|
|
104
104
|
if (super.willUpdate(e), !e.has("jobs")) return;
|
|
105
105
|
let t = this.renderRoot.querySelector("lintje-list");
|
|
106
|
-
this.emptiedWithFocus = !this.jobs?.length && !!(t &&
|
|
107
|
-
let n = this.known.size === 0,
|
|
106
|
+
this.emptiedWithFocus = !this.jobs?.length && !!(t && r(t));
|
|
107
|
+
let n = this.known.size === 0, i = [], a = /* @__PURE__ */ new Map();
|
|
108
108
|
for (let e of this.jobs ?? []) {
|
|
109
109
|
a.set(e.id, e.state);
|
|
110
110
|
let t = this.known.get(e.id);
|
|
111
|
-
!n && t !== e.state &&
|
|
111
|
+
!n && t !== e.state && i.push(l(e));
|
|
112
112
|
}
|
|
113
|
-
this.known = a,
|
|
113
|
+
this.known = a, i.length ? this.spoken = i.join(" ") : this.emptiedWithFocus && (this.spoken = "Er staan geen taken meer in de lijst.");
|
|
114
114
|
}
|
|
115
115
|
updated(e) {
|
|
116
116
|
if (super.updated(e), !this.emptiedWithFocus) return;
|
|
@@ -128,7 +128,7 @@ var f = class extends a {
|
|
|
128
128
|
}
|
|
129
129
|
render() {
|
|
130
130
|
let e = this.jobs ?? [];
|
|
131
|
-
return
|
|
131
|
+
return i`${e.length ? i`<lintje-list
|
|
132
132
|
class="lintje-job-list"
|
|
133
133
|
heading-level=${this.headingLevel}
|
|
134
134
|
.items=${e.map((t) => d(t, e.every((e) => e.state === "done")))}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Bt as e, Gt as t, Ht as n,
|
|
1
|
+
import { Bt as e, Gt as t, Ht as n, O as r, k as i, qt as a, ut as o } from "../chunks/base-Bg-IFOPG.js";
|
|
2
2
|
import "./kpi.js";
|
|
3
3
|
//#region src/components/charts/kpi-row/kpi-row.css?inline
|
|
4
|
-
var s = "/* The KPIs render in this root, so these rules reach the items directly (no `::slotted()`). */\n:host { display: block; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-grid {\n display: grid;\n grid-template-columns: repeat(12, minmax(0, 1fr));\n gap: var(--grid-gutter);\n align-items: stretch;\n /* A view's held `min-height` is taken by the grid too, so the items fill the held box. */\n min-height: inherit;\n}\n\n/* Lower bound 768 on purpose: the one-column rule below it has lower specificity. */\n@media (min-width: 768px) and (max-width: 1023px) {\n .lintje-grid > [style*='span 4'] { grid-column: span 6 !important; }\n .lintje-grid > [style*='span 8'] { grid-column: span 12 !important; }\n}\n/* Grid sets grid-template-columns inline, so only !important beats it. */\n@media (max-width: 767px) {\n .lintje-grid { grid-template-columns: minmax(0, 1fr) !important; }\n .lintje-grid > * { grid-column: span 1 !important; }\n}\n\n/* After the fallback rules above, so at equal specificity this wins on source order. */\n@media (min-width: 768px) and (max-width: 1023px) {\n .lintje-grid--kpi-row { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }\n .lintje-grid--kpi-row > * { grid-column: span 1 !important; }\n}\n@media (max-width: 767px) {\n .lintje-grid--kpi-row { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }\n .lintje-grid--kpi-row > * { grid-column: span 1 !important; }\n}\n", c = class extends
|
|
4
|
+
var s = "/* The KPIs render in this root, so these rules reach the items directly (no `::slotted()`). */\n:host { display: block; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-grid {\n display: grid;\n grid-template-columns: repeat(12, minmax(0, 1fr));\n gap: var(--grid-gutter);\n align-items: stretch;\n /* A view's held `min-height` is taken by the grid too, so the items fill the held box. */\n min-height: inherit;\n}\n\n/* Lower bound 768 on purpose: the one-column rule below it has lower specificity. */\n@media (min-width: 768px) and (max-width: 1023px) {\n .lintje-grid > [style*='span 4'] { grid-column: span 6 !important; }\n .lintje-grid > [style*='span 8'] { grid-column: span 12 !important; }\n}\n/* Grid sets grid-template-columns inline, so only !important beats it. */\n@media (max-width: 767px) {\n .lintje-grid { grid-template-columns: minmax(0, 1fr) !important; }\n .lintje-grid > * { grid-column: span 1 !important; }\n}\n\n/* After the fallback rules above, so at equal specificity this wins on source order. */\n@media (min-width: 768px) and (max-width: 1023px) {\n .lintje-grid--kpi-row { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }\n .lintje-grid--kpi-row > * { grid-column: span 1 !important; }\n}\n@media (max-width: 767px) {\n .lintje-grid--kpi-row { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }\n .lintje-grid--kpi-row > * { grid-column: span 1 !important; }\n}\n", c = class extends r {
|
|
5
5
|
static {
|
|
6
|
-
this.styles = [
|
|
6
|
+
this.styles = [i, n(s)];
|
|
7
7
|
}
|
|
8
8
|
static {
|
|
9
9
|
this.properties = { data: { attribute: !1 } };
|
|
@@ -13,11 +13,11 @@ var s = "/* The KPIs render in this root, so these rules reach the items directl
|
|
|
13
13
|
}
|
|
14
14
|
render() {
|
|
15
15
|
let e = this.data?.kpis ?? [], n = this.data?.columns ?? 5;
|
|
16
|
-
return
|
|
16
|
+
return a`<div
|
|
17
17
|
class="lintje-grid lintje-grid--kpi-row"
|
|
18
18
|
${o({ gridTemplateColumns: `repeat(${n}, minmax(0, 1fr))` })}
|
|
19
19
|
>
|
|
20
|
-
${e.map((e, n) =>
|
|
20
|
+
${e.map((e, n) => a`<lintje-kpi
|
|
21
21
|
index=${n}
|
|
22
22
|
label=${e.label}
|
|
23
23
|
icon=${e.icon ?? t}
|
|
@@ -25,6 +25,8 @@ var s = "/* The KPIs render in this root, so these rules reach the items directl
|
|
|
25
25
|
.suffix=${e.suffix}
|
|
26
26
|
.items=${e.items}
|
|
27
27
|
.trend=${e.trend}
|
|
28
|
+
.sparkline=${e.sparkline}
|
|
29
|
+
.gauge=${e.gauge}
|
|
28
30
|
.note=${e.note}
|
|
29
31
|
.detail=${e.detail}
|
|
30
32
|
layout=${e.layout ?? "row"}
|