lintje 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/dist-elements/actions.js +1 -1
- package/dist-elements/chunks/{base-Bg-IFOPG.js → base-DRGvkF-r.js} +484 -309
- package/dist-elements/chunks/{controls-B1455oPG.js → controls-_4ac1Lpz.js} +7 -1
- package/dist-elements/chunks/{date-format-mHtZyBys.js → date-format-DxP9yfDp.js} +1 -1
- package/dist-elements/chunks/dialog-B7aRBtjy.js +28 -0
- package/dist-elements/chunks/{disclosure-BXTX04gM.js → disclosure-D39vAR5q.js} +1 -1
- package/dist-elements/chunks/{disclosure-CMXhX-Vb.js → disclosure-DirPLy2E.js} +6 -6
- package/dist-elements/chunks/download-C68kcwPj.js +206 -0
- package/dist-elements/chunks/{focus-trap-9BnE-xWv.js → focus-trap-Dv8zu64A.js} +1 -1
- package/dist-elements/chunks/input-BGMLam-O.js +195 -0
- package/dist-elements/chunks/input-lQTmOMOz.js +4 -0
- package/dist-elements/chunks/{player-DXOZEyEy.js → player-BApadXr8.js} +27 -27
- package/dist-elements/chunks/{sentence-BI3lwEuT.js → sentence-0wO85ZdJ.js} +3 -3
- package/dist-elements/chunks/{stagger-qGD3wmhg.js → stagger-BB_gcxBI.js} +88 -74
- package/dist-elements/content.js +1 -0
- package/dist-elements/core.js +1 -1
- package/dist-elements/custom-elements.json +8858 -7715
- package/dist-elements/data-types.json +6900 -0
- package/dist-elements/feedback.js +2 -1
- package/dist-elements/frame.js +0 -2
- package/dist-elements/guides/dashboard.md +8 -0
- package/dist-elements/guides/events.md +4 -5
- package/dist-elements/guides/loading.md +10 -9
- package/dist-elements/guides/page-contents.md +110 -0
- package/dist-elements/guides/start.md +12 -0
- package/dist-elements/inputs.js +3 -1
- package/dist-elements/layout.js +1 -1
- package/dist-elements/lintje.js +8562 -7138
- package/dist-elements/overlays.js +2 -2
- package/dist-elements/skills/lintje/SKILL.md +1 -1
- package/dist-elements/tables.js +1 -1
- package/dist-elements/tag/activity-log.js +15 -15
- package/dist-elements/tag/ai-label.js +10 -10
- package/dist-elements/tag/announcement.js +36 -76
- package/dist-elements/tag/app-search.js +49 -49
- package/dist-elements/tag/audio-player.js +57 -57
- package/dist-elements/tag/badge.d.ts +1 -1
- package/dist-elements/tag/badge.js +1 -1
- package/dist-elements/tag/breadcrumbs.js +15 -15
- package/dist-elements/tag/button.d.ts +1 -1
- package/dist-elements/tag/button.js +1 -1
- package/dist-elements/tag/card-list.js +12 -12
- package/dist-elements/tag/card.js +39 -44
- package/dist-elements/tag/chart.js +1357 -787
- package/dist-elements/tag/chat-answer.js +49 -49
- package/dist-elements/tag/chat-composer.js +75 -71
- package/dist-elements/tag/chat-message.js +8 -8
- package/dist-elements/tag/chat-strip.js +22 -22
- package/dist-elements/tag/chat-suggestions.js +12 -12
- package/dist-elements/tag/chat.js +56 -56
- package/dist-elements/tag/checkbox-group.d.ts +1 -0
- package/dist-elements/tag/checkbox-group.js +60 -0
- package/dist-elements/tag/checkbox.js +9 -8
- package/dist-elements/tag/code.js +9 -9
- package/dist-elements/tag/combobox.js +19 -18
- package/dist-elements/tag/conflict-alert.js +12 -12
- package/dist-elements/tag/copy-button.js +14 -14
- package/dist-elements/tag/data-table.js +880 -532
- package/dist-elements/tag/date-input.js +30 -29
- package/dist-elements/tag/date-range.js +39 -38
- package/dist-elements/tag/description-list.js +29 -32
- package/dist-elements/tag/dialog.d.ts +1 -0
- package/dist-elements/tag/dialog.js +144 -0
- package/dist-elements/tag/document-viewer.js +23 -23
- package/dist-elements/tag/drawer.js +28 -32
- package/dist-elements/tag/empty-state.js +19 -30
- package/dist-elements/tag/error-page.d.ts +1 -0
- package/dist-elements/tag/error-page.js +109 -0
- package/dist-elements/tag/error-summary.js +10 -10
- package/dist-elements/tag/expander.js +8 -8
- package/dist-elements/tag/explainer.js +11 -11
- package/dist-elements/tag/field.js +5 -5
- package/dist-elements/tag/file-upload.js +35 -34
- package/dist-elements/tag/filter-bar.js +56 -56
- package/dist-elements/tag/filter-sheet.js +11 -11
- package/dist-elements/tag/filter-zone.js +31 -31
- package/dist-elements/tag/find.d.ts +1 -0
- package/dist-elements/tag/find.js +128 -0
- package/dist-elements/tag/footer.js +21 -21
- package/dist-elements/tag/form-actions.js +29 -25
- package/dist-elements/tag/form-section.js +6 -6
- package/dist-elements/tag/form.js +12 -12
- package/dist-elements/tag/gallery.js +14 -14
- package/dist-elements/tag/grid-item.d.ts +1 -1
- package/dist-elements/tag/grid-item.js +1 -1
- package/dist-elements/tag/grid.d.ts +1 -1
- package/dist-elements/tag/grid.js +1 -1
- package/dist-elements/tag/hero.js +12 -12
- package/dist-elements/tag/highlight.js +5 -5
- package/dist-elements/tag/icon-button.d.ts +1 -1
- package/dist-elements/tag/icon-button.js +1 -1
- package/dist-elements/tag/icon.d.ts +1 -1
- package/dist-elements/tag/icon.js +1 -1
- package/dist-elements/tag/job-list.js +22 -44
- package/dist-elements/tag/kpi-row.js +12 -10
- package/dist-elements/tag/kpi.js +149 -140
- package/dist-elements/tag/level-meter.js +11 -11
- package/dist-elements/tag/list.js +55 -55
- package/dist-elements/tag/logo.js +30 -30
- package/dist-elements/tag/map.js +702 -671
- package/dist-elements/tag/menu-button.js +70 -69
- package/dist-elements/tag/modal.js +28 -37
- package/dist-elements/tag/multiselect.js +35 -34
- package/dist-elements/tag/note.js +5 -5
- package/dist-elements/tag/notifications.js +36 -36
- package/dist-elements/tag/number-input.js +13 -12
- package/dist-elements/tag/page-header.js +140 -37
- package/dist-elements/tag/pagination.js +54 -49
- package/dist-elements/tag/popover.d.ts +1 -1
- package/dist-elements/tag/popover.js +1 -1
- package/dist-elements/tag/progress-bar.d.ts +1 -1
- package/dist-elements/tag/progress-bar.js +1 -1
- package/dist-elements/tag/prose.js +6 -6
- package/dist-elements/tag/qr-code.js +7 -7
- package/dist-elements/tag/radio-group.js +13 -12
- package/dist-elements/tag/range.js +23 -22
- package/dist-elements/tag/recording-status.js +14 -14
- package/dist-elements/tag/repeater.js +10 -10
- package/dist-elements/tag/segmented.js +14 -13
- package/dist-elements/tag/select.js +11 -10
- package/dist-elements/tag/shell.js +356 -339
- package/dist-elements/tag/skeleton.d.ts +1 -1
- package/dist-elements/tag/skeleton.js +1 -1
- package/dist-elements/tag/slot-picker.js +16 -15
- package/dist-elements/tag/sortable-list.js +14 -14
- package/dist-elements/tag/spinner.d.ts +1 -1
- package/dist-elements/tag/spinner.js +1 -1
- package/dist-elements/tag/split-pane.js +12 -12
- package/dist-elements/tag/status-dot.d.ts +1 -1
- package/dist-elements/tag/status-dot.js +1 -1
- package/dist-elements/tag/stepper.js +21 -21
- package/dist-elements/tag/streaming-text.js +13 -13
- package/dist-elements/tag/sub-nav.js +39 -38
- package/dist-elements/tag/tabs.js +38 -38
- package/dist-elements/tag/tag-input.js +20 -19
- package/dist-elements/tag/text-editor.js +25 -24
- package/dist-elements/tag/text-input.js +15 -14
- package/dist-elements/tag/textarea.js +15 -14
- package/dist-elements/tag/tile.d.ts +1 -1
- package/dist-elements/tag/tile.js +1 -1
- package/dist-elements/tag/time-input.js +20 -19
- package/dist-elements/tag/toast.js +32 -23
- package/dist-elements/tag/toggle.js +9 -8
- package/dist-elements/tag/toggletip.js +27 -27
- package/dist-elements/tag/token-value.d.ts +1 -0
- package/dist-elements/tag/token-value.js +75 -0
- package/dist-elements/tag/tooltip.d.ts +1 -1
- package/dist-elements/tag/tooltip.js +1 -1
- package/dist-elements/tag/transcript.js +48 -48
- package/dist-elements/tag/translator.js +13 -13
- package/dist-elements/tag/tree-view.js +13 -13
- package/dist-elements/tag/user-menu.js +37 -37
- package/dist-elements/tag/video-player.js +21 -21
- package/dist-elements/tokens.css +120 -96
- package/dist-elements/tokens.json +1244 -0
- package/dist-elements/types/bundle/actions.d.ts +3 -3
- package/dist-elements/types/bundle/content.d.ts +1 -0
- package/dist-elements/types/bundle/feedback.d.ts +6 -5
- package/dist-elements/types/bundle/frame.d.ts +0 -2
- package/dist-elements/types/bundle/index.d.ts +0 -10
- package/dist-elements/types/bundle/inputs.d.ts +2 -0
- package/dist-elements/types/bundle/layout.d.ts +3 -3
- package/dist-elements/types/bundle/overlays.d.ts +3 -3
- package/dist-elements/types/categories.d.ts +4 -0
- package/dist-elements/types/{primitives → components/actions}/button/button.d.ts +13 -10
- package/dist-elements/types/components/actions/copy-button/copy-button.d.ts +8 -9
- package/dist-elements/types/{icons → components/actions}/icon/icon.d.ts +4 -5
- package/dist-elements/types/{primitives → components/actions}/icon-button/icon-button.d.ts +8 -6
- package/dist-elements/types/components/actions/menu-button/menu-button.d.ts +16 -18
- package/dist-elements/types/components/actions/qr-code/qr-code.d.ts +10 -10
- package/dist-elements/types/components/charts/chart/chart.d.ts +6 -5
- package/dist-elements/types/components/charts/explainer/explainer.d.ts +1 -1
- package/dist-elements/types/components/charts/kpi/kpi.d.ts +19 -11
- package/dist-elements/types/components/charts/kpi-row/kpi-row.d.ts +2 -8
- package/dist-elements/types/components/charts/note/note.d.ts +2 -2
- package/dist-elements/types/components/chat/chat/chat.d.ts +9 -11
- package/dist-elements/types/components/chat/chat-answer/chat-answer.d.ts +10 -11
- package/dist-elements/types/components/chat/chat-composer/chat-composer.d.ts +10 -12
- package/dist-elements/types/components/chat/chat-message/chat-message.d.ts +7 -8
- package/dist-elements/types/components/chat/chat-strip/chat-strip.d.ts +5 -5
- package/dist-elements/types/components/chat/chat-suggestions/chat-suggestions.d.ts +9 -10
- package/dist-elements/types/components/content/audio-player/audio-player.d.ts +15 -17
- package/dist-elements/types/components/content/code/code.d.ts +3 -4
- package/dist-elements/types/components/content/document-viewer/document-viewer.d.ts +10 -11
- package/dist-elements/types/components/content/gallery/gallery.d.ts +5 -4
- package/dist-elements/types/components/content/highlight/highlight.d.ts +5 -4
- package/dist-elements/types/components/content/prose/prose.d.ts +3 -4
- package/dist-elements/types/components/content/token-value/token-value.d.ts +42 -0
- package/dist-elements/types/components/content/transcript/transcript.d.ts +15 -28
- package/dist-elements/types/components/content/translator/translator.d.ts +12 -16
- package/dist-elements/types/components/content/video-player/video-player.d.ts +12 -14
- package/dist-elements/types/components/feedback/ai-label/ai-label.d.ts +3 -4
- package/dist-elements/types/components/feedback/announcement/announcement.d.ts +5 -9
- package/dist-elements/types/{primitives → components/feedback}/badge/badge.d.ts +10 -6
- package/dist-elements/types/components/feedback/conflict-alert/conflict-alert.d.ts +4 -5
- package/dist-elements/types/components/feedback/empty-state/empty-state.d.ts +5 -8
- package/dist-elements/types/components/feedback/error-page/error-page.d.ts +52 -0
- package/dist-elements/types/components/feedback/job-list/job-list.d.ts +9 -12
- package/dist-elements/types/components/feedback/level-meter/level-meter.d.ts +4 -6
- package/dist-elements/types/{primitives → components/feedback}/progress-bar/progress-bar.d.ts +9 -7
- package/dist-elements/types/components/feedback/recording-status/recording-status.d.ts +5 -6
- package/dist-elements/types/{primitives → components/feedback}/skeleton/skeleton.d.ts +2 -2
- package/dist-elements/types/{primitives → components/feedback}/spinner/spinner.d.ts +2 -3
- package/dist-elements/types/{primitives → components/feedback}/status-dot/status-dot.d.ts +5 -6
- package/dist-elements/types/components/feedback/streaming-text/streaming-text.d.ts +12 -9
- package/dist-elements/types/components/feedback/toast/toast.d.ts +8 -9
- package/dist-elements/types/components/filters/filter-bar/filter-bar.d.ts +9 -4
- package/dist-elements/types/components/filters/filter-sheet/filter-sheet.d.ts +7 -7
- package/dist-elements/types/components/filters/filter-zone/filter-zone.d.ts +4 -4
- package/dist-elements/types/components/forms/error-summary/error-summary.d.ts +6 -7
- package/dist-elements/types/components/forms/form/form.d.ts +5 -5
- package/dist-elements/types/components/forms/form-actions/form-actions.d.ts +10 -8
- package/dist-elements/types/components/forms/form-section/form-section.d.ts +6 -5
- package/dist-elements/types/components/forms/repeater/repeater.d.ts +15 -9
- package/dist-elements/types/components/forms/stepper/stepper.d.ts +6 -5
- package/dist-elements/types/components/frame/app-search/app-search.d.ts +7 -8
- package/dist-elements/types/components/frame/breadcrumbs/breadcrumbs.d.ts +2 -2
- package/dist-elements/types/components/frame/footer/footer.d.ts +3 -2
- package/dist-elements/types/components/frame/hero/hero.d.ts +7 -9
- package/dist-elements/types/components/frame/notifications/notifications.d.ts +7 -11
- package/dist-elements/types/components/frame/page-header/page-header.d.ts +13 -16
- package/dist-elements/types/components/frame/shell/shell.d.ts +15 -14
- package/dist-elements/types/components/frame/sub-nav/sub-nav.d.ts +10 -6
- package/dist-elements/types/components/frame/user-menu/user-menu.d.ts +13 -12
- package/dist-elements/types/components/index.d.ts +51 -12
- package/dist-elements/types/components/inputs/checkbox/checkbox.d.ts +4 -4
- package/dist-elements/types/components/inputs/checkbox-group/checkbox-group.d.ts +33 -0
- package/dist-elements/types/components/inputs/combobox/combobox.d.ts +14 -8
- package/dist-elements/types/components/inputs/date-input/date-input.d.ts +6 -6
- package/dist-elements/types/components/inputs/date-range/date-range.d.ts +13 -8
- package/dist-elements/types/components/inputs/field/field.d.ts +5 -3
- package/dist-elements/types/components/inputs/file-upload/file-upload.d.ts +8 -10
- package/dist-elements/types/components/inputs/find/find.d.ts +51 -0
- package/dist-elements/types/components/inputs/multiselect/multiselect.d.ts +4 -6
- package/dist-elements/types/components/inputs/number-input/number-input.d.ts +8 -7
- package/dist-elements/types/components/inputs/radio-group/radio-group.d.ts +2 -4
- package/dist-elements/types/components/inputs/range/range.d.ts +5 -6
- package/dist-elements/types/components/inputs/segmented/segmented.d.ts +7 -4
- package/dist-elements/types/components/inputs/select/select.d.ts +6 -3
- package/dist-elements/types/components/inputs/shared/input.d.ts +1 -1
- package/dist-elements/types/components/inputs/slot-picker/slot-picker.d.ts +6 -5
- package/dist-elements/types/components/inputs/tag-input/tag-input.d.ts +8 -6
- package/dist-elements/types/components/inputs/text-editor/text-editor.d.ts +8 -8
- package/dist-elements/types/components/inputs/text-input/text-input.d.ts +12 -7
- package/dist-elements/types/components/inputs/textarea/textarea.d.ts +12 -11
- package/dist-elements/types/components/inputs/time-input/time-input.d.ts +8 -9
- package/dist-elements/types/components/inputs/toggle/toggle.d.ts +3 -1
- package/dist-elements/types/components/layout/expander/expander.d.ts +10 -11
- package/dist-elements/types/{primitives → components/layout}/grid/grid.d.ts +4 -4
- package/dist-elements/types/{primitives → components/layout}/grid-item/grid-item.d.ts +2 -2
- package/dist-elements/types/components/layout/split-pane/split-pane.d.ts +6 -6
- package/dist-elements/types/components/layout/tabs/tabs.d.ts +12 -10
- package/dist-elements/types/{primitives → components/layout}/tile/tile.d.ts +22 -10
- package/dist-elements/types/components/map/map/map.d.ts +12 -11
- package/dist-elements/types/components/overlays/dialog/dialog.d.ts +49 -0
- package/dist-elements/types/components/overlays/drawer/drawer.d.ts +6 -5
- package/dist-elements/types/components/overlays/modal/modal.d.ts +9 -14
- package/dist-elements/types/{primitives → components/overlays}/popover/popover.d.ts +7 -6
- package/dist-elements/types/components/overlays/toggletip/toggletip.d.ts +4 -8
- package/dist-elements/types/{primitives → components/overlays}/tooltip/tooltip.d.ts +8 -8
- package/dist-elements/types/components/shared/announcement-block.d.ts +38 -0
- package/dist-elements/types/components/shared/charts/index.d.ts +5 -1
- package/dist-elements/types/components/shared/charts/kinds.d.ts +92 -0
- package/dist-elements/types/components/shared/charts/line-chart/line-chart.d.ts +2 -2
- package/dist-elements/types/components/shared/charts/map-chart/leaflet.d.ts +5 -0
- package/dist-elements/types/components/shared/charts/map-chart/map-chart.d.ts +1 -1
- package/dist-elements/types/components/shared/charts/radar-chart/radar-chart.d.ts +31 -0
- package/dist-elements/types/components/shared/charts/shared/axes.d.ts +3 -1
- package/dist-elements/types/components/shared/charts/shared/chart-states.d.ts +8 -19
- package/dist-elements/types/components/shared/charts/shared/controller.d.ts +12 -0
- package/dist-elements/types/components/shared/charts/shared/types.d.ts +62 -0
- package/dist-elements/types/components/shared/charts/stacked-area-chart/stacked-area-chart.d.ts +13 -0
- package/dist-elements/types/components/shared/content-tile.d.ts +1 -1
- package/dist-elements/types/components/{forms/form → shared}/controls.d.ts +3 -2
- package/dist-elements/types/components/shared/dialog.d.ts +9 -0
- package/dist-elements/types/components/shared/empty-state-block.d.ts +26 -0
- package/dist-elements/types/components/shared/overflow.d.ts +58 -0
- package/dist-elements/types/components/shared/tone.d.ts +18 -0
- package/dist-elements/types/components/tables/activity-log/activity-log.d.ts +3 -4
- package/dist-elements/types/components/tables/card/card.d.ts +17 -23
- package/dist-elements/types/components/tables/card-list/card-list.d.ts +9 -11
- package/dist-elements/types/components/tables/data-table/actions.d.ts +1 -1
- package/dist-elements/types/components/tables/data-table/data-table.d.ts +88 -19
- package/dist-elements/types/components/tables/data-table/editing.d.ts +1 -1
- package/dist-elements/types/components/tables/data-table/filters.d.ts +15 -6
- package/dist-elements/types/components/tables/description-list/description-list.d.ts +13 -12
- package/dist-elements/types/components/tables/list/list.d.ts +13 -24
- package/dist-elements/types/components/tables/pagination/pagination.d.ts +12 -11
- package/dist-elements/types/components/tables/sortable-list/sortable-list.d.ts +5 -6
- package/dist-elements/types/components/tables/tree-view/tree-view.d.ts +5 -5
- package/dist-elements/types/core/focus.d.ts +1 -1
- package/dist-elements/types/core/media.d.ts +2 -2
- package/dist-elements/types/core/motion.d.ts +5 -0
- package/dist-elements/types/core/print.d.ts +15 -0
- package/dist-elements/types/core/shortcuts.d.ts +2 -2
- package/dist-elements/types/icons/register.d.ts +1 -1
- package/dist-elements/types/types.d.ts +70 -10
- package/dist-icons/functioneel-kolommen.svg +1 -0
- package/dist-icons/functioneel-trechter.svg +1 -0
- package/package.json +1 -1
- package/dist-elements/chunks/confirm-dialog-D5EVGuil.js +0 -4
- package/dist-elements/chunks/download-y528pIHP.js +0 -230
- package/dist-elements/chunks/input-BtuNFSWk.js +0 -195
- package/dist-elements/tag/confirm-dialog.d.ts +0 -1
- package/dist-elements/tag/confirm-dialog.js +0 -118
- package/dist-elements/tag/session-expiry.d.ts +0 -1
- package/dist-elements/tag/session-expiry.js +0 -184
- package/dist-elements/tag/shortcuts.d.ts +0 -1
- package/dist-elements/tag/shortcuts.js +0 -104
- package/dist-elements/types/components/frame/session-expiry/session-expiry.d.ts +0 -55
- package/dist-elements/types/components/frame/shortcuts/shortcuts.d.ts +0 -41
- package/dist-elements/types/components/overlays/confirm-dialog/confirm-dialog.d.ts +0 -41
- package/dist-elements/types/primitives/index.d.ts +0 -33
- /package/dist-elements/types/components/content/{audio-player → shared}/playback.d.ts +0 -0
- /package/dist-elements/types/components/content/{audio-player → shared}/player.d.ts +0 -0
- /package/dist-elements/types/components/{inputs/date-input → shared}/date-format.d.ts +0 -0
- /package/dist-elements/types/{primitives → components}/shared/grid-item-element.d.ts +0 -0
- /package/dist-elements/types/{primitives → components}/shared/length.d.ts +0 -0
- /package/dist-elements/types/{primitives → components}/shared/place.d.ts +0 -0
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import "./chunks/base-
|
|
1
|
+
import "./chunks/base-DRGvkF-r.js";
|
|
2
2
|
import "./tag/toast.js";
|
|
3
3
|
import "./tag/announcement.js";
|
|
4
4
|
import "./tag/empty-state.js";
|
|
5
5
|
import "./tag/conflict-alert.js";
|
|
6
|
+
import "./tag/error-page.js";
|
|
6
7
|
import "./tag/job-list.js";
|
|
7
8
|
import "./tag/streaming-text.js";
|
|
8
9
|
import "./tag/ai-label.js";
|
package/dist-elements/frame.js
CHANGED
|
@@ -89,6 +89,14 @@ Een selectie ongedaan maken is hetzelfde event met de id null en de `href` die j
|
|
|
89
89
|
`lintje-sort-change` zet `data.sort`, `lintje-checked-change` `data.checkedIds`,
|
|
90
90
|
`lintje-layer-change` de `data.layer` van de kaart.
|
|
91
91
|
|
|
92
|
+
De tabel rekent niets uit. Een totaalrij geef je zelf mee als `totals`, per kolom een waarde of
|
|
93
|
+
`{ value, how }`, waarbij `how` het woordje is dat zegt hoe ("gem."); met `groupBy` op een kolom
|
|
94
|
+
staan de rijen per waarde onder een kop, en `groupTotals` geeft per groep haar subtotalen. Een
|
|
95
|
+
kolom met `format: 'label'` tekent een waarde als badge: in `labels` noem je per waarde het woord,
|
|
96
|
+
de toon van `lintje-badge` en eventueel een icoon. Wat de kolommen niet tonen, zet je in
|
|
97
|
+
`detailFields`: elke rij krijgt dan een knop die de verborgen kolommen en die velden onder de rij
|
|
98
|
+
toont. Open rijen en ingeklapte groepen zijn beeld, geen toestand: ze komen niet in de URL.
|
|
99
|
+
|
|
92
100
|
`ChartData.description` en `DataTableData.caption` zijn verplicht: ze worden de `<desc>` van de grafiek
|
|
93
101
|
en de `<caption>` van de tabel. Schrijf ze alsof de figuur er niet was.
|
|
94
102
|
|
|
@@ -47,7 +47,7 @@ form.addEventListener('lintje-submit', async (event) => {
|
|
|
47
47
|
```
|
|
48
48
|
|
|
49
49
|
- In een `<lintje-form>` wordt de waarde van een veld gemeld in `lintje-submit`, niet gepost.
|
|
50
|
-
- `dirty` zegt dat de lezer niet-opgeslagen invoer heeft;
|
|
50
|
+
- `dirty` zegt dat de lezer niet-opgeslagen invoer heeft; vraag het in een `<lintje-dialog alert>` voordat je weggaat.
|
|
51
51
|
- Met `draft-key` bewaart het formulier een concept in `localStorage`; zonder, in het geheugen.
|
|
52
52
|
|
|
53
53
|
## Toestand en acties
|
|
@@ -75,7 +75,7 @@ Een *toestand* is iets wat je bewaart en terugzet op het element (en in de URL m
|
|
|
75
75
|
| `lintje-retry` | `lintje-error-summary`, `lintje-streaming-text` | actie |
|
|
76
76
|
| `lintje-files-add`, `lintje-file-remove`, `lintje-file-cancel` | `lintje-file-upload` | actie |
|
|
77
77
|
| `lintje-search` | `lintje-combobox` (`remote`), `lintje-app-search` | actie |
|
|
78
|
-
| `lintje-open` | `lintje-app-search
|
|
78
|
+
| `lintje-open` | `lintje-app-search` | actie |
|
|
79
79
|
| `lintje-row-add`, `lintje-row-remove` | `lintje-repeater`, `lintje-repeater-row` | actie |
|
|
80
80
|
| `lintje-tab-change` | `lintje-tabs` | toestand |
|
|
81
81
|
| `lintje-page-change` | `lintje-pagination`, `lintje-document-viewer` | toestand |
|
|
@@ -93,7 +93,7 @@ Een *toestand* is iets wat je bewaart en terugzet op het element (en in de URL m
|
|
|
93
93
|
| `lintje-text-change`, `lintje-languages-swap` | `lintje-translator` | toestand, actie |
|
|
94
94
|
| `lintje-segment-edit`, `lintje-segment-save`, `lintje-segment-cancel`, `lintje-segment-speaker`, `lintje-speaker-new`, `lintje-speaker-rename` | `lintje-transcript` | actie |
|
|
95
95
|
| `lintje-action` | `lintje-menu-button`, `lintje-user-menu`, `lintje-app-search`, `lintje-sub-nav` | actie |
|
|
96
|
-
| `lintje-search-open`, `lintje-logout`, `lintje-
|
|
96
|
+
| `lintje-search-open`, `lintje-logout`, `lintje-notification-open`, `lintje-notifications-read` | de shell: `lintje-shell`, `lintje-user-menu`, `lintje-notifications` | actie |
|
|
97
97
|
| `lintje-conflict-keep-mine`, `lintje-conflict-take-theirs`, `lintje-conflict-compare` | `lintje-conflict-alert` | actie |
|
|
98
98
|
| `lintje-message-send`, `lintje-message-edit`, `lintje-suggestion-select`, `lintje-answer-retry`, `lintje-answer-rate`, `lintje-answer-stop` | de chat | actie |
|
|
99
99
|
| `lintje-sources-change`, `lintje-draft-change`, `lintje-strip-change` | de chat | toestand |
|
|
@@ -104,7 +104,6 @@ element stuurt het verzoek en wacht op de property die het beantwoordt (`.option
|
|
|
104
104
|
waarde die bevestigt.
|
|
105
105
|
|
|
106
106
|
**Events die niet van jou zijn.** Een composed event dat niet in de tabel staat, hoort bij wie het
|
|
107
|
-
onderdeel heeft geopend: `lintje-close` van een modal, een
|
|
108
|
-
`lintje-confirm`, en `lintje-invalid` van het formulier (een echo van je eigen `.errors`). Een view
|
|
107
|
+
onderdeel heeft geopend: `lintje-close` van een modal, een dialoog, een drawer of een popover, en `lintje-invalid` van het formulier (een echo van je eigen `.errors`). Een view
|
|
109
108
|
vangt de events van zijn eigen onderdelen af — het uitvouwen en downloaden van de tegel, het sluiten van de modal — zodat één
|
|
110
109
|
actie voor jou één event is. Een pagina die zo'n onderdeel zelf opent, is die eigenaar, en hoort ze.
|
|
@@ -54,13 +54,13 @@ setIconSource({ base: './icons/' })
|
|
|
54
54
|
|
|
55
55
|
| categorie | tags |
|
|
56
56
|
|---|---|
|
|
57
|
-
| `frame.js` — Paginakader | `shell`, `page-header`, `breadcrumbs`, `sub-nav`, `hero`, `footer`, `user-menu`, `app-search`, `notifications
|
|
57
|
+
| `frame.js` — Paginakader | `shell`, `page-header`, `breadcrumbs`, `sub-nav`, `hero`, `footer`, `user-menu`, `app-search`, `notifications` |
|
|
58
58
|
| `layout.js` — Indeling | `grid`, `grid-item`, `tile`, `tabs`, `expander`, `split-pane` |
|
|
59
|
-
| `overlays.js` — Vensters en panelen | `modal`, `
|
|
59
|
+
| `overlays.js` — Vensters en panelen | `modal`, `dialog`, `drawer`, `popover`, `tooltip`, `toggletip` |
|
|
60
60
|
| `actions.js` — Knoppen en iconen | `button`, `icon-button`, `menu-button`, `copy-button`, `qr-code`, `icon`, `logo` |
|
|
61
|
-
| `content.js` — Tekst en media | `prose`, `code`, `highlight`, `translator`, `audio-player`, `video-player`, `transcript`, `document-viewer`, `gallery` |
|
|
62
|
-
| `feedback.js` — Meldingen en status | `announcement`, `toast`, `conflict-alert`, `empty-state`, `badge`, `status-dot`, `spinner`, `skeleton`, `progress-bar`, `job-list`, `streaming-text`, `ai-label`, `level-meter`, `recording-status` |
|
|
63
|
-
| `inputs.js` — Invoervelden | `field`, `text-input`, `textarea`, `number-input`, `select`, `combobox`, `multiselect`, `tag-input`, `checkbox`, `radio-group`, `toggle`, `segmented`, `range`, `date-input`, `time-input`, `date-range`, `slot-picker`, `file-upload`, `text-editor` |
|
|
61
|
+
| `content.js` — Tekst en media | `prose`, `code`, `highlight`, `token-value`, `translator`, `audio-player`, `video-player`, `transcript`, `document-viewer`, `gallery` |
|
|
62
|
+
| `feedback.js` — Meldingen en status | `announcement`, `toast`, `conflict-alert`, `empty-state`, `error-page`, `badge`, `status-dot`, `spinner`, `skeleton`, `progress-bar`, `job-list`, `streaming-text`, `ai-label`, `level-meter`, `recording-status` |
|
|
63
|
+
| `inputs.js` — Invoervelden | `field`, `text-input`, `find`, `textarea`, `number-input`, `select`, `combobox`, `multiselect`, `tag-input`, `checkbox`, `checkbox-group`, `radio-group`, `toggle`, `segmented`, `range`, `date-input`, `time-input`, `date-range`, `slot-picker`, `file-upload`, `text-editor` |
|
|
64
64
|
| `forms.js` — Formulier | `form`, `form-section`, `stepper`, `repeater`, `repeater-row`, `error-summary`, `form-actions` |
|
|
65
65
|
| `filters.js` — Filters | `filter-bar`, `filter-zone`, `filter-sheet` |
|
|
66
66
|
| `charts.js` — Kerncijfers en grafieken | `kpi-row`, `kpi`, `chart`, `note`, `explainer` |
|
|
@@ -78,7 +78,7 @@ geldt voor deze manier van laden:
|
|
|
78
78
|
(`document.createElement('lintje-toast')`) wordt bovenaan geïmporteerd zoals de andere. Niets wordt
|
|
79
79
|
op verzoek opgehaald.
|
|
80
80
|
- **Elk bestand laadt de basis**: Lit, de tokens, de iconen die de componenten tekenen en de
|
|
81
|
-
|
|
81
|
+
bouwstenen die bijna elke tag tekent. Een bouwsteen als `button` of `grid` hoef je dus niet apart te laden. De kaart, met Leaflet en zijn geometrie, is de zwaarste tag.
|
|
82
82
|
- **Het zijn tientallen kleine bestanden.** Serveer de map over HTTP/2, of met verbindingen die
|
|
83
83
|
open blijven: een server die de verbinding na elk bestand sluit, laat er een paar vallen, en één module die
|
|
84
84
|
niet laadt, laat de pagina zonder zijn tags. De bestanden in `chunks/` dragen een hash en mogen
|
|
@@ -117,10 +117,11 @@ const remove = registerShortcut({ keys: '/', description: 'Zoeken', handler })
|
|
|
117
117
|
Een toets zonder Ctrl, Alt of Meta gaat nooit af terwijl de focus in een veld staat, een toets met een
|
|
118
118
|
ervan alleen met `inFields: true`. De laatste registratie van een toets wint, dus een dialoog neemt een
|
|
119
119
|
toets over van de pagina. `shortcuts()` somt op wat
|
|
120
|
-
geregistreerd is
|
|
120
|
+
geregistreerd is: het overzicht is een `<lintje-dialog heading="Sneltoetsen">` die de pagina
|
|
121
|
+
daarmee vult en op `?` opent, voorgedaan in de stijlgids (`examples/_shared/shortcuts.js`).
|
|
121
122
|
|
|
122
|
-
Een toets van één teken zonder Ctrl, Alt of Meta (`/`, `?`) kan de lezer uitzetten, met
|
|
123
|
-
|
|
123
|
+
Een toets van één teken zonder Ctrl, Alt of Meta (`/`, `?`) kan de lezer uitzetten, met
|
|
124
|
+
`setCharacterKeys(false)` achter een instelling van de pagina; de keuze blijft
|
|
124
125
|
bewaard in `localStorage`. Met die toetsen uit opent `?` niets, dus bied het overzicht ook aan
|
|
125
126
|
vanuit een knop of een menu.
|
|
126
127
|
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Een inhoudsopgave op de pagina
|
|
2
|
+
|
|
3
|
+
Een lange tekst krijgt "Op deze pagina": een lijst met de koppen, die laat zien waar de lezer is.
|
|
4
|
+
Dat is `lintje-sub-nav` met `expanded`, geen eigen element. Het submenu tekent alleen. Jij vult de
|
|
5
|
+
ankers, volgt het scrollen en plaatst de lijst. Het besluit staat in
|
|
6
|
+
[`../DESIGN_SYSTEM.md`](https://github.com/h11t-labs/lintje/blob/main/docs/DESIGN_SYSTEM.md), onder "Navigatie en shell".
|
|
7
|
+
|
|
8
|
+
## De lijst vullen
|
|
9
|
+
|
|
10
|
+
Elk item is een kop van de pagina, met een anker als `href`. Een kop van het tweede niveau staat in
|
|
11
|
+
`items` van zijn kop erboven. Met `expanded` staat elk niveau er, zodat de lijst niet verspringt
|
|
12
|
+
terwijl de lezer scrolt.
|
|
13
|
+
|
|
14
|
+
```html
|
|
15
|
+
<div class="artikel">
|
|
16
|
+
<article>
|
|
17
|
+
<h2 id="wie">Wie kan een vergunning aanvragen</h2>
|
|
18
|
+
…
|
|
19
|
+
<h2 id="aanvragen">Zo vraagt u aan</h2>
|
|
20
|
+
<h3 id="online">Online aanvragen</h3>
|
|
21
|
+
…
|
|
22
|
+
</article>
|
|
23
|
+
<lintje-sub-nav expanded label="Op deze pagina"></lintje-sub-nav>
|
|
24
|
+
</div>
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Staan de koppen in `lintje-prose`, zoek ze dan in zijn `shadowRoot` in plaats van in `document`.
|
|
28
|
+
|
|
29
|
+
## De sectie in beeld volgen
|
|
30
|
+
|
|
31
|
+
De huidige sectie is de laatste kop die boven de balk van de shell is geschoven. Die balk houdt
|
|
32
|
+
zijn hoogte vrij als `scroll-padding-top`, dus die waarde is de lijn. Onderaan de pagina haalt een
|
|
33
|
+
korte laatste sectie die lijn nooit; daar is de laatste kop in beeld de huidige. Zet de sectie als
|
|
34
|
+
`active`; het submenu markeert haar en haar kop erboven.
|
|
35
|
+
|
|
36
|
+
```js
|
|
37
|
+
const nav = document.querySelector('.artikel lintje-sub-nav')
|
|
38
|
+
const sections = [
|
|
39
|
+
{ label: 'Wie kan een vergunning aanvragen', href: '#wie' },
|
|
40
|
+
{
|
|
41
|
+
label: 'Zo vraagt u aan',
|
|
42
|
+
href: '#aanvragen',
|
|
43
|
+
items: [{ label: 'Online aanvragen', href: '#online' }],
|
|
44
|
+
},
|
|
45
|
+
]
|
|
46
|
+
|
|
47
|
+
const all = (items) => items.flatMap((item) => [item, ...all(item.items ?? [])])
|
|
48
|
+
const mark = (items, href) =>
|
|
49
|
+
items.map((item) => ({
|
|
50
|
+
...item,
|
|
51
|
+
active: item.href === href,
|
|
52
|
+
...(item.items ? { items: mark(item.items, href) } : {}),
|
|
53
|
+
}))
|
|
54
|
+
|
|
55
|
+
let shown
|
|
56
|
+
function update() {
|
|
57
|
+
const root = document.documentElement
|
|
58
|
+
const end = scrollY + innerHeight >= root.scrollHeight - 1
|
|
59
|
+
const line = end ? innerHeight : (parseFloat(getComputedStyle(root).scrollPaddingTop) || 0) + 1
|
|
60
|
+
let href = null
|
|
61
|
+
for (const item of all(sections)) {
|
|
62
|
+
const heading = document.getElementById(item.href.slice(1))
|
|
63
|
+
if (heading && heading.getBoundingClientRect().top <= line) href = item.href
|
|
64
|
+
}
|
|
65
|
+
if (href === shown) return
|
|
66
|
+
shown = href
|
|
67
|
+
nav.groups = [{ label: 'Op deze pagina', items: mark(sections, href) }]
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
let frame = 0
|
|
71
|
+
const schedule = () => {
|
|
72
|
+
cancelAnimationFrame(frame)
|
|
73
|
+
frame = requestAnimationFrame(update)
|
|
74
|
+
}
|
|
75
|
+
addEventListener('scroll', schedule, { passive: true })
|
|
76
|
+
addEventListener('resize', schedule)
|
|
77
|
+
addEventListener('load', schedule)
|
|
78
|
+
schedule()
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Een klik op een item is een gewone link: de browser springt naar de kop, en het submenu meldt de
|
|
82
|
+
klik als `lintje-navigate` ([events](events.md)). Scrolt je pagina een eigen container
|
|
83
|
+
(`setHostConfig({ scrollRoot })`), luister dan daar naar `scroll` en lees daar de scroll-padding.
|
|
84
|
+
De update na `load` en `resize` vangt een pagina die pas na het script haar hoogte kreeg.
|
|
85
|
+
|
|
86
|
+
## De lijst plaatsen
|
|
87
|
+
|
|
88
|
+
Vanaf 1024 px staat de lijst naast de tekst en plakt ze onder de balk van de shell. Smaller staat ze
|
|
89
|
+
boven de tekst, en onder 768 px is ze de knop van het submenu, die de lijst openklapt.
|
|
90
|
+
|
|
91
|
+
```css
|
|
92
|
+
.artikel {
|
|
93
|
+
display: flex;
|
|
94
|
+
flex-wrap: wrap;
|
|
95
|
+
align-items: flex-start;
|
|
96
|
+
gap: var(--space-8) var(--space-10);
|
|
97
|
+
}
|
|
98
|
+
.artikel > article { flex: 999 1 560px; min-width: 0; max-width: var(--w-text); }
|
|
99
|
+
.artikel > lintje-sub-nav { flex: 1 1 240px; max-width: var(--w-nav); }
|
|
100
|
+
|
|
101
|
+
@media screen and (max-width: 1023px) {
|
|
102
|
+
.artikel > lintje-sub-nav { order: -1; flex-basis: 100%; max-width: none; }
|
|
103
|
+
}
|
|
104
|
+
@media screen and (min-width: 1024px) {
|
|
105
|
+
.artikel > lintje-sub-nav { position: sticky; top: calc(var(--h-topbar) + var(--space-6)); }
|
|
106
|
+
}
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Laat een lijst die hoger is dan het scherm niet plakken: haar onderste koppen zou de lezer dan pas
|
|
110
|
+
aan het eind van de tekst bereiken.
|
|
@@ -134,6 +134,18 @@ wat het terug verwacht.
|
|
|
134
134
|
Een *view* is een tag die één `data`-object neemt (`lintje-shell`, `lintje-data-table`,
|
|
135
135
|
`lintje-chart`, …); elke andere tag is een *onderdeel* met eigen attributen en properties.
|
|
136
136
|
|
|
137
|
+
## Afdrukken
|
|
138
|
+
|
|
139
|
+
Een pagina drukt af zonder werk van de host: licht, zonder bediening, met het embleem en de naam
|
|
140
|
+
van de applicatie bovenaan, en elke tegel heel op een vel waar hij past. Wat de host zelf schrijft,
|
|
141
|
+
houdt zich aan dezelfde regels:
|
|
142
|
+
|
|
143
|
+
- **De achtergrond van `body` is `var(--color-bg-page)`**: die is wit op papier.
|
|
144
|
+
- **Een telefoonregel in de eigen CSS is `@media screen and (max-width: 767px)`**: een staand vel
|
|
145
|
+
is smaller dan 768 px, maar krijgt geen telefoonvorm.
|
|
146
|
+
- **Een eigen `<lintje-tile>` met een lange lijst krijgt `breakable`**: dan breekt hij tussen twee
|
|
147
|
+
vellen in plaats van als geheel naar het volgende te gaan.
|
|
148
|
+
|
|
137
149
|
## De complete voorbeelden
|
|
138
150
|
|
|
139
151
|
[`../../examples/`](https://github.com/h11t-labs/lintje/blob/main/examples/README.md) bevat applicaties gebouwd met script, elk een gewone
|
package/dist-elements/inputs.js
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
import "./tag/radio-group.js";
|
|
2
|
-
import "./tag/toggle.js";
|
|
3
2
|
import "./tag/segmented.js";
|
|
4
3
|
import "./tag/textarea.js";
|
|
5
4
|
import "./tag/text-input.js";
|
|
6
5
|
import "./tag/field.js";
|
|
6
|
+
import "./tag/find.js";
|
|
7
7
|
import "./tag/number-input.js";
|
|
8
8
|
import "./tag/select.js";
|
|
9
9
|
import "./tag/combobox.js";
|
|
10
10
|
import "./tag/checkbox.js";
|
|
11
11
|
import "./tag/multiselect.js";
|
|
12
12
|
import "./tag/tag-input.js";
|
|
13
|
+
import "./tag/checkbox-group.js";
|
|
14
|
+
import "./tag/toggle.js";
|
|
13
15
|
import "./tag/range.js";
|
|
14
16
|
import "./tag/date-input.js";
|
|
15
17
|
import "./tag/time-input.js";
|
package/dist-elements/layout.js
CHANGED