lintje 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist-elements/actions.js +1 -1
- package/dist-elements/chunks/{base-Bg-IFOPG.js → base-CbmWxUig.js} +444 -272
- package/dist-elements/chunks/{controls-B1455oPG.js → controls-DxmnDSBr.js} +6 -0
- package/dist-elements/chunks/dialog-DChINFxD.js +28 -0
- package/dist-elements/chunks/{disclosure-BXTX04gM.js → disclosure-D39vAR5q.js} +1 -1
- package/dist-elements/chunks/{disclosure-CMXhX-Vb.js → disclosure-DLkXPUpV.js} +6 -6
- package/dist-elements/chunks/download-Ct9q2anY.js +206 -0
- package/dist-elements/chunks/{focus-trap-9BnE-xWv.js → focus-trap-BwOxE5BX.js} +1 -1
- package/dist-elements/chunks/input-CRW_exv_.js +195 -0
- package/dist-elements/chunks/{player-DXOZEyEy.js → player-B8QXJ0Z5.js} +26 -26
- package/dist-elements/chunks/{sentence-BI3lwEuT.js → sentence-B19AyZBS.js} +3 -3
- package/dist-elements/chunks/{stagger-qGD3wmhg.js → stagger-BHoOgy0g.js} +81 -75
- package/dist-elements/core.js +1 -1
- package/dist-elements/custom-elements.json +980 -670
- package/dist-elements/data-types.json +6798 -0
- package/dist-elements/feedback.js +2 -1
- package/dist-elements/frame.js +0 -2
- package/dist-elements/guides/dashboard.md +8 -0
- package/dist-elements/guides/events.md +4 -5
- package/dist-elements/guides/loading.md +8 -7
- package/dist-elements/guides/page-contents.md +110 -0
- package/dist-elements/guides/start.md +12 -0
- package/dist-elements/inputs.js +2 -1
- package/dist-elements/layout.js +1 -1
- package/dist-elements/lintje.js +6975 -6120
- package/dist-elements/overlays.js +2 -2
- package/dist-elements/skills/lintje/SKILL.md +1 -1
- package/dist-elements/tables.js +1 -1
- package/dist-elements/tag/activity-log.js +15 -15
- package/dist-elements/tag/ai-label.js +10 -10
- package/dist-elements/tag/announcement.js +36 -76
- package/dist-elements/tag/app-search.js +49 -49
- package/dist-elements/tag/audio-player.js +57 -57
- package/dist-elements/tag/badge.js +1 -1
- package/dist-elements/tag/breadcrumbs.js +15 -15
- package/dist-elements/tag/button.js +1 -1
- package/dist-elements/tag/card-list.js +12 -12
- package/dist-elements/tag/card.js +39 -44
- package/dist-elements/tag/chart.js +1050 -795
- package/dist-elements/tag/chat-answer.js +49 -49
- package/dist-elements/tag/chat-composer.js +75 -71
- package/dist-elements/tag/chat-message.js +8 -8
- package/dist-elements/tag/chat-strip.js +22 -22
- package/dist-elements/tag/chat-suggestions.js +12 -12
- package/dist-elements/tag/chat.js +56 -56
- package/dist-elements/tag/checkbox-group.d.ts +1 -0
- package/dist-elements/tag/checkbox-group.js +59 -0
- package/dist-elements/tag/checkbox.js +8 -8
- package/dist-elements/tag/code.js +9 -9
- package/dist-elements/tag/combobox.js +18 -18
- package/dist-elements/tag/conflict-alert.js +12 -12
- package/dist-elements/tag/copy-button.js +14 -14
- package/dist-elements/tag/data-table.js +878 -530
- package/dist-elements/tag/date-input.js +30 -30
- package/dist-elements/tag/date-range.js +37 -37
- package/dist-elements/tag/description-list.js +29 -32
- package/dist-elements/tag/dialog.d.ts +1 -0
- package/dist-elements/tag/dialog.js +144 -0
- package/dist-elements/tag/document-viewer.js +23 -23
- package/dist-elements/tag/drawer.js +28 -32
- package/dist-elements/tag/empty-state.js +19 -30
- package/dist-elements/tag/error-page.d.ts +1 -0
- package/dist-elements/tag/error-page.js +109 -0
- package/dist-elements/tag/error-summary.js +10 -10
- package/dist-elements/tag/expander.js +8 -8
- package/dist-elements/tag/explainer.js +11 -11
- package/dist-elements/tag/field.js +5 -5
- package/dist-elements/tag/file-upload.js +34 -34
- package/dist-elements/tag/filter-bar.js +56 -56
- package/dist-elements/tag/filter-sheet.js +11 -11
- package/dist-elements/tag/filter-zone.js +31 -31
- package/dist-elements/tag/footer.js +21 -21
- package/dist-elements/tag/form-actions.js +29 -25
- package/dist-elements/tag/form-section.js +6 -6
- package/dist-elements/tag/form.js +12 -12
- package/dist-elements/tag/gallery.js +14 -14
- package/dist-elements/tag/grid-item.js +1 -1
- package/dist-elements/tag/grid.js +1 -1
- package/dist-elements/tag/hero.js +12 -12
- package/dist-elements/tag/highlight.js +5 -5
- package/dist-elements/tag/icon-button.js +1 -1
- package/dist-elements/tag/icon.js +1 -1
- package/dist-elements/tag/job-list.js +22 -44
- package/dist-elements/tag/kpi-row.js +12 -10
- package/dist-elements/tag/kpi.js +146 -137
- package/dist-elements/tag/level-meter.js +11 -11
- package/dist-elements/tag/list.js +55 -55
- package/dist-elements/tag/logo.js +30 -30
- package/dist-elements/tag/map.js +690 -665
- package/dist-elements/tag/menu-button.js +70 -69
- package/dist-elements/tag/modal.js +28 -37
- package/dist-elements/tag/multiselect.js +34 -34
- package/dist-elements/tag/note.js +5 -5
- package/dist-elements/tag/notifications.js +36 -36
- package/dist-elements/tag/number-input.js +12 -12
- package/dist-elements/tag/page-header.js +140 -37
- package/dist-elements/tag/pagination.js +53 -48
- package/dist-elements/tag/popover.js +1 -1
- package/dist-elements/tag/progress-bar.js +1 -1
- package/dist-elements/tag/prose.js +6 -6
- package/dist-elements/tag/qr-code.js +7 -7
- package/dist-elements/tag/radio-group.js +12 -12
- package/dist-elements/tag/range.js +22 -22
- package/dist-elements/tag/recording-status.js +14 -14
- package/dist-elements/tag/repeater.js +10 -10
- package/dist-elements/tag/segmented.js +13 -13
- package/dist-elements/tag/select.js +10 -10
- package/dist-elements/tag/shell.js +356 -339
- package/dist-elements/tag/skeleton.js +1 -1
- package/dist-elements/tag/slot-picker.js +14 -14
- package/dist-elements/tag/sortable-list.js +14 -14
- package/dist-elements/tag/spinner.js +1 -1
- package/dist-elements/tag/split-pane.js +12 -12
- package/dist-elements/tag/status-dot.js +1 -1
- package/dist-elements/tag/stepper.js +21 -21
- package/dist-elements/tag/streaming-text.js +13 -13
- package/dist-elements/tag/sub-nav.js +39 -38
- package/dist-elements/tag/tabs.js +38 -38
- package/dist-elements/tag/tag-input.js +19 -19
- package/dist-elements/tag/text-editor.js +24 -24
- package/dist-elements/tag/text-input.js +14 -14
- package/dist-elements/tag/textarea.js +14 -14
- package/dist-elements/tag/tile.js +1 -1
- package/dist-elements/tag/time-input.js +19 -19
- package/dist-elements/tag/toast.js +32 -23
- package/dist-elements/tag/toggle.js +8 -8
- package/dist-elements/tag/toggletip.js +27 -27
- package/dist-elements/tag/tooltip.js +1 -1
- package/dist-elements/tag/transcript.js +48 -48
- package/dist-elements/tag/translator.js +13 -13
- package/dist-elements/tag/tree-view.js +13 -13
- package/dist-elements/tag/user-menu.js +37 -37
- package/dist-elements/tag/video-player.js +21 -21
- package/dist-elements/tokens.css +120 -96
- package/dist-elements/types/bundle/feedback.d.ts +1 -0
- package/dist-elements/types/bundle/frame.d.ts +0 -2
- package/dist-elements/types/bundle/inputs.d.ts +1 -0
- package/dist-elements/types/bundle/overlays.d.ts +1 -1
- package/dist-elements/types/components/actions/copy-button/copy-button.d.ts +6 -7
- package/dist-elements/types/components/actions/menu-button/menu-button.d.ts +13 -15
- package/dist-elements/types/components/actions/qr-code/qr-code.d.ts +9 -9
- package/dist-elements/types/components/charts/chart/chart.d.ts +5 -4
- package/dist-elements/types/components/charts/kpi/kpi.d.ts +16 -8
- package/dist-elements/types/components/charts/kpi-row/kpi-row.d.ts +1 -7
- package/dist-elements/types/components/charts/note/note.d.ts +1 -1
- package/dist-elements/types/components/chat/chat/chat.d.ts +8 -10
- package/dist-elements/types/components/chat/chat-answer/chat-answer.d.ts +7 -8
- package/dist-elements/types/components/chat/chat-composer/chat-composer.d.ts +8 -10
- package/dist-elements/types/components/chat/chat-message/chat-message.d.ts +6 -7
- package/dist-elements/types/components/chat/chat-strip/chat-strip.d.ts +5 -5
- package/dist-elements/types/components/chat/chat-suggestions/chat-suggestions.d.ts +9 -10
- package/dist-elements/types/components/content/audio-player/audio-player.d.ts +10 -12
- package/dist-elements/types/components/content/code/code.d.ts +2 -3
- package/dist-elements/types/components/content/document-viewer/document-viewer.d.ts +8 -9
- package/dist-elements/types/components/content/gallery/gallery.d.ts +5 -4
- package/dist-elements/types/components/content/highlight/highlight.d.ts +4 -3
- package/dist-elements/types/components/content/prose/prose.d.ts +2 -3
- package/dist-elements/types/components/content/transcript/transcript.d.ts +12 -25
- package/dist-elements/types/components/content/translator/translator.d.ts +11 -15
- package/dist-elements/types/components/content/video-player/video-player.d.ts +11 -13
- package/dist-elements/types/components/feedback/ai-label/ai-label.d.ts +3 -4
- package/dist-elements/types/components/feedback/announcement/announcement.d.ts +3 -7
- package/dist-elements/types/components/feedback/conflict-alert/conflict-alert.d.ts +3 -4
- package/dist-elements/types/components/feedback/empty-state/empty-state.d.ts +5 -8
- package/dist-elements/types/components/feedback/error-page/error-page.d.ts +52 -0
- package/dist-elements/types/components/feedback/job-list/job-list.d.ts +9 -12
- package/dist-elements/types/components/feedback/level-meter/level-meter.d.ts +4 -6
- package/dist-elements/types/components/feedback/recording-status/recording-status.d.ts +5 -6
- package/dist-elements/types/components/feedback/streaming-text/streaming-text.d.ts +10 -7
- package/dist-elements/types/components/feedback/toast/toast.d.ts +8 -9
- package/dist-elements/types/components/filters/filter-bar/filter-bar.d.ts +9 -4
- package/dist-elements/types/components/filters/filter-sheet/filter-sheet.d.ts +5 -5
- package/dist-elements/types/components/filters/filter-zone/filter-zone.d.ts +4 -4
- package/dist-elements/types/components/forms/error-summary/error-summary.d.ts +5 -6
- package/dist-elements/types/components/forms/form/form.d.ts +5 -5
- package/dist-elements/types/components/forms/form-actions/form-actions.d.ts +9 -7
- package/dist-elements/types/components/forms/form-section/form-section.d.ts +6 -5
- package/dist-elements/types/components/forms/repeater/repeater.d.ts +13 -7
- package/dist-elements/types/components/forms/stepper/stepper.d.ts +5 -4
- package/dist-elements/types/components/frame/app-search/app-search.d.ts +6 -7
- package/dist-elements/types/components/frame/breadcrumbs/breadcrumbs.d.ts +2 -2
- package/dist-elements/types/components/frame/footer/footer.d.ts +3 -2
- package/dist-elements/types/components/frame/hero/hero.d.ts +7 -9
- package/dist-elements/types/components/frame/notifications/notifications.d.ts +5 -9
- package/dist-elements/types/components/frame/page-header/page-header.d.ts +12 -15
- package/dist-elements/types/components/frame/shell/shell.d.ts +14 -13
- package/dist-elements/types/components/frame/sub-nav/sub-nav.d.ts +10 -6
- package/dist-elements/types/components/frame/user-menu/user-menu.d.ts +11 -10
- package/dist-elements/types/components/index.d.ts +8 -9
- package/dist-elements/types/components/inputs/checkbox/checkbox.d.ts +4 -4
- package/dist-elements/types/components/inputs/checkbox-group/checkbox-group.d.ts +33 -0
- package/dist-elements/types/components/inputs/combobox/combobox.d.ts +12 -6
- package/dist-elements/types/components/inputs/date-input/date-input.d.ts +5 -5
- package/dist-elements/types/components/inputs/date-range/date-range.d.ts +11 -6
- package/dist-elements/types/components/inputs/field/field.d.ts +5 -3
- package/dist-elements/types/components/inputs/file-upload/file-upload.d.ts +6 -8
- package/dist-elements/types/components/inputs/multiselect/multiselect.d.ts +4 -6
- package/dist-elements/types/components/inputs/number-input/number-input.d.ts +8 -7
- package/dist-elements/types/components/inputs/radio-group/radio-group.d.ts +2 -4
- package/dist-elements/types/components/inputs/range/range.d.ts +5 -6
- package/dist-elements/types/components/inputs/segmented/segmented.d.ts +7 -4
- package/dist-elements/types/components/inputs/select/select.d.ts +6 -3
- package/dist-elements/types/components/inputs/slot-picker/slot-picker.d.ts +6 -5
- package/dist-elements/types/components/inputs/tag-input/tag-input.d.ts +7 -5
- package/dist-elements/types/components/inputs/text-editor/text-editor.d.ts +6 -6
- package/dist-elements/types/components/inputs/text-input/text-input.d.ts +11 -6
- package/dist-elements/types/components/inputs/textarea/textarea.d.ts +12 -11
- package/dist-elements/types/components/inputs/time-input/time-input.d.ts +7 -8
- package/dist-elements/types/components/inputs/toggle/toggle.d.ts +3 -1
- package/dist-elements/types/components/layout/expander/expander.d.ts +9 -10
- package/dist-elements/types/components/layout/split-pane/split-pane.d.ts +6 -6
- package/dist-elements/types/components/layout/tabs/tabs.d.ts +11 -9
- package/dist-elements/types/components/map/map/map.d.ts +10 -9
- package/dist-elements/types/components/overlays/dialog/dialog.d.ts +49 -0
- package/dist-elements/types/components/overlays/drawer/drawer.d.ts +6 -5
- package/dist-elements/types/components/overlays/modal/modal.d.ts +7 -12
- package/dist-elements/types/components/overlays/toggletip/toggletip.d.ts +3 -7
- package/dist-elements/types/components/shared/charts/index.d.ts +4 -1
- package/dist-elements/types/components/shared/charts/kinds.d.ts +86 -0
- package/dist-elements/types/components/shared/charts/line-chart/line-chart.d.ts +2 -2
- package/dist-elements/types/components/shared/charts/map-chart/leaflet.d.ts +5 -0
- package/dist-elements/types/components/shared/charts/shared/chart-states.d.ts +8 -19
- package/dist-elements/types/components/shared/charts/shared/controller.d.ts +7 -0
- package/dist-elements/types/components/shared/charts/shared/types.d.ts +29 -0
- package/dist-elements/types/components/shared/charts/stacked-area-chart/stacked-area-chart.d.ts +13 -0
- package/dist-elements/types/components/shared/dialog.d.ts +9 -0
- package/dist-elements/types/components/shared/overflow.d.ts +58 -0
- package/dist-elements/types/components/tables/activity-log/activity-log.d.ts +2 -3
- package/dist-elements/types/components/tables/card/card.d.ts +14 -20
- package/dist-elements/types/components/tables/card-list/card-list.d.ts +9 -11
- package/dist-elements/types/components/tables/data-table/data-table.d.ts +85 -16
- package/dist-elements/types/components/tables/data-table/filters.d.ts +13 -4
- package/dist-elements/types/components/tables/description-list/description-list.d.ts +12 -11
- package/dist-elements/types/components/tables/list/list.d.ts +9 -20
- package/dist-elements/types/components/tables/pagination/pagination.d.ts +12 -11
- package/dist-elements/types/components/tables/sortable-list/sortable-list.d.ts +5 -6
- package/dist-elements/types/components/tables/tree-view/tree-view.d.ts +4 -4
- package/dist-elements/types/core/media.d.ts +2 -2
- package/dist-elements/types/core/motion.d.ts +5 -0
- package/dist-elements/types/core/print.d.ts +15 -0
- package/dist-elements/types/core/shortcuts.d.ts +2 -2
- package/dist-elements/types/icons/icon/icon.d.ts +2 -3
- package/dist-elements/types/icons/register.d.ts +1 -1
- package/dist-elements/types/primitives/badge/badge.d.ts +9 -5
- package/dist-elements/types/primitives/button/button.d.ts +12 -9
- package/dist-elements/types/primitives/grid/grid.d.ts +3 -3
- package/dist-elements/types/primitives/grid-item/grid-item.d.ts +1 -1
- package/dist-elements/types/primitives/icon-button/icon-button.d.ts +7 -5
- package/dist-elements/types/primitives/index.d.ts +3 -1
- package/dist-elements/types/primitives/popover/popover.d.ts +5 -4
- package/dist-elements/types/primitives/progress-bar/progress-bar.d.ts +8 -6
- package/dist-elements/types/primitives/shared/announcement-block.d.ts +38 -0
- package/dist-elements/types/primitives/shared/empty-state-block.d.ts +26 -0
- package/dist-elements/types/primitives/shared/tone.d.ts +18 -0
- package/dist-elements/types/primitives/skeleton/skeleton.d.ts +1 -1
- package/dist-elements/types/primitives/spinner/spinner.d.ts +1 -2
- package/dist-elements/types/primitives/status-dot/status-dot.d.ts +4 -5
- package/dist-elements/types/primitives/tile/tile.d.ts +17 -5
- package/dist-elements/types/primitives/tooltip/tooltip.d.ts +6 -6
- package/dist-elements/types/types.d.ts +70 -10
- package/dist-icons/functioneel-kolommen.svg +1 -0
- package/dist-icons/functioneel-trechter.svg +1 -0
- package/package.json +1 -1
- package/dist-elements/chunks/confirm-dialog-D5EVGuil.js +0 -4
- package/dist-elements/chunks/download-y528pIHP.js +0 -230
- package/dist-elements/chunks/input-BtuNFSWk.js +0 -195
- package/dist-elements/tag/confirm-dialog.d.ts +0 -1
- package/dist-elements/tag/confirm-dialog.js +0 -118
- package/dist-elements/tag/session-expiry.d.ts +0 -1
- package/dist-elements/tag/session-expiry.js +0 -184
- package/dist-elements/tag/shortcuts.d.ts +0 -1
- package/dist-elements/tag/shortcuts.js +0 -104
- package/dist-elements/types/components/frame/session-expiry/session-expiry.d.ts +0 -55
- package/dist-elements/types/components/frame/shortcuts/shortcuts.d.ts +0 -41
- package/dist-elements/types/components/overlays/confirm-dialog/confirm-dialog.d.ts +0 -41
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { L as e, Yt as t, Zt as n, en as r, lt as i, nn as a, rt as o, st as s, ut as c } from "../chunks/base-CbmWxUig.js";
|
|
2
2
|
import "./menu-button.js";
|
|
3
3
|
import { n as l, o as u, p as d } from "../chunks/playback-DZJ_NMXv.js";
|
|
4
|
-
import { n as f, t as p } from "../chunks/player-
|
|
4
|
+
import { n as f, t as p } from "../chunks/player-B8QXJ0Z5.js";
|
|
5
5
|
//#region src/components/content/video-player/video-player.css?inline
|
|
6
|
-
var m = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-video-player {\n border: 1px solid var(--color-border-default);\n background: var(--color-bg-surface);\n color: var(--color-text-primary);\n}\n\n/* No surface token stays black in dark, so the surface takes the ink on a light fill. */\n.lintje-video-player__stage {\n position: relative;\n aspect-ratio: 16 / 9;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--color-text-on-light-fill);\n overflow: hidden;\n}\n.lintje-video-player__video {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: contain;\n background: var(--color-text-on-light-fill);\n}\n\n/* What stands on the picture has a white edge, so the fill keeps apart from the dark. */\n.lintje-video-player__big-play.lintje-button,\n.lintje-video-player__retry.lintje-button {\n position: relative;\n border: 2px solid var(--color-text-on-fill);\n}\n.lintje-video-player__big-play.lintje-button { width: 64px; height: 64px; padding: 0; }\n.lintje-video-player__big-play.lintje-button.is-disabled {\n border-color: var(--color-text-on-fill);\n}\n\n/* A failed load says so where the picture would be: the announcement's light fill would float. */\n.lintje-video-player__failed {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--space-3);\n padding: 0 var(--space-6);\n text-align: center;\n color: var(--color-text-on-fill);\n}\n.lintje-video-player__failed-mark {\n width: var(--space-6);\n height: var(--space-6);\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--color-error);\n color: var(--color-text-inverse);\n}\n.lintje-video-player__failed-text { margin: 0; font: var(--text-ui); font-weight: 700; }\n\n.lintje-video-player__caption {\n position: absolute;\n left: var(--space-4);\n right: var(--space-4);\n bottom: var(--space-4);\n text-align: center;\n pointer-events: none;\n}\n.lintje-video-player__caption-text {\n padding: 2px var(--space-2);\n background: var(--color-text-on-light-fill);\n color: var(--color-text-on-fill);\n font: var(--text-body);\n box-decoration-break: clone;\n -webkit-box-decoration-break: clone;\n}\n\n/* Two lines at every width: the time beside the bar keeps the buttons on one line in a tile. */\n.lintje-video-player__controls {\n display: flex;\n flex-direction: column;\n gap: var(--space-2);\n padding: var(--space-3) var(--space-3) var(--space-2);\n}\n.lintje-video-player__timeline { display: flex; align-items: center; gap: var(--space-3); }\n.lintje-video-player__buttons { display: flex; align-items: center; gap: var(--space-1); }\n.lintje-video-player__speed {\n flex: none;\n padding: 0 var(--space-1);\n background: var(--color-term-bg);\n color: var(--color-accent-text);\n font: var(--text-small);\n font-weight: 700;\n font-variant-numeric: tabular-nums;\n}\n/* The menu's trigger takes the 48 px of the player's other buttons. */\n.lintje-video-player__more { margin-left: auto; --h-icon-button: var(--h-touch); }\n\n.lintje-video-player:fullscreen { display: flex; flex-direction: column; border: 0; }\n.lintje-video-player:fullscreen .lintje-video-player__stage {\n flex: 1 1 auto;\n min-height: 0;\n aspect-ratio: auto;\n}\n\n@media (max-width: 767px) {\n .lintje-video-player { border-left: 0; border-right: 0; }\n}\n\n/* Forced colours drop the fills: the speed and the mark keep an outline. */\n@media (forced-colors: active) {\n .lintje-video-player__speed,\n .lintje-video-player__failed-mark { outline: 1px solid CanvasText; }\n}\n", h = "ondertiteling", g = "audiodescriptie";
|
|
6
|
+
var m = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-video-player {\n border: 1px solid var(--color-border-default);\n background: var(--color-bg-surface);\n color: var(--color-text-primary);\n}\n\n/* No surface token stays black in dark, so the surface takes the ink on a light fill. */\n.lintje-video-player__stage {\n position: relative;\n aspect-ratio: 16 / 9;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--color-text-on-light-fill);\n overflow: hidden;\n}\n.lintje-video-player__video {\n position: absolute;\n inset: 0;\n width: 100%;\n height: 100%;\n object-fit: contain;\n background: var(--color-text-on-light-fill);\n}\n\n/* What stands on the picture has a white edge, so the fill keeps apart from the dark. */\n.lintje-video-player__big-play.lintje-button,\n.lintje-video-player__retry.lintje-button {\n position: relative;\n border: 2px solid var(--color-text-on-fill);\n}\n.lintje-video-player__big-play.lintje-button { width: 64px; height: 64px; padding: 0; }\n.lintje-video-player__big-play.lintje-button.is-disabled {\n border-color: var(--color-text-on-fill);\n}\n\n/* A failed load says so where the picture would be: the announcement's light fill would float. */\n.lintje-video-player__failed {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: var(--space-3);\n padding: 0 var(--space-6);\n text-align: center;\n color: var(--color-text-on-fill);\n}\n.lintje-video-player__failed-mark {\n width: var(--space-6);\n height: var(--space-6);\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--color-error);\n color: var(--color-text-inverse);\n}\n.lintje-video-player__failed-text { margin: 0; font: var(--text-ui); font-weight: 700; }\n\n.lintje-video-player__caption {\n position: absolute;\n left: var(--space-4);\n right: var(--space-4);\n bottom: var(--space-4);\n text-align: center;\n pointer-events: none;\n}\n.lintje-video-player__caption-text {\n padding: 2px var(--space-2);\n background: var(--color-text-on-light-fill);\n color: var(--color-text-on-fill);\n font: var(--text-body);\n box-decoration-break: clone;\n -webkit-box-decoration-break: clone;\n}\n\n/* Two lines at every width: the time beside the bar keeps the buttons on one line in a tile. */\n.lintje-video-player__controls {\n display: flex;\n flex-direction: column;\n gap: var(--space-2);\n padding: var(--space-3) var(--space-3) var(--space-2);\n}\n.lintje-video-player__timeline { display: flex; align-items: center; gap: var(--space-3); }\n.lintje-video-player__buttons { display: flex; align-items: center; gap: var(--space-1); }\n.lintje-video-player__speed {\n flex: none;\n padding: 0 var(--space-1);\n background: var(--color-term-bg);\n color: var(--color-accent-text);\n font: var(--text-small);\n font-weight: 700;\n font-variant-numeric: tabular-nums;\n}\n/* The menu's trigger takes the 48 px of the player's other buttons. */\n.lintje-video-player__more { margin-left: auto; --h-icon-button: var(--h-touch); }\n\n.lintje-video-player:fullscreen { display: flex; flex-direction: column; border: 0; }\n.lintje-video-player:fullscreen .lintje-video-player__stage {\n flex: 1 1 auto;\n min-height: 0;\n aspect-ratio: auto;\n}\n\n@media screen and (max-width: 767px) {\n .lintje-video-player { border-left: 0; border-right: 0; }\n}\n\n/* Forced colours drop the fills: the speed and the mark keep an outline. */\n@media (forced-colors: active) {\n .lintje-video-player__speed,\n .lintje-video-player__failed-mark { outline: 1px solid CanvasText; }\n}\n", h = "ondertiteling", g = "audiodescriptie";
|
|
7
7
|
function _(e, t) {
|
|
8
8
|
return e.key.toLowerCase() !== t || e.ctrlKey || e.metaKey || e.altKey ? !1 : !e.composedPath().some((e) => ["INPUT", "TEXTAREA"].includes(e.tagName ?? ""));
|
|
9
9
|
}
|
|
@@ -20,11 +20,11 @@ var v = class extends f {
|
|
|
20
20
|
}
|
|
21
21
|
static {
|
|
22
22
|
this.styles = [
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
i,
|
|
24
|
+
n(o),
|
|
25
|
+
n(e),
|
|
26
|
+
n(p),
|
|
27
|
+
n(m)
|
|
28
28
|
];
|
|
29
29
|
}
|
|
30
30
|
static {
|
|
@@ -109,9 +109,9 @@ var v = class extends f {
|
|
|
109
109
|
_(e, "f") ? (e.preventDefault(), this.toggleFullscreen()) : _(e, "c") ? (e.preventDefault(), this.captions = !this.captions) : this.onGroupKeydown(e);
|
|
110
110
|
}
|
|
111
111
|
renderFailed() {
|
|
112
|
-
return
|
|
112
|
+
return a`<div class="lintje-video-player__failed" role="alert">
|
|
113
113
|
<span class="lintje-video-player__failed-mark"
|
|
114
|
-
>${
|
|
114
|
+
>${c("functioneel-waarschuwing", { size: 14 })}</span
|
|
115
115
|
>
|
|
116
116
|
<p class="lintje-video-player__failed-text">De video kan niet worden geladen.</p>
|
|
117
117
|
<button
|
|
@@ -119,16 +119,16 @@ var v = class extends f {
|
|
|
119
119
|
class="lintje-button lintje-button--primary lintje-video-player__retry"
|
|
120
120
|
@click=${this.onRetry}
|
|
121
121
|
>
|
|
122
|
-
${
|
|
122
|
+
${c("functioneel-refresh", { size: 20 })}
|
|
123
123
|
<span class="lintje-button__label">Opnieuw proberen</span>
|
|
124
124
|
</button>
|
|
125
125
|
</div>`;
|
|
126
126
|
}
|
|
127
127
|
renderOverlay() {
|
|
128
128
|
if (this.failed) return this.renderFailed();
|
|
129
|
-
if (this.waiting) return
|
|
129
|
+
if (this.waiting) return a`<button
|
|
130
130
|
type="button"
|
|
131
|
-
class=${
|
|
131
|
+
class=${s({
|
|
132
132
|
"lintje-button": !0,
|
|
133
133
|
"lintje-button--primary": !0,
|
|
134
134
|
"lintje-video-player__big-play": !0,
|
|
@@ -136,24 +136,24 @@ var v = class extends f {
|
|
|
136
136
|
})}
|
|
137
137
|
aria-label="Afspelen"
|
|
138
138
|
title="Afspelen"
|
|
139
|
-
aria-disabled=${this.ready ?
|
|
139
|
+
aria-disabled=${this.ready ? r : "true"}
|
|
140
140
|
@click=${this.onBigPlay}
|
|
141
141
|
>
|
|
142
|
-
${
|
|
142
|
+
${c("multimedia-player-afspelen", { size: 28 })}
|
|
143
143
|
</button>`;
|
|
144
144
|
let e = this.captions ? this.caption : "";
|
|
145
|
-
return e ?
|
|
145
|
+
return e ? a`<div class="lintje-video-player__caption">
|
|
146
146
|
<span class="lintje-video-player__caption-text">${e}</span>
|
|
147
|
-
</div>` :
|
|
147
|
+
</div>` : r;
|
|
148
148
|
}
|
|
149
149
|
renderStage() {
|
|
150
|
-
return
|
|
150
|
+
return a`<div class="lintje-video-player__stage">
|
|
151
151
|
<video
|
|
152
152
|
class="lintje-video-player__video"
|
|
153
153
|
preload="metadata"
|
|
154
154
|
playsinline
|
|
155
155
|
.muted=${this.muted}
|
|
156
|
-
src=${this.source ||
|
|
156
|
+
src=${this.source || r}
|
|
157
157
|
@click=${() => this.toggle()}
|
|
158
158
|
></video>
|
|
159
159
|
${this.renderOverlay()}
|
|
@@ -166,12 +166,12 @@ var v = class extends f {
|
|
|
166
166
|
});
|
|
167
167
|
}
|
|
168
168
|
render() {
|
|
169
|
-
return
|
|
169
|
+
return a`<div class="lintje-video-player" role="group" aria-label=${this.name || "Video"} @keydown=${this.onKeydown}>
|
|
170
170
|
${this.renderStage()}
|
|
171
171
|
<div class="lintje-video-player__controls">
|
|
172
172
|
<div class="lintje-video-player__timeline">
|
|
173
173
|
${this.renderBar()} ${this.renderTime(!0)}
|
|
174
|
-
${this.speed === 1 ?
|
|
174
|
+
${this.speed === 1 ? r : a`<span class="lintje-video-player__speed">${d(this.speed)}</span>`}
|
|
175
175
|
</div>
|
|
176
176
|
<div class="lintje-video-player__buttons">
|
|
177
177
|
${this.renderPlay()} ${this.renderMute()}
|
package/dist-elements/tokens.css
CHANGED
|
@@ -439,6 +439,7 @@
|
|
|
439
439
|
--dur-badge: 300ms; /* @kind other */
|
|
440
440
|
--dur-draw: 900ms; /* @kind other */
|
|
441
441
|
--dur-data-label: 300ms; /* @kind other */
|
|
442
|
+
--dur-layer: 400ms; /* @kind other */
|
|
442
443
|
--dur-skeleton: 1200ms; /* @kind other */
|
|
443
444
|
--dur-wave: 600ms; /* @kind other */
|
|
444
445
|
|
|
@@ -742,108 +743,111 @@
|
|
|
742
743
|
re-points the layer-2/3 names whose meaning changes; everything that merely follows a
|
|
743
744
|
neutral is absent on purpose. Page and tiles are both #282828, the border separates them: the
|
|
744
745
|
step below is the menu's, so it stays a band beside the page and under the logo bar.
|
|
746
|
+
Screen only: paper is always light, whatever the reader chose.
|
|
745
747
|
========================================================================= */
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
748
|
+
@media screen {
|
|
749
|
+
[data-mode='dark'] {
|
|
750
|
+
--neutral-0: #282828;
|
|
751
|
+
--neutral-1: #1D1D1D;
|
|
752
|
+
--neutral-2: #333333;
|
|
753
|
+
--neutral-3: #4A4A4A;
|
|
754
|
+
--neutral-4: #7A7A7A;
|
|
755
|
+
--neutral-5: #B0B0B0;
|
|
756
|
+
--neutral-6: #FFFFFF;
|
|
757
|
+
|
|
758
|
+
/* The hover goes UP in dark: the light mix would put a near-black fill on the near-black page. */
|
|
759
|
+
--primary-hover: color-mix(in srgb, var(--primary), white 12%);
|
|
760
|
+
|
|
761
|
+
--color-bg-page: var(--neutral-0);
|
|
762
|
+
--color-bg-title: var(--neutral-0);
|
|
763
|
+
/* The hero's wash sits halfway between the menu (L 0.231) and the page (L 0.277), below the
|
|
764
|
+
page as in light: a panel or tab on it is lighter than its ground. */
|
|
765
|
+
--primary-wash: oklch(from var(--primary) 0.254 min(c, 0.02) h);
|
|
766
|
+
|
|
767
|
+
/* The filter zone must read as a band, so in dark it steps UP to neutral-2 (neutral-1 turned
|
|
768
|
+
the fields in it into light boxes). `--color-bg-inset` keeps neutral-1: "sunken". */
|
|
769
|
+
--color-bg-filter: var(--neutral-2);
|
|
770
|
+
--color-bg-inset: var(--neutral-1);
|
|
771
|
+
|
|
772
|
+
--color-text-inverse: var(--neutral-1);
|
|
773
|
+
|
|
774
|
+
/* Colour that must read by itself on #282828 becomes the tint; a FILL keeps the primary. */
|
|
775
|
+
--color-action-primary-border: var(--primary-tint);
|
|
776
|
+
--color-action-secondary-border: var(--primary-tint);
|
|
777
|
+
/* Danger hover: 8 % white is the most that keeps white text at 4.5:1 (4.56:1). The border and
|
|
778
|
+
the word lift the red as the primary's tints do, to 3:1 on #282828 and 4.5:1 on #333333,
|
|
779
|
+
the hover surface; the word's chroma cap keeps it inside sRGB. */
|
|
780
|
+
--color-action-danger-hover: color-mix(in srgb, var(--status-error), white 8%);
|
|
781
|
+
--color-action-danger-border: oklch(from var(--status-error) max(l, 0.58) c h);
|
|
782
|
+
--color-action-danger-text: oklch(from var(--status-error) max(l, 0.71) min(c, 0.18) h);
|
|
783
|
+
/* A status mark at 3:1 on its own tint. */
|
|
784
|
+
--color-attention-line: var(--status-attention);
|
|
785
|
+
--color-error-line: oklch(from var(--status-error) max(l, 0.6) c h);
|
|
786
|
+
--color-info-line: oklch(from var(--status-info) max(l, 0.58) c h);
|
|
787
|
+
--color-success-line: oklch(from var(--status-success) max(l, 0.57) c h);
|
|
788
|
+
/* A status word at 4.5:1 on #333333, lifted as the danger word is. */
|
|
789
|
+
--color-error-text: oklch(from var(--status-error) max(l, 0.71) min(c, 0.18) h);
|
|
790
|
+
--color-success-text: oklch(from var(--status-success) max(l, 0.68) min(c, 0.18) h);
|
|
791
|
+
/* A link is text: the text tint, not the line tint. The hover stays white. */
|
|
792
|
+
--color-link: var(--primary-tint-text);
|
|
793
|
+
--color-link-hover: var(--neutral-6);
|
|
794
|
+
--color-link-on-status: var(--neutral-6);
|
|
795
|
+
--color-accent-line: var(--primary-tint);
|
|
796
|
+
--color-accent-text: var(--primary-tint-text);
|
|
797
|
+
|
|
798
|
+
/* Lintblauw has too little contrast on the dark surface; the house style lightens it. */
|
|
799
|
+
--color-logo-ribbon: var(--ribbon-blue-dark);
|
|
800
|
+
|
|
801
|
+
/* The menu is neutral in dark: near-black, in the rail and in the bar alike, so in the top
|
|
802
|
+
layout it stays its own band under the logo bar. Hover and active are one step up, as they
|
|
803
|
+
are one fill in light; the edge is the text tint, as the line tint is 3:1 on neutral-0 only. */
|
|
804
|
+
--color-nav-bg: var(--neutral-1);
|
|
805
|
+
--color-nav-text: var(--neutral-6);
|
|
806
|
+
--color-nav-text-sub: var(--neutral-5);
|
|
807
|
+
--color-nav-hover: var(--neutral-2);
|
|
808
|
+
--color-nav-active: var(--neutral-2);
|
|
809
|
+
--color-nav-active-edge: var(--primary-tint-text);
|
|
810
|
+
--color-navbar-hover: var(--neutral-2);
|
|
811
|
+
--color-navbar-active: var(--neutral-2);
|
|
812
|
+
--color-navbar-active-edge: var(--primary-tint-text);
|
|
813
|
+
/* The open entry's word stands on the panel's surface: full text contrast, not the tint. */
|
|
814
|
+
--color-navbar-open-text: var(--color-text-primary);
|
|
815
|
+
/* The label is 16 px text: the tint is 3.0:1 and needs 4.5:1. The edge keeps the tint. */
|
|
816
|
+
--color-nav-active-text: var(--neutral-6);
|
|
817
|
+
/* The sheet is told from the page by its shadow and this quiet line; 1.66:1 is accepted here. */
|
|
818
|
+
--color-border-popover: var(--neutral-3);
|
|
819
|
+
--color-nav-line: var(--neutral-2);
|
|
820
|
+
--color-nav-disabled: var(--neutral-4);
|
|
821
|
+
/* The menu is neutral here, so its ring is the orange of every other surface. */
|
|
822
|
+
--color-focus-on-theme: var(--color-focus);
|
|
823
|
+
/* The choice edge keeps neutral-4 in dark: it already reaches 3:1 there (3.43:1 on #282828). */
|
|
824
|
+
--color-border-choice: var(--neutral-4);
|
|
825
|
+
|
|
826
|
+
/* A term's box is the subtle surface: behind a word on #282828 the dark wash would be a hole. */
|
|
827
|
+
--color-term-bg: var(--neutral-2);
|
|
828
|
+
--color-choice-active-bg: var(--neutral-2);
|
|
829
|
+
--color-hero-focus: var(--color-focus);
|
|
830
|
+
--color-term-line: var(--primary-tint-text);
|
|
831
|
+
|
|
832
|
+
/* Yellow as text works on the dark surface, so the dark gold is not needed. */
|
|
833
|
+
--color-chart-dark-yellow-text: var(--data-dark-yellow);
|
|
834
|
+
--color-map-water: var(--neutral-1);
|
|
835
|
+
|
|
836
|
+
--shadow-sticky: 0 2px 6px var(--alpha-black-40);
|
|
837
|
+
--shadow-popover: 0 4px 16px var(--alpha-black-55);
|
|
838
|
+
--shadow-nav: 2px 0 8px var(--alpha-black-40);
|
|
839
|
+
--shadow-chart-hover: 0 1px 4px var(--alpha-black-60);
|
|
840
|
+
--shadow-scroll-start: inset 12px 0 10px -10px var(--alpha-black-60);
|
|
841
|
+
--shadow-scroll-end: inset -12px 0 10px -10px var(--alpha-black-60);
|
|
842
|
+
--color-overlay-nav: var(--alpha-black-40);
|
|
843
|
+
}
|
|
840
844
|
}
|
|
841
845
|
|
|
842
846
|
/* ============================================================================
|
|
843
847
|
Below 768 px the gutter follows the page padding and every pointer target is the touch
|
|
844
|
-
floor.
|
|
848
|
+
floor. Screen only: a portrait page is narrower than 768 px and keeps the desktop form.
|
|
845
849
|
========================================================================= */
|
|
846
|
-
@media (max-width: 767px) {
|
|
850
|
+
@media screen and (max-width: 767px) {
|
|
847
851
|
:root {
|
|
848
852
|
--grid-gutter: 16px;
|
|
849
853
|
--h-target: var(--h-touch);
|
|
@@ -852,3 +856,23 @@
|
|
|
852
856
|
--w-ribbon: 2.5rem;
|
|
853
857
|
}
|
|
854
858
|
}
|
|
859
|
+
|
|
860
|
+
/* ============================================================================
|
|
861
|
+
Paper — white under the content, since Lintje prints its own fills
|
|
862
|
+
(`print-color-adjust: exact` in base.css): a band in the page's grey would cost ink and
|
|
863
|
+
say nothing.
|
|
864
|
+
========================================================================= */
|
|
865
|
+
@media print {
|
|
866
|
+
:root {
|
|
867
|
+
/* The paper's margin is the page's edge: bars and content start at it, aligned. */
|
|
868
|
+
--page-pad-x: 0px;
|
|
869
|
+
--color-bg-page: var(--neutral-0);
|
|
870
|
+
--color-bg-title: var(--neutral-0);
|
|
871
|
+
--color-bg-filter: var(--neutral-0);
|
|
872
|
+
}
|
|
873
|
+
}
|
|
874
|
+
|
|
875
|
+
/* The sheet's own margin, so the content never runs to the paper's edge: room for the browser's
|
|
876
|
+
date, address and page number above and below, and a portrait sheet still wide enough for the
|
|
877
|
+
tablet's form. A custom property does not reach `@page`, so the value stands here. */
|
|
878
|
+
@page { margin: 15mm 12mm; }
|
|
@@ -3,6 +3,7 @@ import '../components/feedback/announcement/announcement.js';
|
|
|
3
3
|
import '../components/feedback/toast/toast.js';
|
|
4
4
|
import '../components/feedback/conflict-alert/conflict-alert.js';
|
|
5
5
|
import '../components/feedback/empty-state/empty-state.js';
|
|
6
|
+
import '../components/feedback/error-page/error-page.js';
|
|
6
7
|
import '../primitives/badge/badge.js';
|
|
7
8
|
import '../primitives/status-dot/status-dot.js';
|
|
8
9
|
import '../primitives/spinner/spinner.js';
|
|
@@ -8,5 +8,3 @@ import '../components/frame/footer/footer.js';
|
|
|
8
8
|
import '../components/frame/user-menu/user-menu.js';
|
|
9
9
|
import '../components/frame/app-search/app-search.js';
|
|
10
10
|
import '../components/frame/notifications/notifications.js';
|
|
11
|
-
import '../components/frame/shortcuts/shortcuts.js';
|
|
12
|
-
import '../components/frame/session-expiry/session-expiry.js';
|
|
@@ -8,6 +8,7 @@ import '../components/inputs/combobox/combobox.js';
|
|
|
8
8
|
import '../components/inputs/multiselect/multiselect.js';
|
|
9
9
|
import '../components/inputs/tag-input/tag-input.js';
|
|
10
10
|
import '../components/inputs/checkbox/checkbox.js';
|
|
11
|
+
import '../components/inputs/checkbox-group/checkbox-group.js';
|
|
11
12
|
import '../components/inputs/radio-group/radio-group.js';
|
|
12
13
|
import '../components/inputs/toggle/toggle.js';
|
|
13
14
|
import '../components/inputs/segmented/segmented.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/** The overlays category (Vensters en panelen): importing it defines its tags. */
|
|
2
2
|
import '../components/overlays/modal/modal.js';
|
|
3
|
-
import '../components/overlays/
|
|
3
|
+
import '../components/overlays/dialog/dialog.js';
|
|
4
4
|
import '../components/overlays/drawer/drawer.js';
|
|
5
5
|
import '../primitives/popover/popover.js';
|
|
6
6
|
import '../primitives/tooltip/tooltip.js';
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `<lintje-copy-button>` — text to the clipboard,
|
|
2
|
+
* `<lintje-copy-button>` — a button that copies text to the clipboard, and confirms it.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* empties the status first so a screen reader hears it again.
|
|
4
|
+
* It copies `text`, or the text of the element named in `for`, read on press. With nothing to
|
|
5
|
+
* copy it is disabled; a `for` target that appears later enables it.
|
|
7
6
|
*
|
|
8
|
-
* Events: `lintje-copy` (
|
|
9
|
-
*
|
|
7
|
+
* Events: `lintje-copy` `string` (the text copied), `lintje-copy-error` `string` (the browser
|
|
8
|
+
* refused).
|
|
10
9
|
*/
|
|
11
10
|
import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
|
|
12
11
|
import { LintjeElement } from '../../../core/element.js';
|
|
@@ -14,7 +13,7 @@ import '../../../primitives/button/button.js';
|
|
|
14
13
|
import '../../../primitives/icon-button/icon-button.js';
|
|
15
14
|
import '../../feedback/toast/toast.js';
|
|
16
15
|
export declare class LintjeCopyButton extends LintjeElement {
|
|
17
|
-
static styles: import("lit").CSSResult;
|
|
16
|
+
static styles: import("lit").CSSResult[];
|
|
18
17
|
static properties: PropertyDeclarations;
|
|
19
18
|
/** The string to copy. */
|
|
20
19
|
text?: string;
|
|
@@ -1,20 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `<lintje-menu-button>` — a button with a menu of actions.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* in the popover's shadow root. A disabled trigger is `aria-disabled`: it stays in the tab order
|
|
7
|
-
* and refuses to open. Keys reach disabled rows too, so their `reason` tooltip shows on focus.
|
|
8
|
-
* While `busyLabel` is set the trigger is disabled and the sentence stands beside it with a
|
|
9
|
-
* spinner; the `role="status"` is always present so the sentence is read out when it appears.
|
|
4
|
+
* A disabled trigger stays in the tab order and refuses to open. The keys reach disabled rows
|
|
5
|
+
* too, so their `reason` tooltip shows on focus.
|
|
10
6
|
*
|
|
11
|
-
* `
|
|
12
|
-
*
|
|
13
|
-
* size and colours: only its icon turns into the spinner, and the sentence is for the screen
|
|
14
|
-
* reader.
|
|
15
|
-
*
|
|
16
|
-
* Events: `lintje-action` (the row's value, or `action` from a split button's own half),
|
|
17
|
-
* `lintje-navigate` `{ href }` for a link row.
|
|
7
|
+
* Events: `lintje-action` `string` (the row's value, or `action` from a split button's own half),
|
|
8
|
+
* `lintje-navigate` `{ href }` (a link row).
|
|
18
9
|
*/
|
|
19
10
|
import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
|
|
20
11
|
import { LintjeElement } from '../../../core/element.js';
|
|
@@ -79,13 +70,20 @@ export declare class LintjeMenuButton extends LintjeElement {
|
|
|
79
70
|
/** An icon file name before the label, saying what the label is a value of (the speed's "1×"). */
|
|
80
71
|
leadingIcon: string;
|
|
81
72
|
disabled: boolean;
|
|
82
|
-
/**
|
|
73
|
+
/**
|
|
74
|
+
* An action is under way: the trigger is disabled and this sentence stands beside the spinner,
|
|
75
|
+
* read out when it appears. A split button keeps its size and colours: only its icon turns into
|
|
76
|
+
* the spinner, and the sentence is for the screen reader. Empty when none is.
|
|
77
|
+
*/
|
|
83
78
|
busyLabel: string;
|
|
84
79
|
placement: 'bottom-start' | 'bottom-end' | 'top-end';
|
|
85
80
|
items: MenuEntry[];
|
|
86
81
|
/** Reflected, so a sheet around it can see a menu is open and leave Escape to it. */
|
|
87
82
|
open: boolean;
|
|
88
|
-
/**
|
|
83
|
+
/**
|
|
84
|
+
* Two halves of one button, 1 px apart: the label does the usual action (`action`), the arrow
|
|
85
|
+
* beside it opens the other ways to do it.
|
|
86
|
+
*/
|
|
89
87
|
split: boolean;
|
|
90
88
|
/** What a split button's own half sends as `lintje-action`. */
|
|
91
89
|
action: string;
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `<lintje-qr-code>` — a QR code a phone camera reads, with a button that copies it as an
|
|
3
|
-
* image.
|
|
2
|
+
* `<lintje-qr-code>` — a QR code a phone camera reads, with a button that copies it as an image.
|
|
4
3
|
*
|
|
5
|
-
* The
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* not read an inverted code.
|
|
4
|
+
* The element makes the code from `value`, or shows the host's own image in `src`. The code stands
|
|
5
|
+
* on a light quiet zone in every mode and theme, because many camera apps do not read an inverted
|
|
6
|
+
* code.
|
|
9
7
|
*
|
|
10
|
-
* Events: `lintje-copy`
|
|
11
|
-
* browser refused.
|
|
8
|
+
* Events: `lintje-copy` (the image is on the clipboard), `lintje-copy-error` (the browser refused).
|
|
12
9
|
*/
|
|
13
10
|
import { type PropertyDeclarations, type TemplateResult } from 'lit';
|
|
14
11
|
import { LintjeElement } from '../../../core/element.js';
|
|
@@ -19,7 +16,10 @@ export declare function codeImage(text: string, colour: string): string;
|
|
|
19
16
|
export declare class LintjeQrCode extends LintjeElement {
|
|
20
17
|
static styles: import("lit").CSSResult;
|
|
21
18
|
static properties: PropertyDeclarations;
|
|
22
|
-
/**
|
|
19
|
+
/**
|
|
20
|
+
* URL or data URI of an image of the code the host made: only the dark modules, without a
|
|
21
|
+
* margin. It goes before `value`.
|
|
22
|
+
*/
|
|
23
23
|
src: string;
|
|
24
24
|
/** The text the code holds, usually a link: the element makes the code. */
|
|
25
25
|
value: string;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `<lintje-chart>` — a chart in its tile, with loading, empty and error states.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
4
|
+
* Expand and download are handled here. The table view is the element's own state, built from the
|
|
5
|
+
* CSV rows; it never reaches the URL.
|
|
6
6
|
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
7
|
+
* Events: `lintje-mark-select` `{ id, label, href }` (a mark with an `href` was clicked;
|
|
8
|
+
* deselected, `{ id: null, label: null, href: data.clearHref }`).
|
|
9
9
|
*/
|
|
10
10
|
import { nothing, type PropertyDeclarations, type TemplateResult } from 'lit';
|
|
11
11
|
import { type FrameSettings } from '../../../core/element.js';
|
|
@@ -32,6 +32,7 @@ export declare class LintjeChart extends LintjeContentTileElement {
|
|
|
32
32
|
private png;
|
|
33
33
|
protected expandChanged(open: boolean): void;
|
|
34
34
|
protected render(): TemplateResult | typeof nothing;
|
|
35
|
+
/** The drawing, or the skeleton in its shape for the tile's `loading` slot; empty and error are the tile's. */
|
|
35
36
|
private content;
|
|
36
37
|
/** Header actions from 768 px; below that a row of its own in the `notice` slot. */
|
|
37
38
|
private viewSwitch;
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `<lintje-kpi>` — the KPI tile: one figure, or several of the same variable (`items`).
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
* dashed; the trend or note says in words how the figure stands to the target. Events: none.
|
|
2
|
+
* `<lintje-kpi>` — the KPI tile: one figure, or several of the same variable (`items`).
|
|
3
|
+
*
|
|
4
|
+
* The value counts up from zero and the sparkline draws in once 35 % of the tile is in view; under
|
|
5
|
+
* `prefers-reduced-motion` both stand at once.
|
|
7
6
|
*/
|
|
8
7
|
import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
|
|
9
8
|
import { LintjeGridItemElement } from '../../../primitives/shared/grid-item-element.js';
|
|
10
9
|
import '../../../primitives/status-dot/status-dot.js';
|
|
11
10
|
import '../../../primitives/skeleton/skeleton.js';
|
|
12
|
-
import type { KpiGauge, KpiItem, KpiSparkline,
|
|
11
|
+
import type { KpiGauge, KpiItem, KpiSparkline, ContentStateKind, KpiTrend, KpiVariable } from '../../../types.js';
|
|
13
12
|
type Point = [number, number];
|
|
14
13
|
/** The points of each unbroken run of values: a `null` ends a run (rule 15). */
|
|
15
14
|
export declare function sparklineRuns(values: (number | null)[], width: number, height: number): Point[][];
|
|
@@ -34,14 +33,21 @@ export declare class LintjeKpi extends LintjeGridItemElement {
|
|
|
34
33
|
trend?: KpiTrend;
|
|
35
34
|
/** The figure's recent values as a line with its area, under the figure. */
|
|
36
35
|
sparkline?: KpiSparkline;
|
|
37
|
-
/**
|
|
36
|
+
/**
|
|
37
|
+
* The single figure on its scale, as a half circle (`arc`) or a bar (`linear`), the target
|
|
38
|
+
* dashed; not with `items`. The trend or note says in words how the figure stands to the target.
|
|
39
|
+
*/
|
|
38
40
|
gauge?: KpiGauge;
|
|
39
41
|
/** A line without an arrow, for when there is no direction. */
|
|
40
42
|
note?: string;
|
|
41
43
|
detail?: string;
|
|
42
44
|
/** A data colour's name (`DataColor`); `coverage` is the gray one. */
|
|
43
45
|
variable: KpiVariable;
|
|
44
|
-
state:
|
|
46
|
+
state: ContentStateKind;
|
|
47
|
+
/** Explains an empty or failed result instead of the default message. */
|
|
48
|
+
message?: string;
|
|
49
|
+
/** The last known value and its date, shown below a failed result. */
|
|
50
|
+
lastKnown?: string;
|
|
45
51
|
index: number;
|
|
46
52
|
counting: (string | null)[];
|
|
47
53
|
/** The sparkline draws in once the tile is in view, like the count. */
|
|
@@ -55,6 +61,8 @@ export declare class LintjeKpi extends LintjeGridItemElement {
|
|
|
55
61
|
private get reduced();
|
|
56
62
|
connectedCallback(): void;
|
|
57
63
|
disconnectedCallback(): void;
|
|
64
|
+
/** Paper shows the value, never a figure halfway or the zero it counts up from. */
|
|
65
|
+
private finishCount;
|
|
58
66
|
/** Measures the sparkline's box; the svg takes that size instead of stretching into it. */
|
|
59
67
|
private observeSparkline;
|
|
60
68
|
protected willUpdate(changed: PropertyValues<this>): void;
|
|
@@ -1,10 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `<lintje-kpi-row>` — the KPI row: one grid, the KPIs staggered in from left to right.
|
|
3
|
-
*
|
|
4
|
-
* The grid and the KPIs share one shadow root, so `kpi-row.css` reaches the `<lintje-kpi>` hosts.
|
|
5
|
-
* `dividers` is set as a property: a boolean attribute can't turn off a `true` default.
|
|
6
|
-
* Events: none.
|
|
7
|
-
*/
|
|
1
|
+
/** `<lintje-kpi-row>` — the KPI row: one grid, the KPIs staggered in from left to right. */
|
|
8
2
|
import { type PropertyDeclarations, type TemplateResult } from 'lit';
|
|
9
3
|
import { type FrameSettings } from '../../../core/element.js';
|
|
10
4
|
import { LintjeGridItemElement } from '../../../primitives/shared/grid-item-element.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** `<lintje-note>` — the analyst's note ("Toelichting analist").
|
|
1
|
+
/** `<lintje-note>` — the analyst's note ("Toelichting analist"). */
|
|
2
2
|
import { nothing, type PropertyDeclarations, type TemplateResult } from 'lit';
|
|
3
3
|
import { type FrameSettings } from '../../../core/element.js';
|
|
4
4
|
import { LintjeGridItemElement } from '../../../primitives/shared/grid-item-element.js';
|