lintje 0.1.1 → 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/charts.js +1 -1
- package/dist-elements/chunks/{base-rBLTcEIv.js → base-CbmWxUig.js} +538 -337
- package/dist-elements/chunks/{controls-B1455oPG.js → controls-DxmnDSBr.js} +6 -0
- package/dist-elements/chunks/{date-format-B5DPGjAw.js → date-format-mHtZyBys.js} +28 -2
- package/dist-elements/chunks/dialog-DChINFxD.js +28 -0
- package/dist-elements/chunks/disclosure-D39vAR5q.js +4 -0
- package/dist-elements/chunks/{disclosure-CHasOudX.js → disclosure-DLkXPUpV.js} +10 -10
- package/dist-elements/chunks/download-Ct9q2anY.js +206 -0
- package/dist-elements/chunks/{focus-trap-w3vCamJ6.js → focus-trap-BwOxE5BX.js} +1 -1
- package/dist-elements/chunks/input-CRW_exv_.js +195 -0
- package/dist-elements/chunks/{player-Bq9YGnpt.js → player-B8QXJ0Z5.js} +35 -35
- package/dist-elements/chunks/{sentence-CLNJOeXz.js → sentence-B19AyZBS.js} +1 -1
- package/dist-elements/chunks/{stagger-9hYzxhMG.js → stagger-BHoOgy0g.js} +163 -135
- package/dist-elements/core.js +1 -1
- package/dist-elements/custom-elements.json +2049 -1329
- 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 +9 -1
- package/dist-elements/guides/events.md +7 -7
- package/dist-elements/guides/loading.md +10 -9
- package/dist-elements/guides/page-contents.md +110 -0
- package/dist-elements/guides/start.md +13 -1
- package/dist-elements/inputs.js +3 -1
- package/dist-elements/layout.js +1 -1
- package/dist-elements/lintje.js +24508 -23210
- package/dist-elements/map.js +1 -1
- 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 +18 -18
- package/dist-elements/tag/ai-label.js +11 -11
- package/dist-elements/tag/announcement.js +36 -76
- package/dist-elements/tag/app-search.js +50 -50
- package/dist-elements/tag/audio-player.js +57 -57
- package/dist-elements/tag/badge.js +1 -1
- package/dist-elements/tag/breadcrumbs.js +20 -20
- package/dist-elements/tag/button.js +1 -1
- package/dist-elements/tag/card-list.js +12 -12
- package/dist-elements/tag/card.js +51 -56
- package/dist-elements/tag/chart.d.ts +1 -0
- package/dist-elements/tag/chart.js +2123 -0
- package/dist-elements/tag/chat-answer.js +51 -51
- package/dist-elements/tag/chat-composer.js +75 -71
- package/dist-elements/tag/chat-message.js +13 -13
- 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 +4 -4
- package/dist-elements/tag/code.js +7 -7
- package/dist-elements/tag/combobox.js +18 -18
- package/dist-elements/tag/conflict-alert.js +12 -12
- package/dist-elements/tag/copy-button.js +17 -17
- package/dist-elements/tag/data-table.js +880 -532
- package/dist-elements/tag/date-input.js +44 -52
- package/dist-elements/tag/date-range.js +42 -42
- 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 +29 -29
- package/dist-elements/tag/drawer.js +27 -31
- 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 +16 -16
- package/dist-elements/tag/expander.js +7 -7
- package/dist-elements/tag/explainer.js +11 -11
- package/dist-elements/tag/field.js +7 -7
- package/dist-elements/tag/file-upload.js +32 -32
- package/dist-elements/tag/filter-bar.js +57 -57
- package/dist-elements/tag/filter-sheet.js +12 -12
- package/dist-elements/tag/filter-zone.js +31 -31
- package/dist-elements/tag/footer.js +21 -21
- package/dist-elements/tag/form-actions.js +30 -26
- package/dist-elements/tag/form-section.js +7 -7
- package/dist-elements/tag/form.js +12 -12
- package/dist-elements/tag/gallery.js +16 -16
- 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 +9 -9
- package/dist-elements/tag/icon-button.js +1 -1
- package/dist-elements/tag/icon.js +1 -1
- package/dist-elements/tag/job-list.js +23 -45
- package/dist-elements/tag/kpi-row.js +14 -10
- package/dist-elements/tag/kpi.js +276 -77
- package/dist-elements/tag/level-meter.js +11 -11
- package/dist-elements/tag/list.js +63 -63
- package/dist-elements/tag/logo.js +34 -34
- package/dist-elements/tag/map.d.ts +1 -0
- package/dist-elements/tag/map.js +21935 -0
- package/dist-elements/tag/menu-button.js +70 -68
- package/dist-elements/tag/modal.js +27 -36
- package/dist-elements/tag/multiselect.js +33 -33
- package/dist-elements/tag/note.js +6 -6
- package/dist-elements/tag/notifications.js +36 -36
- package/dist-elements/tag/number-input.js +6 -6
- package/dist-elements/tag/page-header.js +138 -35
- package/dist-elements/tag/pagination.js +54 -49
- 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 +8 -8
- package/dist-elements/tag/radio-group.js +7 -7
- package/dist-elements/tag/range.js +28 -28
- package/dist-elements/tag/recording-status.js +16 -16
- package/dist-elements/tag/repeater.js +10 -10
- package/dist-elements/tag/segmented.js +9 -9
- package/dist-elements/tag/select.js +6 -6
- package/dist-elements/tag/shell.js +356 -339
- package/dist-elements/tag/skeleton.js +1 -1
- package/dist-elements/tag/slot-picker.d.ts +1 -0
- package/dist-elements/tag/slot-picker.js +74 -0
- package/dist-elements/tag/sortable-list.js +18 -18
- 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 +21 -21
- package/dist-elements/tag/sub-nav.js +40 -39
- package/dist-elements/tag/tabs.js +38 -38
- package/dist-elements/tag/tag-input.js +19 -19
- package/dist-elements/tag/text-editor.js +19 -19
- package/dist-elements/tag/text-input.js +6 -6
- package/dist-elements/tag/textarea.js +16 -16
- package/dist-elements/tag/tile.js +1 -1
- package/dist-elements/tag/time-input.js +136 -42
- package/dist-elements/tag/toast.js +32 -23
- package/dist-elements/tag/toggle.js +4 -4
- package/dist-elements/tag/toggletip.js +27 -27
- package/dist-elements/tag/tooltip.js +1 -1
- package/dist-elements/tag/transcript.js +47 -47
- package/dist-elements/tag/translator.js +13 -13
- package/dist-elements/tag/tree-view.js +20 -20
- package/dist-elements/tag/user-menu.js +42 -41
- package/dist-elements/tag/video-player.js +21 -21
- package/dist-elements/tokens.css +122 -96
- package/dist-elements/types/bundle/charts.d.ts +1 -1
- 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/index.d.ts +1 -1
- package/dist-elements/types/bundle/inputs.d.ts +2 -0
- package/dist-elements/types/bundle/map.d.ts +1 -1
- 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-tile/chart-tile.d.ts → chart/chart.d.ts} +12 -11
- package/dist-elements/types/components/charts/kpi/gauge.d.ts +18 -0
- package/dist-elements/types/components/charts/kpi/kpi.d.ts +38 -5
- 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 +8 -9
- 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 +16 -14
- 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-format.d.ts +4 -0
- 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 +42 -0
- 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-format.d.ts +4 -0
- package/dist-elements/types/components/inputs/time-input/time-input.d.ts +25 -7
- 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-tile/map-tile.d.ts → map/map.d.ts} +16 -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 +7 -12
- package/dist-elements/types/components/overlays/toggletip/toggletip.d.ts +3 -7
- package/dist-elements/types/components/shared/charts/histogram-chart/histogram-chart.d.ts +33 -0
- package/dist-elements/types/components/shared/charts/index.d.ts +7 -2
- 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/area.d.ts +16 -0
- package/dist-elements/types/components/shared/charts/map-chart/drawings.d.ts +6 -2
- package/dist-elements/types/components/shared/charts/map-chart/geo.d.ts +6 -0
- package/dist-elements/types/components/shared/charts/map-chart/leaflet.d.ts +45 -2
- package/dist-elements/types/components/shared/charts/map-chart/map-chart.d.ts +17 -3
- package/dist-elements/types/components/shared/charts/map-chart/map-legend.d.ts +26 -0
- package/dist-elements/types/components/shared/charts/map-chart/marks.d.ts +47 -0
- package/dist-elements/types/components/shared/charts/map-chart/reveal.d.ts +1 -1
- package/dist-elements/types/components/shared/charts/scatter-chart/scatter-chart.d.ts +29 -0
- package/dist-elements/types/components/shared/charts/shared/axes.d.ts +21 -4
- package/dist-elements/types/components/shared/charts/shared/chart-icons.d.ts +4 -3
- package/dist-elements/types/components/shared/charts/shared/chart-states.d.ts +8 -19
- package/dist-elements/types/components/shared/charts/shared/controller.d.ts +34 -15
- package/dist-elements/types/components/shared/charts/shared/types.d.ts +141 -6
- 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/format.d.ts +5 -2
- 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/place.d.ts +1 -1
- 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 +8 -6
- package/dist-elements/types/types.d.ts +106 -16
- package/dist-icons/functioneel-cirkelselectie.svg +1 -0
- package/dist-icons/functioneel-kolommen.svg +1 -0
- package/dist-icons/functioneel-lasso.svg +1 -0
- package/dist-icons/functioneel-punaise-outline.svg +1 -0
- package/dist-icons/functioneel-punaise.svg +1 -0
- package/dist-icons/functioneel-rechthoekselectie.svg +1 -0
- package/dist-icons/functioneel-selectie.svg +1 -0
- package/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/disclosure-Z7Ny17sS.js +0 -4
- package/dist-elements/chunks/download-lFooAfD1.js +0 -226
- package/dist-elements/chunks/input-jQVTln7H.js +0 -195
- package/dist-elements/tag/chart-tile.d.ts +0 -1
- package/dist-elements/tag/chart-tile.js +0 -1474
- package/dist-elements/tag/confirm-dialog.d.ts +0 -1
- package/dist-elements/tag/confirm-dialog.js +0 -118
- package/dist-elements/tag/map-tile.d.ts +0 -1
- package/dist-elements/tag/map-tile.js +0 -22292
- 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,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { a as s, i as c, n as l, t as u } from "../chunks/input-
|
|
1
|
+
import { Yt as e, Zt as t, bt as n, en as r, lt as i, nn as a, st as o } from "../chunks/base-CbmWxUig.js";
|
|
2
|
+
import { a as s, i as c, n as l, t as u } from "../chunks/input-CRW_exv_.js";
|
|
3
3
|
import { t as d } from "../chunks/debounce-JXnLMCcF.js";
|
|
4
4
|
//#region src/components/inputs/textarea/textarea.css?inline
|
|
5
|
-
var f = "/* The multi-line text field. */\n: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, and\n fills the height the surface gives it. */\n:host([variant='plain']) { display: flex; flex-direction: column; font: inherit; }\n/* Below 768 px: the full width, as `stacked`. */\n@media (max-width: 767px) {\n :host { width: 100%; }\n}\n\n/* --- */\n\n/* `rows` lines at least (three by default); grows with its content up to twelve, then scrolls. */\n.lintje-textarea__control {\n display: block;\n width: 100%;\n min-height: calc(var(--lintje-rows, 3) * 1lh + var(--space-4) + 2px);\n max-height: calc(12lh + var(--space-4) + 2px);\n field-sizing: content;\n padding: var(--space-2) 14px;\n border: 1px solid var(--color-border-field);\n border-radius: var(--radius);\n background: var(--color-bg-surface);\n color: var(--color-text-primary);\n font: var(--text-body);\n resize: vertical;\n overflow-y: auto;\n}\n.lintje-textarea__control::placeholder { color: var(--color-text-placeholder); opacity: 1; }\n/* The padding gives back the pixel the 2 px error border takes. */\n.lintje-textarea__control.is-error { border: 2px solid var(--color-error); padding: 7px 13px; }\n/* Disabled wins over read-only, read-only over error. */\n.lintje-textarea__control.is-readonly {\n border: 1px solid var(--color-border-strong);\n padding: var(--space-2) 14px;\n background: var(--color-bg-subtle);\n color: var(--color-text-primary);\n cursor: default;\n}\n.lintje-textarea__control:disabled {\n border: 1px solid var(--color-border-strong);\n padding: var(--space-2) 14px;\n background: var(--color-bg-subtle);\n color: var(--color-text-disabled);\n cursor: not-allowed;\n}\n\n/* Plain: the surface around it is the field, and draws the focus ring around itself, so the\n ring does not sit tight against the text. It keeps growing; the surface decides the height. */\n:host([variant='plain']) .lintje-field { flex: 1; }\n.lintje-textarea__control--plain { flex: 1; }\n.lintje-textarea__control--plain:focus-visible { outline: none; }\n.lintje-textarea__control--plain,\n.lintje-textarea__control--plain.is-readonly,\n.lintje-textarea__control--plain:disabled {\n min-height: calc(var(--lintje-rows, 3) * 1lh);\n max-height: none;\n padding: 0;\n border: 0;\n background: transparent;\n font: inherit;\n resize: none;\n}\n.lintje-textarea__control--plain.is-error { padding: 0 0 var(--space-1); border: 0; border-bottom: 2px solid var(--color-error); }\n\n.lintje-textarea__counter {\n align-self: flex-end;\n font: var(--text-meta);\n color: var(--color-text-muted);\n}\n.lintje-textarea__counter.is-over { color: var(--color-error-text); font-weight: 700; }\n", p = new Intl.NumberFormat("nl-NL");
|
|
5
|
+
var f = "/* The multi-line text field. */\n: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, and\n fills the height the surface gives it. */\n:host([variant='plain']) { display: flex; flex-direction: column; font: inherit; }\n/* Below 768 px: the full width, as `stacked`. */\n@media screen and (max-width: 767px) {\n :host { width: 100%; }\n}\n\n/* --- */\n\n/* `rows` lines at least (three by default); grows with its content up to twelve, then scrolls. */\n.lintje-textarea__control {\n display: block;\n width: 100%;\n min-height: calc(var(--lintje-rows, 3) * 1lh + var(--space-4) + 2px);\n max-height: calc(12lh + var(--space-4) + 2px);\n field-sizing: content;\n padding: var(--space-2) 14px;\n border: 1px solid var(--color-border-field);\n border-radius: var(--radius);\n background: var(--color-bg-surface);\n color: var(--color-text-primary);\n font: var(--text-body);\n resize: vertical;\n overflow-y: auto;\n}\n.lintje-textarea__control::placeholder { color: var(--color-text-placeholder); opacity: 1; }\n/* The padding gives back the pixel the 2 px error border takes. */\n.lintje-textarea__control.is-error { border: 2px solid var(--color-error); padding: 7px 13px; }\n/* Disabled wins over read-only, read-only over error. */\n.lintje-textarea__control.is-readonly {\n border: 1px solid var(--color-border-strong);\n padding: var(--space-2) 14px;\n background: var(--color-bg-subtle);\n color: var(--color-text-primary);\n cursor: default;\n}\n.lintje-textarea__control:disabled {\n border: 1px solid var(--color-border-strong);\n padding: var(--space-2) 14px;\n background: var(--color-bg-subtle);\n color: var(--color-text-disabled);\n cursor: not-allowed;\n}\n\n/* Plain: the surface around it is the field, and draws the focus ring around itself, so the\n ring does not sit tight against the text. It keeps growing; the surface decides the height. */\n:host([variant='plain']) .lintje-field { flex: 1; }\n.lintje-textarea__control--plain { flex: 1; }\n.lintje-textarea__control--plain:focus-visible { outline: none; }\n.lintje-textarea__control--plain,\n.lintje-textarea__control--plain.is-readonly,\n.lintje-textarea__control--plain:disabled {\n min-height: calc(var(--lintje-rows, 3) * 1lh);\n max-height: none;\n padding: 0;\n border: 0;\n background: transparent;\n font: inherit;\n resize: none;\n}\n.lintje-textarea__control--plain.is-error { padding: 0 0 var(--space-1); border: 0; border-bottom: 2px solid var(--color-error); }\n\n.lintje-textarea__counter {\n align-self: flex-end;\n font: var(--text-meta);\n color: var(--color-text-muted);\n}\n.lintje-textarea__counter.is-over { color: var(--color-error-text); font-weight: 700; }\n", p = new Intl.NumberFormat("nl-NL");
|
|
6
6
|
function m(e, t) {
|
|
7
7
|
return `${p.format(e)} / ${p.format(t)} tekens`;
|
|
8
8
|
}
|
|
@@ -20,9 +20,9 @@ var _ = typeof CSS < "u" && typeof CSS.supports == "function" && CSS.supports("f
|
|
|
20
20
|
}
|
|
21
21
|
static {
|
|
22
22
|
this.styles = [
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
i,
|
|
24
|
+
t(u),
|
|
25
|
+
t(f)
|
|
26
26
|
];
|
|
27
27
|
}
|
|
28
28
|
static {
|
|
@@ -96,7 +96,7 @@ var _ = typeof CSS < "u" && typeof CSS.supports == "function" && CSS.supports("f
|
|
|
96
96
|
hintId: this.hintId,
|
|
97
97
|
errorId: this.errorId
|
|
98
98
|
});
|
|
99
|
-
return [e ===
|
|
99
|
+
return [e === r ? "" : e, this.counterShown ? this.counterId : ""].filter(Boolean).join(" ") || r;
|
|
100
100
|
}
|
|
101
101
|
get counterShown() {
|
|
102
102
|
return !!this.maxlength && !this.disabled;
|
|
@@ -108,10 +108,10 @@ var _ = typeof CSS < "u" && typeof CSS.supports == "function" && CSS.supports("f
|
|
|
108
108
|
}, !this.#n || this.#r);
|
|
109
109
|
if (!this.counterShown) return e;
|
|
110
110
|
let t = this.maxlength, n = this.value.length;
|
|
111
|
-
return
|
|
111
|
+
return a`${e}<span
|
|
112
112
|
id=${this.counterId}
|
|
113
113
|
part="counter"
|
|
114
|
-
class=${
|
|
114
|
+
class=${o({
|
|
115
115
|
"lintje-textarea__counter": !0,
|
|
116
116
|
"is-over": n > t
|
|
117
117
|
})}
|
|
@@ -121,24 +121,24 @@ var _ = typeof CSS < "u" && typeof CSS.supports == "function" && CSS.supports("f
|
|
|
121
121
|
}
|
|
122
122
|
render() {
|
|
123
123
|
let e = this.message;
|
|
124
|
-
return
|
|
124
|
+
return a`<div class="lintje-field">
|
|
125
125
|
${this.renderLabel(this.controlId)}
|
|
126
126
|
<textarea
|
|
127
127
|
id=${this.controlId}
|
|
128
|
-
class=${
|
|
128
|
+
class=${o({
|
|
129
129
|
"lintje-textarea__control": !0,
|
|
130
130
|
"lintje-textarea__control--plain": this.variant === "plain",
|
|
131
131
|
"is-error": !!e,
|
|
132
132
|
"is-readonly": this.readonly
|
|
133
133
|
})}
|
|
134
134
|
rows=${this.rows}
|
|
135
|
-
${
|
|
135
|
+
${n({ "--lintje-rows": this.rows })}
|
|
136
136
|
.value=${this.value}
|
|
137
|
-
placeholder=${this.placeholder ||
|
|
137
|
+
placeholder=${this.placeholder || r}
|
|
138
138
|
aria-labelledby=${this.labelId}
|
|
139
139
|
aria-describedby=${this.describedBy}
|
|
140
|
-
aria-invalid=${e ? "true" :
|
|
141
|
-
aria-required=${this.required ? "true" :
|
|
140
|
+
aria-invalid=${e ? "true" : r}
|
|
141
|
+
aria-required=${this.required ? "true" : r}
|
|
142
142
|
?required=${this.required}
|
|
143
143
|
?readonly=${this.readonly}
|
|
144
144
|
?disabled=${this.disabled}
|
|
@@ -150,6 +150,6 @@ var _ = typeof CSS < "u" && typeof CSS.supports == "function" && CSS.supports("f
|
|
|
150
150
|
</div>`;
|
|
151
151
|
}
|
|
152
152
|
};
|
|
153
|
-
|
|
153
|
+
e("lintje-textarea", v);
|
|
154
154
|
//#endregion
|
|
155
155
|
export { v as LintjeTextarea, g as counterSpeaks, m as counterText, h as limitMessage };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { w as LintjeTile } from "../chunks/base-CbmWxUig.js";
|
|
@@ -1,57 +1,65 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { r as
|
|
1
|
+
import { Yt as e, Zt as t, en as n, et as r, lt as i, m as a, nn as o, st as s, ut as c } from "../chunks/base-CbmWxUig.js";
|
|
2
|
+
import { r as l, t as u } from "../chunks/input-CRW_exv_.js";
|
|
3
3
|
//#region src/components/inputs/time-input/time-input.css?inline
|
|
4
|
-
var
|
|
5
|
-
function
|
|
6
|
-
return !Number.isInteger(e) || !Number.isInteger(t) || e < 0 || e > 23 || t < 0 || t > 59 ? null : `${
|
|
4
|
+
var d = "/* The time input: a text field with a list button, and the list in a `lintje-popover`. */\n:host {\n display: block;\n min-width: 0;\n width: 120px;\n}\n:host([hidden]) { display: none; }\n:host([stacked]) {\n width: 100%;\n --h-control: var(--h-touch);\n}\n@media screen and (max-width: 767px) {\n :host {\n width: 100%;\n --h-control: var(--h-touch);\n }\n}\n\n/* --- */\n\n/* --- The field ----------------------------------------------------------- */\n.lintje-time-input { position: relative; display: flex; align-items: center; }\n.lintje-time-input__control {\n width: 100%; height: var(--h-control);\n padding: 0 calc(var(--h-control) - 2px + var(--space-2)) 0 14px;\n border: 1px solid var(--color-border-field);\n background: var(--color-bg-surface);\n color: var(--color-text-primary);\n font-size: 1rem;\n font-variant-numeric: tabular-nums;\n border-radius: var(--radius);\n}\n.lintje-time-input__control::placeholder { color: var(--color-text-placeholder); opacity: 1; }\n.lintje-time-input__control.is-error { border: 2px solid var(--color-error); }\n/* Disabled wins over error: after it, the whole border back to 1 px strong. */\n.lintje-time-input__control:disabled {\n border: 1px solid var(--color-border-strong);\n background: var(--color-bg-subtle);\n color: var(--color-text-disabled);\n cursor: not-allowed;\n}\n\n.lintje-time-input__toggle {\n position: absolute; top: 1px; right: 1px;\n width: calc(var(--h-control) - 2px); height: calc(var(--h-control) - 2px);\n display: flex; align-items: center; justify-content: center;\n border-left: 1px solid var(--color-border-default);\n background: transparent;\n color: var(--color-accent-text);\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n/* A transparent hit area reaches the target height, never to the left where the typing part is. */\n.lintje-time-input__toggle::after {\n content: '';\n position: absolute;\n inset: min(0px, calc((100% - var(--h-target)) / 2)) min(0px, calc(100% - var(--h-target)))\n min(0px, calc((100% - var(--h-target)) / 2)) 0;\n}\n/* The button steps in past the 2 px error border; a disabled field has 1 px again. */\n.lintje-time-input__control.is-error:not(:disabled) + .lintje-time-input__toggle {\n top: 2px; right: 2px;\n width: calc(var(--h-control) - 4px); height: calc(var(--h-control) - 4px);\n}\n.lintje-time-input__toggle:hover:not(:disabled) { background: var(--color-bg-selected); }\n.lintje-time-input__toggle:disabled { color: var(--color-text-disabled); cursor: not-allowed; }\n\n/* --- The list ------------------------------------------------------------ */\n/* A dense list (`--h-option`): at most seven rows in view, then it scrolls. */\n.lintje-time-input__panel { padding: var(--space-1) 0; }\n.lintje-time-input__list {\n max-height: calc(7 * var(--h-option));\n overflow-y: auto;\n font: var(--text-ui);\n}\n.lintje-time-input__option {\n display: flex; align-items: center;\n width: 100%;\n min-height: var(--h-option);\n padding: 0 14px;\n background: transparent;\n color: var(--color-text-primary);\n font-variant-numeric: tabular-nums;\n cursor: pointer;\n transition: background var(--dur-hover) var(--ease-in-motion);\n}\n.lintje-time-input__option:hover { background: var(--color-bg-subtle); }\n.lintje-time-input__option.is-selected { background: var(--color-bg-selected); font-weight: 700; }\n/* The fill alone is about 1.1:1, so the focus ring stands inside the row. */\n.lintje-time-input__option:focus-visible {\n outline: var(--focus-width) solid var(--color-focus);\n outline-offset: calc(var(--focus-width) * -1);\n}\n\n/* Forced colours drop fills: the chosen row takes an edge inside the row, so none changes size. */\n@media (forced-colors: active) {\n .lintje-time-input__option.is-selected { outline: 2px solid Highlight; outline-offset: -2px; }\n .lintje-time-input__option:focus-visible { outline-color: Highlight; }\n}\n", f = 1440, p = /^(\d{1,2})[:.](\d{2})$/, m = /^\d{1,4}$/, h = /^(\d{2}):(\d{2})$/, g = (e) => String(e).padStart(2, "0");
|
|
5
|
+
function _(e, t) {
|
|
6
|
+
return !Number.isInteger(e) || !Number.isInteger(t) || e < 0 || e > 23 || t < 0 || t > 59 ? null : `${g(e)}:${g(t)}`;
|
|
7
7
|
}
|
|
8
|
-
function
|
|
9
|
-
let t = e ?
|
|
8
|
+
function v(e) {
|
|
9
|
+
let t = e ? h.exec(e) : null;
|
|
10
10
|
if (!t) return null;
|
|
11
11
|
let [n, r] = [Number(t[1]), Number(t[2])];
|
|
12
|
-
return
|
|
13
|
-
}
|
|
14
|
-
var v = (e) => _(e) !== null;
|
|
15
|
-
function y(e) {
|
|
16
|
-
let t = (e % d + d) % d;
|
|
17
|
-
return `${h(Math.floor(t / 60))}:${h(t % 60)}`;
|
|
12
|
+
return _(n, r) ? n * 60 + r : null;
|
|
18
13
|
}
|
|
14
|
+
var y = (e) => v(e) !== null;
|
|
19
15
|
function b(e) {
|
|
16
|
+
let t = (e % f + f) % f;
|
|
17
|
+
return `${g(Math.floor(t / 60))}:${g(t % 60)}`;
|
|
18
|
+
}
|
|
19
|
+
function x(e) {
|
|
20
20
|
let t = e.trim();
|
|
21
21
|
if (t === "") return { kind: "empty" };
|
|
22
|
-
let n, r, i =
|
|
22
|
+
let n, r, i = p.exec(t);
|
|
23
23
|
if (i) n = Number(i[1]), r = Number(i[2]);
|
|
24
|
-
else if (
|
|
24
|
+
else if (m.test(t)) {
|
|
25
25
|
let e = t.length <= 2 ? `${t}00` : t;
|
|
26
26
|
n = Number(e.slice(0, -2)), r = Number(e.slice(-2));
|
|
27
27
|
} else return { kind: "invalid" };
|
|
28
|
-
let a =
|
|
28
|
+
let a = _(n, r);
|
|
29
29
|
return a ? {
|
|
30
30
|
kind: "ok",
|
|
31
31
|
time: a
|
|
32
32
|
} : { kind: "invalid" };
|
|
33
33
|
}
|
|
34
|
-
function
|
|
35
|
-
return
|
|
34
|
+
function S(e, t) {
|
|
35
|
+
return b((v(e) ?? 0) + t);
|
|
36
36
|
}
|
|
37
|
-
function
|
|
37
|
+
function C(e, t = /* @__PURE__ */ new Date()) {
|
|
38
38
|
let n = t.getHours() * 60 + t.getMinutes(), r = e > 0 ? e : 1;
|
|
39
|
-
return
|
|
39
|
+
return b(Math.round(n / r) * r);
|
|
40
|
+
}
|
|
41
|
+
function w(e, t, n) {
|
|
42
|
+
return y(t) && e < t ? t : y(n) && e > n ? n : e;
|
|
40
43
|
}
|
|
41
|
-
function
|
|
42
|
-
|
|
44
|
+
function T(e, t, n = 15) {
|
|
45
|
+
let r = n >= 1 ? Math.floor(n) : 1, i = v(e) ?? 0, a = v(t) ?? 1439, o = [];
|
|
46
|
+
for (let e = i; e <= a; e += r) o.push(b(e));
|
|
47
|
+
return o;
|
|
48
|
+
}
|
|
49
|
+
function E(e, t) {
|
|
50
|
+
return e.find((e) => e >= t) ?? e[e.length - 1] ?? "";
|
|
43
51
|
}
|
|
44
52
|
//#endregion
|
|
45
53
|
//#region src/components/inputs/time-input/time-input.ts
|
|
46
|
-
var
|
|
54
|
+
var D = class extends l {
|
|
47
55
|
constructor(...e) {
|
|
48
|
-
super(...e), this.value = null, this.step = 15, this.placeholder = "", this.stacked = !1, this.hint = "uu:mm", this.text = "", this.problem = "";
|
|
56
|
+
super(...e), this.value = null, this.step = 15, this.placeholder = "", this.stacked = !1, this.open = !1, this.hint = "uu:mm", this.text = "", this.problem = "", this.focusTime = "";
|
|
49
57
|
}
|
|
50
58
|
static {
|
|
51
59
|
this.styles = [
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
60
|
+
i,
|
|
61
|
+
t(u),
|
|
62
|
+
t(d)
|
|
55
63
|
];
|
|
56
64
|
}
|
|
57
65
|
static {
|
|
@@ -65,8 +73,13 @@ var w = class extends c {
|
|
|
65
73
|
type: Boolean,
|
|
66
74
|
reflect: !0
|
|
67
75
|
},
|
|
76
|
+
open: {
|
|
77
|
+
type: Boolean,
|
|
78
|
+
reflect: !0
|
|
79
|
+
},
|
|
68
80
|
text: { state: !0 },
|
|
69
|
-
problem: { state: !0 }
|
|
81
|
+
problem: { state: !0 },
|
|
82
|
+
focusTime: { state: !0 }
|
|
70
83
|
};
|
|
71
84
|
}
|
|
72
85
|
get message() {
|
|
@@ -75,17 +88,20 @@ var w = class extends c {
|
|
|
75
88
|
get footMessage() {
|
|
76
89
|
return this.message;
|
|
77
90
|
}
|
|
91
|
+
get times() {
|
|
92
|
+
return T(this.min, this.max, this.step);
|
|
93
|
+
}
|
|
78
94
|
willUpdate(e) {
|
|
79
|
-
super.willUpdate(e), e.has("value") && (this.text =
|
|
95
|
+
super.willUpdate(e), e.has("value") && (this.text = y(this.value) ? this.value : "", this.problem = "");
|
|
80
96
|
}
|
|
81
97
|
outOfBounds(e) {
|
|
82
|
-
return
|
|
98
|
+
return y(this.min) && e < this.min ? `Kies een tijd op of na ${this.min}` : y(this.max) && e > this.max ? `Kies een tijd op of voor ${this.max}` : "";
|
|
83
99
|
}
|
|
84
100
|
choose(e) {
|
|
85
101
|
this.problem = "", this.text = e ?? "", e !== this.value && (this.value = e, this.commit(e));
|
|
86
102
|
}
|
|
87
103
|
onChange(e) {
|
|
88
|
-
let t = e.target.value, n =
|
|
104
|
+
let t = e.target.value, n = x(t);
|
|
89
105
|
if (n.kind === "empty") return this.choose(null);
|
|
90
106
|
if (this.text = t, n.kind === "invalid") {
|
|
91
107
|
this.problem = "Vul een tijd in als uu:mm";
|
|
@@ -95,6 +111,10 @@ var w = class extends c {
|
|
|
95
111
|
r ? this.problem = r : this.choose(n.time);
|
|
96
112
|
}
|
|
97
113
|
onKeydown(e) {
|
|
114
|
+
if (e.altKey && e.key === "ArrowDown") {
|
|
115
|
+
e.preventDefault(), this.openList();
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
98
118
|
let t = {
|
|
99
119
|
ArrowUp: 1,
|
|
100
120
|
ArrowDown: -1,
|
|
@@ -103,12 +123,72 @@ var w = class extends c {
|
|
|
103
123
|
}[e.key];
|
|
104
124
|
if (t === void 0) return;
|
|
105
125
|
e.preventDefault();
|
|
106
|
-
let n =
|
|
107
|
-
this.choose(
|
|
126
|
+
let n = x(e.target.value), r = n.kind === "ok" ? n.time : this.value, i = r === null ? C(this.step) : S(r, t);
|
|
127
|
+
this.choose(w(i, this.min, this.max));
|
|
128
|
+
}
|
|
129
|
+
openList() {
|
|
130
|
+
if (this.disabled) return;
|
|
131
|
+
let e = this.times;
|
|
132
|
+
e.length && (this.focusTime = E(e, this.value ?? C(this.step)), this.open = !0, this.focusOption("center"));
|
|
133
|
+
}
|
|
134
|
+
toggle() {
|
|
135
|
+
this.open ? this.open = !1 : this.openList();
|
|
136
|
+
}
|
|
137
|
+
async focusOption(e = "nearest") {
|
|
138
|
+
await this.updateComplete;
|
|
139
|
+
let t = this.renderRoot.querySelector(".lintje-time-input__option[tabindex=\"0\"]");
|
|
140
|
+
t?.focus({ preventScroll: !0 }), t?.scrollIntoView?.({ block: e });
|
|
141
|
+
}
|
|
142
|
+
onPopoverClose(e) {
|
|
143
|
+
e.stopPropagation(), this.open = !1, e.detail?.reason === "escape" && this.renderRoot.querySelector(".lintje-time-input__toggle")?.focus();
|
|
144
|
+
}
|
|
145
|
+
onFocusOut(e) {
|
|
146
|
+
let t = e.relatedTarget;
|
|
147
|
+
this.open && t && !this.renderRoot.contains(t) && !r(this, t) && (this.open = !1);
|
|
148
|
+
}
|
|
149
|
+
pick(e) {
|
|
150
|
+
this.choose(e), this.open = !1, this.renderRoot.querySelector(".lintje-time-input__control")?.focus();
|
|
151
|
+
}
|
|
152
|
+
onListKeydown(e) {
|
|
153
|
+
let t = this.times, n = Math.max(1, Math.round(60 / this.step)), r = {
|
|
154
|
+
ArrowDown: 1,
|
|
155
|
+
ArrowUp: -1,
|
|
156
|
+
PageDown: n,
|
|
157
|
+
PageUp: -n,
|
|
158
|
+
Home: -t.length,
|
|
159
|
+
End: t.length
|
|
160
|
+
}[e.key];
|
|
161
|
+
if (r === void 0) return;
|
|
162
|
+
e.preventDefault();
|
|
163
|
+
let i = t.indexOf(this.focusTime), a = Math.min(t.length - 1, Math.max(0, i + r));
|
|
164
|
+
this.focusTime = t[a], this.focusOption();
|
|
165
|
+
}
|
|
166
|
+
renderList() {
|
|
167
|
+
return o`<div class="lintje-time-input__panel"><div
|
|
168
|
+
class="lintje-time-input__list"
|
|
169
|
+
role="listbox"
|
|
170
|
+
tabindex="-1"
|
|
171
|
+
aria-label="Tijden"
|
|
172
|
+
@keydown=${this.onListKeydown}
|
|
173
|
+
>
|
|
174
|
+
${this.times.map((e) => o`<button
|
|
175
|
+
type="button"
|
|
176
|
+
role="option"
|
|
177
|
+
class=${s({
|
|
178
|
+
"lintje-time-input__option": !0,
|
|
179
|
+
"is-selected": e === this.value
|
|
180
|
+
})}
|
|
181
|
+
tabindex=${e === this.focusTime ? "0" : "-1"}
|
|
182
|
+
aria-selected=${e === this.value ? "true" : "false"}
|
|
183
|
+
@click=${() => this.pick(e)}
|
|
184
|
+
>
|
|
185
|
+
${e}
|
|
186
|
+
</button>`)}
|
|
187
|
+
</div></div>`;
|
|
108
188
|
}
|
|
109
189
|
render() {
|
|
110
190
|
let e = this.message;
|
|
111
|
-
return
|
|
191
|
+
return o`<div class="lintje-field" @focusout=${this.onFocusOut}>
|
|
112
192
|
${this.renderLabel(this.controlId)}
|
|
113
193
|
<div class="lintje-time-input">
|
|
114
194
|
<input
|
|
@@ -116,11 +196,11 @@ var w = class extends c {
|
|
|
116
196
|
id=${this.controlId}
|
|
117
197
|
inputmode="numeric"
|
|
118
198
|
autocomplete="off"
|
|
119
|
-
class=${
|
|
199
|
+
class=${s({
|
|
120
200
|
"lintje-time-input__control": !0,
|
|
121
201
|
"is-error": !!e
|
|
122
202
|
})}
|
|
123
|
-
.value=${
|
|
203
|
+
.value=${a(this.text)}
|
|
124
204
|
placeholder=${this.placeholder || n}
|
|
125
205
|
aria-labelledby=${this.labelId}
|
|
126
206
|
aria-describedby=${this.describedBy}
|
|
@@ -130,15 +210,29 @@ var w = class extends c {
|
|
|
130
210
|
@change=${this.onChange}
|
|
131
211
|
@keydown=${this.onKeydown}
|
|
132
212
|
/>
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
213
|
+
<button
|
|
214
|
+
type="button"
|
|
215
|
+
class="lintje-time-input__toggle"
|
|
216
|
+
aria-label="Tijden openen"
|
|
217
|
+
aria-haspopup="listbox"
|
|
218
|
+
aria-expanded=${this.open ? "true" : "false"}
|
|
219
|
+
?disabled=${this.disabled}
|
|
220
|
+
@click=${this.toggle}
|
|
221
|
+
>
|
|
222
|
+
${c("functioneel-klok", { size: 18 })}
|
|
223
|
+
</button>
|
|
137
224
|
</div>
|
|
225
|
+
<lintje-popover
|
|
226
|
+
?open=${this.open && !this.disabled}
|
|
227
|
+
match-width
|
|
228
|
+
@lintje-close=${this.onPopoverClose}
|
|
229
|
+
>
|
|
230
|
+
${this.open ? this.renderList() : n}
|
|
231
|
+
</lintje-popover>
|
|
138
232
|
${this.renderFoot()}
|
|
139
233
|
</div>`;
|
|
140
234
|
}
|
|
141
235
|
};
|
|
142
|
-
|
|
236
|
+
e("lintje-time-input", D);
|
|
143
237
|
//#endregion
|
|
144
|
-
export {
|
|
238
|
+
export { D as LintjeTimeInput };
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
import { $ as e,
|
|
2
|
-
import "../chunks/focus-trap-
|
|
1
|
+
import { $ as e, J as t, Jt as n, Q as r, Yt as i, Z as a, Zt as o, en as s, lt as c, nn as l, nt as u, ut as d } from "../chunks/base-CbmWxUig.js";
|
|
2
|
+
import "../chunks/focus-trap-BwOxE5BX.js";
|
|
3
3
|
//#region src/components/feedback/toast/toast.css?inline
|
|
4
|
-
var
|
|
5
|
-
|
|
4
|
+
var f = ":host {\n display: contents;\n}\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-toast {\n position: fixed;\n right: var(--space-6);\n bottom: var(--space-6);\n z-index: 70;\n display: flex;\n align-items: center;\n gap: var(--space-3);\n padding: var(--space-4) var(--space-5);\n min-width: 320px;\n max-width: 480px;\n font: var(--text-ui);\n box-shadow: var(--shadow-popover);\n animation: lintje-rise var(--dur-toast) var(--ease-in-motion);\n}\n.lintje-toast--ok { background: var(--color-success-bg); color: var(--color-text-primary); }\n.lintje-toast--error { background: var(--color-error-bg); color: var(--color-text-primary); }\n\n.lintje-toast__icon { flex: none; display: flex; }\n.lintje-toast--ok .lintje-toast__icon { color: var(--color-success-line); }\n.lintje-toast--error .lintje-toast__icon { color: var(--color-error-line); }\n\n.lintje-toast--info { background: var(--color-info-bg); color: var(--color-text-primary); }\n.lintje-toast--info .lintje-toast__icon { color: var(--color-info-line); }\n.lintje-toast--warning { background: var(--color-attention-bg); color: var(--color-text-primary); }\n.lintje-toast--warning .lintje-toast__icon { color: var(--color-attention-line); }\n\n.lintje-toast__text { flex: 1; }\n.lintje-toast__action { position: relative; font-weight: 700; text-decoration: underline; color: var(--color-link-on-status); flex: none; }\n/* The close and the action reach the target height through a transparent hit area; the gap\n between them keeps the hit areas apart. */\n.lintje-toast__close {\n position: relative;\n width: var(--h-icon-button); height: var(--h-icon-button);\n color: var(--color-text-muted);\n display: flex; align-items: center; justify-content: center; flex: none;\n}\n.lintje-toast__close::after {\n content: '';\n position: absolute;\n inset: min(0px, calc((100% - var(--h-target)) / 2));\n}\n.lintje-toast__action::after {\n content: '';\n position: absolute;\n inset: min(0px, calc((100% - var(--h-target)) / 2)) 0;\n}\n\n@media screen and (max-width: 767px) {\n .lintje-toast { left: var(--space-4); right: var(--space-4); bottom: var(--space-4); min-width: 0; max-width: none; }\n}\n\n/* Forced colours: the fill and shadow are dropped, so the toast takes a CanvasText line. */\n@media (forced-colors: active) {\n .lintje-toast { outline: 1px solid CanvasText; outline-offset: -1px; }\n}\n", p = 6e3, m = {
|
|
5
|
+
ok: "success",
|
|
6
|
+
error: "error",
|
|
7
|
+
info: "info",
|
|
8
|
+
warning: "attention"
|
|
9
|
+
};
|
|
10
|
+
function h(e) {
|
|
6
11
|
for (let t = e.getRootNode();;) {
|
|
7
12
|
let e = t.querySelector?.("main");
|
|
8
13
|
if (e) return e;
|
|
@@ -10,9 +15,13 @@ function f(e) {
|
|
|
10
15
|
t = t.host.getRootNode();
|
|
11
16
|
}
|
|
12
17
|
}
|
|
13
|
-
var
|
|
18
|
+
var g = class extends n {
|
|
14
19
|
static {
|
|
15
|
-
this.styles = [
|
|
20
|
+
this.styles = [
|
|
21
|
+
c,
|
|
22
|
+
o(f),
|
|
23
|
+
o(u)
|
|
24
|
+
];
|
|
16
25
|
}
|
|
17
26
|
static {
|
|
18
27
|
this.properties = {
|
|
@@ -33,18 +42,18 @@ var p = class extends l {
|
|
|
33
42
|
#o;
|
|
34
43
|
#s;
|
|
35
44
|
constructor() {
|
|
36
|
-
super(), this.kind = "ok", this.filled = !1, this.#e = !1, this.#t = !1, this.#n = 0, this.#r = 0, this.#i = null, this.#a = (
|
|
37
|
-
|
|
45
|
+
super(), this.kind = "ok", this.filled = !1, this.#e = !1, this.#t = !1, this.#n = 0, this.#r = 0, this.#i = null, this.#a = (t) => {
|
|
46
|
+
t.key === "Escape" && e(this) && this.#u();
|
|
38
47
|
}, this.#o = () => {
|
|
39
|
-
let e =
|
|
40
|
-
e || (this.#i =
|
|
48
|
+
let e = r(this);
|
|
49
|
+
e || (this.#i = a()), this.#l("focus", e);
|
|
41
50
|
}, this.#s = (e) => {
|
|
42
51
|
let t = e.relatedTarget;
|
|
43
52
|
(!t || t !== this && !this.contains(t)) && this.#l("focus", !1);
|
|
44
53
|
}, this.addEventListener("focusout", this.#s);
|
|
45
54
|
}
|
|
46
55
|
connectedCallback() {
|
|
47
|
-
super.connectedCallback(), document.addEventListener("keydown", this.#a), document.addEventListener("focusin", this.#o), this.#i =
|
|
56
|
+
super.connectedCallback(), document.addEventListener("keydown", this.#a), document.addEventListener("focusin", this.#o), this.#i = a(), this.#c(), !this.filled && !this.#r && (this.#r = requestAnimationFrame(() => {
|
|
48
57
|
this.#r = 0, this.filled = !0;
|
|
49
58
|
}));
|
|
50
59
|
}
|
|
@@ -55,52 +64,52 @@ var p = class extends l {
|
|
|
55
64
|
(e.has("kind") || e.has("action")) && this.#c();
|
|
56
65
|
}
|
|
57
66
|
#c() {
|
|
58
|
-
clearTimeout(this.#n), !(this.kind === "error" || this.action || this.#e || this.#t) && (this.#n = window.setTimeout(() => this.#u(),
|
|
67
|
+
clearTimeout(this.#n), !(this.kind === "error" || this.kind === "warning" || this.action || this.#e || this.#t) && (this.#n = window.setTimeout(() => this.#u(), p));
|
|
59
68
|
}
|
|
60
69
|
#l(e, t) {
|
|
61
70
|
let n = this.#e || this.#t;
|
|
62
71
|
e === "pointer" ? this.#e = t : this.#t = t, this.#e || this.#t ? clearTimeout(this.#n) : n && this.#c();
|
|
63
72
|
}
|
|
64
73
|
#u() {
|
|
65
|
-
if (
|
|
74
|
+
if (r(this)) {
|
|
66
75
|
let e = this.#i;
|
|
67
|
-
(e?.isConnected && e !== document.body ? e :
|
|
76
|
+
(e?.isConnected && e !== document.body ? e : h(this))?.focus();
|
|
68
77
|
}
|
|
69
78
|
this.emit("lintje-close");
|
|
70
79
|
}
|
|
71
80
|
render() {
|
|
72
|
-
return
|
|
81
|
+
return l`<div
|
|
73
82
|
class="lintje-toast lintje-toast--${this.kind}"
|
|
74
83
|
role="status"
|
|
75
84
|
aria-live="polite"
|
|
76
85
|
@mouseenter=${() => this.#l("pointer", !0)}
|
|
77
86
|
@mouseleave=${() => this.#l("pointer", !1)}
|
|
78
87
|
>
|
|
79
|
-
${this.filled ? this.content() :
|
|
88
|
+
${this.filled ? this.content() : s}
|
|
80
89
|
</div>`;
|
|
81
90
|
}
|
|
82
91
|
content() {
|
|
83
|
-
return
|
|
84
|
-
>${
|
|
92
|
+
return l`<span class="lintje-toast__icon" aria-hidden="true"
|
|
93
|
+
>${d(t[m[this.kind]], { size: 16 })}</span
|
|
85
94
|
>
|
|
86
95
|
<span class="lintje-toast__text"><slot></slot></span>
|
|
87
|
-
${this.action ?
|
|
96
|
+
${this.action ? l`<button
|
|
88
97
|
type="button"
|
|
89
98
|
class="lintje-toast__action"
|
|
90
99
|
@click=${() => this.emit("lintje-action")}
|
|
91
100
|
>
|
|
92
101
|
${this.action}
|
|
93
|
-
</button>` :
|
|
102
|
+
</button>` : s}
|
|
94
103
|
<button
|
|
95
104
|
type="button"
|
|
96
105
|
class="lintje-toast__close"
|
|
97
106
|
aria-label="Melding sluiten"
|
|
98
107
|
@click=${() => this.#u()}
|
|
99
108
|
>
|
|
100
|
-
${
|
|
109
|
+
${d("functioneel-kruis", { size: 16 })}
|
|
101
110
|
</button>`;
|
|
102
111
|
}
|
|
103
112
|
};
|
|
104
|
-
|
|
113
|
+
i("lintje-toast", g);
|
|
105
114
|
//#endregion
|
|
106
|
-
export {
|
|
115
|
+
export { g as LintjeToast };
|
|
@@ -1,12 +1,12 @@
|
|
|
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
|
//#region src/components/inputs/toggle/toggle.ts
|
|
4
4
|
var c = class extends o {
|
|
5
5
|
constructor(...e) {
|
|
6
6
|
super(...e), this.checked = !1;
|
|
7
7
|
}
|
|
8
8
|
static {
|
|
9
|
-
this.styles = [
|
|
9
|
+
this.styles = [r, t(s)];
|
|
10
10
|
}
|
|
11
11
|
static {
|
|
12
12
|
this.properties = { checked: {
|
|
@@ -50,6 +50,6 @@ var c = class extends o {
|
|
|
50
50
|
</div>`;
|
|
51
51
|
}
|
|
52
52
|
};
|
|
53
|
-
|
|
53
|
+
e("lintje-toggle", c);
|
|
54
54
|
//#endregion
|
|
55
55
|
export { c as LintjeToggle };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { $ as e,
|
|
2
|
-
import "../chunks/focus-trap-
|
|
1
|
+
import { $ as e, G as t, Jt as n, L as r, W as i, Yt as a, Zt as o, bt as s, en as c, et as l, lt as u, nn as d, st as f, ut as p } from "../chunks/base-CbmWxUig.js";
|
|
2
|
+
import "../chunks/focus-trap-BwOxE5BX.js";
|
|
3
3
|
//#region src/components/overlays/toggletip/toggletip.css?inline
|
|
4
|
-
var m = "/* The trigger is the icon button's drawing (`icon-button.css`); what stands here is the popover. */\n:host {\n display: inline-flex;\n vertical-align: middle;\n}\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n/* Closed, the `role=\"status\"` region is empty and `.visually-hidden`, never `display: none`:\n a region that appeared together with its text would not be announced. */\n\n/* Fixed to the viewport, so a scrolling tile or table cannot cut it off. It stands on the\n popover's layer (85): above a modal's or a drawer's scrim, under the tooltip (90). */\n.lintje-toggletip__popover.is-open {\n position: fixed;\n z-index: 85;\n min-width: min(12rem, calc(100vw - 2 * var(--space-2)));\n max-width: min(20rem, calc(100vw - 2 * var(--space-2)));\n padding: var(--space-3) var(--space-4);\n background: var(--color-bg-surface);\n border: 1px solid var(--color-border-popover);\n border-radius: var(--radius);\n box-shadow: var(--shadow-popover);\n font: var(--text-small);\n color: var(--color-text-primary);\n text-align: start;\n white-space: normal;\n animation: lintje-popover-in var(--dur-popover) var(--ease-in-motion);\n}\n", h = 4, g = 0, _ = class extends
|
|
4
|
+
var m = "/* The trigger is the icon button's drawing (`icon-button.css`); what stands here is the popover. */\n:host {\n display: inline-flex;\n vertical-align: middle;\n}\n:host([hidden]) { display: none; }\n\n/* ------------------------------------------------------------------------ */\n\n/* Closed, the `role=\"status\"` region is empty and `.visually-hidden`, never `display: none`:\n a region that appeared together with its text would not be announced. */\n\n/* Fixed to the viewport, so a scrolling tile or table cannot cut it off. It stands on the\n popover's layer (85): above a modal's or a drawer's scrim, under the tooltip (90). */\n.lintje-toggletip__popover.is-open {\n position: fixed;\n z-index: 85;\n min-width: min(12rem, calc(100vw - 2 * var(--space-2)));\n max-width: min(20rem, calc(100vw - 2 * var(--space-2)));\n padding: var(--space-3) var(--space-4);\n background: var(--color-bg-surface);\n border: 1px solid var(--color-border-popover);\n border-radius: var(--radius);\n box-shadow: var(--shadow-popover);\n font: var(--text-small);\n color: var(--color-text-primary);\n text-align: start;\n white-space: normal;\n animation: lintje-popover-in var(--dur-popover) var(--ease-in-motion);\n}\n", h = 4, g = 0, _ = class extends n {
|
|
5
5
|
static {
|
|
6
6
|
this.styles = [
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
u,
|
|
8
|
+
o(r),
|
|
9
|
+
o(m)
|
|
10
10
|
];
|
|
11
11
|
}
|
|
12
12
|
static {
|
|
@@ -32,14 +32,14 @@ var m = "/* The trigger is the icon button's drawing (`icon-button.css`); what s
|
|
|
32
32
|
constructor() {
|
|
33
33
|
super(), this.label = "Toelichting", this.placement = "bottom-start", this.open = !1, this.spot = null, this.popoverId = `lintje-toggletip-${++g}`, this.reflowFrame = 0, this.onOutsideClick = (e) => {
|
|
34
34
|
this.open && !e.composedPath().includes(this) && this.setOpen(!1);
|
|
35
|
-
}, this.onEscape = (
|
|
36
|
-
if (!this.open ||
|
|
37
|
-
|
|
38
|
-
let
|
|
39
|
-
this.setOpen(!1),
|
|
35
|
+
}, this.onEscape = (t) => {
|
|
36
|
+
if (!this.open || t.key !== "Escape" || !e(this)) return;
|
|
37
|
+
t.stopPropagation();
|
|
38
|
+
let n = t.composedPath().includes(this);
|
|
39
|
+
this.setOpen(!1), n && this.trigger?.focus();
|
|
40
40
|
}, this.onFocusout = (e) => {
|
|
41
41
|
let t = e.relatedTarget;
|
|
42
|
-
this.open && t && (
|
|
42
|
+
this.open && t && (l(t, this) || l(this, t) || this.setOpen(!1));
|
|
43
43
|
}, this.onReflow = () => {
|
|
44
44
|
this.open && !this.reflowFrame && (this.reflowFrame = requestAnimationFrame(() => {
|
|
45
45
|
this.reflowFrame = 0, this.measure();
|
|
@@ -56,13 +56,13 @@ var m = "/* The trigger is the icon button's drawing (`icon-button.css`); what s
|
|
|
56
56
|
document.removeEventListener("mousedown", this.onOutsideClick), document.removeEventListener("keydown", this.onEscape, !0), window.removeEventListener("scroll", this.onReflow, { capture: !0 }), window.removeEventListener("resize", this.onReflow), this.reflowFrame && cancelAnimationFrame(this.reflowFrame), this.reflowFrame = 0, super.disconnectedCallback();
|
|
57
57
|
}
|
|
58
58
|
measure() {
|
|
59
|
-
let e = this.trigger,
|
|
60
|
-
if (!e || !
|
|
61
|
-
let
|
|
62
|
-
width:
|
|
63
|
-
height:
|
|
64
|
-
},
|
|
65
|
-
|
|
59
|
+
let e = this.trigger, n = this.renderRoot.querySelector(".lintje-toggletip__popover");
|
|
60
|
+
if (!e || !n) return;
|
|
61
|
+
let r = {
|
|
62
|
+
width: n.offsetWidth,
|
|
63
|
+
height: n.offsetHeight
|
|
64
|
+
}, a = i(e.getBoundingClientRect(), r, t(), this.placement, h), o = this.spot;
|
|
65
|
+
o && o.top === a.top && o.bottom === a.bottom && o.left === a.left || (this.spot = a);
|
|
66
66
|
}
|
|
67
67
|
willUpdate(e) {
|
|
68
68
|
super.willUpdate(e), e.has("open") && !this.open && (this.spot = null);
|
|
@@ -83,10 +83,10 @@ var m = "/* The trigger is the icon button's drawing (`icon-button.css`); what s
|
|
|
83
83
|
};
|
|
84
84
|
}
|
|
85
85
|
render() {
|
|
86
|
-
let e =
|
|
87
|
-
return
|
|
86
|
+
let e = p("functioneel-info", { size: 16 }), t = e === c;
|
|
87
|
+
return d`<button
|
|
88
88
|
type="button"
|
|
89
|
-
class=${
|
|
89
|
+
class=${f({
|
|
90
90
|
"lintje-icon-button": !0,
|
|
91
91
|
"lintje-icon-button--flat": !0,
|
|
92
92
|
"lintje-icon-button--text": t,
|
|
@@ -98,22 +98,22 @@ var m = "/* The trigger is the icon button's drawing (`icon-button.css`); what s
|
|
|
98
98
|
aria-controls=${this.popoverId}
|
|
99
99
|
@click=${() => this.setOpen(!this.open)}
|
|
100
100
|
>
|
|
101
|
-
${t ?
|
|
101
|
+
${t ? d`<span class="lintje-icon-button__label">${this.label}</span>` : e}
|
|
102
102
|
</button>
|
|
103
103
|
<div
|
|
104
104
|
id=${this.popoverId}
|
|
105
|
-
class=${
|
|
105
|
+
class=${f({
|
|
106
106
|
"lintje-toggletip__popover": !0,
|
|
107
107
|
"is-open": this.open,
|
|
108
108
|
"visually-hidden": !this.open
|
|
109
109
|
})}
|
|
110
110
|
role="status"
|
|
111
|
-
${
|
|
111
|
+
${s(this.open ? this.spotStyle() : {})}
|
|
112
112
|
>
|
|
113
|
-
${this.open ?
|
|
113
|
+
${this.open ? d`<slot></slot>` : c}
|
|
114
114
|
</div>`;
|
|
115
115
|
}
|
|
116
116
|
};
|
|
117
|
-
|
|
117
|
+
a("lintje-toggletip", _);
|
|
118
118
|
//#endregion
|
|
119
119
|
export { _ as LintjeToggletip };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { R as LintjeTooltip, z as TOOLTIP_DELAY, B as TOOLTIP_LINGER } from "../chunks/base-CbmWxUig.js";
|