lintje 0.5.1 → 0.7.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 -5
- package/dist-elements/charts.js +1 -5
- package/dist-elements/chat.js +1 -6
- package/dist-elements/chunks/addon-CFoSG70u.js +5 -0
- package/dist-elements/chunks/base-BsZyWDre.js +226 -0
- package/dist-elements/chunks/chart-styles-C5IzbVUF.js +44 -0
- package/dist-elements/chunks/controls-lVYdiFQu.js +1 -0
- package/dist-elements/chunks/copied-Dx6jfxoK.js +1 -0
- package/dist-elements/chunks/date-format-5bii3QLP.js +1 -0
- package/dist-elements/chunks/debounce-Dfwdcv-z.js +1 -0
- package/dist-elements/chunks/dialog-close-CzMRXkJ6.js +1 -0
- package/dist-elements/chunks/disclosure-CQcLUnKh.js +22 -0
- package/dist-elements/chunks/disclosure-DjLQzn9n.js +1 -0
- package/dist-elements/chunks/download-CxEzwMxI.js +13 -0
- package/dist-elements/chunks/focus-trap-BDxiHED1.js +1 -0
- package/dist-elements/chunks/follow-7IBDa51N.js +1 -0
- package/dist-elements/chunks/input-C7qx0e4p.js +8 -0
- package/dist-elements/chunks/input-CazTpGUd.js +1 -0
- package/dist-elements/chunks/key-CAxrgBxD.js +1 -0
- package/dist-elements/chunks/live-message-CYZ-Ch7D.js +1 -0
- package/dist-elements/chunks/other-BaLStKaf.js +11 -0
- package/dist-elements/chunks/playback-gEUDw038.js +1 -0
- package/dist-elements/chunks/player-BEG3MVCm.js +39 -0
- package/dist-elements/chunks/prose-DOF7h3je.js +1 -0
- package/dist-elements/chunks/sentence-CjgQjBP9.js +3 -0
- package/dist-elements/chunks/sentence-end-DqHdi7Wb.js +1 -0
- package/dist-elements/chunks/stagger-CwsMNTLl.js +133 -0
- package/dist-elements/chunks/transition-DZKyyCQs.js +1 -0
- package/dist-elements/content.js +1 -11
- package/dist-elements/core.js +1 -1
- package/dist-elements/custom-elements.json +627 -161
- package/dist-elements/data-types.json +294 -28
- package/dist-elements/dev.js +1 -31
- package/dist-elements/feedback.js +1 -11
- package/dist-elements/filters.js +1 -3
- package/dist-elements/forms.js +1 -7
- package/dist-elements/frame.js +1 -9
- package/dist-elements/guides/dashboard.md +3 -2
- package/dist-elements/guides/events.md +19 -3
- package/dist-elements/guides/start.md +6 -3
- package/dist-elements/inputs.js +1 -21
- package/dist-elements/layout.js +1 -4
- package/dist-elements/lintje.js +3769 -43711
- package/dist-elements/map.js +1 -1
- package/dist-elements/overlays.js +1 -5
- package/dist-elements/tables.js +1 -9
- package/dist-elements/tag/activity-log.js +11 -59
- package/dist-elements/tag/ai-label.js +5 -38
- package/dist-elements/tag/announcement.js +9 -105
- package/dist-elements/tag/app-search.js +26 -177
- package/dist-elements/tag/audio-player.js +51 -265
- package/dist-elements/tag/badge.js +1 -1
- package/dist-elements/tag/breadcrumbs.js +11 -76
- package/dist-elements/tag/button.js +1 -1
- package/dist-elements/tag/card-list.js +9 -78
- package/dist-elements/tag/card.js +37 -172
- package/dist-elements/tag/chart.js +468 -2302
- package/dist-elements/tag/chat-answer.js +56 -201
- package/dist-elements/tag/chat-composer.js +53 -410
- package/dist-elements/tag/chat-message.js +14 -76
- package/dist-elements/tag/chat-strip.js +28 -108
- package/dist-elements/tag/chat-suggestions.js +9 -52
- package/dist-elements/tag/chat.js +40 -198
- package/dist-elements/tag/checkbox-group.js +17 -49
- package/dist-elements/tag/checkbox.js +10 -49
- package/dist-elements/tag/code.js +9 -55
- package/dist-elements/tag/combobox.js +25 -183
- package/dist-elements/tag/conflict-alert.js +15 -70
- package/dist-elements/tag/copy-button.js +13 -104
- package/dist-elements/tag/data-table.js +314 -1546
- package/dist-elements/tag/date-input.js +30 -159
- package/dist-elements/tag/date-range.js +35 -235
- package/dist-elements/tag/description-list.js +20 -89
- package/dist-elements/tag/dialog.js +10 -120
- package/dist-elements/tag/document-viewer.js +39 -211
- package/dist-elements/tag/drawer.js +10 -86
- package/dist-elements/tag/empty-state.js +1 -58
- package/dist-elements/tag/error-page.js +13 -90
- package/dist-elements/tag/error-summary.js +16 -75
- package/dist-elements/tag/expander.js +5 -68
- package/dist-elements/tag/explainer.js +6 -61
- package/dist-elements/tag/field.js +5 -50
- package/dist-elements/tag/file-upload.js +45 -239
- package/dist-elements/tag/filter-bar.js +48 -221
- package/dist-elements/tag/filter-sheet.js +8 -78
- package/dist-elements/tag/filter-zone.js +24 -202
- package/dist-elements/tag/find.js +18 -112
- package/dist-elements/tag/footer.js +14 -36
- package/dist-elements/tag/form-actions.js +3 -103
- package/dist-elements/tag/form-section.js +6 -49
- package/dist-elements/tag/form.js +7 -293
- package/dist-elements/tag/gallery.js +12 -50
- package/dist-elements/tag/grid-item.js +1 -1
- package/dist-elements/tag/grid.js +1 -1
- package/dist-elements/tag/hero.js +7 -50
- package/dist-elements/tag/highlight.js +4 -58
- package/dist-elements/tag/icon-button.js +1 -1
- package/dist-elements/tag/icon.js +1 -1
- package/dist-elements/tag/job-list.js +4 -117
- package/dist-elements/tag/kpi-row.js +10 -30
- package/dist-elements/tag/kpi.js +79 -362
- package/dist-elements/tag/level-meter.js +9 -52
- package/dist-elements/tag/list.js +44 -233
- package/dist-elements/tag/log-viewer.js +104 -710
- package/dist-elements/tag/logo.js +27 -85
- package/dist-elements/tag/map.js +833 -21857
- package/dist-elements/tag/menu-button.js +40 -291
- package/dist-elements/tag/modal.js +16 -82
- package/dist-elements/tag/multiselect.js +29 -158
- package/dist-elements/tag/note.js +3 -22
- package/dist-elements/tag/notifications.js +34 -160
- package/dist-elements/tag/number-input.js +23 -90
- package/dist-elements/tag/page-header.js +18 -180
- package/dist-elements/tag/pagination.js +31 -234
- package/dist-elements/tag/popover.js +1 -1
- package/dist-elements/tag/progress-bar.js +1 -1
- package/dist-elements/tag/prose.js +1 -31
- package/dist-elements/tag/qr-code.js +6 -878
- package/dist-elements/tag/radio-group.js +31 -64
- package/dist-elements/tag/range.js +33 -231
- package/dist-elements/tag/recording-status.js +10 -82
- package/dist-elements/tag/repeater-row.js +1 -1
- package/dist-elements/tag/repeater.js +9 -140
- package/dist-elements/tag/segmented.js +13 -74
- package/dist-elements/tag/select.js +9 -51
- package/dist-elements/tag/shell.js +274 -1026
- package/dist-elements/tag/skeleton.js +1 -1
- package/dist-elements/tag/slot-picker.js +18 -61
- package/dist-elements/tag/sortable-list.js +23 -197
- package/dist-elements/tag/spinner.js +1 -1
- package/dist-elements/tag/split-pane.js +12 -157
- package/dist-elements/tag/status-dot.js +1 -1
- package/dist-elements/tag/stepper.js +20 -120
- package/dist-elements/tag/streaming-text.js +14 -94
- package/dist-elements/tag/sub-nav.js +27 -141
- package/dist-elements/tag/tabs.js +41 -153
- package/dist-elements/tag/tag-input.js +35 -218
- package/dist-elements/tag/text-editor.js +32 -398
- package/dist-elements/tag/text-input.js +56 -130
- package/dist-elements/tag/textarea.js +14 -142
- package/dist-elements/tag/tile.js +1 -1
- package/dist-elements/tag/time-input.js +19 -201
- package/dist-elements/tag/toast.js +12 -100
- package/dist-elements/tag/toggle.js +7 -40
- package/dist-elements/tag/toggletip.js +7 -108
- package/dist-elements/tag/token-value.js +2 -72
- package/dist-elements/tag/tooltip.js +1 -1
- package/dist-elements/tag/transcript.js +38 -285
- package/dist-elements/tag/translator.js +7 -80
- package/dist-elements/tag/tree-view.js +25 -159
- package/dist-elements/tag/user-menu.js +47 -182
- package/dist-elements/tag/video-player.js +16 -155
- package/dist-elements/tokens.css +26 -8
- package/dist-elements/tokens.json +14 -6
- package/dist-elements/types/components/actions/button/button.d.ts +1 -0
- package/dist-elements/types/components/actions/icon/icon.d.ts +2 -1
- package/dist-elements/types/components/actions/icon-button/icon-button.d.ts +0 -5
- package/dist-elements/types/components/actions/logo/logo.d.ts +7 -2
- package/dist-elements/types/components/charts/chart/chart.d.ts +9 -1
- package/dist-elements/types/components/chat/chat/chat.d.ts +0 -2
- package/dist-elements/types/components/chat/chat-composer/chat-composer.d.ts +1 -11
- package/dist-elements/types/components/content/document-viewer/document-viewer.d.ts +14 -1
- package/dist-elements/types/components/content/log-viewer/log-viewer.d.ts +1 -2
- package/dist-elements/types/components/feedback/job-list/job-list.d.ts +9 -2
- package/dist-elements/types/components/feedback/recording-status/recording-status.d.ts +5 -2
- package/dist-elements/types/components/feedback/streaming-text/streaming-text.d.ts +1 -0
- package/dist-elements/types/components/filters/filter-bar/filter-bar.d.ts +3 -0
- package/dist-elements/types/components/filters/filter-sheet/filter-sheet.d.ts +2 -7
- package/dist-elements/types/components/filters/filter-zone/filter-zone.d.ts +0 -2
- package/dist-elements/types/components/forms/error-summary/error-summary.d.ts +5 -1
- package/dist-elements/types/components/forms/form/form.d.ts +10 -3
- package/dist-elements/types/components/forms/form-actions/form-actions.d.ts +4 -1
- package/dist-elements/types/components/forms/repeater/repeater.d.ts +1 -1
- package/dist-elements/types/components/forms/stepper/stepper.d.ts +12 -1
- package/dist-elements/types/components/frame/app-search/app-search.d.ts +1 -0
- package/dist-elements/types/components/frame/notifications/notifications.d.ts +0 -2
- package/dist-elements/types/components/frame/page-header/page-header.d.ts +1 -1
- package/dist-elements/types/components/frame/shell/header.d.ts +6 -8
- package/dist-elements/types/components/frame/shell/navigation.d.ts +0 -7
- package/dist-elements/types/components/frame/shell/shell.d.ts +7 -6
- package/dist-elements/types/components/frame/shell/top-bar.d.ts +5 -2
- package/dist-elements/types/components/frame/user-menu/user-menu.d.ts +15 -2
- package/dist-elements/types/components/index.d.ts +3 -2
- package/dist-elements/types/components/inputs/checkbox-group/checkbox-group.d.ts +15 -8
- package/dist-elements/types/components/inputs/file-upload/file-upload.d.ts +12 -2
- package/dist-elements/types/components/inputs/find/find.d.ts +0 -3
- package/dist-elements/types/components/inputs/number-input/number-input.d.ts +7 -4
- package/dist-elements/types/components/inputs/radio-group/radio-group.d.ts +16 -4
- package/dist-elements/types/components/inputs/range/range.d.ts +1 -1
- package/dist-elements/types/components/inputs/segmented/segmented.d.ts +0 -2
- package/dist-elements/types/components/inputs/shared/addon.d.ts +14 -0
- package/dist-elements/types/components/inputs/shared/input.d.ts +83 -4
- package/dist-elements/types/components/inputs/tag-input/tag-input.d.ts +0 -1
- package/dist-elements/types/components/inputs/text-input/text-input.d.ts +15 -1
- package/dist-elements/types/components/inputs/textarea/textarea.d.ts +3 -2
- package/dist-elements/types/components/layout/tabs/tabs.d.ts +0 -4
- package/dist-elements/types/components/map/map/map.d.ts +9 -1
- package/dist-elements/types/components/overlays/popover/popover.d.ts +8 -5
- package/dist-elements/types/components/overlays/toggletip/toggletip.d.ts +2 -4
- package/dist-elements/types/components/overlays/tooltip/tooltip.d.ts +0 -2
- package/dist-elements/types/components/shared/charts/map-chart/drawings.d.ts +4 -1
- package/dist-elements/types/components/shared/charts/map-chart/leaflet.d.ts +1 -1
- package/dist-elements/types/components/shared/charts/map-chart/map-chart.d.ts +5 -2
- package/dist-elements/types/components/shared/charts/map-chart/marks.d.ts +15 -4
- package/dist-elements/types/components/shared/charts/map-chart/series-style.d.ts +10 -0
- package/dist-elements/types/components/shared/charts/pie-chart/pie-chart.d.ts +2 -1
- package/dist-elements/types/components/shared/charts/shared/axes.d.ts +5 -3
- package/dist-elements/types/components/shared/charts/shared/controller.d.ts +15 -3
- package/dist-elements/types/components/shared/charts/shared/mark-select.d.ts +2 -1
- package/dist-elements/types/components/shared/charts/shared/runs.d.ts +7 -0
- package/dist-elements/types/components/shared/charts/shared/types.d.ts +57 -3
- package/dist-elements/types/components/shared/controls.d.ts +28 -0
- package/dist-elements/types/components/shared/cut-text.d.ts +6 -0
- package/dist-elements/types/components/shared/dialog.d.ts +8 -2
- package/dist-elements/types/components/shared/disclosure.d.ts +2 -2
- package/dist-elements/types/components/shared/focus-trap.d.ts +2 -0
- package/dist-elements/types/components/shared/follow.d.ts +8 -0
- package/dist-elements/types/components/shared/frame-resize-observer.d.ts +12 -0
- package/dist-elements/types/components/shared/live-message.d.ts +17 -0
- package/dist-elements/types/components/shared/other.d.ts +24 -0
- package/dist-elements/types/components/shared/overflow.d.ts +4 -3
- package/dist-elements/types/components/shared/place.d.ts +5 -0
- package/dist-elements/types/components/shared/transition.d.ts +12 -0
- package/dist-elements/types/components/tables/card/card.d.ts +0 -5
- package/dist-elements/types/components/tables/card-list/card-list.d.ts +2 -5
- package/dist-elements/types/components/tables/data-table/actions.d.ts +1 -1
- package/dist-elements/types/components/tables/data-table/data-table.d.ts +23 -8
- package/dist-elements/types/components/tables/data-table/filters.d.ts +6 -2
- package/dist-elements/types/components/tables/description-list/description-list.d.ts +3 -2
- package/dist-elements/types/components/tables/list/list.d.ts +2 -6
- package/dist-elements/types/components/tables/sortable-list/sortable-list.d.ts +1 -1
- package/dist-elements/types/core/element.d.ts +5 -2
- package/dist-elements/types/core/frame-state.d.ts +2 -0
- package/dist-elements/types/core/links.d.ts +2 -0
- package/dist-elements/types/core/styles.d.ts +2 -0
- package/dist-elements/types/icons/register.d.ts +1 -1
- package/dist-elements/types/icons/render.d.ts +1 -1
- package/dist-elements/types/types.d.ts +35 -8
- package/package.json +2 -2
- package/dist-elements/chunks/base-Bd2pmq86.js +0 -2865
- package/dist-elements/chunks/chart-styles-DEd0uIWK.js +0 -108
- package/dist-elements/chunks/controls-_4ac1Lpz.js +0 -121
- package/dist-elements/chunks/copied-7BXYVkXT.js +0 -4
- package/dist-elements/chunks/date-format-DxP9yfDp.js +0 -152
- package/dist-elements/chunks/debounce-JXnLMCcF.js +0 -25
- package/dist-elements/chunks/dialog-BNbkcAxH.js +0 -28
- package/dist-elements/chunks/dialog-close-u75fVEw4.js +0 -4
- package/dist-elements/chunks/disclosure-BK-MJsEn.js +0 -4
- package/dist-elements/chunks/disclosure-CcTr_FLd.js +0 -64
- package/dist-elements/chunks/download-BGe7rpQo.js +0 -103
- package/dist-elements/chunks/focus-trap-Cl99vti9.js +0 -73
- package/dist-elements/chunks/input-Dg1o0Sfu.js +0 -4
- package/dist-elements/chunks/input-KqBT3qWD.js +0 -195
- package/dist-elements/chunks/key-D5wy9ZTj.js +0 -4
- package/dist-elements/chunks/playback-DZJ_NMXv.js +0 -133
- package/dist-elements/chunks/player-BRG7bk_h.js +0 -208
- package/dist-elements/chunks/prose-CmKVp5kL.js +0 -4
- package/dist-elements/chunks/sentence-DIByCXQV.js +0 -15
- package/dist-elements/chunks/sentence-end-8jlqKJ5P.js +0 -8
- package/dist-elements/chunks/stagger-DGRHP_We.js +0 -515
package/dist-elements/map.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import"./tag/map.js";
|
|
@@ -1,5 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import "./tag/modal.js";
|
|
3
|
-
import "./tag/dialog.js";
|
|
4
|
-
import "./tag/drawer.js";
|
|
5
|
-
import "./tag/toggletip.js";
|
|
1
|
+
import"./chunks/base-BsZyWDre.js";import"./tag/modal.js";import"./tag/dialog.js";import"./tag/drawer.js";import"./tag/toggletip.js";
|
package/dist-elements/tables.js
CHANGED
|
@@ -1,9 +1 @@
|
|
|
1
|
-
import
|
|
2
|
-
import "./tag/list.js";
|
|
3
|
-
import "./tag/pagination.js";
|
|
4
|
-
import "./tag/sortable-list.js";
|
|
5
|
-
import "./tag/data-table.js";
|
|
6
|
-
import "./tag/card.js";
|
|
7
|
-
import "./tag/card-list.js";
|
|
8
|
-
import "./tag/tree-view.js";
|
|
9
|
-
import "./tag/activity-log.js";
|
|
1
|
+
import"./tag/description-list.js";import"./tag/list.js";import"./tag/pagination.js";import"./tag/sortable-list.js";import"./tag/data-table.js";import"./tag/card.js";import"./tag/card-list.js";import"./tag/tree-view.js";import"./tag/activity-log.js";
|
|
@@ -1,44 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
var o = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-activity-log {\n font: var(--text-ui);\n color: var(--color-text-primary);\n}\n.lintje-activity-log__heading {\n margin: 0 0 var(--space-3);\n font: var(--text-tile-title);\n}\n.lintje-activity-log__list { list-style: none; margin: 0; padding: 0; }\n\n.lintje-activity-log__entry { display: flex; gap: var(--space-3); }\n.lintje-activity-log__rail {\n flex: 0 0 10px;\n display: flex; flex-direction: column; align-items: center;\n}\n/* The square sits on the sentence's first line; this stub joins it to the square above. */\n.lintje-activity-log__rail::before {\n content: '';\n flex: 0 0 6px;\n width: 2px;\n background: var(--color-border-default);\n}\n.lintje-activity-log__entry.is-newest .lintje-activity-log__rail::before { visibility: hidden; }\n.lintje-activity-log__mark {\n flex: none;\n width: 10px; height: 10px;\n background: var(--color-border-heavy);\n}\n.lintje-activity-log__entry.is-newest .lintje-activity-log__mark { background: var(--color-accent-line); }\n.lintje-activity-log__line {\n flex: 1 1 auto;\n width: 2px;\n background: var(--color-border-default);\n}\n.lintje-activity-log__entry.is-last .lintje-activity-log__line { visibility: hidden; }\n\n.lintje-activity-log__body { min-width: 0; padding-bottom: var(--space-4); }\n.lintje-activity-log__entry.is-last .lintje-activity-log__body { padding-bottom: 0; }\n.lintje-activity-log__what { margin: 0; }\n.lintje-activity-log__who { font-weight: 700; }\n.lintje-activity-log__when {\n display: block;\n font: var(--text-small);\n color: var(--color-text-muted);\n}\n\n.lintje-activity-log__more { margin-top: var(--space-3); }\n\n/* Forced colours drop fills, so the rail is drawn in the text colour. */\n@media (forced-colors: active) {\n .lintje-activity-log__rail::before,\n .lintje-activity-log__mark,\n .lintje-activity-log__line { forced-color-adjust: none; background: CanvasText; }\n .lintje-activity-log__entry.is-newest .lintje-activity-log__mark { background: Highlight; }\n}\n", s = 10, c = class extends e {
|
|
4
|
-
constructor(...e) {
|
|
5
|
-
super(...e), this.entries = [], this.level = 3, this.limit = s;
|
|
6
|
-
}
|
|
7
|
-
static {
|
|
8
|
-
this.styles = n(o);
|
|
9
|
-
}
|
|
10
|
-
static {
|
|
11
|
-
this.properties = {
|
|
12
|
-
entries: { attribute: !1 },
|
|
13
|
-
heading: { type: String },
|
|
14
|
-
level: { type: Number },
|
|
15
|
-
limit: { type: Number }
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
async showMore() {
|
|
19
|
-
let e = this.limit;
|
|
20
|
-
if (this.limit += s, await this.updateComplete, this.renderRoot.querySelector(".lintje-activity-log__more")) return;
|
|
21
|
-
let t = this.renderRoot.querySelectorAll(".lintje-activity-log__entry")[e];
|
|
22
|
-
t && (t.tabIndex = -1, t.focus());
|
|
23
|
-
}
|
|
24
|
-
renderHeading() {
|
|
25
|
-
if (!this.heading) return r;
|
|
26
|
-
let e = this.heading, t = "lintje-activity-log-heading";
|
|
27
|
-
switch (this.level) {
|
|
28
|
-
case 2: return i`<h2 id=${t} class="lintje-activity-log__heading">${e}</h2>`;
|
|
29
|
-
case 4: return i`<h4 id=${t} class="lintje-activity-log__heading">${e}</h4>`;
|
|
30
|
-
case 5: return i`<h5 id=${t} class="lintje-activity-log__heading">${e}</h5>`;
|
|
31
|
-
case 6: return i`<h6 id=${t} class="lintje-activity-log__heading">${e}</h6>`;
|
|
32
|
-
default: return i`<h3 id=${t} class="lintje-activity-log__heading">${e}</h3>`;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
entry(e, t, n) {
|
|
36
|
-
return i`<li
|
|
37
|
-
class=${a({
|
|
38
|
-
"lintje-activity-log__entry": !0,
|
|
39
|
-
"is-newest": t === 0,
|
|
40
|
-
"is-last": n
|
|
41
|
-
})}
|
|
1
|
+
import{cn as e,en as t,on as n,pt as r,rn as i,tn as a}from"../chunks/base-BsZyWDre.js";var o=`:host{min-width:0;display:block}:host([hidden]){display:none}.lintje-activity-log{font:var(--text-ui);color:var(--color-text-primary)}.lintje-activity-log__heading{margin:0 0 var(--space-3);font:var(--text-tile-title)}.lintje-activity-log__list{margin:0;padding:0;list-style:none}.lintje-activity-log__entry{gap:var(--space-3);display:flex}.lintje-activity-log__rail{flex-direction:column;flex:0 0 10px;align-items:center;display:flex}.lintje-activity-log__rail:before{content:"";background:var(--color-border-default);flex:0 0 6px;width:2px}.lintje-activity-log__entry.is-newest .lintje-activity-log__rail:before{visibility:hidden}.lintje-activity-log__mark{background:var(--color-border-heavy);flex:none;width:10px;height:10px}.lintje-activity-log__entry.is-newest .lintje-activity-log__mark{background:var(--color-accent-line)}.lintje-activity-log__line{background:var(--color-border-default);flex:auto;width:2px}.lintje-activity-log__entry.is-last .lintje-activity-log__line{visibility:hidden}.lintje-activity-log__body{min-width:0;padding-bottom:var(--space-4)}.lintje-activity-log__entry.is-last .lintje-activity-log__body{padding-bottom:0}.lintje-activity-log__what{margin:0}.lintje-activity-log__who{font-weight:700}.lintje-activity-log__when{font:var(--text-small);color:var(--color-text-muted);display:block}.lintje-activity-log__more{margin-top:var(--space-3)}@media (forced-colors:active){.lintje-activity-log__rail:before,.lintje-activity-log__mark,.lintje-activity-log__line{forced-color-adjust:none;background:canvastext}.lintje-activity-log__entry.is-newest .lintje-activity-log__mark{background:highlight}}`,s=10,c=class extends t{constructor(...e){super(...e),this.entries=[],this.level=3,this.limit=s}static{this.styles=i(o)}static{this.properties={entries:{attribute:!1},heading:{type:String},level:{type:Number},limit:{type:Number}}}async showMore(){let e=this.limit;if(this.limit+=s,await this.updateComplete,this.renderRoot.querySelector(`.lintje-activity-log__more`))return;let t=this.renderRoot.querySelectorAll(`.lintje-activity-log__entry`)[e];t&&(t.tabIndex=-1,t.focus())}renderHeading(){if(!this.heading)return n;let t=this.heading,r=`lintje-activity-log-heading`;switch(this.level){case 2:return e`<h2 id=${r} class="lintje-activity-log__heading">${t}</h2>`;case 4:return e`<h4 id=${r} class="lintje-activity-log__heading">${t}</h4>`;case 5:return e`<h5 id=${r} class="lintje-activity-log__heading">${t}</h5>`;case 6:return e`<h6 id=${r} class="lintje-activity-log__heading">${t}</h6>`;default:return e`<h3 id=${r} class="lintje-activity-log__heading">${t}</h3>`}}entry(t,n,i){return e`<li
|
|
2
|
+
class=${r({"lintje-activity-log__entry":!0,"is-newest":n===0,"is-last":i})}
|
|
42
3
|
>
|
|
43
4
|
<span class="lintje-activity-log__rail" aria-hidden="true">
|
|
44
5
|
<span class="lintje-activity-log__mark"></span>
|
|
@@ -46,31 +7,22 @@ var o = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: non
|
|
|
46
7
|
</span>
|
|
47
8
|
<div class="lintje-activity-log__body">
|
|
48
9
|
<p class="lintje-activity-log__what">
|
|
49
|
-
<strong class="lintje-activity-log__who">${
|
|
10
|
+
<strong class="lintje-activity-log__who">${t.who}</strong> ${t.what}
|
|
50
11
|
</p>
|
|
51
|
-
${
|
|
12
|
+
${t.at?e`<time class="lintje-activity-log__when" datetime=${t.at}>${t.when}</time>`:e`<span class="lintje-activity-log__when">${t.when}</span>`}
|
|
52
13
|
</div>
|
|
53
|
-
</li
|
|
54
|
-
}
|
|
55
|
-
render() {
|
|
56
|
-
let e = this.entries.slice(0, Math.max(0, this.limit)), t = this.entries.length - e.length;
|
|
57
|
-
return i`<section class="lintje-activity-log">
|
|
14
|
+
</li>`}render(){let t=this.entries.slice(0,Math.max(0,this.limit)),r=this.entries.length-t.length;return e`<section class="lintje-activity-log">
|
|
58
15
|
${this.renderHeading()}
|
|
59
16
|
<ol
|
|
60
17
|
class="lintje-activity-log__list"
|
|
61
|
-
aria-labelledby=${this.heading
|
|
18
|
+
aria-labelledby=${this.heading?`lintje-activity-log-heading`:n}
|
|
62
19
|
>
|
|
63
|
-
${
|
|
20
|
+
${t.map((e,n)=>this.entry(e,n,n===t.length-1))}
|
|
64
21
|
</ol>
|
|
65
|
-
${
|
|
22
|
+
${r>0?e`<lintje-button
|
|
66
23
|
class="lintje-activity-log__more"
|
|
67
24
|
variant="link"
|
|
68
|
-
@click=${()
|
|
25
|
+
@click=${()=>void this.showMore()}
|
|
69
26
|
>Toon eerdere</lintje-button
|
|
70
|
-
|
|
71
|
-
</section
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
t("lintje-activity-log", c);
|
|
75
|
-
//#endregion
|
|
76
|
-
export { c as LintjeActivityLog };
|
|
27
|
+
>`:n}
|
|
28
|
+
</section>`}};a(`lintje-activity-log`,c);export{c as LintjeActivityLog};
|
|
@@ -1,38 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
a,
|
|
7
|
-
r,
|
|
8
|
-
n(l)
|
|
9
|
-
];
|
|
10
|
-
}
|
|
11
|
-
static {
|
|
12
|
-
this.properties = {
|
|
13
|
-
checkedBy: {
|
|
14
|
-
type: String,
|
|
15
|
-
attribute: "checked-by"
|
|
16
|
-
},
|
|
17
|
-
hint: { type: String }
|
|
18
|
-
};
|
|
19
|
-
}
|
|
20
|
-
render() {
|
|
21
|
-
let e = !!this.checkedBy, t = this.hint ?? (e ? "" : u), n = o`<span class="lintje-ai-label__badge"
|
|
22
|
-
>${c(e ? "functioneel-vinkje" : "gereedschap-half-tandwiel-half-brein", {
|
|
23
|
-
size: 14,
|
|
24
|
-
className: "lintje-ai-label__icon"
|
|
25
|
-
})}<span>${e ? `Gecontroleerd door ${this.checkedBy}` : "Gemaakt door AI"}</span></span
|
|
26
|
-
>`;
|
|
27
|
-
return o`<span class="lintje-ai-label">
|
|
28
|
-
${s({
|
|
29
|
-
value: n,
|
|
30
|
-
tone: "neutral",
|
|
31
|
-
className: "lintje-ai-label__box"
|
|
32
|
-
})}${t ? o`<span class="lintje-ai-label__hint">${t}</span>` : i}
|
|
33
|
-
</span>`;
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
t("lintje-ai-label", d);
|
|
37
|
-
//#endregion
|
|
38
|
-
export { d as LintjeAiLabel };
|
|
1
|
+
import{cn as e,dt as t,en as n,ft as r,gt as i,ht as a,on as o,rn as s,tn as c}from"../chunks/base-BsZyWDre.js";var l=`:host{min-width:0;display:block}:host([hidden]){display:none}.lintje-ai-label{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;display:flex}.lintje-ai-label__box{white-space:normal;max-width:100%;height:auto;min-height:1.5rem;line-height:1.25}.lintje-ai-label__badge{align-items:center;gap:var(--space-1);min-width:0;display:inline-flex}.lintje-ai-label__icon{flex:none}.lintje-ai-label__hint{font:var(--text-small);color:var(--color-text-muted)}`,u=`Controleer de tekst voor je hem gebruikt`,d=class extends n{static{this.styles=[a,t,s(l)]}static{this.properties={checkedBy:{type:String,attribute:`checked-by`},hint:{type:String}}}render(){let t=!!this.checkedBy,n=this.hint??(t?``:u),a=e`<span class="lintje-ai-label__badge"
|
|
2
|
+
>${i(t?`functioneel-vinkje`:`gereedschap-half-tandwiel-half-brein`,{size:14,className:`lintje-ai-label__icon`})}<span>${t?`Gecontroleerd door ${this.checkedBy}`:`Gemaakt door AI`}</span></span
|
|
3
|
+
>`;return e`<span class="lintje-ai-label">
|
|
4
|
+
${r({value:a,tone:`neutral`,className:`lintje-ai-label__box`})}${n?e`<span class="lintje-ai-label__hint">${n}</span>`:o}
|
|
5
|
+
</span>`}};c(`lintje-ai-label`,d);export{d as LintjeAiLabel};
|
|
@@ -1,106 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
this.styles = [
|
|
10
|
-
l,
|
|
11
|
-
e,
|
|
12
|
-
s(f),
|
|
13
|
-
t
|
|
14
|
-
];
|
|
15
|
-
}
|
|
16
|
-
static {
|
|
17
|
-
this.properties = {
|
|
18
|
-
data: { attribute: !1 },
|
|
19
|
-
dismissed: { state: !0 },
|
|
20
|
-
filled: { state: !0 }
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
get dataSettings() {
|
|
24
|
-
return this.data ?? void 0;
|
|
25
|
-
}
|
|
26
|
-
get identity() {
|
|
27
|
-
let e = this.data;
|
|
28
|
-
return e ? e.announcementId ?? [
|
|
29
|
-
e.kind,
|
|
30
|
-
e.title,
|
|
31
|
-
e.text
|
|
32
|
-
].join("\0") : "";
|
|
33
|
-
}
|
|
34
|
-
get isDismissed() {
|
|
35
|
-
let e = this.data;
|
|
36
|
-
if (!e) return !1;
|
|
37
|
-
if (this.dismissed === this.identity) return !0;
|
|
38
|
-
if (!e.announcementId) return !1;
|
|
39
|
-
try {
|
|
40
|
-
return localStorage.getItem(p(e.announcementId)) === "1";
|
|
41
|
-
} catch {
|
|
42
|
-
return !1;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
holds(e) {
|
|
46
|
-
for (let t = e; t;) {
|
|
47
|
-
if (t === this) return !0;
|
|
48
|
-
t = t.parentNode ?? (t instanceof ShadowRoot ? t.host : null);
|
|
49
|
-
}
|
|
50
|
-
return !1;
|
|
51
|
-
}
|
|
52
|
-
neighbour() {
|
|
53
|
-
let e = d(document.body), t = e.indexOf(o());
|
|
54
|
-
if (t === -1) return null;
|
|
55
|
-
let n = (e) => !this.holds(e);
|
|
56
|
-
return e.slice(t + 1).find(n) ?? e.slice(0, t).reverse().find(n) ?? null;
|
|
57
|
-
}
|
|
58
|
-
async close() {
|
|
59
|
-
let e = i(this) ? this.neighbour() : null, t = this.data?.announcementId;
|
|
60
|
-
if (t) try {
|
|
61
|
-
localStorage.setItem(p(t), "1");
|
|
62
|
-
} catch {}
|
|
63
|
-
this.dismissed = this.identity, e && (await this.updateComplete, e.focus());
|
|
64
|
-
}
|
|
65
|
-
disconnectedCallback() {
|
|
66
|
-
this.fillFrame && cancelAnimationFrame(this.fillFrame), this.fillFrame = 0, super.disconnectedCallback();
|
|
67
|
-
}
|
|
68
|
-
updated(e) {
|
|
69
|
-
super.updated(e), !(!this.data?.live || this.isDismissed || this.filled === this.identity || this.fillFrame) && (this.fillFrame = requestAnimationFrame(() => {
|
|
70
|
-
this.fillFrame = 0, this.filled = this.identity;
|
|
71
|
-
}));
|
|
72
|
-
}
|
|
73
|
-
render() {
|
|
74
|
-
let e = this.data;
|
|
75
|
-
if (!e || this.isDismissed) return c;
|
|
76
|
-
let t = this.block(e), n = e.tile;
|
|
77
|
-
return n ? u`<lintje-tile
|
|
78
|
-
id=${this.id ? `${this.id}-tile` : c}
|
|
79
|
-
span=${n.span ?? c}
|
|
80
|
-
heading=${n.title ?? c}
|
|
81
|
-
icon=${n.icon ?? c}
|
|
82
|
-
subtitle=${n.subtitle ?? c}
|
|
83
|
-
intro=${n.intro ?? c}
|
|
84
|
-
footnote=${n.footnote ?? c}
|
|
1
|
+
import{F as e,M as t,N as n,P as r,cn as i,ht as a,nt as o,on as s,rn as c,rt as l,tn as u}from"../chunks/base-BsZyWDre.js";import{i as d}from"../chunks/focus-trap-BDxiHED1.js";var f=`:host{min-width:0;display:block}:host([hidden]){display:none}@media print{:host{break-inside:avoid}}lintje-tile{height:100%;min-height:inherit}`,p=e=>`lintje-announcement-dismissed:${e}`,m=class extends r{constructor(...e){super(...e),this.dismissed=null,this.filled=null,this.fillFrame=0}static{this.styles=[a,e,c(f),t]}static{this.properties={data:{attribute:!1},dismissed:{state:!0},filled:{state:!0}}}get dataSettings(){return this.data??void 0}get identity(){let e=this.data;return e?e.announcementId??[e.kind,e.title,e.text].join(`\0`):``}get isDismissed(){let e=this.data;if(!e)return!1;if(this.dismissed===this.identity)return!0;if(!e.announcementId)return!1;try{return localStorage.getItem(p(e.announcementId))===`1`}catch{return!1}}holds(e){for(let t=e;t;){if(t===this)return!0;t=t.parentNode??(t instanceof ShadowRoot?t.host:null)}return!1}neighbour(){let e=d(document.body),t=e.indexOf(o());if(t===-1)return null;let n=e=>!this.holds(e);return e.slice(t+1).find(n)??e.slice(0,t).reverse().find(n)??null}async close(){let e=l(this)?this.neighbour():null,t=this.data?.announcementId;if(t)try{localStorage.setItem(p(t),`1`)}catch{}this.dismissed=this.identity,e&&(await this.updateComplete,e.focus())}disconnectedCallback(){this.fillFrame&&cancelAnimationFrame(this.fillFrame),this.fillFrame=0,super.disconnectedCallback()}updated(e){super.updated(e),!(!this.data?.live||this.isDismissed||this.filled===this.identity||this.fillFrame)&&(this.fillFrame=requestAnimationFrame(()=>{this.fillFrame=0,this.filled=this.identity}))}render(){let e=this.data;if(!e||this.isDismissed)return s;let t=this.block(e),n=e.tile;return n?i`<lintje-tile
|
|
2
|
+
id=${this.id?`${this.id}-tile`:s}
|
|
3
|
+
span=${n.span??s}
|
|
4
|
+
heading=${n.title??s}
|
|
5
|
+
icon=${n.icon??s}
|
|
6
|
+
subtitle=${n.subtitle??s}
|
|
7
|
+
intro=${n.intro??s}
|
|
8
|
+
footnote=${n.footnote??s}
|
|
85
9
|
>${t}</lintje-tile
|
|
86
|
-
|
|
87
|
-
}
|
|
88
|
-
block(e) {
|
|
89
|
-
let t = e.kind ?? "warning", r = !!e.dismissible && t !== "outage", i = e.live === !0;
|
|
90
|
-
return n({
|
|
91
|
-
kind: t,
|
|
92
|
-
title: e.title,
|
|
93
|
-
text: e.text,
|
|
94
|
-
meta: e.meta,
|
|
95
|
-
link: e.link,
|
|
96
|
-
live: i,
|
|
97
|
-
filled: this.filled === this.identity,
|
|
98
|
-
action: u`<slot name="action" class="lintje-announcement__action"></slot>`,
|
|
99
|
-
media: u`<slot name="media" class="lintje-announcement__media"></slot>`,
|
|
100
|
-
onClose: r ? () => void this.close() : void 0
|
|
101
|
-
});
|
|
102
|
-
}
|
|
103
|
-
};
|
|
104
|
-
a("lintje-announcement", m);
|
|
105
|
-
//#endregion
|
|
106
|
-
export { m as LintjeAnnouncement, f as t };
|
|
10
|
+
>`:t}block(e){let t=e.kind??`warning`,r=!!e.dismissible&&t!==`outage`,a=e.live===!0;return n({kind:t,title:e.title,text:e.text,meta:e.meta,link:e.link,live:a,filled:this.filled===this.identity,action:i`<slot name="action" class="lintje-announcement__action"></slot>`,media:i`<slot name="media" class="lintje-announcement__media"></slot>`,onClose:r?()=>void this.close():void 0})}};u(`lintje-announcement`,m);export{m as LintjeAnnouncement,f as t};
|
|
@@ -1,204 +1,58 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { t as p } from "../chunks/focus-trap-Cl99vti9.js";
|
|
3
|
-
import { t as m } from "../chunks/dialog-close-u75fVEw4.js";
|
|
4
|
-
import { t as h } from "../chunks/key-D5wy9ZTj.js";
|
|
5
|
-
import { t as g } from "../chunks/debounce-JXnLMCcF.js";
|
|
6
|
-
//#region src/components/frame/app-search/app-search.css?inline
|
|
7
|
-
var _ = ":host { display: contents; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-app-search__scrim {\n position: fixed;\n z-index: 80;\n inset: 0;\n display: flex;\n align-items: flex-start;\n justify-content: center;\n padding: calc(var(--space-10) * 2) var(--space-6) var(--space-6);\n background: var(--color-overlay-page);\n animation: lintje-fade-in var(--dur-scrim) var(--ease-in-motion);\n}\n\n.lintje-app-search {\n display: flex;\n flex-direction: column;\n width: min(560px, 100%);\n max-height: 100%;\n background: var(--color-bg-surface);\n color: var(--color-text-primary);\n border: 1px solid var(--color-border-strong);\n box-shadow: var(--shadow-popover);\n font: var(--text-ui);\n animation: lintje-rise var(--dur-modal) var(--ease-in-motion);\n}\n/* The window takes focus only when the trap pulls stray focus back; the field draws the ring. */\n.lintje-app-search:focus { outline: none; }\n\n.lintje-app-search__field {\n position: relative;\n display: flex;\n align-items: center;\n flex: none;\n padding: var(--space-3);\n background: var(--color-bg-filter);\n border-bottom: 1px solid var(--color-border-default);\n}\n.lintje-app-search__icon {\n position: absolute;\n left: calc(var(--space-3) * 2);\n color: var(--color-text-muted);\n pointer-events: none;\n}\n/* A field like every other, so its focus ring has room inside the band. */\n.lintje-app-search__input {\n flex: 1;\n min-width: 0;\n height: var(--h-control);\n /* Clears the glyph. */\n padding: 0 var(--space-3) 0 calc(var(--space-3) + 20px + var(--space-3));\n border: 1px solid var(--color-border-field);\n background: var(--color-bg-surface);\n font-size: 1rem;\n}\n.lintje-app-search__input::-webkit-search-cancel-button { display: none; }\n\n.lintje-app-search__results {\n flex: 1 1 auto;\n min-height: 0;\n overflow-y: auto;\n padding: var(--space-3) 0 var(--space-2);\n}\n\n.lintje-app-search__heading {\n padding: var(--space-3) var(--space-4) var(--space-2);\n font-size: var(--label-size);\n font-weight: var(--label-weight);\n letter-spacing: var(--label-tracking);\n text-transform: uppercase;\n color: var(--color-text-muted);\n}\n.lintje-app-search__group:first-child .lintje-app-search__heading { padding-top: 0; }\n\n.lintje-app-search__option {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: var(--space-4);\n min-height: var(--h-control);\n padding: 0 var(--space-4);\n color: var(--color-text-primary);\n text-decoration: none;\n cursor: pointer;\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-app-search__option + .lintje-app-search__option { border-top: 1px solid var(--color-border-default); }\n.lintje-app-search__option:hover { background: var(--color-bg-subtle); }\n/* The chosen row has the virtual focus (`aria-activedescendant`), so it draws the focus ring,\n inside; the fill alone is too faint to find. */\n.lintje-app-search__option.is-active {\n background: var(--color-bg-selected);\n outline: var(--focus-width) solid var(--color-focus);\n outline-offset: calc(var(--focus-width) * -1);\n}\n.lintje-app-search__label { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.lintje-app-search__match { font-weight: 700; }\n.lintje-app-search__meta { flex: none; color: var(--color-text-muted); }\n\n.lintje-app-search__busy { display: flex; align-items: center; justify-content: center; padding: var(--space-4); color: var(--color-text-muted); }\n.lintje-app-search__empty { margin: 0; padding: var(--space-4); text-align: center; color: var(--color-text-muted); }\n\n.lintje-app-search__keys {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n flex: none;\n gap: var(--space-1) var(--space-6);\n margin: 0;\n padding: var(--space-3) var(--space-4);\n background: var(--color-bg-filter);\n border-top: 1px solid var(--color-border-default);\n font-size: 0.875rem;\n color: var(--color-text-muted);\n}\n.lintje-app-search__hint { display: inline-flex; align-items: center; gap: var(--space-1); }\n\n.lintje-app-search__close:hover { color: var(--color-text-primary); }\n\n/* Phone: a sheet from below, as \"Weergave\", \"Delen\" and the filters open, with their head. Its\n height stays as the results change, and the field stands high, above the keyboard. */\n.lintje-app-search__header {\n display: flex; align-items: center; gap: var(--space-2);\n flex: none;\n padding: var(--space-4);\n border-bottom: 1px solid var(--color-border-default);\n}\n.lintje-app-search__title { flex: 1; margin: 0; font: var(--text-h2); }\n\n@media screen and (max-width: 767px) {\n .lintje-app-search__scrim { align-items: flex-end; padding: 0; }\n .lintje-app-search {\n width: 100%;\n height: 88vh;\n border: 0;\n border-top: 1px solid var(--color-border-strong);\n box-shadow: none;\n animation: lintje-sheet-in var(--dur-sheet) var(--ease-in-motion);\n }\n .lintje-app-search__input { height: var(--h-touch); }\n .lintje-app-search__option { min-height: var(--h-touch); }\n}\n\n/* Forced colours drop the fill; the ring takes Highlight. */\n@media (forced-colors: active) {\n .lintje-app-search__option.is-active { outline: 2px solid Highlight; outline-offset: -2px; }\n}\n", v = 200, y = 0;
|
|
8
|
-
function b(e, t) {
|
|
9
|
-
let n = t.trim();
|
|
10
|
-
if (!n) return null;
|
|
11
|
-
let r = e.toLocaleLowerCase("nl").indexOf(n.toLocaleLowerCase("nl"));
|
|
12
|
-
return r < 0 ? null : [
|
|
13
|
-
e.slice(0, r),
|
|
14
|
-
e.slice(r, r + n.length),
|
|
15
|
-
e.slice(r + n.length)
|
|
16
|
-
];
|
|
17
|
-
}
|
|
18
|
-
function x(e, t, n) {
|
|
19
|
-
return n ? "" : e === 0 ? t.trim() ? `Geen resultaten voor “${t.trim()}”` : "" : e === 1 ? "1 resultaat" : `${e} resultaten`;
|
|
20
|
-
}
|
|
21
|
-
var S = class extends r {
|
|
22
|
-
constructor(...t) {
|
|
23
|
-
super(...t), this.open = !1, this.label = "Zoeken", this.query = "", this.loading = !1, this.groups = [], this.active = -1, this.#e = new i(this, e), this.#t = new g(this, 200), this.#n = `lintje-app-search-${++y}`, this.#r = null, this.#i = null, this.#a = new p(), this.#o = (e) => {
|
|
24
|
-
e.key === "Escape" && this.#a.isTopmost() && this.close("escape");
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
static {
|
|
28
|
-
this.styles = [
|
|
29
|
-
l,
|
|
30
|
-
o(m),
|
|
31
|
-
o(h),
|
|
32
|
-
o(_)
|
|
33
|
-
];
|
|
34
|
-
}
|
|
35
|
-
static {
|
|
36
|
-
this.properties = {
|
|
37
|
-
open: {
|
|
38
|
-
type: Boolean,
|
|
39
|
-
reflect: !0
|
|
40
|
-
},
|
|
41
|
-
label: { type: String },
|
|
42
|
-
query: { type: String },
|
|
43
|
-
loading: {
|
|
44
|
-
type: Boolean,
|
|
45
|
-
reflect: !0
|
|
46
|
-
},
|
|
47
|
-
groups: { attribute: !1 },
|
|
48
|
-
active: { state: !0 }
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
#e;
|
|
52
|
-
#t;
|
|
53
|
-
#n;
|
|
54
|
-
#r;
|
|
55
|
-
#i;
|
|
56
|
-
#a;
|
|
57
|
-
get results() {
|
|
58
|
-
return this.groups.flatMap((e) => e.items);
|
|
59
|
-
}
|
|
60
|
-
get input() {
|
|
61
|
-
return this.renderRoot.querySelector(".lintje-app-search__input");
|
|
62
|
-
}
|
|
63
|
-
optionId(e) {
|
|
64
|
-
return `${this.#n}-option-${e}`;
|
|
65
|
-
}
|
|
66
|
-
#o;
|
|
67
|
-
connectedCallback() {
|
|
68
|
-
super.connectedCallback(), this.#r = c({
|
|
69
|
-
keys: "/",
|
|
70
|
-
description: "Zoeken",
|
|
71
|
-
handler: () => {
|
|
72
|
-
this.open || this.emit("lintje-open");
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
disconnectedCallback() {
|
|
77
|
-
this.#r?.(), this.#r = null, this.#c(), super.disconnectedCallback();
|
|
78
|
-
}
|
|
79
|
-
close(e) {
|
|
80
|
-
this.emit("lintje-close", { reason: e });
|
|
81
|
-
}
|
|
82
|
-
willUpdate(e) {
|
|
83
|
-
super.willUpdate(e), (e.has("groups") || e.has("loading")) && (this.active = !this.loading && this.results.length ? 0 : -1);
|
|
84
|
-
}
|
|
85
|
-
updated(e) {
|
|
86
|
-
super.updated(e), this.open && !this.#i ? this.#s() : !this.open && this.#i && this.#c(), e.has("active") && this.active >= 0 && this.renderRoot.querySelector(`#${this.optionId(this.active)}`)?.scrollIntoView?.({ block: "nearest" });
|
|
87
|
-
}
|
|
88
|
-
#s() {
|
|
89
|
-
this.#i = n(), document.addEventListener("keydown", this.#o);
|
|
90
|
-
let e = this.renderRoot.querySelector(".lintje-app-search");
|
|
91
|
-
e && this.#a.activate(e, { focus: this.input ?? !0 });
|
|
92
|
-
}
|
|
93
|
-
#c() {
|
|
94
|
-
this.#i && (this.#t.cancel(), document.removeEventListener("keydown", this.#o), this.#i(), this.#i = null, this.#a.deactivate());
|
|
95
|
-
}
|
|
96
|
-
onInput(e) {
|
|
97
|
-
this.query = e.target.value, this.#t.schedule(() => this.emit("lintje-search", this.query));
|
|
98
|
-
}
|
|
99
|
-
onFieldKeydown(e) {
|
|
100
|
-
let t = this.results.length;
|
|
101
|
-
switch (e.key) {
|
|
102
|
-
case "ArrowDown":
|
|
103
|
-
e.preventDefault(), t && (this.active = (this.active + 1) % t);
|
|
104
|
-
return;
|
|
105
|
-
case "ArrowUp":
|
|
106
|
-
e.preventDefault(), t && (this.active = (this.active - 1 + t) % t);
|
|
107
|
-
return;
|
|
108
|
-
case "Enter": {
|
|
109
|
-
e.preventDefault();
|
|
110
|
-
let t = this.results[this.active];
|
|
111
|
-
t && !this.loading ? this.choose(t) : this.#t.flush();
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
choose(e, n) {
|
|
116
|
-
if (e.href) {
|
|
117
|
-
if (n && !t(n)) return;
|
|
118
|
-
this.followLink(e.href, n);
|
|
119
|
-
} else this.emit("lintje-action", e.id);
|
|
120
|
-
this.close("choice");
|
|
121
|
-
}
|
|
122
|
-
renderLabel(e) {
|
|
123
|
-
let t = b(e, this.query);
|
|
124
|
-
return t ? u`${t[0]}<strong class="lintje-app-search__match">${t[1]}</strong>${t[2]}` : u`${e}`;
|
|
125
|
-
}
|
|
126
|
-
renderOption(e, t) {
|
|
127
|
-
let n = t === this.active, r = d({
|
|
128
|
-
"lintje-app-search__option": !0,
|
|
129
|
-
"is-active": n
|
|
130
|
-
}), i = u`<span class="lintje-app-search__label">${this.renderLabel(e.label)}</span>${e.meta ? u`<span class="lintje-app-search__meta">${e.meta}</span>` : s}`, a = (t) => this.choose(e, t);
|
|
131
|
-
return e.href ? u`<a
|
|
1
|
+
import{Lt as e,Qt as t,U as n,Zt as r,cn as i,en as a,gt as o,ht as s,on as c,pt as l,rn as u,st as d,tn as f}from"../chunks/base-BsZyWDre.js";import{n as p,t as m}from"../chunks/dialog-close-CzMRXkJ6.js";import{t as h}from"../chunks/debounce-Dfwdcv-z.js";import{t as g}from"../chunks/key-CAxrgBxD.js";var _=`:host{display:contents}.lintje-app-search__scrim{z-index:80;padding:calc(var(--space-10) * 2) var(--space-6) var(--space-6);background:var(--color-overlay-page);animation:lintje-fade-in var(--dur-scrim) var(--ease-in-motion);justify-content:center;align-items:flex-start;display:flex;position:fixed;inset:0}.lintje-app-search{background:var(--color-bg-surface);width:min(560px,100%);max-height:100%;color:var(--color-text-primary);border:1px solid var(--color-border-strong);box-shadow:var(--shadow-popover);font:var(--text-ui);animation:lintje-rise var(--dur-modal) var(--ease-in-motion);flex-direction:column;display:flex}.lintje-app-search:focus{outline:none}.lintje-app-search__field{padding:var(--space-3);background:var(--color-bg-filter);border-bottom:1px solid var(--color-border-default);flex:none;align-items:center;display:flex;position:relative}.lintje-app-search__icon{left:calc(var(--space-3) * 2);color:var(--color-text-muted);pointer-events:none;position:absolute}.lintje-app-search__input{min-width:0;height:var(--h-control);padding:0 var(--space-3) 0 calc(var(--space-3) + 20px + var(--space-3));border:1px solid var(--color-border-field);background:var(--color-bg-surface);flex:1;font-size:1rem}.lintje-app-search__input::-webkit-search-cancel-button{display:none}.lintje-app-search__results{min-height:0;padding:var(--space-3) 0 var(--space-2);flex:auto;overflow-y:auto}.lintje-app-search__heading{padding:var(--space-3) var(--space-4) var(--space-2);font-size:var(--label-size);font-weight:var(--label-weight);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--color-text-muted)}.lintje-app-search__group:first-child .lintje-app-search__heading{padding-top:0}.lintje-app-search__option{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:var(--h-control);padding:var(--space-2) var(--space-4);color:var(--color-text-primary);cursor:pointer;transition:background var(--dur-hover) var(--ease-in-motion);text-decoration:none;display:flex}.lintje-app-search__option+.lintje-app-search__option{border-top:1px solid var(--color-border-default)}.lintje-app-search__option:hover{background:var(--color-bg-subtle)}.lintje-app-search__option.is-active{background:var(--color-bg-selected);outline:var(--focus-width) solid var(--color-focus);outline-offset:calc(var(--focus-width) * -1)}.lintje-app-search__label{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.lintje-app-search__option.is-active .lintje-app-search__label{white-space:normal;overflow-wrap:anywhere}@media (hover:none),screen and (width<=767px){.lintje-app-search__label{white-space:normal;overflow-wrap:anywhere}}.lintje-app-search__match{font-weight:700}.lintje-app-search__meta{color:var(--color-text-muted);flex:none}.lintje-app-search__busy{padding:var(--space-4);color:var(--color-text-muted);justify-content:center;align-items:center;display:flex}.lintje-app-search__empty{padding:var(--space-4);text-align:center;color:var(--color-text-muted);margin:0}.lintje-app-search__keys{align-items:center;gap:var(--space-1) var(--space-6);padding:var(--space-3) var(--space-4);background:var(--color-bg-filter);border-top:1px solid var(--color-border-default);color:var(--color-text-muted);flex-wrap:wrap;flex:none;margin:0;font-size:.875rem;display:flex}.lintje-app-search__hint{align-items:center;gap:var(--space-1);display:inline-flex}.lintje-app-search__close:hover{color:var(--color-text-primary)}.lintje-app-search__header{align-items:center;gap:var(--space-2);padding:var(--space-4);border-bottom:1px solid var(--color-border-default);flex:none;display:flex}.lintje-app-search__title{font:var(--text-h2);flex:1;margin:0}@media screen and (width<=767px){.lintje-app-search__scrim{align-items:flex-end;padding:0}.lintje-app-search{border:0;border-top:1px solid var(--color-border-strong);width:100%;height:88vh;box-shadow:none;animation:lintje-sheet-in var(--dur-sheet) var(--ease-in-motion)}.lintje-app-search__input{height:var(--h-touch)}.lintje-app-search__option{min-height:var(--h-touch)}}@media (forced-colors:active){.lintje-app-search__option.is-active{outline-offset:-2px;outline:2px solid highlight}}`,v=200,y=0,b=[],x=null;function S(e,t){let n=t.trim();if(!n)return null;let r=e.toLocaleLowerCase(`nl`).indexOf(n.toLocaleLowerCase(`nl`));return r<0?null:[e.slice(0,r),e.slice(r,r+n.length),e.slice(r+n.length)]}function C(e,t,n){return n?``:e===0?t.trim()?`Geen resultaten voor “${t.trim()}”`:``:e===1?`1 resultaat`:`${e} resultaten`}var w=class extends a{constructor(...e){super(...e),this.open=!1,this.label=`Zoeken`,this.query=``,this.loading=!1,this.groups=[],this.active=-1,this.#e=new t(this,r),this.#t=new h(this,200),this.#n=`lintje-app-search-${++y}`,this.#r=new p(()=>this.close(`escape`))}static{this.styles=[s,u(m),u(g),u(_)]}static{this.properties={open:{type:Boolean,reflect:!0},label:{type:String},query:{type:String},loading:{type:Boolean,reflect:!0},groups:{attribute:!1},active:{state:!0}}}#e;#t;#n;#r;get results(){return this.groups.flatMap(e=>e.items)}get input(){return this.renderRoot.querySelector(`.lintje-app-search__input`)}optionId(e){return`${this.#n}-option-${e}`}connectedCallback(){super.connectedCallback(),b.push(this),x??=e({keys:`/`,description:`Zoeken`,handler:()=>b.at(-1)?.askOpen()})}disconnectedCallback(){let e=b.indexOf(this);e!==-1&&b.splice(e,1),b.length||(x?.(),x=null),this.#a(),super.disconnectedCallback()}askOpen(){this.open||this.emit(`lintje-open`)}close(e){this.emit(`lintje-close`,{reason:e})}willUpdate(e){super.willUpdate(e),(e.has(`groups`)||e.has(`loading`))&&(this.active=!this.loading&&this.results.length?0:-1)}updated(e){super.updated(e),this.open&&!this.#r.held?this.#i():!this.open&&this.#r.held&&this.#a(),e.has(`active`)&&this.active>=0&&this.renderRoot.querySelector(`#${this.optionId(this.active)}`)?.scrollIntoView?.({block:`nearest`})}#i(){let e=this.renderRoot.querySelector(`.lintje-app-search`);e&&this.#r.hold(e,{focus:this.input??!0})}#a(){this.#r.held&&(this.#t.cancel(),this.#r.release())}onInput(e){this.query=e.target.value,this.#t.schedule(()=>this.emit(`lintje-search`,this.query))}onFieldKeydown(e){let t=this.results.length;switch(e.key){case`ArrowDown`:e.preventDefault(),t&&(this.active=(this.active+1)%t);return;case`ArrowUp`:e.preventDefault(),t&&(this.active=(this.active-1+t)%t);return;case`Enter`:{e.preventDefault();let t=this.results[this.active];t&&!this.loading?this.choose(t):this.#t.flush()}}}choose(e,t){if(e.href){if(t&&!n(t))return;this.followLink(e.href,t)}else this.emit(`lintje-action`,e.id);this.close(`choice`)}renderLabel(e){let t=S(e,this.query);return t?i`${t[0]}<strong class="lintje-app-search__match">${t[1]}</strong>${t[2]}`:i`${e}`}renderOption(e,t){let n=t===this.active,r=l({"lintje-app-search__option":!0,"is-active":n}),a=i`<span class="lintje-app-search__label" @pointerenter=${d}>${this.renderLabel(e.label)}</span>${e.meta?i`<span class="lintje-app-search__meta">${e.meta}</span>`:c}`,o=t=>this.choose(e,t);return e.href?i`<a
|
|
132
2
|
id=${this.optionId(t)}
|
|
133
3
|
class=${r}
|
|
134
4
|
role="option"
|
|
135
5
|
aria-selected=${String(n)}
|
|
136
6
|
tabindex="-1"
|
|
137
7
|
href=${e.href}
|
|
138
|
-
@click=${
|
|
139
|
-
>${
|
|
140
|
-
|
|
8
|
+
@click=${o}
|
|
9
|
+
>${a}</a
|
|
10
|
+
>`:i`<div
|
|
141
11
|
id=${this.optionId(t)}
|
|
142
12
|
class=${r}
|
|
143
13
|
role="option"
|
|
144
14
|
aria-selected=${String(n)}
|
|
145
|
-
@click=${
|
|
15
|
+
@click=${o}
|
|
146
16
|
>
|
|
147
|
-
${
|
|
148
|
-
</div
|
|
149
|
-
|
|
150
|
-
renderResults() {
|
|
151
|
-
let e = 0, t = `${this.#n}-list`, n = this.results.length, r = this.query.trim();
|
|
152
|
-
return u`
|
|
153
|
-
${this.loading ? u`<div class="lintje-app-search__busy">
|
|
17
|
+
${a}
|
|
18
|
+
</div>`}renderResults(){let e=0,t=`${this.#n}-list`,n=this.results.length,r=this.query.trim();return i`
|
|
19
|
+
${this.loading?i`<div class="lintje-app-search__busy">
|
|
154
20
|
<lintje-spinner label="Zoeken"></lintje-spinner>
|
|
155
|
-
</div
|
|
21
|
+
</div>`:!n&&r?i`<p class="lintje-app-search__empty">Geen resultaten voor “${r}”</p>`:c}
|
|
156
22
|
<div
|
|
157
23
|
id=${t}
|
|
158
24
|
class="lintje-app-search__list"
|
|
159
25
|
role="listbox"
|
|
160
26
|
aria-label="Resultaten"
|
|
161
|
-
?hidden=${this.loading
|
|
27
|
+
?hidden=${this.loading||!n}
|
|
162
28
|
>
|
|
163
|
-
${this.groups.map((t,
|
|
164
|
-
if (!t.items.length) return s;
|
|
165
|
-
let r = `${this.#n}-group-${n}`;
|
|
166
|
-
return u`<div class="lintje-app-search__group" role="group" aria-labelledby=${r}>
|
|
29
|
+
${this.groups.map((t,n)=>{if(!t.items.length)return c;let r=`${this.#n}-group-${n}`;return i`<div class="lintje-app-search__group" role="group" aria-labelledby=${r}>
|
|
167
30
|
<div id=${r} class="lintje-app-search__heading">${t.label}</div>
|
|
168
|
-
${t.items.map(
|
|
169
|
-
</div
|
|
170
|
-
})}
|
|
31
|
+
${t.items.map(t=>this.renderOption(t,e++))}
|
|
32
|
+
</div>`})}
|
|
171
33
|
</div>
|
|
172
|
-
|
|
173
|
-
}
|
|
174
|
-
render() {
|
|
175
|
-
if (!this.open) return s;
|
|
176
|
-
let e = `${this.#n}-list`, t = this.results.length, n = !this.loading && t > 0;
|
|
177
|
-
return u`<div class="lintje-app-search__scrim" @click=${() => this.close("scrim")}>
|
|
34
|
+
`}render(){if(!this.open)return c;let e=`${this.#n}-list`,t=this.results.length,n=!this.loading&&t>0;return i`<div class="lintje-app-search__scrim" @click=${()=>this.close(`scrim`)}>
|
|
178
35
|
<div
|
|
179
36
|
class="lintje-app-search"
|
|
180
37
|
role="dialog"
|
|
181
38
|
aria-modal="true"
|
|
182
39
|
aria-label="Zoeken"
|
|
183
40
|
tabindex="-1"
|
|
184
|
-
@click=${
|
|
41
|
+
@click=${e=>e.stopPropagation()}
|
|
185
42
|
>
|
|
186
|
-
${this.#e.matches
|
|
43
|
+
${this.#e.matches?i`<div class="lintje-app-search__header">
|
|
187
44
|
<h2 class="lintje-app-search__title">Zoeken</h2>
|
|
188
45
|
<button
|
|
189
46
|
type="button"
|
|
190
47
|
class="lintje-dialog-close lintje-app-search__close"
|
|
191
48
|
aria-label="Zoeken sluiten"
|
|
192
|
-
@click=${()
|
|
49
|
+
@click=${()=>this.close(`button`)}
|
|
193
50
|
>
|
|
194
|
-
${
|
|
51
|
+
${o(`functioneel-kruis`,{size:16})}
|
|
195
52
|
</button>
|
|
196
|
-
</div
|
|
53
|
+
</div>`:c}
|
|
197
54
|
<div class="lintje-app-search__field">
|
|
198
|
-
${
|
|
199
|
-
size: 20,
|
|
200
|
-
className: "lintje-app-search__icon"
|
|
201
|
-
})}
|
|
55
|
+
${o(`functioneel-zoek`,{size:20,className:`lintje-app-search__icon`})}
|
|
202
56
|
<input
|
|
203
57
|
class="lintje-app-search__input"
|
|
204
58
|
type="search"
|
|
@@ -209,7 +63,7 @@ var S = class extends r {
|
|
|
209
63
|
aria-autocomplete="list"
|
|
210
64
|
aria-expanded=${String(n)}
|
|
211
65
|
aria-controls=${e}
|
|
212
|
-
aria-activedescendant=${n
|
|
66
|
+
aria-activedescendant=${n&&this.active>=0?this.optionId(this.active):c}
|
|
213
67
|
.value=${this.query}
|
|
214
68
|
@input=${this.onInput}
|
|
215
69
|
@keydown=${this.onFieldKeydown}
|
|
@@ -217,15 +71,15 @@ var S = class extends r {
|
|
|
217
71
|
</div>
|
|
218
72
|
<div
|
|
219
73
|
class="lintje-app-search__results"
|
|
220
|
-
?hidden=${!this.loading
|
|
221
|
-
@mousedown=${
|
|
74
|
+
?hidden=${!this.loading&&!t&&!this.query.trim()}
|
|
75
|
+
@mousedown=${e=>e.preventDefault()}
|
|
222
76
|
>
|
|
223
77
|
${this.renderResults()}
|
|
224
78
|
</div>
|
|
225
79
|
<p class="visually-hidden" aria-live="polite">
|
|
226
|
-
${
|
|
80
|
+
${C(t,this.query,this.loading)}
|
|
227
81
|
</p>
|
|
228
|
-
${this.#e.matches
|
|
82
|
+
${this.#e.matches?c:i`<p class="lintje-app-search__keys">
|
|
229
83
|
<span class="lintje-app-search__hint"
|
|
230
84
|
><kbd class="lintje-key">↑</kbd><kbd class="lintje-key">↓</kbd> kiezen</span
|
|
231
85
|
>
|
|
@@ -233,9 +87,4 @@ var S = class extends r {
|
|
|
233
87
|
<span class="lintje-app-search__hint"><kbd class="lintje-key">Esc</kbd> sluiten</span>
|
|
234
88
|
</p>`}
|
|
235
89
|
</div>
|
|
236
|
-
</div
|
|
237
|
-
}
|
|
238
|
-
};
|
|
239
|
-
a("lintje-app-search", S);
|
|
240
|
-
//#endregion
|
|
241
|
-
export { S as LintjeAppSearch, v as SEARCH_DELAY, x as resultsMessage, b as splitMatch };
|
|
90
|
+
</div>`}};f(`lintje-app-search`,w);export{w as LintjeAppSearch,v as SEARCH_DELAY,C as resultsMessage,S as splitMatch};
|