lintje 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist-elements/actions.js +1 -1
- package/dist-elements/chunks/{base-Bg-IFOPG.js → base-DRGvkF-r.js} +484 -309
- package/dist-elements/chunks/{controls-B1455oPG.js → controls-_4ac1Lpz.js} +7 -1
- package/dist-elements/chunks/{date-format-mHtZyBys.js → date-format-DxP9yfDp.js} +1 -1
- package/dist-elements/chunks/dialog-B7aRBtjy.js +28 -0
- package/dist-elements/chunks/{disclosure-BXTX04gM.js → disclosure-D39vAR5q.js} +1 -1
- package/dist-elements/chunks/{disclosure-CMXhX-Vb.js → disclosure-DirPLy2E.js} +6 -6
- package/dist-elements/chunks/download-C68kcwPj.js +206 -0
- package/dist-elements/chunks/{focus-trap-9BnE-xWv.js → focus-trap-Dv8zu64A.js} +1 -1
- package/dist-elements/chunks/input-BGMLam-O.js +195 -0
- package/dist-elements/chunks/input-lQTmOMOz.js +4 -0
- package/dist-elements/chunks/{player-DXOZEyEy.js → player-BApadXr8.js} +27 -27
- package/dist-elements/chunks/{sentence-BI3lwEuT.js → sentence-0wO85ZdJ.js} +3 -3
- package/dist-elements/chunks/{stagger-qGD3wmhg.js → stagger-BB_gcxBI.js} +88 -74
- package/dist-elements/content.js +1 -0
- package/dist-elements/core.js +1 -1
- package/dist-elements/custom-elements.json +8858 -7715
- package/dist-elements/data-types.json +6900 -0
- package/dist-elements/feedback.js +2 -1
- package/dist-elements/frame.js +0 -2
- package/dist-elements/guides/dashboard.md +8 -0
- package/dist-elements/guides/events.md +4 -5
- package/dist-elements/guides/loading.md +10 -9
- package/dist-elements/guides/page-contents.md +110 -0
- package/dist-elements/guides/start.md +12 -0
- package/dist-elements/inputs.js +3 -1
- package/dist-elements/layout.js +1 -1
- package/dist-elements/lintje.js +8562 -7138
- package/dist-elements/overlays.js +2 -2
- package/dist-elements/skills/lintje/SKILL.md +1 -1
- package/dist-elements/tables.js +1 -1
- package/dist-elements/tag/activity-log.js +15 -15
- package/dist-elements/tag/ai-label.js +10 -10
- package/dist-elements/tag/announcement.js +36 -76
- package/dist-elements/tag/app-search.js +49 -49
- package/dist-elements/tag/audio-player.js +57 -57
- package/dist-elements/tag/badge.d.ts +1 -1
- package/dist-elements/tag/badge.js +1 -1
- package/dist-elements/tag/breadcrumbs.js +15 -15
- package/dist-elements/tag/button.d.ts +1 -1
- package/dist-elements/tag/button.js +1 -1
- package/dist-elements/tag/card-list.js +12 -12
- package/dist-elements/tag/card.js +39 -44
- package/dist-elements/tag/chart.js +1357 -787
- package/dist-elements/tag/chat-answer.js +49 -49
- package/dist-elements/tag/chat-composer.js +75 -71
- package/dist-elements/tag/chat-message.js +8 -8
- package/dist-elements/tag/chat-strip.js +22 -22
- package/dist-elements/tag/chat-suggestions.js +12 -12
- package/dist-elements/tag/chat.js +56 -56
- package/dist-elements/tag/checkbox-group.d.ts +1 -0
- package/dist-elements/tag/checkbox-group.js +60 -0
- package/dist-elements/tag/checkbox.js +9 -8
- package/dist-elements/tag/code.js +9 -9
- package/dist-elements/tag/combobox.js +19 -18
- package/dist-elements/tag/conflict-alert.js +12 -12
- package/dist-elements/tag/copy-button.js +14 -14
- package/dist-elements/tag/data-table.js +880 -532
- package/dist-elements/tag/date-input.js +30 -29
- package/dist-elements/tag/date-range.js +39 -38
- package/dist-elements/tag/description-list.js +29 -32
- package/dist-elements/tag/dialog.d.ts +1 -0
- package/dist-elements/tag/dialog.js +144 -0
- package/dist-elements/tag/document-viewer.js +23 -23
- package/dist-elements/tag/drawer.js +28 -32
- package/dist-elements/tag/empty-state.js +19 -30
- package/dist-elements/tag/error-page.d.ts +1 -0
- package/dist-elements/tag/error-page.js +109 -0
- package/dist-elements/tag/error-summary.js +10 -10
- package/dist-elements/tag/expander.js +8 -8
- package/dist-elements/tag/explainer.js +11 -11
- package/dist-elements/tag/field.js +5 -5
- package/dist-elements/tag/file-upload.js +35 -34
- package/dist-elements/tag/filter-bar.js +56 -56
- package/dist-elements/tag/filter-sheet.js +11 -11
- package/dist-elements/tag/filter-zone.js +31 -31
- package/dist-elements/tag/find.d.ts +1 -0
- package/dist-elements/tag/find.js +128 -0
- package/dist-elements/tag/footer.js +21 -21
- package/dist-elements/tag/form-actions.js +29 -25
- package/dist-elements/tag/form-section.js +6 -6
- package/dist-elements/tag/form.js +12 -12
- package/dist-elements/tag/gallery.js +14 -14
- package/dist-elements/tag/grid-item.d.ts +1 -1
- package/dist-elements/tag/grid-item.js +1 -1
- package/dist-elements/tag/grid.d.ts +1 -1
- package/dist-elements/tag/grid.js +1 -1
- package/dist-elements/tag/hero.js +12 -12
- package/dist-elements/tag/highlight.js +5 -5
- package/dist-elements/tag/icon-button.d.ts +1 -1
- package/dist-elements/tag/icon-button.js +1 -1
- package/dist-elements/tag/icon.d.ts +1 -1
- package/dist-elements/tag/icon.js +1 -1
- package/dist-elements/tag/job-list.js +22 -44
- package/dist-elements/tag/kpi-row.js +12 -10
- package/dist-elements/tag/kpi.js +149 -140
- package/dist-elements/tag/level-meter.js +11 -11
- package/dist-elements/tag/list.js +55 -55
- package/dist-elements/tag/logo.js +30 -30
- package/dist-elements/tag/map.js +702 -671
- package/dist-elements/tag/menu-button.js +70 -69
- package/dist-elements/tag/modal.js +28 -37
- package/dist-elements/tag/multiselect.js +35 -34
- package/dist-elements/tag/note.js +5 -5
- package/dist-elements/tag/notifications.js +36 -36
- package/dist-elements/tag/number-input.js +13 -12
- package/dist-elements/tag/page-header.js +140 -37
- package/dist-elements/tag/pagination.js +54 -49
- package/dist-elements/tag/popover.d.ts +1 -1
- package/dist-elements/tag/popover.js +1 -1
- package/dist-elements/tag/progress-bar.d.ts +1 -1
- package/dist-elements/tag/progress-bar.js +1 -1
- package/dist-elements/tag/prose.js +6 -6
- package/dist-elements/tag/qr-code.js +7 -7
- package/dist-elements/tag/radio-group.js +13 -12
- package/dist-elements/tag/range.js +23 -22
- package/dist-elements/tag/recording-status.js +14 -14
- package/dist-elements/tag/repeater.js +10 -10
- package/dist-elements/tag/segmented.js +14 -13
- package/dist-elements/tag/select.js +11 -10
- package/dist-elements/tag/shell.js +356 -339
- package/dist-elements/tag/skeleton.d.ts +1 -1
- package/dist-elements/tag/skeleton.js +1 -1
- package/dist-elements/tag/slot-picker.js +16 -15
- package/dist-elements/tag/sortable-list.js +14 -14
- package/dist-elements/tag/spinner.d.ts +1 -1
- package/dist-elements/tag/spinner.js +1 -1
- package/dist-elements/tag/split-pane.js +12 -12
- package/dist-elements/tag/status-dot.d.ts +1 -1
- package/dist-elements/tag/status-dot.js +1 -1
- package/dist-elements/tag/stepper.js +21 -21
- package/dist-elements/tag/streaming-text.js +13 -13
- package/dist-elements/tag/sub-nav.js +39 -38
- package/dist-elements/tag/tabs.js +38 -38
- package/dist-elements/tag/tag-input.js +20 -19
- package/dist-elements/tag/text-editor.js +25 -24
- package/dist-elements/tag/text-input.js +15 -14
- package/dist-elements/tag/textarea.js +15 -14
- package/dist-elements/tag/tile.d.ts +1 -1
- package/dist-elements/tag/tile.js +1 -1
- package/dist-elements/tag/time-input.js +20 -19
- package/dist-elements/tag/toast.js +32 -23
- package/dist-elements/tag/toggle.js +9 -8
- package/dist-elements/tag/toggletip.js +27 -27
- package/dist-elements/tag/token-value.d.ts +1 -0
- package/dist-elements/tag/token-value.js +75 -0
- package/dist-elements/tag/tooltip.d.ts +1 -1
- package/dist-elements/tag/tooltip.js +1 -1
- package/dist-elements/tag/transcript.js +48 -48
- package/dist-elements/tag/translator.js +13 -13
- package/dist-elements/tag/tree-view.js +13 -13
- package/dist-elements/tag/user-menu.js +37 -37
- package/dist-elements/tag/video-player.js +21 -21
- package/dist-elements/tokens.css +120 -96
- package/dist-elements/tokens.json +1244 -0
- package/dist-elements/types/bundle/actions.d.ts +3 -3
- package/dist-elements/types/bundle/content.d.ts +1 -0
- package/dist-elements/types/bundle/feedback.d.ts +6 -5
- package/dist-elements/types/bundle/frame.d.ts +0 -2
- package/dist-elements/types/bundle/index.d.ts +0 -10
- package/dist-elements/types/bundle/inputs.d.ts +2 -0
- package/dist-elements/types/bundle/layout.d.ts +3 -3
- package/dist-elements/types/bundle/overlays.d.ts +3 -3
- package/dist-elements/types/categories.d.ts +4 -0
- package/dist-elements/types/{primitives → components/actions}/button/button.d.ts +13 -10
- package/dist-elements/types/components/actions/copy-button/copy-button.d.ts +8 -9
- package/dist-elements/types/{icons → components/actions}/icon/icon.d.ts +4 -5
- package/dist-elements/types/{primitives → components/actions}/icon-button/icon-button.d.ts +8 -6
- package/dist-elements/types/components/actions/menu-button/menu-button.d.ts +16 -18
- package/dist-elements/types/components/actions/qr-code/qr-code.d.ts +10 -10
- package/dist-elements/types/components/charts/chart/chart.d.ts +6 -5
- package/dist-elements/types/components/charts/explainer/explainer.d.ts +1 -1
- package/dist-elements/types/components/charts/kpi/kpi.d.ts +19 -11
- package/dist-elements/types/components/charts/kpi-row/kpi-row.d.ts +2 -8
- package/dist-elements/types/components/charts/note/note.d.ts +2 -2
- package/dist-elements/types/components/chat/chat/chat.d.ts +9 -11
- package/dist-elements/types/components/chat/chat-answer/chat-answer.d.ts +10 -11
- package/dist-elements/types/components/chat/chat-composer/chat-composer.d.ts +10 -12
- package/dist-elements/types/components/chat/chat-message/chat-message.d.ts +7 -8
- package/dist-elements/types/components/chat/chat-strip/chat-strip.d.ts +5 -5
- package/dist-elements/types/components/chat/chat-suggestions/chat-suggestions.d.ts +9 -10
- package/dist-elements/types/components/content/audio-player/audio-player.d.ts +15 -17
- package/dist-elements/types/components/content/code/code.d.ts +3 -4
- package/dist-elements/types/components/content/document-viewer/document-viewer.d.ts +10 -11
- package/dist-elements/types/components/content/gallery/gallery.d.ts +5 -4
- package/dist-elements/types/components/content/highlight/highlight.d.ts +5 -4
- package/dist-elements/types/components/content/prose/prose.d.ts +3 -4
- package/dist-elements/types/components/content/token-value/token-value.d.ts +42 -0
- package/dist-elements/types/components/content/transcript/transcript.d.ts +15 -28
- package/dist-elements/types/components/content/translator/translator.d.ts +12 -16
- package/dist-elements/types/components/content/video-player/video-player.d.ts +12 -14
- package/dist-elements/types/components/feedback/ai-label/ai-label.d.ts +3 -4
- package/dist-elements/types/components/feedback/announcement/announcement.d.ts +5 -9
- package/dist-elements/types/{primitives → components/feedback}/badge/badge.d.ts +10 -6
- package/dist-elements/types/components/feedback/conflict-alert/conflict-alert.d.ts +4 -5
- package/dist-elements/types/components/feedback/empty-state/empty-state.d.ts +5 -8
- package/dist-elements/types/components/feedback/error-page/error-page.d.ts +52 -0
- package/dist-elements/types/components/feedback/job-list/job-list.d.ts +9 -12
- package/dist-elements/types/components/feedback/level-meter/level-meter.d.ts +4 -6
- package/dist-elements/types/{primitives → components/feedback}/progress-bar/progress-bar.d.ts +9 -7
- package/dist-elements/types/components/feedback/recording-status/recording-status.d.ts +5 -6
- package/dist-elements/types/{primitives → components/feedback}/skeleton/skeleton.d.ts +2 -2
- package/dist-elements/types/{primitives → components/feedback}/spinner/spinner.d.ts +2 -3
- package/dist-elements/types/{primitives → components/feedback}/status-dot/status-dot.d.ts +5 -6
- package/dist-elements/types/components/feedback/streaming-text/streaming-text.d.ts +12 -9
- package/dist-elements/types/components/feedback/toast/toast.d.ts +8 -9
- package/dist-elements/types/components/filters/filter-bar/filter-bar.d.ts +9 -4
- package/dist-elements/types/components/filters/filter-sheet/filter-sheet.d.ts +7 -7
- package/dist-elements/types/components/filters/filter-zone/filter-zone.d.ts +4 -4
- package/dist-elements/types/components/forms/error-summary/error-summary.d.ts +6 -7
- package/dist-elements/types/components/forms/form/form.d.ts +5 -5
- package/dist-elements/types/components/forms/form-actions/form-actions.d.ts +10 -8
- package/dist-elements/types/components/forms/form-section/form-section.d.ts +6 -5
- package/dist-elements/types/components/forms/repeater/repeater.d.ts +15 -9
- package/dist-elements/types/components/forms/stepper/stepper.d.ts +6 -5
- package/dist-elements/types/components/frame/app-search/app-search.d.ts +7 -8
- package/dist-elements/types/components/frame/breadcrumbs/breadcrumbs.d.ts +2 -2
- package/dist-elements/types/components/frame/footer/footer.d.ts +3 -2
- package/dist-elements/types/components/frame/hero/hero.d.ts +7 -9
- package/dist-elements/types/components/frame/notifications/notifications.d.ts +7 -11
- package/dist-elements/types/components/frame/page-header/page-header.d.ts +13 -16
- package/dist-elements/types/components/frame/shell/shell.d.ts +15 -14
- package/dist-elements/types/components/frame/sub-nav/sub-nav.d.ts +10 -6
- package/dist-elements/types/components/frame/user-menu/user-menu.d.ts +13 -12
- package/dist-elements/types/components/index.d.ts +51 -12
- package/dist-elements/types/components/inputs/checkbox/checkbox.d.ts +4 -4
- package/dist-elements/types/components/inputs/checkbox-group/checkbox-group.d.ts +33 -0
- package/dist-elements/types/components/inputs/combobox/combobox.d.ts +14 -8
- package/dist-elements/types/components/inputs/date-input/date-input.d.ts +6 -6
- package/dist-elements/types/components/inputs/date-range/date-range.d.ts +13 -8
- package/dist-elements/types/components/inputs/field/field.d.ts +5 -3
- package/dist-elements/types/components/inputs/file-upload/file-upload.d.ts +8 -10
- package/dist-elements/types/components/inputs/find/find.d.ts +51 -0
- package/dist-elements/types/components/inputs/multiselect/multiselect.d.ts +4 -6
- package/dist-elements/types/components/inputs/number-input/number-input.d.ts +8 -7
- package/dist-elements/types/components/inputs/radio-group/radio-group.d.ts +2 -4
- package/dist-elements/types/components/inputs/range/range.d.ts +5 -6
- package/dist-elements/types/components/inputs/segmented/segmented.d.ts +7 -4
- package/dist-elements/types/components/inputs/select/select.d.ts +6 -3
- package/dist-elements/types/components/inputs/shared/input.d.ts +1 -1
- package/dist-elements/types/components/inputs/slot-picker/slot-picker.d.ts +6 -5
- package/dist-elements/types/components/inputs/tag-input/tag-input.d.ts +8 -6
- package/dist-elements/types/components/inputs/text-editor/text-editor.d.ts +8 -8
- package/dist-elements/types/components/inputs/text-input/text-input.d.ts +12 -7
- package/dist-elements/types/components/inputs/textarea/textarea.d.ts +12 -11
- package/dist-elements/types/components/inputs/time-input/time-input.d.ts +8 -9
- package/dist-elements/types/components/inputs/toggle/toggle.d.ts +3 -1
- package/dist-elements/types/components/layout/expander/expander.d.ts +10 -11
- package/dist-elements/types/{primitives → components/layout}/grid/grid.d.ts +4 -4
- package/dist-elements/types/{primitives → components/layout}/grid-item/grid-item.d.ts +2 -2
- package/dist-elements/types/components/layout/split-pane/split-pane.d.ts +6 -6
- package/dist-elements/types/components/layout/tabs/tabs.d.ts +12 -10
- package/dist-elements/types/{primitives → components/layout}/tile/tile.d.ts +22 -10
- package/dist-elements/types/components/map/map/map.d.ts +12 -11
- package/dist-elements/types/components/overlays/dialog/dialog.d.ts +49 -0
- package/dist-elements/types/components/overlays/drawer/drawer.d.ts +6 -5
- package/dist-elements/types/components/overlays/modal/modal.d.ts +9 -14
- package/dist-elements/types/{primitives → components/overlays}/popover/popover.d.ts +7 -6
- package/dist-elements/types/components/overlays/toggletip/toggletip.d.ts +4 -8
- package/dist-elements/types/{primitives → components/overlays}/tooltip/tooltip.d.ts +8 -8
- package/dist-elements/types/components/shared/announcement-block.d.ts +38 -0
- package/dist-elements/types/components/shared/charts/index.d.ts +5 -1
- package/dist-elements/types/components/shared/charts/kinds.d.ts +92 -0
- package/dist-elements/types/components/shared/charts/line-chart/line-chart.d.ts +2 -2
- package/dist-elements/types/components/shared/charts/map-chart/leaflet.d.ts +5 -0
- package/dist-elements/types/components/shared/charts/map-chart/map-chart.d.ts +1 -1
- package/dist-elements/types/components/shared/charts/radar-chart/radar-chart.d.ts +31 -0
- package/dist-elements/types/components/shared/charts/shared/axes.d.ts +3 -1
- package/dist-elements/types/components/shared/charts/shared/chart-states.d.ts +8 -19
- package/dist-elements/types/components/shared/charts/shared/controller.d.ts +12 -0
- package/dist-elements/types/components/shared/charts/shared/types.d.ts +62 -0
- package/dist-elements/types/components/shared/charts/stacked-area-chart/stacked-area-chart.d.ts +13 -0
- package/dist-elements/types/components/shared/content-tile.d.ts +1 -1
- package/dist-elements/types/components/{forms/form → shared}/controls.d.ts +3 -2
- package/dist-elements/types/components/shared/dialog.d.ts +9 -0
- package/dist-elements/types/components/shared/empty-state-block.d.ts +26 -0
- package/dist-elements/types/components/shared/overflow.d.ts +58 -0
- package/dist-elements/types/components/shared/tone.d.ts +18 -0
- package/dist-elements/types/components/tables/activity-log/activity-log.d.ts +3 -4
- package/dist-elements/types/components/tables/card/card.d.ts +17 -23
- package/dist-elements/types/components/tables/card-list/card-list.d.ts +9 -11
- package/dist-elements/types/components/tables/data-table/actions.d.ts +1 -1
- package/dist-elements/types/components/tables/data-table/data-table.d.ts +88 -19
- package/dist-elements/types/components/tables/data-table/editing.d.ts +1 -1
- package/dist-elements/types/components/tables/data-table/filters.d.ts +15 -6
- package/dist-elements/types/components/tables/description-list/description-list.d.ts +13 -12
- package/dist-elements/types/components/tables/list/list.d.ts +13 -24
- package/dist-elements/types/components/tables/pagination/pagination.d.ts +12 -11
- package/dist-elements/types/components/tables/sortable-list/sortable-list.d.ts +5 -6
- package/dist-elements/types/components/tables/tree-view/tree-view.d.ts +5 -5
- package/dist-elements/types/core/focus.d.ts +1 -1
- package/dist-elements/types/core/media.d.ts +2 -2
- package/dist-elements/types/core/motion.d.ts +5 -0
- package/dist-elements/types/core/print.d.ts +15 -0
- package/dist-elements/types/core/shortcuts.d.ts +2 -2
- package/dist-elements/types/icons/register.d.ts +1 -1
- package/dist-elements/types/types.d.ts +70 -10
- package/dist-icons/functioneel-kolommen.svg +1 -0
- package/dist-icons/functioneel-trechter.svg +1 -0
- package/package.json +1 -1
- package/dist-elements/chunks/confirm-dialog-D5EVGuil.js +0 -4
- package/dist-elements/chunks/download-y528pIHP.js +0 -230
- package/dist-elements/chunks/input-BtuNFSWk.js +0 -195
- package/dist-elements/tag/confirm-dialog.d.ts +0 -1
- package/dist-elements/tag/confirm-dialog.js +0 -118
- package/dist-elements/tag/session-expiry.d.ts +0 -1
- package/dist-elements/tag/session-expiry.js +0 -184
- package/dist-elements/tag/shortcuts.d.ts +0 -1
- package/dist-elements/tag/shortcuts.js +0 -104
- package/dist-elements/types/components/frame/session-expiry/session-expiry.d.ts +0 -55
- package/dist-elements/types/components/frame/shortcuts/shortcuts.d.ts +0 -41
- package/dist-elements/types/components/overlays/confirm-dialog/confirm-dialog.d.ts +0 -41
- package/dist-elements/types/primitives/index.d.ts +0 -33
- /package/dist-elements/types/components/content/{audio-player → shared}/playback.d.ts +0 -0
- /package/dist-elements/types/components/content/{audio-player → shared}/player.d.ts +0 -0
- /package/dist-elements/types/components/{inputs/date-input → shared}/date-format.d.ts +0 -0
- /package/dist-elements/types/{primitives → components}/shared/grid-item-element.d.ts +0 -0
- /package/dist-elements/types/{primitives → components}/shared/length.d.ts +0 -0
- /package/dist-elements/types/{primitives → components}/shared/place.d.ts +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { H as e, Jt as t, Yt as n, Zt as r, en as i, et as a, lt as o, nn as s, st as c, ut as l } from "../chunks/base-DRGvkF-r.js";
|
|
2
2
|
import { n as u, nextRow as d, renderMenuEntries as f, t as p } from "./menu-button.js";
|
|
3
3
|
//#region src/components/frame/user-menu/user-menu.css?inline
|
|
4
|
-
var m = "/*\n * The host is the avatar button's `--h-touch` box in the navigation bar; the menu is a fixed popover\n * and takes no space. `inline`, it is a block at the bottom of the mobile navigation.\n * `menu-button.css` is adopted beside this file: the rows are its `.lintje-menu__row`.\n */\n:host { display: inline-flex; flex: none; vertical-align: middle; }\n:host([inline]) { display: block; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n/* The avatar and the chevron that says it opens a menu; at least `--h-touch` high. */\n.lintje-user-menu__trigger {\n display: flex; align-items: center; justify-content: center;\n gap: var(--space-2);\n min-width: var(--h-touch); height: var(--lintje-tool-height, var(--h-touch));\n padding: 0 var(--space-3);\n color: var(--color-nav-text);\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-user-menu__trigger:hover,\n.lintje-user-menu__trigger.is-open { background: var(--color-nav-hover); }\n\n.lintje-user-menu__avatar {\n display: flex; align-items: center; justify-content: center;\n flex: none;\n width: 2rem; height: 2rem;\n border-radius: var(--radius-round);\n background: var(--color-nav-avatar-bg);\n color: var(--color-nav-avatar-text);\n font-size: 0.875rem; font-weight: 700;\n}\n\n.lintje-user-menu__panel {\n width: 17.5rem;\n max-width: 100%;\n font: var(--text-ui);\n color: var(--color-text-primary);\n}\n\n.lintje-user-menu__who {\n display: flex; align-items: center; gap: var(--space-3);\n padding: var(--space-3) var(--space-4);\n border-bottom: 1px solid var(--color-border-default);\n}\n.lintje-user-menu__names { min-width: 0; }\n.lintje-user-menu__name { margin: 0; font-weight: 700; overflow-wrap: anywhere; }\n.lintje-user-menu__role { margin: 0; font-size: 0.875rem; color: var(--color-text-muted); }\n\n.lintje-user-menu__group { display: flex; flex-direction: column; padding: var(--space-1) 0; }\n.lintje-user-menu__group--logout { border-top: 1px solid var(--color-border-default); }\n.lintje-user-menu__group:first-child.lintje-user-menu__group--logout { border-top: 0; }\n.lintje-user-menu__logout { display: flex; flex-direction: column; margin: 0; }\n.lintje-user-menu__logout-row { font-weight: 700; }\n\n.lintje-user-menu__version {\n margin: 0;\n padding: var(--space-2) var(--space-4);\n border-top: 1px solid var(--color-border-default);\n font-size: 0.875rem;\n color: var(--color-text-muted);\n}\n\n.lintje-user-menu__panel.is-inline { width: 100%; color: var(--color-nav-text); }\n.lintje-user-menu__panel.is-inline .lintje-user-menu__who,\n.lintje-user-menu__panel.is-inline .lintje-user-menu__group--logout,\n.lintje-user-menu__panel.is-inline .lintje-user-menu__version { border-color: var(--color-nav-line); }\n.lintje-user-menu__panel.is-inline .lintje-user-menu__who { padding: var(--space-4) var(--space-5); }\n/* Small text on the theme fill takes the menu's own ink: the sub tint is 3.82:1 on #01689B. */\n.lintje-user-menu__panel.is-inline .lintje-user-menu__role,\n.lintje-user-menu__panel.is-inline .lintje-user-menu__version,\n.lintje-user-menu__panel.is-inline .lintje-menu__hint { color: var(--color-nav-text); }\n.lintje-user-menu__panel.is-inline .lintje-user-menu__version { padding: var(--space-2) var(--space-5); }\n.lintje-user-menu__panel.is-inline .lintje-menu__row {\n height: var(--h-touch);\n padding: 0 var(--space-5);\n color: var(--color-nav-text);\n}\n.lintje-user-menu__panel.is-inline .lintje-menu__row:hover { background: var(--color-nav-hover); }\n.lintje-user-menu__panel.is-inline .lintje-menu__row.is-disabled,\n.lintje-user-menu__panel.is-inline .lintje-menu__row.is-disabled .lintje-menu__hint { color: var(--color-nav-disabled); }\n.lintje-user-menu__panel.is-inline .lintje-menu__separator { background: var(--color-nav-line); }\n\n/* On the theme fill the orange ring disappears: the on-theme ring, as the side menu. */\n.lintje-user-menu__trigger:focus-visible,\n.lintje-user-menu__panel.is-inline :focus-visible { outline-color: var(--color-focus-on-theme); }\n\n/* Forced colours: the open button keeps a Highlight edge, the avatar a CanvasText ring. */\n@media (forced-colors: active) {\n .lintje-user-menu__trigger:focus-visible,\n .lintje-user-menu__panel.is-inline :focus-visible { outline-color: Highlight; }\n .lintje-user-menu__trigger.is-open:not(:focus-visible) { outline: 1px solid Highlight; outline-offset: -1px; }\n .lintje-user-menu__avatar { border: 1px solid CanvasText; }\n}\n", h = 0, g = class extends
|
|
4
|
+
var m = "/*\n * The host is the avatar button's `--h-touch` box in the navigation bar; the menu is a fixed popover\n * and takes no space. `inline`, it is a block at the bottom of the mobile navigation.\n * `menu-button.css` is adopted beside this file: the rows are its `.lintje-menu__row`.\n */\n:host { display: inline-flex; flex: none; vertical-align: middle; }\n:host([inline]) { display: block; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n/* The avatar and the chevron that says it opens a menu; at least `--h-touch` high. */\n.lintje-user-menu__trigger {\n display: flex; align-items: center; justify-content: center;\n gap: var(--space-2);\n min-width: var(--h-touch); height: var(--lintje-tool-height, var(--h-touch));\n padding: 0 var(--space-3);\n color: var(--color-nav-text);\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-user-menu__trigger:hover,\n.lintje-user-menu__trigger.is-open { background: var(--color-nav-hover); }\n\n.lintje-user-menu__avatar {\n display: flex; align-items: center; justify-content: center;\n flex: none;\n width: 2rem; height: 2rem;\n border-radius: var(--radius-round);\n background: var(--color-nav-avatar-bg);\n color: var(--color-nav-avatar-text);\n font-size: 0.875rem; font-weight: 700;\n}\n\n.lintje-user-menu__panel {\n width: 17.5rem;\n max-width: 100%;\n font: var(--text-ui);\n color: var(--color-text-primary);\n}\n\n.lintje-user-menu__who {\n display: flex; align-items: center; gap: var(--space-3);\n padding: var(--space-3) var(--space-4);\n border-bottom: 1px solid var(--color-border-default);\n}\n.lintje-user-menu__names { min-width: 0; }\n.lintje-user-menu__name { margin: 0; font-weight: 700; overflow-wrap: anywhere; }\n.lintje-user-menu__role { margin: 0; font-size: 0.875rem; color: var(--color-text-muted); }\n\n.lintje-user-menu__group { display: flex; flex-direction: column; padding: var(--space-1) 0; }\n.lintje-user-menu__group--logout { border-top: 1px solid var(--color-border-default); }\n.lintje-user-menu__group:first-child.lintje-user-menu__group--logout { border-top: 0; }\n.lintje-user-menu__logout { display: flex; flex-direction: column; margin: 0; }\n.lintje-user-menu__logout-row { font-weight: 700; }\n\n.lintje-user-menu__version {\n margin: 0;\n padding: var(--space-2) var(--space-4);\n border-top: 1px solid var(--color-border-default);\n font-size: 0.875rem;\n color: var(--color-text-muted);\n}\n\n.lintje-user-menu__panel.is-inline { width: 100%; color: var(--color-nav-text); }\n.lintje-user-menu__panel.is-inline .lintje-user-menu__who,\n.lintje-user-menu__panel.is-inline .lintje-user-menu__group--logout,\n.lintje-user-menu__panel.is-inline .lintje-user-menu__version { border-color: var(--color-nav-line); }\n.lintje-user-menu__panel.is-inline .lintje-user-menu__who { padding: var(--space-4) var(--space-5); }\n/* Small text on the theme fill takes the menu's own ink: the sub tint is 3.82:1 on #01689B. */\n.lintje-user-menu__panel.is-inline .lintje-user-menu__role,\n.lintje-user-menu__panel.is-inline .lintje-user-menu__version,\n.lintje-user-menu__panel.is-inline .lintje-menu__hint { color: var(--color-nav-text); }\n.lintje-user-menu__panel.is-inline .lintje-user-menu__version { padding: var(--space-2) var(--space-5); }\n.lintje-user-menu__panel.is-inline .lintje-menu__row {\n height: var(--h-touch);\n padding: 0 var(--space-5);\n color: var(--color-nav-text);\n}\n.lintje-user-menu__panel.is-inline .lintje-menu__row:hover { background: var(--color-nav-hover); }\n.lintje-user-menu__panel.is-inline .lintje-menu__row.is-disabled,\n.lintje-user-menu__panel.is-inline .lintje-menu__row.is-disabled .lintje-menu__hint { color: var(--color-nav-disabled); }\n.lintje-user-menu__panel.is-inline .lintje-menu__separator { background: var(--color-nav-line); }\n\n/* On the theme fill the orange ring disappears: the on-theme ring, as the side menu. */\n.lintje-user-menu__trigger:focus-visible,\n.lintje-user-menu__panel.is-inline :focus-visible { outline-color: var(--color-focus-on-theme); }\n\n/* Forced colours: the open button keeps a Highlight edge, the avatar a CanvasText ring. */\n@media (forced-colors: active) {\n .lintje-user-menu__trigger:focus-visible,\n .lintje-user-menu__panel.is-inline :focus-visible { outline-color: Highlight; }\n .lintje-user-menu__trigger.is-open:not(:focus-visible) { outline: 1px solid Highlight; outline-offset: -1px; }\n .lintje-user-menu__avatar { border: 1px solid CanvasText; }\n}\n", h = 0, g = class extends t {
|
|
5
5
|
static {
|
|
6
6
|
this.styles = [
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
o,
|
|
8
|
+
r(u),
|
|
9
|
+
r(p),
|
|
10
|
+
r(m)
|
|
11
11
|
];
|
|
12
12
|
}
|
|
13
13
|
static {
|
|
@@ -58,7 +58,7 @@ var m = "/*\n * The host is the avatar button's `--h-touch` box in the navigatio
|
|
|
58
58
|
constructor() {
|
|
59
59
|
super(), this.items = [], this.csrf = "", this.inline = !1, this.open = !1, this.#e = `lintje-user-menu-${++h}`, this.#t = null, this.onFocusOut = (e) => {
|
|
60
60
|
let t = e.relatedTarget;
|
|
61
|
-
this.open && t && !
|
|
61
|
+
this.open && t && !a(t, this) && !a(this, t) && this.hide(!1);
|
|
62
62
|
}, this.onTriggerKeydown = (e) => {
|
|
63
63
|
(e.key === "ArrowDown" || e.key === "ArrowUp") && (e.preventDefault(), this.show(e.key === "ArrowDown" ? "first" : "last"));
|
|
64
64
|
}, this.onMenuKeydown = (e) => {
|
|
@@ -90,8 +90,8 @@ var m = "/*\n * The host is the avatar button's `--h-touch` box in the navigatio
|
|
|
90
90
|
onPopoverClose(e) {
|
|
91
91
|
e.stopPropagation(), this.hide(e.detail?.reason === "escape");
|
|
92
92
|
}
|
|
93
|
-
choose(
|
|
94
|
-
|
|
93
|
+
choose(t, n) {
|
|
94
|
+
t.disabled ? n.preventDefault() : (!t.href || e(n)) && (this.hide(!this.inline), this.emit("lintje-action", t.value), t.href && this.followLink(t.href, n));
|
|
95
95
|
}
|
|
96
96
|
logout() {
|
|
97
97
|
this.hide(!this.inline), this.emit("lintje-logout");
|
|
@@ -103,41 +103,41 @@ var m = "/*\n * The host is the avatar button's `--h-touch` box in the navigatio
|
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
renderRow(e) {
|
|
106
|
-
let t = this.inline ?
|
|
106
|
+
let t = this.inline ? i : "menuitem", n = this.inline ? i : "-1", r = c({
|
|
107
107
|
"lintje-menu__row": !0,
|
|
108
108
|
"focus-inset": !0,
|
|
109
109
|
"is-danger": !!e.danger,
|
|
110
110
|
"is-disabled": !!e.disabled
|
|
111
|
-
}), a =
|
|
111
|
+
}), a = s`${e.icon ? l(e.icon, {
|
|
112
112
|
size: 16,
|
|
113
113
|
className: "lintje-menu__icon"
|
|
114
|
-
}) :
|
|
115
|
-
if (e.href && !e.disabled) return
|
|
116
|
-
class=${
|
|
114
|
+
}) : i}<span class="lintje-menu__label">${e.label}</span>${e.hint ? s`<span class="lintje-menu__hint">${e.hint}</span>` : i}`;
|
|
115
|
+
if (e.href && !e.disabled) return s`<a
|
|
116
|
+
class=${r}
|
|
117
117
|
role=${t}
|
|
118
118
|
tabindex=${n}
|
|
119
119
|
href=${e.href}
|
|
120
120
|
@click=${(t) => this.choose(e, t)}
|
|
121
121
|
>${a}</a
|
|
122
122
|
>`;
|
|
123
|
-
let
|
|
123
|
+
let o = s`<button
|
|
124
124
|
type="button"
|
|
125
|
-
class=${
|
|
125
|
+
class=${r}
|
|
126
126
|
role=${t}
|
|
127
127
|
tabindex=${n}
|
|
128
|
-
aria-disabled=${e.disabled ? "true" :
|
|
128
|
+
aria-disabled=${e.disabled ? "true" : i}
|
|
129
129
|
@click=${(t) => this.choose(e, t)}
|
|
130
130
|
>
|
|
131
131
|
${a}
|
|
132
132
|
</button>`;
|
|
133
|
-
return e.disabled && e.reason ?
|
|
133
|
+
return e.disabled && e.reason ? s`<lintje-tooltip class="lintje-menu__tip" text=${e.reason}>${o}</lintje-tooltip>` : o;
|
|
134
134
|
}
|
|
135
135
|
renderLogout() {
|
|
136
|
-
let e = this.inline ?
|
|
136
|
+
let e = this.inline ? i : "menuitem", t = this.inline ? i : "-1", n = l("functioneel-uitloggen", {
|
|
137
137
|
size: 16,
|
|
138
138
|
className: "lintje-menu__icon"
|
|
139
|
-
}),
|
|
140
|
-
return this.logoutAction ?
|
|
139
|
+
}), r = s`${n}<span class="lintje-menu__label">Afmelden</span>`;
|
|
140
|
+
return this.logoutAction ? s`<form class="lintje-user-menu__logout" method="post" action=${this.logoutAction}>
|
|
141
141
|
<input type="hidden" name="csrf_token" .value=${this.csrf} />
|
|
142
142
|
<button
|
|
143
143
|
type="submit"
|
|
@@ -145,53 +145,53 @@ var m = "/*\n * The host is the avatar button's `--h-touch` box in the navigatio
|
|
|
145
145
|
role=${e}
|
|
146
146
|
tabindex=${t}
|
|
147
147
|
>
|
|
148
|
-
${
|
|
148
|
+
${r}
|
|
149
149
|
</button>
|
|
150
|
-
</form>` :
|
|
150
|
+
</form>` : s`<button
|
|
151
151
|
type="button"
|
|
152
152
|
class="lintje-menu__row lintje-user-menu__logout-row focus-inset"
|
|
153
153
|
role=${e}
|
|
154
154
|
tabindex=${t}
|
|
155
155
|
@click=${() => this.logout()}
|
|
156
156
|
>
|
|
157
|
-
${
|
|
157
|
+
${r}
|
|
158
158
|
</button>`;
|
|
159
159
|
}
|
|
160
160
|
renderContent() {
|
|
161
161
|
let e = this.user;
|
|
162
|
-
return
|
|
163
|
-
class=${
|
|
162
|
+
return s`<div
|
|
163
|
+
class=${c({
|
|
164
164
|
"lintje-user-menu__panel": !0,
|
|
165
165
|
"is-inline": this.inline
|
|
166
166
|
})}
|
|
167
167
|
@keydown=${this.onMenuKeydown}
|
|
168
168
|
>
|
|
169
|
-
${e ?
|
|
170
|
-
${this.inline ?
|
|
169
|
+
${e ? s`<div class="lintje-user-menu__who">
|
|
170
|
+
${this.inline ? s`<span class="lintje-user-menu__avatar" aria-hidden="true">${e.initials}</span>` : i}
|
|
171
171
|
<div class="lintje-user-menu__names">
|
|
172
172
|
<p class="lintje-user-menu__name">${e.name}</p>
|
|
173
|
-
${e.role ?
|
|
173
|
+
${e.role ? s`<p class="lintje-user-menu__role">${e.role}</p>` : i}
|
|
174
174
|
</div>
|
|
175
|
-
</div>` :
|
|
175
|
+
</div>` : i}
|
|
176
176
|
<div
|
|
177
177
|
class="lintje-user-menu__menu"
|
|
178
178
|
role=${this.inline ? "group" : "menu"}
|
|
179
179
|
aria-label=${e ? `Menu van ${e.name}` : "Gebruikersmenu"}
|
|
180
180
|
>
|
|
181
|
-
${this.items.length ?
|
|
181
|
+
${this.items.length ? s`<div class="lintje-user-menu__group">
|
|
182
182
|
${f(this.items, "lintje-user-menu", (e) => this.renderRow(e))}
|
|
183
|
-
</div>` :
|
|
183
|
+
</div>` : i}
|
|
184
184
|
<div class="lintje-user-menu__group lintje-user-menu__group--logout">${this.renderLogout()}</div>
|
|
185
185
|
</div>
|
|
186
|
-
${this.version ?
|
|
186
|
+
${this.version ? s`<p class="lintje-user-menu__version">Versie ${this.version}</p>` : i}
|
|
187
187
|
</div>`;
|
|
188
188
|
}
|
|
189
189
|
render() {
|
|
190
190
|
if (this.inline) return this.renderContent();
|
|
191
191
|
let e = this.user;
|
|
192
|
-
return
|
|
192
|
+
return s`<button
|
|
193
193
|
type="button"
|
|
194
|
-
class=${
|
|
194
|
+
class=${c({
|
|
195
195
|
"lintje-user-menu__trigger": !0,
|
|
196
196
|
"is-open": this.open
|
|
197
197
|
})}
|
|
@@ -203,7 +203,7 @@ var m = "/*\n * The host is the avatar button's `--h-touch` box in the navigatio
|
|
|
203
203
|
@keydown=${this.onTriggerKeydown}
|
|
204
204
|
>
|
|
205
205
|
<span class="lintje-user-menu__avatar" aria-hidden="true">${e?.initials ?? ""}</span>
|
|
206
|
-
${
|
|
206
|
+
${l("functioneel-delta-omlaag", {
|
|
207
207
|
size: 16,
|
|
208
208
|
rotate: this.open ? 180 : void 0
|
|
209
209
|
})}
|
|
@@ -217,6 +217,6 @@ var m = "/*\n * The host is the avatar button's `--h-touch` box in the navigatio
|
|
|
217
217
|
>`;
|
|
218
218
|
}
|
|
219
219
|
};
|
|
220
|
-
|
|
220
|
+
n("lintje-user-menu", g);
|
|
221
221
|
//#endregion
|
|
222
222
|
export { g as LintjeUserMenu };
|
|
@@ -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-DRGvkF-r.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-BApadXr8.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; }
|