@nldd/design-system 0.8.82 → 0.8.84
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/custom-elements.json +3849 -542
- package/dist/components/actions/button/button.d.ts +9 -2
- package/dist/components/actions/button/button.d.ts.map +1 -1
- package/dist/components/actions/button/button.js +15 -2
- package/dist/components/actions/button/button.js.map +1 -1
- package/dist/components/actions/button/button.template.d.ts.map +1 -1
- package/dist/components/actions/button/button.template.js +2 -0
- package/dist/components/actions/button/button.template.js.map +1 -1
- package/dist/components/actions/icon-button/icon-button.d.ts +2 -2
- package/dist/components/actions/icon-button/icon-button.js +2 -2
- package/dist/components/actions/menu/menu.d.ts +3 -1
- package/dist/components/actions/menu/menu.d.ts.map +1 -1
- package/dist/components/actions/menu/menu.js +22 -11
- package/dist/components/actions/menu/menu.js.map +1 -1
- package/dist/components/actions/toolbar/toolbar.styles.js +2 -2
- package/dist/components/components.js +2911 -1157
- package/dist/components/content/avatar/avatar.d.ts +6 -0
- package/dist/components/content/avatar/avatar.d.ts.map +1 -1
- package/dist/components/content/avatar/avatar.js +9 -0
- package/dist/components/content/avatar/avatar.js.map +1 -1
- package/dist/components/content/avatar/avatar.styles.d.ts.map +1 -1
- package/dist/components/content/avatar/avatar.styles.js +5 -1
- package/dist/components/content/avatar/avatar.styles.js.map +1 -1
- package/dist/components/content/avatar/avatar.template.d.ts.map +1 -1
- package/dist/components/content/avatar/avatar.template.js +2 -0
- package/dist/components/content/avatar/avatar.template.js.map +1 -1
- package/dist/components/content/avatar-group/avatar-group.styles.d.ts.map +1 -1
- package/dist/components/content/avatar-group/avatar-group.styles.js +6 -16
- package/dist/components/content/avatar-group/avatar-group.styles.js.map +1 -1
- package/dist/components/content/blockquote/blockquote.d.ts +3 -4
- package/dist/components/content/blockquote/blockquote.d.ts.map +1 -1
- package/dist/components/content/blockquote/blockquote.js +3 -4
- package/dist/components/content/blockquote/blockquote.js.map +1 -1
- package/dist/components/content/icon/icon-aliases.d.ts.map +1 -1
- package/dist/components/content/icon/icon-aliases.js +80 -6
- package/dist/components/content/icon/icon-aliases.js.map +1 -1
- package/dist/components/content/icon/icon-gallery-status.d.ts.map +1 -1
- package/dist/components/content/icon/icon-gallery-status.js +57 -94
- package/dist/components/content/icon/icon-gallery-status.js.map +1 -1
- package/dist/components/content/icon/icon-registry.d.ts.map +1 -1
- package/dist/components/content/icon/icon-registry.js +36 -4
- package/dist/components/content/icon/icon-registry.js.map +1 -1
- package/dist/components/content/icon/icon.d.ts +8 -2
- package/dist/components/content/icon/icon.d.ts.map +1 -1
- package/dist/components/content/icon/icon.js +17 -2
- package/dist/components/content/icon/icon.js.map +1 -1
- package/dist/components/content/icon/icon.styles.d.ts.map +1 -1
- package/dist/components/content/icon/icon.styles.js +8 -0
- package/dist/components/content/icon/icon.styles.js.map +1 -1
- package/dist/components/content/image/image.d.ts +1 -1
- package/dist/components/content/image/image.js +1 -1
- package/dist/components/content/image/image.styles.d.ts.map +1 -1
- package/dist/components/content/image/image.styles.js +11 -0
- package/dist/components/content/image/image.styles.js.map +1 -1
- package/dist/components/content/keyboard-shortcut/keyboard-shortcut.d.ts +30 -30
- package/dist/components/content/keyboard-shortcut/keyboard-shortcut.js +30 -30
- package/dist/components/content/rich-text/rich-text.d.ts +20 -20
- package/dist/components/content/rich-text/rich-text.js +20 -20
- package/dist/components/content/text/text.d.ts +50 -0
- package/dist/components/content/text/text.d.ts.map +1 -0
- package/dist/components/content/text/text.js +81 -0
- package/dist/components/content/text/text.js.map +1 -0
- package/dist/components/content/text/text.styles.d.ts +2 -0
- package/dist/components/content/text/text.styles.d.ts.map +1 -0
- package/dist/components/content/text/text.styles.js +116 -0
- package/dist/components/content/text/text.styles.js.map +1 -0
- package/dist/components/content/text/text.template.d.ts +3 -0
- package/dist/components/content/text/text.template.d.ts.map +1 -0
- package/dist/components/content/text/text.template.js +7 -0
- package/dist/components/content/text/text.template.js.map +1 -0
- package/dist/components/content/title/title.d.ts +4 -4
- package/dist/components/content/title/title.js +4 -4
- package/dist/components/content/title/title.styles.d.ts.map +1 -1
- package/dist/components/content/title/title.styles.js +9 -13
- package/dist/components/content/title/title.styles.js.map +1 -1
- package/dist/components/content/tooltip/tooltip.d.ts +1 -1
- package/dist/components/content/tooltip/tooltip.js +1 -1
- package/dist/components/{decorate-BKn10QQi.js → decorate-lwt_OrAG.js} +1 -1
- package/dist/components/{dist-TpIL8G4G.js → dist-762GHPyH.js} +3 -3
- package/dist/components/{dist-OBifyiJS.js → dist-BB7TxeMK.js} +2 -2
- package/dist/components/{dist-CJR_Rwhh.js → dist-BJI4-6iQ.js} +1 -1
- package/dist/components/{dist-C400RcFU.js → dist-B_3OW7pC.js} +1 -1
- package/dist/components/{dist-afrAoubg.js → dist-C09E9-dJ.js} +34 -34
- package/dist/components/{dist-Ccw7ZfsU.js → dist-C6gnorjP.js} +4 -3
- package/dist/components/{dist-bO14jlsr.js → dist-CRsR6ckU.js} +1 -1
- package/dist/components/{dist-C0PiB1dr.js → dist-CjaG8dOI.js} +2 -2
- package/dist/components/{dist-CCg5Mso_.js → dist-DZoFKUO-.js} +1 -1
- package/dist/components/{dist-Bq4xc7Bm.js → dist-DaavuU6W.js} +14 -3
- package/dist/components/{dist-BYVOPNHp.js → dist-la_b3ZSq.js} +1 -1
- package/dist/components/forms/form/form.d.ts +76 -22
- package/dist/components/forms/form/form.d.ts.map +1 -1
- package/dist/components/forms/form/form.js +127 -22
- package/dist/components/forms/form/form.js.map +1 -1
- package/dist/components/forms/form-actions/form-actions.d.ts +14 -15
- package/dist/components/forms/form-actions/form-actions.d.ts.map +1 -1
- package/dist/components/forms/form-actions/form-actions.js +14 -15
- package/dist/components/forms/form-actions/form-actions.js.map +1 -1
- package/dist/components/forms/form-field/form-field.d.ts +42 -39
- package/dist/components/forms/form-field/form-field.d.ts.map +1 -1
- package/dist/components/forms/form-field/form-field.js +79 -111
- package/dist/components/forms/form-field/form-field.js.map +1 -1
- package/dist/components/forms/form-field/form-field.styles.d.ts +0 -1
- package/dist/components/forms/form-field/form-field.styles.d.ts.map +1 -1
- package/dist/components/forms/form-field/form-field.styles.js +7 -73
- package/dist/components/forms/form-field/form-field.styles.js.map +1 -1
- package/dist/components/forms/form-field/form-field.template.d.ts +0 -2
- package/dist/components/forms/form-field/form-field.template.d.ts.map +1 -1
- package/dist/components/forms/form-field/form-field.template.js +0 -15
- package/dist/components/forms/form-field/form-field.template.js.map +1 -1
- package/dist/components/forms/form-section/form-section.d.ts +26 -28
- package/dist/components/forms/form-section/form-section.d.ts.map +1 -1
- package/dist/components/forms/form-section/form-section.js +27 -29
- package/dist/components/forms/form-section/form-section.js.map +1 -1
- package/dist/components/forms/validation-list/validation-list.d.ts +193 -0
- package/dist/components/forms/validation-list/validation-list.d.ts.map +1 -0
- package/dist/components/forms/validation-list/validation-list.js +358 -0
- package/dist/components/forms/validation-list/validation-list.js.map +1 -0
- package/dist/components/forms/validation-list/validation-list.styles.d.ts +3 -0
- package/dist/components/forms/validation-list/validation-list.styles.d.ts.map +1 -0
- package/dist/components/forms/validation-list/validation-list.styles.js +58 -0
- package/dist/components/forms/validation-list/validation-list.styles.js.map +1 -0
- package/dist/components/forms/validation-list/validation-list.template.d.ts +5 -0
- package/dist/components/forms/validation-list/validation-list.template.d.ts.map +1 -0
- package/dist/components/forms/validation-list/validation-list.template.js +16 -0
- package/dist/components/forms/validation-list/validation-list.template.js.map +1 -0
- package/dist/components/{icon-CIpJq_cf.js → icon-VTLbdcvZ.js} +104 -11
- package/dist/components/{icon-button-BAkUJTn6.js → icon-button-Sne5TwRG.js} +6 -6
- package/dist/components/index.d.ts +3 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +3 -1
- package/dist/components/index.js.map +1 -1
- package/dist/components/inputs/checkbox/checkbox.d.ts +20 -1
- package/dist/components/inputs/checkbox/checkbox.d.ts.map +1 -1
- package/dist/components/inputs/checkbox/checkbox.js +32 -2
- package/dist/components/inputs/checkbox/checkbox.js.map +1 -1
- package/dist/components/inputs/checkbox/checkbox.template.d.ts.map +1 -1
- package/dist/components/inputs/checkbox/checkbox.template.js +2 -0
- package/dist/components/inputs/checkbox/checkbox.template.js.map +1 -1
- package/dist/components/inputs/checkbox-field/checkbox-field.d.ts +16 -1
- package/dist/components/inputs/checkbox-field/checkbox-field.d.ts.map +1 -1
- package/dist/components/inputs/checkbox-field/checkbox-field.js +27 -2
- package/dist/components/inputs/checkbox-field/checkbox-field.js.map +1 -1
- package/dist/components/inputs/checkbox-field/checkbox-field.template.d.ts.map +1 -1
- package/dist/components/inputs/checkbox-field/checkbox-field.template.js +2 -0
- package/dist/components/inputs/checkbox-field/checkbox-field.template.js.map +1 -1
- package/dist/components/inputs/code-editor/code-editor.d.ts +14 -1
- package/dist/components/inputs/code-editor/code-editor.d.ts.map +1 -1
- package/dist/components/inputs/code-editor/code-editor.js +21 -2
- package/dist/components/inputs/code-editor/code-editor.js.map +1 -1
- package/dist/components/inputs/combo-box/combo-box.d.ts +15 -2
- package/dist/components/inputs/combo-box/combo-box.d.ts.map +1 -1
- package/dist/components/inputs/combo-box/combo-box.js +54 -5
- package/dist/components/inputs/combo-box/combo-box.js.map +1 -1
- package/dist/components/inputs/combo-box/combo-box.styles.d.ts.map +1 -1
- package/dist/components/inputs/combo-box/combo-box.styles.js +14 -0
- package/dist/components/inputs/combo-box/combo-box.styles.js.map +1 -1
- package/dist/components/inputs/combo-box/combo-box.template.d.ts.map +1 -1
- package/dist/components/inputs/combo-box/combo-box.template.js +27 -20
- package/dist/components/inputs/combo-box/combo-box.template.js.map +1 -1
- package/dist/components/inputs/date-field/date-field.d.ts +29 -31
- package/dist/components/inputs/date-field/date-field.d.ts.map +1 -1
- package/dist/components/inputs/date-field/date-field.js +40 -37
- package/dist/components/inputs/date-field/date-field.js.map +1 -1
- package/dist/components/inputs/date-field/date-field.styles.d.ts.map +1 -1
- package/dist/components/inputs/date-field/date-field.styles.js +11 -0
- package/dist/components/inputs/date-field/date-field.styles.js.map +1 -1
- package/dist/components/inputs/date-field/date-field.template.d.ts.map +1 -1
- package/dist/components/inputs/date-field/date-field.template.js +7 -2
- package/dist/components/inputs/date-field/date-field.template.js.map +1 -1
- package/dist/components/inputs/date-picker/date-picker.d.ts +34 -21
- package/dist/components/inputs/date-picker/date-picker.d.ts.map +1 -1
- package/dist/components/inputs/date-picker/date-picker.js +42 -22
- package/dist/components/inputs/date-picker/date-picker.js.map +1 -1
- package/dist/components/inputs/dropdown/dropdown.d.ts +23 -2
- package/dist/components/inputs/dropdown/dropdown.d.ts.map +1 -1
- package/dist/components/inputs/dropdown/dropdown.js +36 -3
- package/dist/components/inputs/dropdown/dropdown.js.map +1 -1
- package/dist/components/inputs/file-field/file-field.d.ts +4 -3
- package/dist/components/inputs/file-field/file-field.d.ts.map +1 -1
- package/dist/components/inputs/file-field/file-field.js +8 -7
- package/dist/components/inputs/file-field/file-field.js.map +1 -1
- package/dist/components/inputs/file-field/file-field.template.d.ts.map +1 -1
- package/dist/components/inputs/file-field/file-field.template.js +0 -1
- package/dist/components/inputs/file-field/file-field.template.js.map +1 -1
- package/dist/components/inputs/multi-line-text-field/multi-line-text-field.d.ts +15 -4
- package/dist/components/inputs/multi-line-text-field/multi-line-text-field.d.ts.map +1 -1
- package/dist/components/inputs/multi-line-text-field/multi-line-text-field.js +20 -8
- package/dist/components/inputs/multi-line-text-field/multi-line-text-field.js.map +1 -1
- package/dist/components/inputs/multi-line-text-field/multi-line-text-field.template.d.ts.map +1 -1
- package/dist/components/inputs/multi-line-text-field/multi-line-text-field.template.js +4 -1
- package/dist/components/inputs/multi-line-text-field/multi-line-text-field.template.js.map +1 -1
- package/dist/components/inputs/number-field/number-field.d.ts +12 -1
- package/dist/components/inputs/number-field/number-field.d.ts.map +1 -1
- package/dist/components/inputs/number-field/number-field.js +18 -3
- package/dist/components/inputs/number-field/number-field.js.map +1 -1
- package/dist/components/inputs/number-field/number-field.styles.d.ts.map +1 -1
- package/dist/components/inputs/number-field/number-field.styles.js +8 -16
- package/dist/components/inputs/number-field/number-field.styles.js.map +1 -1
- package/dist/components/inputs/password-field/password-field.d.ts +10 -3
- package/dist/components/inputs/password-field/password-field.d.ts.map +1 -1
- package/dist/components/inputs/password-field/password-field.js +18 -8
- package/dist/components/inputs/password-field/password-field.js.map +1 -1
- package/dist/components/inputs/password-field/password-field.template.d.ts.map +1 -1
- package/dist/components/inputs/password-field/password-field.template.js +3 -1
- package/dist/components/inputs/password-field/password-field.template.js.map +1 -1
- package/dist/components/inputs/radio-button/radio-button.d.ts +18 -1
- package/dist/components/inputs/radio-button/radio-button.d.ts.map +1 -1
- package/dist/components/inputs/radio-button/radio-button.js +27 -2
- package/dist/components/inputs/radio-button/radio-button.js.map +1 -1
- package/dist/components/inputs/radio-button/radio-button.template.d.ts.map +1 -1
- package/dist/components/inputs/radio-button/radio-button.template.js +1 -0
- package/dist/components/inputs/radio-button/radio-button.template.js.map +1 -1
- package/dist/components/inputs/radio-button-field/radio-button-field.d.ts +14 -1
- package/dist/components/inputs/radio-button-field/radio-button-field.d.ts.map +1 -1
- package/dist/components/inputs/radio-button-field/radio-button-field.js +22 -2
- package/dist/components/inputs/radio-button-field/radio-button-field.js.map +1 -1
- package/dist/components/inputs/radio-button-field/radio-button-field.template.d.ts.map +1 -1
- package/dist/components/inputs/radio-button-field/radio-button-field.template.js +1 -0
- package/dist/components/inputs/radio-button-field/radio-button-field.template.js.map +1 -1
- package/dist/components/inputs/radio-button-group/radio-button-group.d.ts +11 -0
- package/dist/components/inputs/radio-button-group/radio-button-group.d.ts.map +1 -1
- package/dist/components/inputs/radio-button-group/radio-button-group.js +21 -0
- package/dist/components/inputs/radio-button-group/radio-button-group.js.map +1 -1
- package/dist/components/inputs/search-field/search-field.d.ts +23 -1
- package/dist/components/inputs/search-field/search-field.d.ts.map +1 -1
- package/dist/components/inputs/search-field/search-field.js +37 -3
- package/dist/components/inputs/search-field/search-field.js.map +1 -1
- package/dist/components/inputs/search-field/search-field.template.d.ts.map +1 -1
- package/dist/components/inputs/search-field/search-field.template.js +4 -0
- package/dist/components/inputs/search-field/search-field.template.js.map +1 -1
- package/dist/components/inputs/segmented-control/segmented-control.d.ts +28 -0
- package/dist/components/inputs/segmented-control/segmented-control.d.ts.map +1 -1
- package/dist/components/inputs/segmented-control/segmented-control.js +52 -2
- package/dist/components/inputs/segmented-control/segmented-control.js.map +1 -1
- package/dist/components/inputs/segmented-control/segmented-control.template.d.ts.map +1 -1
- package/dist/components/inputs/segmented-control/segmented-control.template.js +1 -0
- package/dist/components/inputs/segmented-control/segmented-control.template.js.map +1 -1
- package/dist/components/inputs/stepper/stepper.d.ts +14 -1
- package/dist/components/inputs/stepper/stepper.d.ts.map +1 -1
- package/dist/components/inputs/stepper/stepper.js +21 -2
- package/dist/components/inputs/stepper/stepper.js.map +1 -1
- package/dist/components/inputs/switch/switch.d.ts +20 -1
- package/dist/components/inputs/switch/switch.d.ts.map +1 -1
- package/dist/components/inputs/switch/switch.js +31 -2
- package/dist/components/inputs/switch/switch.js.map +1 -1
- package/dist/components/inputs/switch/switch.template.d.ts.map +1 -1
- package/dist/components/inputs/switch/switch.template.js +2 -0
- package/dist/components/inputs/switch/switch.template.js.map +1 -1
- package/dist/components/inputs/switch-field/switch-field.d.ts +18 -1
- package/dist/components/inputs/switch-field/switch-field.d.ts.map +1 -1
- package/dist/components/inputs/switch-field/switch-field.js +25 -1
- package/dist/components/inputs/switch-field/switch-field.js.map +1 -1
- package/dist/components/inputs/switch-field/switch-field.template.d.ts.map +1 -1
- package/dist/components/inputs/switch-field/switch-field.template.js +2 -0
- package/dist/components/inputs/switch-field/switch-field.template.js.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.d.ts +14 -1
- package/dist/components/inputs/text-editor/text-editor.d.ts.map +1 -1
- package/dist/components/inputs/text-editor/text-editor.js +21 -2
- package/dist/components/inputs/text-editor/text-editor.js.map +1 -1
- package/dist/components/inputs/text-field/text-field.d.ts +31 -3
- package/dist/components/inputs/text-field/text-field.d.ts.map +1 -1
- package/dist/components/inputs/text-field/text-field.js +65 -7
- package/dist/components/inputs/text-field/text-field.js.map +1 -1
- package/dist/components/inputs/text-field/text-field.template.d.ts.map +1 -1
- package/dist/components/inputs/text-field/text-field.template.js +5 -1
- package/dist/components/inputs/text-field/text-field.template.js.map +1 -1
- package/dist/components/inputs/time-field/time-field.d.ts +33 -35
- package/dist/components/inputs/time-field/time-field.d.ts.map +1 -1
- package/dist/components/inputs/time-field/time-field.js +43 -40
- package/dist/components/inputs/time-field/time-field.js.map +1 -1
- package/dist/components/inputs/time-field/time-field.styles.d.ts.map +1 -1
- package/dist/components/inputs/time-field/time-field.styles.js +12 -0
- package/dist/components/inputs/time-field/time-field.styles.js.map +1 -1
- package/dist/components/inputs/time-field/time-field.template.d.ts.map +1 -1
- package/dist/components/inputs/time-field/time-field.template.js +7 -2
- package/dist/components/inputs/time-field/time-field.template.js.map +1 -1
- package/dist/components/inputs/time-picker/time-picker.d.ts +34 -19
- package/dist/components/inputs/time-picker/time-picker.d.ts.map +1 -1
- package/dist/components/inputs/time-picker/time-picker.js +42 -22
- package/dist/components/inputs/time-picker/time-picker.js.map +1 -1
- package/dist/components/inputs/toggle-button/toggle-button.d.ts +22 -1
- package/dist/components/inputs/toggle-button/toggle-button.d.ts.map +1 -1
- package/dist/components/inputs/toggle-button/toggle-button.js +35 -2
- package/dist/components/inputs/toggle-button/toggle-button.js.map +1 -1
- package/dist/components/inputs/toggle-button/toggle-button.template.d.ts.map +1 -1
- package/dist/components/inputs/toggle-button/toggle-button.template.js +3 -0
- package/dist/components/inputs/toggle-button/toggle-button.template.js.map +1 -1
- package/dist/components/inputs/toggle-button-group/toggle-button-group.d.ts +27 -0
- package/dist/components/inputs/toggle-button-group/toggle-button-group.d.ts.map +1 -1
- package/dist/components/inputs/toggle-button-group/toggle-button-group.js +46 -0
- package/dist/components/inputs/toggle-button-group/toggle-button-group.js.map +1 -1
- package/dist/components/inputs/token-field/token-field.d.ts +7 -1
- package/dist/components/inputs/token-field/token-field.d.ts.map +1 -1
- package/dist/components/inputs/token-field/token-field.js +14 -1
- package/dist/components/inputs/token-field/token-field.js.map +1 -1
- package/dist/components/layout/app-view/app-view.d.ts.map +1 -1
- package/dist/components/layout/app-view/app-view.js +12 -0
- package/dist/components/layout/app-view/app-view.js.map +1 -1
- package/dist/components/layout/box/box.d.ts +4 -4
- package/dist/components/layout/box/box.d.ts.map +1 -1
- package/dist/components/layout/box/box.js +4 -4
- package/dist/components/layout/box/box.js.map +1 -1
- package/dist/components/layout/box/box.styles.d.ts.map +1 -1
- package/dist/components/layout/box/box.styles.js +4 -6
- package/dist/components/layout/box/box.styles.js.map +1 -1
- package/dist/components/layout/card/card.d.ts +18 -19
- package/dist/components/layout/card/card.d.ts.map +1 -1
- package/dist/components/layout/card/card.js +18 -19
- package/dist/components/layout/card/card.js.map +1 -1
- package/dist/components/layout/card/card.styles.d.ts.map +1 -1
- package/dist/components/layout/card/card.styles.js +1 -0
- package/dist/components/layout/card/card.styles.js.map +1 -1
- package/dist/components/layout/collection/collection.d.ts.map +1 -1
- package/dist/components/layout/collection/collection.js +6 -2
- package/dist/components/layout/collection/collection.js.map +1 -1
- package/dist/components/layout/divider/divider.d.ts +1 -1
- package/dist/components/layout/divider/divider.js +1 -1
- package/dist/components/layout/popover/popover.d.ts +1 -1
- package/dist/components/layout/popover/popover.d.ts.map +1 -1
- package/dist/components/layout/popover/popover.js +15 -2
- package/dist/components/layout/popover/popover.js.map +1 -1
- package/dist/components/layout/sheet/sheet.d.ts +1 -1
- package/dist/components/layout/sheet/sheet.js +2 -2
- package/dist/components/layout/sheet/sheet.js.map +1 -1
- package/dist/components/layout/sheet/sheet.styles.d.ts.map +1 -1
- package/dist/components/layout/sheet/sheet.styles.js +15 -3
- package/dist/components/layout/sheet/sheet.styles.js.map +1 -1
- package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.d.ts +8 -0
- package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.d.ts.map +1 -1
- package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.js +29 -11
- package/dist/components/layout/split-views/navigation-split-view/navigation-split-view.js.map +1 -1
- package/dist/components/layout/window/window.d.ts +20 -21
- package/dist/components/layout/window/window.d.ts.map +1 -1
- package/dist/components/layout/window/window.js +21 -22
- package/dist/components/layout/window/window.js.map +1 -1
- package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.d.ts +41 -12
- package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.d.ts.map +1 -1
- package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.js +47 -17
- package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.js.map +1 -1
- package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.styles.d.ts.map +1 -1
- package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.styles.js +42 -13
- package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.styles.js.map +1 -1
- package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.template.d.ts.map +1 -1
- package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.template.js +12 -4
- package/dist/components/lists-and-tables/cells/timeline-track-cell/timeline-track-cell.template.js.map +1 -1
- package/dist/components/lists-and-tables/list/list.d.ts +168 -61
- package/dist/components/lists-and-tables/list/list.d.ts.map +1 -1
- package/dist/components/lists-and-tables/list/list.i18n.d.ts +0 -1
- package/dist/components/lists-and-tables/list/list.i18n.d.ts.map +1 -1
- package/dist/components/lists-and-tables/list/list.i18n.js +0 -1
- package/dist/components/lists-and-tables/list/list.i18n.js.map +1 -1
- package/dist/components/lists-and-tables/list/list.js +361 -122
- package/dist/components/lists-and-tables/list/list.js.map +1 -1
- package/dist/components/lists-and-tables/list/list.styles.d.ts.map +1 -1
- package/dist/components/lists-and-tables/list/list.styles.js +5 -0
- package/dist/components/lists-and-tables/list/list.styles.js.map +1 -1
- package/dist/components/lists-and-tables/list/list.template.d.ts +1 -3
- package/dist/components/lists-and-tables/list/list.template.d.ts.map +1 -1
- package/dist/components/lists-and-tables/list/list.template.js +2 -7
- package/dist/components/lists-and-tables/list/list.template.js.map +1 -1
- package/dist/components/lists-and-tables/list-item/list-item.d.ts +134 -23
- package/dist/components/lists-and-tables/list-item/list-item.d.ts.map +1 -1
- package/dist/components/lists-and-tables/list-item/list-item.js +354 -61
- package/dist/components/lists-and-tables/list-item/list-item.js.map +1 -1
- package/dist/components/lists-and-tables/list-item/list-item.styles.d.ts.map +1 -1
- package/dist/components/lists-and-tables/list-item/list-item.styles.js +116 -34
- package/dist/components/lists-and-tables/list-item/list-item.styles.js.map +1 -1
- package/dist/components/lists-and-tables/list-item/list-item.template.d.ts +1 -1
- package/dist/components/lists-and-tables/list-item/list-item.template.d.ts.map +1 -1
- package/dist/components/lists-and-tables/list-item/list-item.template.js +5 -2
- package/dist/components/lists-and-tables/list-item/list-item.template.js.map +1 -1
- package/dist/components/lists-and-tables/list-item-segment/list-item-segment.d.ts +116 -0
- package/dist/components/lists-and-tables/list-item-segment/list-item-segment.d.ts.map +1 -0
- package/dist/components/lists-and-tables/{list-item-action/list-item-action.js → list-item-segment/list-item-segment.js} +85 -56
- package/dist/components/lists-and-tables/list-item-segment/list-item-segment.js.map +1 -0
- package/dist/components/lists-and-tables/list-item-segment/list-item-segment.styles.d.ts +2 -0
- package/dist/components/lists-and-tables/list-item-segment/list-item-segment.styles.d.ts.map +1 -0
- package/dist/components/lists-and-tables/list-item-segment/list-item-segment.styles.js +179 -0
- package/dist/components/lists-and-tables/list-item-segment/list-item-segment.styles.js.map +1 -0
- package/dist/components/lists-and-tables/list-item-segment/list-item-segment.template.d.ts +3 -0
- package/dist/components/lists-and-tables/list-item-segment/list-item-segment.template.d.ts.map +1 -0
- package/dist/components/lists-and-tables/{list-item-action/list-item-action.template.js → list-item-segment/list-item-segment.template.js} +5 -4
- package/dist/components/lists-and-tables/list-item-segment/list-item-segment.template.js.map +1 -0
- package/dist/components/lists-and-tables/table/table.d.ts +12 -9
- package/dist/components/lists-and-tables/table/table.d.ts.map +1 -1
- package/dist/components/lists-and-tables/table/table.i18n.d.ts +0 -1
- package/dist/components/lists-and-tables/table/table.i18n.d.ts.map +1 -1
- package/dist/components/lists-and-tables/table/table.i18n.js +0 -1
- package/dist/components/lists-and-tables/table/table.i18n.js.map +1 -1
- package/dist/components/lists-and-tables/table/table.js +26 -16
- package/dist/components/lists-and-tables/table/table.js.map +1 -1
- package/dist/components/lists-and-tables/table/table.styles.d.ts.map +1 -1
- package/dist/components/lists-and-tables/table/table.styles.js +5 -0
- package/dist/components/lists-and-tables/table/table.styles.js.map +1 -1
- package/dist/components/lists-and-tables/table/table.template.d.ts +1 -1
- package/dist/components/lists-and-tables/table/table.template.d.ts.map +1 -1
- package/dist/components/lists-and-tables/table/table.template.js +5 -9
- package/dist/components/lists-and-tables/table/table.template.js.map +1 -1
- package/dist/components/navigation/link/link.d.ts +30 -24
- package/dist/components/navigation/link/link.d.ts.map +1 -1
- package/dist/components/navigation/link/link.js +33 -24
- package/dist/components/navigation/link/link.js.map +1 -1
- package/dist/components/navigation/link/link.template.js +1 -1
- package/dist/components/navigation/link/link.template.js.map +1 -1
- package/dist/components/navigation/menu-bar/menu-bar.d.ts +7 -7
- package/dist/components/navigation/menu-bar/menu-bar.js +7 -7
- package/dist/components/navigation/menu-bar-item/menu-bar-item.d.ts +23 -23
- package/dist/components/navigation/menu-bar-item/menu-bar-item.js +23 -23
- package/dist/components/navigation/pagination/pagination.d.ts +4 -4
- package/dist/components/navigation/pagination/pagination.js +4 -4
- package/dist/components/navigation/skip-link/skip-link.d.ts +7 -7
- package/dist/components/navigation/skip-link/skip-link.js +7 -7
- package/dist/components/navigation/tab-bar/tab-bar.d.ts +5 -3
- package/dist/components/navigation/tab-bar/tab-bar.d.ts.map +1 -1
- package/dist/components/navigation/tab-bar/tab-bar.js +18 -13
- package/dist/components/navigation/tab-bar/tab-bar.js.map +1 -1
- package/dist/components/navigation/tab-bar/tab-bar.styles.js +8 -8
- package/dist/components/navigation/tab-bar/tab-bar.template.js +5 -5
- package/dist/components/navigation/tab-bar/tab-bar.template.js.map +1 -1
- package/dist/components/navigation/top-navigation-bar/top-navigation-bar.d.ts +15 -15
- package/dist/components/navigation/top-navigation-bar/top-navigation-bar.js +15 -15
- package/dist/components/navigation/top-navigation-bar/top-navigation-bar.styles.d.ts.map +1 -1
- package/dist/components/navigation/top-navigation-bar/top-navigation-bar.styles.js +14 -2
- package/dist/components/navigation/top-navigation-bar/top-navigation-bar.styles.js.map +1 -1
- package/dist/components/navigation/top-title-bar/top-title-bar.d.ts +2 -2
- package/dist/components/navigation/top-title-bar/top-title-bar.js +2 -2
- package/dist/components/navigation/top-title-bar/top-title-bar.styles.js +2 -2
- package/dist/components/status-and-feedback/badge/badge.d.ts +8 -2
- package/dist/components/status-and-feedback/badge/badge.d.ts.map +1 -1
- package/dist/components/status-and-feedback/badge/badge.js +17 -1
- package/dist/components/status-and-feedback/badge/badge.js.map +1 -1
- package/dist/components/status-and-feedback/badge/badge.styles.d.ts.map +1 -1
- package/dist/components/status-and-feedback/badge/badge.styles.js +41 -10
- package/dist/components/status-and-feedback/badge/badge.styles.js.map +1 -1
- package/dist/components/status-and-feedback/badge/badge.template.js +1 -1
- package/dist/components/status-and-feedback/badge/badge.template.js.map +1 -1
- package/dist/components/status-and-feedback/banner/banner.styles.js +2 -2
- package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.d.ts +37 -36
- package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.d.ts.map +1 -1
- package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.js +37 -36
- package/dist/components/status-and-feedback/just-in-time-education/just-in-time-education.js.map +1 -1
- package/dist/components/status-and-feedback/modal-dialog/modal-dialog.d.ts +1 -1
- package/dist/components/status-and-feedback/modal-dialog/modal-dialog.js +2 -2
- package/dist/components/status-and-feedback/modal-dialog/modal-dialog.js.map +1 -1
- package/dist/components/status-and-feedback/modal-dialog/modal-dialog.styles.d.ts.map +1 -1
- package/dist/components/status-and-feedback/modal-dialog/modal-dialog.styles.js +7 -0
- package/dist/components/status-and-feedback/modal-dialog/modal-dialog.styles.js.map +1 -1
- package/dist/components/status-and-feedback/notification/notification-region.js +1 -1
- package/dist/components/status-and-feedback/status-bar/status-bar.d.ts +29 -28
- package/dist/components/status-and-feedback/status-bar/status-bar.d.ts.map +1 -1
- package/dist/components/status-and-feedback/status-bar/status-bar.js +29 -28
- package/dist/components/status-and-feedback/status-bar/status-bar.js.map +1 -1
- package/dist/components/status-and-feedback/step-indicator/step-indicator.styles.js +1 -1
- package/dist/components/{visibility-mixin-GxbwkBb1.js → visibility-mixin-vbfhyo7f.js} +1 -1
- package/dist/components/{with-translations-DzAdFTK8.js → with-translations-CqUV9S5g.js} +1 -1
- package/dist/css/form-section.css +28 -46
- package/dist/css/form.css +7 -13
- package/dist/css/rich-text.css +5 -5
- package/dist/css/variables.css +133 -8
- package/dist/nldd.min.js +1382 -875
- package/dist/types/vue.d.ts +530 -336
- package/dist/utilities/codemirror/codemirror-element.d.ts.map +1 -1
- package/dist/utilities/codemirror/codemirror-element.js +5 -0
- package/dist/utilities/codemirror/codemirror-element.js.map +1 -1
- package/dist/utilities/described-by-mixin.d.ts +49 -0
- package/dist/utilities/described-by-mixin.d.ts.map +1 -0
- package/dist/utilities/described-by-mixin.js +109 -0
- package/dist/utilities/described-by-mixin.js.map +1 -0
- package/dist/utilities/form-associated-mixin.d.ts +5 -0
- package/dist/utilities/form-associated-mixin.d.ts.map +1 -1
- package/dist/utilities/form-associated-mixin.js +69 -0
- package/dist/utilities/form-associated-mixin.js.map +1 -1
- package/dist/utilities/scroll-mode-controller.d.ts +9 -1
- package/dist/utilities/scroll-mode-controller.d.ts.map +1 -1
- package/dist/utilities/scroll-mode-controller.js +10 -2
- package/dist/utilities/scroll-mode-controller.js.map +1 -1
- package/package.json +21 -9
- package/dist/components/lists-and-tables/list-item-action/list-item-action.d.ts +0 -108
- package/dist/components/lists-and-tables/list-item-action/list-item-action.d.ts.map +0 -1
- package/dist/components/lists-and-tables/list-item-action/list-item-action.js.map +0 -1
- package/dist/components/lists-and-tables/list-item-action/list-item-action.styles.d.ts +0 -2
- package/dist/components/lists-and-tables/list-item-action/list-item-action.styles.d.ts.map +0 -1
- package/dist/components/lists-and-tables/list-item-action/list-item-action.styles.js +0 -145
- package/dist/components/lists-and-tables/list-item-action/list-item-action.styles.js.map +0 -1
- package/dist/components/lists-and-tables/list-item-action/list-item-action.template.d.ts +0 -3
- package/dist/components/lists-and-tables/list-item-action/list-item-action.template.d.ts.map +0 -1
- package/dist/components/lists-and-tables/list-item-action/list-item-action.template.js.map +0 -1
package/dist/types/vue.d.ts
CHANGED
|
@@ -46,7 +46,6 @@ import type { NLDDFileField } from '@nldd/design-system/file-field';
|
|
|
46
46
|
import type { NLDDForm } from '@nldd/design-system/form';
|
|
47
47
|
import type { NLDDFormActions } from '@nldd/design-system/form-actions';
|
|
48
48
|
import type { NLDDFormField } from '@nldd/design-system/form-field';
|
|
49
|
-
import type { NLDDFormFieldErrorText } from '@nldd/design-system/form-field';
|
|
50
49
|
import type { NLDDFormFieldHelpText } from '@nldd/design-system/form-field';
|
|
51
50
|
import type { NLDDFormSection } from '@nldd/design-system/form-section';
|
|
52
51
|
import type { NLDDFullBleedSection } from '@nldd/design-system/full-bleed-section';
|
|
@@ -62,7 +61,7 @@ import type { NLDDKeyboardShortcut } from '@nldd/design-system/keyboard-shortcut
|
|
|
62
61
|
import type { NLDDLink } from '@nldd/design-system/link';
|
|
63
62
|
import type { NLDDList } from '@nldd/design-system/list';
|
|
64
63
|
import type { NLDDListItem } from '@nldd/design-system/list-item';
|
|
65
|
-
import type {
|
|
64
|
+
import type { NLDDListItemSegment } from '@nldd/design-system/list-item-segment';
|
|
66
65
|
import type { NLDDMenu } from '@nldd/design-system/menu';
|
|
67
66
|
import type { NLDDMenuBar } from '@nldd/design-system/menu-bar';
|
|
68
67
|
import type { NLDDMenuBarItem } from '@nldd/design-system/menu-bar-item';
|
|
@@ -116,6 +115,7 @@ import type { NLDDTabBarItem } from '@nldd/design-system/tab-bar';
|
|
|
116
115
|
import type { NLDDTable } from '@nldd/design-system/table';
|
|
117
116
|
import type { NLDDTableRow } from '@nldd/design-system/table';
|
|
118
117
|
import type { NLDDTag } from '@nldd/design-system/tag';
|
|
118
|
+
import type { NLDDText } from '@nldd/design-system/text';
|
|
119
119
|
import type { NLDDTextCell } from '@nldd/design-system/text-cell';
|
|
120
120
|
import type { NLDDTextEditor } from '@nldd/design-system/text-editor';
|
|
121
121
|
import type { NLDDTextField } from '@nldd/design-system/text-field';
|
|
@@ -135,6 +135,8 @@ import type { NLDDTooltip } from '@nldd/design-system/tooltip';
|
|
|
135
135
|
import type { NLDDTopNavigationBar } from '@nldd/design-system/top-navigation-bar';
|
|
136
136
|
import type { NLDDTopTitleBar } from '@nldd/design-system/top-title-bar';
|
|
137
137
|
import type { NLDDTwoThirdsOneThirdSection } from '@nldd/design-system/two-thirds-one-third-section';
|
|
138
|
+
import type { NLDDValidationItem } from '@nldd/design-system/validation-list';
|
|
139
|
+
import type { NLDDValidationList } from '@nldd/design-system/validation-list';
|
|
138
140
|
import type { NLDDWindow } from '@nldd/design-system/window';
|
|
139
141
|
|
|
140
142
|
declare module 'vue' {
|
|
@@ -197,6 +199,10 @@ declare module 'vue' {
|
|
|
197
199
|
'tooltipTiming'?: NLDDAvatar['tooltipTiming'];
|
|
198
200
|
/** Makes the avatar a link to this URL; the shape itself becomes the link, so the hit area and the focus ring follow it */
|
|
199
201
|
'href'?: NLDDAvatar['href'];
|
|
202
|
+
/** Takes the control out of the tab order (tabindex="-1"), for an avatar that is a link or a button inside a roving container (a row of an nldd-list). Does nothing on a decorative avatar. */
|
|
203
|
+
'no-tab'?: NLDDAvatar['noTab'];
|
|
204
|
+
/** Takes the control out of the tab order (tabindex="-1"), for an avatar that is a link or a button inside a roving container (a row of an nldd-list). Does nothing on a decorative avatar. */
|
|
205
|
+
'noTab'?: NLDDAvatar['noTab'];
|
|
200
206
|
/** Makes the avatar a button; ignored when `href` is set */
|
|
201
207
|
'button'?: NLDDAvatar['button'];
|
|
202
208
|
/** Link target for href (e.g. '_blank'); completes rel and announces "Opens in a new tab" */
|
|
@@ -228,8 +234,12 @@ declare module 'vue' {
|
|
|
228
234
|
type NLDDBadgeProps = {
|
|
229
235
|
/** Size: 'sm' | 'md' (default: 'md') */
|
|
230
236
|
'size'?: NLDDBadge['size'];
|
|
231
|
-
/** Semantic ('critical' | 'accent' | 'neutral' | 'warning' | 'success')
|
|
237
|
+
/** Semantic ('critical' | 'accent' | 'neutral' | 'warning' | 'success'), a Rijkshuisstijl color ('lintblauw' | 'hemelblauw' | 'oranje' | …), or 'inherit' to fill in the content color around it: the `--context-content-color` channel a list item, table row or menu sets, falling back to `currentColor`. Default: 'critical' */
|
|
232
238
|
'color'?: NLDDBadge['color'];
|
|
239
|
+
/** A color of its own, as any CSS color value ('#a90061', 'oklch(0.6 0.2 20)', 'var(--brand-cable-blue)'). For a color the design system cannot know: the jacket of a cable, a color someone picked. It wins over `color`. Whatever it paints, the text and icon on top become white or black, whichever contrasts. The text on it is black or white, picked on the relative luminance of the fill, so it clears 4.5:1 whatever color you hand it. */
|
|
240
|
+
'custom-color'?: NLDDBadge['customColor'];
|
|
241
|
+
/** A color of its own, as any CSS color value ('#a90061', 'oklch(0.6 0.2 20)', 'var(--brand-cable-blue)'). For a color the design system cannot know: the jacket of a cable, a color someone picked. It wins over `color`. Whatever it paints, the text and icon on top become white or black, whichever contrasts. The text on it is black or white, picked on the relative luminance of the fill, so it clears 4.5:1 whatever color you hand it. */
|
|
242
|
+
'customColor'?: NLDDBadge['customColor'];
|
|
233
243
|
/** Grows a ring out of the badge and fades it, for something happening right now (a live connection, an outage). Respects `prefers-reduced-motion`. */
|
|
234
244
|
'pulse'?: NLDDBadge['pulse'];
|
|
235
245
|
/** Text (takes precedence over number) */
|
|
@@ -285,8 +295,8 @@ declare module 'vue' {
|
|
|
285
295
|
};
|
|
286
296
|
|
|
287
297
|
type NLDDBoxProps = {
|
|
288
|
-
/** Which surface this box draws. - `tinted` (default): a box on a plain page background. - `base`: a box on an already-tinted parent (the border ring gets +2 palette steps so it still reads against a card-on-card). - `critical`: a region whose actions are destructive or irreversible (a "danger zone"), tinted and outlined in critical. It carries no ARIA of its own: unlike nldd-banner this is not an announcement but a permanent part of the page, so the heading and the button labels have to name the danger —
|
|
289
|
-
'
|
|
298
|
+
/** Which surface this box draws, named as it is on nldd-app-view, nldd-page, nldd-split-view-pane and nldd-card. It starts tinted where a card starts base: a box is there to stand out from the page, a card to sit on it. - `tinted` (default): a box on a plain page background. - `base`: a box on an already-tinted parent (the border ring gets +2 palette steps so it still reads against a card-on-card). - `critical`: a region whose actions are destructive or irreversible (a "danger zone"), tinted and outlined in critical. It carries no ARIA of its own: unlike nldd-banner this is not an announcement but a permanent part of the page, so the heading and the button labels have to name the danger — color is a reinforcement, never the only signal (WCAG 1.4.1). The box draws the surface and nothing else: it has no padding of its own, the same way nldd-card has none. Put an nldd-container inside it and let that set the inset, so one component owns spacing wherever it is used. */
|
|
299
|
+
'background'?: NLDDBox['background'];
|
|
290
300
|
};
|
|
291
301
|
|
|
292
302
|
type NLDDBreadcrumbsProps = {
|
|
@@ -308,7 +318,7 @@ declare module 'vue' {
|
|
|
308
318
|
};
|
|
309
319
|
|
|
310
320
|
type NLDDButtonProps = {
|
|
311
|
-
/** Button variant: 'primary' | 'secondary' | 'destructive' | 'accent-filled' | 'accent-transparent' | 'neutral-tinted' | 'neutral-base' | 'neutral-transparent' | 'critical-tinted' | 'critical-transparent' | 'inherit-filled' | 'inherit-tinted'.
|
|
321
|
+
/** Button variant: 'primary' | 'secondary' | 'destructive' | 'accent-filled' | 'accent-transparent' | 'neutral-tinted' | 'neutral-base' | 'neutral-transparent' | 'critical-tinted' | 'critical-transparent' | 'inherit-filled' | 'inherit-tinted'. The inherit variants derive their colors from currentColor, for buttons on colored surfaces; inherit-filled uses the surface color (--context-parent-background-color) as the label color, with a white/black contrast flip as a fallback. */
|
|
312
322
|
'variant'?: NLDDButton['variant'];
|
|
313
323
|
/** Button size: 'xs' | 'sm' | 'md' | 'lg' (default: 'md'). 'lg' uses larger text and 24px start/end icons. */
|
|
314
324
|
'size'?: NLDDButton['size'];
|
|
@@ -322,6 +332,10 @@ declare module 'vue' {
|
|
|
322
332
|
'max-width'?: NLDDButton['maxWidth'];
|
|
323
333
|
/** Caps the width at this CSS length (e.g. '320px'). Combines with `width="full"`: the button follows its container up to the cap. A label that doesn't fit is truncated with an ellipsis — a cap only means something if the content respects it. */
|
|
324
334
|
'maxWidth'?: NLDDButton['maxWidth'];
|
|
335
|
+
/** Takes the button out of the tab order (tabindex="-1"), for a control owned by a roving container (e.g. a button in a row of an nldd-list, where the arrow keys move between rows) that manages focus itself. Still mouse- and script-focusable. */
|
|
336
|
+
'no-tab'?: NLDDButton['noTab'];
|
|
337
|
+
/** Takes the button out of the tab order (tabindex="-1"), for a control owned by a roving container (e.g. a button in a row of an nldd-list, where the arrow keys move between rows) that manages focus itself. Still mouse- and script-focusable. */
|
|
338
|
+
'noTab'?: NLDDButton['noTab'];
|
|
325
339
|
/** Whether the button has a icon to indicate it opens a menu or popover */
|
|
326
340
|
'expandable'?: NLDDButton['expandable'];
|
|
327
341
|
/** Whether the popover/menu controlled by this button is currently open. Forwarded as aria-expanded on the inner button; toggles the is-expanded visual state. */
|
|
@@ -376,6 +390,8 @@ declare module 'vue' {
|
|
|
376
390
|
'popoverTargetElement'?: NLDDButton['popoverTargetElement'];
|
|
377
391
|
/** Action the browser performs when the button is clicked, mirroring the standard `popovertargetaction` attribute. Defaults to `'toggle'`. Use `'show'` when a separate handler owns the close path (e.g. the consumer toggles the popover programmatically) so the browser's default action doesn't double-fire. */
|
|
378
392
|
'popoverTargetAction'?: NLDDButton['popoverTargetAction'];
|
|
393
|
+
/** Set by nldd-form-field. A consumer never writes this. */
|
|
394
|
+
'describedByElements'?: NLDDButton['describedByElements'];
|
|
379
395
|
/** When button is clicked (not fired when disabled) */
|
|
380
396
|
'onClick'?: (event: CustomEvent) => void;
|
|
381
397
|
};
|
|
@@ -400,21 +416,21 @@ declare module 'vue' {
|
|
|
400
416
|
};
|
|
401
417
|
|
|
402
418
|
type NLDDCardProps = {
|
|
403
|
-
/**
|
|
419
|
+
/** Surface color of the card: `base` (default) on a plain page background, `tinted` when the card should stand out against a base surface */
|
|
404
420
|
'background'?: NLDDCard['background'];
|
|
405
|
-
/**
|
|
421
|
+
/** Accessible name of the card; with `href`/`button` it names the link or button, otherwise the card region */
|
|
406
422
|
'accessible-label'?: NLDDCard['accessibleLabel'];
|
|
407
|
-
/**
|
|
423
|
+
/** Accessible name of the card; with `href`/`button` it names the link or button, otherwise the card region */
|
|
408
424
|
'accessibleLabel'?: NLDDCard['accessibleLabel'];
|
|
409
|
-
/**
|
|
425
|
+
/** Makes the whole card a link to this URL (empty = no link) */
|
|
410
426
|
'href'?: NLDDCard['href'];
|
|
411
|
-
/**
|
|
427
|
+
/** Makes the whole card a button; ignored when `href` is set */
|
|
412
428
|
'button'?: NLDDCard['button'];
|
|
413
|
-
/** Link target
|
|
429
|
+
/** Link target for href (e.g. '_blank'); adjusts rel automatically and adds an "Opent in nieuw tabblad" announcement for '_blank' */
|
|
414
430
|
'target'?: NLDDCard['target'];
|
|
415
|
-
/** Link rel
|
|
431
|
+
/** Link rel for href; defaults to 'noopener noreferrer' with target='_blank' */
|
|
416
432
|
'rel'?: NLDDCard['rel'];
|
|
417
|
-
/**
|
|
433
|
+
/** Override translation keys (e.g. the "Opent in nieuw tabblad" announcement) */
|
|
418
434
|
'translations'?: NLDDCard['translations'];
|
|
419
435
|
};
|
|
420
436
|
|
|
@@ -454,16 +470,26 @@ declare module 'vue' {
|
|
|
454
470
|
'decorative'?: NLDDCheckbox['decorative'];
|
|
455
471
|
/** Disabled state */
|
|
456
472
|
'disabled'?: NLDDCheckbox['disabled'];
|
|
473
|
+
/** Takes the control out of the tab order (tabindex="-1"), for a control owned by a roving container (a row of an nldd-list, where the arrow keys move between rows) that manages focus itself. Still mouse- and script-focusable. */
|
|
474
|
+
'no-tab'?: NLDDCheckbox['noTab'];
|
|
475
|
+
/** Takes the control out of the tab order (tabindex="-1"), for a control owned by a roving container (a row of an nldd-list, where the arrow keys move between rows) that manages focus itself. Still mouse- and script-focusable. */
|
|
476
|
+
'noTab'?: NLDDCheckbox['noTab'];
|
|
457
477
|
/** Indeterminate state (takes precedence over checked visually) */
|
|
458
478
|
'indeterminate'?: NLDDCheckbox['indeterminate'];
|
|
459
479
|
/** Value for form submission */
|
|
460
480
|
'value'?: NLDDCheckbox['value'];
|
|
461
481
|
/** Name for form submission */
|
|
462
482
|
'name'?: NLDDCheckbox['name'];
|
|
463
|
-
/** Accessible label forwarded as aria-label to the native input.
|
|
483
|
+
/** Accessible label forwarded as aria-label to the native input. */
|
|
464
484
|
'accessible-label'?: NLDDCheckbox['accessibleLabel'];
|
|
465
|
-
/** Accessible label forwarded as aria-label to the native input.
|
|
485
|
+
/** Accessible label forwarded as aria-label to the native input. */
|
|
466
486
|
'accessibleLabel'?: NLDDCheckbox['accessibleLabel'];
|
|
487
|
+
/** Required state */
|
|
488
|
+
'required'?: NLDDCheckbox['required'];
|
|
489
|
+
/** Marks the control as invalid. Announced with aria-invalid; nothing is drawn for it. Note: aria-labelledby is not supported as IDREF resolution cannot cross shadow DOM boundaries. */
|
|
490
|
+
'invalid'?: NLDDCheckbox['invalid'];
|
|
491
|
+
/** Set by nldd-form-field. A consumer never writes this. */
|
|
492
|
+
'describedByElements'?: NLDDCheckbox['describedByElements'];
|
|
467
493
|
'internals'?: NLDDCheckbox['internals'];
|
|
468
494
|
/** Fired when the checkbox state changes; detail: { checked: boolean, value: string } */
|
|
469
495
|
'onChange'?: (event: CustomEvent) => void;
|
|
@@ -482,6 +508,12 @@ declare module 'vue' {
|
|
|
482
508
|
'name'?: NLDDCheckboxField['name'];
|
|
483
509
|
/** Label text for the checkbox */
|
|
484
510
|
'label'?: NLDDCheckboxField['label'];
|
|
511
|
+
/** Required state */
|
|
512
|
+
'required'?: NLDDCheckboxField['required'];
|
|
513
|
+
/** Marks the control as invalid. Announced with aria-invalid; nothing is drawn for it. */
|
|
514
|
+
'invalid'?: NLDDCheckboxField['invalid'];
|
|
515
|
+
/** Set by nldd-form-field. A consumer never writes this. */
|
|
516
|
+
'describedByElements'?: NLDDCheckboxField['describedByElements'];
|
|
485
517
|
'internals'?: NLDDCheckboxField['internals'];
|
|
486
518
|
/** When checked state changes; detail: { checked: boolean, value: string } */
|
|
487
519
|
'onChange'?: (event: CustomEvent) => void;
|
|
@@ -522,6 +554,10 @@ declare module 'vue' {
|
|
|
522
554
|
'accessible-label'?: NLDDCodeEditor['accessibleLabel'];
|
|
523
555
|
/** Accessible label forwarded to the editor. Set automatically by nldd-form-field. */
|
|
524
556
|
'accessibleLabel'?: NLDDCodeEditor['accessibleLabel'];
|
|
557
|
+
/** Marks the control as invalid. Announced with aria-invalid; nothing is drawn for it. */
|
|
558
|
+
'invalid'?: NLDDCodeEditor['invalid'];
|
|
559
|
+
/** Set by nldd-form-field. A consumer never writes this. */
|
|
560
|
+
'describedByElements'?: NLDDCodeEditor['describedByElements'];
|
|
525
561
|
'internals'?: NLDDCodeEditor['internals'];
|
|
526
562
|
/** When the content changes (detail: { value }) */
|
|
527
563
|
'onInput'?: (event: CustomEvent) => void;
|
|
@@ -588,6 +624,8 @@ declare module 'vue' {
|
|
|
588
624
|
'invalid'?: NLDDComboBox['invalid'];
|
|
589
625
|
/** Disabled state */
|
|
590
626
|
'disabled'?: NLDDComboBox['disabled'];
|
|
627
|
+
/** Read-only state: the value stays readable, selectable and in the tab order, but the menu does not open and there is nothing to clear. The input drops its combobox role and the aria that goes with it, so assistive technology is not told about a list it cannot open. Use this where the value belongs to the record rather than to the form, e.g. the product an asset is an instance of. */
|
|
628
|
+
'readonly'?: NLDDComboBox['readonly'];
|
|
591
629
|
/** Allow committing free-typed values that match no option (Enter/blur). Default false: only menu options are accepted. */
|
|
592
630
|
'allow-custom'?: NLDDComboBox['allowCustom'];
|
|
593
631
|
/** Allow committing free-typed values that match no option (Enter/blur). Default false: only menu options are accepted. */
|
|
@@ -612,6 +650,16 @@ declare module 'vue' {
|
|
|
612
650
|
'noSpellcheck'?: NLDDComboBox['noSpellcheck'];
|
|
613
651
|
/** Optional fixed width (any CSS length, e.g. "240px"). Default: stretches to fill container. */
|
|
614
652
|
'width'?: NLDDComboBox['width'];
|
|
653
|
+
/** Required state */
|
|
654
|
+
'required'?: NLDDComboBox['required'];
|
|
655
|
+
/** Regular expression the value has to match, as the native `pattern`. */
|
|
656
|
+
'pattern'?: NLDDComboBox['pattern'];
|
|
657
|
+
/** Fewest characters the value may have. */
|
|
658
|
+
'minlength'?: NLDDComboBox['minlength'];
|
|
659
|
+
/** Most characters the value may have. */
|
|
660
|
+
'maxlength'?: NLDDComboBox['maxlength'];
|
|
661
|
+
/** Set by nldd-form-field. A consumer never writes this. */
|
|
662
|
+
'describedByElements'?: NLDDComboBox['describedByElements'];
|
|
615
663
|
'internals'?: NLDDComboBox['internals'];
|
|
616
664
|
/** When the input value changes; detail: { value: string } */
|
|
617
665
|
'onInput'?: (event: CustomEvent) => void;
|
|
@@ -783,93 +831,95 @@ declare module 'vue' {
|
|
|
783
831
|
};
|
|
784
832
|
|
|
785
833
|
type NLDDDateFieldProps = {
|
|
786
|
-
/** 'md' (
|
|
834
|
+
/** 'md' (default) | 'sm'. Set automatically by nldd-form-field. */
|
|
787
835
|
'size'?: NLDDDateField['size'];
|
|
788
|
-
/**
|
|
836
|
+
/** The date as ISO (yyyy-mm-dd). With `range` an ISO 8601 interval: `yyyy-mm-dd/yyyy-mm-dd`. Empty when there is no valid date. */
|
|
789
837
|
'value'?: NLDDDateField['value'];
|
|
790
|
-
/**
|
|
838
|
+
/** Pick a period: two inputs and a calendar in range mode. */
|
|
791
839
|
'range'?: NLDDDateField['range'];
|
|
792
|
-
/**
|
|
840
|
+
/** Earliest allowed date as ISO (yyyy-mm-dd). */
|
|
793
841
|
'min'?: NLDDDateField['min'];
|
|
794
|
-
/**
|
|
842
|
+
/** Latest allowed date as ISO (yyyy-mm-dd). */
|
|
795
843
|
'max'?: NLDDDateField['max'];
|
|
796
|
-
/**
|
|
844
|
+
/** Hides the calendar button. It is shown by default. */
|
|
797
845
|
'no-picker'?: NLDDDateField['noPicker'];
|
|
798
|
-
/**
|
|
846
|
+
/** Hides the calendar button. It is shown by default. */
|
|
799
847
|
'noPicker'?: NLDDDateField['noPicker'];
|
|
800
|
-
/**
|
|
848
|
+
/** Sets the id on the internal input. Set automatically by nldd-form-field. */
|
|
801
849
|
'input-id'?: NLDDDateField['inputId'];
|
|
802
|
-
/**
|
|
850
|
+
/** Sets the id on the internal input. Set automatically by nldd-form-field. */
|
|
803
851
|
'inputId'?: NLDDDateField['inputId'];
|
|
804
|
-
/**
|
|
852
|
+
/** Placeholder text. Do not put a format here; use the supporting label of nldd-form-field for that. */
|
|
805
853
|
'placeholder'?: NLDDDateField['placeholder'];
|
|
806
|
-
/**
|
|
854
|
+
/** Marks the field as invalid. */
|
|
807
855
|
'invalid'?: NLDDDateField['invalid'];
|
|
808
|
-
/**
|
|
856
|
+
/** Marks the field as valid. */
|
|
809
857
|
'valid'?: NLDDDateField['valid'];
|
|
810
|
-
/**
|
|
858
|
+
/** Disabled state. */
|
|
811
859
|
'disabled'?: NLDDDateField['disabled'];
|
|
812
|
-
/**
|
|
860
|
+
/** Read-only state. */
|
|
813
861
|
'readonly'?: NLDDDateField['readonly'];
|
|
814
|
-
/**
|
|
862
|
+
/** Required state. */
|
|
815
863
|
'required'?: NLDDDateField['required'];
|
|
816
|
-
/**
|
|
864
|
+
/** Name for form submission. */
|
|
817
865
|
'name'?: NLDDDateField['name'];
|
|
818
|
-
/** Autocomplete
|
|
866
|
+
/** Autocomplete hint, for example 'bday'. */
|
|
819
867
|
'autocomplete'?: NLDDDateField['autocomplete'];
|
|
820
|
-
/**
|
|
868
|
+
/** Accessible label for the internal input. Set automatically by nldd-form-field. */
|
|
821
869
|
'accessible-label'?: NLDDDateField['accessibleLabel'];
|
|
822
|
-
/**
|
|
870
|
+
/** Accessible label for the internal input. Set automatically by nldd-form-field. */
|
|
823
871
|
'accessibleLabel'?: NLDDDateField['accessibleLabel'];
|
|
824
|
-
/**
|
|
825
|
-
'error-message-ids'?: NLDDDateField['errorMessageIds'];
|
|
826
|
-
/** Ids voor aria-describedby. Wordt automatisch gezet door nldd-form-field. */
|
|
827
|
-
'errorMessageIds'?: NLDDDateField['errorMessageIds'];
|
|
828
|
-
/** Breedte. Standaard precies breed genoeg voor een datum plus de iconen; 'full' vult de container, of geef een eigen CSS-lengte. */
|
|
872
|
+
/** Width. By default exactly wide enough for a date plus the icons; 'full' fills the container; 'fit-content' drops the room for the validation icon and grows again as soon as the field turns valid or invalid; or pass your own CSS length. */
|
|
829
873
|
'width'?: NLDDDateField['width'];
|
|
830
|
-
/**
|
|
874
|
+
/** Translations; unspecified keys fall back to Dutch. */
|
|
831
875
|
'translations'?: NLDDDateField['translations'];
|
|
876
|
+
/** Set by nldd-form-field. A consumer never writes this. */
|
|
877
|
+
'describedByElements'?: NLDDDateField['describedByElements'];
|
|
832
878
|
'internals'?: NLDDDateField['internals'];
|
|
833
|
-
/**
|
|
879
|
+
/** On every change. detail: { value } with the ISO date, or '' while there is no valid date. */
|
|
834
880
|
'onInput'?: (event: CustomEvent) => void;
|
|
835
|
-
/**
|
|
881
|
+
/** When the value is committed. detail: { value } with the ISO date, or ''. */
|
|
836
882
|
'onChange'?: (event: CustomEvent) => void;
|
|
837
883
|
};
|
|
838
884
|
|
|
839
885
|
type NLDDDatePickerProps = {
|
|
840
|
-
/**
|
|
886
|
+
/** The chosen date as ISO (yyyy-mm-dd). Only without `range`. */
|
|
841
887
|
'value'?: NLDDDatePicker['value'];
|
|
842
|
-
/**
|
|
888
|
+
/** Start of the period as ISO. Only with `range`. */
|
|
843
889
|
'start'?: NLDDDatePicker['start'];
|
|
844
|
-
/**
|
|
890
|
+
/** End of the period as ISO. Only with `range`. */
|
|
845
891
|
'end'?: NLDDDatePicker['end'];
|
|
846
|
-
/**
|
|
892
|
+
/** Width: `full` (fills the container) or a CSS length (e.g. `560px`). Empty (default) is the intrinsic width of seven day cells; the cells stretch along with the width you pass. */
|
|
847
893
|
'width'?: NLDDDatePicker['width'];
|
|
848
|
-
/**
|
|
894
|
+
/** Pick a period instead of a single date. */
|
|
849
895
|
'range'?: NLDDDatePicker['range'];
|
|
850
|
-
/**
|
|
896
|
+
/** Earliest allowed date: ISO, or `today` with an offset (`today-18y`). */
|
|
851
897
|
'min'?: NLDDDatePicker['min'];
|
|
852
|
-
/**
|
|
898
|
+
/** Latest allowed date: ISO, or `today` with an offset (`today+1y`). */
|
|
853
899
|
'max'?: NLDDDatePicker['max'];
|
|
854
|
-
/**
|
|
900
|
+
/** First day of the week, 0 is Sunday. Default 1 (Monday). */
|
|
855
901
|
'first-day-of-week'?: NLDDDatePicker['firstDayOfWeek'];
|
|
856
|
-
/**
|
|
902
|
+
/** First day of the week, 0 is Sunday. Default 1 (Monday). */
|
|
857
903
|
'firstDayOfWeek'?: NLDDDatePicker['firstDayOfWeek'];
|
|
858
|
-
/**
|
|
904
|
+
/** Shows ISO week numbers in a column on the left. */
|
|
859
905
|
'week-numbers'?: NLDDDatePicker['weekNumbers'];
|
|
860
|
-
/**
|
|
906
|
+
/** Shows ISO week numbers in a column on the left. */
|
|
861
907
|
'weekNumbers'?: NLDDDatePicker['weekNumbers'];
|
|
862
|
-
/**
|
|
908
|
+
/** Accessible name of the calendar. */
|
|
863
909
|
'accessible-label'?: NLDDDatePicker['accessibleLabel'];
|
|
864
|
-
/**
|
|
910
|
+
/** Accessible name of the calendar. */
|
|
865
911
|
'accessibleLabel'?: NLDDDatePicker['accessibleLabel'];
|
|
866
|
-
/**
|
|
912
|
+
/** Marks the control as invalid. Announced with aria-invalid; nothing is drawn for it. */
|
|
913
|
+
'invalid'?: NLDDDatePicker['invalid'];
|
|
914
|
+
/** Translations; unspecified keys fall back to Dutch. */
|
|
867
915
|
'translations'?: NLDDDatePicker['translations'];
|
|
868
916
|
/** Marks individual dates as unselectable - weekends, holidays, dates already booked. */
|
|
869
917
|
'isDateUnavailable'?: NLDDDatePicker['isDateUnavailable'];
|
|
870
|
-
/**
|
|
918
|
+
/** Set by nldd-form-field. A consumer never writes this. */
|
|
919
|
+
'describedByElements'?: NLDDDatePicker['describedByElements'];
|
|
920
|
+
/** When a date or a complete period has been chosen. detail: { value } or { start, end }. */
|
|
871
921
|
'onChange'?: (event: CustomEvent) => void;
|
|
872
|
-
/**
|
|
922
|
+
/** Also on the intermediate step of a period, when only the start date is set. */
|
|
873
923
|
'onInput'?: (event: CustomEvent) => void;
|
|
874
924
|
};
|
|
875
925
|
|
|
@@ -969,6 +1019,10 @@ declare module 'vue' {
|
|
|
969
1019
|
'accessible-label'?: NLDDDropdown['accessibleLabel'];
|
|
970
1020
|
/** Accessible name, forwarded as aria-label to the slotted select */
|
|
971
1021
|
'accessibleLabel'?: NLDDDropdown['accessibleLabel'];
|
|
1022
|
+
/** Required state, handed to the slotted <select>. A `required` on the <select> itself is left alone. */
|
|
1023
|
+
'required'?: NLDDDropdown['required'];
|
|
1024
|
+
/** Set by nldd-form-field. A consumer never writes this. */
|
|
1025
|
+
'describedByElements'?: NLDDDropdown['describedByElements'];
|
|
972
1026
|
/** Bubbles up from the slotted select; detail: { value: string } */
|
|
973
1027
|
'onChange'?: (event: CustomEvent) => void;
|
|
974
1028
|
};
|
|
@@ -988,10 +1042,6 @@ declare module 'vue' {
|
|
|
988
1042
|
'input-id'?: NLDDFileField['inputId'];
|
|
989
1043
|
/** Sets the id on the native input. Set automatically by nldd-form-field. */
|
|
990
1044
|
'inputId'?: NLDDFileField['inputId'];
|
|
991
|
-
/** Ids for aria-describedby on the inner input. Set automatically by nldd-form-field. */
|
|
992
|
-
'error-message-ids'?: NLDDFileField['errorMessageIds'];
|
|
993
|
-
/** Ids for aria-describedby on the inner input. Set automatically by nldd-form-field. */
|
|
994
|
-
'errorMessageIds'?: NLDDFileField['errorMessageIds'];
|
|
995
1045
|
/** Marks the field as valid; shows a check icon on the right, like nldd-dropdown */
|
|
996
1046
|
'valid'?: NLDDFileField['valid'];
|
|
997
1047
|
/** Marks the field as invalid; shows an alert icon on the right, like nldd-dropdown */
|
|
@@ -1005,15 +1055,17 @@ declare module 'vue' {
|
|
|
1005
1055
|
/** Override translation keys; unset keys fall back to Dutch */
|
|
1006
1056
|
'translations'?: NLDDFileField['translations'];
|
|
1007
1057
|
'files'?: NLDDFileField['files'];
|
|
1058
|
+
/** Set by nldd-form-field. A consumer never writes this. */
|
|
1059
|
+
'describedByElements'?: NLDDFileField['describedByElements'];
|
|
1008
1060
|
'internals'?: NLDDFileField['internals'];
|
|
1009
1061
|
/** When the chosen files change, including a clear; detail: { files: File[] } */
|
|
1010
1062
|
'onChange'?: (event: CustomEvent) => void;
|
|
1011
1063
|
};
|
|
1012
1064
|
|
|
1013
1065
|
type NLDDFormProps = {
|
|
1014
|
-
/** Default `label-alignment`
|
|
1066
|
+
/** Default `label-alignment` for descendant nldd-form-field and nldd-form-actions ('top' | 'right' | 'left'). Propagated to descendants as `form-label-alignment`. A `label-alignment` of its own on the descendant takes precedence through the CSS cascade. */
|
|
1015
1067
|
'label-alignment'?: NLDDForm['labelAlignment'];
|
|
1016
|
-
/** Default `label-alignment`
|
|
1068
|
+
/** Default `label-alignment` for descendant nldd-form-field and nldd-form-actions ('top' | 'right' | 'left'). Propagated to descendants as `form-label-alignment`. A `label-alignment` of its own on the descendant takes precedence through the CSS cascade. */
|
|
1017
1069
|
'labelAlignment'?: NLDDForm['labelAlignment'];
|
|
1018
1070
|
/** The inner <form> element. Useful for `form.checkValidity()` etc. */
|
|
1019
1071
|
'form'?: NLDDForm['form'];
|
|
@@ -1022,16 +1074,16 @@ declare module 'vue' {
|
|
|
1022
1074
|
};
|
|
1023
1075
|
|
|
1024
1076
|
type NLDDFormActionsProps = {
|
|
1025
|
-
/** 'top' (default) | 'right' | 'left'.
|
|
1077
|
+
/** 'top' (default) | 'right' | 'left'. A value of its own always wins over the inherited form-label-alignment. */
|
|
1026
1078
|
'label-alignment'?: NLDDFormActions['labelAlignment'];
|
|
1027
|
-
/** 'top' (default) | 'right' | 'left'.
|
|
1079
|
+
/** 'top' (default) | 'right' | 'left'. A value of its own always wins over the inherited form-label-alignment. */
|
|
1028
1080
|
'labelAlignment'?: NLDDFormActions['labelAlignment'];
|
|
1029
1081
|
};
|
|
1030
1082
|
|
|
1031
1083
|
type NLDDFormFieldProps = {
|
|
1032
|
-
/** 'top' (default) | 'right' | 'left'.
|
|
1084
|
+
/** 'top' (default) | 'right' | 'left'. A value of its own always wins over the inherited form-label-alignment. */
|
|
1033
1085
|
'label-alignment'?: NLDDFormField['labelAlignment'];
|
|
1034
|
-
/** 'top' (default) | 'right' | 'left'.
|
|
1086
|
+
/** 'top' (default) | 'right' | 'left'. A value of its own always wins over the inherited form-label-alignment. */
|
|
1035
1087
|
'labelAlignment'?: NLDDFormField['labelAlignment'];
|
|
1036
1088
|
/** Field label text. Omit for no-label layout. */
|
|
1037
1089
|
'label'?: NLDDFormField['label'];
|
|
@@ -1047,20 +1099,15 @@ declare module 'vue' {
|
|
|
1047
1099
|
'optionalLabel'?: NLDDFormField['optionalLabel'];
|
|
1048
1100
|
};
|
|
1049
1101
|
|
|
1050
|
-
type NLDDFormFieldErrorTextProps = {
|
|
1051
|
-
/** Visibility managed automatically by nldd-form-field. */
|
|
1052
|
-
'invalid'?: NLDDFormFieldErrorText['invalid'];
|
|
1053
|
-
};
|
|
1054
|
-
|
|
1055
1102
|
type NLDDFormFieldHelpTextProps = {
|
|
1056
1103
|
};
|
|
1057
1104
|
|
|
1058
1105
|
type NLDDFormSectionProps = {
|
|
1059
|
-
/** Heading
|
|
1106
|
+
/** Heading text (rendered in the `<legend>`). */
|
|
1060
1107
|
'text'?: NLDDFormSection['text'];
|
|
1061
|
-
/**
|
|
1108
|
+
/** Short description under the heading. Keep it to roughly 80 characters or less (see the a11y note). */
|
|
1062
1109
|
'supporting-text'?: NLDDFormSection['supportingText'];
|
|
1063
|
-
/**
|
|
1110
|
+
/** Short description under the heading. Keep it to roughly 80 characters or less (see the a11y note). */
|
|
1064
1111
|
'supportingText'?: NLDDFormSection['supportingText'];
|
|
1065
1112
|
};
|
|
1066
1113
|
|
|
@@ -1183,10 +1230,14 @@ declare module 'vue' {
|
|
|
1183
1230
|
'size'?: NLDDIcon['size'];
|
|
1184
1231
|
/** Functional (`primary-content`, `secondary-content`, `accent`, `critical`, `warning`, `success`) or rijkskleur (`lintblauw`, `donkerblauw`, `hemelblauw`, `lichtblauw`, `paars`, `violet`, `robijnrood`, `roze`, `rood`, `oranje`, `donkergeel`, `geel`, `donkerbruin`, `bruin`, `donkergroen`, `groen`, `mosgroen`, `mintgroen`). Empty = inherit `color` from parent. */
|
|
1185
1232
|
'color'?: NLDDIcon['color'];
|
|
1233
|
+
/** A color of its own, as any CSS color value ('#a90061', 'oklch(0.6 0.2 20)', 'var(--brand-cable-blue)'). For a color the design system cannot know. It wins over `color`. */
|
|
1234
|
+
'custom-color'?: NLDDIcon['customColor'];
|
|
1235
|
+
/** A color of its own, as any CSS color value ('#a90061', 'oklch(0.6 0.2 20)', 'var(--brand-cable-blue)'). For a color the design system cannot know. It wins over `color`. */
|
|
1236
|
+
'customColor'?: NLDDIcon['customColor'];
|
|
1186
1237
|
};
|
|
1187
1238
|
|
|
1188
1239
|
type NLDDIconButtonProps = {
|
|
1189
|
-
/** Button variant: 'accent-filled' | 'accent-transparent' | 'neutral-tinted' | 'neutral-transparent' | 'critical-tinted' | 'critical-transparent' | 'inherit-filled' | 'inherit-tinted' | 'primary' | 'secondary' | 'destructive'.
|
|
1240
|
+
/** Button variant: 'accent-filled' | 'accent-transparent' | 'neutral-tinted' | 'neutral-transparent' | 'critical-tinted' | 'critical-transparent' | 'inherit-filled' | 'inherit-tinted' | 'primary' | 'secondary' | 'destructive'. The inherit variants derive their colors from currentColor, for buttons on colored surfaces. */
|
|
1190
1241
|
'variant'?: NLDDIconButton['variant'];
|
|
1191
1242
|
/** Button size: 'xs' | 'sm' | 'md' | 'lg' (default: 'md') */
|
|
1192
1243
|
'size'?: NLDDIconButton['size'];
|
|
@@ -1208,9 +1259,9 @@ declare module 'vue' {
|
|
|
1208
1259
|
'expandable'?: NLDDIconButton['expandable'];
|
|
1209
1260
|
/** Whether the popover/menu controlled by this button is currently open. Forwarded as aria-expanded on the inner button; toggles the is-expanded visual state. */
|
|
1210
1261
|
'expanded'?: NLDDIconButton['expanded'];
|
|
1211
|
-
/** Takes the button out of the tab order (tabindex="-1"), for a control owned by a roving container (
|
|
1262
|
+
/** Takes the button out of the tab order (tabindex="-1"), for a control owned by a roving container (an nldd-token in nldd-token-field, a button in a row of an nldd-list) that manages focus itself. Still mouse- and script-focusable. */
|
|
1212
1263
|
'no-tab'?: NLDDIconButton['noTab'];
|
|
1213
|
-
/** Takes the button out of the tab order (tabindex="-1"), for a control owned by a roving container (
|
|
1264
|
+
/** Takes the button out of the tab order (tabindex="-1"), for a control owned by a roving container (an nldd-token in nldd-token-field, a button in a row of an nldd-list) that manages focus itself. Still mouse- and script-focusable. */
|
|
1214
1265
|
'noTab'?: NLDDIconButton['noTab'];
|
|
1215
1266
|
/** Type of popup container this button opens: 'menu' | 'listbox' | 'dialog' | 'tree' | 'grid'. Sets aria-haspopup on the inner button and forces aria-expanded to always be present (true/false) so screen readers know the popup state. */
|
|
1216
1267
|
'popup-type'?: NLDDIconButton['popupType'];
|
|
@@ -1357,84 +1408,88 @@ declare module 'vue' {
|
|
|
1357
1408
|
};
|
|
1358
1409
|
|
|
1359
1410
|
type NLDDJustInTimeEducationProps = {
|
|
1360
|
-
/**
|
|
1411
|
+
/** Show the coach mark. Driven by the app; false by default. */
|
|
1361
1412
|
'active'?: NLDDJustInTimeEducation['active'];
|
|
1362
|
-
/**
|
|
1413
|
+
/** Title of the callout. */
|
|
1363
1414
|
'text'?: NLDDJustInTimeEducation['text'];
|
|
1364
|
-
/**
|
|
1415
|
+
/** Supporting text under the title. */
|
|
1365
1416
|
'supporting-text'?: NLDDJustInTimeEducation['supportingText'];
|
|
1366
|
-
/**
|
|
1417
|
+
/** Supporting text under the title. */
|
|
1367
1418
|
'supportingText'?: NLDDJustInTimeEducation['supportingText'];
|
|
1368
|
-
/** 'auto' | 'top' | 'bottom' | 'left' | 'right' (
|
|
1419
|
+
/** 'auto' | 'top' | 'bottom' | 'left' | 'right' (default 'auto'). */
|
|
1369
1420
|
'placement'?: NLDDJustInTimeEducation['placement'];
|
|
1370
|
-
/**
|
|
1421
|
+
/** Show the dismiss button and allow closing with one click or key press outside the coach mark. False by default: the consumer then manages closing itself. */
|
|
1371
1422
|
'dismissable'?: NLDDJustInTimeEducation['dismissable'];
|
|
1372
|
-
/**
|
|
1423
|
+
/** Arrow length, and therefore the distance between card and control, as a CSS length (e.g. `333px`, `30vh`). Empty = the DS default; anything under 40px is clamped. */
|
|
1373
1424
|
'arrow-length'?: NLDDJustInTimeEducation['arrowLength'];
|
|
1374
|
-
/**
|
|
1425
|
+
/** Arrow length, and therefore the distance between card and control, as a CSS length (e.g. `333px`, `30vh`). Empty = the DS default; anything under 40px is clamped. */
|
|
1375
1426
|
'arrowLength'?: NLDDJustInTimeEducation['arrowLength'];
|
|
1376
|
-
/**
|
|
1427
|
+
/** Hide the arrow; the card then sits close against the control. */
|
|
1377
1428
|
'no-arrow'?: NLDDJustInTimeEducation['noArrow'];
|
|
1378
|
-
/**
|
|
1429
|
+
/** Hide the arrow; the card then sits close against the control. */
|
|
1379
1430
|
'noArrow'?: NLDDJustInTimeEducation['noArrow'];
|
|
1380
1431
|
'translations'?: NLDDJustInTimeEducation['translations'];
|
|
1381
|
-
/**
|
|
1432
|
+
/** When the coach mark closes. detail: { reason: 'completed' | 'dismissed' | 'ignored' }. */
|
|
1382
1433
|
'onNlddClose'?: (event: CustomEvent) => void;
|
|
1383
1434
|
};
|
|
1384
1435
|
|
|
1385
1436
|
type NLDDKeyboardShortcutProps = {
|
|
1386
|
-
/**
|
|
1437
|
+
/** Keys separated by '+' (e.g. 'Cmd+K' or 'Ctrl+Shift+P'). Use '+++' for a literal '+' key: 'Ctrl+++' becomes 'Ctrl' + '+'. For more complex cases (a combo with several '+' keys, for instance) use the default slot with your own <kbd> elements instead of the keys attribute. */
|
|
1387
1438
|
'keys'?: NLDDKeyboardShortcut['keys'];
|
|
1388
|
-
/**
|
|
1439
|
+
/** Optional override for macOS (iPhone/iPad/iPod included). */
|
|
1389
1440
|
'mac-keys'?: NLDDKeyboardShortcut['macKeys'];
|
|
1390
|
-
/**
|
|
1441
|
+
/** Optional override for macOS (iPhone/iPad/iPod included). */
|
|
1391
1442
|
'macKeys'?: NLDDKeyboardShortcut['macKeys'];
|
|
1392
|
-
/**
|
|
1443
|
+
/** Optional override for Windows. */
|
|
1393
1444
|
'windows-keys'?: NLDDKeyboardShortcut['windowsKeys'];
|
|
1394
|
-
/**
|
|
1445
|
+
/** Optional override for Windows. */
|
|
1395
1446
|
'windowsKeys'?: NLDDKeyboardShortcut['windowsKeys'];
|
|
1396
|
-
/**
|
|
1447
|
+
/** Optional override for Linux/ChromeOS. */
|
|
1397
1448
|
'linux-keys'?: NLDDKeyboardShortcut['linuxKeys'];
|
|
1398
|
-
/**
|
|
1449
|
+
/** Optional override for Linux/ChromeOS. */
|
|
1399
1450
|
'linuxKeys'?: NLDDKeyboardShortcut['linuxKeys'];
|
|
1400
|
-
/**
|
|
1451
|
+
/** Size: 'sm' | 'md' | 'inherit' (default: 'md'). 'inherit' takes the font-size from the container; in the box variant the keycaps then scale along in em. */
|
|
1401
1452
|
'size'?: NLDDKeyboardShortcut['size'];
|
|
1402
|
-
/** 'box' (default)
|
|
1453
|
+
/** 'box' (default) shows each key as a keycap with a fill and a highlight edge. 'simple' shows the keys as plain text with separators: lighter, for inline use such as in a menu item. */
|
|
1403
1454
|
'variant'?: NLDDKeyboardShortcut['variant'];
|
|
1404
|
-
/** 'neutral' (default)
|
|
1455
|
+
/** 'neutral' (default) uses the component colors of its own. 'inherit' lets the keys and separators follow the surrounding text color (currentColor), with a translucent contrast fill and highlight edge. Useful on a filled surface color or a highlighted row. */
|
|
1405
1456
|
'color'?: NLDDKeyboardShortcut['color'];
|
|
1406
|
-
/**
|
|
1457
|
+
/** Show on touch-only devices too, where shortcuts cannot be invoked. */
|
|
1407
1458
|
'always-visible'?: NLDDKeyboardShortcut['alwaysVisible'];
|
|
1408
|
-
/**
|
|
1459
|
+
/** Show on touch-only devices too, where shortcuts cannot be invoked. */
|
|
1409
1460
|
'alwaysVisible'?: NLDDKeyboardShortcut['alwaysVisible'];
|
|
1410
1461
|
};
|
|
1411
1462
|
|
|
1412
1463
|
type NLDDLinkProps = {
|
|
1413
|
-
/** Link
|
|
1464
|
+
/** Link target */
|
|
1414
1465
|
'href'?: NLDDLink['href'];
|
|
1415
|
-
/** Link target (
|
|
1466
|
+
/** Link target (e.g. '_blank'); adjusts rel automatically. With '_blank' the link adds a visually hidden "Opent in nieuw tabblad" announcement for screen readers (WCAG 2.1 SC 3.2.2). */
|
|
1416
1467
|
'target'?: NLDDLink['target'];
|
|
1417
|
-
/** Link rel
|
|
1468
|
+
/** Link rel attribute; defaults to 'noopener noreferrer' with target='_blank' */
|
|
1418
1469
|
'rel'?: NLDDLink['rel'];
|
|
1419
|
-
/**
|
|
1470
|
+
/** Text size: 'xs' | 'sm' | 'md' | 'lg' | 'inherit'. Empty = inherit. */
|
|
1420
1471
|
'size'?: NLDDLink['size'];
|
|
1421
|
-
/** Link
|
|
1472
|
+
/** Link text (alternative to the default slot) */
|
|
1422
1473
|
'text'?: NLDDLink['text'];
|
|
1423
|
-
/**
|
|
1474
|
+
/** Icon before the text */
|
|
1424
1475
|
'start-icon'?: NLDDLink['startIcon'];
|
|
1425
|
-
/**
|
|
1476
|
+
/** Icon before the text */
|
|
1426
1477
|
'startIcon'?: NLDDLink['startIcon'];
|
|
1427
|
-
/**
|
|
1478
|
+
/** Icon after the text */
|
|
1428
1479
|
'end-icon'?: NLDDLink['endIcon'];
|
|
1429
|
-
/**
|
|
1480
|
+
/** Icon after the text */
|
|
1430
1481
|
'endIcon'?: NLDDLink['endIcon'];
|
|
1431
|
-
/**
|
|
1482
|
+
/** Accessible label for screen readers */
|
|
1432
1483
|
'accessible-label'?: NLDDLink['accessibleLabel'];
|
|
1433
|
-
/**
|
|
1484
|
+
/** Accessible label for screen readers */
|
|
1434
1485
|
'accessibleLabel'?: NLDDLink['accessibleLabel'];
|
|
1435
|
-
/**
|
|
1486
|
+
/** Disabled state */
|
|
1436
1487
|
'disabled'?: NLDDLink['disabled'];
|
|
1437
|
-
/**
|
|
1488
|
+
/** Takes the control out of the tab order (tabindex="-1"), for a control owned by a roving container (a row of an nldd-list, where the arrow keys move between rows) that manages focus itself. Still mouse- and script-focusable. */
|
|
1489
|
+
'no-tab'?: NLDDLink['noTab'];
|
|
1490
|
+
/** Takes the control out of the tab order (tabindex="-1"), for a control owned by a roving container (a row of an nldd-list, where the arrow keys move between rows) that manages focus itself. Still mouse- and script-focusable. */
|
|
1491
|
+
'noTab'?: NLDDLink['noTab'];
|
|
1492
|
+
/** Override translation keys (e.g. the "Opent in nieuw tabblad" announcement); unset keys fall back to Dutch. */
|
|
1438
1493
|
'translations'?: NLDDLink['translations'];
|
|
1439
1494
|
};
|
|
1440
1495
|
|
|
@@ -1443,24 +1498,12 @@ declare module 'vue' {
|
|
|
1443
1498
|
'variant'?: NLDDList['variant'];
|
|
1444
1499
|
/** A11y role and behavior (default 'list'). See the docblock above. */
|
|
1445
1500
|
'type'?: NLDDList['type'];
|
|
1446
|
-
/** Enables drag-to-reorder and pushes `reorderable` onto the items. Only valid with `type="list"`;
|
|
1501
|
+
/** Enables drag-to-reorder and pushes `reorderable` onto the items. Only valid with `type="list"`; there the arrow keys move rows instead of focus. */
|
|
1447
1502
|
'reorderable'?: NLDDList['reorderable'];
|
|
1448
1503
|
/** When to draw the lines between the items (default 'always'). `on-touch` draws them only where the primary input is touch, under `(pointer: coarse)`: a pointer has the hover highlight to tell one row from the next and a finger has nothing, so the line earns its place in the one case and is clutter in the other. `never` hides them everywhere */
|
|
1449
1504
|
'dividers'?: NLDDList['dividers'];
|
|
1450
|
-
/** Roving-tabindex arrow-key navigation: ArrowUp/ArrowDown move focus between the rows, Home/End jump to first/last, and the list becomes a single tab stop. Implied by `type="tree"` (which adds ArrowLeft/ArrowRight, see above). Ignored when `reorderable` is active on a `type="list"`, and in listbox mode. */
|
|
1451
|
-
'arrow-navigation'?: NLDDList['arrowNavigation'];
|
|
1452
|
-
/** Roving-tabindex arrow-key navigation: ArrowUp/ArrowDown move focus between the rows, Home/End jump to first/last, and the list becomes a single tab stop. Implied by `type="tree"` (which adds ArrowLeft/ArrowRight, see above). Ignored when `reorderable` is active on a `type="list"`, and in listbox mode. */
|
|
1453
|
-
'arrowNavigation'?: NLDDList['arrowNavigation'];
|
|
1454
1505
|
/** Listbox only: caps the options' scroll region at this CSS length (e.g. '320px'). Unset means no cap. */
|
|
1455
1506
|
'height'?: NLDDList['height'];
|
|
1456
|
-
/** Text for the default empty-state dialog (falls back to the Dutch i18n default). Ignored when `[slot=empty]` is filled. */
|
|
1457
|
-
'empty-text'?: NLDDList['emptyText'];
|
|
1458
|
-
/** Text for the default empty-state dialog (falls back to the Dutch i18n default). Ignored when `[slot=empty]` is filled. */
|
|
1459
|
-
'emptyText'?: NLDDList['emptyText'];
|
|
1460
|
-
/** Supporting text for the default empty-state dialog. Ignored when `[slot=empty]` is filled. */
|
|
1461
|
-
'empty-supporting-text'?: NLDDList['emptySupportingText'];
|
|
1462
|
-
/** Supporting text for the default empty-state dialog. Ignored when `[slot=empty]` is filled. */
|
|
1463
|
-
'emptySupportingText'?: NLDDList['emptySupportingText'];
|
|
1464
1507
|
/** Accessible name, forwarded to the list in `type="list"` and to the search field in `type="listbox"`. For `type="navigation"` set `aria-label` / `aria-labelledby` on the element itself. Falls back to the i18n default. */
|
|
1465
1508
|
'accessible-label'?: NLDDList['accessibleLabel'];
|
|
1466
1509
|
/** Accessible name, forwarded to the list in `type="list"` and to the search field in `type="listbox"`. For `type="navigation"` set `aria-label` / `aria-labelledby` on the element itself. Falls back to the i18n default. */
|
|
@@ -1476,17 +1519,21 @@ declare module 'vue' {
|
|
|
1476
1519
|
type NLDDListItemProps = {
|
|
1477
1520
|
/** Row size (default: 'md'). Pushed onto the cells whose `size` means the same scale (nldd-text-cell, nldd-drag-handle-cell), so it is written once per row instead of once per cell. A size set on the cell itself wins. Cells where `size` means something else — pixels on nldd-icon-cell / nldd-spacer-cell, a heading scale on nldd-title-cell — are left alone. */
|
|
1478
1521
|
'size'?: NLDDListItem['size'];
|
|
1479
|
-
/** Marks the item as selected. Selection is consumer-managed; the list never sets it. In a `navigation` parent it puts `aria-current="page"` on the inner action, in a `listbox` parent it drives `aria-selected`. */
|
|
1522
|
+
/** Marks the item as selected: it is one of the rows you picked. Selection is consumer-managed; the list never sets it. In a `navigation` parent it puts `aria-current="page"` on the inner action, in a `listbox` parent it drives `aria-selected`. */
|
|
1480
1523
|
'selected'?: NLDDListItem['selected'];
|
|
1481
|
-
/**
|
|
1524
|
+
/** Marks the item as the one you are on: the page a menu row points at, the record a list has open. Exactly one row in a list carries it, where `selected` may be on many. It paints like `selected` at rest, and takes the highlighted fill while focus is anywhere in the row — including inside a nested `nldd-list-item-segment`, which is what a segmented row needs: the focus never reaches the row's own control, because there is none. In a `navigation` parent it puts `aria-current="page"` on the inner action. On a segmented row set it on the segment that holds the link instead: the row reads `current` off its own segments and paints itself, so it is written once, where `aria-current` belongs. */
|
|
1525
|
+
'current'?: NLDDListItem['current'];
|
|
1526
|
+
/** Renders the item as a `<button>`. Last of the three: `href` and `checkbox` both win over it. */
|
|
1482
1527
|
'button'?: NLDDListItem['button'];
|
|
1483
|
-
/** Makes the whole row a `role="checkbox"` control
|
|
1528
|
+
/** Makes the whole row a `role="checkbox"` control. Wins over `button`, loses to `href`. */
|
|
1484
1529
|
'checkbox'?: NLDDListItem['checkbox'];
|
|
1485
1530
|
/** Checked state of a `checkbox` row; the item toggles it on activation */
|
|
1486
1531
|
'checked'?: NLDDListItem['checked'];
|
|
1487
|
-
/**
|
|
1532
|
+
/** Switches the row's own control off: a `button` or `checkbox` row stops responding and dims, a `href` row gets `aria-disabled` and its click is blocked (a link cannot be disabled natively). A row without a control of its own has nothing to switch off, and segments carry their own `disabled`. The arrow keys skip a disabled row. */
|
|
1533
|
+
'disabled'?: NLDDListItem['disabled'];
|
|
1534
|
+
/** Disclosure state. Drives the `children` group's visibility AND supplies `aria-expanded` — to the row's own control when the row is interactive, or to the segment marked `disclosure`. Written once either way; the item DEV-warns when there is nowhere for it to live. */
|
|
1488
1535
|
'expanded'?: NLDDListItem['expanded'];
|
|
1489
|
-
/** Renders the item as an `<a>` with this URL.
|
|
1536
|
+
/** Renders the item as an `<a>` with this URL. Wins over `checkbox` and `button`; without any of the three the item is a plain container with no action. */
|
|
1490
1537
|
'href'?: NLDDListItem['href'];
|
|
1491
1538
|
/** Link target forwarded to the `<a>` (e.g. '_blank'); only applies with `href`. With '_blank' a visually hidden "opens in new tab" announcement is added for assistive technology. */
|
|
1492
1539
|
'target'?: NLDDListItem['target'];
|
|
@@ -1503,34 +1550,34 @@ declare module 'vue' {
|
|
|
1503
1550
|
'onChange'?: (event: CustomEvent) => void;
|
|
1504
1551
|
};
|
|
1505
1552
|
|
|
1506
|
-
type
|
|
1507
|
-
/** Renders the
|
|
1508
|
-
'button'?:
|
|
1509
|
-
/** Renders the
|
|
1510
|
-
'href'?:
|
|
1553
|
+
type NLDDListItemSegmentProps = {
|
|
1554
|
+
/** Renders the segment as a `<button>`. Last of the three: `href` and `checkbox` both win over it. */
|
|
1555
|
+
'button'?: NLDDListItemSegment['button'];
|
|
1556
|
+
/** Renders the segment as an `<a>` with this URL. Wins over `checkbox` and `button`. */
|
|
1557
|
+
'href'?: NLDDListItemSegment['href'];
|
|
1511
1558
|
/** Link target forwarded to the `<a>`; only applies with `href` */
|
|
1512
|
-
'target'?:
|
|
1559
|
+
'target'?: NLDDListItemSegment['target'];
|
|
1513
1560
|
/** Link rel forwarded to the `<a>`; only applies with `href` */
|
|
1514
|
-
'rel'?:
|
|
1515
|
-
/** Makes the
|
|
1516
|
-
'checkbox'?:
|
|
1517
|
-
/** Checked state of a `checkbox`
|
|
1518
|
-
'checked'?:
|
|
1519
|
-
/** Disclosure state, reflected as `aria-expanded` on the control. Set it on the
|
|
1520
|
-
'expanded'?:
|
|
1521
|
-
/** Marks the
|
|
1522
|
-
'disclosure'?:
|
|
1523
|
-
/** Marks the
|
|
1524
|
-
'current'?:
|
|
1525
|
-
/**
|
|
1526
|
-
'disabled'?:
|
|
1527
|
-
/** `full` lets the
|
|
1528
|
-
'width'?:
|
|
1529
|
-
/** Accessible name for the control. Set it when the
|
|
1530
|
-
'accessible-label'?:
|
|
1531
|
-
/** Accessible name for the control. Set it when the
|
|
1532
|
-
'accessibleLabel'?:
|
|
1533
|
-
/** On a `checkbox`
|
|
1561
|
+
'rel'?: NLDDListItemSegment['rel'];
|
|
1562
|
+
/** Makes the segment a `role="checkbox"` control. Wins over `button`, loses to `href`. */
|
|
1563
|
+
'checkbox'?: NLDDListItemSegment['checkbox'];
|
|
1564
|
+
/** Checked state of a `checkbox` segment; it toggles on activation */
|
|
1565
|
+
'checked'?: NLDDListItemSegment['checked'];
|
|
1566
|
+
/** Disclosure state, reflected as `aria-expanded` on the control, and painted: the segment stays lit a step above hover for as long as what it opened is on screen, so a menu reads as hanging off this row rather than floating over the list. Set it on the segment that opens something (a tree row's chevron, a menu). Leave it off entirely when the segment discloses nothing — an absent attribute emits no aria-expanded. */
|
|
1567
|
+
'expanded'?: NLDDListItemSegment['expanded'];
|
|
1568
|
+
/** Marks the segment as the row's disclosure control: `aria-expanded` comes from the parent item's `expanded`, so the state lives in one place. A slotted `nldd-icon-cell` rotates a quarter turn while the row is open */
|
|
1569
|
+
'disclosure'?: NLDDListItemSegment['disclosure'];
|
|
1570
|
+
/** Marks the segment as the current page (`aria-current="page"`). The row it sits in paints itself as the current row from it, so on a segmented row this is the only place it has to be set. */
|
|
1571
|
+
'current'?: NLDDListItemSegment['current'];
|
|
1572
|
+
/** Switches the segment off: a `button` or `checkbox` segment stops responding and dims, a `href` segment gets `aria-disabled` and its click is blocked (a link cannot be disabled natively). The arrow keys skip a row whose only segment is off. */
|
|
1573
|
+
'disabled'?: NLDDListItemSegment['disabled'];
|
|
1574
|
+
/** `full` lets the segment grow to fill the row (default: 'fit-content') */
|
|
1575
|
+
'width'?: NLDDListItemSegment['width'];
|
|
1576
|
+
/** Accessible name for the control. Set it when the segment holds only an icon, or when the cell text does not describe the action. */
|
|
1577
|
+
'accessible-label'?: NLDDListItemSegment['accessibleLabel'];
|
|
1578
|
+
/** Accessible name for the control. Set it when the segment holds only an icon, or when the cell text does not describe the action. */
|
|
1579
|
+
'accessibleLabel'?: NLDDListItemSegment['accessibleLabel'];
|
|
1580
|
+
/** On a `checkbox` segment after it toggles; detail: { checked: boolean } */
|
|
1534
1581
|
'onChange'?: (event: CustomEvent) => void;
|
|
1535
1582
|
};
|
|
1536
1583
|
|
|
@@ -1564,59 +1611,59 @@ declare module 'vue' {
|
|
|
1564
1611
|
};
|
|
1565
1612
|
|
|
1566
1613
|
type NLDDMenuBarProps = {
|
|
1567
|
-
/**
|
|
1614
|
+
/** Text for the overflow button (default through i18n) */
|
|
1568
1615
|
'overflow-text'?: NLDDMenuBar['overflowText'];
|
|
1569
|
-
/**
|
|
1616
|
+
/** Text for the overflow button (default through i18n) */
|
|
1570
1617
|
'overflowText'?: NLDDMenuBar['overflowText'];
|
|
1571
|
-
/** aria-label
|
|
1618
|
+
/** aria-label for the nav landmark */
|
|
1572
1619
|
'accessible-label'?: NLDDMenuBar['accessibleLabel'];
|
|
1573
|
-
/** aria-label
|
|
1620
|
+
/** aria-label for the nav landmark */
|
|
1574
1621
|
'accessibleLabel'?: NLDDMenuBar['accessibleLabel'];
|
|
1575
|
-
/**
|
|
1622
|
+
/** Propagates the compact attribute to slotted items (activates content priority) */
|
|
1576
1623
|
'compact'?: NLDDMenuBar['compact'];
|
|
1577
1624
|
'translations'?: NLDDMenuBar['translations'];
|
|
1578
1625
|
};
|
|
1579
1626
|
|
|
1580
1627
|
type NLDDMenuBarItemProps = {
|
|
1581
|
-
/**
|
|
1628
|
+
/** Text of the item */
|
|
1582
1629
|
'text'?: NLDDMenuBarItem['text'];
|
|
1583
|
-
/**
|
|
1630
|
+
/** Mark as the active or current item */
|
|
1584
1631
|
'current'?: NLDDMenuBarItem['current'];
|
|
1585
|
-
/** aria-current
|
|
1632
|
+
/** aria-current value when current is true ('page', 'step', 'location', 'true'). Default: 'page' */
|
|
1586
1633
|
'current-type'?: NLDDMenuBarItem['currentType'];
|
|
1587
|
-
/** aria-current
|
|
1634
|
+
/** aria-current value when current is true ('page', 'step', 'location', 'true'). Default: 'page' */
|
|
1588
1635
|
'currentType'?: NLDDMenuBarItem['currentType'];
|
|
1589
|
-
/**
|
|
1636
|
+
/** Optional link URL. Without href it renders as a button. */
|
|
1590
1637
|
'href'?: NLDDMenuBarItem['href'];
|
|
1591
|
-
/**
|
|
1638
|
+
/** Optional icon name (nldd-icon) */
|
|
1592
1639
|
'icon'?: NLDDMenuBarItem['icon'];
|
|
1593
|
-
/**
|
|
1640
|
+
/** Show the disclosure icon and open the slotted `<nldd-menu>` on click */
|
|
1594
1641
|
'expandable'?: NLDDMenuBarItem['expandable'];
|
|
1595
|
-
/**
|
|
1642
|
+
/** Hide the text visually (always) */
|
|
1596
1643
|
'icon-only'?: NLDDMenuBarItem['iconOnly'];
|
|
1597
|
-
/**
|
|
1644
|
+
/** Hide the text visually (always) */
|
|
1598
1645
|
'iconOnly'?: NLDDMenuBarItem['iconOnly'];
|
|
1599
|
-
/**
|
|
1646
|
+
/** Decides what stays visible in compact mode: 'icon' hides the text, 'text' hides the icon */
|
|
1600
1647
|
'content-priority'?: NLDDMenuBarItem['contentPriority'];
|
|
1601
|
-
/**
|
|
1648
|
+
/** Decides what stays visible in compact mode: 'icon' hides the text, 'text' hides the icon */
|
|
1602
1649
|
'contentPriority'?: NLDDMenuBarItem['contentPriority'];
|
|
1603
|
-
/**
|
|
1650
|
+
/** Activates content-priority behavior (set by the parent nldd-menu-bar) */
|
|
1604
1651
|
'compact'?: NLDDMenuBarItem['compact'];
|
|
1605
|
-
/**
|
|
1652
|
+
/** Turn interaction off */
|
|
1606
1653
|
'disabled'?: NLDDMenuBarItem['disabled'];
|
|
1607
|
-
/**
|
|
1654
|
+
/** Override aria-label */
|
|
1608
1655
|
'accessible-label'?: NLDDMenuBarItem['accessibleLabel'];
|
|
1609
|
-
/**
|
|
1656
|
+
/** Override aria-label */
|
|
1610
1657
|
'accessibleLabel'?: NLDDMenuBarItem['accessibleLabel'];
|
|
1611
|
-
/** aria-haspopup
|
|
1658
|
+
/** aria-haspopup value (e.g. "menu", "dialog") */
|
|
1612
1659
|
'haspopup'?: NLDDMenuBarItem['haspopup'];
|
|
1613
|
-
/**
|
|
1660
|
+
/** Whether the matching popover is open; sets aria-expanded on the button when expandable or haspopup is set. Tracked automatically for a slotted `<nldd-menu>`. */
|
|
1614
1661
|
'expanded'?: NLDDMenuBarItem['expanded'];
|
|
1615
1662
|
/** Direct element reference to the popover this item invokes — IDL-only counterpart to `popovertarget` that works across shadow boundaries. Set by `nldd-menu` when this item is wired up as the menu's anchor so the browser recognizes the inner button as the menu's invoker and excludes the click from popover light-dismiss. */
|
|
1616
1663
|
'popoverTargetElement'?: NLDDMenuBarItem['popoverTargetElement'];
|
|
1617
1664
|
/** Action the browser performs when the inner button is clicked, mirroring the standard `popovertargetaction` attribute. The menu keeps this in sync with its open state — `'hide'` while open, `'show'` while closed — so the browser's native invoker action always matches the intent of the click without racing. */
|
|
1618
1665
|
'popoverTargetAction'?: NLDDMenuBarItem['popoverTargetAction'];
|
|
1619
|
-
/**
|
|
1666
|
+
/** On a click on a non-expandable button item (bubbles, composed) */
|
|
1620
1667
|
'onSelect'?: (event: CustomEvent) => void;
|
|
1621
1668
|
};
|
|
1622
1669
|
|
|
@@ -1631,7 +1678,7 @@ declare module 'vue' {
|
|
|
1631
1678
|
type NLDDMenuItemProps = {
|
|
1632
1679
|
/** Display text. Supports **bold** markdown syntax. */
|
|
1633
1680
|
'text'?: NLDDMenuItem['text'];
|
|
1634
|
-
/**
|
|
1681
|
+
/** A value of the item's own, read off the item in a `select` handler. The default filter matches on it as well as on `text` and `aliases`. Not a form value: this component is not form-associated. */
|
|
1635
1682
|
'value'?: NLDDMenuItem['value'];
|
|
1636
1683
|
/** Optional link target. A plain button item with an href renders as an `<a>` so it is a real link (middle-click, open in new tab, copy link). Ignored for submenu openers, checkbox/radio items, and while disabled. */
|
|
1637
1684
|
'href'?: NLDDMenuItem['href'];
|
|
@@ -1690,7 +1737,7 @@ declare module 'vue' {
|
|
|
1690
1737
|
'accessibleLabel'?: NLDDModalDialog['accessibleLabel'];
|
|
1691
1738
|
/** When the dialog is opened */
|
|
1692
1739
|
'onOpen'?: (event: CustomEvent) => void;
|
|
1693
|
-
/** When the dialog is fully closed */
|
|
1740
|
+
/** When the dialog is fully closed. Does not bubble: overlays nest, and a listener on one dialog asking about that dialog should not also hear the form it opened. */
|
|
1694
1741
|
'onClose'?: (event: CustomEvent) => void;
|
|
1695
1742
|
};
|
|
1696
1743
|
|
|
@@ -1719,6 +1766,12 @@ declare module 'vue' {
|
|
|
1719
1766
|
'required'?: NLDDMultiLineTextField['required'];
|
|
1720
1767
|
/** Autocomplete hint */
|
|
1721
1768
|
'autocomplete'?: NLDDMultiLineTextField['autocomplete'];
|
|
1769
|
+
/** Which virtual keyboard a phone or tablet raises, forwarded as `inputmode`: 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'. It changes nothing about what the field accepts, and nothing at all on a desktop. */
|
|
1770
|
+
'keyboard'?: NLDDMultiLineTextField['keyboard'];
|
|
1771
|
+
/** What the Enter key of the virtual keyboard says, forwarded as `enterkeyhint`: 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'. In a field where Enter starts a new line, leave it alone. */
|
|
1772
|
+
'enter-key'?: NLDDMultiLineTextField['enterKey'];
|
|
1773
|
+
/** What the Enter key of the virtual keyboard says, forwarded as `enterkeyhint`: 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'. In a field where Enter starts a new line, leave it alone. */
|
|
1774
|
+
'enterKey'?: NLDDMultiLineTextField['enterKey'];
|
|
1722
1775
|
/** Initial visible rows (minimum height). Default: 3. */
|
|
1723
1776
|
'rows'?: NLDDMultiLineTextField['rows'];
|
|
1724
1777
|
/** 'none' | 'vertical' | 'auto' (default). 'auto' grows with content (native field-sizing), no manual handle. */
|
|
@@ -1727,16 +1780,18 @@ declare module 'vue' {
|
|
|
1727
1780
|
'accessible-label'?: NLDDMultiLineTextField['accessibleLabel'];
|
|
1728
1781
|
/** Accessible label forwarded to the inner textarea. Set automatically by nldd-form-field. */
|
|
1729
1782
|
'accessibleLabel'?: NLDDMultiLineTextField['accessibleLabel'];
|
|
1730
|
-
/** Ids for aria-describedby on the inner textarea. Set automatically by nldd-form-field. */
|
|
1731
|
-
'error-message-ids'?: NLDDMultiLineTextField['errorMessageIds'];
|
|
1732
|
-
/** Ids for aria-describedby on the inner textarea. Set automatically by nldd-form-field. */
|
|
1733
|
-
'errorMessageIds'?: NLDDMultiLineTextField['errorMessageIds'];
|
|
1734
1783
|
/** Disables browser spellchecking on the inner textarea */
|
|
1735
1784
|
'no-spellcheck'?: NLDDMultiLineTextField['noSpellcheck'];
|
|
1736
1785
|
/** Disables browser spellchecking on the inner textarea */
|
|
1737
1786
|
'noSpellcheck'?: NLDDMultiLineTextField['noSpellcheck'];
|
|
1738
1787
|
/** Optional fixed width (any CSS length, e.g. "240px"). Default: stretches to fill container. */
|
|
1739
1788
|
'width'?: NLDDMultiLineTextField['width'];
|
|
1789
|
+
/** Fewest characters the value may have. */
|
|
1790
|
+
'minlength'?: NLDDMultiLineTextField['minlength'];
|
|
1791
|
+
/** Most characters the value may have. */
|
|
1792
|
+
'maxlength'?: NLDDMultiLineTextField['maxlength'];
|
|
1793
|
+
/** Set by nldd-form-field. A consumer never writes this. */
|
|
1794
|
+
'describedByElements'?: NLDDMultiLineTextField['describedByElements'];
|
|
1740
1795
|
'internals'?: NLDDMultiLineTextField['internals'];
|
|
1741
1796
|
/** When value changes */
|
|
1742
1797
|
'onInput'?: (event: CustomEvent) => void;
|
|
@@ -1822,6 +1877,10 @@ declare module 'vue' {
|
|
|
1822
1877
|
'accessibleLabel'?: NLDDNumberField['accessibleLabel'];
|
|
1823
1878
|
/** Translations; unspecified keys fall back to Dutch */
|
|
1824
1879
|
'translations'?: NLDDNumberField['translations'];
|
|
1880
|
+
/** Marks the control as invalid. Announced with aria-invalid; nothing is drawn for it. */
|
|
1881
|
+
'invalid'?: NLDDNumberField['invalid'];
|
|
1882
|
+
/** Set by nldd-form-field. A consumer never writes this. */
|
|
1883
|
+
'describedByElements'?: NLDDNumberField['describedByElements'];
|
|
1825
1884
|
'internals'?: NLDDNumberField['internals'];
|
|
1826
1885
|
/** When the value changes (typing, +/- button, or on-commit correction); detail: { value: number } */
|
|
1827
1886
|
'onInput'?: (event: CustomEvent) => void;
|
|
@@ -1957,15 +2016,15 @@ declare module 'vue' {
|
|
|
1957
2016
|
'total'?: NLDDPagination['total'];
|
|
1958
2017
|
/** Disabled state */
|
|
1959
2018
|
'disabled'?: NLDDPagination['disabled'];
|
|
1960
|
-
/**
|
|
2019
|
+
/** Centers the pagination in the container (host fills row, items grouped in the middle) */
|
|
1961
2020
|
'centered'?: NLDDPagination['centered'];
|
|
1962
|
-
/** URL
|
|
2021
|
+
/** URL pattern with a {page} placeholder, renders links instead of buttons */
|
|
1963
2022
|
'href-pattern'?: NLDDPagination['hrefPattern'];
|
|
1964
|
-
/** URL
|
|
2023
|
+
/** URL pattern with a {page} placeholder, renders links instead of buttons */
|
|
1965
2024
|
'hrefPattern'?: NLDDPagination['hrefPattern'];
|
|
1966
|
-
/**
|
|
2025
|
+
/** Translations; unspecified keys fall back to Dutch */
|
|
1967
2026
|
'translations'?: NLDDPagination['translations'];
|
|
1968
|
-
/**
|
|
2027
|
+
/** On a page change (detail: { page: number, href?: string }). Only cancelable in href mode: preventDefault() blocks navigation (SPA). */
|
|
1969
2028
|
'onPageChange'?: (event: CustomEvent) => void;
|
|
1970
2029
|
};
|
|
1971
2030
|
|
|
@@ -2016,12 +2075,16 @@ declare module 'vue' {
|
|
|
2016
2075
|
'accessible-label'?: NLDDPasswordField['accessibleLabel'];
|
|
2017
2076
|
/** Accessible label forwarded to the inner input. Set automatically by nldd-form-field. */
|
|
2018
2077
|
'accessibleLabel'?: NLDDPasswordField['accessibleLabel'];
|
|
2019
|
-
/** Ids for aria-describedby on the inner input. Set automatically by nldd-form-field. */
|
|
2020
|
-
'error-message-ids'?: NLDDPasswordField['errorMessageIds'];
|
|
2021
|
-
/** Ids for aria-describedby on the inner input. Set automatically by nldd-form-field. */
|
|
2022
|
-
'errorMessageIds'?: NLDDPasswordField['errorMessageIds'];
|
|
2023
2078
|
/** Optional fixed width (any CSS length, e.g. "240px"). Default: stretches to fill container. */
|
|
2024
2079
|
'width'?: NLDDPasswordField['width'];
|
|
2080
|
+
/** Regular expression the value has to match, as the native `pattern`. */
|
|
2081
|
+
'pattern'?: NLDDPasswordField['pattern'];
|
|
2082
|
+
/** Fewest characters the value may have. */
|
|
2083
|
+
'minlength'?: NLDDPasswordField['minlength'];
|
|
2084
|
+
/** Most characters the value may have. */
|
|
2085
|
+
'maxlength'?: NLDDPasswordField['maxlength'];
|
|
2086
|
+
/** Set by nldd-form-field. A consumer never writes this. */
|
|
2087
|
+
'describedByElements'?: NLDDPasswordField['describedByElements'];
|
|
2025
2088
|
'internals'?: NLDDPasswordField['internals'];
|
|
2026
2089
|
/** When the input value changes ({ detail: { value } }) */
|
|
2027
2090
|
'onInput'?: (event: CustomEvent) => void;
|
|
@@ -2060,7 +2123,7 @@ declare module 'vue' {
|
|
|
2060
2123
|
'open'?: NLDDPopover['open'];
|
|
2061
2124
|
/** When the popover opens */
|
|
2062
2125
|
'onOpen'?: (event: CustomEvent) => void;
|
|
2063
|
-
/** When the popover closes */
|
|
2126
|
+
/** When the popover closes. Does not bubble: overlays nest, and a listener on the sheet or window around this one should not hear it close. */
|
|
2064
2127
|
'onClose'?: (event: CustomEvent) => void;
|
|
2065
2128
|
};
|
|
2066
2129
|
|
|
@@ -2163,16 +2226,24 @@ declare module 'vue' {
|
|
|
2163
2226
|
'decorative'?: NLDDRadioButton['decorative'];
|
|
2164
2227
|
/** Disabled state */
|
|
2165
2228
|
'disabled'?: NLDDRadioButton['disabled'];
|
|
2229
|
+
/** Takes the control out of the tab order (tabindex="-1"), for a control owned by a roving container (a row of an nldd-list, where the arrow keys move between rows) that manages focus itself. Still mouse- and script-focusable. */
|
|
2230
|
+
'no-tab'?: NLDDRadioButton['noTab'];
|
|
2231
|
+
/** Takes the control out of the tab order (tabindex="-1"), for a control owned by a roving container (a row of an nldd-list, where the arrow keys move between rows) that manages focus itself. Still mouse- and script-focusable. */
|
|
2232
|
+
'noTab'?: NLDDRadioButton['noTab'];
|
|
2166
2233
|
/** Required state */
|
|
2167
2234
|
'required'?: NLDDRadioButton['required'];
|
|
2168
2235
|
/** Radio group name for form submission; ties the buttons of one group together */
|
|
2169
2236
|
'name'?: NLDDRadioButton['name'];
|
|
2170
2237
|
/** Value submitted with the form when this radio button is checked */
|
|
2171
2238
|
'value'?: NLDDRadioButton['value'];
|
|
2172
|
-
/** Accessible label forwarded as aria-label to the native input.
|
|
2239
|
+
/** Accessible label forwarded as aria-label to the native input. */
|
|
2173
2240
|
'accessible-label'?: NLDDRadioButton['accessibleLabel'];
|
|
2174
|
-
/** Accessible label forwarded as aria-label to the native input.
|
|
2241
|
+
/** Accessible label forwarded as aria-label to the native input. */
|
|
2175
2242
|
'accessibleLabel'?: NLDDRadioButton['accessibleLabel'];
|
|
2243
|
+
/** Marks the control as invalid. Announced with aria-invalid; nothing is drawn for it. Note: aria-labelledby is not supported as IDREF resolution cannot cross shadow DOM boundaries. */
|
|
2244
|
+
'invalid'?: NLDDRadioButton['invalid'];
|
|
2245
|
+
/** Set by nldd-form-field. A consumer never writes this. */
|
|
2246
|
+
'describedByElements'?: NLDDRadioButton['describedByElements'];
|
|
2176
2247
|
'internals'?: NLDDRadioButton['internals'];
|
|
2177
2248
|
/** When checked state changes; detail: { checked: boolean, value: string, name: string } */
|
|
2178
2249
|
'onChange'?: (event: CustomEvent) => void;
|
|
@@ -2191,6 +2262,10 @@ declare module 'vue' {
|
|
|
2191
2262
|
'required'?: NLDDRadioButtonField['required'];
|
|
2192
2263
|
/** Label text for the radio button */
|
|
2193
2264
|
'label'?: NLDDRadioButtonField['label'];
|
|
2265
|
+
/** Marks the control as invalid. Announced with aria-invalid; nothing is drawn for it. */
|
|
2266
|
+
'invalid'?: NLDDRadioButtonField['invalid'];
|
|
2267
|
+
/** Set by nldd-form-field. A consumer never writes this. */
|
|
2268
|
+
'describedByElements'?: NLDDRadioButtonField['describedByElements'];
|
|
2194
2269
|
'internals'?: NLDDRadioButtonField['internals'];
|
|
2195
2270
|
/** When checked state changes; detail: { checked: boolean, value: string } */
|
|
2196
2271
|
'onChange'?: (event: CustomEvent) => void;
|
|
@@ -2211,6 +2286,8 @@ declare module 'vue' {
|
|
|
2211
2286
|
'accessible-labeled-by'?: NLDDRadioButtonGroup['accessibleLabeledBy'];
|
|
2212
2287
|
/** Id of an external label element, set as aria-labelledby on the group */
|
|
2213
2288
|
'accessibleLabeledBy'?: NLDDRadioButtonGroup['accessibleLabeledBy'];
|
|
2289
|
+
/** Marks the control as invalid. Announced with aria-invalid; nothing is drawn for it. */
|
|
2290
|
+
'invalid'?: NLDDRadioButtonGroup['invalid'];
|
|
2214
2291
|
/** Bubbles up from the checked field; detail: { checked: boolean, value: string } */
|
|
2215
2292
|
'onChange'?: (event: CustomEvent) => void;
|
|
2216
2293
|
};
|
|
@@ -2220,9 +2297,9 @@ declare module 'vue' {
|
|
|
2220
2297
|
'spacing'?: NLDDRichText['spacing'];
|
|
2221
2298
|
/** Centers the main column inside the container; without it, content is left-aligned */
|
|
2222
2299
|
'centered'?: NLDDRichText['centered'];
|
|
2223
|
-
/** Opt-in
|
|
2300
|
+
/** Opt-in automatic hyphenation for running text (p, li, dd). Needs a correct `lang` on the page (`lang="nl"` on `<html>`, for instance): without language information the browser does not hyphenate. An `overflow-wrap: break-word` safety net on p/li is always on, independent of this attribute, so long URLs and compounds break neatly instead of overflowing even without a dictionary. */
|
|
2224
2301
|
'hyphens'?: NLDDRichText['hyphens'];
|
|
2225
|
-
/** 'inherit'
|
|
2302
|
+
/** 'inherit' lets all text follow the color of the surface (for colored areas such as the filled categories). Links stay underlined as an affordance; secondary text (figcaption) gets the same color at a lowered opacity. Known v1 gaps: inline code, mark, tables and hr keep their own surfaces. Empty = the default content colors. */
|
|
2226
2303
|
'color'?: NLDDRichText['color'];
|
|
2227
2304
|
/** Override translation keys; unset keys fall back to Dutch */
|
|
2228
2305
|
'translations'?: NLDDRichText['translations'];
|
|
@@ -2255,6 +2332,18 @@ declare module 'vue' {
|
|
|
2255
2332
|
'noSpellcheck'?: NLDDSearchField['noSpellcheck'];
|
|
2256
2333
|
/** Optional fixed width (any CSS length, e.g. "240px"). Default: stretches to fill container. */
|
|
2257
2334
|
'width'?: NLDDSearchField['width'];
|
|
2335
|
+
/** Required state */
|
|
2336
|
+
'required'?: NLDDSearchField['required'];
|
|
2337
|
+
/** Regular expression the value has to match, as the native `pattern`. */
|
|
2338
|
+
'pattern'?: NLDDSearchField['pattern'];
|
|
2339
|
+
/** Fewest characters the value may have. */
|
|
2340
|
+
'minlength'?: NLDDSearchField['minlength'];
|
|
2341
|
+
/** Most characters the value may have. */
|
|
2342
|
+
'maxlength'?: NLDDSearchField['maxlength'];
|
|
2343
|
+
/** Marks the control as invalid. Announced with aria-invalid; nothing is drawn for it. */
|
|
2344
|
+
'invalid'?: NLDDSearchField['invalid'];
|
|
2345
|
+
/** Set by nldd-form-field. A consumer never writes this. */
|
|
2346
|
+
'describedByElements'?: NLDDSearchField['describedByElements'];
|
|
2258
2347
|
'internals'?: NLDDSearchField['internals'];
|
|
2259
2348
|
/** When the input value changes; detail: { value: string } */
|
|
2260
2349
|
'onInput'?: (event: CustomEvent) => void;
|
|
@@ -2265,6 +2354,10 @@ declare module 'vue' {
|
|
|
2265
2354
|
};
|
|
2266
2355
|
|
|
2267
2356
|
type NLDDSegmentedControlProps = {
|
|
2357
|
+
/** Marks the group as required. Enforced in radio mode; in checkbox mode only announced. */
|
|
2358
|
+
'required'?: NLDDSegmentedControl['required'];
|
|
2359
|
+
/** Marks the group as invalid. Announced with aria-invalid; nothing is drawn for it. */
|
|
2360
|
+
'invalid'?: NLDDSegmentedControl['invalid'];
|
|
2268
2361
|
/** Selected value for radio type */
|
|
2269
2362
|
'value'?: NLDDSegmentedControl['value'];
|
|
2270
2363
|
/** Control size: 'sm' | 'md' | 'lg' (default: 'md') */
|
|
@@ -2295,6 +2388,8 @@ declare module 'vue' {
|
|
|
2295
2388
|
};
|
|
2296
2389
|
|
|
2297
2390
|
type NLDDSegmentedControlItemProps = {
|
|
2391
|
+
/** Required state. Set by nldd-segmented-control. */
|
|
2392
|
+
'required'?: NLDDSegmentedControlItem['required'];
|
|
2298
2393
|
/** Value for this item */
|
|
2299
2394
|
'value'?: NLDDSegmentedControlItem['value'];
|
|
2300
2395
|
/** Whether this item is selected (set by parent) */
|
|
@@ -2336,7 +2431,7 @@ declare module 'vue' {
|
|
|
2336
2431
|
'width'?: NLDDSheet['width'];
|
|
2337
2432
|
/** Fired when the sheet is opened */
|
|
2338
2433
|
'onOpen'?: (event: CustomEvent) => void;
|
|
2339
|
-
/** Fired when the sheet is fully closed */
|
|
2434
|
+
/** Fired when the sheet is fully closed. Does not bubble: overlays nest, and a listener on one sheet asking about that sheet should not also hear the form it opened. */
|
|
2340
2435
|
'onClose'?: (event: CustomEvent) => void;
|
|
2341
2436
|
};
|
|
2342
2437
|
|
|
@@ -2458,9 +2553,9 @@ declare module 'vue' {
|
|
|
2458
2553
|
};
|
|
2459
2554
|
|
|
2460
2555
|
type NLDDSkipLinkProps = {
|
|
2461
|
-
/**
|
|
2556
|
+
/** Text of the skip link. Falls back to the i18n default. */
|
|
2462
2557
|
'text'?: NLDDSkipLink['text'];
|
|
2463
|
-
/**
|
|
2558
|
+
/** Optional external target id. Without href it jumps to the end of its own content. */
|
|
2464
2559
|
'href'?: NLDDSkipLink['href'];
|
|
2465
2560
|
'translations'?: NLDDSkipLink['translations'];
|
|
2466
2561
|
};
|
|
@@ -2544,17 +2639,17 @@ declare module 'vue' {
|
|
|
2544
2639
|
};
|
|
2545
2640
|
|
|
2546
2641
|
type NLDDStatusBarProps = {
|
|
2547
|
-
/**
|
|
2642
|
+
/** Color of the bar (default: 'neutral') */
|
|
2548
2643
|
'variant'?: NLDDStatusBar['variant'];
|
|
2549
|
-
/**
|
|
2644
|
+
/** The status text (one line; truncated with an ellipsis) */
|
|
2550
2645
|
'text'?: NLDDStatusBar['text'];
|
|
2551
|
-
/**
|
|
2646
|
+
/** Makes the whole bar a link (renders an <a>) */
|
|
2552
2647
|
'href'?: NLDDStatusBar['href'];
|
|
2553
|
-
/** Link target (
|
|
2648
|
+
/** Link target (e.g. '_blank'); only used with href */
|
|
2554
2649
|
'target'?: NLDDStatusBar['target'];
|
|
2555
|
-
/** Link rel;
|
|
2650
|
+
/** Link rel; defaults to 'noopener noreferrer' with target='_blank' */
|
|
2556
2651
|
'rel'?: NLDDStatusBar['rel'];
|
|
2557
|
-
/**
|
|
2652
|
+
/** Makes the whole bar a button; ignored when href is set */
|
|
2558
2653
|
'button'?: NLDDStatusBar['button'];
|
|
2559
2654
|
};
|
|
2560
2655
|
|
|
@@ -2609,6 +2704,10 @@ declare module 'vue' {
|
|
|
2609
2704
|
'accessibleLabel'?: NLDDStepper['accessibleLabel'];
|
|
2610
2705
|
/** Translations; unspecified keys fall back to Dutch */
|
|
2611
2706
|
'translations'?: NLDDStepper['translations'];
|
|
2707
|
+
/** Marks the control as invalid. Announced with aria-invalid; nothing is drawn for it. */
|
|
2708
|
+
'invalid'?: NLDDStepper['invalid'];
|
|
2709
|
+
/** Set by nldd-form-field. A consumer never writes this. */
|
|
2710
|
+
'describedByElements'?: NLDDStepper['describedByElements'];
|
|
2612
2711
|
'internals'?: NLDDStepper['internals'];
|
|
2613
2712
|
/** When the value changes; detail: { value: number } */
|
|
2614
2713
|
'onChange'?: (event: CustomEvent) => void;
|
|
@@ -2621,6 +2720,10 @@ declare module 'vue' {
|
|
|
2621
2720
|
'checked'?: NLDDSwitch['checked'];
|
|
2622
2721
|
/** Disabled state */
|
|
2623
2722
|
'disabled'?: NLDDSwitch['disabled'];
|
|
2723
|
+
/** Takes the control out of the tab order (tabindex="-1"), for a control owned by a roving container (a row of an nldd-list, where the arrow keys move between rows) that manages focus itself. Still mouse- and script-focusable. */
|
|
2724
|
+
'no-tab'?: NLDDSwitch['noTab'];
|
|
2725
|
+
/** Takes the control out of the tab order (tabindex="-1"), for a control owned by a roving container (a row of an nldd-list, where the arrow keys move between rows) that manages focus itself. Still mouse- and script-focusable. */
|
|
2726
|
+
'noTab'?: NLDDSwitch['noTab'];
|
|
2624
2727
|
/** Switch size: 'xs' | 'sm' (default: 'sm') */
|
|
2625
2728
|
'size'?: NLDDSwitch['size'];
|
|
2626
2729
|
/** Accessible label forwarded as aria-label to the native input. Required when using nldd-switch without nldd-switch-field. */
|
|
@@ -2629,6 +2732,12 @@ declare module 'vue' {
|
|
|
2629
2732
|
'accessibleLabel'?: NLDDSwitch['accessibleLabel'];
|
|
2630
2733
|
/** Value submitted with the form when the switch is on (default: 'on') */
|
|
2631
2734
|
'value'?: NLDDSwitch['value'];
|
|
2735
|
+
/** Required state */
|
|
2736
|
+
'required'?: NLDDSwitch['required'];
|
|
2737
|
+
/** Marks the control as invalid. Announced with aria-invalid; nothing is drawn for it. */
|
|
2738
|
+
'invalid'?: NLDDSwitch['invalid'];
|
|
2739
|
+
/** Set by nldd-form-field. A consumer never writes this. */
|
|
2740
|
+
'describedByElements'?: NLDDSwitch['describedByElements'];
|
|
2632
2741
|
'internals'?: NLDDSwitch['internals'];
|
|
2633
2742
|
/** When the switch state changes; detail: { checked: boolean, value: string } */
|
|
2634
2743
|
'onChange'?: (event: CustomEvent) => void;
|
|
@@ -2645,6 +2754,12 @@ declare module 'vue' {
|
|
|
2645
2754
|
'name'?: NLDDSwitchField['name'];
|
|
2646
2755
|
/** Label text for the switch */
|
|
2647
2756
|
'label'?: NLDDSwitchField['label'];
|
|
2757
|
+
/** Required state */
|
|
2758
|
+
'required'?: NLDDSwitchField['required'];
|
|
2759
|
+
/** Marks the control as invalid. Announced with aria-invalid; nothing is drawn for it. */
|
|
2760
|
+
'invalid'?: NLDDSwitchField['invalid'];
|
|
2761
|
+
/** Set by nldd-form-field. A consumer never writes this. */
|
|
2762
|
+
'describedByElements'?: NLDDSwitchField['describedByElements'];
|
|
2648
2763
|
/** When checked state changes; detail: { checked: boolean, value: string } */
|
|
2649
2764
|
'onChange'?: (event: CustomEvent) => void;
|
|
2650
2765
|
};
|
|
@@ -2669,8 +2784,8 @@ declare module 'vue' {
|
|
|
2669
2784
|
};
|
|
2670
2785
|
|
|
2671
2786
|
type NLDDTabBarItemProps = {
|
|
2672
|
-
/**
|
|
2673
|
-
'
|
|
2787
|
+
/** The item you are on. A tab bar switching content manages it itself and renders it as `aria-selected`; a `navigation` bar leaves it to the consumer, since it follows the route, and renders it as `aria-current="page"`. Unlike a list row, which separates `current` from `selected` because it can be both at once, a tab bar has exactly one active item. */
|
|
2788
|
+
'current'?: NLDDTabBarItem['current'];
|
|
2674
2789
|
/** Optional link URL; renders an anchor instead of a button */
|
|
2675
2790
|
'href'?: NLDDTabBarItem['href'];
|
|
2676
2791
|
/** Set by nldd-tab-bar. Not part of the public API. */
|
|
@@ -2708,14 +2823,6 @@ declare module 'vue' {
|
|
|
2708
2823
|
'accessibleLabel'?: NLDDTable['accessibleLabel'];
|
|
2709
2824
|
/** Opt into row selection: body rows expose aria-selected (true/false). Without it, rows omit aria-selected so a non-selectable table isn't announced as selectable. */
|
|
2710
2825
|
'selectable'?: NLDDTable['selectable'];
|
|
2711
|
-
/** Text for the default empty-state dialog (falls back to the Dutch i18n default). Ignored when `[slot=empty]` is filled */
|
|
2712
|
-
'empty-text'?: NLDDTable['emptyText'];
|
|
2713
|
-
/** Text for the default empty-state dialog (falls back to the Dutch i18n default). Ignored when `[slot=empty]` is filled */
|
|
2714
|
-
'emptyText'?: NLDDTable['emptyText'];
|
|
2715
|
-
/** Supporting text for the default empty-state dialog. Ignored when `[slot=empty]` is filled */
|
|
2716
|
-
'empty-supporting-text'?: NLDDTable['emptySupportingText'];
|
|
2717
|
-
/** Supporting text for the default empty-state dialog. Ignored when `[slot=empty]` is filled */
|
|
2718
|
-
'emptySupportingText'?: NLDDTable['emptySupportingText'];
|
|
2719
2826
|
/** Override translation keys; unset keys fall back to Dutch */
|
|
2720
2827
|
'translations'?: NLDDTable['translations'];
|
|
2721
2828
|
};
|
|
@@ -2742,6 +2849,23 @@ declare module 'vue' {
|
|
|
2742
2849
|
'accessibleLabel'?: NLDDTag['accessibleLabel'];
|
|
2743
2850
|
};
|
|
2744
2851
|
|
|
2852
|
+
type NLDDTextProps = {
|
|
2853
|
+
/** Text size on the body scale: 'xxs' | 'xs' | 'sm' | 'md' | 'lg' (default: 'md') */
|
|
2854
|
+
'size'?: NLDDText['size'];
|
|
2855
|
+
/** Font weight: 'regular' | 'medium' | 'bold' (default: 'regular'). With 'bold' a slotted `<strong>` no longer stands out: there is nothing bolder in the scale. */
|
|
2856
|
+
'weight'?: NLDDText['weight'];
|
|
2857
|
+
/** Line height: 'flat' | 'tight' | 'snug' | 'loose' (default: 'snug') */
|
|
2858
|
+
'line-height'?: NLDDText['lineHeight'];
|
|
2859
|
+
/** Line height: 'flat' | 'tight' | 'snug' | 'loose' (default: 'snug') */
|
|
2860
|
+
'lineHeight'?: NLDDText['lineHeight'];
|
|
2861
|
+
/** Text color: 'default' | 'secondary' | 'accent' | 'success' | 'warning' | 'critical' | 'inherit' (default: 'default'). 'default' and 'secondary' follow the surrounding content channel; 'inherit' takes the color it inherits, for text on a painted surface. */
|
|
2862
|
+
'color'?: NLDDText['color'];
|
|
2863
|
+
/** Alignment of the text within the block: 'left' | 'center' | 'right' (default: 'left'). Aligns the words; `horizontal-alignment` on nldd-container moves the box. */
|
|
2864
|
+
'horizontal-alignment'?: NLDDText['horizontalAlignment'];
|
|
2865
|
+
/** Alignment of the text within the block: 'left' | 'center' | 'right' (default: 'left'). Aligns the words; `horizontal-alignment` on nldd-container moves the box. */
|
|
2866
|
+
'horizontalAlignment'?: NLDDText['horizontalAlignment'];
|
|
2867
|
+
};
|
|
2868
|
+
|
|
2745
2869
|
type NLDDTextCellProps = {
|
|
2746
2870
|
/** Cell size: 'sm' | 'md' (default: 'md') */
|
|
2747
2871
|
'size'?: NLDDTextCell['size'];
|
|
@@ -2822,10 +2946,14 @@ declare module 'vue' {
|
|
|
2822
2946
|
'annotatable'?: NLDDTextEditor['annotatable'];
|
|
2823
2947
|
/** Override the editor's assistive-tech strings (the open-in-new-tab link badge and the annotation count badge). Unset keys fall back to Dutch. */
|
|
2824
2948
|
'translations'?: NLDDTextEditor['translations'];
|
|
2949
|
+
/** Marks the control as invalid. Announced with aria-invalid; nothing is drawn for it. */
|
|
2950
|
+
'invalid'?: NLDDTextEditor['invalid'];
|
|
2825
2951
|
/** Consumer-supplied */
|
|
2826
2952
|
'mentionSource'?: NLDDTextEditor['mentionSource'];
|
|
2827
2953
|
/** Consumer-supplied annotations (W3C-style overlay). Property only (set via JS). Render only when `annotatable` is on. The text stays clean; these render as a light tint and a count badge, anchored by offset and mapped through edits. IMPORTANT: assign a NEW array to apply changes. Lit dirty-checks this property by identity, so mutating the existing array in place (`editor.annotations.push(next)`, `editor.annotations[0].end = 9`, …) does NOT trigger a re-render. Always replace it: `editor.annotations = [...editor.annotations, next]`. */
|
|
2828
2954
|
'annotations'?: NLDDTextEditor['annotations'];
|
|
2955
|
+
/** Set by nldd-form-field. A consumer never writes this. */
|
|
2956
|
+
'describedByElements'?: NLDDTextEditor['describedByElements'];
|
|
2829
2957
|
'internals'?: NLDDTextEditor['internals'];
|
|
2830
2958
|
/** When the content changes (detail: { value }) */
|
|
2831
2959
|
'onInput'?: (event: CustomEvent) => void;
|
|
@@ -2858,6 +2986,12 @@ declare module 'vue' {
|
|
|
2858
2986
|
'disabled'?: NLDDTextField['disabled'];
|
|
2859
2987
|
/** Input type: 'text' | 'email' | 'tel' | 'url' */
|
|
2860
2988
|
'type'?: NLDDTextField['type'];
|
|
2989
|
+
/** Which virtual keyboard a phone or tablet raises, forwarded as `inputmode`: 'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'. It changes nothing about what the field accepts, and nothing at all on a desktop. Reach for it where the value is digits but not a quantity you would step (a house number, a postcode, a rack unit): 'numeric'. The keyboard for 'tel', 'email' and 'url' already follows from `type`. */
|
|
2990
|
+
'keyboard'?: NLDDTextField['keyboard'];
|
|
2991
|
+
/** What the Enter key of the virtual keyboard says, forwarded as `enterkeyhint`: 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'. It only labels the key; what Enter does is still up to the form, and on a desktop it changes nothing. */
|
|
2992
|
+
'enter-key'?: NLDDTextField['enterKey'];
|
|
2993
|
+
/** What the Enter key of the virtual keyboard says, forwarded as `enterkeyhint`: 'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'. It only labels the key; what Enter does is still up to the form, and on a desktop it changes nothing. */
|
|
2994
|
+
'enterKey'?: NLDDTextField['enterKey'];
|
|
2861
2995
|
/** Input name for form submission */
|
|
2862
2996
|
'name'?: NLDDTextField['name'];
|
|
2863
2997
|
/** Readonly state */
|
|
@@ -2870,16 +3004,20 @@ declare module 'vue' {
|
|
|
2870
3004
|
'accessible-label'?: NLDDTextField['accessibleLabel'];
|
|
2871
3005
|
/** Accessible label forwarded to the inner input. Set automatically by nldd-form-field. */
|
|
2872
3006
|
'accessibleLabel'?: NLDDTextField['accessibleLabel'];
|
|
2873
|
-
/** Ids for aria-describedby on the inner input. Set automatically by nldd-form-field. */
|
|
2874
|
-
'error-message-ids'?: NLDDTextField['errorMessageIds'];
|
|
2875
|
-
/** Ids for aria-describedby on the inner input. Set automatically by nldd-form-field. */
|
|
2876
|
-
'errorMessageIds'?: NLDDTextField['errorMessageIds'];
|
|
2877
3007
|
/** Disables browser spellchecking on the inner input */
|
|
2878
3008
|
'no-spellcheck'?: NLDDTextField['noSpellcheck'];
|
|
2879
3009
|
/** Disables browser spellchecking on the inner input */
|
|
2880
3010
|
'noSpellcheck'?: NLDDTextField['noSpellcheck'];
|
|
2881
3011
|
/** Optional fixed width (any CSS length, e.g. "240px"). Default: stretches to fill container. */
|
|
2882
3012
|
'width'?: NLDDTextField['width'];
|
|
3013
|
+
/** Regular expression the value has to match, as the native `pattern`. */
|
|
3014
|
+
'pattern'?: NLDDTextField['pattern'];
|
|
3015
|
+
/** Fewest characters the value may have. */
|
|
3016
|
+
'minlength'?: NLDDTextField['minlength'];
|
|
3017
|
+
/** Most characters the value may have. */
|
|
3018
|
+
'maxlength'?: NLDDTextField['maxlength'];
|
|
3019
|
+
/** Set by nldd-form-field. A consumer never writes this. */
|
|
3020
|
+
'describedByElements'?: NLDDTextField['describedByElements'];
|
|
2883
3021
|
'internals'?: NLDDTextField['internals'];
|
|
2884
3022
|
/** When input value changes */
|
|
2885
3023
|
'onInput'?: (event: CustomEvent) => void;
|
|
@@ -2888,95 +3026,99 @@ declare module 'vue' {
|
|
|
2888
3026
|
};
|
|
2889
3027
|
|
|
2890
3028
|
type NLDDTimeFieldProps = {
|
|
2891
|
-
/** 'md' (
|
|
3029
|
+
/** 'md' (default) | 'sm'. Set automatically by nldd-form-field. */
|
|
2892
3030
|
'size'?: NLDDTimeField['size'];
|
|
2893
|
-
/**
|
|
3031
|
+
/** The time as `HH:mm` (24-hour). Empty when there is no valid time. */
|
|
2894
3032
|
'value'?: NLDDTimeField['value'];
|
|
2895
|
-
/**
|
|
3033
|
+
/** Earliest allowed time as `HH:mm`. Also the base that `step` counts from. */
|
|
2896
3034
|
'min'?: NLDDTimeField['min'];
|
|
2897
|
-
/**
|
|
3035
|
+
/** Latest allowed time as `HH:mm`. */
|
|
2898
3036
|
'max'?: NLDDTimeField['max'];
|
|
2899
|
-
/**
|
|
3037
|
+
/** Step in minutes (default 1). Decides which times are valid, what rounding snaps to, and how far the arrow keys jump. */
|
|
2900
3038
|
'step'?: NLDDTimeField['step'];
|
|
2901
|
-
/**
|
|
3039
|
+
/** Hides the picker button. It is shown by default. */
|
|
2902
3040
|
'no-picker'?: NLDDTimeField['noPicker'];
|
|
2903
|
-
/**
|
|
3041
|
+
/** Hides the picker button. It is shown by default. */
|
|
2904
3042
|
'noPicker'?: NLDDTimeField['noPicker'];
|
|
2905
|
-
/**
|
|
3043
|
+
/** Sets the id on the internal input. Set automatically by nldd-form-field. */
|
|
2906
3044
|
'input-id'?: NLDDTimeField['inputId'];
|
|
2907
|
-
/**
|
|
3045
|
+
/** Sets the id on the internal input. Set automatically by nldd-form-field. */
|
|
2908
3046
|
'inputId'?: NLDDTimeField['inputId'];
|
|
2909
|
-
/**
|
|
3047
|
+
/** Placeholder text. Do not put a format here; use the supporting label of nldd-form-field for that. */
|
|
2910
3048
|
'placeholder'?: NLDDTimeField['placeholder'];
|
|
2911
|
-
/**
|
|
3049
|
+
/** Marks the field as invalid. */
|
|
2912
3050
|
'invalid'?: NLDDTimeField['invalid'];
|
|
2913
|
-
/**
|
|
3051
|
+
/** Marks the field as valid. */
|
|
2914
3052
|
'valid'?: NLDDTimeField['valid'];
|
|
2915
|
-
/**
|
|
3053
|
+
/** Disabled state. */
|
|
2916
3054
|
'disabled'?: NLDDTimeField['disabled'];
|
|
2917
|
-
/**
|
|
3055
|
+
/** Read-only state. */
|
|
2918
3056
|
'readonly'?: NLDDTimeField['readonly'];
|
|
2919
|
-
/**
|
|
3057
|
+
/** Required state. */
|
|
2920
3058
|
'required'?: NLDDTimeField['required'];
|
|
2921
|
-
/**
|
|
3059
|
+
/** Name for form submission. */
|
|
2922
3060
|
'name'?: NLDDTimeField['name'];
|
|
2923
|
-
/** Autocomplete
|
|
3061
|
+
/** Autocomplete hint. */
|
|
2924
3062
|
'autocomplete'?: NLDDTimeField['autocomplete'];
|
|
2925
|
-
/**
|
|
3063
|
+
/** Accessible label for the internal input. Set automatically by nldd-form-field. */
|
|
2926
3064
|
'accessible-label'?: NLDDTimeField['accessibleLabel'];
|
|
2927
|
-
/**
|
|
3065
|
+
/** Accessible label for the internal input. Set automatically by nldd-form-field. */
|
|
2928
3066
|
'accessibleLabel'?: NLDDTimeField['accessibleLabel'];
|
|
2929
|
-
/**
|
|
2930
|
-
'error-message-ids'?: NLDDTimeField['errorMessageIds'];
|
|
2931
|
-
/** Ids voor aria-describedby. Wordt automatisch gezet door nldd-form-field. */
|
|
2932
|
-
'errorMessageIds'?: NLDDTimeField['errorMessageIds'];
|
|
2933
|
-
/** Breedte. Standaard precies breed genoeg voor een tijd plus het validatie-icoon; 'full' vult de container, of geef een eigen CSS-lengte. */
|
|
3067
|
+
/** Width. By default exactly wide enough for a time plus the validation icon; 'full' fills the container; 'fit-content' drops the room for the validation icon and grows again as soon as the field turns valid or invalid; or pass your own CSS length. */
|
|
2934
3068
|
'width'?: NLDDTimeField['width'];
|
|
2935
|
-
/**
|
|
3069
|
+
/** Translations; unspecified keys fall back to Dutch. */
|
|
2936
3070
|
'translations'?: NLDDTimeField['translations'];
|
|
3071
|
+
/** Set by nldd-form-field. A consumer never writes this. */
|
|
3072
|
+
'describedByElements'?: NLDDTimeField['describedByElements'];
|
|
2937
3073
|
'internals'?: NLDDTimeField['internals'];
|
|
2938
|
-
/**
|
|
3074
|
+
/** On every change. detail: { value } with `HH:mm`, or '' while there is no valid time. */
|
|
2939
3075
|
'onInput'?: (event: CustomEvent) => void;
|
|
2940
|
-
/**
|
|
3076
|
+
/** When the value is committed: on leaving the field, and on closing the picker in a way that keeps the choice. detail: { value } with `HH:mm`, or ''. */
|
|
2941
3077
|
'onChange'?: (event: CustomEvent) => void;
|
|
2942
3078
|
};
|
|
2943
3079
|
|
|
2944
3080
|
type NLDDTimePickerProps = {
|
|
2945
|
-
/**
|
|
3081
|
+
/** The chosen time as `HH:mm` (24-hour). */
|
|
2946
3082
|
'value'?: NLDDTimePicker['value'];
|
|
2947
|
-
/**
|
|
3083
|
+
/** Earliest allowed time as `HH:mm`. Also the base that `step` counts from. */
|
|
2948
3084
|
'min'?: NLDDTimePicker['min'];
|
|
2949
|
-
/**
|
|
3085
|
+
/** Latest allowed time as `HH:mm`. */
|
|
2950
3086
|
'max'?: NLDDTimePicker['max'];
|
|
2951
|
-
/**
|
|
3087
|
+
/** Step in minutes (default 1). Decides which minutes are in the column. */
|
|
2952
3088
|
'step'?: NLDDTimePicker['step'];
|
|
2953
|
-
/**
|
|
3089
|
+
/** Height of the columns in rows (default 7, minimum 3). The chosen value always sits in the middle, so an odd number shows whole rows and an even number cuts off half a row at the top and bottom. */
|
|
2954
3090
|
'rows'?: NLDDTimePicker['rows'];
|
|
2955
|
-
/**
|
|
3091
|
+
/** Width: `full` fills the container, or pass your own CSS length. */
|
|
2956
3092
|
'width'?: NLDDTimePicker['width'];
|
|
2957
|
-
/**
|
|
3093
|
+
/** Accessible name of the picker. */
|
|
2958
3094
|
'accessible-label'?: NLDDTimePicker['accessibleLabel'];
|
|
2959
|
-
/**
|
|
3095
|
+
/** Accessible name of the picker. */
|
|
2960
3096
|
'accessibleLabel'?: NLDDTimePicker['accessibleLabel'];
|
|
2961
|
-
/**
|
|
3097
|
+
/** Translations; unspecified keys fall back to Dutch. */
|
|
2962
3098
|
'translations'?: NLDDTimePicker['translations'];
|
|
2963
|
-
/**
|
|
3099
|
+
/** Marks the control as invalid. Announced with aria-invalid; nothing is drawn for it. */
|
|
3100
|
+
'invalid'?: NLDDTimePicker['invalid'];
|
|
3101
|
+
/** Set by nldd-form-field. A consumer never writes this. */
|
|
3102
|
+
'describedByElements'?: NLDDTimePicker['describedByElements'];
|
|
3103
|
+
/** On every change: scrolling, the arrow keys. detail: { value } with `HH:mm`. */
|
|
2964
3104
|
'onInput'?: (event: CustomEvent) => void;
|
|
2965
|
-
/**
|
|
3105
|
+
/** When the choice is confirmed: a click on a value or on the selection, or Enter. detail: { value } with `HH:mm`. Scrolling only fires `input`, because otherwise a field showing the picker in a popover would commit as soon as you stopped scrolling. */
|
|
2966
3106
|
'onChange'?: (event: CustomEvent) => void;
|
|
2967
3107
|
};
|
|
2968
3108
|
|
|
2969
3109
|
type NLDDTimelineTrackCellProps = {
|
|
2970
|
-
/**
|
|
3110
|
+
/** How far along this row is (default 'past'); the same values as `nldd-step-indicator-item`. It colors the dot and the track around it: covered above where you are, still ahead below */
|
|
2971
3111
|
'status'?: NLDDTimelineTrackCell['status'];
|
|
2972
|
-
/**
|
|
3112
|
+
/** How wide the lane is and so how big the dot: `sm` (default, 16px) for a timeline of events, `md` (24px) where a number or an icon has to fit. Every row in one list takes the same size, or the track jumps */
|
|
3113
|
+
'size'?: NLDDTimelineTrackCell['size'];
|
|
3114
|
+
/** What stands in the lane: a whole dot (`major`, the default), a smaller one for a row that belongs under the one above it (`minor`), or nothing at all (`none`) for a row that carries what a step holds rather than being a step. A `none` row keeps its `size` and its `status`, so it stays in the same lane and the track runs on in the right color */
|
|
2973
3115
|
'variant'?: NLDDTimelineTrackCell['variant'];
|
|
2974
|
-
/** This row belongs under the previous one: a smaller dot in the same lane, so the track runs straight on and nothing indents. The dot stays empty (a number or an icon would not fit, and would make the row a step of its own); carry the hierarchy in the row itself instead, with an `nldd-text-cell` rather than an `nldd-title-cell` for example */
|
|
2975
|
-
'minor'?: NLDDTimelineTrackCell['minor'];
|
|
2976
3116
|
/** The direction the timeline moves forward in: `down` (default) puts the past above, `up` below. Only the current step has half a track, so this only has an effect there */
|
|
2977
3117
|
'direction'?: NLDDTimelineTrackCell['direction'];
|
|
2978
|
-
/** Place in the series (default 'between'): decides whether the line continues above the dot, below it, or on both sides. `only` is the single row in the series and gets a line on neither side: a track of one dot leads nowhere */
|
|
3118
|
+
/** Place in the series (default 'between'): decides whether the line continues above the dot, below it, or on both sides. `only` is the single row in the series and gets a line on neither side: a track of one dot leads nowhere. On a `variant="none"` row, which is nothing but line, `only` leaves it out altogether: the track ends above it */
|
|
2979
3119
|
'position'?: NLDDTimelineTrackCell['position'];
|
|
3120
|
+
/** Which halves of the track you have covered, when `status` and `direction` get it wrong (default 'auto', which is what those two say). The halves you name are drawn as covered and the other one as still ahead, so `none` covers neither. Which halves are drawn at all stays with `position`, except that naming a half draws it: `line="both"` on a `first` row draws one above too. A row that opens a group of its own is the case for `both`, since the going carries on below it. A `variant="none"` row has one line rather than two halves, and no point where a fill could change over, so there the status colors the whole of it and `line` overrules the whole of it. On a `current` row that leans the way the timeline runs: what belongs to a point usually comes after it, so going `down` the stretch reads as still ahead and going `up` as behind you */
|
|
3121
|
+
'line'?: NLDDTimelineTrackCell['line'];
|
|
2980
3122
|
/** Number or short text in the dot */
|
|
2981
3123
|
'text'?: NLDDTimelineTrackCell['text'];
|
|
2982
3124
|
/** Icon name in the dot; wins over `text` */
|
|
@@ -2985,14 +3127,14 @@ declare module 'vue' {
|
|
|
2985
3127
|
'hideBelow'?: NLDDTimelineTrackCell['hideBelow'];
|
|
2986
3128
|
'hide-above'?: NLDDTimelineTrackCell['hideAbove'];
|
|
2987
3129
|
'hideAbove'?: NLDDTimelineTrackCell['hideAbove'];
|
|
2988
|
-
/** Only a
|
|
3130
|
+
/** Only a whole dot in a wide lane has room to read a number in: a minor one is smaller still, and would claim to be a step of its own. */
|
|
2989
3131
|
'showsContent'?: NLDDTimelineTrackCell['showsContent'];
|
|
2990
3132
|
};
|
|
2991
3133
|
|
|
2992
3134
|
type NLDDTitleProps = {
|
|
2993
3135
|
/** Visual size of the title: 1–6 (default: 3) */
|
|
2994
3136
|
'size'?: NLDDTitle['size'];
|
|
2995
|
-
/** 'inherit' lets the title
|
|
3137
|
+
/** 'inherit' lets the title follow the text color of the surface (for colored areas such as the filled categories); overline and subtitle get the same color at a lowered opacity. Empty = the default content colors. */
|
|
2996
3138
|
'color'?: NLDDTitle['color'];
|
|
2997
3139
|
};
|
|
2998
3140
|
|
|
@@ -3048,6 +3190,8 @@ declare module 'vue' {
|
|
|
3048
3190
|
};
|
|
3049
3191
|
|
|
3050
3192
|
type NLDDToggleButtonProps = {
|
|
3193
|
+
/** Required state. Set by nldd-toggle-button-group. */
|
|
3194
|
+
'required'?: NLDDToggleButton['required'];
|
|
3051
3195
|
/** Underlying element (default: 'button') */
|
|
3052
3196
|
'type'?: NLDDToggleButton['type'];
|
|
3053
3197
|
/** Button size (default: 'md') */
|
|
@@ -3056,6 +3200,10 @@ declare module 'vue' {
|
|
|
3056
3200
|
'selected'?: NLDDToggleButton['selected'];
|
|
3057
3201
|
/** Disabled state */
|
|
3058
3202
|
'disabled'?: NLDDToggleButton['disabled'];
|
|
3203
|
+
/** Takes the control out of the tab order (tabindex="-1"), for a control owned by a roving container (a row of an nldd-list, where the arrow keys move between rows) that manages focus itself. Still mouse- and script-focusable. */
|
|
3204
|
+
'no-tab'?: NLDDToggleButton['noTab'];
|
|
3205
|
+
/** Takes the control out of the tab order (tabindex="-1"), for a control owned by a roving container (a row of an nldd-list, where the arrow keys move between rows) that manages focus itself. Still mouse- and script-focusable. */
|
|
3206
|
+
'noTab'?: NLDDToggleButton['noTab'];
|
|
3059
3207
|
/** Value for form submission (checkbox/radio) */
|
|
3060
3208
|
'value'?: NLDDToggleButton['value'];
|
|
3061
3209
|
/** Name for form submission (checkbox/radio) */
|
|
@@ -3070,12 +3218,18 @@ declare module 'vue' {
|
|
|
3070
3218
|
'accessible-label'?: NLDDToggleButton['accessibleLabel'];
|
|
3071
3219
|
/** Accessible label; required for icon-only usage */
|
|
3072
3220
|
'accessibleLabel'?: NLDDToggleButton['accessibleLabel'];
|
|
3221
|
+
/** Marks the control as invalid. Announced with aria-invalid; nothing is drawn for it. */
|
|
3222
|
+
'invalid'?: NLDDToggleButton['invalid'];
|
|
3223
|
+
/** Set by nldd-form-field. A consumer never writes this. */
|
|
3224
|
+
'describedByElements'?: NLDDToggleButton['describedByElements'];
|
|
3073
3225
|
'internals'?: NLDDToggleButton['internals'];
|
|
3074
3226
|
/** When selection changes; detail: { selected: boolean, value: string } */
|
|
3075
3227
|
'onChange'?: (event: CustomEvent) => void;
|
|
3076
3228
|
};
|
|
3077
3229
|
|
|
3078
3230
|
type NLDDToggleButtonGroupProps = {
|
|
3231
|
+
/** Marks the group as required. Enforced in radio mode; in checkbox mode only announced. */
|
|
3232
|
+
'required'?: NLDDToggleButtonGroup['required'];
|
|
3079
3233
|
/** Selection mode (default: 'checkbox') */
|
|
3080
3234
|
'type'?: NLDDToggleButtonGroup['type'];
|
|
3081
3235
|
/** Forwarded to all buttons */
|
|
@@ -3092,6 +3246,8 @@ declare module 'vue' {
|
|
|
3092
3246
|
'accessible-labeled-by'?: NLDDToggleButtonGroup['accessibleLabeledBy'];
|
|
3093
3247
|
/** ID of an external label element (aria-labelledby) */
|
|
3094
3248
|
'accessibleLabeledBy'?: NLDDToggleButtonGroup['accessibleLabeledBy'];
|
|
3249
|
+
/** Marks the control as invalid. Announced with aria-invalid; nothing is drawn for it. */
|
|
3250
|
+
'invalid'?: NLDDToggleButtonGroup['invalid'];
|
|
3095
3251
|
/** Bubbles up from the changed button; detail: { selected: boolean, value: string } */
|
|
3096
3252
|
'onChange'?: (event: CustomEvent) => void;
|
|
3097
3253
|
};
|
|
@@ -3158,6 +3314,8 @@ declare module 'vue' {
|
|
|
3158
3314
|
'name'?: NLDDTokenField['name'];
|
|
3159
3315
|
/** Override translation keys; unset keys fall back to Dutch */
|
|
3160
3316
|
'translations'?: NLDDTokenField['translations'];
|
|
3317
|
+
/** Set by nldd-form-field. A consumer never writes this. */
|
|
3318
|
+
'describedByElements'?: NLDDTokenField['describedByElements'];
|
|
3161
3319
|
'internals'?: NLDDTokenField['internals'];
|
|
3162
3320
|
/** When the selected values change; detail: { values: string[] } */
|
|
3163
3321
|
'onChange'?: (event: CustomEvent) => void;
|
|
@@ -3227,7 +3385,7 @@ declare module 'vue' {
|
|
|
3227
3385
|
type NLDDTooltipProps = {
|
|
3228
3386
|
/** Tooltip text */
|
|
3229
3387
|
'text'?: NLDDTooltip['text'];
|
|
3230
|
-
/** Forces the tooltip visible, whatever hover or focus does. Use it for programmatic feedback ("Copied", for instance). Reset it to false to restore the hover
|
|
3388
|
+
/** Forces the tooltip visible, whatever hover or focus does. Use it for programmatic feedback ("Copied", for instance). Reset it to false to restore the hover behavior. */
|
|
3231
3389
|
'open'?: NLDDTooltip['open'];
|
|
3232
3390
|
/** Position: 'top' | 'bottom' | 'left' | 'right' (default: 'bottom'; automatically 'top' on touch devices) */
|
|
3233
3391
|
'placement'?: NLDDTooltip['placement'];
|
|
@@ -3238,47 +3396,47 @@ declare module 'vue' {
|
|
|
3238
3396
|
};
|
|
3239
3397
|
|
|
3240
3398
|
type NLDDTopNavigationBarProps = {
|
|
3241
|
-
/**
|
|
3399
|
+
/** Name of the website or application, above the menu bar. Empty leaves the title line out. */
|
|
3242
3400
|
'website-title'?: NLDDTopNavigationBar['websiteTitle'];
|
|
3243
|
-
/**
|
|
3401
|
+
/** Name of the website or application, above the menu bar. Empty leaves the title line out. */
|
|
3244
3402
|
'websiteTitle'?: NLDDTopNavigationBar['websiteTitle'];
|
|
3245
|
-
/**
|
|
3403
|
+
/** Hides the whole logo bar, wordmark included. */
|
|
3246
3404
|
'no-logo'?: NLDDTopNavigationBar['noLogo'];
|
|
3247
|
-
/**
|
|
3405
|
+
/** Hides the whole logo bar, wordmark included. */
|
|
3248
3406
|
'noLogo'?: NLDDTopNavigationBar['noLogo'];
|
|
3249
|
-
/**
|
|
3407
|
+
/** Limits the bar content to a max-width so it lines up with the page sections. 'full' fills the entire width, or pass your own CSS length. */
|
|
3250
3408
|
'width'?: NLDDTopNavigationBar['width'];
|
|
3251
|
-
/**
|
|
3409
|
+
/** Title of the wordmark next to the logo. Without it the logo stands alone. */
|
|
3252
3410
|
'logo-title'?: NLDDTopNavigationBar['logoTitle'];
|
|
3253
|
-
/**
|
|
3411
|
+
/** Title of the wordmark next to the logo. Without it the logo stands alone. */
|
|
3254
3412
|
'logoTitle'?: NLDDTopNavigationBar['logoTitle'];
|
|
3255
|
-
/**
|
|
3413
|
+
/** Subtitle under the wordmark title. Only visible when there is a wordmark. */
|
|
3256
3414
|
'logo-subtitle'?: NLDDTopNavigationBar['logoSubtitle'];
|
|
3257
|
-
/**
|
|
3415
|
+
/** Subtitle under the wordmark title. Only visible when there is a wordmark. */
|
|
3258
3416
|
'logoSubtitle'?: NLDDTopNavigationBar['logoSubtitle'];
|
|
3259
|
-
/**
|
|
3417
|
+
/** First supporting line under the wordmark title. Only visible when there is a wordmark. */
|
|
3260
3418
|
'logo-supporting-text-1'?: NLDDTopNavigationBar['logoSupportingText1'];
|
|
3261
|
-
/**
|
|
3419
|
+
/** First supporting line under the wordmark title. Only visible when there is a wordmark. */
|
|
3262
3420
|
'logoSupportingText1'?: NLDDTopNavigationBar['logoSupportingText1'];
|
|
3263
|
-
/**
|
|
3421
|
+
/** Second supporting line under the wordmark title. Only visible when there is a wordmark. */
|
|
3264
3422
|
'logo-supporting-text-2'?: NLDDTopNavigationBar['logoSupportingText2'];
|
|
3265
|
-
/**
|
|
3423
|
+
/** Second supporting line under the wordmark title. Only visible when there is a wordmark. */
|
|
3266
3424
|
'logoSupportingText2'?: NLDDTopNavigationBar['logoSupportingText2'];
|
|
3267
|
-
/** URL
|
|
3425
|
+
/** URL for the logo and wordmark. Without it they are not a link but an image with an accessible label. */
|
|
3268
3426
|
'logo-href'?: NLDDTopNavigationBar['logoHref'];
|
|
3269
|
-
/** URL
|
|
3427
|
+
/** URL for the logo and wordmark. Without it they are not a link but an image with an accessible label. */
|
|
3270
3428
|
'logoHref'?: NLDDTopNavigationBar['logoHref'];
|
|
3271
|
-
/** URL
|
|
3429
|
+
/** URL for the website title. Without it the title stays plain text. */
|
|
3272
3430
|
'website-href'?: NLDDTopNavigationBar['websiteHref'];
|
|
3273
|
-
/** URL
|
|
3431
|
+
/** URL for the website title. Without it the title stays plain text. */
|
|
3274
3432
|
'websiteHref'?: NLDDTopNavigationBar['websiteHref'];
|
|
3275
|
-
/** URL
|
|
3433
|
+
/** URL of the back button. Without it a click fires the `back-click` event, so the consumer navigates itself. */
|
|
3276
3434
|
'back-href'?: NLDDTopNavigationBar['backHref'];
|
|
3277
|
-
/** URL
|
|
3435
|
+
/** URL of the back button. Without it a click fires the `back-click` event, so the consumer navigates itself. */
|
|
3278
3436
|
'backHref'?: NLDDTopNavigationBar['backHref'];
|
|
3279
|
-
/**
|
|
3437
|
+
/** Text of the back button. The button appears as soon as back-text or back-href is set; without text it falls back to the translation ("Terug"). */
|
|
3280
3438
|
'back-text'?: NLDDTopNavigationBar['backText'];
|
|
3281
|
-
/**
|
|
3439
|
+
/** Text of the back button. The button appears as soon as back-text or back-href is set; without text it falls back to the translation ("Terug"). */
|
|
3282
3440
|
'backText'?: NLDDTopNavigationBar['backText'];
|
|
3283
3441
|
'translations'?: NLDDTopNavigationBar['translations'];
|
|
3284
3442
|
};
|
|
@@ -3306,9 +3464,9 @@ declare module 'vue' {
|
|
|
3306
3464
|
'dismiss-text'?: NLDDTopTitleBar['dismissText'];
|
|
3307
3465
|
/** Text of the dismiss button. Empty hides that button. */
|
|
3308
3466
|
'dismissText'?: NLDDTopTitleBar['dismissText'];
|
|
3309
|
-
/** Fired when the back button is clicked (not fired when back-href is set) */
|
|
3467
|
+
/** Fired when the back button is clicked (not fired when back-href is set). It bubbles and is composed, so an ancestor hears it too, which is how nldd-navigation-split-view lets a consumer catch the back of any pane in one place. Listen in one place then: bound to both this bar and an ancestor, a single press runs the handler twice. */
|
|
3310
3468
|
'onBack'?: (event: CustomEvent) => void;
|
|
3311
|
-
/** Fired when the dismiss button is clicked */
|
|
3469
|
+
/** Fired when the dismiss button is clicked. Bubbles and is composed, with the same caveat as `back`. */
|
|
3312
3470
|
'onDismiss'?: (event: CustomEvent) => void;
|
|
3313
3471
|
};
|
|
3314
3472
|
|
|
@@ -3355,38 +3513,70 @@ declare module 'vue' {
|
|
|
3355
3513
|
'height'?: NLDDTwoThirdsOneThirdSection['height'];
|
|
3356
3514
|
};
|
|
3357
3515
|
|
|
3516
|
+
type NLDDValidationItemProps = {
|
|
3517
|
+
/** Regular expression the value has to contain. Not anchored, unlike the native `pattern`: `[A-Z]` means "has a capital in it". */
|
|
3518
|
+
'match'?: NLDDValidationItem['match'];
|
|
3519
|
+
/** Fewest characters the value may have. */
|
|
3520
|
+
'minlength'?: NLDDValidationItem['minlength'];
|
|
3521
|
+
/** Most characters the value may have. */
|
|
3522
|
+
'maxlength'?: NLDDValidationItem['maxlength'];
|
|
3523
|
+
/** The value may not be empty. Use it on a field whose other rules would pass an empty value. */
|
|
3524
|
+
'required'?: NLDDValidationItem['required'];
|
|
3525
|
+
/** Show this item before there is a verdict, whatever the list says. */
|
|
3526
|
+
'hint'?: NLDDValidationItem['hint'];
|
|
3527
|
+
/** Whether the value fails this item. Managed by the list; do not set it yourself. */
|
|
3528
|
+
'unmet'?: NLDDValidationItem['unmet'];
|
|
3529
|
+
/** Whether the item is on screen. Managed by the list. */
|
|
3530
|
+
'visible'?: NLDDValidationItem['visible'];
|
|
3531
|
+
/** Whether this item judges itself, or waits for the app to name it. */
|
|
3532
|
+
'hasRule'?: NLDDValidationItem['hasRule'];
|
|
3533
|
+
};
|
|
3534
|
+
|
|
3535
|
+
type NLDDValidationListProps = {
|
|
3536
|
+
/** Id of the control this list is about. Not needed inside an nldd-form-field, which hands its own control over. */
|
|
3537
|
+
'for'?: NLDDValidationList['for'];
|
|
3538
|
+
/** Show every item before there is a verdict, as the requirements of the field. Overridable per item. */
|
|
3539
|
+
'hint'?: NLDDValidationList['hint'];
|
|
3540
|
+
/** Drop the hints, because this field has been judged. Turned on by the list itself once its control is `invalid`, and settable by hand. What turns red follows `invalid`, not this. */
|
|
3541
|
+
'judging'?: NLDDValidationList['judging'];
|
|
3542
|
+
/** The control this list is about. Set by the wrapping nldd-form-field, which already answers "which control is this field about" for the label and the description. A `for` of its own wins, and setting this property directly is what a test or a story does. */
|
|
3543
|
+
'control'?: NLDDValidationList['control'];
|
|
3544
|
+
/** The value to check, when there is no control to read it from. */
|
|
3545
|
+
'value'?: NLDDValidationList['value'];
|
|
3546
|
+
};
|
|
3547
|
+
|
|
3358
3548
|
type NLDDWindowProps = {
|
|
3359
|
-
/**
|
|
3549
|
+
/** Modeless (no backdrop or focus trap); the window is modal by default */
|
|
3360
3550
|
'modeless'?: NLDDWindow['modeless'];
|
|
3361
|
-
/**
|
|
3551
|
+
/** A click on the backdrop does not close the window. For windows where dismissing by accident costs work: a wizard, a form with filled-in fields. Escape and the dismiss button keep working. */
|
|
3362
3552
|
'no-light-dismiss'?: NLDDWindow['noLightDismiss'];
|
|
3363
|
-
/**
|
|
3553
|
+
/** A click on the backdrop does not close the window. For windows where dismissing by accident costs work: a wizard, a form with filled-in fields. Escape and the dismiss button keep working. */
|
|
3364
3554
|
'noLightDismiss'?: NLDDWindow['noLightDismiss'];
|
|
3365
|
-
/** (
|
|
3555
|
+
/** (required) Accessible name (aria-label). Falls back to the i18n default ('Venster') when unset. Always pass a unique, descriptive name per window. */
|
|
3366
3556
|
'accessible-label'?: NLDDWindow['accessibleLabel'];
|
|
3367
|
-
/** (
|
|
3557
|
+
/** (required) Accessible name (aria-label). Falls back to the i18n default ('Venster') when unset. Always pass a unique, descriptive name per window. */
|
|
3368
3558
|
'accessibleLabel'?: NLDDWindow['accessibleLabel'];
|
|
3369
|
-
/** Override translation keys; unset keys
|
|
3559
|
+
/** Override translation keys; unset keys fall back to the Dutch default. */
|
|
3370
3560
|
'translations'?: NLDDWindow['translations'];
|
|
3371
|
-
/** CSS top
|
|
3561
|
+
/** CSS top position of the top edge (e.g. '0', '100px') */
|
|
3372
3562
|
'top'?: NLDDWindow['top'];
|
|
3373
|
-
/** CSS left
|
|
3563
|
+
/** CSS left position of the left edge */
|
|
3374
3564
|
'left'?: NLDDWindow['left'];
|
|
3375
|
-
/** CSS right
|
|
3565
|
+
/** CSS right value */
|
|
3376
3566
|
'right'?: NLDDWindow['right'];
|
|
3377
|
-
/** CSS bottom
|
|
3567
|
+
/** CSS bottom value */
|
|
3378
3568
|
'bottom'?: NLDDWindow['bottom'];
|
|
3379
|
-
/**
|
|
3569
|
+
/** Centers both axes on the viewport. Overridable per axis: `centered top="0"` is horizontally centered, top aligned. Mirrors CSS `place-items: center` with `align-items`/`justify-items` overrides. */
|
|
3380
3570
|
'centered'?: NLDDWindow['centered'];
|
|
3381
|
-
/** CSS width (
|
|
3571
|
+
/** CSS width (default: var(--components-window-default-width)) */
|
|
3382
3572
|
'width'?: NLDDWindow['width'];
|
|
3383
|
-
/** CSS height (
|
|
3573
|
+
/** CSS height (default: content height) */
|
|
3384
3574
|
'height'?: NLDDWindow['height'];
|
|
3385
3575
|
/** Color scheme (default 'inherit'). */
|
|
3386
3576
|
'scheme'?: NLDDWindow['scheme'];
|
|
3387
|
-
/**
|
|
3577
|
+
/** When the window opens */
|
|
3388
3578
|
'onOpen'?: (event: CustomEvent) => void;
|
|
3389
|
-
/**
|
|
3579
|
+
/** When the window has fully closed. Does not bubble: overlays can sit inside each other, and a listener on one window should not also hear the form that opened it. */
|
|
3390
3580
|
'onClose'?: (event: CustomEvent) => void;
|
|
3391
3581
|
};
|
|
3392
3582
|
|
|
@@ -3405,7 +3595,7 @@ declare module 'vue' {
|
|
|
3405
3595
|
'nldd-banner': DefineComponent<NLDDBannerProps>;
|
|
3406
3596
|
/** A vertical split view with a main area and an unlimited number of bar panels. Each child determines its order per breakpoint via sm-order, md-order, and lg-order. Children without order attributes are sorted by DOM order. All bars are in normal flow at every breakpoint and stack vertically. A divider is drawn only where the main pane meets an adjacent bar — directly above and/or below main — at every breakpoint (including sm). Two stacked bars on the same side never get a divider between them, so a toolbar and a tab-bar read as one visual unit. Consumers never manage dividers themselves. Give each bar a unique slot name (e.g. slot="toolbar", slot="status-bar"). Use slot="bar-1", slot="bar-2" if no meaningful name applies. The main panel always uses slot="main". Sets --context-parent-background-color, which cascades to all descendants. */
|
|
3407
3597
|
'nldd-bar-split-view': DefineComponent<NLDDBarSplitViewProps>;
|
|
3408
|
-
/**
|
|
3598
|
+
/** Shows a quote with an optional source attribution. */
|
|
3409
3599
|
'nldd-blockquote': DefineComponent<NLDDBlockquoteProps>;
|
|
3410
3600
|
/** Use a box to visually group related components in a distinct, contained region. Boxes draw attention to a set of controls or content that belong together, helping users understand their relationship at a glance. */
|
|
3411
3601
|
'nldd-box': DefineComponent<NLDDBoxProps>;
|
|
@@ -3419,7 +3609,7 @@ declare module 'vue' {
|
|
|
3419
3609
|
'nldd-button-bar-divider': DefineComponent<anonymous_0Props>;
|
|
3420
3610
|
/** A container for grouping related buttons together, either horizontally or vertically. */
|
|
3421
3611
|
'nldd-button-group': DefineComponent<NLDDButtonGroupProps>;
|
|
3422
|
-
/**
|
|
3612
|
+
/** A visually bounded card with optional header, body and footer sections. The card is elevated by default. Padding is left to nested containers. With `href` the whole card becomes a link (an overlay anchor across the card), with `button` a button (an overlay button that fires a plain, composed `click`, so a click listener or htmx attribute on the card itself works directly, and Enter/Space work natively). `href` wins when both are set. Nested interactive content, footer buttons for instance, has to be lifted above it with `position: relative; z-index: 1` to stay clickable. */
|
|
3423
3613
|
'nldd-card': DefineComponent<NLDDCardProps>;
|
|
3424
3614
|
/** A generic cell for wrapping arbitrary content in a list item. Controls vertical alignment and sizing without imposing content opinions. `vertical-alignment="center"` (default) stretches the cell to fill the full row height and centers its content within that space. Use `min-height` to set a minimum centered region. For strict top alignment without a minimum height, use `vertical-alignment="top"`. */
|
|
3425
3615
|
'nldd-cell': DefineComponent<NLDDCellProps>;
|
|
@@ -3436,13 +3626,13 @@ declare module 'vue' {
|
|
|
3436
3626
|
'nldd-combo-box': DefineComponent<NLDDComboBoxProps>;
|
|
3437
3627
|
/** A simple layout primitive: pick a layout mode, give it a gap, optionally align contents, and add padding. Padding can be set for all sides, per axis (inline/block), or per individual side. Specificity: per side > per axis > all sides. Responsive padding and gap have sm/md/lg variants. Each variant emits both an @media (viewport) and @container (layout-container) query. When inside a layout-container the @container query wins; otherwise the @media query provides the viewport-based fallback. Layout modes: - `stack` (default): block items, stacked vertically. The "what you expect from DOM flow" mode. - `row`: flex row, no wrapping. Items shrink or overflow. - `wrap`: flex row, items wrap to new lines. - `grid`: CSS grid, auto-fit columns at min 280px wide. - `columns`: CSS multi-column flow, 280px minimum column width, items don't split across column breaks. Alignment maps to the layout's natural axis: - `stack`: vertical = main-axis (justify-content), horizontal = cross-axis (align-items) - `row` / `wrap`: horizontal = main-axis, vertical = cross-axis - `grid`: horizontal = justify-items, vertical = align-items (per cell) - `columns`: alignment props have no effect (CSS multicol doesn't expose alignment) Item order is set per-child via attributes on the slotted children themselves: `<child order="3">` for a fixed position, or `<child sm-order="N">` / `<child md-order="N">` / `<child lg-order="N">` to override per breakpoint (resolved against THIS container's width via @container queries, same scope as the responsive padding/gap). The container observes slot changes and child attribute mutations and bridges these to `--_slot-order` / `--_slot-sm-order` / etc. custom properties on each child's inline style, which the container's CSS then reads via `::slotted(*)` inside @container queries. Cascade: `sm-order` falls back to `order` falls back to `0` at sm (and analogously for md/lg). No-op for `layout="columns"` (CSS multicol has no per-item ordering hook). The `column-count` attribute (1-8) forces an exact column count for `layout="grid"` (overrides auto-fit) and `layout="columns"` (overrides the natural width-driven count). `sm-column-count` / `md-column-count` / `lg-column-count` resolve against this container's OWN width via an `@container (...)` query on the host — not against the viewport. That lets a footer in a narrow sidebar choose its own column count independent of the surrounding page width. `layout="lanes"` packs items into balanced columns using native CSS grid lanes where supported, falling back to CSS multicol (column-order) elsewhere. CSS-only, no JS. Honours `gap` on both axes and `column-count`. */
|
|
3438
3628
|
'nldd-container': DefineComponent<NLDDContainerProps>;
|
|
3439
|
-
/**
|
|
3629
|
+
/** A text field for a date, with an optional calendar in a popover. The value is always ISO (yyyy-mm-dd); on screen it shows the Dutch notation (dd-mm-yyyy). Typing is not masked: input is accepted generously and normalized only when the field is left. Error messages belong to nldd-form-field, not here. This field reflects only `invalid` / `valid`, like nldd-text-field. */
|
|
3440
3630
|
'nldd-date-field': DefineComponent<NLDDDateFieldProps>;
|
|
3441
|
-
/**
|
|
3631
|
+
/** A calendar for picking a date or a period. The component works on its own (inline on a page, in a filter panel) and also sits in the popover of nldd-date-field. Values are always ISO (yyyy-mm-dd). With `range` the user picks a start and an end date in two steps. */
|
|
3442
3632
|
'nldd-date-picker': DefineComponent<NLDDDatePickerProps>;
|
|
3443
3633
|
/** A cell component for displaying a title-description pair in lists. `vertical-alignment="center"` (default) stretches the cell to fill the full row height and centers its content within that space. Use `min-height` to set a minimum centered region. For strict top alignment without a minimum height, use `vertical-alignment="top"`. */
|
|
3444
3634
|
'nldd-description-cell': DefineComponent<NLDDDescriptionCellProps>;
|
|
3445
|
-
/**
|
|
3635
|
+
/** A rule that visually separates sections of content. */
|
|
3446
3636
|
'nldd-divider': DefineComponent<NLDDDividerProps>;
|
|
3447
3637
|
/** A horizontal tab bar for document tabs with an automatic overflow button and an end slot for action buttons. Exports both NLDDDocumentTabBar and NLDDDocumentTabBarItem. */
|
|
3448
3638
|
'nldd-document-tab-bar': DefineComponent<NLDDDocumentTabBarProps>;
|
|
@@ -3453,20 +3643,19 @@ declare module 'vue' {
|
|
|
3453
3643
|
'nldd-dropdown': DefineComponent<NLDDDropdownProps>;
|
|
3454
3644
|
/** A file picker that reads as one control: an nldd-button flush in the corner of a tinted surface, the chosen file next to it, and a dismiss button to clear it again. It wraps a hidden native `<input type="file">`, which is what makes the picker open at all — a file dialog only opens from a user gesture on a real input. The surface deliberately does not look like an input field. A border with field semantics promises you can type into it; here you can only press a button, so it uses button and surface colors instead of `--semantics-input-fields-*`. The button keeps its own tinted background and therefore sits a shade darker in the surface, which is what marks it as the thing to press. Several files are summarized, not listed: "3 bestanden" with a single cross that clears all of them. Every pick replaces the whole FileList, and rebuilding it to add or drop one file means going through DataTransfer, which does not deduplicate (even the same File object twice yields two entries) — and a File has no id, so deduplicating would come down to guessing from name, size and last-modified. A list with a cross per file would promise an edit the platform does not support. A page that does want to show the files renders its own list from the `File[]` in the change event. */
|
|
3455
3645
|
'nldd-file-field': DefineComponent<NLDDFileFieldProps>;
|
|
3456
|
-
/** Nederlandse Digitale Dienst Form Component Plain custom element (extends HTMLElement, no Lit)
|
|
3646
|
+
/** Nederlandse Digitale Dienst Form Component Plain custom element (extends HTMLElement, no Lit), required for light-DOM autofill. Renders a real <form> element in the LIGHT DOM around its children. Chrome's autofill engine looks for native <input> elements that have a <form> ancestor in the light DOM; with shadow-DOM inputs it can't find them, so we keep this component shadow-less. **Differs from other nldd-* components:** - No shadowRoot: all children live in the light DOM (inside the inner <form>) - No Lit: a plain HTMLElement with manual attribute mirroring - **Requires a global stylesheet import**: the vertical rhythm rules live in `dist/css/form.css` (or `global.css`), not in a component-specific shadow stylesheet. Import it as part of your app's global CSS bundle. **Two usage modes:** 1. **Auto-wrap** (default): write children directly. Component creates a `<form>` element and migrates children into it via MutationObserver. Simplest API. 2. **User-provided form** (framework-friendly): write your own `<form>` as direct child. Component detects it, takes over attribute mirroring, and skips the migration. Children stay where your framework puts them, so there is no DOM shuffling to conflict with React/Vue/Angular reconciliation. **Framework interop:** In auto-wrap mode every direct child is moved into the inner form through a MutationObserver. That works fine for most React/Vue use cases, because frameworks only mutate the DOM when their virtual DOM changes. For edge cases (animation libraries that track DOM position, SSR hydration mismatches, frameworks that actively check sibling positions) use **user-provided form** mode instead. For programmatic manipulation, use the `form` getter so you work with the inner `<form>` element directly: const inner = document.querySelector('nldd-form').form; inner.checkValidity(); inner.appendChild(myInput); // skips the migration overhead */
|
|
3457
3647
|
'nldd-form': DefineComponent<NLDDFormProps>;
|
|
3458
|
-
/**
|
|
3648
|
+
/** A layout wrapper for the action buttons at the bottom of a form (typically a submit button or a button group). Follows the same responsive layout as `nldd-form-field`: with `label-alignment="right"` or `"left"` the content gets the same indent as the fields above it, thanks to a `::before` pseudo-element that acts as the spacer column where the label would sit. Inherits `label-alignment` automatically from a wrapping `<nldd-form>`: the form propagates its own `label-alignment` as `form-label-alignment` to descendant `nldd-form-actions` (and `nldd-form-field`) through a MutationObserver. An explicit `label-alignment` on the form-actions itself wins through the CSS cascade, and the form code never touches the `label-alignment` attribute of the descendant. <nldd-form label-alignment="right"> <nldd-form-field>...</nldd-form-field> <nldd-form-actions> <nldd-button-group> <nldd-button variant="primary" type="submit" text="Opslaan"></nldd-button> </nldd-button-group> </nldd-form-actions> </nldd-form> */
|
|
3459
3649
|
'nldd-form-actions': DefineComponent<NLDDFormActionsProps>;
|
|
3460
3650
|
'nldd-form-field': DefineComponent<NLDDFormFieldProps>;
|
|
3461
|
-
'nldd-form-field-error-text': DefineComponent<NLDDFormFieldErrorTextProps>;
|
|
3462
3651
|
'nldd-form-field-help-text': DefineComponent<NLDDFormFieldHelpTextProps>;
|
|
3463
|
-
/** Nederlandse Digitale Dienst Form Section Component Plain custom element (extends HTMLElement, no Lit)
|
|
3652
|
+
/** Nederlandse Digitale Dienst Form Section Component Plain custom element (extends HTMLElement, no Lit). The light-DOM render works around an NVDA + Firefox a11y bug where a shadow-DOM <fieldset> + <legend> is not reliably announced as the group label for slotted controls. A native fieldset/legend in the light DOM works correctly across all AT/browser combinations. **Differs from shadow components:** - No shadowRoot: all children live in the light DOM (inside the rendered <fieldset>). - No Lit: a plain HTMLElement with manual DOM mutation. - **Requires a global stylesheet import**: `dist/css/form-section.css` (or `global.css`). Form-section has no shadow stylesheet. Renders to: <nldd-form-section> <fieldset class="form-section"> <legend class="form-section__header"> <span class="form-section__title">Title</span> <span class="form-section__subtitle">Subtitle</span> </legend> <div class="form-section__main"> [user's children] </div> </fieldset> </nldd-form-section> **Accessibility note**: the title renders as a `<legend>`. Semantically that is a **group label**, not a heading. Screen readers announce it when the user enters the fieldset, but users jumping through headings with the H key skip it. Visually it looks like a heading, so use this component for *form grouping*, not as page structure. For real page headings, use a separate heading element above the form. **Supporting-text length**: the subtitle sits as a `<span>` inside the `<legend>` so a screen reader reads it along as the group label. Side effect: on every field entry within the section, the whole legend (title + subtitle) is spoken again. Keep `supporting-text` short (roughly 80 characters or less) and use it to introduce the group ("Vul je adresgegevens in"), not for detailed instructions. For a longer explanation on one specific field, use `nldd-form-field-help-text` on that field. <nldd-form> <nldd-form-section text="Persoonsgegevens" supporting-text="Vul je gegevens in."> <nldd-form-field label="Voornaam">...</nldd-form-field> <nldd-form-field label="Achternaam">...</nldd-form-field> </nldd-form-section> <nldd-form-section text="Adres"> <nldd-form-field label="Straat">...</nldd-form-field> </nldd-form-section> <nldd-form-actions>...</nldd-form-actions> </nldd-form> */
|
|
3464
3653
|
'nldd-form-section': DefineComponent<NLDDFormSectionProps>;
|
|
3465
3654
|
/** A section that spans the full width without horizontal padding. Useful for background colors, images, or other content that runs edge to edge. Vertical padding and gap adjust via container queries. */
|
|
3466
3655
|
'nldd-full-bleed-section': DefineComponent<NLDDFullBleedSectionProps>;
|
|
3467
3656
|
/** A page header with a media area and a text panel (the main) that can stand in six positions. Every area is rectangular. With `main-width="full"` the media area sits as its own strip above or below the panel rather than behind it. On mobile the media always stacks above the full-width panel. Without media the main fills the whole area; with `main-background="base"` that area gets a border so it stays visible on the base surface. `main-background` gives the panel a surface color from the filled categories. Those carry a pure white or black content color along, so components with `color="inherit"` (title, rich-text) are guaranteed to keep their contrast. */
|
|
3468
3657
|
'nldd-hero': DefineComponent<NLDDHeroProps>;
|
|
3469
|
-
/** A customizable icon component that renders SVG icons from a predefined library. Icons are decorative by default: the host gets `aria-hidden="true"` automatically. If you want the icon to be announced by assistive tech, set `aria-hidden="false"` on the consumer side together with an `aria-label`. Sizing: the icon fills whatever sizes it — an `nldd-icon-cell`, a button, a menu item. `size="full"` names that default explicitly. `size="inherit"` makes it follow the surrounding text (1em), for an icon set inline in a sentence. Any spacer-aligned number (16–96) pins a fixed dimension. Reach for `inherit` rather than a global `nldd-icon { width: 1em }` rule in the consumer: such a rule wins over the component's own :host styling and so also shrinks the icons that a cell or button was already sizing correctly. Color: by default the icon inherits its parent's `color`. Set `color` to one of the functional semantics (`primary-content`, `secondary-content`, `accent`, `critical`, `warning`, `success`) or a rijkskleur (`lintblauw`, `paars`, `groen`, …). For
|
|
3658
|
+
/** A customizable icon component that renders SVG icons from a predefined library. Icons are decorative by default: the host gets `aria-hidden="true"` automatically. If you want the icon to be announced by assistive tech, set `aria-hidden="false"` on the consumer side together with an `aria-label`. Sizing: the icon fills whatever sizes it — an `nldd-icon-cell`, a button, a menu item. `size="full"` names that default explicitly. `size="inherit"` makes it follow the surrounding text (1em), for an icon set inline in a sentence. Any spacer-aligned number (16–96) pins a fixed dimension. Reach for `inherit` rather than a global `nldd-icon { width: 1em }` rule in the consumer: such a rule wins over the component's own :host styling and so also shrinks the icons that a cell or button was already sizing correctly. Color: by default the icon inherits its parent's `color`. Set `color` to one of the functional semantics (`primary-content`, `secondary-content`, `accent`, `critical`, `warning`, `success`) or a rijkskleur (`lintblauw`, `paars`, `groen`, …). For a color the design system cannot know — the jacket of a cable, a color someone picked — set `custom-color` to any CSS color. */
|
|
3470
3659
|
'nldd-icon': DefineComponent<NLDDIconProps>;
|
|
3471
3660
|
'nldd-icon-button': DefineComponent<NLDDIconButtonProps>;
|
|
3472
3661
|
/** A cell component for displaying icons in lists with configurable alignment and size. Set `icon` to render an `nldd-icon` by name, or slot custom content as an escape hatch for non-standard iconography. */
|
|
@@ -3477,23 +3666,23 @@ declare module 'vue' {
|
|
|
3477
3666
|
'nldd-image': DefineComponent<NLDDImageProps>;
|
|
3478
3667
|
/** An inline status component for empty state, confirmations and feedback. Fills the container and has no minimum width. */
|
|
3479
3668
|
'nldd-inline-dialog': DefineComponent<NLDDInlineDialogProps>;
|
|
3480
|
-
/**
|
|
3669
|
+
/** A guided-discovery coach mark. Put a control (nldd-search-field, for instance) in the default slot. While `active` is set, the component lifts a callout (title + supporting text + dismiss) into the top layer through the Popover API (`popover="manual"`), anchored to the control with Floating UI. No backdrop, non-modal: the background stays interactive. The control itself stays where it is in the flow. With `dismissable` the component manages closing and fires nldd-close: - the user performs the suggested interaction on the control -> close{completed} - the dismiss button -> close{dismissed} - a click or key press OUTSIDE the coach mark -> close{ignored} Without `dismissable` nothing closes by itself (no button, no outside or slot click); the consumer then decides when to close through `active` or `complete()`. `complete()` always works and closes with close{completed}, for example only once a real search has been submitted. */
|
|
3481
3670
|
'nldd-just-in-time-education': DefineComponent<NLDDJustInTimeEducationProps>;
|
|
3482
|
-
/**
|
|
3671
|
+
/** Shows a key combination (such as Cmd+K or Ctrl+Shift+P) in one combined container with a semantic <kbd> element per key. On touch-only devices (no hover-capable input) the shortcut is hidden by default, because it cannot be invoked there. Use the `always-visible` attribute when the shortcut is purely informative and should stay visible. For cross-platform shortcuts you can set `mac-keys`, `windows-keys` and `linux-keys`. The component picks the right one from the detected OS, with `keys` as the fallback for unknown platforms. */
|
|
3483
3672
|
'nldd-keyboard-shortcut': DefineComponent<NLDDKeyboardShortcutProps>;
|
|
3484
|
-
/** Hyperlink component
|
|
3673
|
+
/** Hyperlink component with two modes: 1. **Standalone (sized)**: set `size="xs"|"sm"|"md"|"lg"` for menus, action areas or overviews. Fixed text size, `display: inline-flex` with `gap` for icon spacing. 2. **Inline (inherit)**: leave `size` out or set `size="inherit"` explicitly. The link inherits `font-size`, `line-height` and `font-family` from its surroundings. Text wraps naturally across lines (`display: inline`). Icons work here too; the natural whitespace between icon and text provides the spacing. For links in CMS or markdown output, where the `<a>` arrives as HTML, `<nldd-rich-text>` with a raw `<a>` remains the route to take. */
|
|
3485
3674
|
'nldd-link': DefineComponent<NLDDLinkProps>;
|
|
3486
|
-
/** A container for `nldd-list-item` elements. The `type` attribute switches the list's a11y role and behavior: - `list` (default) — `role="list"`, items `role="listitem"`. Reorderable allowed. - `tree` — `role="tree"`, items `role="treeitem"`. Branch rows put their child rows in their own `slot="children"`, which the item renders as a `role="group"`. Level, position and set size are NOT authored: the nesting represents the hierarchy, so assistive technology derives them. A branch row must carry `expanded`; the group is hidden while it is false. Visual indentation is the consumer's — repeat a spacer-cell per level. Comes with its own keyboard, see "Tree" below. - `navigation` — host `role="navigation"`, items with `selected` get `aria-current="page"` on their inner `<a>` or `<button>`. - `listbox` — an accessible, filterable listbox (combobox pattern). The list renders its OWN search input (`role="combobox"`) pinned above the options; `.list__items` becomes `role="listbox"` and items become `role="option"`. Focus stays in the input, the active option moves via `aria-activedescendant`, and filtering is consumer-managed via the `input` event (toggle `[hidden]` on items). See "Listbox" below. Selection state is consumer-managed: the list never mutates `selected` itself. In `type="listbox"` the list owns a native `<input role="combobox">` (mirroring how `nldd-combo-box` wires an input to a slotted listbox). Keyboard, handled on the input so focus never leaves it: - ArrowDown / ArrowUp — move the active option among the VISIBLE (non-`[hidden]`) options (wrap around). - Home / End — first / last visible option. - Enter — activate the active option by triggering its inner action (a link navigates, a button fires the consumer's handler). Selection stays consumer-managed. - Escape — clear the search value (and refire `input`). On every active change the input's `aria-activedescendant` is set to the active option's id and the option is scrolled into view. The active option (`_highlighted` on the item, a highlight) is distinct from `selected`. Filtering is the consumer's job: listen to `input` (`{ detail: { value } }`) and toggle `[hidden]` on items; after the visible set changes the list resets the active option to the first visible one. `reorderable` and
|
|
3675
|
+
/** A container for `nldd-list-item` elements. The `type` attribute switches the list's a11y role and behavior: - `list` (default) — `role="list"`, items `role="listitem"`. Reorderable allowed. - `tree` — `role="tree"`, items `role="treeitem"`. Branch rows put their child rows in their own `slot="children"`, which the item renders as a `role="group"`. Level, position and set size are NOT authored: the nesting represents the hierarchy, so assistive technology derives them. A branch row must carry `expanded`; the group is hidden while it is false. Visual indentation is the consumer's — repeat a spacer-cell per level. Comes with its own keyboard, see "Tree" below. - `navigation` — host `role="navigation"`, items with `selected` get `aria-current="page"` on their inner `<a>` or `<button>`. - `form` — rows that are not actions themselves: the controls inside them are. A row of a label and a field, a switch, a menu button, or a value you cannot change at all. Semantically the same as `list` (`role="list"`, `role="listitem"`), and everything visual is unchanged; what falls away is the keyboard of a list you walk through. No arrow navigation, so no promise of it either, and no tab stop on the row: Tab goes straight to the controls, in source order, the way it does in any form. Rows that ARE actions (`href`, `button`, `checkbox`, or a segment) contradict that and warn in development. SwiftUI draws the same line between `List` and `Form`, for the same reason. - `listbox` — an accessible, filterable listbox (combobox pattern). The list renders its OWN search input (`role="combobox"`) pinned above the options; `.list__items` becomes `role="listbox"` and items become `role="option"`. Focus stays in the input, the active option moves via `aria-activedescendant`, and filtering is consumer-managed via the `input` event (toggle `[hidden]` on items). See "Listbox" below. Selection state is consumer-managed: the list never mutates `selected` itself. A list you walk through answers to the arrow keys, and there is no attribute to switch that on. Whether the keys do something is not a property of one list: it is what a reader may assume about all of them, and a per-list setting made that unknowable from the outside. It follows the type, which you can see before you touch a key. - ArrowUp / ArrowDown — move focus between the rows there is something to do with. A row of nothing but text is skipped, because focus that leads nowhere is a dead end. - Home / End — the first / last of those rows. - Tab — the list is ONE tab stop, so Tab moves past it rather than through it. Within the current row Tab walks that row's own controls: a chevron beside a checkbox, a menu button at the end. The same controls in the other rows are held out of the tab order (`tabindex="-1"`, or `no-tab` on a design-system control that keeps its tab stop in its own shadow root), and so are this row's once focus leaves the list, so tabbing back in lands on the row again. - Escape — out of a control the row holds, back onto the row. One level up, where Shift+Tab is one step back. On the row itself the list claims nothing, so Escape carries on to whatever holds the list, and a control showing a menu keeps the first press for closing that menu. While focus sits in a control a row holds, the list stands down: those keys are the control's, and a list that took them anyway would pull focus out of a combo box or a text field mid-word. What the row IS — its own link, button or segments — keeps answering here. Arrows move focus only; selection stays consumer-managed. Three types answer differently, and all three say so on screen before you touch a key: a listbox runs its keyboard from its search field, a reorderable list moves rows with the arrows, and a form has no rows to move between at all. In `type="listbox"` the list owns a native `<input role="combobox">` (mirroring how `nldd-combo-box` wires an input to a slotted listbox). Keyboard, handled on the input so focus never leaves it: - ArrowDown / ArrowUp — move the active option among the VISIBLE (non-`[hidden]`) options (wrap around). - Home / End — first / last visible option. - Enter — activate the active option by triggering its inner action (a link navigates, a button fires the consumer's handler). Selection stays consumer-managed. - Escape — clear the search value (and refire `input`). On every active change the input's `aria-activedescendant` is set to the active option's id and the option is scrolled into view. The active option (`_highlighted` on the item, a highlight) is distinct from `selected`. Filtering is the consumer's job: listen to `input` (`{ detail: { value } }`) and toggle `[hidden]` on items; after the visible set changes the list resets the active option to the first visible one. `reorderable` and the roving arrow keys are ignored in listbox mode (listbox has its own keyboard). A tree adds to that keyboard, and counts the rows of an open branch as part of the order the arrows walk: - ArrowRight — opens a closed branch; on an open one it steps to its first child. - ArrowLeft — closes an open branch; on a leaf it steps out to the parent row. - Enter — follows the row: its own link or button, or on a segmented branch the first action that is not the chevron. A branch with only a chevron folds instead. - Space — open and close, the same as Right and Left. Only while focus sits on the row itself: a row that is its own control, and a segmented action you tabbed into, handle both keys themselves. Opening and closing runs through the row's own disclosure control — the segment marked `disclosure`, or the row itself when it is a button. The list activates that control rather than writing `expanded`, so the state keeps being set in one place: the consumer's handler. A row that is a link is never activated this way, since that would navigate away. The tree is one tab stop. Focus lands on the row itself when the row has no control of its own, because that is where `treeitem` sits and it makes assistive technology announce the row rather than a button inside it. Tab then walks the controls of THAT row (a chevron beside a checkbox, say) and leaves the list after the last one. A deliberate deviation: strictly speaking a row with several controls is a `treegrid`, not a `tree`. We keep the tree semantics — level and set size are what matters here, not rows and columns — and borrow the "Tab within the row" behavior from the grid pattern. Should a tree with real columns come up, that is when `treegrid` earns its own type. On reorder (type="list" + reorderable), the list dispatches `nldd-reorder` with `fromIndex` / `toIndex` and expects the consumer to mutate the DOM (or their data model that renders the DOM). Focus is restored to the moved item's drag handle via a single `requestAnimationFrame` — this assumes the consumer reorders **synchronously** in the event handler. Async renderers (React, Vue, …) that update the DOM on a later tick will miss the focus restore and should manage focus themselves after their render commits. */
|
|
3487
3676
|
'nldd-list': DefineComponent<NLDDListProps>;
|
|
3488
|
-
/** A row within an `nldd-list`. Renders as a link when `href` is set, as a checkbox when `checkbox` is set, as a button when `button` is set, or as a plain container otherwise. All cells and
|
|
3677
|
+
/** A row within an `nldd-list`. Renders as a link when `href` is set, as a checkbox when `checkbox` is set, as a button when `button` is set, or as a plain container otherwise. All cells and segments share one flat slot, in source order. Two rules govern every row: 1. State fills always paint the WIDENED row geometry — the row box extended by the indicator inline inset on both sides — whether or not the row is interactive. Paint never differs between a selected plain row and a selected interactive row. 2. The widened strip belongs to the ROW, never to a segment. A row with any action (its own `href`/`button`/`checkbox`, or a slotted segment) pulls itself outward (`is-interactive` host class → negative inline margin) and pads the row block back by the same amount, so content stays on the grid. A row-wide action owns that padding itself, making the whole widened box one hit area; slotted segments stay in the grid, so their footprint is position-independent and tree columns line up at any depth. By default the divider starts at the row's first text or title cell, so the line lands on the words rather than on whatever leads up to them — an icon, an avatar, a checkbox, or the spacers a tree indents with. Rows of different shapes then still line their dividers up with each other, and a tree's dividers step inward with its indentation. Text inside an `nldd-list-item-segment` counts as the row's content, and the marker is that text cell rather than the action: the action carries its own inline padding, so its edge sits before the words. A row with no text or title cell keeps the full content width. Mark a cell with `divider-start` and/or `divider-end` to place it yourself instead — an explicit marker replaces the derived one entirely, so `divider-start` on the leading cell restores the full-width line. Multiple markers resolve as the union: first `divider-start` through last `divider-end`. A start past the last end is an authoring error — the item DEV-warns and falls back to the full content width. A branch row can disclose its children in two ways: a dedicated `nldd-list-item-segment[disclosure]` segment (only the chevron is clickable), or the row itself as the control (`button` + `expanded`, the whole row toggles). In the second case, mark the chevron's `nldd-icon-cell` with `disclosure` and the row turns it with `expanded` — the same affordance, without having to trade a clickable row for a turning chevron. `checkbox` makes the WHOLE row the control: the inner action becomes a `role="checkbox"` button carrying `aria-checked`, it toggles `checked` on activation and fires `change`. Slot a visual `nldd-checkbox` (or any glyph) before the text and mark it `aria-hidden` + non-focusable — the row already conveys role and state, and a second focusable control would double the tab stops. Do NOT nest a real `<input type="checkbox">` in the action: interactive content inside a `<button>` is invalid HTML and AT announces the button, not the checked state. A `<label>` variant is not offered for the same reason it cannot work — label-to-input association walks the DOM tree, and a slotted input is not a descendant of a label in the shadow root. When it renders as a link, `target` and `rel` are forwarded to the inner `<a>` (e.g. `target="_blank" rel="noopener noreferrer"`). With `target="_blank"` the item also injects a visually hidden "opens in new tab" announcement for assistive technology (WCAG 2.1 SC 3.2.2). The item synchronizes its ARIA with its parent `nldd-list`'s `type`: - `list` parent → `role="listitem"` - `navigation` parent → `role="listitem"` + `aria-current="page"` on the inner `<a>` / `<button>` when `selected` - `listbox` parent → `role="option"` + `aria-selected` reflecting `selected`. The list points its search input's `aria-activedescendant` at the active option via `_highlighted` (separate from `selected`). */
|
|
3489
3678
|
'nldd-list-item': DefineComponent<NLDDListItemProps>;
|
|
3490
|
-
/** A
|
|
3491
|
-
'nldd-list-item-
|
|
3679
|
+
/** A segment inside an `nldd-list-item`: it groups a run of cells and makes just that run clickable. Use it when a row needs more than one segment — a tree row whose chevron expands while the label toggles a checkbox, or a row that navigates with a separate button beside it. Put it in the row where its cells would go: the item has one flat slot, and a segment takes the place of the cells it covers. Where the divider starts or stops is marked on the cells themselves (`divider-start` / `divider-end`), not by the slot a segment sits in. A row is EITHER row-level interactive (`href` / `button` / `checkbox` on the `nldd-list-item`) OR segmented (one or more of these). Both at once nests a control inside a control, which is invalid HTML; the item DEV-warns. Unlike the row-wide action this does not bleed outward: a segment sits between siblings, so an outward inset would overlap them. It owns its inline padding and never drops below the row's control size, so an icon-only one still meets the WCAG 2.5.8 target size — do not add spacer cells inside it for room or hit area, that doubles the space. In a `type="listbox"` list the segment renders as a plain container (no control, not focusable) and DEV-warns: an `option` may not contain interactive descendants. The cells render unchanged, so nothing shifts. */
|
|
3680
|
+
'nldd-list-item-segment': DefineComponent<NLDDListItemSegmentProps>;
|
|
3492
3681
|
/** A floating menu component using the Popover API. Positioned relative to an anchor element using Floating UI. Supports filtering, keyboard navigation, and highlight management. Use nldd-menu-item and nldd-menu-divider as children. Note: Only type="button" items are supported when used inside nldd-combo-box-field. Radio and checkbox types may be used in standalone menus. */
|
|
3493
3682
|
'nldd-menu': DefineComponent<NLDDMenuProps>;
|
|
3494
|
-
/**
|
|
3683
|
+
/** Horizontal row of nldd-menu-bar-item elements with automatic overflow detection. Items that do not fit are hidden behind an overflow button with a popover menu. */
|
|
3495
3684
|
'nldd-menu-bar': DefineComponent<NLDDMenuBarProps>;
|
|
3496
|
-
/**
|
|
3685
|
+
/** Interactive building block for use in a menu bar. Renders as an <a> (with href) or a <button> (without href). Supports an icon, text, a disclosure indicator, and an expandable popover through a slotted `<nldd-menu>` (or another popover element). */
|
|
3497
3686
|
'nldd-menu-bar-item': DefineComponent<NLDDMenuBarItemProps>;
|
|
3498
3687
|
/** A horizontal rule between groups of items in an `nldd-menu`. */
|
|
3499
3688
|
'nldd-menu-divider': DefineComponent<NLDDMenuDividerProps>;
|
|
@@ -3540,7 +3729,7 @@ declare module 'vue' {
|
|
|
3540
3729
|
'nldd-radio-button-field': DefineComponent<NLDDRadioButtonFieldProps>;
|
|
3541
3730
|
/** Groups nldd-radio-button-field elements, handles keyboard navigation, and forwards name and disabled state to all child fields. Use inside nldd-form-field which provides the group label. */
|
|
3542
3731
|
'nldd-radio-button-group': DefineComponent<NLDDRadioButtonGroupProps>;
|
|
3543
|
-
/** A container for rich text content that automatically applies responsive typography. Uses no shadow DOM so styles apply to all nested elements. Import nldd-rich-text.css globally in your application.
|
|
3732
|
+
/** A container for rich text content that automatically applies responsive typography. Uses no shadow DOM so styles apply to all nested elements. Import nldd-rich-text.css globally in your application. Children are placed in three zones: text (headings, paragraphs, lists, blockquote, div/section) reads at the `main` size; media and tables (img, figure, video, iframe, table) get the `wide` accent; everything else, code blocks and every component, gets the full `full` span with `justify-self: start`, so the room is available without being forced. Overridable per child with `data-width="main" | "wide" | "full"`. In the left-aligned layout, wide and full read as a bleed to the right; with `centered` they are symmetrical. */
|
|
3544
3733
|
'nldd-rich-text': DefineComponent<NLDDRichTextProps>;
|
|
3545
3734
|
/** A search input with a leading search icon, an optional dismiss button, and an optional search button. */
|
|
3546
3735
|
'nldd-search-field': DefineComponent<NLDDSearchFieldProps>;
|
|
@@ -3555,7 +3744,7 @@ declare module 'vue' {
|
|
|
3555
3744
|
'nldd-sidebar-section': DefineComponent<NLDDSidebarSectionProps>;
|
|
3556
3745
|
/** A basic section with responsive padding and gap based on container size. Contains optional header and footer slots. The padding and spacing between slots adjust automatically via container queries. */
|
|
3557
3746
|
'nldd-simple-section': DefineComponent<NLDDSimpleSectionProps>;
|
|
3558
|
-
/** Accessibility
|
|
3747
|
+
/** Accessibility pattern that lets keyboard users skip past content. Wraps content in a default slot. Without href it focuses the first element after the skip link in the DOM (nextElementSibling). Make sure a focusable element follows the component, otherwise the skip link has no effect. */
|
|
3559
3748
|
'nldd-skip-link': DefineComponent<NLDDSkipLinkProps>;
|
|
3560
3749
|
/** Add explicit space between elements. Components in this design system have no margins of their own — all whitespace is set by a spacer. Use a single `size` attribute for whitespace that's the same at every viewport. Combine with `sm-size`, `md-size` and/or `lg-size` to override the size at specific breakpoints (mobile-first cascade is intentionally avoided — each breakpoint that needs a different value declares it explicitly): - `size` applies at every breakpoint that has no per-viewport override. - `sm-size` overrides at sm (max-width: 640px). - `md-size` overrides at md (641px–1007px). - `lg-size` overrides at lg (min-width: 1008px). Use `flexible` (in any of the four attributes) to fill the remaining space in a flex container. */
|
|
3561
3750
|
'nldd-spacer': DefineComponent<NLDDSpacerProps>;
|
|
@@ -3569,7 +3758,7 @@ declare module 'vue' {
|
|
|
3569
3758
|
'nldd-split-view-pane': DefineComponent<NLDDSplitViewPaneProps>;
|
|
3570
3759
|
/** A vertical split view with multiple stacked panes. The number of panes is set via the `panes` attribute. Each pane automatically gets a numbered slot: pane-1, pane-2, etc. Panes that do not fit the available height are automatically hidden. */
|
|
3571
3760
|
'nldd-stacked-split-view': DefineComponent<NLDDStackedSplitViewProps>;
|
|
3572
|
-
/**
|
|
3761
|
+
/** A narrow, page-wide status bar (24px) with a deep background color per variant. Use it for persistent system state: an outage, planned maintenance, a draft view or a recording in progress. The bar deliberately shows no icon and supports text only. The text itself has to name the status ("Storing: …", "Gepland onderhoud …"), so the meaning does not follow from color alone (WCAG 1.4.1). Keep the text short: the bar shows one line and truncates with an ellipsis, certainly on narrower screens. For a long message with a lot of information only the essence belongs in the bar. Point to a separate page or sheet for the rest (through `href` or `button`, for instance), where the user can read on. The whole bar can be clickable: set `href` (renders an `<a>`) or `button` (renders a `<button>`; listen for the native `click` event). Without either the bar is static. On interaction a chevron appears as an affordance. One action per bar at most; several actions, or links in running text, belong in nldd-banner. role and aria-live are set automatically from the variant: - critical → role="alert" (implies aria-live="assertive"; interrupts the screen reader) - others → role="status" aria-live="polite" Not overridable. If you need a quieter component, pick a different one. Use `critical` only for a real emergency: role="alert" interrupts the screen reader on every change of the content, so do not put text in it that changes regularly (a counting-down timer, for example). */
|
|
3573
3762
|
'nldd-status-bar': DefineComponent<NLDDStatusBarProps>;
|
|
3574
3763
|
/** Shows where you are in a process of several steps: a row of discs with a number (or a check mark on what is done), a label under each and a line connecting them. The parent holds the truth: `current` (1-based) derives the status of every child — `past` before it, `future` after. A child can override that with a `status` of its own, for flows that jump back or skip a step. Horizontal only. For steps under each other, build an `nldd-list` with an `nldd-timeline-track-cell` and an `nldd-title-cell` per row: vertical steps usually carry more than a title, and a list row already does that. Below the sm breakpoint (a container query, so measured on the component itself rather than on the viewport) it folds into one line of text plus a segmented bar. The full list of steps stays in the DOM, only visually hidden, so assistive software hears no less than a wide screen shows. Accessibility: a `nav` with a label, holding a `role="list"` with a `role="listitem"` per step. The current step gets `aria-current="step"`, the only notion WAI-ARIA has for this. "Done" and "still to do" do not exist as ARIA tokens and travel along as visually hidden text instead. */
|
|
3575
3764
|
'nldd-step-indicator': DefineComponent<NLDDStepIndicatorProps>;
|
|
@@ -3589,14 +3778,16 @@ declare module 'vue' {
|
|
|
3589
3778
|
'nldd-table-row': DefineComponent<NLDDTableRowProps>;
|
|
3590
3779
|
/** A compact property that has been assigned to something: a category, a type, a role, a certification. What it says changes only when someone edits the content. A tag is not interactive. Do not use it for a state the system keeps itself, such as "Active" or "Expired", because that is `nldd-badge`. If the user can remove the thing or click it, it is `nldd-token`. */
|
|
3591
3780
|
'nldd-tag': DefineComponent<NLDDTagProps>;
|
|
3781
|
+
/** One run of body text at a size from the type scale. It is what you reach for where an app would otherwise write a bare `<p>` and inherit whatever the page happens to set: a line under a title, a sentence in a panel, a caption. Every combination it offers exists as a token, so it cannot invent typography — it only names what the scale already has. The three axes are the same three the tokens carry: size, weight and line height. Not for headings, which is `nldd-title`, and not for a block of prose with its own rhythm, spacing and media widths, which is `nldd-rich-text`. This is one run of text and nothing around it. Color follows the context channel a list item, menu or table sets on its content, so text inside a row travels with that row as it is hovered or selected. Standalone that channel is unset and the semantic color answers. */
|
|
3782
|
+
'nldd-text': DefineComponent<NLDDTextProps>;
|
|
3592
3783
|
/** A cell component for displaying text content in lists with configurable alignment, size and color. This is the most fundamental list cell component. `vertical-alignment="center"` (default) stretches the cell to fill the full row height and centers its content within that space. Use `min-height` to set a minimum centered region. For strict top alignment without a minimum height, use `vertical-alignment="top"`. Each text region (overline, main text, supporting text) accepts either a string attribute or slotted DOM content. The slot is the source of truth: if the consumer provides slotted content, it replaces the attribute-based render for that region. Use slots when you need inline elements like `<nldd-tag>`, `<a>` or `<nldd-icon>` mixed with text. Note that `query` highlighting and `**bold**` parsing only apply to the attribute path — slotted content is rendered as-is. */
|
|
3593
3784
|
'nldd-text-cell': DefineComponent<NLDDTextCellProps>;
|
|
3594
3785
|
/** A hybrid markdown editor built on CodeMirror 6 (via NLDDCodeMirrorElement): the document stays plain markdown text, but formatting is shown inline (bold is bold, headings are larger, links are colored) while the syntax markers stay visible, only dimmed — the iA Writer / Kirby approach. No WYSIWYG tree, so the data stays portable. Default `variant="simple"` is bare (no frame, no focus ring) for use inside a composition (e.g. a message field) that owns its chrome and focus; the caret is a prominent accent. `variant="input-field"` adds a framed surface + focus Headless: there is no built-in toolbar. A consumer drives formatting via the command methods (toggleBold/toggleItalic/toggleInlineCode/toggleStrikethrough/ toggleHeading/toggleBulletList/toggleQuote/toggleLink/runCommand to toggle, and setHeading/setList for picker-style "set" semantics), reads the active formats with getState(), listens to the nldd-text-editor-state event to render toggle states, and forwards padding clicks with focusFromPoint(). Cmd/Ctrl+B/I/E/K are bound out of the box. Commands keep focus on the editor. An @-mention typeahead (mentionSource) collapses to an atomic token, and a W3C-style annotation overlay (annotations) marks ranges with a dashed underline, light tint and a count badge without touching the underlying text. */
|
|
3595
3786
|
'nldd-text-editor': DefineComponent<NLDDTextEditorProps>;
|
|
3596
3787
|
'nldd-text-field': DefineComponent<NLDDTextFieldProps>;
|
|
3597
|
-
/**
|
|
3788
|
+
/** A text field for a time. The value is always 24-hour `HH:mm`, which is how Dutch shows it too, so unlike nldd-date-field there is nothing to convert. Typing is not masked: input is accepted generously and normalized only when the field is left. Error messages belong to nldd-form-field, not here. This field reflects only `invalid` / `valid`, like nldd-text-field. What you do in the picker is a preview until you leave it. The field shows the time right away but commits it on close. "Klaar" and Enter keep the choice, and so does a click outside once you have picked something. Cancel and Escape put the old time back. On an empty field the wheels open at `min`, or otherwise at the current time rounded to `step`, which does not fill in the field yet. */
|
|
3598
3789
|
'nldd-time-field': DefineComponent<NLDDTimeFieldProps>;
|
|
3599
|
-
/**
|
|
3790
|
+
/** Two columns, hours and minutes, that slide like a wheel past the selection in the middle. The component works on its own (inline on a page, in a filter panel) and also sits in the popover of nldd-time-field. Values are always 24-hour `HH:mm`. Scrolling is choosing: whatever comes to rest in the middle is the value. The keyboard drives that same selection, because that is what a wheel is: hour and minute are each a spinbutton. The columns underneath are aria-hidden, so the same values are not read out twice. */
|
|
3600
3791
|
'nldd-time-picker': DefineComponent<NLDDTimePickerProps>;
|
|
3601
3792
|
/** A cell component for displaying timeline track indicators in lists. Shows a vertical line with a dot indicating timeline position and state. The row's block padding belongs to the cell itself (via `--context-cell-padding-block`), so the line spans the cell's own box edge to edge and consecutive steps connect without gaps. By default the cell is a bare track: a line with a dot per row, for a timeline of events. With `variant="step"` the dot grows big enough for a number or an icon and you have a list of steps under each other, the vertical counterpart of `nldd-step-indicator`. The size belongs to the variant rather than to the content: every dot in a list is the same size, or the track would jump. */
|
|
3602
3793
|
'nldd-timeline-track-cell': DefineComponent<NLDDTimelineTrackCellProps>;
|
|
@@ -3617,13 +3808,16 @@ declare module 'vue' {
|
|
|
3617
3808
|
'nldd-toolbar-title': DefineComponent<NLDDToolbarTitleProps>;
|
|
3618
3809
|
/** A wrapper that shows a tooltip on hover or focus of its child element. It uses `display: contents`, so it does not affect the child's layout. */
|
|
3619
3810
|
'nldd-tooltip': DefineComponent<NLDDTooltipProps>;
|
|
3620
|
-
/**
|
|
3811
|
+
/** The top bar of a page: a logo bar with the Rijkslogo and an optional wordmark, and below it the main bar with the website title, a back button, the global navigation and the utility navigation. On narrow widths the global navigation moves into a menu sheet behind the menu button. */
|
|
3621
3812
|
'nldd-top-navigation-bar': DefineComponent<NLDDTopNavigationBarProps>;
|
|
3622
3813
|
/** A toolbar for page and container headings with optional navigation and action buttons. The component has two states: - Default: the back button shows the previous page title as a text button - Compact (class `is-compact`): the back button is an icon button, a divider and the toolbar title are visible When `collapse-anchor` is set, the `is-compact` class is automatically applied as soon as the top of the anchor element reaches this bar's own top edge (the sticky header line). Measuring the bar rather than the page keeps it correct in both nested and root scroll modes; it also re-points at the live scroll target when the page switches mode. Without `collapse-anchor` the bar takes a static state: compact when `text` is set (so the title shows in the title-group), non-compact otherwise (so the `back-text` button stays visible). An anchored bar hides its own title from assistive technology. The anchor is the heading the title swaps in for, so both carry the same words: once you scroll past the heading, a screen reader would otherwise find the same title twice. Sighted readers see one at a time, and this makes that true for everyone. Anchor at the heading, then, and not at some other element that happens to sit at the right height: the bar hands its title over to it. */
|
|
3623
3814
|
'nldd-top-title-bar': DefineComponent<NLDDTopTitleBarProps>;
|
|
3624
3815
|
/** A section with 2/3 main content on the left and a 1/3 sidebar on the right. The columns wrap automatically when they become smaller than 280px. Padding and gap adjust via container queries. */
|
|
3625
3816
|
'nldd-two-thirds-one-third-section': DefineComponent<NLDDTwoThirdsOneThirdSectionProps>;
|
|
3626
|
-
|
|
3817
|
+
'nldd-validation-item': DefineComponent<NLDDValidationItemProps>;
|
|
3818
|
+
/** Nederlandse Digitale Dienst Validation List (Lit + TypeScript) Everything a value has to satisfy, in one list. A requirement you can state up front is an item with a rule, and it checks itself while you type. One only a server can decide is an item without a rule, and the app names it in `unmet` on the control. The list has two modes and `judging` is the switch. Before a verdict it shows its hints, which are the requirements of the field. After one it shows everything the value does not satisfy, and the hints are gone. It throws that switch itself the moment its control turns `invalid`, so when the field is judged is the consumer's decision, and the right moment is on submit. Hints are off by default. A phone number does not need its format spelled out before anyone has typed, while the rules for a password do. There are no checkmarks. The control already shows a validation icon of its own, and repeating that per line says the same thing three times. */
|
|
3819
|
+
'nldd-validation-list': DefineComponent<NLDDValidationListProps>;
|
|
3820
|
+
/** A floating window based on the native <dialog> element. Can be shown modal or modeless. Positionable through CSS values. No header of its own: consumers use nldd-page with a sticky header inside for a title bar. */
|
|
3627
3821
|
'nldd-window': DefineComponent<NLDDWindowProps>;
|
|
3628
3822
|
}
|
|
3629
3823
|
}
|