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 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { D as LintjeSkeleton } from "../chunks/base-CbmWxUig.js";
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { r as o, t as s } from "../chunks/input-
|
|
1
|
+
import { Yt as e, Zt as t, en as n, lt as r, nn as i, st as a } from "../chunks/base-CbmWxUig.js";
|
|
2
|
+
import { r as o, t as s } from "../chunks/input-CRW_exv_.js";
|
|
3
3
|
import { o as c, p as l } from "../chunks/date-format-mHtZyBys.js";
|
|
4
4
|
//#region src/components/inputs/slot-picker/slot-picker.css?inline
|
|
5
|
-
var u = "/* The slot picker: a column per day, every time a chip; the radio itself is the shared `choice` input. */\n:host {\n display: block;\n min-width: 0;\n}\n:host([hidden]) { display: none; }\n\n/* --- */\n\n/* Every day takes an equal column, however many the host sends. */\n.lintje-slot-picker {\n display: grid;\n grid-auto-flow: column;\n grid-auto-columns: minmax(0, 1fr);\n gap: var(--space-3);\n}\n.lintje-slot-picker__day { display: flex; flex-direction: column; gap: var(--space-2); min-width: 0; }\n.lintje-slot-picker__heading {\n margin: 0;\n padding: 0 0 var(--space-1);\n border-bottom: 1px solid var(--color-border-default);\n text-align: center;\n font-size: var(--label-size); font-weight: var(--label-weight);\n letter-spacing: var(--label-tracking); text-transform: uppercase;\n color: var(--color-text-muted);\n}\n:host([disabled]) .lintje-slot-picker__heading { color: var(--color-text-disabled); }\n\n/* A time is a dense option; the chosen one is quiet, as in the segmented control. */\n.lintje-slot-picker__slot {\n position: relative;\n display: flex; align-items: center; justify-content: center; gap: var(--space-1);\n min-height: var(--h-option);\n padding: 0 var(--space-2);\n border: 1px solid var(--color-border-default);\n background: var(--color-bg-surface);\n color: var(--color-text-primary);\n font-size: 1rem;\n font-variant-numeric: tabular-nums;\n cursor: pointer;\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-slot-picker__slot:hover:not(.is-chosen, .is-disabled) { background: var(--color-bg-subtle); }\n.lintje-slot-picker__slot.is-chosen {\n background: var(--color-choice-active-bg);\n border-color: var(--color-accent-line);\n box-shadow: inset 0 0 0 1px var(--color-accent-line);\n color: var(--color-accent-text);\n font-weight: 700;\n}\n/* Disabled wins over chosen: the whole chip back to the quiet disabled surface. */\n.lintje-slot-picker__slot.is-disabled {\n background: var(--color-bg-subtle);\n border-color: var(--color-border-strong);\n box-shadow: none;\n color: var(--color-text-disabled);\n cursor: not-allowed;\n}\n/* The input is hidden, so its focus ring goes on the chip. */\n.lintje-slot-picker__slot:has(.lintje-choice__input:focus-visible) {\n outline: var(--focus-width) solid var(--color-focus);\n outline-offset: var(--focus-offset);\n}\n.lintje-slot-picker__full { font: var(--text-small); }\n.lintje-slot-picker__none {\n margin: 0;\n padding: var(--space-2) 0;\n text-align: center;\n font: var(--text-small);\n color: var(--color-text-muted);\n}\n/* Without any day the words stand where the days would, at the left. */\n.lintje-field > .lintje-slot-picker__none { padding: 0; text-align: left; }\n\n/* Below 768 px the days stand under each other, each with its times in rows. */\n@media (max-width: 767px) {\n .lintje-slot-picker { grid-auto-flow: row; gap: var(--space-4); }\n .lintje-slot-picker__day {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(calc(2 * var(--space-10)), 1fr));\n }\n .lintje-slot-picker__heading,\n .lintje-slot-picker__none { grid-column: 1 / -1; text-align: left; }\n}\n\n/* Forced colours drop the fill and ring: the chosen chip keeps its edge in Highlight. */\n@media (forced-colors: active) {\n .lintje-slot-picker__slot.is-chosen { border-color: Highlight; box-shadow: none; }\n .lintje-slot-picker__slot.is-disabled { border-color: GrayText; color: GrayText; }\n .lintje-slot-picker__slot:has(.lintje-choice__input:focus-visible) { outline-color: Highlight; }\n}\n", d = class extends o {
|
|
5
|
+
var u = "/* The slot picker: a column per day, every time a chip; the radio itself is the shared `choice` input. */\n:host {\n display: block;\n min-width: 0;\n}\n:host([hidden]) { display: none; }\n\n/* --- */\n\n/* Every day takes an equal column, however many the host sends. */\n.lintje-slot-picker {\n display: grid;\n grid-auto-flow: column;\n grid-auto-columns: minmax(0, 1fr);\n gap: var(--space-3);\n}\n.lintje-slot-picker__day { display: flex; flex-direction: column; gap: var(--space-2); min-width: 0; }\n.lintje-slot-picker__heading {\n margin: 0;\n padding: 0 0 var(--space-1);\n border-bottom: 1px solid var(--color-border-default);\n text-align: center;\n font-size: var(--label-size); font-weight: var(--label-weight);\n letter-spacing: var(--label-tracking); text-transform: uppercase;\n color: var(--color-text-muted);\n}\n:host([disabled]) .lintje-slot-picker__heading { color: var(--color-text-disabled); }\n\n/* A time is a dense option; the chosen one is quiet, as in the segmented control. */\n.lintje-slot-picker__slot {\n position: relative;\n display: flex; align-items: center; justify-content: center; gap: var(--space-1);\n min-height: var(--h-option);\n padding: 0 var(--space-2);\n border: 1px solid var(--color-border-default);\n background: var(--color-bg-surface);\n color: var(--color-text-primary);\n font-size: 1rem;\n font-variant-numeric: tabular-nums;\n cursor: pointer;\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-slot-picker__slot:hover:not(.is-chosen, .is-disabled) { background: var(--color-bg-subtle); }\n.lintje-slot-picker__slot.is-chosen {\n background: var(--color-choice-active-bg);\n border-color: var(--color-accent-line);\n box-shadow: inset 0 0 0 1px var(--color-accent-line);\n color: var(--color-accent-text);\n font-weight: 700;\n}\n/* Disabled wins over chosen: the whole chip back to the quiet disabled surface. */\n.lintje-slot-picker__slot.is-disabled {\n background: var(--color-bg-subtle);\n border-color: var(--color-border-strong);\n box-shadow: none;\n color: var(--color-text-disabled);\n cursor: not-allowed;\n}\n/* The input is hidden, so its focus ring goes on the chip. */\n.lintje-slot-picker__slot:has(.lintje-choice__input:focus-visible) {\n outline: var(--focus-width) solid var(--color-focus);\n outline-offset: var(--focus-offset);\n}\n.lintje-slot-picker__full { font: var(--text-small); }\n.lintje-slot-picker__none {\n margin: 0;\n padding: var(--space-2) 0;\n text-align: center;\n font: var(--text-small);\n color: var(--color-text-muted);\n}\n/* Without any day the words stand where the days would, at the left. */\n.lintje-field > .lintje-slot-picker__none { padding: 0; text-align: left; }\n\n/* Below 768 px the days stand under each other, each with its times in rows. */\n@media screen and (max-width: 767px) {\n .lintje-slot-picker { grid-auto-flow: row; gap: var(--space-4); }\n .lintje-slot-picker__day {\n display: grid;\n grid-template-columns: repeat(auto-fill, minmax(calc(2 * var(--space-10)), 1fr));\n }\n .lintje-slot-picker__heading,\n .lintje-slot-picker__none { grid-column: 1 / -1; text-align: left; }\n}\n\n/* Forced colours drop the fill and ring: the chosen chip keeps its edge in Highlight. */\n@media (forced-colors: active) {\n .lintje-slot-picker__slot.is-chosen { border-color: Highlight; box-shadow: none; }\n .lintje-slot-picker__slot.is-disabled { border-color: GrayText; color: GrayText; }\n .lintje-slot-picker__slot:has(.lintje-choice__input:focus-visible) { outline-color: Highlight; }\n}\n", d = class extends o {
|
|
6
6
|
constructor(...e) {
|
|
7
7
|
super(...e), this.value = "";
|
|
8
8
|
}
|
|
9
9
|
static {
|
|
10
10
|
this.styles = [
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
r,
|
|
12
|
+
t(s),
|
|
13
|
+
t(u)
|
|
14
14
|
];
|
|
15
15
|
}
|
|
16
16
|
static {
|
|
@@ -24,7 +24,7 @@ var u = "/* The slot picker: a column per day, every time a chip; the radio itse
|
|
|
24
24
|
}
|
|
25
25
|
render() {
|
|
26
26
|
let e = this.days ?? [];
|
|
27
|
-
return
|
|
27
|
+
return i`<div
|
|
28
28
|
class="lintje-field"
|
|
29
29
|
role="radiogroup"
|
|
30
30
|
aria-labelledby=${this.labelId}
|
|
@@ -33,22 +33,22 @@ var u = "/* The slot picker: a column per day, every time a chip; the radio itse
|
|
|
33
33
|
aria-required=${this.required ? "true" : n}
|
|
34
34
|
>
|
|
35
35
|
${this.renderLabel()}
|
|
36
|
-
${e.length ?
|
|
36
|
+
${e.length ? i`<div class="lintje-slot-picker">${e.map((e) => this.renderDay(e))}</div>` : i`<p class="lintje-slot-picker__none">Geen tijden beschikbaar</p>`}
|
|
37
37
|
${this.renderFoot()}
|
|
38
38
|
</div>`;
|
|
39
39
|
}
|
|
40
40
|
renderDay(e) {
|
|
41
|
-
return
|
|
41
|
+
return i`<div class="lintje-slot-picker__day">
|
|
42
42
|
<p class="lintje-slot-picker__heading" aria-hidden="true">${l(e.date)}</p>
|
|
43
|
-
${e.slots.length ? e.slots.map((t) => this.renderSlot(e, t)) :
|
|
43
|
+
${e.slots.length ? e.slots.map((t) => this.renderSlot(e, t)) : i`<p class="lintje-slot-picker__none">
|
|
44
44
|
<span class="visually-hidden">${c(e.date)}: </span>Geen tijden
|
|
45
45
|
</p>`}
|
|
46
46
|
</div>`;
|
|
47
47
|
}
|
|
48
48
|
renderSlot(e, t) {
|
|
49
49
|
let r = t.value === this.value, o = this.disabled || !!t.full;
|
|
50
|
-
return
|
|
51
|
-
class=${
|
|
50
|
+
return i`<label
|
|
51
|
+
class=${a({
|
|
52
52
|
"lintje-slot-picker__slot": !0,
|
|
53
53
|
"is-chosen": r,
|
|
54
54
|
"is-disabled": o
|
|
@@ -65,10 +65,10 @@ var u = "/* The slot picker: a column per day, every time a chip; the radio itse
|
|
|
65
65
|
/>
|
|
66
66
|
<span class="visually-hidden">${c(e.date)}, </span>
|
|
67
67
|
<span class="lintje-slot-picker__time">${t.label}</span>
|
|
68
|
-
${t.full ?
|
|
68
|
+
${t.full ? i`<span class="lintje-slot-picker__full">Vol</span>` : n}
|
|
69
69
|
</label>`;
|
|
70
70
|
}
|
|
71
71
|
};
|
|
72
|
-
|
|
72
|
+
e("lintje-slot-picker", d);
|
|
73
73
|
//#endregion
|
|
74
74
|
export { d as LintjeSlotPicker };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Jt as e, Yt as t, Zt as n, bt as r, en as i, h as a, lt as o, nn as s, st as c, ut as l } from "../chunks/base-CbmWxUig.js";
|
|
2
2
|
import "./checkbox.js";
|
|
3
3
|
//#region src/components/tables/sortable-list/sortable-list.css?inline
|
|
4
|
-
var u = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-sortable-list { display: flex; flex-direction: column; gap: var(--space-2); }\n\n.lintje-sortable-list__rows {\n list-style: none; margin: 0; padding: 0;\n display: flex; flex-direction: column;\n gap: var(--space-1);\n font: var(--text-ui);\n}\n\n.lintje-sortable-list__row {\n position: relative;\n display: flex; align-items: center;\n gap: var(--space-2);\n height: var(--h-touch);\n padding: 0 var(--space-2);\n background: var(--color-bg-surface);\n border: 1px solid var(--color-border-default);\n color: var(--color-text-primary);\n}\n.lintje-sortable-list__row.is-lifted {\n z-index: 1;\n border-color: var(--color-accent-line);\n box-shadow: var(--shadow-popover);\n font-weight: 700;\n}\n/* The row follows the pointer through the CSSOM; nothing eases it. */\n.lintje-sortable-list__row.is-dragging { transition: none; }\n\n.lintje-sortable-list__row.is-drop-before::before,\n.lintje-sortable-list__row.is-drop-after::after {\n content: '';\n position: absolute;\n left: -1px; right: -1px;\n height: 3px;\n background: var(--color-accent-line);\n pointer-events: none;\n}\n.lintje-sortable-list__row.is-drop-before::before { top: -4px; }\n.lintje-sortable-list__row.is-drop-after::after { bottom: -4px; }\n\n/* The grip is the only handle, so a finger on the row still scrolls. Its hit area reaches the\n row's full height, up and down only. */\n.lintje-sortable-list__grip {\n position: relative;\n flex: none;\n display: inline-flex; align-items: center; justify-content: center;\n width: var(--h-chip-field); height: var(--h-chip-field);\n color: var(--color-text-muted);\n cursor: grab;\n touch-action: none;\n transition: color var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-sortable-list__grip::after {\n content: '';\n position: absolute;\n inset: min(0px, calc((100% - var(--h-target)) / 2)) 0;\n}\n.lintje-sortable-list__grip:hover { color: var(--color-text-primary); }\n.lintje-sortable-list__row.is-lifted .lintje-sortable-list__grip {\n color: var(--color-accent-text);\n cursor: grabbing;\n}\n\n.lintje-sortable-list__label {\n min-width: 0;\n overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\n}\n.lintje-sortable-list__check { min-width: 0; }\n\n.lintje-sortable-list__status {\n margin: 0;\n min-height: 1lh;\n font: var(--text-small);\n color: var(--color-text-muted);\n}\n\n@media (max-width: 767px) {\n .lintje-sortable-list__row { padding-left: 0; }\n .lintje-sortable-list__grip { width: var(--h-touch); height: 100%; }\n}\n\n/* Reduced motion: nothing eases; the state still shows at once. */\n@media (prefers-reduced-motion: reduce) {\n .lintje-sortable-list__grip { transition: none; }\n}\n\n/* Forced colours: the lifted row's shadow is dropped, so its edge turns Highlight; likewise the drop line. */\n@media (forced-colors: active) {\n .lintje-sortable-list__row.is-lifted { border-color: Highlight; }\n .lintje-sortable-list__row.is-drop-before::before,\n .lintje-sortable-list__row.is-drop-after::after { border-top: 3px solid Highlight; }\n}\n";
|
|
4
|
+
var u = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-sortable-list { display: flex; flex-direction: column; gap: var(--space-2); }\n\n.lintje-sortable-list__rows {\n list-style: none; margin: 0; padding: 0;\n display: flex; flex-direction: column;\n gap: var(--space-1);\n font: var(--text-ui);\n}\n\n.lintje-sortable-list__row {\n position: relative;\n display: flex; align-items: center;\n gap: var(--space-2);\n height: var(--h-touch);\n padding: 0 var(--space-2);\n background: var(--color-bg-surface);\n border: 1px solid var(--color-border-default);\n color: var(--color-text-primary);\n}\n.lintje-sortable-list__row.is-lifted {\n z-index: 1;\n border-color: var(--color-accent-line);\n box-shadow: var(--shadow-popover);\n font-weight: 700;\n}\n/* The row follows the pointer through the CSSOM; nothing eases it. */\n.lintje-sortable-list__row.is-dragging { transition: none; }\n\n.lintje-sortable-list__row.is-drop-before::before,\n.lintje-sortable-list__row.is-drop-after::after {\n content: '';\n position: absolute;\n left: -1px; right: -1px;\n height: 3px;\n background: var(--color-accent-line);\n pointer-events: none;\n}\n.lintje-sortable-list__row.is-drop-before::before { top: -4px; }\n.lintje-sortable-list__row.is-drop-after::after { bottom: -4px; }\n\n/* The grip is the only handle, so a finger on the row still scrolls. Its hit area reaches the\n row's full height, up and down only. */\n.lintje-sortable-list__grip {\n position: relative;\n flex: none;\n display: inline-flex; align-items: center; justify-content: center;\n width: var(--h-chip-field); height: var(--h-chip-field);\n color: var(--color-text-muted);\n cursor: grab;\n touch-action: none;\n transition: color var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-sortable-list__grip::after {\n content: '';\n position: absolute;\n inset: min(0px, calc((100% - var(--h-target)) / 2)) 0;\n}\n.lintje-sortable-list__grip:hover { color: var(--color-text-primary); }\n.lintje-sortable-list__row.is-lifted .lintje-sortable-list__grip {\n color: var(--color-accent-text);\n cursor: grabbing;\n}\n\n.lintje-sortable-list__label {\n min-width: 0;\n overflow: hidden; text-overflow: ellipsis; white-space: nowrap;\n}\n.lintje-sortable-list__check { min-width: 0; }\n\n.lintje-sortable-list__status {\n margin: 0;\n min-height: 1lh;\n font: var(--text-small);\n color: var(--color-text-muted);\n}\n\n@media screen and (max-width: 767px) {\n .lintje-sortable-list__row { padding-left: 0; }\n .lintje-sortable-list__grip { width: var(--h-touch); height: 100%; }\n}\n\n/* Reduced motion: nothing eases; the state still shows at once. */\n@media (prefers-reduced-motion: reduce) {\n .lintje-sortable-list__grip { transition: none; }\n}\n\n/* Forced colours: the lifted row's shadow is dropped, so its edge turns Highlight; likewise the drop line. */\n@media (forced-colors: active) {\n .lintje-sortable-list__row.is-lifted { border-color: Highlight; }\n .lintje-sortable-list__row.is-drop-before::before,\n .lintje-sortable-list__row.is-drop-after::after { border-top: 3px solid Highlight; }\n}\n";
|
|
5
5
|
//#endregion
|
|
6
6
|
//#region src/components/tables/sortable-list/sortable-list.ts
|
|
7
7
|
function d(e, t, n) {
|
|
@@ -15,12 +15,12 @@ function f(e, t) {
|
|
|
15
15
|
for (; n < e.length && e[n] < t;) n++;
|
|
16
16
|
return n;
|
|
17
17
|
}
|
|
18
|
-
var p = 4, m = class extends
|
|
18
|
+
var p = 4, m = class extends e {
|
|
19
19
|
constructor(...e) {
|
|
20
20
|
super(...e), this.items = [], this.name = "", this.checkable = !1, this.order = [], this.grabbed = null, this.drag = null, this.message = "";
|
|
21
21
|
}
|
|
22
22
|
static {
|
|
23
|
-
this.styles = [
|
|
23
|
+
this.styles = [o, n(u)];
|
|
24
24
|
}
|
|
25
25
|
static {
|
|
26
26
|
this.properties = {
|
|
@@ -157,23 +157,23 @@ var p = 4, m = class extends l {
|
|
|
157
157
|
return t.to < n.length ? n[t.to] === e ? "before" : null : n[n.length - 1] === e ? "after" : null;
|
|
158
158
|
}
|
|
159
159
|
row(e, t) {
|
|
160
|
-
let n = this.drag?.id === e.id,
|
|
160
|
+
let n = this.drag?.id === e.id, i = n || this.grabbed?.id === e.id, a = this.dropLine(t);
|
|
161
161
|
return s`<li
|
|
162
|
-
class=${
|
|
162
|
+
class=${c({
|
|
163
163
|
"lintje-sortable-list__row": !0,
|
|
164
|
-
"is-lifted":
|
|
164
|
+
"is-lifted": i,
|
|
165
165
|
"is-dragging": n,
|
|
166
|
-
"is-drop-before":
|
|
167
|
-
"is-drop-after":
|
|
166
|
+
"is-drop-before": a === "before",
|
|
167
|
+
"is-drop-after": a === "after"
|
|
168
168
|
})}
|
|
169
|
-
${
|
|
169
|
+
${r({ transform: n ? `translateY(${this.drag.dy}px)` : null })}
|
|
170
170
|
>
|
|
171
171
|
<button
|
|
172
172
|
type="button"
|
|
173
173
|
class="lintje-sortable-list__grip"
|
|
174
174
|
data-id=${e.id}
|
|
175
175
|
aria-label=${`${e.label} verplaatsen`}
|
|
176
|
-
aria-pressed=${
|
|
176
|
+
aria-pressed=${i ? "true" : "false"}
|
|
177
177
|
aria-describedby="lintje-sortable-list-help"
|
|
178
178
|
@keydown=${(t) => this.onGripKeydown(t, e)}
|
|
179
179
|
@blur=${() => this.onGripBlur(e)}
|
|
@@ -182,7 +182,7 @@ var p = 4, m = class extends l {
|
|
|
182
182
|
@pointerup=${(t) => this.onPointerUp(t, e)}
|
|
183
183
|
@pointercancel=${() => this.onPointerCancel()}
|
|
184
184
|
>
|
|
185
|
-
${
|
|
185
|
+
${l("functioneel-sleep", { size: 16 })}
|
|
186
186
|
</button>
|
|
187
187
|
${this.checkable ? s`<lintje-checkbox
|
|
188
188
|
class="lintje-sortable-list__check"
|
|
@@ -194,8 +194,8 @@ var p = 4, m = class extends l {
|
|
|
194
194
|
}
|
|
195
195
|
render() {
|
|
196
196
|
return s`<div class="lintje-sortable-list">
|
|
197
|
-
<ul class="lintje-sortable-list__rows" aria-label=${this.label ??
|
|
198
|
-
${
|
|
197
|
+
<ul class="lintje-sortable-list__rows" aria-label=${this.label ?? i}>
|
|
198
|
+
${a(this.order, (e) => e.id, (e, t) => this.row(e, t))}
|
|
199
199
|
</ul>
|
|
200
200
|
<p id="lintje-sortable-list-help" class="visually-hidden">
|
|
201
201
|
Spatie of Enter pakt op, pijl omhoog en omlaag verplaatsen, spatie of Enter legt neer,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { V as LintjeSpinner } from "../chunks/base-CbmWxUig.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Gt as e, Jt as t, Kt as n, Yt as r, Zt as i, bt as a, en as o, nn as s, st as c } from "../chunks/base-CbmWxUig.js";
|
|
2
2
|
import "./segmented.js";
|
|
3
3
|
//#region src/components/layout/split-pane/split-pane.css?inline
|
|
4
4
|
var l = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n/* The first panel's share is `--lintje-split` (a percentage, set through the CSSOM). */\n.lintje-split-pane {\n display: flex;\n border: 1px solid var(--color-border-default);\n}\n.lintje-split-pane__pane { min-width: 0; padding: var(--space-4); overflow: auto; }\n.lintje-split-pane__pane--start { flex: 0 0 calc((100% - 9px) * var(--lintje-split, 50) / 100); }\n.lintje-split-pane__pane--end { flex: 1 1 0; }\n\n.lintje-split-pane__strip {\n flex: 0 0 9px;\n display: flex; align-items: center; justify-content: center;\n background: var(--color-bg-subtle);\n border-left: 1px solid var(--color-border-default);\n border-right: 1px solid var(--color-border-default);\n cursor: col-resize;\n touch-action: none;\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-split-pane__handle {\n flex: none;\n width: 7px; height: var(--h-touch);\n background: var(--color-border-heavy);\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-split-pane__strip:hover .lintje-split-pane__handle,\n.lintje-split-pane.is-dragging .lintje-split-pane__handle { background: var(--color-accent-line); }\n\n/* Dragging: no text is selected until release. */\n.lintje-split-pane.is-dragging { user-select: none; cursor: col-resize; }\n.lintje-split-pane.is-dragging .lintje-split-pane__strip { background: var(--color-bg-selected); transition: none; }\n\n.lintje-split-pane__choice { display: block; margin-bottom: var(--space-3); }\n.lintje-split-pane--phone { display: block; border: 0; }\n.lintje-split-pane--phone .lintje-split-pane__pane { padding: 0; }\n\n/* Forced colours: the grip is a fill, which the mode drops; it is drawn in the text colour. */\n@media (forced-colors: active) {\n .lintje-split-pane__handle { forced-color-adjust: none; background: CanvasText; }\n .lintje-split-pane__strip:hover .lintje-split-pane__handle,\n .lintje-split-pane.is-dragging .lintje-split-pane__handle { background: Highlight; }\n}\n", u = 5, d = 50, f = 3;
|
|
@@ -26,9 +26,9 @@ function _(e, t) {
|
|
|
26
26
|
localStorage.setItem(e, String(t));
|
|
27
27
|
} catch {}
|
|
28
28
|
}
|
|
29
|
-
var v = class extends
|
|
30
|
-
constructor(...
|
|
31
|
-
super(...
|
|
29
|
+
var v = class extends t {
|
|
30
|
+
constructor(...t) {
|
|
31
|
+
super(...t), this.value = 50, this.min = 20, this.max = 80, this.startLabel = "Links", this.endLabel = "Rechts", this.pane = "start", this.dragging = !1, this.#e = new n(this, e), this.#t = 50, this.#n = 0, this.#r = !1, this.#i = !1, this.onPointerDown = (e) => {
|
|
32
32
|
e.button !== 0 || this.#r || (e.preventDefault(), e.currentTarget.setPointerCapture?.(e.pointerId), this.renderRoot.querySelector(".lintje-split-pane__handle")?.focus(), this.#t = this.value, this.#n = e.clientX, this.dragging = !0);
|
|
33
33
|
}, this.onPointerMove = (e) => {
|
|
34
34
|
if (!this.dragging) return;
|
|
@@ -58,7 +58,7 @@ var v = class extends c {
|
|
|
58
58
|
};
|
|
59
59
|
}
|
|
60
60
|
static {
|
|
61
|
-
this.styles =
|
|
61
|
+
this.styles = i(l);
|
|
62
62
|
}
|
|
63
63
|
static {
|
|
64
64
|
this.properties = {
|
|
@@ -122,8 +122,8 @@ var v = class extends c {
|
|
|
122
122
|
t !== this.pane && (this.pane = t, this.emit("lintje-pane-change", t));
|
|
123
123
|
}
|
|
124
124
|
render() {
|
|
125
|
-
let e = this.#e.matches,
|
|
126
|
-
return
|
|
125
|
+
let e = this.#e.matches, t = Math.round(this.value);
|
|
126
|
+
return s`${e ? s`<lintje-segmented
|
|
127
127
|
class="lintje-split-pane__choice"
|
|
128
128
|
label="Paneel kiezen"
|
|
129
129
|
hide-label
|
|
@@ -136,13 +136,13 @@ var v = class extends c {
|
|
|
136
136
|
label: this.endLabel
|
|
137
137
|
}]}
|
|
138
138
|
@lintje-change=${this.onPaneChange}
|
|
139
|
-
></lintje-segmented>` :
|
|
140
|
-
class=${
|
|
139
|
+
></lintje-segmented>` : o}<div
|
|
140
|
+
class=${c({
|
|
141
141
|
"lintje-split-pane": !0,
|
|
142
142
|
"lintje-split-pane--phone": e,
|
|
143
143
|
"is-dragging": this.dragging
|
|
144
144
|
})}
|
|
145
|
-
${
|
|
145
|
+
${a({ "--lintje-split": String(this.value) })}
|
|
146
146
|
@pointerdown=${this.onPlace}
|
|
147
147
|
@pointermove=${this.onPointerMove}
|
|
148
148
|
@click=${{
|
|
@@ -173,7 +173,7 @@ var v = class extends c {
|
|
|
173
173
|
tabindex="0"
|
|
174
174
|
aria-orientation="vertical"
|
|
175
175
|
aria-label="Verdeling aanpassen"
|
|
176
|
-
aria-valuenow=${
|
|
176
|
+
aria-valuenow=${t}
|
|
177
177
|
aria-valuemin=${this.min}
|
|
178
178
|
aria-valuemax=${this.max}
|
|
179
179
|
aria-controls="start"
|
|
@@ -189,6 +189,6 @@ var v = class extends c {
|
|
|
189
189
|
</div>`;
|
|
190
190
|
}
|
|
191
191
|
};
|
|
192
|
-
|
|
192
|
+
r("lintje-split-pane", v);
|
|
193
193
|
//#endregion
|
|
194
194
|
export { v as LintjeSplitPane, d as SPLIT_RESET, u as SPLIT_STEP, p as clampSplit, h as splitFromKey, m as splitFromPointer };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { k as LintjeStatusDot, A as STATUS_LABEL } from "../chunks/base-CbmWxUig.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Gt as e, H as t, Jt as n, Kt as r, Yt as i, Zt as a, en as o, lt as s, nn as c, st as l, ut as u } from "../chunks/base-CbmWxUig.js";
|
|
2
2
|
//#region src/components/forms/stepper/stepper.css?inline
|
|
3
3
|
var d = "/* The host is the full width of where it stands: what the steps are measured against. */\n:host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-stepper { font: var(--text-ui); color: var(--color-text-primary); }\n\n/* The row never wraps: its overflow is what tells the element to stand the steps up. */\n.lintje-stepper__list { display: flex; }\n.lintje-stepper__list--row { flex-direction: row; gap: var(--space-2); overflow: hidden; }\n.lintje-stepper__list--column { flex-direction: column; }\n\n/* The label's line is as tall as the pointer target: the row's `overflow: hidden` would cut off more. */\n.lintje-stepper__step {\n position: relative;\n display: flex; align-items: flex-start; gap: var(--space-3);\n flex: none;\n}\n.lintje-stepper__list--row .lintje-stepper__step { flex: 1 1 auto; white-space: nowrap; }\n.lintje-stepper__list--row .lintje-stepper__step:last-child { flex: none; }\n.lintje-stepper__list--column .lintje-stepper__step:not(:last-child) { padding-bottom: var(--space-4); }\n\n/* The line to the next step: drawn through from a done step, dashed from the current one on. */\n.lintje-stepper__line { border: 0 dashed var(--color-border-heavy); }\n.lintje-stepper__step--done .lintje-stepper__line { border-style: solid; border-color: var(--color-accent-line); }\n/* In the row the line fills the room up to the next marker. */\n.lintje-stepper__list--row .lintje-stepper__body { flex: 1 1 auto; }\n.lintje-stepper__list--row .lintje-stepper__line {\n flex: 1 1 0;\n min-width: var(--space-8);\n border-top-width: 2px;\n}\n/* In the column it runs from the marker's foot to the top of the next one. */\n.lintje-stepper__list--column .lintje-stepper__line {\n position: absolute;\n top: calc((var(--h-target) + var(--h-chip-field)) / 2);\n bottom: calc((var(--h-chip-field) - var(--h-target)) / 2);\n left: calc(var(--h-chip-field) / 2 - 1px);\n border-left-width: 2px;\n}\n\n.lintje-stepper__body { display: flex; flex-direction: column; }\n.lintje-stepper__list--column .lintje-stepper__body { min-width: 0; }\n.lintje-stepper__head {\n display: flex; align-items: center; gap: var(--space-2);\n min-height: var(--h-target);\n}\n/* What stands under the label starts level with the marker's foot. */\n.lintje-stepper__head + .lintje-stepper__description,\n.lintje-stepper__head + .lintje-stepper__meta { margin-top: calc((var(--h-chip-field) - var(--h-target)) / 2); }\n.lintje-stepper__description { margin: 0 0 var(--space-1); color: var(--color-text-secondary); }\n.lintje-stepper__meta { font: var(--text-meta); color: var(--color-text-secondary); }\n\n.lintje-stepper__marker {\n display: inline-flex; align-items: center; justify-content: center;\n flex: none;\n width: var(--h-chip-field); height: var(--h-chip-field);\n margin-top: calc((var(--h-target) - var(--h-chip-field)) / 2);\n border: 1px solid transparent;\n font-size: 0.875rem; font-weight: 700;\n}\n.lintje-stepper__marker--next { border-color: var(--color-text-muted); color: var(--color-text-muted); font-weight: 400; }\n.lintje-stepper__step--next .lintje-stepper__name { color: var(--color-text-muted); }\n.lintje-stepper__marker--current {\n background: var(--color-action-primary);\n border-color: var(--color-action-primary-border);\n color: var(--color-action-primary-text);\n}\n.lintje-stepper__step--current .lintje-stepper__name { font-weight: 700; }\n/* Done: the frame is a line (3:1), the check stands for a word (4.5:1). */\n.lintje-stepper__marker--done { border-color: var(--color-accent-line); color: var(--color-accent-text); }\n.lintje-stepper__marker--done.is-error { border-color: var(--color-error); color: var(--color-error); }\n\n.lintje-stepper__name--link {\n position: relative;\n color: var(--color-link);\n transition: color var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-stepper__name--link::after {\n content: '';\n position: absolute;\n inset: min(0px, calc((100% - var(--h-target)) / 2)) 0;\n}\n.lintje-stepper__name--link:hover { color: var(--color-link-hover); }\n\n.lintje-stepper__errors { font: var(--text-meta); font-weight: 700; color: var(--color-error-text); }\n\n.lintje-stepper--phone { display: flex; flex-direction: column; gap: var(--space-2); }\n.lintje-stepper__summary {\n display: flex; justify-content: space-between; gap: var(--space-3);\n}\n.lintje-stepper__current { font-weight: 700; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }\n.lintje-stepper__count { flex: none; color: var(--color-text-muted); }\n\n/* Forced colours: the current step's fill is dropped, so its border turns Highlight. */\n@media (forced-colors: active) {\n .lintje-stepper__marker--current { border-color: Highlight; }\n}\n";
|
|
4
4
|
//#endregion
|
|
@@ -21,12 +21,12 @@ var h = {
|
|
|
21
21
|
done: "gedaan",
|
|
22
22
|
current: "huidige stap",
|
|
23
23
|
next: "nog niet aan de beurt"
|
|
24
|
-
}, g = class extends
|
|
25
|
-
constructor(...
|
|
26
|
-
super(...
|
|
24
|
+
}, g = class extends n {
|
|
25
|
+
constructor(...t) {
|
|
26
|
+
super(...t), this.steps = [], this.label = "Stappen", this.orientation = "horizontal", this.layout = "row", this.#e = new r(this, e), this.#t = null, this.#n = 0;
|
|
27
27
|
}
|
|
28
28
|
static {
|
|
29
|
-
this.styles = [
|
|
29
|
+
this.styles = [s, a(d)];
|
|
30
30
|
}
|
|
31
31
|
static {
|
|
32
32
|
this.properties = {
|
|
@@ -65,43 +65,43 @@ var h = {
|
|
|
65
65
|
let r = m(this.layout, e.clientWidth, n, this.#n);
|
|
66
66
|
r !== this.layout && (this.layout = r);
|
|
67
67
|
}
|
|
68
|
-
follow(e,
|
|
69
|
-
|
|
68
|
+
follow(e, n) {
|
|
69
|
+
t(e) && this.followLink(n, e);
|
|
70
70
|
}
|
|
71
71
|
renderMarker(e, t) {
|
|
72
|
-
let n = e.state === "done" && !!e.errors, r =
|
|
72
|
+
let n = e.state === "done" && !!e.errors, r = l({
|
|
73
73
|
"lintje-stepper__marker": !0,
|
|
74
74
|
[`lintje-stepper__marker--${e.state}`]: !0,
|
|
75
75
|
"is-error": n
|
|
76
76
|
}), i = String(t + 1);
|
|
77
|
-
return e.state === "done" && (i =
|
|
77
|
+
return e.state === "done" && (i = u(n ? "functioneel-waarschuwing" : "functioneel-vinkje", { size: 16 })), c`<span class=${r} aria-hidden="true">${i}</span>`;
|
|
78
78
|
}
|
|
79
79
|
renderName(e) {
|
|
80
80
|
if (e.state === "done" && e.href) {
|
|
81
81
|
let t = e.href;
|
|
82
|
-
return
|
|
82
|
+
return c`<a
|
|
83
83
|
class="lintje-stepper__name lintje-stepper__name--link"
|
|
84
84
|
href=${t}
|
|
85
85
|
@click=${(e) => this.follow(e, t)}
|
|
86
86
|
>${e.label}<span class="visually-hidden">, ${h.done}</span></a
|
|
87
87
|
>`;
|
|
88
88
|
}
|
|
89
|
-
return
|
|
89
|
+
return c`<span class="lintje-stepper__name"
|
|
90
90
|
>${e.label}<span class="visually-hidden">, ${h[e.state]}</span></span
|
|
91
91
|
>`;
|
|
92
92
|
}
|
|
93
93
|
renderBody(e, t) {
|
|
94
|
-
let
|
|
95
|
-
return
|
|
94
|
+
let n = this.layout === "column" ? e.description : void 0;
|
|
95
|
+
return c`<div class="lintje-stepper__body">
|
|
96
96
|
<div class="lintje-stepper__head">
|
|
97
|
-
${this.renderName(e)}${e.state === "done" && e.errors ?
|
|
97
|
+
${this.renderName(e)}${e.state === "done" && e.errors ? c`<span class="lintje-stepper__errors">${f(e.errors)}</span>` : o}${t ? o : c`<span class="lintje-stepper__line"></span>`}
|
|
98
98
|
</div>
|
|
99
|
-
${
|
|
99
|
+
${n ? c`<p class="lintje-stepper__description">${n}</p>` : o}${e.meta ? c`<span class="lintje-stepper__meta">${e.meta}</span>` : o}
|
|
100
100
|
</div>`;
|
|
101
101
|
}
|
|
102
102
|
renderPhone() {
|
|
103
103
|
let { place: e, total: t, percent: n } = p(this.steps), r = this.steps[e - 1], i = `Stap ${e} van ${t}`;
|
|
104
|
-
return
|
|
104
|
+
return c`<nav class="lintje-stepper lintje-stepper--phone" aria-label=${this.label}>
|
|
105
105
|
<div class="lintje-stepper__summary">
|
|
106
106
|
<strong class="lintje-stepper__current">${r?.label ?? ""}</strong>
|
|
107
107
|
<span class="lintje-stepper__count">${i}</span>
|
|
@@ -110,14 +110,14 @@ var h = {
|
|
|
110
110
|
</nav>`;
|
|
111
111
|
}
|
|
112
112
|
render() {
|
|
113
|
-
return this.#e.matches && !this.vertical ? this.renderPhone() :
|
|
113
|
+
return this.#e.matches && !this.vertical ? this.renderPhone() : c`<nav class="lintje-stepper" aria-label=${this.label}>
|
|
114
114
|
<ol class="lintje-stepper__list lintje-stepper__list--${this.layout}">
|
|
115
|
-
${this.steps.map((e, t) =>
|
|
116
|
-
class=${
|
|
115
|
+
${this.steps.map((e, t) => c`<li
|
|
116
|
+
class=${l({
|
|
117
117
|
"lintje-stepper__step": !0,
|
|
118
118
|
[`lintje-stepper__step--${e.state}`]: !0
|
|
119
119
|
})}
|
|
120
|
-
aria-current=${e.state === "current" ? "step" :
|
|
120
|
+
aria-current=${e.state === "current" ? "step" : o}
|
|
121
121
|
>
|
|
122
122
|
${this.renderMarker(e, t)}${this.renderBody(e, t === this.steps.length - 1)}
|
|
123
123
|
</li>`)}
|
|
@@ -125,6 +125,6 @@ var h = {
|
|
|
125
125
|
</nav>`;
|
|
126
126
|
}
|
|
127
127
|
};
|
|
128
|
-
|
|
128
|
+
i("lintje-stepper", g);
|
|
129
129
|
//#endregion
|
|
130
130
|
export { g as LintjeStepper, m as chooseLayout, f as errorText, p as position };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Jt as e, Q as t, Yt as n, Zt as r, en as i, nn as a, st as o } from "../chunks/base-CbmWxUig.js";
|
|
2
2
|
import { t as s } from "../chunks/sentence-end-8jlqKJ5P.js";
|
|
3
3
|
//#region src/components/feedback/streaming-text/streaming-text.css?inline
|
|
4
|
-
var c = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n/* Plain takes the type of where it stands, past the UI type every element sets on itself. */\n:host([variant='plain']) { font: inherit; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-streaming-text { display: flex; flex-direction: column; gap: var(--space-2); min-width: 0; }\n\n.lintje-streaming-text__box {\n padding: var(--space-3);\n background: var(--color-bg-page);\n border: 1px solid var(--color-border-default);\n font: var(--text-body);\n color: var(--color-text-primary);\n overflow-wrap: anywhere;\n}\n/* Keeps a line break the server sends; slotted prose keeps its own rules. */\n.lintje-streaming-text__plain { white-space: pre-wrap; }\n.lintje-streaming-text__box--waiting {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n font: var(--text-ui);\n}\n.lintje-streaming-text__waiting { color: var(--color-text-muted); }\n\n.lintje-streaming-text__caret {\n display: inline-block;\n width: 8px;\n height: 18px;\n margin-left: var(--space-1);\n vertical-align: text-bottom;\n background: var(--color-accent-line);\n animation: lintje-caret-blink var(--dur-skeleton) steps(1, end) infinite;\n}\n/* A keyframe only works in the root that uses it. */\n@keyframes lintje-caret-blink {\n 0% { opacity: 1; }\n 50% { opacity: 0; }\n}\n@media (prefers-reduced-motion: reduce) {\n .lintje-streaming-text__caret { animation: none; }\n}\n\n/* Plain: the surface around it is the box. */\n.lintje-streaming-text--plain .lintje-streaming-text__box {\n padding: 0;\n background: transparent;\n border: 0;\n font: inherit;\n}\n.lintje-streaming-text--plain .lintje-streaming-text__box--waiting { font: var(--text-ui); }\n\n.lintje-streaming-text__foot {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--space-2) var(--space-4);\n}\n.lintje-streaming-text__note { font: var(--text-small); color: var(--color-text-muted); }\n.lintje-streaming-text__note--error { font: var(--text-meta); font-weight: 700; color: var(--color-error-text); }\n", l = "Gestopt", u = "De verbinding viel weg. De tekst is niet af.", d = class extends
|
|
4
|
+
var c = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: none; }\n/* Plain takes the type of where it stands, past the UI type every element sets on itself. */\n:host([variant='plain']) { font: inherit; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-streaming-text { display: flex; flex-direction: column; gap: var(--space-2); min-width: 0; }\n\n.lintje-streaming-text__box {\n padding: var(--space-3);\n background: var(--color-bg-page);\n border: 1px solid var(--color-border-default);\n font: var(--text-body);\n color: var(--color-text-primary);\n overflow-wrap: anywhere;\n}\n/* Keeps a line break the server sends; slotted prose keeps its own rules. */\n.lintje-streaming-text__plain { white-space: pre-wrap; }\n.lintje-streaming-text__box--waiting {\n display: flex;\n align-items: center;\n gap: var(--space-2);\n font: var(--text-ui);\n}\n.lintje-streaming-text__waiting { color: var(--color-text-muted); }\n\n.lintje-streaming-text__caret {\n display: inline-block;\n width: 8px;\n height: 18px;\n margin-left: var(--space-1);\n vertical-align: text-bottom;\n background: var(--color-accent-line);\n animation: lintje-caret-blink var(--dur-skeleton) steps(1, end) infinite;\n}\n/* A keyframe only works in the root that uses it. */\n@keyframes lintje-caret-blink {\n 0% { opacity: 1; }\n 50% { opacity: 0; }\n}\n@media (prefers-reduced-motion: reduce) {\n .lintje-streaming-text__caret { animation: none; }\n}\n/* Paper holds the text as it stood; the caret only says that more is coming. */\n@media print {\n .lintje-streaming-text__caret { display: none; }\n}\n\n/* Plain: the surface around it is the box. */\n.lintje-streaming-text--plain .lintje-streaming-text__box {\n padding: 0;\n background: transparent;\n border: 0;\n font: inherit;\n}\n.lintje-streaming-text--plain .lintje-streaming-text__box--waiting { font: var(--text-ui); }\n\n.lintje-streaming-text__foot {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: var(--space-2) var(--space-4);\n}\n.lintje-streaming-text__note { font: var(--text-small); color: var(--color-text-muted); }\n.lintje-streaming-text__note--error { font: var(--text-meta); font-weight: 700; color: var(--color-error-text); }\n", l = "Gestopt", u = "De verbinding viel weg. De tekst is niet af.", d = class extends e {
|
|
5
5
|
constructor(...e) {
|
|
6
6
|
super(...e), this.text = "", this.state = "waiting", this.label = "Bezig met schrijven", this.variant = "box", this.spoken = [], this.said = 0, this.focusRetry = !1;
|
|
7
7
|
}
|
|
8
8
|
static {
|
|
9
|
-
this.styles =
|
|
9
|
+
this.styles = r(c);
|
|
10
10
|
}
|
|
11
11
|
static {
|
|
12
12
|
this.properties = {
|
|
@@ -30,17 +30,17 @@ var c = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: non
|
|
|
30
30
|
willUpdate(e) {
|
|
31
31
|
if (super.willUpdate(e), e.get("state") === "streaming" && this.ended) {
|
|
32
32
|
let e = this.renderRoot.querySelector(".lintje-streaming-text__stop");
|
|
33
|
-
e &&
|
|
33
|
+
e && t(e) && (this.focusRetry = !0);
|
|
34
34
|
}
|
|
35
35
|
if (!e.has("text") && !e.has("state") && !e.has("message")) return;
|
|
36
|
-
let
|
|
37
|
-
|
|
36
|
+
let n = e.get("text") ?? "", r = e.has("text") && !this.text.startsWith(n) || e.has("state") && this.state === "waiting", i = r ? [] : [...this.spoken];
|
|
37
|
+
r && (this.said = 0);
|
|
38
38
|
let a = this.text.slice(this.said), o = this.ended ? a.length : s(a);
|
|
39
39
|
if (o > 0) {
|
|
40
40
|
let e = a.slice(0, o).trim();
|
|
41
41
|
e && i.push(e), this.said += o;
|
|
42
42
|
}
|
|
43
|
-
e.has("state") && this.state === "stopped" && i.push(l), (e.has("state") || e.has("message")) && this.state === "error" && i.push(this.message || u), (
|
|
43
|
+
e.has("state") && this.state === "stopped" && i.push(l), (e.has("state") || e.has("message")) && this.state === "error" && i.push(this.message || u), (r || i.length !== this.spoken.length) && (this.spoken = i);
|
|
44
44
|
}
|
|
45
45
|
updated(e) {
|
|
46
46
|
if (super.updated(e), !this.focusRetry || !this.ended) return;
|
|
@@ -62,10 +62,10 @@ var c = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: non
|
|
|
62
62
|
if (this.state === "done") return a`<div class="lintje-streaming-text__box" tabindex="-1">
|
|
63
63
|
<slot><span class="lintje-streaming-text__plain">${this.text}</span></slot>
|
|
64
64
|
</div>`;
|
|
65
|
-
if (!this.text && this.state !== "streaming") return
|
|
65
|
+
if (!this.text && this.state !== "streaming") return i;
|
|
66
66
|
let e = this.state === "streaming";
|
|
67
67
|
return a`<div class="lintje-streaming-text__box" aria-busy=${e ? "true" : "false"}
|
|
68
|
-
><span class="lintje-streaming-text__plain">${this.text}</span>${e ? a`<span class="lintje-streaming-text__caret" aria-hidden="true"></span>` :
|
|
68
|
+
><span class="lintje-streaming-text__plain">${this.text}</span>${e ? a`<span class="lintje-streaming-text__caret" aria-hidden="true"></span>` : i}</div
|
|
69
69
|
>`;
|
|
70
70
|
}
|
|
71
71
|
renderFoot() {
|
|
@@ -78,11 +78,11 @@ var c = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: non
|
|
|
78
78
|
>Stoppen</lintje-button
|
|
79
79
|
>
|
|
80
80
|
</div>`;
|
|
81
|
-
if (this.state !== "stopped" && this.state !== "error") return
|
|
81
|
+
if (this.state !== "stopped" && this.state !== "error") return i;
|
|
82
82
|
let e = this.state === "error";
|
|
83
83
|
return a`<div class="lintje-streaming-text__foot">
|
|
84
84
|
<span
|
|
85
|
-
class=${
|
|
85
|
+
class=${o({
|
|
86
86
|
"lintje-streaming-text__note": !0,
|
|
87
87
|
"lintje-streaming-text__note--error": e
|
|
88
88
|
})}
|
|
@@ -99,7 +99,7 @@ var c = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: non
|
|
|
99
99
|
}
|
|
100
100
|
render() {
|
|
101
101
|
return a`<div
|
|
102
|
-
class=${
|
|
102
|
+
class=${o({
|
|
103
103
|
"lintje-streaming-text": !0,
|
|
104
104
|
"lintje-streaming-text--plain": this.variant === "plain"
|
|
105
105
|
})}
|
|
@@ -111,6 +111,6 @@ var c = ":host { display: block; min-width: 0; }\n:host([hidden]) { display: non
|
|
|
111
111
|
</div>`;
|
|
112
112
|
}
|
|
113
113
|
};
|
|
114
|
-
|
|
114
|
+
n("lintje-streaming-text", d);
|
|
115
115
|
//#endregion
|
|
116
116
|
export { d as LintjeStreamingText, s as sentenceEnd };
|