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,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { a as s, n as c, t as l } from "../chunks/input-
|
|
1
|
+
import { Yt as e, Zt as t, en as n, lt as r, nn as i, st as a, ut as o } from "../chunks/base-CbmWxUig.js";
|
|
2
|
+
import { a as s, n as c, t as l } from "../chunks/input-CRW_exv_.js";
|
|
3
3
|
import { t as u } from "../chunks/debounce-JXnLMCcF.js";
|
|
4
4
|
//#region src/components/inputs/text-input/text-input.css?inline
|
|
5
5
|
var d = "/* The text field. */\n\n/* --- Text field ----------------------------------------------------------- */\n.lintje-text-input { position: relative; display: flex; align-items: center; }\n.lintje-text-input__control {\n width: 100%; height: var(--h-control);\n padding: 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 border-radius: var(--radius);\n}\n.lintje-text-input__control::placeholder { color: var(--color-text-placeholder); opacity: 1; }\n.lintje-text-input__control.is-error { border: 2px solid var(--color-error); }\n/* Read-only: the subtle surface, the strong border, the text still primary. */\n.lintje-text-input__control.is-readonly {\n border: 1px solid var(--color-border-strong);\n background: var(--color-bg-subtle);\n color: var(--color-text-primary);\n cursor: default;\n}\n.lintje-text-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.lintje-text-input--clearable .lintje-text-input__control {\n padding-right: calc(var(--h-icon-button) + var(--space-1));\n}\n/* The hit area reaches the target height above and below only: sideways it would cover the text. */\n.lintje-text-input__clear {\n position: absolute; right: var(--space-1);\n width: var(--h-icon-button); height: var(--h-icon-button);\n display: flex; align-items: center; justify-content: center;\n color: var(--color-text-muted);\n}\n.lintje-text-input__clear:hover { color: var(--color-text-primary); }\n.lintje-text-input__clear::after {\n content: '';\n position: absolute;\n inset: min(0px, calc((100% - var(--h-target)) / 2)) 0;\n}\n\n/* --- Search ---------------------------------------------------------------- */\n/* The browser's own clear button and decoration go: the field draws its own cross. */\n.lintje-text-input--search .lintje-text-input__control { padding-left: var(--space-10); }\n.lintje-text-input__search {\n position: absolute; left: var(--space-3);\n color: var(--color-text-muted);\n pointer-events: none;\n}\n.lintje-text-input__control::-webkit-search-cancel-button,\n.lintje-text-input__control::-webkit-search-decoration { appearance: none; }\n\n/* --- Password -------------------------------------------------------------- */\n.lintje-text-input--password .lintje-text-input__control { border-right: 0; }\n.lintje-text-input__reveal { flex: none; --h-button: var(--h-control); }\n", f = class extends c {
|
|
@@ -8,9 +8,9 @@ var d = "/* The text field. */\n\n/* --- Text field ----------------------------
|
|
|
8
8
|
}
|
|
9
9
|
static {
|
|
10
10
|
this.styles = [
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
r,
|
|
12
|
+
t(l),
|
|
13
|
+
t(d)
|
|
14
14
|
];
|
|
15
15
|
}
|
|
16
16
|
static {
|
|
@@ -62,7 +62,7 @@ var d = "/* The text field. */\n\n/* --- Text field ----------------------------
|
|
|
62
62
|
hintId: this.hintId,
|
|
63
63
|
errorId: this.errorId
|
|
64
64
|
};
|
|
65
|
-
return this.type === "search" ?
|
|
65
|
+
return this.type === "search" ? i`${e ? s(void 0, e, t) : n}<span
|
|
66
66
|
id=${this.hintId}
|
|
67
67
|
class="lintje-field__hint"
|
|
68
68
|
aria-live="polite"
|
|
@@ -75,24 +75,24 @@ var d = "/* The text field. */\n\n/* --- Text field ----------------------------
|
|
|
75
75
|
}
|
|
76
76
|
render() {
|
|
77
77
|
let e = this.type === "search", t = this.type === "password", r = (this.clearable || e) && !t && this.value !== "" && !this.disabled && !this.readonly;
|
|
78
|
-
return
|
|
78
|
+
return i`<div class="lintje-field">
|
|
79
79
|
${this.renderLabel(this.controlId)}
|
|
80
80
|
<div
|
|
81
|
-
class=${
|
|
81
|
+
class=${a({
|
|
82
82
|
"lintje-text-input": !0,
|
|
83
83
|
"lintje-text-input--clearable": r,
|
|
84
84
|
"lintje-text-input--search": e,
|
|
85
85
|
"lintje-text-input--password": t
|
|
86
86
|
})}
|
|
87
87
|
>
|
|
88
|
-
${e ?
|
|
88
|
+
${e ? o("functioneel-zoek", {
|
|
89
89
|
size: 18,
|
|
90
90
|
className: "lintje-text-input__search"
|
|
91
91
|
}) : n}
|
|
92
92
|
<input
|
|
93
93
|
type=${this.inputType}
|
|
94
94
|
id=${this.controlId}
|
|
95
|
-
class=${
|
|
95
|
+
class=${a({
|
|
96
96
|
"lintje-text-input__control": !0,
|
|
97
97
|
"is-error": !!this.error,
|
|
98
98
|
"is-readonly": this.readonly
|
|
@@ -114,16 +114,16 @@ var d = "/* The text field. */\n\n/* --- Text field ----------------------------
|
|
|
114
114
|
@change=${this.change}
|
|
115
115
|
@keydown=${this.onKeydown}
|
|
116
116
|
/>
|
|
117
|
-
${r ?
|
|
117
|
+
${r ? i`<button
|
|
118
118
|
type="button"
|
|
119
119
|
class="lintje-text-input__clear"
|
|
120
120
|
aria-label="Wissen"
|
|
121
121
|
@mousedown=${(e) => e.preventDefault()}
|
|
122
122
|
@click=${this.clear}
|
|
123
123
|
>
|
|
124
|
-
${
|
|
124
|
+
${o("functioneel-kruis", { size: 16 })}
|
|
125
125
|
</button>` : n}
|
|
126
|
-
${t ?
|
|
126
|
+
${t ? i`<lintje-button
|
|
127
127
|
class="lintje-text-input__reveal"
|
|
128
128
|
variant="secondary"
|
|
129
129
|
?disabled=${this.disabled}
|
|
@@ -135,6 +135,6 @@ var d = "/* The text field. */\n\n/* --- Text field ----------------------------
|
|
|
135
135
|
</div>`;
|
|
136
136
|
}
|
|
137
137
|
};
|
|
138
|
-
|
|
138
|
+
e("lintje-text-input", f);
|
|
139
139
|
//#endregion
|
|
140
140
|
export { f as LintjeTextInput };
|
|
@@ -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;
|
|
@@ -111,7 +111,7 @@ var _ = typeof CSS < "u" && typeof CSS.supports == "function" && CSS.supports("f
|
|
|
111
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
|
})}
|
|
@@ -125,20 +125,20 @@ var _ = typeof CSS < "u" && typeof CSS.supports == "function" && CSS.supports("f
|
|
|
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,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { r as l, t as u } from "../chunks/input-
|
|
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 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 (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");
|
|
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
5
|
function _(e, t) {
|
|
6
6
|
return !Number.isInteger(e) || !Number.isInteger(t) || e < 0 || e > 23 || t < 0 || t > 59 ? null : `${g(e)}:${g(t)}`;
|
|
7
7
|
}
|
|
@@ -57,9 +57,9 @@ var D = class extends l {
|
|
|
57
57
|
}
|
|
58
58
|
static {
|
|
59
59
|
this.styles = [
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
60
|
+
i,
|
|
61
|
+
t(u),
|
|
62
|
+
t(d)
|
|
63
63
|
];
|
|
64
64
|
}
|
|
65
65
|
static {
|
|
@@ -144,7 +144,7 @@ var D = class extends l {
|
|
|
144
144
|
}
|
|
145
145
|
onFocusOut(e) {
|
|
146
146
|
let t = e.relatedTarget;
|
|
147
|
-
this.open && t && !this.renderRoot.contains(t) && !
|
|
147
|
+
this.open && t && !this.renderRoot.contains(t) && !r(this, t) && (this.open = !1);
|
|
148
148
|
}
|
|
149
149
|
pick(e) {
|
|
150
150
|
this.choose(e), this.open = !1, this.renderRoot.querySelector(".lintje-time-input__control")?.focus();
|
|
@@ -164,17 +164,17 @@ var D = class extends l {
|
|
|
164
164
|
this.focusTime = t[a], this.focusOption();
|
|
165
165
|
}
|
|
166
166
|
renderList() {
|
|
167
|
-
return
|
|
167
|
+
return o`<div class="lintje-time-input__panel"><div
|
|
168
168
|
class="lintje-time-input__list"
|
|
169
169
|
role="listbox"
|
|
170
170
|
tabindex="-1"
|
|
171
171
|
aria-label="Tijden"
|
|
172
172
|
@keydown=${this.onListKeydown}
|
|
173
173
|
>
|
|
174
|
-
${this.times.map((e) =>
|
|
174
|
+
${this.times.map((e) => o`<button
|
|
175
175
|
type="button"
|
|
176
176
|
role="option"
|
|
177
|
-
class=${
|
|
177
|
+
class=${s({
|
|
178
178
|
"lintje-time-input__option": !0,
|
|
179
179
|
"is-selected": e === this.value
|
|
180
180
|
})}
|
|
@@ -188,7 +188,7 @@ var D = class extends l {
|
|
|
188
188
|
}
|
|
189
189
|
render() {
|
|
190
190
|
let e = this.message;
|
|
191
|
-
return
|
|
191
|
+
return o`<div class="lintje-field" @focusout=${this.onFocusOut}>
|
|
192
192
|
${this.renderLabel(this.controlId)}
|
|
193
193
|
<div class="lintje-time-input">
|
|
194
194
|
<input
|
|
@@ -196,16 +196,16 @@ var D = class extends l {
|
|
|
196
196
|
id=${this.controlId}
|
|
197
197
|
inputmode="numeric"
|
|
198
198
|
autocomplete="off"
|
|
199
|
-
class=${
|
|
199
|
+
class=${s({
|
|
200
200
|
"lintje-time-input__control": !0,
|
|
201
201
|
"is-error": !!e
|
|
202
202
|
})}
|
|
203
|
-
.value=${
|
|
204
|
-
placeholder=${this.placeholder ||
|
|
203
|
+
.value=${a(this.text)}
|
|
204
|
+
placeholder=${this.placeholder || n}
|
|
205
205
|
aria-labelledby=${this.labelId}
|
|
206
206
|
aria-describedby=${this.describedBy}
|
|
207
|
-
aria-invalid=${e ? "true" :
|
|
208
|
-
aria-required=${this.required ? "true" :
|
|
207
|
+
aria-invalid=${e ? "true" : n}
|
|
208
|
+
aria-required=${this.required ? "true" : n}
|
|
209
209
|
?disabled=${this.disabled}
|
|
210
210
|
@change=${this.onChange}
|
|
211
211
|
@keydown=${this.onKeydown}
|
|
@@ -219,7 +219,7 @@ var D = class extends l {
|
|
|
219
219
|
?disabled=${this.disabled}
|
|
220
220
|
@click=${this.toggle}
|
|
221
221
|
>
|
|
222
|
-
${
|
|
222
|
+
${c("functioneel-klok", { size: 18 })}
|
|
223
223
|
</button>
|
|
224
224
|
</div>
|
|
225
225
|
<lintje-popover
|
|
@@ -227,12 +227,12 @@ var D = class extends l {
|
|
|
227
227
|
match-width
|
|
228
228
|
@lintje-close=${this.onPopoverClose}
|
|
229
229
|
>
|
|
230
|
-
${this.open ? this.renderList() :
|
|
230
|
+
${this.open ? this.renderList() : n}
|
|
231
231
|
</lintje-popover>
|
|
232
232
|
${this.renderFoot()}
|
|
233
233
|
</div>`;
|
|
234
234
|
}
|
|
235
235
|
};
|
|
236
|
-
|
|
236
|
+
e("lintje-time-input", D);
|
|
237
237
|
//#endregion
|
|
238
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: {
|
|
@@ -18,8 +18,8 @@ var c = class extends o {
|
|
|
18
18
|
this.checked = e.target.checked, this.commit(this.checked);
|
|
19
19
|
}
|
|
20
20
|
render() {
|
|
21
|
-
return
|
|
22
|
-
<label class=${
|
|
21
|
+
return i`<div class="lintje-field">
|
|
22
|
+
<label class=${a({
|
|
23
23
|
"lintje-choice": !0,
|
|
24
24
|
"is-disabled": this.disabled
|
|
25
25
|
})}>
|
|
@@ -37,19 +37,19 @@ var c = class extends o {
|
|
|
37
37
|
<span class="lintje-choice__knob"></span>
|
|
38
38
|
</span>
|
|
39
39
|
<span
|
|
40
|
-
class=${
|
|
40
|
+
class=${a({
|
|
41
41
|
"lintje-choice__label": !0,
|
|
42
42
|
"is-modified": this.modified && !this.hideLabel,
|
|
43
43
|
"visually-hidden": this.hideLabel
|
|
44
44
|
})}
|
|
45
45
|
>${this.label} ${this.renderLabelSuffix()}</span
|
|
46
46
|
>
|
|
47
|
-
${this.modified && !this.hideLabel ?
|
|
47
|
+
${this.modified && !this.hideLabel ? i`<span class="lintje-label__dot"><span class="visually-hidden">afwijkend van standaard</span></span>` : n}
|
|
48
48
|
</label>
|
|
49
49
|
${this.renderFoot()}
|
|
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";
|