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,15 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `<lintje-badge>` — a status as a word
|
|
3
|
-
*
|
|
2
|
+
* `<lintje-badge>` — a status as a word, two words at most; the word carries the meaning, also
|
|
3
|
+
* beside an `icon`.
|
|
4
4
|
*
|
|
5
5
|
* A root that draws a badge without the element calls `renderBadge()` and adopts `badgeStyles`,
|
|
6
6
|
* as `renderIcon()` / `iconStyles` do.
|
|
7
7
|
*/
|
|
8
8
|
import { type CSSResult, type PropertyDeclarations, type TemplateResult } from 'lit';
|
|
9
9
|
import { LintjeElement } from '../../core/element.js';
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
| 'live';
|
|
10
|
+
import type { Tone } from '../shared/tone.js';
|
|
11
|
+
export type BadgeTone = Tone;
|
|
13
12
|
export type BadgeVariant = 'label' | 'count' | 'unread';
|
|
14
13
|
export declare const badgeStyles: CSSResult;
|
|
15
14
|
export interface BadgeOptions {
|
|
@@ -23,14 +22,19 @@ export interface BadgeOptions {
|
|
|
23
22
|
muted?: boolean;
|
|
24
23
|
/** BEM classes of the surrounding block, space-separated. */
|
|
25
24
|
className?: string;
|
|
25
|
+
/** An icon file name before the word, in the word's colour; a label badge only. */
|
|
26
|
+
icon?: string;
|
|
26
27
|
}
|
|
27
28
|
export declare function renderBadge(options: BadgeOptions): TemplateResult;
|
|
28
29
|
export declare class LintjeBadge extends LintjeElement {
|
|
29
30
|
static styles: CSSResult[];
|
|
30
31
|
static properties: PropertyDeclarations;
|
|
31
32
|
tone: BadgeTone;
|
|
33
|
+
/** `count`: the quiet counter in a tab or button; `unread`: the round counter of the menu. */
|
|
32
34
|
variant: BadgeVariant;
|
|
33
35
|
label?: string;
|
|
36
|
+
/** An icon file name before the word. */
|
|
37
|
+
icon?: string;
|
|
34
38
|
protected render(): TemplateResult;
|
|
35
39
|
}
|
|
36
40
|
declare global {
|
|
@@ -1,14 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `<lintje-button>` — a button or, with `href`, a link with the same look.
|
|
3
3
|
*
|
|
4
|
-
* `disabled` and `busy`
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* A disabled or busy link renders no `href` and keeps `role="link"` and `tabindex="0"`.
|
|
8
|
-
* `type="submit"|"reset"` acts on the nearest `<form>` itself: the inner `<button>` has no form
|
|
9
|
-
* owner in a shadow root. ARIA on the host never reaches the inner control, so what a host needs
|
|
10
|
-
* there (`expanded`, `pressed`, `haspopup`, `keyshortcuts`, `accessible-name`, `description`, `invalid`) is a
|
|
11
|
-
* property; focusing the host focuses the inner control.
|
|
4
|
+
* `disabled` and `busy` keep it in the tab order but swallow the press: no listener on the host
|
|
5
|
+
* and no form sees it. ARIA on the host never reaches the inner control, so what a host needs
|
|
6
|
+
* there is a property; focusing the host focuses the inner control.
|
|
12
7
|
*/
|
|
13
8
|
import { type PropertyDeclarations, type TemplateResult } from 'lit';
|
|
14
9
|
import { LintjeElement } from '../../core/element.js';
|
|
@@ -26,9 +21,17 @@ export declare class LintjeButton extends LintjeElement {
|
|
|
26
21
|
disabled: boolean;
|
|
27
22
|
/** Why it is disabled, read with the button. Say it on the page as well: a mouse does not hear it. */
|
|
28
23
|
reason?: string;
|
|
24
|
+
/** At work: `aria-disabled`, with the variant's colours and the exact width kept. */
|
|
29
25
|
busy: boolean;
|
|
26
|
+
/**
|
|
27
|
+
* `submit` and `reset` act on the nearest `<form>` themselves: the inner `<button>` has no form
|
|
28
|
+
* owner in a shadow root.
|
|
29
|
+
*/
|
|
30
30
|
type: 'button' | 'submit' | 'reset';
|
|
31
|
-
/**
|
|
31
|
+
/**
|
|
32
|
+
* Makes the button an `<a>` with the same look; `type` is then ignored. Disabled or busy, the
|
|
33
|
+
* link has no `href` but stays focusable, with `role="link"`.
|
|
34
|
+
*/
|
|
32
35
|
href?: string;
|
|
33
36
|
/** The link's browsing context; `_blank` without a `rel` gets `noopener noreferrer`. */
|
|
34
37
|
target?: string;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `<lintje-grid>` — the 12-column grid.
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* `<lintje-grid>` — the 12-column grid.
|
|
3
|
+
*
|
|
4
|
+
* Its items are its own children; a tile carries `span` itself and needs no wrapper.
|
|
5
5
|
*/
|
|
6
6
|
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
7
7
|
import { LintjeElement } from '../../core/element.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** `<lintje-grid-item>` — a grid cell for non-`lintje-` content.
|
|
1
|
+
/** `<lintje-grid-item>` — a grid cell for non-`lintje-` content. */
|
|
2
2
|
import { type TemplateResult } from 'lit';
|
|
3
3
|
import { LintjeGridItemElement } from '../shared/grid-item-element.js';
|
|
4
4
|
export declare class LintjeGridItem extends LintjeGridItemElement {
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `<lintje-icon-button>` — a square button with one icon, or its Dutch label as text when the
|
|
3
|
-
* icon has no file.
|
|
4
|
-
*
|
|
5
|
-
* `
|
|
6
|
-
* moving bars beside the icon; the host still sets `pressed` and the label that stops it.
|
|
3
|
+
* icon has no file.
|
|
4
|
+
*
|
|
5
|
+
* `disabled` keeps it focusable but swallows the press: no listener on the host sees it.
|
|
7
6
|
*/
|
|
8
7
|
import { type TemplateResult } from 'lit';
|
|
9
8
|
import { LintjeElement } from '../../core/element.js';
|
|
@@ -58,7 +57,10 @@ export declare class LintjeIconButton extends LintjeElement {
|
|
|
58
57
|
expanded?: boolean;
|
|
59
58
|
/** Extra description read after the name; a wrapping `lintje-tooltip` sets its text here. */
|
|
60
59
|
description?: string;
|
|
61
|
-
/**
|
|
60
|
+
/**
|
|
61
|
+
* It listens or speaks now (dictating, reading aloud): the primary fill, with moving bars beside
|
|
62
|
+
* the icon. The host still sets `pressed` and the label that stops it.
|
|
63
|
+
*/
|
|
62
64
|
live: boolean;
|
|
63
65
|
constructor();
|
|
64
66
|
private refuseWhileDisabled;
|
|
@@ -16,6 +16,8 @@ export type { ButtonSize, ButtonVariant } from './button/button.js';
|
|
|
16
16
|
export { LintjeIconButton } from './icon-button/icon-button.js';
|
|
17
17
|
export type { IconButtonVariant } from './icon-button/icon-button.js';
|
|
18
18
|
export { LintjeStatusDot, STATUS_LABEL } from './status-dot/status-dot.js';
|
|
19
|
+
export { TONE_ICON, TONE_WORD, WORK_STATE_LABEL, WORK_STATE_TONE } from './shared/tone.js';
|
|
20
|
+
export type { ContentStateKind, Tone, WorkState } from './shared/tone.js';
|
|
19
21
|
export { LintjeSkeleton } from './skeleton/skeleton.js';
|
|
20
22
|
export { LintjeGrid } from './grid/grid.js';
|
|
21
23
|
export { LintjeGridItem } from './grid-item/grid-item.js';
|
|
@@ -26,7 +28,7 @@ export type { BadgeOptions, BadgeTone, BadgeVariant } from './badge/badge.js';
|
|
|
26
28
|
export { LintjeSpinner } from './spinner/spinner.js';
|
|
27
29
|
export type { SpinnerSize } from './spinner/spinner.js';
|
|
28
30
|
export { LintjeProgressBar } from './progress-bar/progress-bar.js';
|
|
29
|
-
export type {
|
|
31
|
+
export type { ProgressState } from './progress-bar/progress-bar.js';
|
|
30
32
|
export { LintjePopover } from './popover/popover.js';
|
|
31
33
|
export { LintjeTooltip } from './tooltip/tooltip.js';
|
|
32
34
|
export { place } from './shared/place.js';
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `<lintje-popover>` — the floating panel: a surface fixed to the viewport under its anchor
|
|
3
|
-
* (`.anchor`, or the previous sibling). Content and padding come through the slot.
|
|
2
|
+
* `<lintje-popover>` — the floating panel: a surface fixed to the viewport under its anchor.
|
|
4
3
|
*
|
|
5
|
-
* The
|
|
6
|
-
*
|
|
4
|
+
* Content and padding come through the slot. The host holds `open`: the popover only asks to be
|
|
5
|
+
* closed. A component that draws a popover in its own root stops its `lintje-close`.
|
|
6
|
+
*
|
|
7
|
+
* Events: `lintje-close` `{ reason: 'escape' | 'outside' }`.
|
|
7
8
|
*/
|
|
8
9
|
import { nothing, type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
|
|
9
10
|
import { LintjeElement } from '../../core/element.js';
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `<lintje-progress-bar>` — how far a task is
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* `<lintje-progress-bar>` — how far a task is; without a `value` a block slides along the track.
|
|
3
|
+
*
|
|
4
|
+
* The default slot takes one action right of the label line. Done, error and paused are said in
|
|
5
|
+
* the value text and marked by a glyph.
|
|
5
6
|
*/
|
|
6
7
|
import { type PropertyDeclarations, type TemplateResult } from 'lit';
|
|
7
8
|
import { LintjeElement } from '../../core/element.js';
|
|
8
|
-
|
|
9
|
+
import { type WorkState } from '../shared/tone.js';
|
|
10
|
+
export type ProgressState = Extract<WorkState, 'busy' | 'done' | 'error' | 'paused'>;
|
|
9
11
|
export declare class LintjeProgressBar extends LintjeElement {
|
|
10
12
|
static styles: import("lit").CSSResult[];
|
|
11
13
|
static properties: PropertyDeclarations;
|
|
@@ -17,10 +19,10 @@ export declare class LintjeProgressBar extends LintjeElement {
|
|
|
17
19
|
hideLabel: boolean;
|
|
18
20
|
/** The figure on the right: "62% · nog ongeveer 3 min". */
|
|
19
21
|
detail?: string;
|
|
20
|
-
|
|
22
|
+
state: ProgressState;
|
|
21
23
|
private get known();
|
|
22
24
|
private get percent();
|
|
23
|
-
private get
|
|
25
|
+
private get resolvedState();
|
|
24
26
|
private valueText;
|
|
25
27
|
protected render(): TemplateResult;
|
|
26
28
|
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The announcement as a render function, so a tile draws its error with the same block as
|
|
3
|
+
* `<lintje-announcement>` draws itself. The element adds dismissal and focus; a tile adds
|
|
4
|
+
* nothing. A live block is drawn empty until `filled`: a region that arrives with its words is
|
|
5
|
+
* not announced.
|
|
6
|
+
*/
|
|
7
|
+
import { nothing, type CSSResult, type TemplateResult } from 'lit';
|
|
8
|
+
import { type Tone } from './tone.js';
|
|
9
|
+
/** `outage` interrupts and cannot be closed; `error` is a failure the reader may put away. */
|
|
10
|
+
export type AnnouncementKind = 'warning' | 'outage' | 'error' | 'info' | 'ok';
|
|
11
|
+
/** A message's kind in the one tone set: a warning is drawn in the attention tone. */
|
|
12
|
+
export declare const ANNOUNCEMENT_TONE: Record<AnnouncementKind, Tone>;
|
|
13
|
+
/** Only an outage interrupts the reader; the others wait their turn. */
|
|
14
|
+
export declare const ANNOUNCEMENT_ROLE: Record<AnnouncementKind, 'alert' | 'status'>;
|
|
15
|
+
/** The word a screen reader hears before the text, since the tint says nothing to it. */
|
|
16
|
+
export declare const ANNOUNCEMENT_PREFIX: Record<AnnouncementKind, string>;
|
|
17
|
+
export declare const announcementBlockStyles: CSSResult;
|
|
18
|
+
export interface AnnouncementBlockOptions {
|
|
19
|
+
kind?: AnnouncementKind;
|
|
20
|
+
title?: string;
|
|
21
|
+
text?: string;
|
|
22
|
+
meta?: string;
|
|
23
|
+
link?: {
|
|
24
|
+
label: string;
|
|
25
|
+
href: string;
|
|
26
|
+
};
|
|
27
|
+
/** A live region: `role` from the kind, drawn empty until `filled`. */
|
|
28
|
+
live?: boolean;
|
|
29
|
+
/** Whether a live block shows its words yet; ignored when not live. */
|
|
30
|
+
filled?: boolean;
|
|
31
|
+
/** What stands under or beside the text: the element's `action` slot. */
|
|
32
|
+
action?: TemplateResult | typeof nothing;
|
|
33
|
+
/** What stands beside the body: the element's `media` slot. */
|
|
34
|
+
media?: TemplateResult | typeof nothing;
|
|
35
|
+
/** With a handler the block draws its close button. */
|
|
36
|
+
onClose?: () => void;
|
|
37
|
+
}
|
|
38
|
+
export declare function renderAnnouncementBlock(options: AnnouncementBlockOptions): TemplateResult;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The empty state as a render function, so a tile draws "nothing here" with the same block as
|
|
3
|
+
* `<lintje-empty-state>`. With `status` it is a region drawn empty until `filled`: a region that
|
|
4
|
+
* arrives with its words is not announced.
|
|
5
|
+
*/
|
|
6
|
+
import { nothing, type CSSResult, type TemplateResult } from 'lit';
|
|
7
|
+
export type HeadingLevel = 2 | 3 | 4 | 5 | 6;
|
|
8
|
+
export declare const emptyStateBlockStyles: CSSResult;
|
|
9
|
+
export interface EmptyStateBlockOptions {
|
|
10
|
+
/** Not drawn when `compact`. */
|
|
11
|
+
heading?: string;
|
|
12
|
+
/** The one sentence below the heading, or the whole line when `compact`. */
|
|
13
|
+
text?: string;
|
|
14
|
+
/** An icon file name. Not drawn when `compact`. */
|
|
15
|
+
icon?: string;
|
|
16
|
+
level?: HeadingLevel;
|
|
17
|
+
/** One muted line with what follows it, for inside content. */
|
|
18
|
+
compact?: boolean;
|
|
19
|
+
/** A `role="status"` region, drawn empty until `filled`. */
|
|
20
|
+
status?: boolean;
|
|
21
|
+
filled?: boolean;
|
|
22
|
+
/** What the reader can do next: the element's default slot. Hidden while `actionShown` is off. */
|
|
23
|
+
action?: TemplateResult | typeof nothing;
|
|
24
|
+
actionShown?: boolean;
|
|
25
|
+
}
|
|
26
|
+
export declare function renderEmptyStateBlock(options: EmptyStateBlockOptions): TemplateResult;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The one set of tones, and the one set of work states, every element translates its own words
|
|
3
|
+
* into. A tone is a colour with its glyph; a state is what a task is doing. A host never maps:
|
|
4
|
+
* an element that speaks its own vocabulary (the table's delivery status, a message's kind)
|
|
5
|
+
* translates it here.
|
|
6
|
+
*/
|
|
7
|
+
/** A status colour with its glyph. `subtle` and `live` are the quiet and the recording form. */
|
|
8
|
+
export type Tone = 'neutral' | 'subtle' | 'busy' | 'success' | 'warning' | 'error' | 'info' | 'attention' | 'live';
|
|
9
|
+
/** The glyph that says what the tone means; the colour is never the only carrier (rule 13). */
|
|
10
|
+
export declare const TONE_ICON: Partial<Record<Tone, string>>;
|
|
11
|
+
/** The word a tone stands for when an element has nothing more specific to say. */
|
|
12
|
+
export declare const TONE_WORD: Record<Tone, string>;
|
|
13
|
+
/** What a task is doing: the queue, a progress bar and a status word share it. */
|
|
14
|
+
export type WorkState = 'queued' | 'busy' | 'paused' | 'done' | 'error' | 'cancelled';
|
|
15
|
+
export declare const WORK_STATE_TONE: Record<WorkState, Tone>;
|
|
16
|
+
export declare const WORK_STATE_LABEL: Record<WorkState, string>;
|
|
17
|
+
/** How content stands: drawn, still coming, nothing to draw, or failed. */
|
|
18
|
+
export type ContentStateKind = 'ready' | 'loading' | 'empty' | 'error';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/** `<lintje-skeleton>` — the shimmer that holds a box while its content loads.
|
|
1
|
+
/** `<lintje-skeleton>` — the shimmer that holds a box while its content loads. */
|
|
2
2
|
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
3
3
|
import { LintjeElement } from '../../core/element.js';
|
|
4
4
|
export declare class LintjeSkeleton extends LintjeElement {
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* `<lintje-spinner>` — the loading ring for content whose shape is not known; for a known shape
|
|
3
|
-
* use `<lintje-skeleton>`.
|
|
4
|
-
* Events: none.
|
|
3
|
+
* use `<lintje-skeleton>`.
|
|
5
4
|
*/
|
|
6
5
|
import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
|
|
7
6
|
import { LintjeElement } from '../../core/element.js';
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* `<lintje-status-dot>` — a status with its word; colour is never the only carrier (rule 13).
|
|
3
|
-
* Events: none.
|
|
4
|
-
*/
|
|
1
|
+
/** `<lintje-status-dot>` — a status as a dot with its word; colour is never the only carrier. */
|
|
5
2
|
import { type TemplateResult } from 'lit';
|
|
6
3
|
import { LintjeElement } from '../../core/element.js';
|
|
4
|
+
import { type Tone } from '../shared/tone.js';
|
|
5
|
+
/** A source's delivery status: the element's own words, each a tone. */
|
|
7
6
|
export type StatusTone = 'complete' | 'delayed' | 'outage' | 'no-data';
|
|
8
7
|
export declare const STATUS_LABEL: Record<StatusTone, string>;
|
|
9
8
|
export declare class LintjeStatusDot extends LintjeElement {
|
|
@@ -20,7 +19,7 @@ export declare class LintjeStatusDot extends LintjeElement {
|
|
|
20
19
|
type: NumberConstructor;
|
|
21
20
|
};
|
|
22
21
|
};
|
|
23
|
-
tone: StatusTone;
|
|
22
|
+
tone: Tone | StatusTone;
|
|
24
23
|
/** Overrides the Dutch word for the tone. */
|
|
25
24
|
label?: string;
|
|
26
25
|
size: number;
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `<lintje-tile>` — the frame around a chart, map or table.
|
|
3
|
-
* legend, content, legend (`legend-below`), footnote. `slot="aside"` puts a key figure beside the
|
|
4
|
-
* content, above it below 768 px. Hover actions show on focus too, always on touch screens.
|
|
2
|
+
* `<lintje-tile>` — the frame around a chart, map or table.
|
|
5
3
|
*
|
|
6
|
-
*
|
|
4
|
+
* Top to bottom: header, notice, intro, legend, content, legend (`legend-below`), footnote.
|
|
5
|
+
* `slot="aside"` puts a key figure beside the content, above it below 768 px. Hover actions show
|
|
6
|
+
* on focus too, and always on touch screens. The tile expands and downloads nothing itself: the
|
|
7
|
+
* host answers its events.
|
|
8
|
+
*
|
|
9
|
+
* Events: `lintje-tile-expand`, `lintje-tile-download`.
|
|
7
10
|
*/
|
|
8
11
|
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
9
12
|
import { LintjeGridItemElement } from '../shared/grid-item-element.js';
|
|
@@ -11,7 +14,9 @@ import '../button/button.js';
|
|
|
11
14
|
import '../icon-button/icon-button.js';
|
|
12
15
|
import '../status-dot/status-dot.js';
|
|
13
16
|
import '../skeleton/skeleton.js';
|
|
14
|
-
|
|
17
|
+
import type { ContentStateKind } from '../shared/tone.js';
|
|
18
|
+
/** The same four as `ContentState` in the contract. */
|
|
19
|
+
export type ContentState = ContentStateKind;
|
|
15
20
|
export declare class LintjeTile extends LintjeGridItemElement {
|
|
16
21
|
#private;
|
|
17
22
|
static styles: import("lit").CSSResult[];
|
|
@@ -70,6 +75,10 @@ export declare class LintjeTile extends LintjeGridItemElement {
|
|
|
70
75
|
flush: {
|
|
71
76
|
type: BooleanConstructor;
|
|
72
77
|
};
|
|
78
|
+
breakable: {
|
|
79
|
+
type: BooleanConstructor;
|
|
80
|
+
reflect: boolean;
|
|
81
|
+
};
|
|
73
82
|
filled: {
|
|
74
83
|
state: boolean;
|
|
75
84
|
};
|
|
@@ -97,6 +106,9 @@ export declare class LintjeTile extends LintjeGridItemElement {
|
|
|
97
106
|
/** The content runs to the tile's edges and indents what it draws by the tile's padding: rows
|
|
98
107
|
* whose lines reach the frame, as a work list's. */
|
|
99
108
|
flush: boolean;
|
|
109
|
+
/** On paper the tile may break between two sheets, as a long table does; otherwise it moves to
|
|
110
|
+
* the next sheet whole where it fits. */
|
|
111
|
+
breakable: boolean;
|
|
100
112
|
/** The words in the loading or error live region, or `null`; filled a frame after the region
|
|
101
113
|
* is drawn, because a region that arrives with its text is not announced. */
|
|
102
114
|
protected filled: string | null;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* `<lintje-tooltip>` — one short sentence about the element it wraps.
|
|
3
|
-
*
|
|
4
|
-
*
|
|
5
|
-
* the reader must know. The text
|
|
6
|
-
*
|
|
2
|
+
* `<lintje-tooltip>` — one short sentence about the element it wraps.
|
|
3
|
+
*
|
|
4
|
+
* It shows 300 ms after the pointer rests and at once on keyboard focus; Escape anywhere hides it.
|
|
5
|
+
* Never the only place for something the reader must know. The text becomes the wrapped element's
|
|
6
|
+
* description.
|
|
7
7
|
*/
|
|
8
8
|
import { type PropertyDeclarations, type PropertyValues, type TemplateResult } from 'lit';
|
|
9
9
|
import { LintjeElement } from '../../core/element.js';
|
|
@@ -16,7 +16,7 @@ export declare class LintjeTooltip extends LintjeElement {
|
|
|
16
16
|
static styles: import("lit").CSSResult;
|
|
17
17
|
static properties: PropertyDeclarations;
|
|
18
18
|
text: string;
|
|
19
|
-
/** The text is already the element's accessible name. */
|
|
19
|
+
/** The text is already the element's accessible name: it is not given as its description too. */
|
|
20
20
|
noDescribe: boolean;
|
|
21
21
|
/** Above the element, or `left` of it, level with it: for a column of buttons along an edge. */
|
|
22
22
|
placement: 'top' | 'left';
|
|
@@ -5,30 +5,36 @@
|
|
|
5
5
|
* names come from their one list, `tokens/colors.ts`.
|
|
6
6
|
*/
|
|
7
7
|
import type { DataColor } from './tokens/colors.js';
|
|
8
|
+
import type { ContentStateKind, Tone } from './primitives/shared/tone.js';
|
|
9
|
+
import type { StatusTone } from './primitives/status-dot/status-dot.js';
|
|
10
|
+
import type { AnnouncementKind } from './primitives/shared/announcement-block.js';
|
|
8
11
|
import type { ChartSpec, MapSpec } from './components/shared/charts/shared/types.js';
|
|
9
12
|
import type { MenuEntry } from './components/actions/menu-button/menu-button.js';
|
|
10
13
|
import type { NotificationItem } from './components/frame/notifications/notifications.js';
|
|
11
|
-
export type { BarSeriesData, ChartColor, ChartKind, ChartSpec, LineSeriesData, MapSpec, MapValue, MapPlotData, MapPlotVariant, MapVariant, ScatterPoint, ScatterSeriesData, WmsBasemap, MapArea, MapControls, } from './components/shared/charts/shared/types.js';
|
|
14
|
+
export type { BarSeriesData, ChartColor, ChartEvent, ChartKind, ChartSpec, LineSeriesData, MapSpec, MapValue, MapPlotData, MapPlotVariant, MapVariant, ScatterPoint, ScatterSeriesData, WmsBasemap, MapArea, MapControls, } from './components/shared/charts/shared/types.js';
|
|
12
15
|
export type { DataColor } from './tokens/colors.js';
|
|
16
|
+
export type { Tone, WorkState, ContentStateKind } from './primitives/shared/tone.js';
|
|
13
17
|
/** Settings every view receives, taken from the URL by the host. */
|
|
14
18
|
export interface FrameSettings {
|
|
15
19
|
mode?: 'light' | 'dark';
|
|
16
20
|
}
|
|
17
21
|
export interface ContentState {
|
|
18
|
-
state?:
|
|
22
|
+
state?: ContentStateKind;
|
|
19
23
|
/** Empty: why there is nothing, and the way out. Error: what failed. */
|
|
20
24
|
message?: string;
|
|
21
25
|
/** Error: the last known value, shown in the warning. */
|
|
22
26
|
lastKnown?: string;
|
|
23
27
|
}
|
|
24
|
-
|
|
28
|
+
/** A source's delivery status: the status column's and `lintje-status-dot`'s own words, each a `Tone`. */
|
|
29
|
+
export type { StatusTone } from './primitives/status-dot/status-dot.js';
|
|
25
30
|
export type TrendDirection = 'up' | 'down' | 'flat';
|
|
26
31
|
/**
|
|
27
32
|
* One colour per variable, named after the Rijkshuisstijl colour it is: a `DataColor`, the
|
|
28
33
|
* names of `tokens/colors.ts`. `coverage` is a role, not a variable: gray.
|
|
29
34
|
*/
|
|
30
35
|
export type KpiVariable = DataColor | 'coverage';
|
|
31
|
-
|
|
36
|
+
/** The same four as every tile's `ContentState`. */
|
|
37
|
+
export type KpiState = ContentStateKind;
|
|
32
38
|
export interface KpiItem {
|
|
33
39
|
/** A string or number with one number in it; counts up like `value`. */
|
|
34
40
|
value: string | number;
|
|
@@ -67,7 +73,8 @@ export interface KpiGauge {
|
|
|
67
73
|
/** The word before the target's number: "doel" (default) or "norm". */
|
|
68
74
|
targetLabel?: string;
|
|
69
75
|
}
|
|
70
|
-
|
|
76
|
+
/** `message` is the empty or error line under the figure, `lastKnown` the figure it had. */
|
|
77
|
+
export interface KpiData extends ContentState {
|
|
71
78
|
label: string;
|
|
72
79
|
/** An icon file name (`dist-icons/`, without `.svg`). Decorative. */
|
|
73
80
|
icon?: string;
|
|
@@ -84,7 +91,6 @@ export interface KpiData {
|
|
|
84
91
|
/** A single figure on its scale; ignored with `items`. */
|
|
85
92
|
gauge?: KpiGauge;
|
|
86
93
|
variable?: KpiVariable;
|
|
87
|
-
state?: KpiState;
|
|
88
94
|
}
|
|
89
95
|
/** Events: none. */
|
|
90
96
|
export interface KpiRowData extends FrameSettings {
|
|
@@ -155,8 +161,9 @@ export interface TableColumnData {
|
|
|
155
161
|
* `change-compact`: only the ▲ ▼ ● of `change`; a screen reader hears the whole change, and
|
|
156
162
|
* below 768 px the row's measure shows it whole.
|
|
157
163
|
* `status`: a `StatusTone` (or mapped through `status.tones`) as the status dot with its label.
|
|
164
|
+
* `label`: the value as a badge with the word, tone and icon from `labels`.
|
|
158
165
|
*/
|
|
159
|
-
format?: 'text' | 'number' | 'percent' | 'decimal' | 'change' | 'change-compact' | 'status';
|
|
166
|
+
format?: 'text' | 'number' | 'percent' | 'decimal' | 'change' | 'change-compact' | 'status' | 'label';
|
|
160
167
|
decimals?: number;
|
|
161
168
|
/** Suffix after the value, e.g. "min". */
|
|
162
169
|
unit?: string;
|
|
@@ -172,6 +179,11 @@ export interface TableColumnData {
|
|
|
172
179
|
tones?: Record<string, StatusTone>;
|
|
173
180
|
labels?: Record<string, string>;
|
|
174
181
|
};
|
|
182
|
+
/**
|
|
183
|
+
* `label` format: value → the word, the badge's tone and an icon file name before the word. A
|
|
184
|
+
* value without an entry stands as plain text. Sorting and the CSV use the word.
|
|
185
|
+
*/
|
|
186
|
+
labels?: Record<string, TableLabel>;
|
|
175
187
|
/** Shown muted instead of an exact 0, where 0 means "none" (e.g. "—"). Missing stays `null`. */
|
|
176
188
|
zeroText?: string;
|
|
177
189
|
mobileSubline?: boolean;
|
|
@@ -271,13 +283,58 @@ export interface DataTableData extends FrameSettings, TileData, ContentState {
|
|
|
271
283
|
filters?: Record<string, string[] | string>;
|
|
272
284
|
/** The number of rows before filtering: "14 van 131 rijen" while a filter is active. */
|
|
273
285
|
totalRows?: number;
|
|
274
|
-
/**
|
|
275
|
-
*
|
|
286
|
+
/**
|
|
287
|
+
* "Kolommen kiezen", a quiet icon in the head of the last column, to order and hide columns
|
|
288
|
+
* (`lintje-columns-change`). Without row actions it adds that column.
|
|
289
|
+
*/
|
|
276
290
|
columnChooser?: boolean;
|
|
277
291
|
/** The keys of the columns not shown. The first column is always shown. */
|
|
278
292
|
hiddenColumns?: string[];
|
|
293
|
+
/**
|
|
294
|
+
* The totals row under the rows, as the host computed it over every filtered row: the table
|
|
295
|
+
* never computes. A column without an entry stays empty.
|
|
296
|
+
*/
|
|
297
|
+
totals?: Record<string, TableTotal>;
|
|
298
|
+
/** The first cell of the totals row; default "Totaal". */
|
|
299
|
+
totalsLabel?: string;
|
|
300
|
+
/**
|
|
301
|
+
* Fields shown under a row that opens, after the columns the chooser hides. With them, or with a
|
|
302
|
+
* hidden column, every row gets a button that opens its detail.
|
|
303
|
+
*/
|
|
304
|
+
detailFields?: TableDetailField[];
|
|
305
|
+
/**
|
|
306
|
+
* Groups the rows on this column's value, in the order the groups first occur in `rows`. Rows
|
|
307
|
+
* sort within their group, a page holds whole groups, and the column itself is not shown.
|
|
308
|
+
*/
|
|
309
|
+
groupBy?: string;
|
|
310
|
+
/** Per group value: its subtotal row, as the host computed it. */
|
|
311
|
+
groupTotals?: Record<string, Record<string, TableTotal>>;
|
|
312
|
+
/** With `groupBy`: groups per page, default 5; `pageSize` does not apply. */
|
|
313
|
+
groupsPerPage?: number;
|
|
314
|
+
}
|
|
315
|
+
/** A badge in a `label` column. */
|
|
316
|
+
export interface TableLabel {
|
|
317
|
+
label: string;
|
|
318
|
+
/** One of the shared tones, as `lintje-badge` draws it; default `neutral`. */
|
|
319
|
+
tone?: Tone;
|
|
320
|
+
/** An icon file name, drawn before the word. */
|
|
321
|
+
icon?: string;
|
|
279
322
|
}
|
|
280
|
-
|
|
323
|
+
/** A total: a value, or a value with the word that says how it was made ("gem."). */
|
|
324
|
+
export type TableTotal = CellValue | {
|
|
325
|
+
value: CellValue;
|
|
326
|
+
how?: string;
|
|
327
|
+
};
|
|
328
|
+
/** A field in a row's detail: a key of the row, with its label and how its value shows. */
|
|
329
|
+
export interface TableDetailField {
|
|
330
|
+
key: string;
|
|
331
|
+
label: string;
|
|
332
|
+
format?: TableColumnData['format'];
|
|
333
|
+
decimals?: number;
|
|
334
|
+
unit?: string;
|
|
335
|
+
}
|
|
336
|
+
/** `outage` interrupts and cannot be closed; `error` is a failure the reader may put away. */
|
|
337
|
+
export type { AnnouncementKind } from './primitives/shared/announcement-block.js';
|
|
281
338
|
export interface AnnouncementData {
|
|
282
339
|
kind?: AnnouncementKind;
|
|
283
340
|
title?: string;
|
|
@@ -344,6 +401,8 @@ export interface FilterOption {
|
|
|
344
401
|
* `lintje-segmented` the chosen option's, in a box under the options.
|
|
345
402
|
*/
|
|
346
403
|
description?: string;
|
|
404
|
+
/** The number of items with this value, as a count badge after the label where the control draws one (`lintje-segmented`). */
|
|
405
|
+
count?: number;
|
|
347
406
|
}
|
|
348
407
|
/** The control a declaration draws in. `range` has two handles, `slider` one. */
|
|
349
408
|
export type FilterKind = 'select' | 'segmented' | 'multiselect' | 'date-range' | 'range' | 'slider' | 'toggle' | 'text' | 'number';
|
|
@@ -628,6 +687,7 @@ export interface ChatData extends FrameSettings {
|
|
|
628
687
|
}
|
|
629
688
|
export type { FormValues, FormErrors, StoredDraft } from './components/forms/form/form.js';
|
|
630
689
|
export type { ErrorSummaryItem } from './components/forms/error-summary/error-summary.js';
|
|
690
|
+
export type { ErrorPageLink } from './components/feedback/error-page/error-page.js';
|
|
631
691
|
export type { UploadFile } from './components/inputs/file-upload/file-upload.js';
|
|
632
692
|
export type { DateRange } from './components/inputs/date-range/date-range.js';
|
|
633
693
|
export type { SlotDay, TimeSlot } from './components/inputs/slot-picker/slot-picker.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3.9 4h3a.9.9 0 0 1 .9.9v14.2a.9.9 0 0 1-.9.9h-3a.9.9 0 0 1-.9-.9V4.9a.9.9 0 0 1 .9-.9Zm.7 1.6v12.8h1.6V5.6ZM10.5 4h3a.9.9 0 0 1 .9.9v14.2a.9.9 0 0 1-.9.9h-3a.9.9 0 0 1-.9-.9V4.9a.9.9 0 0 1 .9-.9Zm.7 1.6v12.8h1.6V5.6ZM17.1 4h3a.9.9 0 0 1 .9.9v14.2a.9.9 0 0 1-.9.9h-3a.9.9 0 0 1-.9-.9V4.9a.9.9 0 0 1 .9-.9Zm.7 1.6v12.8h1.6V5.6Z" fill-rule="evenodd"/></svg>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?><svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M3.6 4h16.8a.9.9 0 0 1 .7 1.47l-6.5 7.83v5.6a.9.9 0 0 1-.5.8l-3 1.5a.9.9 0 0 1-1.3-.8v-7.1L2.9 5.47A.9.9 0 0 1 3.6 4Zm1.9 1.8 5.6 6.7a.9.9 0 0 1 .2.58v6.04l1.5-.75v-5.29a.9.9 0 0 1 .2-.58l5.6-6.7Z" fill-rule="evenodd"/></svg>
|
package/package.json
CHANGED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
//#region src/components/overlays/confirm-dialog/confirm-dialog.css?inline
|
|
2
|
-
var e = ":host { display: contents; }\n\n/* ------------------------------------------------------------------------ */\n\n.lintje-confirm-dialog__scrim {\n position: fixed;\n z-index: 80;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: var(--space-6);\n background: var(--color-overlay-page);\n animation: lintje-fade-in var(--dur-scrim) var(--ease-in-motion);\n}\n\n.lintje-confirm-dialog {\n width: min(440px, 100%);\n max-height: 100%;\n overflow: auto;\n display: flex;\n flex-direction: column;\n gap: var(--space-3);\n padding: var(--space-6);\n background: var(--color-bg-surface);\n color: var(--color-text-primary);\n border: 1px solid var(--color-border-strong);\n border-radius: var(--radius);\n box-shadow: var(--shadow-popover);\n animation: lintje-rise var(--dur-modal) var(--ease-in-motion);\n}\n/* The window takes focus only when the trap pulls stray focus back; it draws no ring. */\n.lintje-confirm-dialog:focus { outline: none; }\n.lintje-confirm-dialog__heading { font: var(--text-h2); }\n.lintje-confirm-dialog__text { font: var(--text-body); }\n\n.lintje-confirm-dialog__actions {\n display: flex;\n flex-wrap: wrap;\n justify-content: flex-end;\n gap: var(--space-2);\n margin-top: var(--space-3);\n}\n\n/* Phone: the buttons stack, the confirm on top and the safe one at the bottom. */\n@media (max-width: 767px) {\n .lintje-confirm-dialog__scrim { padding: var(--space-4); }\n .lintje-confirm-dialog { width: 100%; }\n .lintje-confirm-dialog__actions { flex-direction: column; }\n .lintje-confirm-dialog__confirm { order: 1; }\n .lintje-confirm-dialog__action { order: 2; }\n .lintje-confirm-dialog__cancel { order: 3; }\n}\n";
|
|
3
|
-
//#endregion
|
|
4
|
-
export { e as t };
|