@wirecore/wirelayer-vue 0.5.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Button-DZ_ZGl7X.js → Button-BpMOPs8b.js} +7 -8
- package/dist/{Checkbox-D9f77jtl.js → Checkbox-D175nhKK.js} +26 -22
- package/dist/ContextMenu-BEOEyUa6.js +2235 -0
- package/dist/{Field-BdIPugFP.js → Field-B1EsNF84.js} +20 -17
- package/dist/{Highlight-DvGcm2QR.js → Highlight-uwptdaUw.js} +35 -32
- package/dist/{Input-C59NJK4m.js → Input-Cn5q0yVE.js} +50 -36
- package/dist/{InputStatus-CUyF9-GR.js → InputStatus-D7kBGlew.js} +4 -1
- package/dist/{Select-BlEjQWBP.js → Select-Bd2Vpr7G.js} +175 -164
- package/dist/Slider-Cpv7Vj3B.js +143 -0
- package/dist/{Tree-B39xwNbU.js → Tree-fd9LXqgZ.js} +184 -181
- package/dist/chart/Chart.vue.d.ts +10 -4
- package/dist/chart/Chart.vue.d.ts.map +1 -1
- package/dist/chart/index.d.ts +2 -0
- package/dist/chart/index.d.ts.map +1 -1
- package/dist/chart.js +30 -24
- package/dist/code.js +1 -1
- package/dist/components/AngleSlider/AngleSlider.vue.d.ts +2 -0
- package/dist/components/AngleSlider/AngleSlider.vue.d.ts.map +1 -1
- package/dist/components/Autocomplete/Autocomplete.vue.d.ts +2 -0
- package/dist/components/Autocomplete/Autocomplete.vue.d.ts.map +1 -1
- package/dist/components/Badge/Badge.vue.d.ts +2 -0
- package/dist/components/Badge/Badge.vue.d.ts.map +1 -1
- package/dist/components/Button/Button.vue.d.ts +5 -0
- package/dist/components/Button/Button.vue.d.ts.map +1 -1
- package/dist/components/Carousel/Carousel.vue.d.ts +2 -0
- package/dist/components/Carousel/Carousel.vue.d.ts.map +1 -1
- package/dist/components/CascadeSelect/CascadeSelect.vue.d.ts +2 -0
- package/dist/components/CascadeSelect/CascadeSelect.vue.d.ts.map +1 -1
- package/dist/components/Checkbox/Checkbox.vue.d.ts +2 -0
- package/dist/components/Checkbox/Checkbox.vue.d.ts.map +1 -1
- package/dist/components/ChipGroup/ChipGroup.vue.d.ts +1 -1
- package/dist/components/ChipGroup/ChipGroup.vue.d.ts.map +1 -1
- package/dist/components/ColorInput/ColorInput.vue.d.ts.map +1 -1
- package/dist/components/ColorPicker/ColorPicker.vue.d.ts +2 -0
- package/dist/components/ColorPicker/ColorPicker.vue.d.ts.map +1 -1
- package/dist/components/Combobox/Combobox.vue.d.ts +8 -1
- package/dist/components/Combobox/Combobox.vue.d.ts.map +1 -1
- package/dist/components/Confirm/ConfirmDialog.vue.d.ts +5 -0
- package/dist/components/Confirm/ConfirmDialog.vue.d.ts.map +1 -1
- package/dist/components/Confirm/confirm.d.ts +7 -0
- package/dist/components/Confirm/confirm.d.ts.map +1 -1
- package/dist/components/DatePicker/DatePicker.vue.d.ts +4 -0
- package/dist/components/DatePicker/DatePicker.vue.d.ts.map +1 -1
- package/dist/components/DatePicker/DatePickerBase.vue.d.ts +4 -0
- package/dist/components/DatePicker/DatePickerBase.vue.d.ts.map +1 -1
- package/dist/components/DateRangePicker/DateRangePicker.vue.d.ts +4 -0
- package/dist/components/DateRangePicker/DateRangePicker.vue.d.ts.map +1 -1
- package/dist/components/Dialog/DialogContent.vue.d.ts +12 -6
- package/dist/components/Dialog/DialogContent.vue.d.ts.map +1 -1
- package/dist/components/Drawer/DrawerContent.vue.d.ts +7 -5
- package/dist/components/Drawer/DrawerContent.vue.d.ts.map +1 -1
- package/dist/components/DurationInput/DurationInput.vue.d.ts +2 -0
- package/dist/components/DurationInput/DurationInput.vue.d.ts.map +1 -1
- package/dist/components/EmptyState/EmptyState.vue.d.ts +5 -5
- package/dist/components/EmptyState/EmptyState.vue.d.ts.map +1 -1
- package/dist/components/Field/Field.vue.d.ts +12 -2
- package/dist/components/Field/Field.vue.d.ts.map +1 -1
- package/dist/components/Field/context.d.ts +3 -1
- package/dist/components/Field/context.d.ts.map +1 -1
- package/dist/components/FileUpload/FileUpload.vue.d.ts +11 -0
- package/dist/components/FileUpload/FileUpload.vue.d.ts.map +1 -1
- package/dist/components/IconButton/IconButton.vue.d.ts +4 -0
- package/dist/components/IconButton/IconButton.vue.d.ts.map +1 -1
- package/dist/components/Knob/Knob.vue.d.ts +2 -0
- package/dist/components/Knob/Knob.vue.d.ts.map +1 -1
- package/dist/components/Listbox/Listbox.vue.d.ts +2 -0
- package/dist/components/Listbox/Listbox.vue.d.ts.map +1 -1
- package/dist/components/LocaleProvider/LocaleProvider.vue.d.ts +1 -0
- package/dist/components/LocaleProvider/LocaleProvider.vue.d.ts.map +1 -1
- package/dist/components/MonthPicker/MonthPicker.vue.d.ts +4 -0
- package/dist/components/MonthPicker/MonthPicker.vue.d.ts.map +1 -1
- package/dist/components/MultiSelect/MultiSelect.vue.d.ts +8 -1
- package/dist/components/MultiSelect/MultiSelect.vue.d.ts.map +1 -1
- package/dist/components/NumberInput/NumberInput.vue.d.ts +2 -0
- package/dist/components/NumberInput/NumberInput.vue.d.ts.map +1 -1
- package/dist/components/PasswordInput/PasswordInput.vue.d.ts +2 -0
- package/dist/components/PasswordInput/PasswordInput.vue.d.ts.map +1 -1
- package/dist/components/PinInput/PinInput.vue.d.ts +2 -0
- package/dist/components/PinInput/PinInput.vue.d.ts.map +1 -1
- package/dist/components/RadioGroup/RadioGroup.vue.d.ts +1 -1
- package/dist/components/RadioGroup/RadioGroup.vue.d.ts.map +1 -1
- package/dist/components/Rating/Rating.vue.d.ts +2 -0
- package/dist/components/Rating/Rating.vue.d.ts.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.vue.d.ts +2 -2
- package/dist/components/SegmentedControl/SegmentedControl.vue.d.ts.map +1 -1
- package/dist/components/Select/Select.vue.d.ts +8 -1
- package/dist/components/Select/Select.vue.d.ts.map +1 -1
- package/dist/components/Select/types.d.ts +2 -0
- package/dist/components/Select/types.d.ts.map +1 -1
- package/dist/components/SelectionCard/CheckboxCard.vue.d.ts +2 -0
- package/dist/components/SelectionCard/CheckboxCard.vue.d.ts.map +1 -1
- package/dist/components/Slider/Slider.vue.d.ts +2 -0
- package/dist/components/Slider/Slider.vue.d.ts.map +1 -1
- package/dist/components/Switch/Switch.vue.d.ts +2 -0
- package/dist/components/Switch/Switch.vue.d.ts.map +1 -1
- package/dist/components/TagsInput/TagsInput.vue.d.ts +2 -0
- package/dist/components/TagsInput/TagsInput.vue.d.ts.map +1 -1
- package/dist/components/TimePicker/TimePicker.vue.d.ts +2 -0
- package/dist/components/TimePicker/TimePicker.vue.d.ts.map +1 -1
- package/dist/components/TimeRangePicker/TimeRangePicker.vue.d.ts +2 -0
- package/dist/components/TimeRangePicker/TimeRangePicker.vue.d.ts.map +1 -1
- package/dist/components/Toast/Toaster.vue.d.ts +12 -2
- package/dist/components/Toast/Toaster.vue.d.ts.map +1 -1
- package/dist/components/ToggleButton/ToggleButton.vue.d.ts +9 -2
- package/dist/components/ToggleButton/ToggleButton.vue.d.ts.map +1 -1
- package/dist/components/Tooltip/Tooltip.vue.d.ts +3 -0
- package/dist/components/Tooltip/Tooltip.vue.d.ts.map +1 -1
- package/dist/components/TreeSelect/TreeSelect.vue.d.ts +2 -0
- package/dist/components/TreeSelect/TreeSelect.vue.d.ts.map +1 -1
- package/dist/components/YearPicker/YearPicker.vue.d.ts +4 -0
- package/dist/components/YearPicker/YearPicker.vue.d.ts.map +1 -1
- package/dist/data-table/DataTable.vue.d.ts +36 -2
- package/dist/data-table/DataTable.vue.d.ts.map +1 -1
- package/dist/data-table/FilterMenu.vue.d.ts +10 -0
- package/dist/data-table/FilterMenu.vue.d.ts.map +1 -1
- package/dist/data-table/ValueInput.vue.d.ts +19 -1
- package/dist/data-table/ValueInput.vue.d.ts.map +1 -1
- package/dist/data-table/index.d.ts +1 -1
- package/dist/data-table/index.d.ts.map +1 -1
- package/dist/data-table/types.d.ts +23 -1
- package/dist/data-table/types.d.ts.map +1 -1
- package/dist/data-table.js +1475 -1341
- package/dist/editor.js +2 -2
- package/dist/form/FormField.vue.d.ts +13 -5
- package/dist/form/FormField.vue.d.ts.map +1 -1
- package/dist/form.js +128 -109
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6470 -6251
- package/dist/label-for-eQvYjsM5.js +8 -0
- package/dist/pdf.js +4 -4
- package/dist/sources/ActionBar.css +1 -0
- package/dist/sources/AppShell.css +1 -0
- package/dist/sources/ChatPrompt.css +1 -0
- package/dist/sources/Gallery.css +1 -0
- package/dist/sources/IconButton.css +1 -0
- package/dist/sources/Image.css +1 -0
- package/dist/sources/ImageCropper.css +1 -0
- package/dist/sources/InlineEdit.css +1 -0
- package/dist/sources/Marquee.css +1 -0
- package/dist/sources/MegaMenu.css +1 -0
- package/dist/sources/Menubar.css +1 -0
- package/dist/sources/OrderList.css +1 -0
- package/dist/sources/PickList.css +1 -0
- package/dist/sources/ScrollTop.css +1 -0
- package/dist/{useTree-Dt7NO7cp.js → useTree-UhG1TMeM.js} +2 -2
- package/dist/utils/label-for.d.ts +3 -0
- package/dist/utils/label-for.d.ts.map +1 -0
- package/dist/utils/list.d.ts +5 -0
- package/dist/utils/list.d.ts.map +1 -1
- package/dist/virtual/VirtualSelect.vue.d.ts +2 -0
- package/dist/virtual/VirtualSelect.vue.d.ts.map +1 -1
- package/dist/virtual.js +207 -197
- package/fonts.css +2 -0
- package/llms-full.txt +699 -373
- package/llms.txt +4 -1
- package/package.json +7 -3
- package/theme.css +14 -0
- package/dist/ContextMenu-R23YbbaS.js +0 -2188
- package/dist/Slider-CyoZc5A8.js +0 -135
package/llms-full.txt
CHANGED
|
@@ -22,7 +22,7 @@ Sections that open and close (one or several at a time); each item is a heading
|
|
|
22
22
|
|
|
23
23
|
| Prop | Type | Description |
|
|
24
24
|
| --- | --- | --- |
|
|
25
|
-
| v-model? (modelValue) | `string[]` | Open items (values of AccordionItem) |
|
|
25
|
+
| v-model? (modelValue) | `string[]` | Open items (values of AccordionItem) – use with v-model |
|
|
26
26
|
| default-value? | `string[]` | |
|
|
27
27
|
| multiple? | `boolean` | Several items open at once |
|
|
28
28
|
| collapsible? | `boolean` | The open item can be closed again (single mode) |
|
|
@@ -44,7 +44,8 @@ One section of an Accordion: heading button and content
|
|
|
44
44
|
|
|
45
45
|
| Prop | Type | Description |
|
|
46
46
|
| --- | --- | --- |
|
|
47
|
-
|
|
|
47
|
+
| value | `string` | |
|
|
48
|
+
| title? | `string` | Title of the trigger (also via #title) |
|
|
48
49
|
| icon? | `Component` | Icon component before the title |
|
|
49
50
|
| disabled? | `boolean` | |
|
|
50
51
|
| heading-level? | `2 \| 3 \| 4 \| 5 \| 6` | Level of the heading around the trigger, to fit the page outline |
|
|
@@ -71,7 +72,6 @@ Actions for the selected items: a toolbar (one tab stop, arrow keys) with the co
|
|
|
71
72
|
| label? | `string` | Accessible name of the toolbar |
|
|
72
73
|
| clear-label? | `string` | Name of the button that clears the selection |
|
|
73
74
|
| placement? | `'fixed' \| 'inline'` | `fixed` floats at the bottom of the window, `inline` stays in the flow |
|
|
74
|
-
| style? | `CSSProperties` | |
|
|
75
75
|
| classes? | `RecipeClasses<typeof actionBarRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
76
76
|
|
|
77
77
|
| Event | Payload | Description |
|
|
@@ -107,6 +107,7 @@ Fixed in a corner of the window, e.g. a help or chat button
|
|
|
107
107
|
| Prop | Type | Description |
|
|
108
108
|
| --- | --- | --- |
|
|
109
109
|
| label? | `string` | Text of the label (default "AI-generated") |
|
|
110
|
+
| explanation? | `string \| false` | Explanation behind the (i) button (default: a short note on AI content); `false` hides the button |
|
|
110
111
|
| size? | `'sm' \| 'md'` | |
|
|
111
112
|
| classes? | `RecipeClasses<typeof aiLabelRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
112
113
|
|
|
@@ -128,10 +129,10 @@ Message box with status colour, icon, title and text; role="alert" for errors an
|
|
|
128
129
|
| status? | `AlertStatus` | |
|
|
129
130
|
| variant? | `AlertVariant` | `box` (default) or `simple`: only icon and text in the status colour, e.g. for a field error |
|
|
130
131
|
| size? | `'sm' \| 'md'` | |
|
|
131
|
-
| title? | `
|
|
132
|
-
| dismissible? | `boolean` | Shows a close button that
|
|
132
|
+
| title? | `string` | |
|
|
133
|
+
| dismissible? | `boolean` | Shows a close button that emits `dismiss` |
|
|
133
134
|
| dismiss-label? | `string` | Accessible name of the close button |
|
|
134
|
-
| duration? | `number` |
|
|
135
|
+
| duration? | `number` | Emits `dismiss` after this many milliseconds. The time pauses while the pointer is over the alert or the focus is in it (WCAG 2.2.1); prefer `dismissible` for messages people need to read |
|
|
135
136
|
| classes? | `RecipeClasses<typeof alertRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
136
137
|
|
|
137
138
|
| Event | Payload | Description |
|
|
@@ -149,7 +150,7 @@ Dial for an angle: the needle is the slider (arrow keys, Home/End), drag anywher
|
|
|
149
150
|
|
|
150
151
|
| Prop | Type | Description |
|
|
151
152
|
| --- | --- | --- |
|
|
152
|
-
| v-model? (modelValue) | `number` | Angle 0–360
|
|
153
|
+
| v-model? (modelValue) | `number` | Angle 0–360 – use with v-model |
|
|
153
154
|
| default-value? | `number` | |
|
|
154
155
|
| step? | `number` | Step of the arrow keys and of dragging (default 1) |
|
|
155
156
|
| label? | `string` | Visible label, also the accessible name (or a surrounding Field, or aria-label) |
|
|
@@ -160,8 +161,7 @@ Dial for an angle: the needle is the slider (arrow keys, Home/End), drag anywher
|
|
|
160
161
|
| read-only? | `boolean` | |
|
|
161
162
|
| invalid? | `boolean` | |
|
|
162
163
|
| name? | `string` | |
|
|
163
|
-
|
|
|
164
|
-
| style? | `CSSProperties` | |
|
|
164
|
+
| id? | `string` | Id of the root element; a `<label for>` cannot name the angle slider, use a Field or aria-label |
|
|
165
165
|
| classes? | `RecipeClasses<typeof angleSliderRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
166
166
|
|
|
167
167
|
| Event | Payload | Description |
|
|
@@ -180,17 +180,17 @@ App frame with landmarks: skip link, header (banner), side navigation (from lg o
|
|
|
180
180
|
|
|
181
181
|
| Prop | Type | Description |
|
|
182
182
|
| --- | --- | --- |
|
|
183
|
-
| navbar-open? | `boolean` |
|
|
183
|
+
| v-model:navbar-open? | `boolean` | Navigation drawer on small screens – use with v-model:navbar-open |
|
|
184
184
|
| navbar-label? | `string` | Title of the drawer and name of the button that opens it |
|
|
185
185
|
| skip-link-label? | `string` | |
|
|
186
186
|
| skip-links? | `readonly SkipLink[]` | Further skip links after the one to the main area, e.g. [{ href: '#search', label: 'Skip to search' }] – then rendered as a named list (SkipLinks) |
|
|
187
|
-
| navbar-collapsed? | `boolean` | The navbar is a rail of icons on the desktop (a SidebarNav inside shows tooltips) |
|
|
187
|
+
| v-model:navbar-collapsed? | `boolean` | The navbar is a rail of icons on the desktop (a SidebarNav inside shows tooltips) – v-model:navbar-collapsed |
|
|
188
188
|
| collapsible? | `boolean` | A button in the header folds and unfolds the navbar (desktop) |
|
|
189
189
|
| navbar-expand-on-hover? | `boolean` | With navbarCollapsed: the rail opens over the main area while hovered or focused |
|
|
190
190
|
| navbar-resizable? | `boolean` | The navbar width can be changed with a handle (drag, arrow keys, Home/End, double click resets) |
|
|
191
191
|
| aside-resizable? | `boolean` | The aside width can be changed the same way |
|
|
192
|
-
| navbar-width? | `number` | Width of the navbar in px (default 256) |
|
|
193
|
-
| aside-width? | `number` | Width of the aside in px (default 288) |
|
|
192
|
+
| v-model:navbar-width? | `number` | Width of the navbar in px (default 256) – v-model:navbar-width |
|
|
193
|
+
| v-model:aside-width? | `number` | Width of the aside in px (default 288) – v-model:aside-width |
|
|
194
194
|
| navbar-min-width? | `number` | Limits for resizing (px) |
|
|
195
195
|
| navbar-max-width? | `number` | |
|
|
196
196
|
| aside-min-width? | `number` | |
|
|
@@ -241,7 +241,7 @@ One form for sign in, sign up, password reset and one-time code; errors in a sum
|
|
|
241
241
|
|
|
242
242
|
| Prop | Type | Description |
|
|
243
243
|
| --- | --- | --- |
|
|
244
|
-
| mode? | `AuthMode` | signIn, signUp, reset (password forgotten) or code (one-time code)
|
|
244
|
+
| v-model:mode? | `AuthMode` | signIn, signUp, reset (password forgotten) or code (one-time code) – use with v-model:mode |
|
|
245
245
|
| default-mode? | `AuthMode` | |
|
|
246
246
|
| modes? | `readonly AuthMode[]` | Modes the links switch between (default sign in, sign up and reset) |
|
|
247
247
|
| title? | `string` | Heading (default by mode) |
|
|
@@ -301,14 +301,14 @@ Free text with suggestions: type, arrow keys to pick a suggestion, Enter takes i
|
|
|
301
301
|
| Prop | Type | Description |
|
|
302
302
|
| --- | --- | --- |
|
|
303
303
|
| items | `readonly T[]` | Suggestions while typing – any other text is allowed, too; strings or objects (read with itemLabel) |
|
|
304
|
-
| v-model? (modelValue) | `string` | The text |
|
|
304
|
+
| v-model? (modelValue) | `string` | The text – use with v-model |
|
|
305
305
|
| default-value? | `string` | |
|
|
306
|
-
| multiple? | `boolean` | Several entries as chips (a TagsInput with these suggestions) – use values
|
|
307
|
-
| values? | `string[]` | The entries with `multiple` |
|
|
306
|
+
| multiple? | `boolean` | Several entries as chips (a TagsInput with these suggestions) – use with v-model:values |
|
|
307
|
+
| v-model:values? | `string[]` | The entries with `multiple` – use with v-model:values |
|
|
308
308
|
| default-values? | `string[]` | |
|
|
309
309
|
| max? | `number` | Most entries with `multiple` |
|
|
310
310
|
| filter? | `boolean` | Filters the suggestions by the typed text (ignores case and accents) |
|
|
311
|
-
| manual-filter? | `boolean` | The suggestions are filtered elsewhere (server): no local filtering, listen to
|
|
311
|
+
| manual-filter? | `boolean` | The suggestions are filtered elsewhere (server): no local filtering, listen to filterChange |
|
|
312
312
|
| item-label? | `ItemAccessor<T, string>` | Text of a suggestion: property name or function (default: `label`, or the item itself) |
|
|
313
313
|
| item-disabled? | `ItemAccessor<T, boolean>` | Disabled state of a suggestion: property name or function (default: `disabled`) |
|
|
314
314
|
| item-group? | `ItemAccessor<T, string \| null \| undefined>` | Group heading of a suggestion: property name or function (default: `group`) |
|
|
@@ -316,13 +316,17 @@ Free text with suggestions: type, arrow keys to pick a suggestion, Enter takes i
|
|
|
316
316
|
| loading? | `boolean` | Shows a spinner in the field and "Loading" in the list (aria-busy) |
|
|
317
317
|
| loading-text? | `string` | Text of the loading row in the list |
|
|
318
318
|
| size? | `SelectSize` | Height of the field: 32, 40 (default) or 48 px |
|
|
319
|
-
| has-more? | `boolean` | More suggestions can be loaded: scrolling to the end of the list
|
|
319
|
+
| has-more? | `boolean` | More suggestions can be loaded: scrolling to the end of the list emits loadMore |
|
|
320
320
|
| data-source? | `DataSource<T>` | Loads the suggestions for the typed text (after a typing pause, outdated answers dropped) |
|
|
321
321
|
| min-search-length? | `number` | Fewest characters typed before the data source is asked |
|
|
322
322
|
| page-size? | `number` | Suggestions per request of the data source (default 50) |
|
|
323
|
+
| placeholder? | `string` | |
|
|
324
|
+
| disabled? | `boolean` | |
|
|
325
|
+
| read-only? | `boolean` | |
|
|
323
326
|
| invalid? | `boolean` | |
|
|
324
327
|
| required? | `boolean` | |
|
|
325
328
|
| name? | `string` | |
|
|
329
|
+
| id? | `string` | Id of the input, e.g. for a `<label for>` |
|
|
326
330
|
| classes? | `RecipeClasses<typeof comboboxRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
327
331
|
|
|
328
332
|
| Event | Payload | Description |
|
|
@@ -389,6 +393,7 @@ Short label or status (solid, soft, outline or a status colour)
|
|
|
389
393
|
| --- | --- | --- |
|
|
390
394
|
| variant? | `BadgeVariant` | |
|
|
391
395
|
| icon? | `Component` | Icon component rendered before the text |
|
|
396
|
+
| icon-props? | `Record<string, unknown>` | Props passed on to the icon component, e.g. { fill: 'currentColor' } for a filled icon or { strokeWidth: 1.5 } |
|
|
392
397
|
| circle? | `boolean` | Round shape for a count or a single character (grows into a pill for longer content) |
|
|
393
398
|
| classes? | `RecipeClasses<typeof badgeRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
394
399
|
|
|
@@ -408,7 +413,7 @@ Page-wide notice: message in a live region (role="alert" for danger, else "statu
|
|
|
408
413
|
| title? | `string` | Bold text before the message |
|
|
409
414
|
| position? | `BannerPosition` | `inline` (default): in the flow; `top`/`bottom`: fixed to that edge of the window |
|
|
410
415
|
| dismissible? | `boolean` | Shows a close button |
|
|
411
|
-
| open? | `boolean` | Controlled visibility |
|
|
416
|
+
| v-model:open? | `boolean` | Controlled visibility – use with v-model:open |
|
|
412
417
|
| storage-key? | `string` | Remembers the dismissal in localStorage under this key – the banner stays hidden on the next visit |
|
|
413
418
|
| icon? | `Component` | Own icon instead of the one for the variant |
|
|
414
419
|
| hide-icon? | `boolean` | |
|
|
@@ -436,6 +441,22 @@ Bars per category for one or more series – vertical or horizontal, grouped or
|
|
|
436
441
|
|
|
437
442
|
| Prop | Type | Description |
|
|
438
443
|
| --- | --- | --- |
|
|
444
|
+
| data | `readonly ChartRow[]` | The rows: one object per category with a value per series |
|
|
445
|
+
| category-key | `string` | Property of each row with the category (x axis) |
|
|
446
|
+
| series | `readonly ChartSeries[]` | The series: key of the value, label, colour, axis, stack … |
|
|
447
|
+
| title | `string` | Title of the chart, also its accessible name |
|
|
448
|
+
| hide-title? | `boolean` | Keep the title for screen readers only |
|
|
449
|
+
| height? | `string` | Height of the chart area (CSS length, default 18rem) |
|
|
450
|
+
| table? | `boolean` | The data as a table below the chart (opens on demand) – the text alternative (default true) |
|
|
451
|
+
| format-value? | `(value: number) => string` | Formats values in the axis, tooltips, legend and table (default: numbers in the locale) |
|
|
452
|
+
| references? | `readonly ChartReference[]` | Reference lines (`value`) and areas (`from`–`to`), on the value axis or with `axis: 'x'` on the categories |
|
|
453
|
+
| scale? | `'linear' \| 'logarithmic'` | Logarithmic value axis |
|
|
454
|
+
| legend? | `boolean` | Legend (default: with more than one series) |
|
|
455
|
+
| brush? | `boolean` | A small overview below with a range to zoom into (keyboard: the slider's arrow keys) |
|
|
456
|
+
| v-model:range? | `[number, number]` | Shown rows with `brush` (inclusive indexes) – use with v-model:range |
|
|
457
|
+
| default-range? | `[number, number]` | |
|
|
458
|
+
| options? | `Record<string, unknown>` | Chart.js options – merged over the WireLayer defaults |
|
|
459
|
+
| classes? | `RecipeClasses<typeof chartRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe chart) |
|
|
439
460
|
| horizontal? | `boolean` | Bars from the start edge instead of from the bottom |
|
|
440
461
|
| stacked? | `boolean` | Stack all series |
|
|
441
462
|
|
|
@@ -478,7 +499,6 @@ While blocked: the content is inert (no focus, no clicks) and busy; the overlay
|
|
|
478
499
|
| --- | --- | --- |
|
|
479
500
|
| blocked? | `boolean` | Covers the content and makes it inert |
|
|
480
501
|
| label? | `string` | |
|
|
481
|
-
| style? | `CSSProperties` | |
|
|
482
502
|
| classes? | `RecipeClasses<typeof blockUiRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
483
503
|
|
|
484
504
|
|
|
@@ -497,7 +517,7 @@ Navigation landmark fixed at the bottom (above the home indicator): icon and tex
|
|
|
497
517
|
| label? | `string` | Name of the navigation landmark (default "Navigation") |
|
|
498
518
|
| current-href? | `string` | Path of the current page – the item with exactly this href gets aria-current="page" |
|
|
499
519
|
| is-current? | `(item: BottomNavigationItem) => boolean` | Own check for the current page, e.g. with the router |
|
|
500
|
-
| link-as? | `
|
|
520
|
+
| link-as? | `string \| Component` | Component for the links, e.g. RouterLink or NuxtLink (gets `to` for links with `to`, else `href`); default <a> |
|
|
501
521
|
| inline? | `boolean` | In the flow of the page instead of fixed at the bottom |
|
|
502
522
|
| classes? | `RecipeClasses<typeof bottomNavigationRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
503
523
|
|
|
@@ -545,7 +565,7 @@ One step of a Breadcrumb (link, or the current page)
|
|
|
545
565
|
| current? | `boolean` | The current page – sets aria-current="page" |
|
|
546
566
|
| icon? | `Component` | Icon component before the label |
|
|
547
567
|
| icon-only? | `boolean` | Show only the icon; the label stays available to screen readers |
|
|
548
|
-
| as-child? | `boolean` | Render the
|
|
568
|
+
| as-child? | `boolean` | Render the slotted link (e.g. RouterLink) with breadcrumb styles |
|
|
549
569
|
| classes? | `RecipeClasses<typeof breadcrumbRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
550
570
|
|
|
551
571
|
|
|
@@ -562,7 +582,7 @@ A meter (role="meter") with the value, the end of the scale and the target as it
|
|
|
562
582
|
| --- | --- | --- |
|
|
563
583
|
| label | `string` | Name of the measure, e.g. "Revenue" |
|
|
564
584
|
| description? | `string` | Smaller text below the name, e.g. the unit |
|
|
565
|
-
|
|
|
585
|
+
| value | `number` | |
|
|
566
586
|
| max | `number` | End of the scale |
|
|
567
587
|
| min? | `number` | Start of the scale (default 0) |
|
|
568
588
|
| target? | `number` | Target value: a marker across the bar |
|
|
@@ -590,10 +610,13 @@ Button in the variants of the design, with leading/trailing icon; loading keeps
|
|
|
590
610
|
| block? | `boolean` | Full width of the container |
|
|
591
611
|
| leading-icon? | `Component` | Icon component rendered before the label |
|
|
592
612
|
| trailing-icon? | `Component` | Icon component rendered after the label |
|
|
613
|
+
| icon-props? | `Record<string, unknown>` | Props passed on to the leading and trailing icon, e.g. { fill: 'currentColor' } for a filled icon or { strokeWidth: 1.5 } |
|
|
593
614
|
| loading? | `boolean` | Shows a spinner and ignores clicks; stays focusable (aria-disabled + aria-busy) so focus is not lost |
|
|
615
|
+
| disabled? | `boolean` | |
|
|
616
|
+
| type? | `'button' \| 'submit' \| 'reset'` | |
|
|
594
617
|
| badge? | `number \| boolean` | Counter (number > 0) or dot (true) after the label |
|
|
595
618
|
| badge-label? | `(count: string \| null) => string` | Added to the accessible name while a badge is shown, e.g. "Notifications 4 new". Receives the visible counter text ("4", "99+") or null for the dot |
|
|
596
|
-
| as-child? | `boolean` | Render the
|
|
619
|
+
| as-child? | `boolean` | Render the slotted element (e.g. a link) with button styles instead of a <button> |
|
|
597
620
|
| classes? | `RecipeClasses<typeof buttonRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
598
621
|
|
|
599
622
|
|
|
@@ -625,9 +648,9 @@ Calendar on the page (no field, no popup): a grid with arrow keys, Page Up/Down,
|
|
|
625
648
|
| Prop | Type | Description |
|
|
626
649
|
| --- | --- | --- |
|
|
627
650
|
| selection-mode? | `'single' \| 'multiple' \| 'range'` | One day, several days, or a range (start and end) |
|
|
628
|
-
| v-model? (modelValue) | `T` | Chosen days as ISO dates; Date objects are accepted too |
|
|
651
|
+
| v-model? (modelValue) | `T` | Chosen days as ISO dates – use with v-model; Date objects are accepted too |
|
|
629
652
|
| default-value? | `T` | |
|
|
630
|
-
| value-type? | `DateValueType` | What
|
|
653
|
+
| value-type? | `DateValueType` | What v-model gets: ISO strings (default) or Date objects |
|
|
631
654
|
| min? | `DateLike` | |
|
|
632
655
|
| max? | `DateLike` | |
|
|
633
656
|
| is-date-unavailable? | `(date: string) => boolean` | Days that cannot be chosen – receives the ISO date |
|
|
@@ -644,8 +667,6 @@ Calendar on the page (no field, no popup): a grid with arrow keys, Page Up/Down,
|
|
|
644
667
|
| weekend-days? | `readonly number[]` | Weekend days (0 = Sunday … 6) marked with data-weekend; default from the locale |
|
|
645
668
|
| allow-deselect? | `boolean` | With selectionMode single: choosing the selected day again clears it |
|
|
646
669
|
| time-zone? | `string` | IANA zone that decides which day is today |
|
|
647
|
-
| render-day? | `RenderDay` | Content of a day instead of its number, e.g. a dot for appointments |
|
|
648
|
-
| style? | `CSSProperties` | |
|
|
649
670
|
| classes? | `RecipeClasses<typeof datePickerRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
650
671
|
|
|
651
672
|
| Event | Payload | Description |
|
|
@@ -668,7 +689,9 @@ Surface for grouped content, optionally with title, media and footer; interactiv
|
|
|
668
689
|
| Prop | Type | Description |
|
|
669
690
|
| --- | --- | --- |
|
|
670
691
|
| interactive? | `boolean` | Hover state and glow, for cards that act as a link or button. Combine with `asChild` and an `<a>`/`<button>` – a clickable `<div>` is not keyboard accessible. |
|
|
671
|
-
| as-child? | `boolean` | Render the
|
|
692
|
+
| as-child? | `boolean` | Render the slotted element (e.g. a link) with card styles instead of a <div> (the parts are not rendered) |
|
|
693
|
+
| title? | `string` | Heading of the card (also via #title) |
|
|
694
|
+
| subtitle? | `string` | Line below the title (also via #subtitle) |
|
|
672
695
|
| title-tag? | `'h2' \| 'h3' \| 'h4' \| 'h5' \| 'h6' \| 'p'` | Element of the title – pick the level that fits the page outline |
|
|
673
696
|
| orientation? | `'vertical' \| 'horizontal'` | `horizontal`: media at the start, the content beside it |
|
|
674
697
|
| classes? | `RecipeClasses<typeof cardRecipe> & RecipeClasses<typeof cardPartsRecipe>` | Extra classes per part of the component, e.g. { base: "…", title: "…" } (see the recipes card and cardParts) |
|
|
@@ -704,9 +727,9 @@ Region "carousel" with slides labelled "Image n of m". Previous/next buttons, on
|
|
|
704
727
|
| loop? | `boolean` | |
|
|
705
728
|
| autoplay? | `boolean \| { delay: number }` | Turns pages by itself (default every 4 s) – always with a pause button (WCAG 2.2.2) |
|
|
706
729
|
| indicators? | `boolean` | Dots below the slides, one per page |
|
|
707
|
-
|
|
|
730
|
+
| controls-position? | `'bottom' \| 'sides'` | Previous and next: in the row below the slides (`bottom`, default) or beside them, vertically centred (`sides`) |
|
|
731
|
+
| v-model:page? | `number` | Current page – use with v-model:page |
|
|
708
732
|
| default-page? | `number` | |
|
|
709
|
-
| style? | `CSSProperties` | |
|
|
710
733
|
| classes? | `RecipeClasses<typeof carouselRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
711
734
|
|
|
712
735
|
| Event | Payload | Description |
|
|
@@ -728,7 +751,7 @@ Select with cascading levels: a menu whose groups open to the side (arrow right/
|
|
|
728
751
|
| Prop | Type | Description |
|
|
729
752
|
| --- | --- | --- |
|
|
730
753
|
| items | `readonly CascadeOption<V>[]` | |
|
|
731
|
-
| v-model? (modelValue) | `V \| null` | Chosen value; any type (see `valueKey`) |
|
|
754
|
+
| v-model? (modelValue) | `V \| null` | Chosen value – use with v-model; any type (see `valueKey`) |
|
|
732
755
|
| default-value? | `V \| null` | |
|
|
733
756
|
| placeholder? | `string` | |
|
|
734
757
|
| separator? | `string` | Separator of the path shown in the trigger ("Germany › Bavaria › Munich") |
|
|
@@ -743,8 +766,7 @@ Select with cascading levels: a menu whose groups open to the side (arrow right/
|
|
|
743
766
|
| size? | `'sm' \| 'md' \| 'lg'` | Height of the field: 32, 40 (default) or 48 px |
|
|
744
767
|
| load-children? | `(option: CascadeOption<V>, request: { signal: AbortSignal }) => Promise<CascadeOption<V>[]>` | Loads the options of a level (`hasChildren: true`) when it opens; the signal aborts it |
|
|
745
768
|
| data-source? | `DataSource<CascadeOption<V>>` | Source of the options of lazy levels (`getChildren`) |
|
|
746
|
-
|
|
|
747
|
-
| style? | `CSSProperties` | |
|
|
769
|
+
| id? | `string` | Id of the field (the trigger, with `filter` the search field), e.g. for a `<label for>` |
|
|
748
770
|
| classes? | `RecipeClasses<typeof cascadeSelectRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
749
771
|
|
|
750
772
|
| Event | Payload | Description |
|
|
@@ -778,15 +800,15 @@ Canvas with role="img" named by the title; the data table is its text alternativ
|
|
|
778
800
|
|
|
779
801
|
| Prop | Type | Description |
|
|
780
802
|
| --- | --- | --- |
|
|
781
|
-
| type | `TType` |
|
|
782
|
-
| data | `ChartData<TType
|
|
783
|
-
| options? | `ChartOptions<TType
|
|
803
|
+
| type | `TType` | Chart.js chart type – it alone decides the types of `data`, `options` and `plugins` |
|
|
804
|
+
| data | `ChartData<NoInfer<TType>>` | |
|
|
805
|
+
| options? | `ChartOptions<NoInfer<TType>>` | Chart.js options – merged over the WireLayer defaults (colours, font, no fixed aspect ratio). Options kept in a variable need their type, e.g. `computed<ChartOptions<'bar'>>(…)`, or `indexAxis: 'y'` becomes a string |
|
|
806
|
+
| plugins? | `Plugin<NoInfer<TType>>[]` | Inline Chart.js plugins of this chart (global ones: `Chart.register`) – changing them re-creates the chart |
|
|
784
807
|
| title | `string` | Title of the chart, also its accessible name |
|
|
785
808
|
| hide-title? | `boolean` | Keep the title for screen readers only, e.g. inside a card that already has a heading |
|
|
786
809
|
| height? | `string` | Height of the chart area (CSS length) |
|
|
787
810
|
| table? | `boolean` | The data as a table below the chart (opens on demand) – the text alternative for the canvas |
|
|
788
811
|
| format-value? | `(value: number) => string` | |
|
|
789
|
-
| style? | `CSSProperties` | |
|
|
790
812
|
| classes? | `RecipeClasses<typeof chartRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
791
813
|
|
|
792
814
|
|
|
@@ -801,7 +823,7 @@ A message: author and time (only for screen readers when grouped), the bubble, t
|
|
|
801
823
|
|
|
802
824
|
| Prop | Type | Description |
|
|
803
825
|
| --- | --- | --- |
|
|
804
|
-
| text? | `string` | Text of the message – Markdown unless `markdown` is false (
|
|
826
|
+
| text? | `string` | Text of the message – Markdown unless `markdown` is false (the default slot replaces it) |
|
|
805
827
|
| markdown? | `boolean` | Render the text as Markdown (default true); otherwise plain text with its line breaks |
|
|
806
828
|
| author? | `string` | Name of the author, above the message |
|
|
807
829
|
| avatar? | `string` | Avatar image (default: the initials of the author) |
|
|
@@ -839,7 +861,7 @@ Message list: role="log" (announcements of new messages come from the live annou
|
|
|
839
861
|
| now? | `string \| number \| Date` | Today's date – the date lines then say "Today" and "Yesterday" (pass it from the server for hydration) |
|
|
840
862
|
| markdown? | `boolean` | Message texts are Markdown (default true) |
|
|
841
863
|
| announce? | `boolean` | Announces new messages of others – streamed ones once they are complete (default true) |
|
|
842
|
-
| has-more? | `boolean` | Older messages can be loaded: a button at the top
|
|
864
|
+
| has-more? | `boolean` | Older messages can be loaded: a button at the top emits loadMore |
|
|
843
865
|
| loading? | `boolean` | |
|
|
844
866
|
| empty-text? | `string` | Text without messages |
|
|
845
867
|
| classes? | `RecipeClasses<typeof chatMessagesRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
@@ -863,14 +885,14 @@ A form with a growing text field: Enter sends, Shift+Enter adds a line; while re
|
|
|
863
885
|
|
|
864
886
|
| Prop | Type | Description |
|
|
865
887
|
| --- | --- | --- |
|
|
866
|
-
| v-model? (modelValue) | `string` | The text
|
|
888
|
+
| v-model? (modelValue) | `string` | The text – use with v-model |
|
|
867
889
|
| default-value? | `string` | |
|
|
868
890
|
| label? | `string` | Accessible name of the field (default "Message") |
|
|
869
891
|
| placeholder? | `string` | |
|
|
870
892
|
| disabled? | `boolean` | |
|
|
871
|
-
| responding? | `boolean` | A reply is being written: the send button becomes a stop button (
|
|
893
|
+
| responding? | `boolean` | A reply is being written: the send button becomes a stop button (emits stop) |
|
|
872
894
|
| attachments? | `boolean` | A button to attach files |
|
|
873
|
-
| files? | `File[]` | Attached files
|
|
895
|
+
| v-model:files? | `File[]` | Attached files – use with v-model:files |
|
|
874
896
|
| accept? | `string` | Accepted file types for attachments, e.g. "image/*,.pdf" |
|
|
875
897
|
| max-rows? | `number` | Lines the field grows to before it scrolls (default 8) |
|
|
876
898
|
| send-on? | `'enter' \| 'mod-enter'` | `enter` (default): Enter sends, Shift+Enter adds a line; `mod-enter`: Ctrl/Cmd+Enter sends |
|
|
@@ -915,7 +937,7 @@ The reasoning of an answer: collapsed by default, "Thinking …" while it is bei
|
|
|
915
937
|
| Prop | Type | Description |
|
|
916
938
|
| --- | --- | --- |
|
|
917
939
|
| active? | `boolean` | Still thinking: "Thinking …" with a spinner, aria-busy |
|
|
918
|
-
| text? | `string` | The reasoning (plain text;
|
|
940
|
+
| text? | `string` | The reasoning (plain text; the default slot replaces it) |
|
|
919
941
|
| duration? | `number` | Seconds it took – shown when done |
|
|
920
942
|
| default-open? | `boolean` | Open at first |
|
|
921
943
|
| classes? | `RecipeClasses<typeof chatDetailsRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
@@ -951,10 +973,14 @@ Checkbox with label (also indeterminate), works inside Field
|
|
|
951
973
|
|
|
952
974
|
| Prop | Type | Description |
|
|
953
975
|
| --- | --- | --- |
|
|
954
|
-
| checked? | `CheckedState` |
|
|
976
|
+
| v-model:checked? | `CheckedState` | Controlled state – use with v-model:checked |
|
|
955
977
|
| default-checked? | `CheckedState` | |
|
|
978
|
+
| disabled? | `boolean` | |
|
|
956
979
|
| invalid? | `boolean` | |
|
|
957
|
-
|
|
|
980
|
+
| required? | `boolean` | |
|
|
981
|
+
| name? | `string` | |
|
|
982
|
+
| value? | `string` | |
|
|
983
|
+
| id? | `string` | Id of the check box (the hidden input), e.g. for a `<label for>` |
|
|
958
984
|
| classes? | `RecipeClasses<typeof checkboxRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
959
985
|
|
|
960
986
|
| Event | Payload | Description |
|
|
@@ -974,10 +1000,19 @@ A large card that is one checkbox: title (name), description and price (descript
|
|
|
974
1000
|
|
|
975
1001
|
| Prop | Type | Description |
|
|
976
1002
|
| --- | --- | --- |
|
|
977
|
-
|
|
|
978
|
-
|
|
|
1003
|
+
| title | `string` | Title – the accessible name of the checkbox |
|
|
1004
|
+
| description? | `string` | Text below the title – read as the description |
|
|
1005
|
+
| icon? | `Component` | Icon component in a box at the start |
|
|
1006
|
+
| price? | `string` | Price or other figure at the end, e.g. "$29 / month" – part of the description |
|
|
1007
|
+
| value? | `string` | Value inside a CheckboxGroup |
|
|
1008
|
+
| v-model:checked? | `CheckedState` | Controlled state – use with v-model:checked (alone; in a CheckboxGroup the group holds the value) |
|
|
979
1009
|
| default-checked? | `CheckedState` | |
|
|
1010
|
+
| disabled? | `boolean` | |
|
|
980
1011
|
| invalid? | `boolean` | |
|
|
1012
|
+
| required? | `boolean` | |
|
|
1013
|
+
| name? | `string` | |
|
|
1014
|
+
| id? | `string` | Id of the check box (the hidden input), e.g. for a `<label for>` |
|
|
1015
|
+
| classes? | `RecipeClasses<typeof selectionCardRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
981
1016
|
|
|
982
1017
|
| Event | Payload | Description |
|
|
983
1018
|
| --- | --- | --- |
|
|
@@ -996,8 +1031,16 @@ role="group" named by its label, described by helper and error text; Checkbox/Ch
|
|
|
996
1031
|
|
|
997
1032
|
| Prop | Type | Description |
|
|
998
1033
|
| --- | --- | --- |
|
|
999
|
-
| v-model? (modelValue) | `string[]` | Values of the ticked checkboxes
|
|
1034
|
+
| v-model? (modelValue) | `string[]` | Values of the ticked checkboxes – use with v-model |
|
|
1000
1035
|
| default-value? | `string[]` | |
|
|
1036
|
+
| label? | `string` | Visible label of the group (names it); otherwise pass aria-label |
|
|
1037
|
+
| helper-text? | `string` | |
|
|
1038
|
+
| error? | `string` | Error message – also marks the group and its checkboxes invalid |
|
|
1039
|
+
| invalid? | `boolean` | |
|
|
1040
|
+
| required? | `boolean` | Shows the required mark after the label |
|
|
1041
|
+
| disabled? | `boolean` | |
|
|
1042
|
+
| read-only? | `boolean` | |
|
|
1043
|
+
| name? | `string` | Name of the inputs for form submission |
|
|
1001
1044
|
| max? | `number` | At most this many can be ticked – the others are disabled until one is unticked (announced) |
|
|
1002
1045
|
| orientation? | `'vertical' \| 'horizontal'` | vertical (default) or horizontal |
|
|
1003
1046
|
| columns? | `number` | Cards in a grid with this many columns (one column on small screens) – for CheckboxCard |
|
|
@@ -1019,11 +1062,12 @@ One option of a ChipGroup (a toggle button); outside a ChipGroup a standalone ch
|
|
|
1019
1062
|
|
|
1020
1063
|
| Prop | Type | Description |
|
|
1021
1064
|
| --- | --- | --- |
|
|
1022
|
-
|
|
|
1065
|
+
| value? | `string` | Value of the option inside a ChipGroup (required there; a standalone chip does not need it) |
|
|
1023
1066
|
| icon? | `Component` | Icon component before the label |
|
|
1024
|
-
|
|
|
1067
|
+
| disabled? | `boolean` | |
|
|
1068
|
+
| label? | `string` | Text of a standalone chip (or the default slot); also names its remove button |
|
|
1025
1069
|
| avatar? | `string` | Standalone chip: small round image before the label (decorative) |
|
|
1026
|
-
| removable? | `boolean` | Standalone chip: shows a remove button that
|
|
1070
|
+
| removable? | `boolean` | Standalone chip: shows a remove button that emits `remove` |
|
|
1027
1071
|
| remove-label? | `string` | Accessible name of the remove button (default: "Remove <label>") |
|
|
1028
1072
|
| size? | `ChipSize` | Standalone chip: size |
|
|
1029
1073
|
| classes? | `RecipeClasses<typeof chipGroupRecipe> & RecipeClasses<typeof chipRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipes chipGroup and chip) |
|
|
@@ -1044,10 +1088,10 @@ Filter chips: one or several options as toggle buttons
|
|
|
1044
1088
|
|
|
1045
1089
|
| Prop | Type | Description |
|
|
1046
1090
|
| --- | --- | --- |
|
|
1047
|
-
| v-model? (modelValue) | `string[]` |
|
|
1091
|
+
| v-model? (modelValue) | `string[]` | Selected values – use with v-model |
|
|
1048
1092
|
| default-value? | `string[]` | |
|
|
1049
1093
|
| multiple? | `boolean` | Allow several selected chips (default) or only one |
|
|
1050
|
-
| label? | `string` | Accessible name of the group |
|
|
1094
|
+
| label? | `string` | Accessible name of the group – inside a Field with a label, the Field's label names it |
|
|
1051
1095
|
| disabled? | `boolean` | |
|
|
1052
1096
|
| classes? | `RecipeClasses<typeof chipGroupRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
1053
1097
|
|
|
@@ -1077,7 +1121,7 @@ Code block with syntax colours; the scroll area is focusable, the copy button co
|
|
|
1077
1121
|
| header? | `boolean` | The header with title, language and buttons (default true) |
|
|
1078
1122
|
| max-height? | `string` | Height limit (CSS length); longer code scrolls – or, with `expandable`, opens with "Show all code" |
|
|
1079
1123
|
| expandable? | `boolean` | With `maxHeight`: the code is cut off there and a button shows all of it |
|
|
1080
|
-
| wrap? | `boolean` | Long lines wrap instead of scrolling
|
|
1124
|
+
| v-model:wrap? | `boolean` | Long lines wrap instead of scrolling – use with v-model:wrap |
|
|
1081
1125
|
| wrap-toggle? | `boolean` | A button in the header switches line wrapping |
|
|
1082
1126
|
| diff? | `boolean` | Marks lines starting with "+" as added and "-" as removed (e.g. a patch) |
|
|
1083
1127
|
| added-lines? | `readonly number[]` | Added lines (1-based) – shown with "+" in front |
|
|
@@ -1102,7 +1146,7 @@ Several files: tabs with the file names (and an icon by type) above the shown co
|
|
|
1102
1146
|
| Prop | Type | Description |
|
|
1103
1147
|
| --- | --- | --- |
|
|
1104
1148
|
| files | `readonly CodeFile[]` | |
|
|
1105
|
-
| v-model? (modelValue) | `string` | Name of the shown file
|
|
1149
|
+
| v-model? (modelValue) | `string` | Name of the shown file – use with v-model |
|
|
1106
1150
|
| default-value? | `string` | |
|
|
1107
1151
|
| label? | `string` | Accessible name of the tabs (default "Files") |
|
|
1108
1152
|
| line-numbers? | `boolean` | |
|
|
@@ -1145,7 +1189,7 @@ Colour field: type a colour (hex, rgb(), hsl(), oklch()) or open the picker with
|
|
|
1145
1189
|
|
|
1146
1190
|
| Prop | Type | Description |
|
|
1147
1191
|
| --- | --- | --- |
|
|
1148
|
-
| v-model? (modelValue) | `string` | Colour as text in `format`
|
|
1192
|
+
| v-model? (modelValue) | `string` | Colour as text in `format` – use with v-model |
|
|
1149
1193
|
| default-value? | `string` | |
|
|
1150
1194
|
| format? | `ColorFormat` | Format of the value and the field: hex (default), rgb, hsl, hsb or oklch; typing accepts all of them |
|
|
1151
1195
|
| alpha? | `boolean` | Adds an opacity slider |
|
|
@@ -1153,7 +1197,11 @@ Colour field: type a colour (hex, rgb(), hsl(), oklch()) or open the picker with
|
|
|
1153
1197
|
| with-picker? | `boolean` | Area and sliders in the popup (default true); false: only the `swatches` |
|
|
1154
1198
|
| eye-dropper? | `boolean` | Button to pick a colour from the screen (where supported) |
|
|
1155
1199
|
| channel-inputs? | `boolean` | Number fields for the channels in the popup |
|
|
1200
|
+
| placeholder? | `string` | |
|
|
1201
|
+
| disabled? | `boolean` | |
|
|
1202
|
+
| read-only? | `boolean` | |
|
|
1156
1203
|
| invalid? | `boolean` | |
|
|
1204
|
+
| name? | `string` | Name of the field for form submission (its text) |
|
|
1157
1205
|
| classes? | `RecipeClasses<typeof colorPickerRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
1158
1206
|
|
|
1159
1207
|
| Event | Payload | Description |
|
|
@@ -1171,7 +1219,7 @@ Colour field: the button opens a panel with area, hue (and opacity) slider, hex
|
|
|
1171
1219
|
|
|
1172
1220
|
| Prop | Type | Description |
|
|
1173
1221
|
| --- | --- | --- |
|
|
1174
|
-
| v-model? (modelValue) | `string` | Colour, e.g. "#1e66f5" ("#1e66f580" with alpha; in `format`) |
|
|
1222
|
+
| v-model? (modelValue) | `string` | Colour, e.g. "#1e66f5" ("#1e66f580" with alpha; in `format`) – use with v-model |
|
|
1175
1223
|
| default-value? | `string` | |
|
|
1176
1224
|
| alpha? | `boolean` | Adds an opacity slider; the value then has 8 hex digits |
|
|
1177
1225
|
| swatches? | `readonly string[]` | Preset colours shown below the picker |
|
|
@@ -1183,8 +1231,7 @@ Colour field: the button opens a panel with area, hue (and opacity) slider, hex
|
|
|
1183
1231
|
| read-only? | `boolean` | |
|
|
1184
1232
|
| invalid? | `boolean` | |
|
|
1185
1233
|
| name? | `string` | |
|
|
1186
|
-
|
|
|
1187
|
-
| style? | `CSSProperties` | |
|
|
1234
|
+
| id? | `string` | Id of the field (the button), e.g. for a `<label for>` |
|
|
1188
1235
|
| classes? | `RecipeClasses<typeof colorPickerRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
1189
1236
|
|
|
1190
1237
|
| Event | Payload | Description |
|
|
@@ -1205,7 +1252,7 @@ Colours as a radio group (arrow keys): every swatch is named by its colour name,
|
|
|
1205
1252
|
| Prop | Type | Description |
|
|
1206
1253
|
| --- | --- | --- |
|
|
1207
1254
|
| items | `readonly ColorSwatch[]` | The colours to choose from |
|
|
1208
|
-
| v-model? (modelValue) | `string \| null` | Chosen colour (its value
|
|
1255
|
+
| v-model? (modelValue) | `string \| null` | Chosen colour (its value) – use with v-model |
|
|
1209
1256
|
| default-value? | `string \| null` | |
|
|
1210
1257
|
| label? | `string` | Visible label of the group (default "Color"; or aria-label) |
|
|
1211
1258
|
| show-labels? | `boolean` | Shows the names below the swatches (otherwise only for screen readers) |
|
|
@@ -1233,12 +1280,15 @@ Text field with suggestions (autocomplete): type to filter, arrow keys to choose
|
|
|
1233
1280
|
| Prop | Type | Description |
|
|
1234
1281
|
| --- | --- | --- |
|
|
1235
1282
|
| items | `readonly T[]` | Options: SelectItem objects – or any objects or values, read with itemValue/itemLabel/itemDisabled/itemGroup |
|
|
1236
|
-
| v-model? (modelValue) | `V \| null` | Chosen value; any type (string, number, boolean, object) |
|
|
1283
|
+
| v-model? (modelValue) | `V \| null` | Chosen value – use with v-model; any type (string, number, boolean, object) |
|
|
1237
1284
|
| default-value? | `V \| null` | |
|
|
1238
|
-
| filter? | `boolean` | Filters the items by the typed text (ignores case and accents) |
|
|
1239
|
-
| manual-filter? | `boolean` | The items are filtered elsewhere (server): no local filtering, listen to
|
|
1285
|
+
| filter? | `boolean` | Filters the items by the typed text (label and itemKeywords; ignores case and accents) |
|
|
1286
|
+
| manual-filter? | `boolean` | The items are filtered elsewhere (server): no local filtering, listen to filterChange |
|
|
1240
1287
|
| allow-custom-value? | `boolean` | Typed text that matches no item becomes the value (a string) on Enter or when leaving the field – an editable select |
|
|
1241
1288
|
| empty-text? | `string` | Shown when nothing matches |
|
|
1289
|
+
| placeholder? | `string` | |
|
|
1290
|
+
| disabled? | `boolean` | |
|
|
1291
|
+
| read-only? | `boolean` | |
|
|
1242
1292
|
| invalid? | `boolean` | |
|
|
1243
1293
|
| required? | `boolean` | |
|
|
1244
1294
|
| name? | `string` | |
|
|
@@ -1246,15 +1296,17 @@ Text field with suggestions (autocomplete): type to filter, arrow keys to choose
|
|
|
1246
1296
|
| item-label? | `ItemAccessor<T, string>` | Label of an item: property name or function (default: `label`) |
|
|
1247
1297
|
| item-disabled? | `ItemAccessor<T, boolean>` | Disabled state of an item: property name or function (default: `disabled`) |
|
|
1248
1298
|
| item-group? | `ItemAccessor<T, string \| null \| undefined>` | Group heading of an item: property name or function (default: `group`); items are listed per group |
|
|
1299
|
+
| item-keywords? | `ItemAccessor<T, string \| readonly string[] \| null \| undefined>` | More text the search finds an item by, besides its label: property name or function, one text or a list (default: `keywords`), e.g. the name of the item's category |
|
|
1249
1300
|
| value-key? | `ItemAccessor<V, string \| number>` | Identifies object values (property name or function), e.g. "id" – without it objects are compared by content |
|
|
1250
1301
|
| clearable? | `boolean` | Button that clears value and text (default true; not a tab stop – the text can be deleted, too) |
|
|
1251
1302
|
| loading? | `boolean` | Shows a spinner in the field and "Loading" in the list (aria-busy) |
|
|
1252
1303
|
| loading-text? | `string` | Text of the loading row in the list |
|
|
1253
1304
|
| size? | `SelectSize` | Height of the field: 32, 40 (default) or 48 px |
|
|
1254
|
-
| has-more? | `boolean` | More items can be loaded: scrolling to the end of the list
|
|
1305
|
+
| has-more? | `boolean` | More items can be loaded: scrolling to the end of the list emits loadMore |
|
|
1255
1306
|
| data-source? | `DataSource<T>` | Loads the options for the typed text (after a typing pause, outdated answers dropped; pages while scrolling); `getItemsByKeys` gives the label of a chosen value that is not loaded |
|
|
1256
1307
|
| min-search-length? | `number` | Fewest characters typed before the data source is asked |
|
|
1257
1308
|
| page-size? | `number` | Options per request of the data source (default 50) |
|
|
1309
|
+
| id? | `string` | Id of the input, e.g. for a `<label for>` |
|
|
1258
1310
|
| classes? | `RecipeClasses<typeof comboboxRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
1259
1311
|
|
|
1260
1312
|
| Event | Payload | Description |
|
|
@@ -1279,17 +1331,17 @@ Dialog with a search field (combobox) and the matching items (listbox): typing f
|
|
|
1279
1331
|
| Prop | Type | Description |
|
|
1280
1332
|
| --- | --- | --- |
|
|
1281
1333
|
| items | `readonly CommandItem[]` | |
|
|
1282
|
-
| open? | `boolean` |
|
|
1283
|
-
| data-source? | `DataSource<CommandItem>` | Results from a server: asked with the search text after a typing pause (outdated answers dropped); they come after the matching `items` |
|
|
1284
|
-
| min-search-length? | `number` | Fewest characters the search needs before the data source is asked (default 0) |
|
|
1334
|
+
| v-model:open? | `boolean` | Open state – use with v-model:open |
|
|
1285
1335
|
| hotkey? | `boolean \| string \| string[]` | Opens with Strg+K / ⌘K anywhere on the page – or with own shortcuts: "mod+p", ["mod+k", "/"] (mod is Strg or ⌘; shortcuts without Strg/⌘/Alt do not fire while typing in a field). `false` switches it off |
|
|
1286
1336
|
| placeholder? | `string` | |
|
|
1287
1337
|
| limit? | `number` | At most this many results |
|
|
1288
|
-
| filter? | `((item: CommandItem, query: string) => number \| boolean) \| false` | Own matching: a score per item (higher first, `false`/0 hides it) – or `false` to show the items as they are (results from the server, see `
|
|
1338
|
+
| filter? | `((item: CommandItem, query: string) => number \| boolean) \| false` | Own matching: a score per item (higher first, `false`/0 hides it) – or `false` to show the items as they are (results from the server, see `search`) |
|
|
1289
1339
|
| highlight? | `boolean` | Marks the searched text in the labels |
|
|
1290
1340
|
| clear-query-on-close? | `boolean` | Starts with an empty search field every time it opens |
|
|
1291
1341
|
| close-on-select? | `boolean` | Closes after running an item |
|
|
1292
|
-
| loading? | `boolean` | Results are being loaded (e.g. after `
|
|
1342
|
+
| loading? | `boolean` | Results are being loaded (e.g. after `search`) |
|
|
1343
|
+
| data-source? | `DataSource<CommandItem>` | Results from a server: asked with the search text after a typing pause (outdated answers dropped); they come after the matching `items` |
|
|
1344
|
+
| min-search-length? | `number` | Fewest characters the search needs before the data source is asked (default 0) |
|
|
1293
1345
|
| empty-text? | `string` | Text when nothing matches |
|
|
1294
1346
|
| classes? | `RecipeClasses<typeof commandPaletteRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
1295
1347
|
|
|
@@ -1317,7 +1369,7 @@ Two images on top of each other; the range input over them moves the line (drag,
|
|
|
1317
1369
|
| label? | `string` | Accessible name of the slider |
|
|
1318
1370
|
| before-label? | `string` | |
|
|
1319
1371
|
| after-label? | `string` | |
|
|
1320
|
-
| v-model? (modelValue) | `number` | Share of the before image in percent |
|
|
1372
|
+
| v-model? (modelValue) | `number` | Share of the before image in percent – use with v-model |
|
|
1321
1373
|
| default-value? | `number` | |
|
|
1322
1374
|
| aspect-ratio? | `string` | Aspect ratio of the area (CSS) |
|
|
1323
1375
|
| classes? | `RecipeClasses<typeof compareRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
@@ -1338,6 +1390,22 @@ Bars and lines in one chart (series[].type), e.g. revenue as bars and margin as
|
|
|
1338
1390
|
|
|
1339
1391
|
| Prop | Type | Description |
|
|
1340
1392
|
| --- | --- | --- |
|
|
1393
|
+
| data | `readonly ChartRow[]` | The rows: one object per category with a value per series |
|
|
1394
|
+
| category-key | `string` | Property of each row with the category (x axis) |
|
|
1395
|
+
| series | `readonly ChartSeries[]` | The series: key of the value, label, colour, axis, stack … |
|
|
1396
|
+
| title | `string` | Title of the chart, also its accessible name |
|
|
1397
|
+
| hide-title? | `boolean` | Keep the title for screen readers only |
|
|
1398
|
+
| height? | `string` | Height of the chart area (CSS length, default 18rem) |
|
|
1399
|
+
| table? | `boolean` | The data as a table below the chart (opens on demand) – the text alternative (default true) |
|
|
1400
|
+
| format-value? | `(value: number) => string` | Formats values in the axis, tooltips, legend and table (default: numbers in the locale) |
|
|
1401
|
+
| references? | `readonly ChartReference[]` | Reference lines (`value`) and areas (`from`–`to`), on the value axis or with `axis: 'x'` on the categories |
|
|
1402
|
+
| scale? | `'linear' \| 'logarithmic'` | Logarithmic value axis |
|
|
1403
|
+
| legend? | `boolean` | Legend (default: with more than one series) |
|
|
1404
|
+
| brush? | `boolean` | A small overview below with a range to zoom into (keyboard: the slider's arrow keys) |
|
|
1405
|
+
| v-model:range? | `[number, number]` | Shown rows with `brush` (inclusive indexes) – use with v-model:range |
|
|
1406
|
+
| default-range? | `[number, number]` | |
|
|
1407
|
+
| options? | `Record<string, unknown>` | Chart.js options – merged over the WireLayer defaults |
|
|
1408
|
+
| classes? | `RecipeClasses<typeof chartRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe chart) |
|
|
1341
1409
|
| curved? | `boolean` | Curved lines |
|
|
1342
1410
|
| stacked? | `boolean` | Stack the bars |
|
|
1343
1411
|
|
|
@@ -1357,9 +1425,9 @@ Nested and/or groups of rules: field, operator and a value editor matching the f
|
|
|
1357
1425
|
|
|
1358
1426
|
| Prop | Type | Description |
|
|
1359
1427
|
| --- | --- | --- |
|
|
1360
|
-
|
|
|
1361
|
-
| v-model? (modelValue) | `ConditionGroup` | The condition tree (JSON: groups with combinator and children, rules with field, operator, value) – controlled |
|
|
1428
|
+
| v-model? (modelValue) | `ConditionGroup` | The condition tree (JSON: groups with combinator and children, rules with field, operator, value) – v-model |
|
|
1362
1429
|
| default-value? | `ConditionGroup` | |
|
|
1430
|
+
| fields | `readonly ConditionField[]` | Fields the rules can test: id, label, type (text, number, date, select, boolean), options of a select |
|
|
1363
1431
|
| label? | `string` | Name of the whole tree (default "Conditions") |
|
|
1364
1432
|
| max-depth? | `number` | How deep groups can be nested (default 3) |
|
|
1365
1433
|
| disabled? | `boolean` | |
|
|
@@ -1403,6 +1471,8 @@ Place once in the app; ask with `await confirm({ title, … })` or `await prompt
|
|
|
1403
1471
|
| Prop | Type | Description |
|
|
1404
1472
|
| --- | --- | --- |
|
|
1405
1473
|
| close-label? | `string` | Accessible name of the close button |
|
|
1474
|
+
| confirm-button? | `ConfirmButtonOptions` | Look of the confirm button in every request (default: size sm, `primary`, `danger` for status danger) |
|
|
1475
|
+
| cancel-button? | `ConfirmButtonOptions` | Look of the cancel button in every request (default: size sm, `outline`) |
|
|
1406
1476
|
| classes? | `RecipeClasses<typeof dialogRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
1407
1477
|
|
|
1408
1478
|
|
|
@@ -1441,7 +1511,7 @@ Centred content with a maximum width and side padding
|
|
|
1441
1511
|
| --- | --- | --- |
|
|
1442
1512
|
| size? | `'sm' \| 'md' \| 'lg' \| 'xl' \| 'full'` | Maximum width: sm (42rem), md (48rem), lg (64rem, default), xl (80rem) or full |
|
|
1443
1513
|
| flush? | `boolean` | Without the side padding |
|
|
1444
|
-
| as? | `
|
|
1514
|
+
| as? | `string \| Component` | Element to render, e.g. "section" (default div) |
|
|
1445
1515
|
| classes? | `RecipeClasses<typeof containerRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
1446
1516
|
|
|
1447
1517
|
|
|
@@ -1458,6 +1528,7 @@ Opens at the pointer on right click, on touch screens with a long press (and wit
|
|
|
1458
1528
|
| --- | --- | --- |
|
|
1459
1529
|
| items | `readonly MenuEntry[]` | Items, groups, separators, checkbox items, radio groups and submenus – as in Menu |
|
|
1460
1530
|
| label? | `string` | Accessible name of the menu – without it the menu is named by the area's content |
|
|
1531
|
+
| link-as? | `Component \| string` | Component for link items, e.g. RouterLink or NuxtLink (gets `to` for items with `to`, else `href`); default <a> |
|
|
1461
1532
|
| classes? | `RecipeClasses<typeof menuRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
1462
1533
|
|
|
1463
1534
|
| Event | Payload | Description |
|
|
@@ -1481,11 +1552,10 @@ Copies the value; the icon turns into a check and "Copied to clipboard" is annou
|
|
|
1481
1552
|
|
|
1482
1553
|
| Prop | Type | Description |
|
|
1483
1554
|
| --- | --- | --- |
|
|
1484
|
-
|
|
|
1555
|
+
| value | `string` | Text that is copied |
|
|
1485
1556
|
| show-value? | `boolean` | Shows the value next to the button (monospace) |
|
|
1486
1557
|
| label? | `string` | Accessible name, e.g. "Copy IP address" |
|
|
1487
1558
|
| size? | `Size` | |
|
|
1488
|
-
| style? | `CSSProperties` | |
|
|
1489
1559
|
| classes? | `RecipeClasses<typeof copyButtonRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
1490
1560
|
|
|
1491
1561
|
|
|
@@ -1557,7 +1627,7 @@ One term and its value in a DataList
|
|
|
1557
1627
|
|
|
1558
1628
|
| Prop | Type | Description |
|
|
1559
1629
|
| --- | --- | --- |
|
|
1560
|
-
| label | `string` | The term (<dt>); the
|
|
1630
|
+
| label | `string` | The term (<dt>); the slot is its value (<dd>) |
|
|
1561
1631
|
| classes? | `RecipeClasses<typeof dataListRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
1562
1632
|
|
|
1563
1633
|
|
|
@@ -1572,81 +1642,88 @@ Data table on TanStack Table: sorting (also by several columns), search, filter
|
|
|
1572
1642
|
|
|
1573
1643
|
| Prop | Type | Description |
|
|
1574
1644
|
| --- | --- | --- |
|
|
1575
|
-
| data? | `readonly
|
|
1576
|
-
| data-source? | `DataTableDataSource<
|
|
1645
|
+
| data? | `readonly T[]` | The rows (with `dataSource` the table loads them itself) |
|
|
1646
|
+
| data-source? | `DataTableDataSource<T>` | Rows from a server instead of `data` and `manual`: the table asks `getRows` (page, sorting, filters, search, grouping, abort signal) whenever they change, cancels outdated requests, goes back to page 1 when filters, sorting or the search change, shows errors with "Try again" – `refresh()` asks again |
|
|
1577
1647
|
| cache-time? | `number` | How long answers of `dataSource` are reused for the same query, in ms (default 0: always ask) |
|
|
1578
1648
|
| search-debounce? | `number` | Pause after typing in the search before `dataSource` is asked, in ms (default 300) |
|
|
1579
1649
|
| pivot? | `DataTablePivot` | Cross table of `data`: rows grouped by the values of `rows`, a column per value combination of `columns`, the `values` aggregated in the cells, totals per row and column (ids are column ids of `columns`) |
|
|
1580
|
-
| columns | `readonly DataTableColumn<
|
|
1650
|
+
| columns | `readonly DataTableColumn<T>[]` | |
|
|
1581
1651
|
| caption | `string` | Accessible name of the table (visually hidden caption) |
|
|
1582
|
-
| get-row-id? | `(row:
|
|
1583
|
-
| page-size? | `number` | Rows per page – enables pagination (
|
|
1652
|
+
| get-row-id? | `(row: T, index: number) => string` | |
|
|
1653
|
+
| v-model:page-size? | `number` | Rows per page – enables pagination (v-model:page-size with `pageSizeOptions`) |
|
|
1584
1654
|
| page-size-options? | `readonly number[]` | Choices for the rows per page, shown next to the pagination |
|
|
1585
|
-
| page? | `number` | Current page (1-based)
|
|
1586
|
-
| first? | `number` | Index of the first row of the current page (0-based) – instead of `page
|
|
1655
|
+
| v-model:page? | `number` | Current page (1-based) – use with v-model:page |
|
|
1656
|
+
| v-model:first? | `number` | Index of the first row of the current page (0-based) – instead of `page`, use with v-model:first |
|
|
1587
1657
|
| paginator-position? | `'top' \| 'bottom'` | Pagination below (default) or above the table |
|
|
1588
|
-
|
|
|
1589
|
-
|
|
|
1658
|
+
| paginator-edges? | `boolean` | Buttons to the first and the last page in the pagination |
|
|
1659
|
+
| paginator-align? | `DataTablePaginatorAlign` | Pagination row: rows per page at the start, pages at the end (`between`, default) – or both together |
|
|
1660
|
+
| v-model:sorting? | `DataTableSort \| DataTableSort[] \| null` | Current sorting – use with v-model:sorting; an array in the multiple mode |
|
|
1661
|
+
| default-sorting? | `DataTableSort \| DataTableSort[] \| null` | Sorting at the start, without v-model |
|
|
1590
1662
|
| sort-mode? | `'single' \| 'multiple'` | `multiple`: Shift+click (or the column menu) sorts by further columns |
|
|
1591
1663
|
| manual? | `boolean` | Server mode: `data` is the current page, already sorted and filtered; requires `rowCount` |
|
|
1592
1664
|
| row-count? | `number` | |
|
|
1593
|
-
| selectable? | `boolean` | Selection column |
|
|
1665
|
+
| selectable? | `boolean` | Selection column – selected row ids via v-model:selection |
|
|
1594
1666
|
| selection-mode? | `'multiple' \| 'single'` | `multiple` (checkboxes, default) or `single` (radio buttons) |
|
|
1595
|
-
| selection? | `string[]` | |
|
|
1667
|
+
| v-model:selection? | `string[]` | |
|
|
1668
|
+
| v-model:selected-rows? | `readonly T[]` | The selected rows as objects – use with v-model:selected-rows (instead of or next to `selection`); rows are found by `getRowId` |
|
|
1596
1669
|
| select-on-row-click? | `boolean` | A click on the row (not on its controls) selects it; Shift+click selects a range |
|
|
1597
|
-
| is-row-selectable? | `(row:
|
|
1598
|
-
| select-all-mode? | `'page' \| 'all'` | `all` with `manual`: "select all" means every row on every page –
|
|
1599
|
-
| all-selection? | `DataTableAllSelection \| null` | "Select all" across the pages of a server table (`selectAllMode="all"`)
|
|
1600
|
-
| row-label? | `(row:
|
|
1670
|
+
| is-row-selectable? | `(row: T) => boolean` | Rows that cannot be selected get a disabled checkbox |
|
|
1671
|
+
| select-all-mode? | `'page' \| 'all'` | `all` with `manual`: "select all" means every row on every page – v-model:all-selection then holds `{ mode: 'all', except }` (the rows unchecked since); without `manual` all rows of `data` are selected |
|
|
1672
|
+
| v-model:all-selection? | `DataTableAllSelection \| null` | "Select all" across the pages of a server table (`selectAllMode="all"`) – use with v-model:all-selection |
|
|
1673
|
+
| row-label? | `(row: T, index: number) => string` | Names a row for its controls ("Select <label>") |
|
|
1601
1674
|
| loading? | `boolean` | |
|
|
1602
1675
|
| loading-variant? | `'overlay' \| 'skeleton'` | While loading: the table fades (`overlay`, default) or shows placeholder rows (`skeleton`) |
|
|
1603
1676
|
| empty-text? | `string` | |
|
|
1604
1677
|
| no-results-text? | `string` | Shown when the filters or the search leave no row (default: `emptyText`) |
|
|
1605
1678
|
| loading-text? | `string` | |
|
|
1606
1679
|
| select-all-label? | `string` | |
|
|
1607
|
-
| get-sub-rows? | `(row:
|
|
1680
|
+
| get-sub-rows? | `(row: T) => T[] \| undefined` | TreeTable: child rows of a row – they appear indented below it and can be expanded |
|
|
1608
1681
|
| tree-filter-mode? | `'lenient' \| 'strict'` | TreeTable filters: `strict` (default) – a row must match itself; `lenient` – a match in a child keeps its parents |
|
|
1609
|
-
| expanded? | `string[]` | Expanded rows (ids)
|
|
1682
|
+
| v-model:expanded? | `string[]` | Expanded rows (ids) – use with v-model:expanded; also the rows with open details (#expansion) |
|
|
1610
1683
|
| default-expanded? | `string[]` | |
|
|
1611
|
-
| expand-label? | `(row:
|
|
1612
|
-
|
|
|
1613
|
-
| advanced-filter
|
|
1614
|
-
|
|
|
1615
|
-
|
|
|
1684
|
+
| expand-label? | `(row: T, index: number) => string` | Names the expand button of a row |
|
|
1685
|
+
| row-expandable? | `(row: T) => boolean` | Whether a row has details (#expansion) – rows without get no expand button (default: all rows) |
|
|
1686
|
+
| advanced-filter? | `boolean \| ConditionField[]` | Advanced filter: the rows pass a condition tree (nested and/or rules; v-model:advanced-filter-value). `true` offers every column with a filter type; or pass the fields. A toolbar button opens the editor from the `#advancedFilter` slot above the table – usually `ConditionBuilder` from `@wirecore/wirelayer-blocks-vue`; without it there is no button (the tree still filters). A server filters instead: `dataSource` gets the tree as `condition`, with `manual` the parent applies it |
|
|
1687
|
+
| v-model:advanced-filter-value? | `ConditionGroup` | The condition tree of the advanced filter (controlled together with onAdvancedFilterValueChange) |
|
|
1688
|
+
| search? | `boolean` | Search field above the table: filters over all columns (v-model:global-filter) |
|
|
1689
|
+
| v-model:global-filter? | `string` | |
|
|
1690
|
+
| row-keywords? | `(row: T) => string \| readonly string[] \| null \| undefined` | More text the search finds a row by, besides its columns – e.g. fields without a column of their own (not in server mode: there the server searches) |
|
|
1616
1691
|
| highlight-search? | `boolean` | Marks the search hits in the cells |
|
|
1617
|
-
| filters? | `Record<string, DataTableFilterValue>` | Column filters by column id
|
|
1692
|
+
| v-model:filters? | `Record<string, DataTableFilterValue>` | Column filters by column id – use with v-model:filters |
|
|
1618
1693
|
| filter-display? | `'row' \| 'menu' \| 'none'` | Filters in a row below the headers, as a menu per column with match modes and conditions, or none |
|
|
1619
|
-
| show-filters? | `boolean` | Shows the filter row or menus (`filterToggle`);
|
|
1694
|
+
| v-model:show-filters? | `boolean` | Shows the filter row or menus – use with v-model:show-filters (`filterToggle`); the filters keep working |
|
|
1620
1695
|
| filter-toggle? | `boolean` | Button in the toolbar that shows and hides the filters |
|
|
1696
|
+
| filter-reset? | `boolean` | Button in the toolbar that clears the column filters, the search and the advanced filter (`resetFilters()`) |
|
|
1621
1697
|
| max-constraints? | `number` | Conditions per column in the filter menu |
|
|
1622
1698
|
| resizable? | `boolean` | Column widths can be changed by dragging the header edge or with the arrow keys |
|
|
1623
|
-
| column-toggle? | `boolean` | Menu above the table to show and hide columns |
|
|
1624
|
-
| hidden-columns? | `string[]` | |
|
|
1699
|
+
| column-toggle? | `boolean` | Menu above the table to show and hide columns (v-model:hidden-columns) |
|
|
1700
|
+
| v-model:hidden-columns? | `string[]` | |
|
|
1625
1701
|
| column-menu? | `boolean` | Menu per column header: sort, pin, move, hide, group |
|
|
1626
|
-
| reorderable-columns? | `boolean` | Columns can be moved by drag and drop or the column menu |
|
|
1627
|
-
| column-order? | `string[]` | |
|
|
1628
|
-
| pinned-columns? | `{ start: string[]; end: string[] }` | Pinned columns (default: `pinned` of the columns) |
|
|
1702
|
+
| reorderable-columns? | `boolean` | Columns can be moved by drag and drop or the column menu (v-model:column-order) |
|
|
1703
|
+
| v-model:column-order? | `string[]` | |
|
|
1704
|
+
| v-model:pinned-columns? | `{ start: string[]; end: string[] }` | Pinned columns – use with v-model:pinned-columns (default: `pinned` of the columns) |
|
|
1629
1705
|
| export-filename? | `string` | Shows an export button; the CSV has the filtered and sorted rows of all pages (or the selection) |
|
|
1630
1706
|
| csv-separator? | `string` | Separator of the CSV export, also of the export button – default: from the locale (";" where numbers have a decimal comma, e.g. de-DE, as a spreadsheet there expects it; "," otherwise) |
|
|
1631
1707
|
| export-formats? | `('csv' \| 'xlsx')[]` | Formats of the export button: CSV (default), Excel (.xlsx) or both |
|
|
1632
|
-
| group-by? | `string \| string[]` | Groups the rows by the values of these columns (expandable group rows) |
|
|
1708
|
+
| v-model:group-by? | `string \| string[]` | Groups the rows by the values of these columns (expandable group rows) – v-model:group-by |
|
|
1633
1709
|
| frozen-rows? | `readonly string[]` | Rows (ids) that stay at the top, also while scrolling and paging |
|
|
1634
|
-
| reorderable-rows? | `boolean` | Rows can be moved with the drag handle (mouse or arrow keys) |
|
|
1710
|
+
| reorderable-rows? | `boolean` | Rows can be moved with the drag handle (mouse or arrow keys) – reported via row-reorder |
|
|
1635
1711
|
| row-numbers? | `boolean` | Column with the row number |
|
|
1636
|
-
| row-actions? | `MenuEntry[] \| ((row:
|
|
1712
|
+
| row-actions? | `MenuEntry[] \| ((row: T) => MenuEntry[])` | Menu per row (last column) – reported via row-action |
|
|
1637
1713
|
| context-menu? | `boolean` | The row actions also open on right click (and Shift+F10) |
|
|
1638
|
-
| row-class? | `(row:
|
|
1639
|
-
| row-href? | `(row:
|
|
1714
|
+
| row-class? | `(row: T) => string \| undefined` | Extra classes of a row |
|
|
1715
|
+
| row-href? | `(row: T) => string \| undefined` | Rows as links: the first cell holds a real link (Ctrl+click and middle click open a new tab), a click anywhere on the row follows it – `row-click` can take over the navigation (router) |
|
|
1640
1716
|
| navigation? | `'tab' \| 'grid'` | `grid`: keyboard like a spreadsheet (ARIA grid) – one Tab stop, arrow keys from cell to cell, Home/End, Ctrl+Home/End, Page Up/Down, Enter/F2 into a cell or edit it, Escape back, Space selects the row |
|
|
1641
1717
|
| status-bar? | `boolean` | Bar below the table: rows, filtered and selected rows, sum and average of the selected numbers |
|
|
1642
1718
|
| cell-selection? | `boolean` | Cells can be selected as a range: drag with the mouse, Shift+click, Shift+arrow keys (`navigation="grid"`). Ctrl+C copies the range (or the selected rows) as tab-separated text, Ctrl+V pastes text from Excel into editable cells from the active cell on (a single value fills the range), Ctrl+Z/Ctrl+Y undo and redo |
|
|
1643
1719
|
| find? | `boolean` | Button "Find in table": finds text in the cells, match x of y, previous/next, marks the matches |
|
|
1644
1720
|
| wrap-headers? | `boolean` | Long header texts wrap instead of being shortened |
|
|
1645
1721
|
| vertical-headers? | `boolean` | Header texts read from bottom to top (narrow columns) |
|
|
1646
|
-
| edit-mode? | `'cell' \| 'row' \| 'batch'` | `cell`: one cell at a time (Tab moves on); `row`: a whole row with save and cancel; `batch`: like `cell`, but the changes are collected (marked) until "Save" (`
|
|
1647
|
-
| size? | `
|
|
1722
|
+
| edit-mode? | `'cell' \| 'row' \| 'batch'` | `cell`: one cell at a time (Tab moves on); `row`: a whole row with save and cancel; `batch`: like `cell`, but the changes are collected (marked) until "Save" (`save`) or "Discard", with undo and redo |
|
|
1723
|
+
| v-model:size? | `'sm' \| 'md' \| 'lg'` | Row height – use with v-model:size (`densityToggle`) |
|
|
1648
1724
|
| density-toggle? | `boolean` | Menu above the table to change the row height |
|
|
1649
1725
|
| gridlines? | `boolean` | Lines between the columns |
|
|
1726
|
+
| bordered? | `boolean` | A border around the whole table |
|
|
1650
1727
|
| striped? | `boolean` | Every other row tinted |
|
|
1651
1728
|
| fullscreen-toggle? | `boolean` | Button above the table to show it on the whole screen |
|
|
1652
1729
|
| scroll-height? | `string` | Fixed height (CSS length): the table scrolls inside, header and footer stay visible |
|
|
@@ -1655,6 +1732,7 @@ Data table on TanStack Table: sorting (also by several columns), search, filter
|
|
|
1655
1732
|
| row-height? | `number` | Estimated row height in px for `virtual` |
|
|
1656
1733
|
| state-key? | `string` | Keeps sorting, filters, page, widths, order and the other settings in the browser under this key |
|
|
1657
1734
|
| state-storage? | `'local' \| 'session'` | |
|
|
1735
|
+
| state-exclude? | `readonly DataTableStateKey[]` | Parts of the state that `stateKey` does not keep – default: the selection (`[]` keeps it, too) |
|
|
1658
1736
|
| classes? | `RecipeClasses<typeof dataTableRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
1659
1737
|
|
|
1660
1738
|
| Event | Payload | Description |
|
|
@@ -1664,6 +1742,7 @@ Data table on TanStack Table: sorting (also by several columns), search, filter
|
|
|
1664
1742
|
| v-model:show-filters | `show: boolean` | |
|
|
1665
1743
|
| v-model:all-selection | `selection: DataTableAllSelection \| null` | |
|
|
1666
1744
|
| @selected-rows-change | `rows: TData[]` | The selected rows as objects (with `selection`; rows of other pages are remembered) |
|
|
1745
|
+
| v-model:selected-rows | `rows: TData[]` | |
|
|
1667
1746
|
| @row-click | `click: DataTableRowClick<TData>` | A click on a row (not on its controls) – with `rowHref`, `event.preventDefault()` stops the navigation |
|
|
1668
1747
|
| v-model:page-size | `pageSize: number` | |
|
|
1669
1748
|
| v-model:sorting | `sorting: DataTableSort \| DataTableSort[] \| null` | |
|
|
@@ -1692,6 +1771,7 @@ Data table on TanStack Table: sorting (also by several columns), search, filter
|
|
|
1692
1771
|
| #cell-<id> | `{ row: TData; value: unknown }` | Content of a cell, by column id |
|
|
1693
1772
|
| #filter-<id> | `DataTableFilterInputProps<TData>` | Own filter input of a column (filter row and filter menu), by column id |
|
|
1694
1773
|
| #editor-<id> | `DataTableEditorProps<TData>` | Own editor of a column, by column id |
|
|
1774
|
+
| #option-<id> | `{ item: unknown; selected: boolean; highlighted: boolean; disabled: boolean; }` | An option in the select filter and editor lists of a column, by column id – e.g. a status as a badge |
|
|
1695
1775
|
| #expansion | `{ row: TData; rowId: string }` | Details below an expanded row – adds the expand column |
|
|
1696
1776
|
| #advancedFilter | `DataTableAdvancedFilterProps` | The editor of the advanced filter, e.g. ConditionBuilder from `@wirecore/wirelayer-blocks-vue`: `<template #advancedFilter="{ fields, value, setValue, label }">` |
|
|
1697
1777
|
| #toolbar | – | Own controls in the toolbar, after the search |
|
|
@@ -1713,12 +1793,12 @@ Items as a list or grid (a list either way); the switch is a radio group "View"
|
|
|
1713
1793
|
| --- | --- | --- |
|
|
1714
1794
|
| items? | `readonly T[]` | |
|
|
1715
1795
|
| label | `string` | Accessible name of the list, e.g. "Server" |
|
|
1716
|
-
| layout? | `'list' \| 'grid'` |
|
|
1796
|
+
| v-model:layout? | `'list' \| 'grid'` | List or grid – use with v-model:layout |
|
|
1717
1797
|
| default-layout? | `'list' \| 'grid'` | |
|
|
1718
1798
|
| layout-toggle? | `boolean` | Switch between list and grid above the items |
|
|
1719
|
-
| page-size? | `number` | Items per page – enables pagination (
|
|
1799
|
+
| v-model:page-size? | `number` | Items per page – enables pagination (v-model:page-size with `pageSizes`) |
|
|
1720
1800
|
| page-sizes? | `readonly number[]` | Page sizes to choose from below the items |
|
|
1721
|
-
| page? | `number` | Current page, 1-based |
|
|
1801
|
+
| v-model:page? | `number` | Current page, 1-based – use with v-model:page |
|
|
1722
1802
|
| default-page? | `number` | |
|
|
1723
1803
|
| manual? | `boolean` | The items are the current page only (server); `totalCount` is the number of all items |
|
|
1724
1804
|
| total-count? | `number` | Number of all items (`manual`) |
|
|
@@ -1726,13 +1806,12 @@ Items as a list or grid (a list either way); the switch is a radio group "View"
|
|
|
1726
1806
|
| query? | `Omit<DataQuery, 'page' \| 'pageSize' \| 'cursor'>` | Sorting, filters and search for the data source (e.g. from the toolbar); a change starts at page 1 |
|
|
1727
1807
|
| load-mode? | `'pages' \| 'infinite'` | `pages` (default): pagination below the items; `infinite`: the list grows with "Load more" |
|
|
1728
1808
|
| auto-load? | `boolean` | `infinite`: loads the next page when the end of the list scrolls into view (the button stays as fallback) |
|
|
1729
|
-
| has-more? | `boolean` | More items can be loaded (`infinite` without a data source): the button
|
|
1809
|
+
| has-more? | `boolean` | More items can be loaded (`infinite` without a data source): the button emits loadMore |
|
|
1730
1810
|
| loading? | `boolean` | Placeholder items while there are none yet, "Loading" on the button otherwise (aria-busy) |
|
|
1731
1811
|
| skeleton-count? | `number` | Placeholder items while loading (default: the page size, at most 6) |
|
|
1732
|
-
| filtered? | `boolean` | The items are filtered: shows the no-results text (`noResults`) instead of the empty text |
|
|
1733
|
-
| error? | `unknown` | An error to show instead of the items (`
|
|
1812
|
+
| filtered? | `boolean` | The items are filtered: shows the no-results text (slot `noResults`) instead of the empty text |
|
|
1813
|
+
| error? | `unknown` | An error to show instead of the items (slot `error`); a data source sets it itself |
|
|
1734
1814
|
| empty-text? | `string` | |
|
|
1735
|
-
| style? | `CSSProperties` | |
|
|
1736
1815
|
| classes? | `RecipeClasses<typeof dataViewRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
1737
1816
|
|
|
1738
1817
|
| Event | Payload | Description |
|
|
@@ -1761,10 +1840,10 @@ Date field: type the digits one after another (the separators come from the loca
|
|
|
1761
1840
|
|
|
1762
1841
|
| Prop | Type | Description |
|
|
1763
1842
|
| --- | --- | --- |
|
|
1764
|
-
| v-model? (modelValue) | `T` | ISO date, e.g. "2026-10-20", with time "2026-10-20T14:30". Date objects and ISO strings with offset are accepted too; with selectionMode "multiple" a list of dates |
|
|
1843
|
+
| v-model? (modelValue) | `T` | ISO date, e.g. "2026-10-20", with time "2026-10-20T14:30" – use with v-model. Date objects and ISO strings with offset are accepted too; with selectionMode "multiple" a list of dates |
|
|
1765
1844
|
| default-value? | `T` | |
|
|
1766
1845
|
| selection-mode? | `'single' \| 'multiple'` | One date or several dates (the field lists them, the calendar toggles days) |
|
|
1767
|
-
| value-type? | `DateValueType` | What
|
|
1846
|
+
| value-type? | `DateValueType` | What v-model gets: ISO strings (default) or Date objects |
|
|
1768
1847
|
| with-time? | `boolean` | Adds hour and minute to the field |
|
|
1769
1848
|
| min? | `DateLike` | Earliest selectable date (ISO or Date) |
|
|
1770
1849
|
| max? | `DateLike` | Latest selectable date (ISO or Date) |
|
|
@@ -1776,6 +1855,7 @@ Date field: type the digits one after another (the separators come from the loca
|
|
|
1776
1855
|
| invalid? | `boolean` | |
|
|
1777
1856
|
| required? | `boolean` | |
|
|
1778
1857
|
| name? | `string` | |
|
|
1858
|
+
| placeholder? | `string` | Text of the empty field, shown until it gets the focus – no replacement for a label |
|
|
1779
1859
|
| size? | `'sm' \| 'md' \| 'lg'` | |
|
|
1780
1860
|
| clearable? | `boolean` | Clear button in the field while it has a value |
|
|
1781
1861
|
| show-button-bar? | `boolean` | "Today" and "Clear" below the calendar |
|
|
@@ -1789,9 +1869,7 @@ Date field: type the digits one after another (the separators come from the loca
|
|
|
1789
1869
|
| time-zone? | `string` | IANA zone ("Europe/Berlin") of a date with time: shown and typed in the zone, the value gets its offset |
|
|
1790
1870
|
| show-time-zone? | `boolean` | Short zone name after the time ("CEST") |
|
|
1791
1871
|
| responsive? | `boolean` | On narrow screens the calendar opens as a sheet at the bottom |
|
|
1792
|
-
|
|
|
1793
|
-
| aria-label? | `string` | Accessible name without a surrounding Field |
|
|
1794
|
-
| style? | `CSSProperties` | |
|
|
1872
|
+
| id? | `string` | Id of the field – the (first) date gets it; a `<label for>` cannot name it, use a Field or aria-label |
|
|
1795
1873
|
| classes? | `RecipeClasses<typeof datePicker>` | Extra classes per part of the date field, e.g. { control: "…" } (the calendar: RecipesProvider) |
|
|
1796
1874
|
|
|
1797
1875
|
| Event | Payload | Description |
|
|
@@ -1812,9 +1890,9 @@ Start and end in one field ("10/20/2026 – 10/24/2026"); the calendar picks sta
|
|
|
1812
1890
|
|
|
1813
1891
|
| Prop | Type | Description |
|
|
1814
1892
|
| --- | --- | --- |
|
|
1815
|
-
| v-model? (modelValue) | `T \| null` | Start and end; Date objects and ISO strings with offset are accepted too |
|
|
1893
|
+
| v-model? (modelValue) | `T \| null` | Start and end – use with v-model; Date objects and ISO strings with offset are accepted too |
|
|
1816
1894
|
| default-value? | `T \| null` | |
|
|
1817
|
-
| value-type? | `DateValueType` | What
|
|
1895
|
+
| value-type? | `DateValueType` | What v-model gets: ISO strings (default) or Date objects |
|
|
1818
1896
|
| with-time? | `boolean` | Adds hour and minute to both dates |
|
|
1819
1897
|
| min? | `DateLike` | Earliest selectable date (ISO or Date) |
|
|
1820
1898
|
| max? | `DateLike` | Latest selectable date (ISO or Date) |
|
|
@@ -1826,6 +1904,7 @@ Start and end in one field ("10/20/2026 – 10/24/2026"); the calendar picks sta
|
|
|
1826
1904
|
| invalid? | `boolean` | |
|
|
1827
1905
|
| required? | `boolean` | |
|
|
1828
1906
|
| name? | `string` | Sent as name[0] and name[1] |
|
|
1907
|
+
| placeholder? | `string` | Text of the empty field, shown until it gets the focus – no replacement for a label |
|
|
1829
1908
|
| presets? | `(string \| { label: string; value: DateRangeLike })[]` | Buttons below the calendar: presets ("last7Days", "thisMonth", "thisQuarter", "last3Months", "last12Months", "last3Years" …) or own { label, value } ranges |
|
|
1830
1909
|
| size? | `'sm' \| 'md' \| 'lg'` | |
|
|
1831
1910
|
| clearable? | `boolean` | Clear button in the field while it has a value |
|
|
@@ -1839,9 +1918,7 @@ Start and end in one field ("10/20/2026 – 10/24/2026"); the calendar picks sta
|
|
|
1839
1918
|
| time-zone? | `string` | IANA zone ("Europe/Berlin") with withTime: shown and typed in the zone, the values get its offset |
|
|
1840
1919
|
| show-time-zone? | `boolean` | Short zone name after the times ("CEST") |
|
|
1841
1920
|
| responsive? | `boolean` | On narrow screens the calendar opens as a sheet at the bottom |
|
|
1842
|
-
|
|
|
1843
|
-
| aria-label? | `string` | Accessible name without a surrounding Field |
|
|
1844
|
-
| style? | `CSSProperties` | |
|
|
1921
|
+
| id? | `string` | Id of the field – the (first) date gets it; a `<label for>` cannot name it, use a Field or aria-label |
|
|
1845
1922
|
| classes? | `RecipeClasses<typeof datePicker>` | Extra classes per part of the date field, e.g. { control: "…" } (the calendar: RecipesProvider) |
|
|
1846
1923
|
|
|
1847
1924
|
| Event | Payload | Description |
|
|
@@ -1869,7 +1946,7 @@ Terms and values (<dl>) in columns, with an optional title and actions; values c
|
|
|
1869
1946
|
| columns? | `ResponsiveColumns` | Columns: a number or per breakpoint (default { base: 1, sm: 2, lg: 3 }) |
|
|
1870
1947
|
| orientation? | `'vertical' \| 'horizontal'` | Label above its value (vertical, default) or beside it |
|
|
1871
1948
|
| bordered? | `boolean` | Table look with lines between the cells |
|
|
1872
|
-
| editing? | `boolean` | Edit mode: the values give way to `
|
|
1949
|
+
| editing? | `boolean` | Edit mode: the values give way to the `edit-<id>` slots (inputs labelled by the term via `labelId`) |
|
|
1873
1950
|
| classes? | `RecipeClasses<typeof descriptionsRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
1874
1951
|
|
|
1875
1952
|
| Slot | Slot props | Description |
|
|
@@ -1886,7 +1963,7 @@ Ark handles focus trap, aria-modal, Escape, scroll lock and returning focus to t
|
|
|
1886
1963
|
|
|
1887
1964
|
| Prop | Type | Description |
|
|
1888
1965
|
| --- | --- | --- |
|
|
1889
|
-
| open? | `boolean` |
|
|
1966
|
+
| v-model:open? | `boolean` | Controlled state – use with v-model:open |
|
|
1890
1967
|
| default-open? | `boolean` | |
|
|
1891
1968
|
| role? | `'dialog' \| 'alertdialog'` | "alertdialog" for confirmations that interrupt the user |
|
|
1892
1969
|
| modal? | `boolean` | `false`: non-modal – no backdrop, no focus trap, no scroll lock; the page stays usable next to the dialog (role="dialog" with aria-modal="false") |
|
|
@@ -1919,14 +1996,15 @@ The modal window of a Dialog: title, description, focus trap, Escape closes
|
|
|
1919
1996
|
| Prop | Type | Description |
|
|
1920
1997
|
| --- | --- | --- |
|
|
1921
1998
|
| title | `string` | |
|
|
1999
|
+
| hide-title? | `boolean` | The title only for screen readers – it still names the dialog (e.g. a video in a dialog) |
|
|
1922
2000
|
| description? | `string` | |
|
|
1923
2001
|
| icon? | `Component` | Icon component in the coloured box at the top |
|
|
1924
2002
|
| status? | `DialogStatus` | |
|
|
1925
|
-
| size? | `OverlaySize` | Maximum width: sm 320px, md 400px (default), lg 560px, xl 800px, full (screen width minus the margin) |
|
|
2003
|
+
| size? | `OverlaySize` | Maximum width: sm 320px (20rem), md 400px (25rem, default), lg 560px (35rem), xl 800px (50rem), full (screen width minus the margin). Another width: leave out `size` and set the CSS variable, e.g. style="--wc-dialog-w: 36rem" |
|
|
1926
2004
|
| position? | `DialogPosition` | Where the dialog sits: centred (default), at the top/bottom or the start/end edge |
|
|
1927
2005
|
| fullscreen? | `boolean` | Covers the whole screen |
|
|
1928
2006
|
| maximizable? | `boolean` | Button in the header that switches between the normal size and the whole screen |
|
|
1929
|
-
| maximized? | `boolean` | Maximized state of a maximizable dialog
|
|
2007
|
+
| v-model:maximized? | `boolean` | Maximized state of a maximizable dialog – use with v-model:maximized |
|
|
1930
2008
|
| default-maximized? | `boolean` | |
|
|
1931
2009
|
| draggable? | `boolean` | Moved by dragging the header; the keyboard moves it with Alt + arrow keys (Shift: larger steps) |
|
|
1932
2010
|
| closable? | `boolean` | Shows the close button in the header |
|
|
@@ -1935,7 +2013,6 @@ The modal window of a Dialog: title, description, focus trap, Escape closes
|
|
|
1935
2013
|
| close-label? | `string` | Accessible name of the close button |
|
|
1936
2014
|
| maximize-label? | `string` | Accessible names of the maximize button: maximize / restore |
|
|
1937
2015
|
| restore-label? | `string` | |
|
|
1938
|
-
| footer? | `ReactNode` | Action buttons at the bottom |
|
|
1939
2016
|
| portal-target? | `HTMLElement \| null` | Element the dialog is rendered into (default: the page body) – e.g. an element in full-screen mode |
|
|
1940
2017
|
| classes? | `RecipeClasses<typeof dialogRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
1941
2018
|
|
|
@@ -1943,6 +2020,10 @@ The modal window of a Dialog: title, description, focus trap, Escape closes
|
|
|
1943
2020
|
| --- | --- | --- |
|
|
1944
2021
|
| v-model:maximized | `maximized: boolean` | |
|
|
1945
2022
|
|
|
2023
|
+
| Slot | Slot props | Description |
|
|
2024
|
+
| --- | --- | --- |
|
|
2025
|
+
| #default | – | The content below the title |
|
|
2026
|
+
| #footer | – | Buttons at the bottom, e.g. Cancel and Save (right-aligned) |
|
|
1946
2027
|
|
|
1947
2028
|
### DialogHost
|
|
1948
2029
|
|
|
@@ -1981,6 +2062,7 @@ Horizontal or vertical line, optionally with a label
|
|
|
1981
2062
|
| orientation? | `DividerOrientation` | |
|
|
1982
2063
|
| line-style? | `'solid' \| 'dashed' \| 'dotted'` | Line style: `solid` (default), `dashed` or `dotted` |
|
|
1983
2064
|
| label-position? | `'start' \| 'center' \| 'end'` | Where the label sits: at the `start`, in the `center` (default) or at the `end` |
|
|
2065
|
+
| label? | `string` | Text in the middle, e.g. "or" – read as normal text, the lines are decorative (also via #label) |
|
|
1984
2066
|
| classes? | `RecipeClasses<typeof dividerRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
1985
2067
|
|
|
1986
2068
|
| Slot | Slot props | Description |
|
|
@@ -2002,6 +2084,10 @@ Button that saves text, a Blob or a fetched file; busy (aria-busy) while the dat
|
|
|
2002
2084
|
| url? | `string` | Address to fetch and save instead of `data` (same origin or CORS) |
|
|
2003
2085
|
| file-name | `string` | File name, e.g. "bericht.csv" |
|
|
2004
2086
|
| mime-type? | `string` | MIME type of text data (default text/plain; a Blob keeps its own type) |
|
|
2087
|
+
| variant? | `ButtonVariant` | |
|
|
2088
|
+
| color? | `ButtonColor` | |
|
|
2089
|
+
| size? | `ButtonSize` | |
|
|
2090
|
+
| disabled? | `boolean` | |
|
|
2005
2091
|
|
|
2006
2092
|
| Event | Payload | Description |
|
|
2007
2093
|
| --- | --- | --- |
|
|
@@ -2022,7 +2108,7 @@ Modal panel at the edge of the screen – a dialog: focus trap, Escape, scroll l
|
|
|
2022
2108
|
|
|
2023
2109
|
| Prop | Type | Description |
|
|
2024
2110
|
| --- | --- | --- |
|
|
2025
|
-
| open? | `boolean` |
|
|
2111
|
+
| v-model:open? | `boolean` | Controlled state – use with v-model:open |
|
|
2026
2112
|
| default-open? | `boolean` | |
|
|
2027
2113
|
| modal? | `boolean` | `false`: non-modal – no backdrop, no focus trap, the page stays usable next to the panel |
|
|
2028
2114
|
| close-on-escape? | `boolean` | Escape closes the drawer |
|
|
@@ -2054,15 +2140,19 @@ The panel of a Drawer, sliding in from a side; title, focus trap, Escape closes
|
|
|
2054
2140
|
| Prop | Type | Description |
|
|
2055
2141
|
| --- | --- | --- |
|
|
2056
2142
|
| title | `string` | |
|
|
2143
|
+
| hide-title? | `boolean` | The title only for screen readers – it still names the drawer (e.g. a video in a dialog) |
|
|
2057
2144
|
| description? | `string` | |
|
|
2058
2145
|
| placement? | `DrawerPlacement` | |
|
|
2059
2146
|
| size? | `OverlaySize` | Width (left/right: sm 320px, md 420px, lg 560px, xl 720px) or height (top/bottom: 30–85 % of the screen); `full` covers the whole screen. Without it 420px wide or as high as the content |
|
|
2060
2147
|
| offset? | `boolean` | Floats with a gap to the screen edge and rounded corners |
|
|
2061
2148
|
| closable? | `boolean` | Shows the close button in the header |
|
|
2062
2149
|
| close-label? | `string` | Accessible name of the close button |
|
|
2063
|
-
| footer? | `ReactNode` | Action buttons at the bottom |
|
|
2064
2150
|
| classes? | `RecipeClasses<typeof drawerRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
2065
2151
|
|
|
2152
|
+
| Slot | Slot props | Description |
|
|
2153
|
+
| --- | --- | --- |
|
|
2154
|
+
| #default | – | The content below the title (scrolls) |
|
|
2155
|
+
| #footer | – | Buttons at the bottom, e.g. Cancel and Save |
|
|
2066
2156
|
|
|
2067
2157
|
### DrawerTrigger
|
|
2068
2158
|
|
|
@@ -2083,9 +2173,9 @@ Duration field: hours and minutes (optional days and seconds) as spin buttons
|
|
|
2083
2173
|
|
|
2084
2174
|
| Prop | Type | Description |
|
|
2085
2175
|
| --- | --- | --- |
|
|
2086
|
-
| v-model? (modelValue) | `number \| string \| null` | Total minutes (default), total seconds or ISO 8601 ("PT2H30M") – see valueType |
|
|
2176
|
+
| v-model? (modelValue) | `number \| string \| null` | Total minutes (default), total seconds or ISO 8601 ("PT2H30M") – see valueType; use with v-model |
|
|
2087
2177
|
| default-value? | `number \| string \| null` | |
|
|
2088
|
-
| value-type? | `DurationValueType` | What
|
|
2178
|
+
| value-type? | `DurationValueType` | What v-model gets: total minutes, total seconds or an ISO 8601 duration |
|
|
2089
2179
|
| with-days? | `boolean` | Adds days before the hours (the hours then stop at 23) |
|
|
2090
2180
|
| with-seconds? | `boolean` | Adds seconds after the minutes |
|
|
2091
2181
|
| max-hours? | `number` | Highest number of hours (default 999, with days 23) |
|
|
@@ -2097,8 +2187,7 @@ Duration field: hours and minutes (optional days and seconds) as spin buttons
|
|
|
2097
2187
|
| name? | `string` | |
|
|
2098
2188
|
| size? | `'sm' \| 'md' \| 'lg'` | |
|
|
2099
2189
|
| clearable? | `boolean` | Clear button in the field while it has a value |
|
|
2100
|
-
|
|
|
2101
|
-
| style? | `CSSProperties` | |
|
|
2190
|
+
| id? | `string` | Id of the field (the group of parts); a `<label for>` cannot name it, use a Field or aria-label |
|
|
2102
2191
|
| classes? | `RecipeClasses<typeof datePickerRecipe>` | Extra classes per part of the field (see the datePicker recipe) |
|
|
2103
2192
|
|
|
2104
2193
|
| Event | Payload | Description |
|
|
@@ -2116,7 +2205,7 @@ Rich-text editor (Tiptap): a toolbar (role="toolbar", one tab stop, arrow keys i
|
|
|
2116
2205
|
|
|
2117
2206
|
| Prop | Type | Description |
|
|
2118
2207
|
| --- | --- | --- |
|
|
2119
|
-
| v-model? (modelValue) | `string` | HTML; an empty editor gives '' |
|
|
2208
|
+
| v-model? (modelValue) | `string` | HTML – use with v-model; an empty editor gives '' |
|
|
2120
2209
|
| default-value? | `string` | |
|
|
2121
2210
|
| toolbar? | `(EditorTool \| '\|')[]` | Toolbar buttons in order, '\|' for a separator |
|
|
2122
2211
|
| disabled? | `boolean` | |
|
|
@@ -2131,8 +2220,6 @@ Rich-text editor (Tiptap): a toolbar (role="toolbar", one tab stop, arrow keys i
|
|
|
2131
2220
|
| floating-menu? | `boolean \| EditorTool[]` | Menu in an empty line – true for the default tools or a list of tools; Alt+F10 moves into it |
|
|
2132
2221
|
| table-of-contents? | `boolean` | The headings as links above the text |
|
|
2133
2222
|
| mentions? | `(query: string) => EditorMention[] \| Promise<EditorMention[]>` | Suggestions after "@" (people, documents …) – inserted as a mention |
|
|
2134
|
-
| aria-label? | `string` | Accessible name without a Field |
|
|
2135
|
-
| style? | `CSSProperties` | |
|
|
2136
2223
|
| classes? | `RecipeClasses<typeof editorRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
2137
2224
|
|
|
2138
2225
|
| Event | Payload | Description |
|
|
@@ -2177,14 +2264,17 @@ Placeholder for an empty list, table or search result, with the next step as act
|
|
|
2177
2264
|
| Prop | Type | Description |
|
|
2178
2265
|
| --- | --- | --- |
|
|
2179
2266
|
| title | `string` | |
|
|
2180
|
-
| description? | `
|
|
2267
|
+
| description? | `string` | Text below the title (also via #description) |
|
|
2181
2268
|
| icon? | `Component` | Icon component above the title |
|
|
2182
2269
|
| variant? | `'plain' \| 'dashed'` | |
|
|
2183
2270
|
| size? | `'sm' \| 'md'` | |
|
|
2184
2271
|
| heading-level? | `2 \| 3 \| 4 \| 5 \| 6` | Renders the title as a heading of this level – without it the title is a paragraph |
|
|
2185
|
-
| actions? | `ReactNode` | Buttons or links for the next step |
|
|
2186
2272
|
| classes? | `RecipeClasses<typeof emptyStateRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
2187
2273
|
|
|
2274
|
+
| Slot | Slot props | Description |
|
|
2275
|
+
| --- | --- | --- |
|
|
2276
|
+
| #description | – | Own description, e.g. with a link (instead of `description`) |
|
|
2277
|
+
| #actions | – | Buttons below the text, e.g. "Create the first entry" |
|
|
2188
2278
|
|
|
2189
2279
|
### Field
|
|
2190
2280
|
|
|
@@ -2197,18 +2287,27 @@ Label, helper text and error for one input – connects them by ids (aria-descri
|
|
|
2197
2287
|
|
|
2198
2288
|
| Prop | Type | Description |
|
|
2199
2289
|
| --- | --- | --- |
|
|
2290
|
+
| label? | `string` | Label of the control – or the `label` slot |
|
|
2291
|
+
| helper-text? | `string` | Description below the control – or the `helper-text` slot (e.g. with a link) |
|
|
2292
|
+
| error? | `string` | Error message – also marks the field as invalid; or the `error` slot |
|
|
2200
2293
|
| invalid? | `boolean` | |
|
|
2294
|
+
| success? | `string` | Confirmation, e.g. "Username is available": shown with a check icon, part of the description; the control gets a green border. Ignored while the field is invalid; or the `success` slot |
|
|
2201
2295
|
| required? | `boolean` | |
|
|
2202
2296
|
| optional? | `boolean` | Marks the field as optional: "(optional)" after the label |
|
|
2203
2297
|
| optional-text? | `string` | Text after the label of an optional field (default "optional") |
|
|
2204
2298
|
| disabled? | `boolean` | |
|
|
2205
2299
|
| read-only? | `boolean` | |
|
|
2300
|
+
| label-help? | `string` | Explanation behind an (i) button next to the label (Toggletip: a click shows it and screen readers read it) – or the `label-help` slot |
|
|
2206
2301
|
| classes? | `RecipeClasses<typeof fieldRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
2207
2302
|
|
|
2208
2303
|
| Slot | Slot props | Description |
|
|
2209
2304
|
| --- | --- | --- |
|
|
2210
2305
|
| #default | – | |
|
|
2306
|
+
| #label | – | Own content of the label (instead of `label`) |
|
|
2211
2307
|
| #label-help | – | |
|
|
2308
|
+
| #helper-text | – | Own helper text, e.g. with a link or a button – part of the control's description (instead of `helperText`) |
|
|
2309
|
+
| #success | – | Own confirmation (instead of `success`) |
|
|
2310
|
+
| #error | – | Own error message (instead of `error`) – also marks the field as invalid |
|
|
2212
2311
|
|
|
2213
2312
|
### FieldArray
|
|
2214
2313
|
|
|
@@ -2235,9 +2334,8 @@ Label, helper text and error for one input – connects them by ids (aria-descri
|
|
|
2235
2334
|
| invalid? | `boolean` | |
|
|
2236
2335
|
| disabled? | `boolean` | Disables every field inside (native fieldset – the legend's toggle stays usable) |
|
|
2237
2336
|
| collapsible? | `boolean` | The legend becomes a button that shows/hides the fields (aria-expanded) |
|
|
2238
|
-
| open? | `boolean` | Open state of a collapsible fieldset
|
|
2337
|
+
| v-model:open? | `boolean` | Open state of a collapsible fieldset – use with v-model:open |
|
|
2239
2338
|
| default-open? | `boolean` | |
|
|
2240
|
-
| style? | `CSSProperties` | |
|
|
2241
2339
|
| classes? | `RecipeClasses<typeof fieldsetRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
2242
2340
|
|
|
2243
2341
|
| Event | Payload | Description |
|
|
@@ -2269,6 +2367,8 @@ Drop files onto the zone or choose them with the button (the keyboard path). Acc
|
|
|
2269
2367
|
| preview? | `boolean` | Thumbnails for images (object URLs, released again) |
|
|
2270
2368
|
| fullscreen-drop? | `boolean` | Files can be dropped anywhere in the window |
|
|
2271
2369
|
| paste? | `boolean` | Ctrl+V inside the component adds files from the clipboard |
|
|
2370
|
+
| v-model:files? | `File[]` | The chosen files – use with v-model:files to remove or replace files from outside (otherwise the component keeps them itself; `clear()` empties it) |
|
|
2371
|
+
| show-file-list? | `boolean` | The list of the chosen files below the drop zone – false when the app shows the files itself |
|
|
2272
2372
|
| disabled? | `boolean` | |
|
|
2273
2373
|
| invalid? | `boolean` | |
|
|
2274
2374
|
| required? | `boolean` | |
|
|
@@ -2277,7 +2377,8 @@ Drop files onto the zone or choose them with the button (the keyboard path). Acc
|
|
|
2277
2377
|
|
|
2278
2378
|
| Event | Payload | Description |
|
|
2279
2379
|
| --- | --- | --- |
|
|
2280
|
-
| @files-change | `files: File[]` |
|
|
2380
|
+
| @files-change | `files: File[]` | The chosen files changed (rejected files: `filesReject`) |
|
|
2381
|
+
| v-model:files | `files: File[]` | |
|
|
2281
2382
|
| @files-reject | `rejections: { file: File; errors: string[] }[]` | Files that were not taken, with the reasons as codes (FILE_INVALID_TYPE, FILE_TOO_LARGE, TOO_MANY_FILES …) |
|
|
2282
2383
|
| @upload-complete | `file: File, state: UploadState` | A file finished uploading (or failed) |
|
|
2283
2384
|
|
|
@@ -2316,7 +2417,7 @@ Filter region above a list or table: a button with the number of active filters
|
|
|
2316
2417
|
| --- | --- | --- |
|
|
2317
2418
|
| filters? | `readonly FilterChip[]` | The active filters – shown as chips and counted on the button |
|
|
2318
2419
|
| count? | `number` | Number on the button (default: the number of filters) |
|
|
2319
|
-
| open? | `boolean` | Form shown
|
|
2420
|
+
| v-model:open? | `boolean` | Form shown – use with v-model:open |
|
|
2320
2421
|
| default-open? | `boolean` | |
|
|
2321
2422
|
| label? | `string` | Name of the region, the button and the drawer (default "Filter") |
|
|
2322
2423
|
| display? | `'inline' \| 'drawer' \| 'auto'` | `inline` (default): the form folds open below the bar; `drawer`: it opens in a drawer; `auto`: a drawer on small screens (`drawerQuery`) |
|
|
@@ -2346,7 +2447,7 @@ Non-modal window (role="dialog", named by its title): drag the header, resize at
|
|
|
2346
2447
|
| Prop | Type | Description |
|
|
2347
2448
|
| --- | --- | --- |
|
|
2348
2449
|
| title | `string` | Title in the header – also the name of the window |
|
|
2349
|
-
| open? | `boolean` | Open
|
|
2450
|
+
| v-model:open? | `boolean` | Open – use with v-model:open |
|
|
2350
2451
|
| default-open? | `boolean` | |
|
|
2351
2452
|
| default-size? | `Size` | Size when it opens (default 360 × 280) |
|
|
2352
2453
|
| default-position? | `Point` | Position when it opens (default: next to the trigger, else centred) |
|
|
@@ -2380,10 +2481,12 @@ A file or memory size: "1.2 MB"
|
|
|
2380
2481
|
|
|
2381
2482
|
| Prop | Type | Description |
|
|
2382
2483
|
| --- | --- | --- |
|
|
2383
|
-
|
|
|
2484
|
+
| value | `number \| null \| undefined` | Size in bytes |
|
|
2384
2485
|
| base? | `'decimal' \| 'binary'` | `decimal` (default): 1000 per step, "1.2 MB"; `binary`: 1024 per step, "1.2 MiB" |
|
|
2385
2486
|
| maximum-fraction-digits? | `number` | Decimals (default 1) |
|
|
2386
2487
|
| unit-display? | `'short' \| 'long'` | `short` (default) "MB", `long` "Megabyte" (decimal only) |
|
|
2488
|
+
| locale? | `string` | |
|
|
2489
|
+
| classes? | `RecipeClasses<typeof formatValueRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
2387
2490
|
|
|
2388
2491
|
|
|
2389
2492
|
### FormatDate
|
|
@@ -2398,9 +2501,11 @@ A date in the format of the locale, in a <time> with the machine-readable value
|
|
|
2398
2501
|
|
|
2399
2502
|
| Prop | Type | Description |
|
|
2400
2503
|
| --- | --- | --- |
|
|
2401
|
-
|
|
|
2504
|
+
| value | `DateInput` | The date: Date, ISO text ("2026-10-21") or milliseconds |
|
|
2402
2505
|
| format-options? | `Intl.DateTimeFormatOptions` | Intl format, e.g. { dateStyle: 'long' } or { weekday: 'long', day: 'numeric', month: 'long' } (default medium) |
|
|
2403
2506
|
| time-zone? | `string` | Time zone to show the date in, e.g. "Europe/Berlin" (default: the browser's – pass one for server rendering) |
|
|
2507
|
+
| locale? | `string` | |
|
|
2508
|
+
| classes? | `RecipeClasses<typeof formatValueRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
2404
2509
|
|
|
2405
2510
|
|
|
2406
2511
|
### FormatDateTime
|
|
@@ -2414,7 +2519,11 @@ Date and time in the format of the locale, in a <time> with the machine-readable
|
|
|
2414
2519
|
|
|
2415
2520
|
| Prop | Type | Description |
|
|
2416
2521
|
| --- | --- | --- |
|
|
2522
|
+
| value | `DateInput` | The point in time: Date, ISO text or milliseconds |
|
|
2417
2523
|
| format-options? | `Intl.DateTimeFormatOptions` | Intl format, e.g. { dateStyle: 'full', timeStyle: 'short' } (default: medium date, short time) |
|
|
2524
|
+
| time-zone? | `string` | Time zone to show the time in, e.g. "Europe/Berlin" (default: the browser's – pass one for server rendering) |
|
|
2525
|
+
| locale? | `string` | |
|
|
2526
|
+
| classes? | `RecipeClasses<typeof formatValueRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
2418
2527
|
|
|
2419
2528
|
|
|
2420
2529
|
### FormatList
|
|
@@ -2432,6 +2541,8 @@ A list as a sentence: "Anna, Ben, and Clara"
|
|
|
2432
2541
|
| items | `readonly string[]` | |
|
|
2433
2542
|
| type? | `'conjunction' \| 'disjunction' \| 'unit'` | `conjunction` (default) "A, B, and C", `disjunction` "A, B, or C", `unit` "A, B, C" |
|
|
2434
2543
|
| format-style? | `'long' \| 'short' \| 'narrow'` | `long` (default), `short`, `narrow` |
|
|
2544
|
+
| locale? | `string` | |
|
|
2545
|
+
| classes? | `RecipeClasses<typeof formatValueRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
2435
2546
|
|
|
2436
2547
|
|
|
2437
2548
|
### FormatNumber
|
|
@@ -2455,12 +2566,14 @@ A list as a sentence: "Anna, Ben, and Clara"
|
|
|
2455
2566
|
|
|
2456
2567
|
| Prop | Type | Description |
|
|
2457
2568
|
| --- | --- | --- |
|
|
2458
|
-
|
|
|
2569
|
+
| value | `DateInput` | The point in time: Date, ISO text or milliseconds |
|
|
2459
2570
|
| now? | `DateInput` | Reference time (default: now) – pass it for the same text on the server and in the browser |
|
|
2460
2571
|
| live? | `boolean` | Updates the text as time passes (every 10 s, minute or hour, depending on the distance) |
|
|
2461
2572
|
| numeric? | `'auto' \| 'always'` | `auto` (default): "yesterday", "tomorrow"; `always`: "1 day ago" |
|
|
2462
2573
|
| format-style? | `'long' \| 'short' \| 'narrow'` | `long` (default) "3 minutes ago", `short` "3 min. ago", `narrow` |
|
|
2463
2574
|
| show-title? | `boolean` | The exact date and time as the title (tooltip) – default true |
|
|
2575
|
+
| locale? | `string` | |
|
|
2576
|
+
| classes? | `RecipeClasses<typeof formatValueRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
2464
2577
|
|
|
2465
2578
|
|
|
2466
2579
|
### FormErrorSummary
|
|
@@ -2492,15 +2605,21 @@ Label, helper text, error, aria-invalid and aria-describedby come from Field
|
|
|
2492
2605
|
|
|
2493
2606
|
| Prop | Type | Description |
|
|
2494
2607
|
| --- | --- | --- |
|
|
2495
|
-
| field | `AnyFieldApi` | The TanStack Form field (from `<form.Field
|
|
2496
|
-
|
|
|
2497
|
-
|
|
|
2498
|
-
|
|
|
2499
|
-
| success? | `ReactNode` | Confirmation below the control (Field `success`) |
|
|
2608
|
+
| field | `AnyFieldApi` | The TanStack Form field (from `<form.Field v-slot="{ field }">`) |
|
|
2609
|
+
| label? | `string` | |
|
|
2610
|
+
| helper-text? | `string` | |
|
|
2611
|
+
| success? | `string` | Confirmation below the control (Field `success`) |
|
|
2500
2612
|
| required? | `boolean` | |
|
|
2501
2613
|
| optional? | `boolean` | "(optional)" after the label |
|
|
2502
2614
|
| disabled? | `boolean` | |
|
|
2615
|
+
| classes? | `RecipeClasses<typeof fieldRecipe>` | Extra classes per part of the Field, e.g. { label: "…" } (see the field recipe) |
|
|
2503
2616
|
|
|
2617
|
+
| Slot | Slot props | Description |
|
|
2618
|
+
| --- | --- | --- |
|
|
2619
|
+
| #default | `{ field: AnyFieldApi }` | |
|
|
2620
|
+
| #label | – | Own content of the label (instead of `label`) |
|
|
2621
|
+
| #helper-text | – | Own helper text, e.g. with a link – part of the control's description (instead of `helperText`) |
|
|
2622
|
+
| #success | – | Own confirmation (instead of `success`) |
|
|
2504
2623
|
|
|
2505
2624
|
### FormList
|
|
2506
2625
|
|
|
@@ -2513,7 +2632,7 @@ Repeated entries of a form: numbered list with move up/down (also Alt+↑/↓) a
|
|
|
2513
2632
|
|
|
2514
2633
|
| Prop | Type | Description |
|
|
2515
2634
|
| --- | --- | --- |
|
|
2516
|
-
| field | `AnyFieldApi` | The TanStack Form field of the array (`<form.Field name="contacts" mode="array">`) |
|
|
2635
|
+
| field | `AnyFieldApi` | The TanStack Form field of the array (`<form.Field name="contacts" mode="array" v-slot="{ field }">`) |
|
|
2517
2636
|
| label | `string` | Visible name of the list (legend), e.g. "Contacts" |
|
|
2518
2637
|
| new-item | `() => unknown` | The value of a new entry, e.g. `() => ({ name: '', email: '' })` |
|
|
2519
2638
|
| item-label? | `(position: number) => string` | Name of an entry by position (1-based), e.g. (n) => `Contact ${n}` – names the buttons and announcements |
|
|
@@ -2564,11 +2683,10 @@ Carousel of pictures with thumbnails (aria-current marks the shown one) and an o
|
|
|
2564
2683
|
| fullscreen? | `boolean` | Button that opens the pictures large in a dialog |
|
|
2565
2684
|
| tools? | `boolean` | The large view is a lightbox: zoom (buttons, + and −, Ctrl+wheel, two fingers), move the zoomed picture, rotate, download, fill the screen, swipe; keyboard shortcuts are shown in it |
|
|
2566
2685
|
| lazy? | `boolean` | Pictures load when they come near the view (loading="lazy") |
|
|
2567
|
-
| has-more? | `boolean` | More pictures can be loaded: showing one of the last two
|
|
2686
|
+
| has-more? | `boolean` | More pictures can be loaded: showing one of the last two emits loadMore (they are added at the end) |
|
|
2568
2687
|
| loading? | `boolean` | The next pictures are loading (aria-busy) |
|
|
2569
|
-
| page? | `number` |
|
|
2688
|
+
| v-model:page? | `number` | Current picture – use with v-model:page |
|
|
2570
2689
|
| default-page? | `number` | |
|
|
2571
|
-
| style? | `CSSProperties` | |
|
|
2572
2690
|
| classes? | `RecipeClasses<typeof galleryRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
2573
2691
|
|
|
2574
2692
|
| Event | Payload | Description |
|
|
@@ -2589,10 +2707,10 @@ Gantt chart: task list as treegrid (keyboard, texts of dates and dependencies),
|
|
|
2589
2707
|
| Prop | Type | Description |
|
|
2590
2708
|
| --- | --- | --- |
|
|
2591
2709
|
| tasks | `readonly GanttTask[]` | |
|
|
2592
|
-
| zoom? | `GanttZoom` | Unit of the time axis
|
|
2710
|
+
| v-model:zoom? | `GanttZoom` | Unit of the time axis – use with v-model:zoom |
|
|
2593
2711
|
| default-zoom? | `GanttZoom` | |
|
|
2594
2712
|
| zooms? | `readonly GanttZoom[]` | Zoom levels offered in the toolbar |
|
|
2595
|
-
| expanded? | `string[]` | Ids of the expanded groups
|
|
2713
|
+
| v-model:expanded? | `string[]` | Ids of the expanded groups – use with v-model:expanded (default: all expanded) |
|
|
2596
2714
|
| default-expanded? | `string[]` | |
|
|
2597
2715
|
| editable? | `boolean` | Tasks can be moved, resized and their progress changed: drag the bars, or Alt(+Shift)+arrow keys in the list |
|
|
2598
2716
|
| linkable? | `boolean` | New dependencies by dragging from the dot at the end of a bar onto another bar, or by keyboard with "Add dependency…" |
|
|
@@ -2627,7 +2745,7 @@ role="meter": a value in a known range; the arc is decoration, the value is name
|
|
|
2627
2745
|
|
|
2628
2746
|
| Prop | Type | Description |
|
|
2629
2747
|
| --- | --- | --- |
|
|
2630
|
-
|
|
|
2748
|
+
| value | `number` | |
|
|
2631
2749
|
| min? | `number` | |
|
|
2632
2750
|
| max? | `number` | |
|
|
2633
2751
|
| label | `string` | Visible label below the gauge, also its accessible name |
|
|
@@ -2655,7 +2773,7 @@ Children side by side, wrapping onto new lines
|
|
|
2655
2773
|
| align? | `'middle' \| 'top' \| 'bottom' \| 'baseline' \| 'stretch'` | Vertical alignment of the children (default middle) |
|
|
2656
2774
|
| nowrap? | `boolean` | Keep everything on one line instead of wrapping |
|
|
2657
2775
|
| grow? | `boolean` | Children share the width evenly |
|
|
2658
|
-
| as? | `
|
|
2776
|
+
| as? | `string \| Component` | Element to render, e.g. "ul" (default div) |
|
|
2659
2777
|
| classes? | `RecipeClasses<typeof groupRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
2660
2778
|
|
|
2661
2779
|
|
|
@@ -2713,7 +2831,7 @@ Dialog listing the registered shortcuts with their descriptions, grouped; opens
|
|
|
2713
2831
|
|
|
2714
2832
|
| Prop | Type | Description |
|
|
2715
2833
|
| --- | --- | --- |
|
|
2716
|
-
| open? | `boolean` | Open state
|
|
2834
|
+
| v-model:open? | `boolean` | Open state – use with v-model:open |
|
|
2717
2835
|
| hotkey? | `string \| false` | Shortcut that opens the dialog (default "?"); `false` switches it off |
|
|
2718
2836
|
| title? | `string` | Title of the dialog (default "Keyboard shortcuts") |
|
|
2719
2837
|
| registry? | `HotkeyRegistry` | Another registry than the page's |
|
|
@@ -2736,9 +2854,9 @@ Extra information on hover or keyboard focus of the trigger (WCAG 1.4.13: stays
|
|
|
2736
2854
|
| --- | --- | --- |
|
|
2737
2855
|
| open-delay? | `number` | Delay before opening (ms) |
|
|
2738
2856
|
| close-delay? | `number` | Delay before closing (ms) – time to move the pointer onto the card |
|
|
2739
|
-
| open? | `boolean` |
|
|
2857
|
+
| v-model:open? | `boolean` | Controlled state – use with v-model:open |
|
|
2740
2858
|
| default-open? | `boolean` | |
|
|
2741
|
-
| anchor? | `
|
|
2859
|
+
| anchor? | `OverlayAnchor \| null` | Element (or point) to open at instead of the trigger; open with v-model:open or the exposed `open(anchor)` |
|
|
2742
2860
|
| classes? | `RecipeClasses<typeof hoverCardRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
2743
2861
|
|
|
2744
2862
|
| Event | Payload | Description |
|
|
@@ -2762,11 +2880,15 @@ Button with only an icon; the label is its accessible name, optionally with a co
|
|
|
2762
2880
|
| Prop | Type | Description |
|
|
2763
2881
|
| --- | --- | --- |
|
|
2764
2882
|
| icon | `Component` | Icon component |
|
|
2883
|
+
| icon-props? | `Record<string, unknown>` | Props passed on to the icon component, e.g. { fill: 'currentColor' } for a filled icon or { strokeWidth: 1.5 } |
|
|
2765
2884
|
| label | `string` | Accessible name – icon buttons have no visible text |
|
|
2766
2885
|
| variant? | `IconButtonVariant` | |
|
|
2767
2886
|
| color? | `ButtonColor` | Colour combined with the variant, like Button `color` (e.g. a danger text button) |
|
|
2768
2887
|
| size? | `ButtonSize` | `xs` is 24px – the minimum target size (WCAG 2.5.8) |
|
|
2769
2888
|
| shape? | `ButtonShape` | Corner shape: `pill` (round, default), `rounded` or `square` |
|
|
2889
|
+
| disabled? | `boolean` | |
|
|
2890
|
+
| loading? | `boolean` | Shows a spinner instead of the icon and ignores clicks; stays focusable (aria-disabled + aria-busy) |
|
|
2891
|
+
| type? | `'button' \| 'submit' \| 'reset'` | |
|
|
2770
2892
|
| badge? | `number \| boolean` | Counter (number > 0) or dot (true) in the top-right corner |
|
|
2771
2893
|
| badge-label? | `(count: string \| null) => string` | Appended to the accessible name while a badge is shown, e.g. "Notifications, 4 new". Receives the visible counter text ("4", "99+") or null for the dot – the visible text must stay part of the name (WCAG 2.5.3). |
|
|
2772
2894
|
| classes? | `RecipeClasses<typeof iconButtonRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
@@ -2805,8 +2927,8 @@ The image with a crop area (a slider): arrow keys move it, Alt+arrows resize it,
|
|
|
2805
2927
|
| src | `string` | Image URL (an object URL of a chosen file works, too) |
|
|
2806
2928
|
| aspect-ratio? | `number` | Width / height of the crop area, e.g. 1 or 16 / 9 (free without) |
|
|
2807
2929
|
| crop-shape? | `'rectangle' \| 'circle'` | Rectangle (default) or circle (e.g. for avatars) |
|
|
2808
|
-
| zoom? | `number` | Zoom factor
|
|
2809
|
-
| rotation? | `number` | Rotation in degrees
|
|
2930
|
+
| v-model:zoom? | `number` | Zoom factor – use with v-model:zoom |
|
|
2931
|
+
| v-model:rotation? | `number` | Rotation in degrees – use with v-model:rotation |
|
|
2810
2932
|
| min-zoom? | `number` | Smallest and largest zoom (default 1 and 5) |
|
|
2811
2933
|
| max-zoom? | `number` | |
|
|
2812
2934
|
| toolbar? | `boolean` | Buttons for zoom, rotation, mirroring and reset (default true) |
|
|
@@ -2847,14 +2969,14 @@ The value as a button; activating it shows an editor (inline or in a popover) wi
|
|
|
2847
2969
|
|
|
2848
2970
|
| Prop | Type | Description |
|
|
2849
2971
|
| --- | --- | --- |
|
|
2850
|
-
| v-model? (modelValue) | `T` | The value
|
|
2972
|
+
| v-model? (modelValue) | `T` | The value – use with v-model; it changes only when a valid edit is saved |
|
|
2851
2973
|
| default-value? | `T` | |
|
|
2852
2974
|
| label | `string` | What is edited, e.g. "Project name" – names the editor and the button |
|
|
2853
2975
|
| mode? | `'inline' \| 'popover'` | `inline` (default): the editor replaces the text; `popover`: it opens in a popover next to the text |
|
|
2854
2976
|
| placeholder? | `string` | Text while the value is empty (default "Empty") |
|
|
2855
2977
|
| format? | `(value: T \| undefined) => string` | Text of the value (default: the value as text) |
|
|
2856
2978
|
| validate? | `(value: T \| undefined) => string \| null \| undefined \| Promise<string \| null \| undefined>` | Checks the value before saving: a message keeps the editor open and is shown (and announced); may be async (the save button is busy meanwhile) |
|
|
2857
|
-
| editing? | `boolean` | Editing state
|
|
2979
|
+
| v-model:editing? | `boolean` | Editing state – use with v-model:editing |
|
|
2858
2980
|
| disabled? | `boolean` | |
|
|
2859
2981
|
| save-label? | `string` | |
|
|
2860
2982
|
| cancel-label? | `string` | |
|
|
@@ -2882,7 +3004,7 @@ Shows a value as a button; activating it swaps in the editor (Escape closes it)
|
|
|
2882
3004
|
|
|
2883
3005
|
| Prop | Type | Description |
|
|
2884
3006
|
| --- | --- | --- |
|
|
2885
|
-
| active? | `boolean` |
|
|
3007
|
+
| v-model:active? | `boolean` | Editing – use with v-model:active |
|
|
2886
3008
|
| edit-label? | `string` | Hint for screen readers after the shown text, e.g. "bearbeiten" |
|
|
2887
3009
|
| classes? | `RecipeClasses<typeof inplaceRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
2888
3010
|
|
|
@@ -2905,9 +3027,11 @@ Text field with sizes, leading icon, prefix and suffix; works inside Field
|
|
|
2905
3027
|
|
|
2906
3028
|
| Prop | Type | Description |
|
|
2907
3029
|
| --- | --- | --- |
|
|
3030
|
+
| v-model? (modelValue) | `string` | |
|
|
2908
3031
|
| size? | `Size` | |
|
|
2909
3032
|
| invalid? | `boolean` | Marks the input as invalid (also inherited from a surrounding Field) |
|
|
2910
3033
|
| success? | `boolean` | Confirmed value: green border and check icon (also inherited from a Field with `success`) |
|
|
3034
|
+
| disabled? | `boolean` | Disables the input (also inherited from a surrounding Field) |
|
|
2911
3035
|
| loading? | `boolean` | Shows a spinner in the field and marks it busy (aria-busy), e.g. while checking the value |
|
|
2912
3036
|
| clearable? | `boolean` | Shows a button that empties the field while it has a value |
|
|
2913
3037
|
| clear-label? | `string` | Accessible name of the clear button (default "Clear input") |
|
|
@@ -2954,12 +3078,17 @@ JSON text field: checked while typing (the result is the field's description), "
|
|
|
2954
3078
|
|
|
2955
3079
|
| Prop | Type | Description |
|
|
2956
3080
|
| --- | --- | --- |
|
|
2957
|
-
| v-model? (modelValue) | `string` | The JSON text
|
|
3081
|
+
| v-model? (modelValue) | `string` | The JSON text – use with v-model |
|
|
2958
3082
|
| default-value? | `string` | |
|
|
2959
3083
|
| indent? | `number` | Spaces per level when formatting (default 2) |
|
|
2960
3084
|
| format-button? | `boolean` | Button that formats the text (default true) |
|
|
2961
3085
|
| format-on-blur? | `boolean` | Formats valid JSON when the field loses focus |
|
|
3086
|
+
| placeholder? | `string` | |
|
|
3087
|
+
| rows? | `number` | |
|
|
3088
|
+
| disabled? | `boolean` | |
|
|
3089
|
+
| read-only? | `boolean` | |
|
|
2962
3090
|
| invalid? | `boolean` | Marks the field invalid (it also is while the text is no valid JSON) |
|
|
3091
|
+
| name? | `string` | |
|
|
2963
3092
|
| classes? | `RecipeClasses<typeof jsonInputRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
2964
3093
|
|
|
2965
3094
|
| Event | Payload | Description |
|
|
@@ -2984,8 +3113,6 @@ JSON as a tree (role="tree"): arrow keys open and close, typing jumps to a key;
|
|
|
2984
3113
|
| search? | `boolean` | Search field above the tree: hits are marked and their branches opened |
|
|
2985
3114
|
| copyable? | `boolean` | Copy button per node (and Ctrl+C on the focused node, default true) |
|
|
2986
3115
|
| show-types? | `boolean` | Shows the type of every value as text (otherwise only for screen readers) |
|
|
2987
|
-
| aria-label? | `string` | |
|
|
2988
|
-
| style? | `CSSProperties` | |
|
|
2989
3116
|
| classes? | `RecipeClasses<typeof jsonViewerRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
2990
3117
|
|
|
2991
3118
|
| Event | Payload | Description |
|
|
@@ -3004,7 +3131,7 @@ Kanban board: each column is a sortable list of one group – cards move with th
|
|
|
3004
3131
|
|
|
3005
3132
|
| Prop | Type | Description |
|
|
3006
3133
|
| --- | --- | --- |
|
|
3007
|
-
| columns? | `KanbanColumn<T>[]` | The columns with their cards
|
|
3134
|
+
| v-model:columns? | `KanbanColumn<T>[]` | The columns with their cards – use with v-model:columns |
|
|
3008
3135
|
| default-columns? | `KanbanColumn<T>[]` | |
|
|
3009
3136
|
| label? | `string` | Accessible name of the board (default "Board") |
|
|
3010
3137
|
| item-key? | `ItemAccessor<T, string \| number>` | Key of a card: property name or function (default `id`, else `value`) |
|
|
@@ -3036,7 +3163,7 @@ A key, e.g. <Kbd>Strg</Kbd> + <Kbd>K</Kbd> – or a whole shortcut with `hotkey`
|
|
|
3036
3163
|
|
|
3037
3164
|
| Prop | Type | Description |
|
|
3038
3165
|
| --- | --- | --- |
|
|
3039
|
-
| hotkey? | `string` | A shortcut to show key by key, e.g. "mod+k" → Ctrl K (⌘ K on Apple devices), "g i" → G then I. Without it the
|
|
3166
|
+
| hotkey? | `string` | A shortcut to show key by key, e.g. "mod+k" → Ctrl K (⌘ K on Apple devices), "g i" → G then I. Without it the slot is the key |
|
|
3040
3167
|
| classes? | `RecipeClasses<typeof kbdRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
3041
3168
|
|
|
3042
3169
|
|
|
@@ -3070,13 +3197,12 @@ Dial (270°): a slider – arrow keys, Page Up/Down, Home/End, or drag around th
|
|
|
3070
3197
|
|
|
3071
3198
|
| Prop | Type | Description |
|
|
3072
3199
|
| --- | --- | --- |
|
|
3073
|
-
| v-model? (modelValue) | `number` |
|
|
3200
|
+
| v-model? (modelValue) | `number` | Value – use with v-model |
|
|
3074
3201
|
| default-value? | `number` | |
|
|
3075
3202
|
| min? | `number` | |
|
|
3076
3203
|
| max? | `number` | |
|
|
3077
3204
|
| step? | `number` | |
|
|
3078
3205
|
| label? | `string` | Visible label, also the accessible name |
|
|
3079
|
-
| aria-label? | `string` | |
|
|
3080
3206
|
| format-value? | `(value: number) => string` | Formats the shown and announced value, e.g. (v) => `${v} %` |
|
|
3081
3207
|
| value-template? | `string` | Text with the value in it, e.g. "{value} %" (when there is no formatValue) |
|
|
3082
3208
|
| stroke-width? | `number` | Width of the arc (default 8, of a 100 wide dial) |
|
|
@@ -3084,7 +3210,7 @@ Dial (270°): a slider – arrow keys, Page Up/Down, Home/End, or drag around th
|
|
|
3084
3210
|
| size? | `'sm' \| 'md' \| 'lg'` | |
|
|
3085
3211
|
| disabled? | `boolean` | |
|
|
3086
3212
|
| name? | `string` | |
|
|
3087
|
-
|
|
|
3213
|
+
| id? | `string` | Id of the dial (the slider); a `<label for>` cannot name it, use `label`, a Field or aria-label |
|
|
3088
3214
|
| classes? | `RecipeClasses<typeof knobRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
3089
3215
|
|
|
3090
3216
|
| Event | Payload | Description |
|
|
@@ -3118,6 +3244,22 @@ Lines (or areas) over the categories – curved, stacked, with reference lines;
|
|
|
3118
3244
|
|
|
3119
3245
|
| Prop | Type | Description |
|
|
3120
3246
|
| --- | --- | --- |
|
|
3247
|
+
| data | `readonly ChartRow[]` | The rows: one object per category with a value per series |
|
|
3248
|
+
| category-key | `string` | Property of each row with the category (x axis) |
|
|
3249
|
+
| series | `readonly ChartSeries[]` | The series: key of the value, label, colour, axis, stack … |
|
|
3250
|
+
| title | `string` | Title of the chart, also its accessible name |
|
|
3251
|
+
| hide-title? | `boolean` | Keep the title for screen readers only |
|
|
3252
|
+
| height? | `string` | Height of the chart area (CSS length, default 18rem) |
|
|
3253
|
+
| table? | `boolean` | The data as a table below the chart (opens on demand) – the text alternative (default true) |
|
|
3254
|
+
| format-value? | `(value: number) => string` | Formats values in the axis, tooltips, legend and table (default: numbers in the locale) |
|
|
3255
|
+
| references? | `readonly ChartReference[]` | Reference lines (`value`) and areas (`from`–`to`), on the value axis or with `axis: 'x'` on the categories |
|
|
3256
|
+
| scale? | `'linear' \| 'logarithmic'` | Logarithmic value axis |
|
|
3257
|
+
| legend? | `boolean` | Legend (default: with more than one series) |
|
|
3258
|
+
| brush? | `boolean` | A small overview below with a range to zoom into (keyboard: the slider's arrow keys) |
|
|
3259
|
+
| v-model:range? | `[number, number]` | Shown rows with `brush` (inclusive indexes) – use with v-model:range |
|
|
3260
|
+
| default-range? | `[number, number]` | |
|
|
3261
|
+
| options? | `Record<string, unknown>` | Chart.js options – merged over the WireLayer defaults |
|
|
3262
|
+
| classes? | `RecipeClasses<typeof chartRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe chart) |
|
|
3121
3263
|
| curved? | `boolean` | Curved lines |
|
|
3122
3264
|
| area? | `boolean` | Fill the area below every line (an area chart) |
|
|
3123
3265
|
| stacked? | `boolean` | Stack all series (with `area`: stacked areas) |
|
|
@@ -3139,9 +3281,8 @@ Always visible list (role="listbox"): arrow keys move, Enter/Space choose, typin
|
|
|
3139
3281
|
| --- | --- | --- |
|
|
3140
3282
|
| items | `readonly T[]` | Options: ListboxItem objects – or any objects or values, read with itemValue/itemLabel/itemDisabled/itemGroup |
|
|
3141
3283
|
| label? | `string` | Visible label, also the list's accessible name |
|
|
3142
|
-
| aria-label? | `string` | Accessible name without a visible label |
|
|
3143
3284
|
| multiple? | `boolean` | Several options can be chosen (Space toggles) |
|
|
3144
|
-
| v-model? (modelValue) | `V[]` | Chosen values; any type (string, number, boolean, object) |
|
|
3285
|
+
| v-model? (modelValue) | `V[]` | Chosen values – use with v-model; any type (string, number, boolean, object) |
|
|
3145
3286
|
| default-value? | `V[]` | |
|
|
3146
3287
|
| disabled? | `boolean` | |
|
|
3147
3288
|
| item-value? | `ItemAccessor<T, V>` | Value of an item: property name or function (default: `value`, otherwise the item itself) |
|
|
@@ -3150,18 +3291,18 @@ Always visible list (role="listbox"): arrow keys move, Enter/Space choose, typin
|
|
|
3150
3291
|
| item-group? | `ItemAccessor<T, string \| null \| undefined>` | Group heading of an item: property name or function (default: `group`); items are listed per group |
|
|
3151
3292
|
| value-key? | `ItemAccessor<V, string \| number>` | Identifies object values (property name or function), e.g. "id" – without it objects are compared by content |
|
|
3152
3293
|
| filter? | `boolean` | Search field above the list; filters by label, ignoring case and accents |
|
|
3153
|
-
| manual-filter? | `boolean` | The items are filtered elsewhere (server): no local filtering, listen to
|
|
3294
|
+
| manual-filter? | `boolean` | The items are filtered elsewhere (server): no local filtering, listen to filterChange |
|
|
3154
3295
|
| empty-text? | `string` | Shown when no item is left (default "No results" / "No entries") |
|
|
3155
3296
|
| loading? | `boolean` | Shows "Loading" at the end of the list (aria-busy) |
|
|
3156
3297
|
| loading-text? | `string` | Text of the loading row |
|
|
3157
|
-
| has-more? | `boolean` | More items can be loaded: scrolling to the end of the list
|
|
3298
|
+
| has-more? | `boolean` | More items can be loaded: scrolling to the end of the list emits loadMore |
|
|
3158
3299
|
| checkboxes? | `boolean` | Check boxes before the options (`multiple`) |
|
|
3159
3300
|
| select-all? | `boolean` | "Select all" above the options (`multiple`) – takes the options in view (filtered, enabled) |
|
|
3160
3301
|
| data-source? | `DataSource<T>` | Loads the options (pages while scrolling, the search field asks it); `getItemsByKeys` gives the labels of chosen values that are not loaded |
|
|
3161
3302
|
| min-search-length? | `number` | Fewest characters the search needs before the data source is asked |
|
|
3162
3303
|
| page-size? | `number` | Options per request of the data source (default 50) |
|
|
3163
3304
|
| draggable-items? | `boolean` | The options can be dragged (`draggable`, `data-value` is the key) – lists that exchange items (PickList) |
|
|
3164
|
-
|
|
|
3305
|
+
| id? | `string` | Id of the root element; a `<label for>` cannot name the list box, use a Field or aria-label |
|
|
3165
3306
|
| classes? | `RecipeClasses<typeof listboxRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
3166
3307
|
|
|
3167
3308
|
| Event | Payload | Description |
|
|
@@ -3215,14 +3356,13 @@ Log: a scrollable, focusable area (arrow keys scroll) with numbered lines; level
|
|
|
3215
3356
|
| label? | `string` | Accessible name of the scroll area (default "Log") |
|
|
3216
3357
|
| search? | `boolean` | Search field: filters the lines and marks the hits (default true) |
|
|
3217
3358
|
| level-filter? | `boolean` | Buttons to show and hide the levels (default true) |
|
|
3218
|
-
| levels? | `LogLevel[]` | Levels shown (
|
|
3359
|
+
| v-model:levels? | `LogLevel[]` | Levels shown – use with v-model:levels (default all) |
|
|
3219
3360
|
| detect-levels? | `boolean` | Reads the level from the text when a line has none ("ERROR", "[warn]" …, default true) |
|
|
3220
|
-
| auto-scroll? | `boolean` | Keeps the newest line in view; scrolling up pauses it (default true) |
|
|
3361
|
+
| v-model:auto-scroll? | `boolean` | Keeps the newest line in view; scrolling up pauses it – use with v-model:autoScroll (default true) |
|
|
3221
3362
|
| line-numbers? | `boolean` | Line numbers (default true) |
|
|
3222
|
-
| has-more? | `boolean` | Older lines can be loaded: a button at the top
|
|
3363
|
+
| has-more? | `boolean` | Older lines can be loaded: a button at the top emits loadMore |
|
|
3223
3364
|
| loading? | `boolean` | Older lines are loading |
|
|
3224
3365
|
| row-height? | `number` | Height of a line in px – must match the styles (default 20) |
|
|
3225
|
-
| style? | `CSSProperties` | |
|
|
3226
3366
|
| classes? | `RecipeClasses<typeof logViewerRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
3227
3367
|
|
|
3228
3368
|
| Event | Payload | Description |
|
|
@@ -3271,7 +3411,7 @@ Moving band (region, named by the label): moves only without reduced motion; the
|
|
|
3271
3411
|
| spacing? | `string` | Space between the items, a CSS length (default "1rem") |
|
|
3272
3412
|
| auto-fill? | `boolean` | Repeats the content until the band is full (default true) |
|
|
3273
3413
|
| reverse? | `boolean` | |
|
|
3274
|
-
| paused? | `boolean` | Paused
|
|
3414
|
+
| v-model:paused? | `boolean` | Paused – use with v-model:paused (the pause button and hover/focus pause, too) |
|
|
3275
3415
|
| pause-on-hover? | `boolean` | Stops while the pointer is over the band or the focus is in it (default true) |
|
|
3276
3416
|
| pause-button? | `boolean` | Button to pause and resume (WCAG 2.2.2, default true) |
|
|
3277
3417
|
| fade? | `boolean` | Fades the content out at the edges |
|
|
@@ -3297,10 +3437,11 @@ Text input with a fixed format (IBAN, phone, postcode …): separators are added
|
|
|
3297
3437
|
| Prop | Type | Description |
|
|
3298
3438
|
| --- | --- | --- |
|
|
3299
3439
|
| mask | `string` | 9 digit, a letter, * letter or digit – everything else is inserted by itself, \\ escapes a token, `?` starts an optional rest, e.g. "+4\\9 999 9999999" or "99999?-9999" |
|
|
3300
|
-
| v-model? (modelValue) | `string` | Masked value (or the raw one with `unmask`) |
|
|
3440
|
+
| v-model? (modelValue) | `string` | Masked value (or the raw one with `unmask`) – use with v-model |
|
|
3301
3441
|
| default-value? | `string` | |
|
|
3442
|
+
| placeholder? | `string` | |
|
|
3302
3443
|
| slot-char? | `string` | Character for the open slots in the placeholder (default "_") |
|
|
3303
|
-
| unmask? | `boolean` |
|
|
3444
|
+
| unmask? | `boolean` | v-model holds only the typed characters ("891234" instead of "DE89 1234") |
|
|
3304
3445
|
| auto-clear? | `boolean` | Empties an incomplete value when the field is left |
|
|
3305
3446
|
| tokens? | `MaskTokens` | Own tokens, e.g. { h: /[0-9a-f]/i } – they extend 9, a and * |
|
|
3306
3447
|
|
|
@@ -3350,8 +3491,8 @@ Website navigation (nav landmark, disclosure pattern – no menu roles): links,
|
|
|
3350
3491
|
| current-href? | `string` | Path of the current page – only the link with exactly this href gets aria-current="page" |
|
|
3351
3492
|
| is-current? | `(link: MegaMenuLink \| MegaMenuItem) => boolean` | Own check for the current page, e.g. with the router |
|
|
3352
3493
|
| heading-level? | `2 \| 3 \| 4 \| 5` | Level of the group headings (default 3) |
|
|
3353
|
-
| link-as? | `
|
|
3354
|
-
| v-model?
|
|
3494
|
+
| link-as? | `string \| Component` | Component for the links, e.g. RouterLink or NuxtLink (gets `to` for links with `to`, else `href`); default <a> |
|
|
3495
|
+
| v-model:value? | `string` | Open panel (its value, '' for none) – use with v-model:value |
|
|
3355
3496
|
| default-value? | `string` | |
|
|
3356
3497
|
| menu-label? | `string` | Name of the menu button and title of the drawer (default "Menu") |
|
|
3357
3498
|
| classes? | `RecipeClasses<typeof megaMenuRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
@@ -3379,14 +3520,20 @@ Text field with mentions: "@" (or another trigger) opens suggestions below the f
|
|
|
3379
3520
|
| --- | --- | --- |
|
|
3380
3521
|
| v-model? (modelValue) | `string` | Text with markup: "Hello |
|
|
3381
3522
|
| default-value? | `string` | |
|
|
3382
|
-
| loading? | `boolean` | Entries are being loaded (after onSearch): the list shows "Loading" |
|
|
3383
3523
|
| items? | `readonly T[]` | Entries for "@" (shorthand for one trigger) |
|
|
3384
3524
|
| data-source? | `DataSource<T>` | Loads the "@" entries for the typed text |
|
|
3525
|
+
| loading? | `boolean` | Entries are being loaded (after the search event): the list shows "Loading" |
|
|
3385
3526
|
| triggers? | `readonly MentionTrigger<T>[]` | Several trigger characters with their own entries (replaces items/dataSource) |
|
|
3386
3527
|
| item-label? | `ItemAccessor<T, string>` | Text of an entry: property name or function (default `label`) |
|
|
3387
3528
|
| item-value? | `ItemAccessor<T, unknown>` | Id of an entry in the markup: property name or function (default `value`, else `id`) |
|
|
3388
3529
|
| limit? | `number` | Most suggestions shown (default 8) |
|
|
3530
|
+
| placeholder? | `string` | |
|
|
3531
|
+
| rows? | `number` | |
|
|
3532
|
+
| disabled? | `boolean` | |
|
|
3533
|
+
| read-only? | `boolean` | |
|
|
3389
3534
|
| invalid? | `boolean` | |
|
|
3535
|
+
| required? | `boolean` | |
|
|
3536
|
+
| name? | `string` | Name of the hidden form field (the markup) |
|
|
3390
3537
|
| classes? | `RecipeClasses<typeof mentionsRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
3391
3538
|
|
|
3392
3539
|
| Event | Payload | Description |
|
|
@@ -3411,13 +3558,14 @@ The trigger is the slotted element (e.g. a Button or IconButton)
|
|
|
3411
3558
|
| Prop | Type | Description |
|
|
3412
3559
|
| --- | --- | --- |
|
|
3413
3560
|
| items | `readonly MenuEntry[]` | Items, groups ({ type: 'group' }), separators ({ type: 'separator' }), checkbox items ({ type: 'checkbox' }) and radio groups ({ type: 'radio' }); items with children open a submenu, items with href or to are links |
|
|
3414
|
-
| open? | `boolean` |
|
|
3561
|
+
| v-model:open? | `boolean` | Controlled state – use with v-model:open |
|
|
3415
3562
|
| default-open? | `boolean` | |
|
|
3416
|
-
| anchor? | `
|
|
3563
|
+
| anchor? | `OverlayAnchor \| null` | Element (or point) to open at instead of the trigger; open with v-model:open or the exposed `open(anchor)` |
|
|
3417
3564
|
| searchable? | `boolean` | Filter field at the top – for long menus; arrow keys move through the matching items, Enter chooses |
|
|
3418
3565
|
| search-label? | `string` | Placeholder and accessible name of the filter field |
|
|
3419
3566
|
| placement? | `PopoverPlacement` | Side of the trigger the menu opens on, e.g. `bottom-end` for a menu at the right edge (default bottom-start) |
|
|
3420
3567
|
| arrow? | `boolean` | Arrow pointing at the trigger, as on the Popover |
|
|
3568
|
+
| link-as? | `Component \| string` | Component for link items, e.g. RouterLink or NuxtLink (gets `to` for items with `to`, else `href`); default <a> |
|
|
3421
3569
|
| classes? | `RecipeClasses<typeof menuRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
3422
3570
|
|
|
3423
3571
|
| Event | Payload | Description |
|
|
@@ -3444,9 +3592,9 @@ Menu bar (role="menubar"): arrow keys move along the bar and between open menus,
|
|
|
3444
3592
|
| Prop | Type | Description |
|
|
3445
3593
|
| --- | --- | --- |
|
|
3446
3594
|
| menus | `readonly MenubarMenu[]` | |
|
|
3447
|
-
| aria-label? | `string` | Name of the menu bar, e.g. "Application" |
|
|
3448
3595
|
| responsive? | `boolean` | Below the md breakpoint (768px) a menu button with all menus replaces the bar |
|
|
3449
3596
|
| menu-label? | `string` | Accessible name of the menu button on small screens |
|
|
3597
|
+
| link-as? | `Component \| string` | Component for link items, e.g. RouterLink or NuxtLink (gets `to` for items with `to`, else `href`); default <a> |
|
|
3450
3598
|
| classes? | `RecipeClasses<typeof menubarRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
3451
3599
|
|
|
3452
3600
|
| Event | Payload | Description |
|
|
@@ -3478,7 +3626,6 @@ One bar for the parts (visual), the legend lists every part with its value as te
|
|
|
3478
3626
|
| orientation? | `'horizontal' \| 'vertical'` | Vertical bar growing from the bottom, the legend next to it |
|
|
3479
3627
|
| legend-position? | `'top' \| 'bottom' \| 'start' \| 'end'` | Where the legend is: bottom (default), top, start or end |
|
|
3480
3628
|
| legend-orientation? | `'horizontal' \| 'vertical'` | Legend entries in a row (default) or one below the other |
|
|
3481
|
-
| style? | `CSSProperties` | |
|
|
3482
3629
|
| classes? | `RecipeClasses<typeof meterGroupRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
3483
3630
|
|
|
3484
3631
|
|
|
@@ -3492,9 +3639,9 @@ Days in a row with arrows to earlier and later days; arrow keys choose a day and
|
|
|
3492
3639
|
|
|
3493
3640
|
| Prop | Type | Description |
|
|
3494
3641
|
| --- | --- | --- |
|
|
3495
|
-
| v-model? (modelValue) | `T` | Chosen day (ISO "2026-10-20" or Date) |
|
|
3642
|
+
| v-model? (modelValue) | `T` | Chosen day (ISO "2026-10-20" or Date) – use with v-model |
|
|
3496
3643
|
| default-value? | `T` | |
|
|
3497
|
-
| value-type? | `DateValueType` | What
|
|
3644
|
+
| value-type? | `DateValueType` | What v-model gets: an ISO string (default) or a Date |
|
|
3498
3645
|
| start-date? | `DateLike` | First day shown at the start (default: the start of the week of the value or today) |
|
|
3499
3646
|
| days? | `number` | Number of days in the strip |
|
|
3500
3647
|
| min? | `DateLike` | Earliest day that can be chosen |
|
|
@@ -3504,8 +3651,6 @@ Days in a row with arrows to earlier and later days; arrow keys choose a day and
|
|
|
3504
3651
|
| locale? | `string` | Day names and the spoken dates follow the locale |
|
|
3505
3652
|
| label? | `string` | Name of the strip (default "Days") |
|
|
3506
3653
|
| disabled? | `boolean` | |
|
|
3507
|
-
| aria-label? | `string` | Accessible name instead of `label` |
|
|
3508
|
-
| style? | `CSSProperties` | |
|
|
3509
3654
|
| classes? | `RecipeClasses<typeof miniCalendarRecipe>` | Extra classes per part of the component, e.g. { day: "…" } (see the recipe) |
|
|
3510
3655
|
|
|
3511
3656
|
| Event | Payload | Description |
|
|
@@ -3540,7 +3685,7 @@ Month field ("10.2026"): type the digits in one go, or pick from the month grid;
|
|
|
3540
3685
|
|
|
3541
3686
|
| Prop | Type | Description |
|
|
3542
3687
|
| --- | --- | --- |
|
|
3543
|
-
| v-model? (modelValue) | `T` | Month as "2026-10"; with range { start, end } |
|
|
3688
|
+
| v-model? (modelValue) | `T` | Month as "2026-10" – use with v-model; with range { start, end } |
|
|
3544
3689
|
| default-value? | `T` | |
|
|
3545
3690
|
| range? | `boolean` | Start and end month instead of one |
|
|
3546
3691
|
| min? | `string` | Earliest month ("2026-01") |
|
|
@@ -3552,10 +3697,10 @@ Month field ("10.2026"): type the digits in one go, or pick from the month grid;
|
|
|
3552
3697
|
| invalid? | `boolean` | |
|
|
3553
3698
|
| required? | `boolean` | |
|
|
3554
3699
|
| name? | `string` | With range sent as name[0] and name[1] |
|
|
3700
|
+
| placeholder? | `string` | Text of the empty field, shown until it gets the focus – no replacement for a label |
|
|
3555
3701
|
| size? | `'sm' \| 'md' \| 'lg'` | |
|
|
3556
3702
|
| clearable? | `boolean` | Clear button in the field while it has a value |
|
|
3557
|
-
|
|
|
3558
|
-
| style? | `CSSProperties` | |
|
|
3703
|
+
| id? | `string` | Id of the field – the (first) date gets it; a `<label for>` cannot name it, use a Field or aria-label |
|
|
3559
3704
|
| classes? | `RecipeClasses<typeof datePicker>` | Extra classes per part of the date field, e.g. { control: "…" } (the calendar: RecipesProvider) |
|
|
3560
3705
|
|
|
3561
3706
|
| Event | Payload | Description |
|
|
@@ -3575,11 +3720,12 @@ Select with several values: the list stays open while choosing, Space/Enter togg
|
|
|
3575
3720
|
| Prop | Type | Description |
|
|
3576
3721
|
| --- | --- | --- |
|
|
3577
3722
|
| items | `readonly T[]` | Options: SelectItem objects – or any objects or values, read with itemValue/itemLabel/itemDisabled/itemGroup |
|
|
3578
|
-
| v-model? (modelValue) | `V[]` | Selected values; any type (string, number, boolean, object) |
|
|
3723
|
+
| v-model? (modelValue) | `V[]` | Selected values – use with v-model; any type (string, number, boolean, object) |
|
|
3579
3724
|
| default-value? | `V[]` | |
|
|
3580
3725
|
| placeholder? | `string` | |
|
|
3581
|
-
| summary? | `(count: number) => string` | Trigger text once more than
|
|
3726
|
+
| summary? | `(count: number) => string` | Trigger text once more than `maxShown` items are selected, e.g. "4 selected" |
|
|
3582
3727
|
| max-shown? | `number` | Selected labels shown in the trigger before the summary is used |
|
|
3728
|
+
| disabled? | `boolean` | |
|
|
3583
3729
|
| invalid? | `boolean` | |
|
|
3584
3730
|
| required? | `boolean` | |
|
|
3585
3731
|
| name? | `string` | |
|
|
@@ -3587,6 +3733,7 @@ Select with several values: the list stays open while choosing, Space/Enter togg
|
|
|
3587
3733
|
| item-label? | `ItemAccessor<T, string>` | Label of an item: property name or function (default: `label`) |
|
|
3588
3734
|
| item-disabled? | `ItemAccessor<T, boolean>` | Disabled state of an item: property name or function (default: `disabled`) |
|
|
3589
3735
|
| item-group? | `ItemAccessor<T, string \| null \| undefined>` | Group heading of an item: property name or function (default: `group`); items are listed per group |
|
|
3736
|
+
| item-keywords? | `ItemAccessor<T, string \| readonly string[] \| null \| undefined>` | More text the search finds an item by, besides its label: property name or function, one text or a list (default: `keywords`), e.g. the name of the item's category |
|
|
3590
3737
|
| value-key? | `ItemAccessor<V, string \| number>` | Identifies object values (property name or function), e.g. "id" – without it objects are compared by content |
|
|
3591
3738
|
| display? | `'text' \| 'chips'` | Selected items as text (default) or as chips with a remove button each (Backspace removes the last) |
|
|
3592
3739
|
| checkboxes? | `boolean` | Check boxes before the options (default); false shows a check mark after the label |
|
|
@@ -3596,13 +3743,14 @@ Select with several values: the list stays open while choosing, Space/Enter togg
|
|
|
3596
3743
|
| loading? | `boolean` | Shows a spinner in the field and "Loading" in the list (aria-busy) |
|
|
3597
3744
|
| loading-text? | `string` | Text of the loading row in the list |
|
|
3598
3745
|
| size? | `SelectSize` | Height of the field: 32, 40 (default) or 48 px |
|
|
3599
|
-
| filter? | `boolean` | Search field at the top of the list; filters by label, ignoring case and accents |
|
|
3600
|
-
| manual-filter? | `boolean` | The items are filtered elsewhere (server): no local filtering, listen to
|
|
3746
|
+
| filter? | `boolean` | Search field at the top of the list; filters by label and itemKeywords, ignoring case and accents |
|
|
3747
|
+
| manual-filter? | `boolean` | The items are filtered elsewhere (server): no local filtering, listen to filterChange |
|
|
3601
3748
|
| empty-text? | `string` | Shown when no item is left (default "No results" / "No entries") |
|
|
3602
|
-
| has-more? | `boolean` | More items can be loaded: scrolling to the end of the list
|
|
3749
|
+
| has-more? | `boolean` | More items can be loaded: scrolling to the end of the list emits loadMore |
|
|
3603
3750
|
| data-source? | `DataSource<T>` | Loads the options when the list opens (pages while scrolling; with `filter` the search asks it, after a typing pause, outdated answers dropped); `getItemsByKeys` gives the labels of chosen values that are not loaded |
|
|
3604
3751
|
| min-search-length? | `number` | Fewest characters the search needs before the data source is asked |
|
|
3605
3752
|
| page-size? | `number` | Options per request of the data source (default 50) |
|
|
3753
|
+
| id? | `string` | Id of the field (the trigger), e.g. for a `<label for>` |
|
|
3606
3754
|
| classes? | `RecipeClasses<typeof multiSelectRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
3607
3755
|
|
|
3608
3756
|
| Event | Payload | Description |
|
|
@@ -3628,9 +3776,11 @@ The browser's select: its own keyboard and mobile pickers; inside a Field it is
|
|
|
3628
3776
|
| Prop | Type | Description |
|
|
3629
3777
|
| --- | --- | --- |
|
|
3630
3778
|
| items | `readonly NativeSelectOption[]` | |
|
|
3779
|
+
| v-model? (modelValue) | `string` | Chosen value – use with v-model |
|
|
3631
3780
|
| placeholder? | `string` | First, empty option, e.g. "Please choose" |
|
|
3632
3781
|
| size? | `Size` | |
|
|
3633
3782
|
| invalid? | `boolean` | |
|
|
3783
|
+
| disabled? | `boolean` | |
|
|
3634
3784
|
| classes? | `RecipeClasses<typeof nativeSelectRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
3635
3785
|
|
|
3636
3786
|
| Event | Payload | Description |
|
|
@@ -3650,7 +3800,6 @@ Website navigation (nav landmark): entries with children are buttons (aria-expan
|
|
|
3650
3800
|
| --- | --- | --- |
|
|
3651
3801
|
| items | `readonly NavigationMenuEntry[]` | |
|
|
3652
3802
|
| label? | `string` | Name of the navigation landmark |
|
|
3653
|
-
| style? | `CSSProperties` | |
|
|
3654
3803
|
| classes? | `RecipeClasses<typeof navigationMenuRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
3655
3804
|
|
|
3656
3805
|
|
|
@@ -3680,13 +3829,13 @@ Bell with the unread count (part of its name) that opens the notifications in a
|
|
|
3680
3829
|
| Prop | Type | Description |
|
|
3681
3830
|
| --- | --- | --- |
|
|
3682
3831
|
| items? | `readonly NotificationItem[]` | The notifications (with `dataSource`: new ones pushed by the app, before the loaded pages) |
|
|
3683
|
-
| data-source? | `DataSource<NotificationItem>` | Notifications from a server, page by page (newest first): the first page is loaded at the start, "Load more" loads the next; items marked as read are kept as read here (report them with
|
|
3832
|
+
| data-source? | `DataSource<NotificationItem>` | Notifications from a server, page by page (newest first): the first page is loaded at the start, "Load more" loads the next; items marked as read are kept as read here (report them with markRead/markAllRead) |
|
|
3684
3833
|
| page-size? | `number` | Notifications per page of the data source (default 20) |
|
|
3685
3834
|
| unread-count? | `number` | Unread count on the bell when not all items are loaded (default: the unread items) |
|
|
3686
|
-
| has-more? | `boolean` | Shows "Load more" below the list (
|
|
3835
|
+
| has-more? | `boolean` | Shows "Load more" below the list (loadMore event) |
|
|
3687
3836
|
| loading? | `boolean` | The next page is loading (the button stays focusable, aria-busy) |
|
|
3688
3837
|
| display? | `'popover' \| 'drawer'` | popover (default) next to the bell, or drawer from the side |
|
|
3689
|
-
| open? | `boolean` |
|
|
3838
|
+
| v-model:open? | `boolean` | Controlled state – use with v-model:open |
|
|
3690
3839
|
| label? | `string` | Name of the bell and title of the panel (default "Notifications") |
|
|
3691
3840
|
| now? | `Date \| string` | Reference time for "Today"/"Yesterday" (default: now) |
|
|
3692
3841
|
| empty-text? | `string` | Text without notifications (default "No notifications") |
|
|
@@ -3715,7 +3864,7 @@ A number in the format of the locale ("€1,234.50")
|
|
|
3715
3864
|
|
|
3716
3865
|
| Prop | Type | Description |
|
|
3717
3866
|
| --- | --- | --- |
|
|
3718
|
-
|
|
|
3867
|
+
| value | `number \| bigint \| null \| undefined` | |
|
|
3719
3868
|
| format-options? | `Intl.NumberFormatOptions` | Format, e.g. { style: 'currency', currency: 'EUR' } or { notation: 'compact' } |
|
|
3720
3869
|
| locale? | `string` | |
|
|
3721
3870
|
| classes? | `RecipeClasses<typeof numberFormatterRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
@@ -3732,7 +3881,7 @@ Number field with − / + buttons, arrow keys and locale formatting ("1,234.5")
|
|
|
3732
3881
|
|
|
3733
3882
|
| Prop | Type | Description |
|
|
3734
3883
|
| --- | --- | --- |
|
|
3735
|
-
| v-model? (modelValue) | `number \| null` |
|
|
3884
|
+
| v-model? (modelValue) | `number \| null` | Number or null (empty) – use with v-model |
|
|
3736
3885
|
| default-value? | `number \| null` | |
|
|
3737
3886
|
| min? | `number` | |
|
|
3738
3887
|
| max? | `number` | |
|
|
@@ -3758,6 +3907,7 @@ Number field with − / + buttons, arrow keys and locale formatting ("1,234.5")
|
|
|
3758
3907
|
| loading? | `boolean` | Shows a spinner in the field and marks it busy (aria-busy) |
|
|
3759
3908
|
| clearable? | `boolean` | Shows a button that empties the field while it has a value |
|
|
3760
3909
|
| clear-label? | `string` | Accessible name of the clear button (default "Clear input") |
|
|
3910
|
+
| id? | `string` | Id of the input, e.g. for a `<label for>` |
|
|
3761
3911
|
| classes? | `RecipeClasses<typeof numberInputRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
3762
3912
|
|
|
3763
3913
|
| Event | Payload | Description |
|
|
@@ -3775,7 +3925,7 @@ Choose an item, then move it with the buttons (or Alt + arrow keys); the new pos
|
|
|
3775
3925
|
|
|
3776
3926
|
| Prop | Type | Description |
|
|
3777
3927
|
| --- | --- | --- |
|
|
3778
|
-
| v-model? (modelValue) | `T[]` | Items in their order; ListboxItem objects or any objects/values (see itemValue/itemLabel) |
|
|
3928
|
+
| v-model? (modelValue) | `T[]` | Items in their order – use with v-model; ListboxItem objects or any objects/values (see itemValue/itemLabel) |
|
|
3779
3929
|
| default-value? | `T[]` | |
|
|
3780
3930
|
| label | `string` | Visible label of the list |
|
|
3781
3931
|
| item-value? | `ItemAccessor<T, V>` | Value of an item: property name or function (default: `value`, otherwise the item itself) |
|
|
@@ -3784,7 +3934,6 @@ Choose an item, then move it with the buttons (or Alt + arrow keys); the new pos
|
|
|
3784
3934
|
| value-key? | `ItemAccessor<V, string \| number>` | Identifies object values (property name or function), e.g. "id" – without it objects are compared by content |
|
|
3785
3935
|
| filter? | `boolean` | A search field above the list (moving works on the whole list) |
|
|
3786
3936
|
| draggable? | `boolean` | Items can be dragged to another place (the buttons and Alt + arrow keys stay the keyboard way) |
|
|
3787
|
-
| style? | `CSSProperties` | |
|
|
3788
3937
|
| classes? | `RecipeClasses<typeof orderListRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
3789
3938
|
|
|
3790
3939
|
| Event | Payload | Description |
|
|
@@ -3808,14 +3957,13 @@ Hierarchy as nested lists – screen readers read the structure, the lines are d
|
|
|
3808
3957
|
| node | `OrgChartNode` | The top of the hierarchy |
|
|
3809
3958
|
| label | `string` | Accessible name, e.g. "Org chart" |
|
|
3810
3959
|
| collapsible? | `boolean` | A button below each node with a team shows or hides it |
|
|
3811
|
-
| collapsed-keys? | `string[]` | Keys of the nodes whose team is hidden |
|
|
3960
|
+
| v-model:collapsed-keys? | `string[]` | Keys of the nodes whose team is hidden – use with v-model:collapsed-keys |
|
|
3812
3961
|
| default-collapsed-keys? | `string[]` | |
|
|
3813
|
-
| selection-mode? | `'none' \| 'single' \| 'multiple'` | Nodes can be chosen (toggle buttons): one or several |
|
|
3814
|
-
| selected-keys? | `string[]` | |
|
|
3962
|
+
| selection-mode? | `'none' \| 'single' \| 'multiple'` | Nodes can be chosen (toggle buttons): one or several – use with v-model:selected-keys |
|
|
3963
|
+
| v-model:selected-keys? | `string[]` | |
|
|
3815
3964
|
| default-selected-keys? | `string[]` | |
|
|
3816
3965
|
| load-children? | `(node: OrgChartNode, request: { signal: AbortSignal }) => Promise<OrgChartNode[]>` | Loads the team of a node with `hasChildren: true` when it is shown; the signal aborts it |
|
|
3817
3966
|
| data-source? | `DataSource<OrgChartNode>` | Source of the teams of lazy nodes (`getChildren`) |
|
|
3818
|
-
| style? | `CSSProperties` | |
|
|
3819
3967
|
| classes? | `RecipeClasses<typeof orgChartRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
3820
3968
|
|
|
3821
3969
|
| Event | Payload | Description |
|
|
@@ -3913,8 +4061,8 @@ Page navigation with previous/next, page buttons and a summary ("1–10 of 42")
|
|
|
3913
4061
|
| Prop | Type | Description |
|
|
3914
4062
|
| --- | --- | --- |
|
|
3915
4063
|
| count | `number` | Total number of items |
|
|
3916
|
-
| page-size? | `number` | Items per page –
|
|
3917
|
-
| page? | `number` | Current page (1-based) |
|
|
4064
|
+
| v-model:page-size? | `number` | Items per page – use with v-model:pageSize when `pageSizes` lets the user change it |
|
|
4065
|
+
| v-model:page? | `number` | Current page (1-based) – use with v-model:page |
|
|
3918
4066
|
| default-page? | `number` | |
|
|
3919
4067
|
| sibling-count? | `number` | Pages shown on each side of the current page before an ellipsis |
|
|
3920
4068
|
| boundary-count? | `number` | Pages always shown at the start and the end (default 1) |
|
|
@@ -3948,9 +4096,8 @@ Card with a heading (and actions); toggleable: the heading holds a button with a
|
|
|
3948
4096
|
| title | `string` | |
|
|
3949
4097
|
| heading-level? | `2 \| 3 \| 4` | Heading level of the title |
|
|
3950
4098
|
| toggleable? | `boolean` | The title becomes a button that shows/hides the content |
|
|
3951
|
-
| open? | `boolean` |
|
|
4099
|
+
| v-model:open? | `boolean` | Open state – use with v-model:open |
|
|
3952
4100
|
| default-open? | `boolean` | |
|
|
3953
|
-
| style? | `CSSProperties` | |
|
|
3954
4101
|
| classes? | `RecipeClasses<typeof panelRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
3955
4102
|
|
|
3956
4103
|
| Event | Payload | Description |
|
|
@@ -3974,16 +4121,24 @@ Password field with a button that shows/hides the password (named "Show/Hide pas
|
|
|
3974
4121
|
|
|
3975
4122
|
| Prop | Type | Description |
|
|
3976
4123
|
| --- | --- | --- |
|
|
4124
|
+
| v-model? (modelValue) | `string` | |
|
|
3977
4125
|
| size? | `Size` | |
|
|
3978
4126
|
| invalid? | `boolean` | |
|
|
3979
4127
|
| success? | `boolean` | Confirmed value: green border and check icon (also inherited from a Field with `success`) |
|
|
4128
|
+
| disabled? | `boolean` | |
|
|
4129
|
+
| read-only? | `boolean` | |
|
|
4130
|
+
| required? | `boolean` | |
|
|
4131
|
+
| name? | `string` | |
|
|
3980
4132
|
| default-visible? | `boolean` | Initially show the password in plain text |
|
|
3981
|
-
| visible? | `boolean` | Whether the password is shown in plain text
|
|
4133
|
+
| v-model:visible? | `boolean` | Whether the password is shown in plain text – use with v-model:visible |
|
|
4134
|
+
| autocomplete? | `'current-password' \| 'new-password'` | |
|
|
3982
4135
|
| strength? | `boolean` | Strength meter below the field – for choosing a new password |
|
|
3983
4136
|
| requirements? | `readonly PasswordRequirement[]` | Checklist below the field, updated while typing: each rule with its state (icon and text), linked to the input as its description |
|
|
3984
4137
|
| loading? | `boolean` | Shows a spinner in the field and marks it busy (aria-busy) |
|
|
3985
4138
|
| clearable? | `boolean` | Shows a button that empties the field while it has a value |
|
|
3986
4139
|
| clear-label? | `string` | Accessible name of the clear button (default "Clear input") |
|
|
4140
|
+
| default-value? | `string` | Initial value without v-model |
|
|
4141
|
+
| id? | `string` | Id of the input, e.g. for a `<label for>` |
|
|
3987
4142
|
| classes? | `RecipeClasses<typeof passwordInputRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
3988
4143
|
|
|
3989
4144
|
| Event | Payload | Description |
|
|
@@ -4004,10 +4159,10 @@ PDF viewer (pdf.js): a toolbar (role="toolbar", one tab stop, arrow keys inside)
|
|
|
4004
4159
|
| Prop | Type | Description |
|
|
4005
4160
|
| --- | --- | --- |
|
|
4006
4161
|
| src | `PdfSource` | The PDF: URL, ArrayBuffer/Uint8Array or Blob/File – loaded in the browser (the server renders the loading state) |
|
|
4007
|
-
| page? | `number` | Current page (1-based) –
|
|
4008
|
-
| zoom? | `PdfZoom` | Zoom: factor (1 = 100 %, 0.5–4), "page-width" (default) or "page-fit" |
|
|
4009
|
-
| rotation? | `number` | Rotation of all pages clockwise: 0, 90, 180 or 270 |
|
|
4010
|
-
| sidebar? | `boolean` | Side bar with thumbnails and the outline
|
|
4162
|
+
| v-model:page? | `number` | Current page (1-based) – use with v-model:page |
|
|
4163
|
+
| v-model:zoom? | `PdfZoom` | Zoom: factor (1 = 100 %, 0.5–4), "page-width" (default) or "page-fit" – use with v-model:zoom |
|
|
4164
|
+
| v-model:rotation? | `number` | Rotation of all pages clockwise: 0, 90, 180 or 270 – use with v-model:rotation |
|
|
4165
|
+
| v-model:sidebar? | `boolean` | Side bar with thumbnails and the outline – use with v-model:sidebar |
|
|
4011
4166
|
| toolbar? | `boolean \| PdfTool[]` | Toolbar: all tools (true, default), none (false) or a list, e.g. ['page', 'zoom', 'download'] |
|
|
4012
4167
|
| height? | `string` | Height of the viewer (CSS length, default "600px") |
|
|
4013
4168
|
| label? | `string` | Accessible name of the viewer (default "PDF document") |
|
|
@@ -4048,8 +4203,7 @@ Avatar (decorative here – the name follows as text), name, description and pre
|
|
|
4048
4203
|
| size? | `'sm' \| 'md' \| 'lg'` | |
|
|
4049
4204
|
| avatar-color? | `AvatarColor \| 'auto'` | Tinted avatar; `auto` picks a colour from the name |
|
|
4050
4205
|
| href? | `string` | The whole persona is a link |
|
|
4051
|
-
| as? | `'div' \| 'button'` | `button`: the whole persona is a button (
|
|
4052
|
-
| @click? | `MouseEventHandler<HTMLElement>` | |
|
|
4206
|
+
| as? | `'div' \| 'button'` | `button`: the whole persona is a button (listen to click) |
|
|
4053
4207
|
| classes? | `RecipeClasses<typeof personaRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
4054
4208
|
|
|
4055
4209
|
|
|
@@ -4064,14 +4218,18 @@ Country (flag and calling code, searchable) and the number, formatted for the co
|
|
|
4064
4218
|
|
|
4065
4219
|
| Prop | Type | Description |
|
|
4066
4220
|
| --- | --- | --- |
|
|
4067
|
-
| v-model? (modelValue) | `string` | The number in E.164 ("+4930123456", "" when empty
|
|
4221
|
+
| v-model? (modelValue) | `string` | The number in E.164 ("+4930123456", "" when empty) – use with v-model |
|
|
4068
4222
|
| default-value? | `string` | |
|
|
4069
|
-
| country? | `string` | Chosen country (ISO code
|
|
4223
|
+
| v-model:country? | `string` | Chosen country (ISO code) – use with v-model:country |
|
|
4070
4224
|
| default-country? | `string` | Country before anything is chosen (default "DE") |
|
|
4071
4225
|
| countries? | `readonly PhoneCountry[]` | Countries to offer (default: about 60 common ones; extend with your own entries) |
|
|
4072
4226
|
| country-label? | `string` | Accessible name of the country select (default "Country") |
|
|
4227
|
+
| placeholder? | `string` | |
|
|
4073
4228
|
| size? | `Size` | |
|
|
4229
|
+
| disabled? | `boolean` | |
|
|
4074
4230
|
| invalid? | `boolean` | Marks the number invalid (it also is after leaving a number of the wrong length) |
|
|
4231
|
+
| required? | `boolean` | |
|
|
4232
|
+
| name? | `string` | Name of the hidden form field (E.164) |
|
|
4075
4233
|
| classes? | `RecipeClasses<typeof phoneInputRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
4076
4234
|
|
|
4077
4235
|
| Event | Payload | Description |
|
|
@@ -4092,7 +4250,7 @@ Two lists with several choices each; the buttons move the chosen items across, t
|
|
|
4092
4250
|
| Prop | Type | Description |
|
|
4093
4251
|
| --- | --- | --- |
|
|
4094
4252
|
| items | `readonly T[]` | All items: ListboxItem objects – or any objects or values, read with itemValue/itemLabel/itemDisabled |
|
|
4095
|
-
| v-model? (modelValue) | `V[]` | Values of the chosen items, in their order; any type (see `valueKey`) |
|
|
4253
|
+
| v-model? (modelValue) | `V[]` | Values of the chosen items, in their order – use with v-model; any type (see `valueKey`) |
|
|
4096
4254
|
| default-value? | `V[]` | |
|
|
4097
4255
|
| source-label? | `string` | |
|
|
4098
4256
|
| target-label? | `string` | |
|
|
@@ -4101,12 +4259,11 @@ Two lists with several choices each; the buttons move the chosen items across, t
|
|
|
4101
4259
|
| item-disabled? | `ItemAccessor<T, boolean>` | Disabled state of an item: property name or function (default: `disabled`) |
|
|
4102
4260
|
| value-key? | `ItemAccessor<V, string \| number>` | Identifies object values (property name or function), e.g. "id" – without it objects are compared by content |
|
|
4103
4261
|
| filter? | `boolean` | A search field above each list |
|
|
4104
|
-
| manual-filter? | `boolean` | The source list is searched elsewhere (server): no local filtering there, listen to
|
|
4262
|
+
| manual-filter? | `boolean` | The source list is searched elsewhere (server): no local filtering there, listen to filterChange and pass the found items; chosen items keep their labels |
|
|
4105
4263
|
| loading? | `boolean` | The source list is loading (aria-busy, "Loading") |
|
|
4106
|
-
| has-more? | `boolean` | More items can be loaded into the source list: scrolling to its end
|
|
4264
|
+
| has-more? | `boolean` | More items can be loaded into the source list: scrolling to its end emits loadMore |
|
|
4107
4265
|
| select-all? | `boolean` | Check boxes and "Select all" in each list |
|
|
4108
4266
|
| draggable? | `boolean` | Items can be dragged from one list to the other (the buttons stay the keyboard way) |
|
|
4109
|
-
| style? | `CSSProperties` | |
|
|
4110
4267
|
| classes? | `RecipeClasses<typeof pickListRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
4111
4268
|
|
|
4112
4269
|
| Event | Payload | Description |
|
|
@@ -4138,7 +4295,6 @@ Pie or doughnut on a canvas named by the title; the legend lists value and share
|
|
|
4138
4295
|
| table? | `boolean` | The slices as a table below (opens on demand) – the text alternative (default true) |
|
|
4139
4296
|
| format-value? | `(value: number) => string` | Formats values in the legend, tooltips and table |
|
|
4140
4297
|
| options? | `Record<string, unknown>` | Chart.js options – merged over the WireLayer defaults |
|
|
4141
|
-
| style? | `CSSProperties` | |
|
|
4142
4298
|
| classes? | `RecipeClasses<typeof chartRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe chart) |
|
|
4143
4299
|
|
|
4144
4300
|
|
|
@@ -4153,7 +4309,7 @@ Code input (OTP, PIN): one box per character, typing moves on, pasting fills all
|
|
|
4153
4309
|
| Prop | Type | Description |
|
|
4154
4310
|
| --- | --- | --- |
|
|
4155
4311
|
| length? | `number` | Number of characters |
|
|
4156
|
-
| v-model? (modelValue) | `string` |
|
|
4312
|
+
| v-model? (modelValue) | `string` | Code – use with v-model |
|
|
4157
4313
|
| default-value? | `string` | |
|
|
4158
4314
|
| type? | `'numeric' \| 'alphanumeric' \| 'alphabetic'` | |
|
|
4159
4315
|
| otp? | `boolean` | One-time code: the browser/phone may fill it in from an SMS |
|
|
@@ -4162,8 +4318,7 @@ Code input (OTP, PIN): one box per character, typing moves on, pasting fills all
|
|
|
4162
4318
|
| invalid? | `boolean` | |
|
|
4163
4319
|
| disabled? | `boolean` | |
|
|
4164
4320
|
| name? | `string` | |
|
|
4165
|
-
|
|
|
4166
|
-
| style? | `CSSProperties` | |
|
|
4321
|
+
| id? | `string` | Id of the root element; a `<label for>` cannot name the PIN input, use a Field or aria-label |
|
|
4167
4322
|
| classes? | `RecipeClasses<typeof pinInputRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
4168
4323
|
|
|
4169
4324
|
| Event | Payload | Description |
|
|
@@ -4182,10 +4337,10 @@ Non-modal panel next to its trigger; Escape and clicking outside close it, focus
|
|
|
4182
4337
|
|
|
4183
4338
|
| Prop | Type | Description |
|
|
4184
4339
|
| --- | --- | --- |
|
|
4185
|
-
| open? | `boolean` |
|
|
4340
|
+
| v-model:open? | `boolean` | Controlled state – use with v-model:open |
|
|
4186
4341
|
| default-open? | `boolean` | |
|
|
4187
4342
|
| placement? | `PopoverPlacement` | |
|
|
4188
|
-
| anchor? | `
|
|
4343
|
+
| anchor? | `OverlayAnchor \| null` | Element (or point) to open at instead of the trigger – e.g. a table cell; open with v-model:open or the exposed `open(anchor)` |
|
|
4189
4344
|
| width? | `'trigger'` | `trigger`: as wide as the trigger or anchor |
|
|
4190
4345
|
| trap-focus? | `boolean` | Keeps the focus inside the panel and makes the page behind inert (modal popover) |
|
|
4191
4346
|
| overlay? | `boolean` | Dims the page behind the panel |
|
|
@@ -4243,7 +4398,7 @@ Ark names the progressbar after its value; the label is the name, the value its
|
|
|
4243
4398
|
|
|
4244
4399
|
| Prop | Type | Description |
|
|
4245
4400
|
| --- | --- | --- |
|
|
4246
|
-
|
|
|
4401
|
+
| value | `number` | |
|
|
4247
4402
|
| max? | `number` | |
|
|
4248
4403
|
| label? | `string` | Visible label, also the accessible name of the progress bar |
|
|
4249
4404
|
| show-value? | `boolean` | Show the value next to the label |
|
|
@@ -4266,13 +4421,12 @@ Ring with the value in the middle; a progressbar named by its label, the value a
|
|
|
4266
4421
|
|
|
4267
4422
|
| Prop | Type | Description |
|
|
4268
4423
|
| --- | --- | --- |
|
|
4269
|
-
|
|
|
4424
|
+
| value | `number` | |
|
|
4270
4425
|
| max? | `number` | |
|
|
4271
4426
|
| label | `string` | Visible label below the ring, also its accessible name |
|
|
4272
4427
|
| size? | `'sm' \| 'md' \| 'lg'` | |
|
|
4273
4428
|
| status? | `'neutral' \| 'success' \| 'warn' \| 'danger'` | |
|
|
4274
4429
|
| format-value? | `(value: number, max: number) => string` | Text in the ring (default: percent) |
|
|
4275
|
-
| style? | `CSSProperties` | |
|
|
4276
4430
|
| classes? | `RecipeClasses<typeof progressCircleRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
4277
4431
|
|
|
4278
4432
|
|
|
@@ -4287,7 +4441,7 @@ QR code as an image named by its value; optional logo, value text and downloads
|
|
|
4287
4441
|
|
|
4288
4442
|
| Prop | Type | Description |
|
|
4289
4443
|
| --- | --- | --- |
|
|
4290
|
-
|
|
|
4444
|
+
| value | `string` | Text or URL to encode |
|
|
4291
4445
|
| size? | `number` | Width and height in px (default 160) |
|
|
4292
4446
|
| error-correction? | `'L' \| 'M' \| 'Q' \| 'H'` | Error correction: L 7 %, M 15 % (default), Q 25 %, H 30 % of the code may be covered (H with a logo) |
|
|
4293
4447
|
| logo? | `string` | Image URL shown in the middle (decorative; use error correction "H") |
|
|
@@ -4308,7 +4462,7 @@ Quarter field: type "Q4 2026" (also "2026-Q4", "4/2026") or pick from the four q
|
|
|
4308
4462
|
|
|
4309
4463
|
| Prop | Type | Description |
|
|
4310
4464
|
| --- | --- | --- |
|
|
4311
|
-
| v-model? (modelValue) | `T` | Quarter as "2026-Q4"; with range { start, end } |
|
|
4465
|
+
| v-model? (modelValue) | `T` | Quarter as "2026-Q4" – use with v-model; with range { start, end } |
|
|
4312
4466
|
| default-value? | `T` | |
|
|
4313
4467
|
| range? | `boolean` | Start and end quarter instead of one |
|
|
4314
4468
|
| min? | `string` | Earliest quarter ("2024-Q1") |
|
|
@@ -4322,8 +4476,6 @@ Quarter field: type "Q4 2026" (also "2026-Q4", "4/2026") or pick from the four q
|
|
|
4322
4476
|
| name? | `string` | Sent as "2026-Q4"; with range as name[0] and name[1] |
|
|
4323
4477
|
| size? | `'sm' \| 'md' \| 'lg'` | |
|
|
4324
4478
|
| clearable? | `boolean` | Clear button in the field while it has a value |
|
|
4325
|
-
| aria-label? | `string` | Accessible name without a surrounding Field |
|
|
4326
|
-
| style? | `CSSProperties` | |
|
|
4327
4479
|
| classes? | `RecipeClasses<typeof datePickerRecipe>` | Extra classes per part of the field, e.g. { control: "…" } (see the datePicker recipe) |
|
|
4328
4480
|
|
|
4329
4481
|
| Event | Payload | Description |
|
|
@@ -4363,8 +4515,13 @@ A large card that is one option of a RadioGroup (use `columns` on the group for
|
|
|
4363
4515
|
|
|
4364
4516
|
| Prop | Type | Description |
|
|
4365
4517
|
| --- | --- | --- |
|
|
4366
|
-
|
|
|
4518
|
+
| value | `string` | Value of the option inside a RadioGroup |
|
|
4519
|
+
| title | `string` | Title – the accessible name of the radio button |
|
|
4520
|
+
| description? | `string` | Text below the title – read as the description |
|
|
4521
|
+
| icon? | `Component` | Icon component in a box at the start |
|
|
4522
|
+
| price? | `string` | Price or other figure at the end, e.g. "$29 / month" – part of the description |
|
|
4367
4523
|
| disabled? | `boolean` | |
|
|
4524
|
+
| classes? | `RecipeClasses<typeof selectionCardRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
4368
4525
|
|
|
4369
4526
|
|
|
4370
4527
|
### RadioGroup
|
|
@@ -4378,9 +4535,9 @@ One choice out of several (role="radiogroup", arrow keys), horizontal or vertica
|
|
|
4378
4535
|
|
|
4379
4536
|
| Prop | Type | Description |
|
|
4380
4537
|
| --- | --- | --- |
|
|
4381
|
-
| v-model? (modelValue) | `string \| null` |
|
|
4538
|
+
| v-model? (modelValue) | `string \| null` | Selected value – use with v-model |
|
|
4382
4539
|
| default-value? | `string \| null` | |
|
|
4383
|
-
| label? | `string` | Visible group label (otherwise pass aria-label) |
|
|
4540
|
+
| label? | `string` | Visible group label (otherwise pass aria-label – or place the group in a Field with a label) |
|
|
4384
4541
|
| orientation? | `RadioGroupOrientation` | |
|
|
4385
4542
|
| columns? | `number` | Cards in a grid with this many columns (one column on small screens) – for RadioCard |
|
|
4386
4543
|
| disabled? | `boolean` | |
|
|
@@ -4405,7 +4562,7 @@ One option of a RadioGroup
|
|
|
4405
4562
|
|
|
4406
4563
|
| Prop | Type | Description |
|
|
4407
4564
|
| --- | --- | --- |
|
|
4408
|
-
|
|
|
4565
|
+
| value | `string` | |
|
|
4409
4566
|
| disabled? | `boolean` | |
|
|
4410
4567
|
| classes? | `RecipeClasses<typeof radioGroupRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
4411
4568
|
|
|
@@ -4420,19 +4577,18 @@ Star rating: a radio group – arrow keys change the value, each star reads "3 s
|
|
|
4420
4577
|
|
|
4421
4578
|
| Prop | Type | Description |
|
|
4422
4579
|
| --- | --- | --- |
|
|
4423
|
-
| v-model? (modelValue) | `number` |
|
|
4580
|
+
| v-model? (modelValue) | `number` | Rating – use with v-model |
|
|
4424
4581
|
| default-value? | `number` | |
|
|
4425
4582
|
| count? | `number` | Number of stars |
|
|
4426
4583
|
| allow-half? | `boolean` | |
|
|
4427
4584
|
| allow-clear? | `boolean` | Clicking the chosen star again (or Delete/Backspace) clears the rating (value 0) |
|
|
4428
|
-
| icon? | `
|
|
4585
|
+
| icon? | `Component` | Own symbol instead of the star, e.g. a heart (filled when chosen) |
|
|
4429
4586
|
| read-only? | `boolean` | |
|
|
4430
4587
|
| disabled? | `boolean` | |
|
|
4431
4588
|
| label? | `string` | Visible label, also the group's accessible name |
|
|
4432
|
-
| aria-label? | `string` | |
|
|
4433
4589
|
| size? | `'sm' \| 'md' \| 'lg'` | |
|
|
4434
4590
|
| name? | `string` | |
|
|
4435
|
-
|
|
|
4591
|
+
| id? | `string` | Id of the root element; a `<label for>` cannot name the rating, use a Field or aria-label |
|
|
4436
4592
|
| classes? | `RecipeClasses<typeof ratingRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
4437
4593
|
|
|
4438
4594
|
| Event | Payload | Description |
|
|
@@ -4487,7 +4643,7 @@ One value: the ring is a progress bar named by the label. Segments: a group name
|
|
|
4487
4643
|
|
|
4488
4644
|
| Prop | Type | Description |
|
|
4489
4645
|
| --- | --- | --- |
|
|
4490
|
-
|
|
|
4646
|
+
| value? | `number` | One value (a progress bar) – or `segments` |
|
|
4491
4647
|
| segments? | `readonly RingProgressSegment[]` | Several parts one after another (a group with a legend) |
|
|
4492
4648
|
| max? | `number` | The whole (default 100, or the sum of the segments when larger) |
|
|
4493
4649
|
| label | `string` | Visible label below the ring, also its accessible name |
|
|
@@ -4551,9 +4707,9 @@ Calendar: toolbar (today, back/forward, title, views); events are buttons named
|
|
|
4551
4707
|
| Prop | Type | Description |
|
|
4552
4708
|
| --- | --- | --- |
|
|
4553
4709
|
| events? | `readonly SchedulerEvent[]` | Events; with `dataSource` they are shown together with the loaded ones |
|
|
4554
|
-
| view? | `SchedulerView` | Shown view
|
|
4710
|
+
| v-model:view? | `SchedulerView` | Shown view – use with v-model:view |
|
|
4555
4711
|
| default-view? | `SchedulerView` | |
|
|
4556
|
-
| date? | `string` | Shown date ("2026-10-20")
|
|
4712
|
+
| v-model:date? | `string` | Shown date ("2026-10-20") – use with v-model:date |
|
|
4557
4713
|
| default-date? | `string` | |
|
|
4558
4714
|
| views? | `readonly SchedulerView[]` | Views offered in the toolbar ('timeline' and 'year' as well) |
|
|
4559
4715
|
| start-hour? | `number` | Hours shown in the day and week view (and the day of the timeline) |
|
|
@@ -4569,26 +4725,26 @@ Calendar: toolbar (today, back/forward, title, views); events are buttons named
|
|
|
4569
4725
|
| resources? | `readonly SchedulerResource[]` | People, rooms or machines: columns in the day and week view, rows in the timeline, a filter in the toolbar |
|
|
4570
4726
|
| resources-per-page? | `number` | Day and week view with many resources: at most this many resources as columns at a time, buttons in the toolbar page through them (default: all, side by side) |
|
|
4571
4727
|
| group-by? | `SchedulerGroupBy` | Resource columns per day (`date`, default) or per resource |
|
|
4572
|
-
| resource-filter? | `string` | Shown resource (id; empty: all)
|
|
4728
|
+
| v-model:resource-filter? | `string` | Shown resource (id; empty: all) – use with v-model:resourceFilter |
|
|
4573
4729
|
| default-resource-filter? | `string` | |
|
|
4574
|
-
| timeline-range? | `SchedulerTimelineRange` | Span of the timeline: a day in hours, a week or a month in days
|
|
4730
|
+
| v-model:timeline-range? | `SchedulerTimelineRange` | Span of the timeline: a day in hours, a week or a month in days – use with v-model:timelineRange |
|
|
4575
4731
|
| default-timeline-range? | `SchedulerTimelineRange` | |
|
|
4576
|
-
| zoom? | `number` | Zoom of the timeline (0.5–3, width of its slots)
|
|
4732
|
+
| v-model:zoom? | `number` | Zoom of the timeline (0.5–3, width of its slots) – use with v-model:zoom |
|
|
4577
4733
|
| default-zoom? | `number` | |
|
|
4578
4734
|
| business-hours? | `readonly SchedulerBusinessHours[]` | Opening hours by weekday – times outside are hatched (resources can have their own) |
|
|
4579
4735
|
| hide-weekends? | `boolean` | Leaves out the weekend days of the locale in the week, month and timeline views |
|
|
4580
4736
|
| overlap-mode? | `SchedulerOverlapMode` | Overlapping events side by side (`columns`, default) or stacked with an offset |
|
|
4581
|
-
| can-drop? | `(event: SchedulerEvent, start: string, end: string, resourceId?: string) => boolean` | Whether an event may be dropped there – a refused move is marked, announced and reported (
|
|
4737
|
+
| can-drop? | `(event: SchedulerEvent, start: string, end: string, resourceId?: string) => boolean` | Whether an event may be dropped there – a refused move is marked, announced and reported (dropRejected) |
|
|
4582
4738
|
| can-resize? | `(event: SchedulerEvent, start: string, end: string) => boolean` | Whether an event may get this length |
|
|
4583
4739
|
| prevent-overlap? | `boolean` | No overlapping events per resource (without resources: at all) |
|
|
4584
4740
|
| recurrence-edit-scope? | `'ask' \| RecurrenceScope` | Moving an occurrence of a series: ask (default), or always only this one / the whole series |
|
|
4585
4741
|
| month-event-limit? | `number` | Events shown per day in the month before "+N more" |
|
|
4586
4742
|
| more-popover? | `boolean` | "+N more" opens a popover with all events of the day (instead of the day view) |
|
|
4587
4743
|
| compact-breakpoint? | `number` | Below this width (px) the month view becomes a compact month with the list of the chosen day below |
|
|
4588
|
-
| droppable? | `boolean` | Accepts items dragged in from outside (application/x-wirecore-event or text) – see
|
|
4744
|
+
| droppable? | `boolean` | Accepts items dragged in from outside (application/x-wirecore-event or text) – see externalDrop |
|
|
4589
4745
|
| data-source? | `DataSource<SchedulerEvent>` | Loads the events of the shown range (`range` of the query) – cancelled when the range changes, cached |
|
|
4590
4746
|
| cache-time? | `number` | How long loaded ranges are reused, in ms (default 0) |
|
|
4591
|
-
| loading? | `boolean` | Shows the loading state (e.g. while you load on
|
|
4747
|
+
| loading? | `boolean` | Shows the loading state (e.g. while you load on rangeChange yourself) |
|
|
4592
4748
|
| time-zone? | `string` | IANA time zone the times are shown in ("Europe/Berlin"); times with offset are converted, changes get it |
|
|
4593
4749
|
| label? | `string` | Accessible name of the calendar |
|
|
4594
4750
|
| heading-level? | `2 \| 3 \| 4 \| 5 \| 6` | Level of the title heading |
|
|
@@ -4639,8 +4795,7 @@ Native scrolling with slim scrollbars; the viewport is a named, focusable region
|
|
|
4639
4795
|
| label | `string` | Names the scrollable region – it is focusable, so keyboard users can scroll it |
|
|
4640
4796
|
| scrollbars? | `'auto' \| 'hover' \| 'always' \| 'hidden'` | When the scrollbars show: `auto` (on overflow, default), `hover`, `always` or `hidden` |
|
|
4641
4797
|
| fade? | `boolean` | Fades the top and bottom edge while there is more to scroll in that direction |
|
|
4642
|
-
| reach-threshold? | `number` | Distance in pixels from the start/end at which
|
|
4643
|
-
| style? | `CSSProperties` | |
|
|
4798
|
+
| reach-threshold? | `number` | Distance in pixels from the start/end at which `reachStart`/`reachEnd` fire (default 0) |
|
|
4644
4799
|
| classes? | `RecipeClasses<typeof scrollPanelRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
4645
4800
|
|
|
4646
4801
|
| Event | Payload | Description |
|
|
@@ -4675,13 +4830,13 @@ A search form (role="search"): optional area, field with magnifier, clear button
|
|
|
4675
4830
|
|
|
4676
4831
|
| Prop | Type | Description |
|
|
4677
4832
|
| --- | --- | --- |
|
|
4678
|
-
| v-model? (modelValue) | `string` | The search text
|
|
4833
|
+
| v-model? (modelValue) | `string` | The search text – use with v-model |
|
|
4679
4834
|
| default-value? | `string` | |
|
|
4680
4835
|
| label? | `string` | Accessible name of the search (form role="search" and field) – default "Search" |
|
|
4681
4836
|
| placeholder? | `string` | |
|
|
4682
4837
|
| loading? | `boolean` | Search is running: spinner in the field, aria-busy |
|
|
4683
|
-
| scopes? | `readonly NativeSelectOption[]` | Areas to search in – a select before the field |
|
|
4684
|
-
| scope? | `string` | Chosen area
|
|
4838
|
+
| scopes? | `readonly NativeSelectOption[]` | Areas to search in – a select before the field (v-model:scope) |
|
|
4839
|
+
| v-model:scope? | `string` | Chosen area – use with v-model:scope |
|
|
4685
4840
|
| scope-label? | `string` | Accessible name of the area select (default "Search in") |
|
|
4686
4841
|
| suggestions? | `readonly string[]` | Suggestions while typing (combobox pattern) – any other text can still be searched |
|
|
4687
4842
|
| clear-label? | `string` | Accessible name of the clear button (default "Clear search") |
|
|
@@ -4709,9 +4864,9 @@ Few exclusive options as a segmented switch (radio group)
|
|
|
4709
4864
|
|
|
4710
4865
|
| Prop | Type | Description |
|
|
4711
4866
|
| --- | --- | --- |
|
|
4712
|
-
| v-model? (modelValue) | `string \| null` |
|
|
4867
|
+
| v-model? (modelValue) | `string \| null` | Selected value – use with v-model |
|
|
4713
4868
|
| default-value? | `string` | |
|
|
4714
|
-
| label | `string` | Accessible name of the group (visually hidden) |
|
|
4869
|
+
| label? | `string` | Accessible name of the group (visually hidden) – inside a Field with a label, the Field's label names it |
|
|
4715
4870
|
| size? | `SegmentedControlSize` | |
|
|
4716
4871
|
| disabled? | `boolean` | |
|
|
4717
4872
|
| name? | `string` | |
|
|
@@ -4733,7 +4888,7 @@ One option of a SegmentedControl
|
|
|
4733
4888
|
|
|
4734
4889
|
| Prop | Type | Description |
|
|
4735
4890
|
| --- | --- | --- |
|
|
4736
|
-
|
|
|
4891
|
+
| value | `string` | |
|
|
4737
4892
|
| icon? | `Component` | Icon component before the label |
|
|
4738
4893
|
| disabled? | `boolean` | |
|
|
4739
4894
|
| classes? | `RecipeClasses<typeof segmentedControlRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
@@ -4751,9 +4906,10 @@ Dropdown list for one option: arrow keys, typeahead, Escape; native select hidde
|
|
|
4751
4906
|
| Prop | Type | Description |
|
|
4752
4907
|
| --- | --- | --- |
|
|
4753
4908
|
| items | `readonly T[]` | Options: SelectItem objects – or any objects or values, read with itemValue/itemLabel/itemDisabled/itemGroup |
|
|
4754
|
-
| v-model? (modelValue) | `V \| null` | Selected value; any type (string, number, boolean, object) |
|
|
4909
|
+
| v-model? (modelValue) | `V \| null` | Selected value – use with v-model; any type (string, number, boolean, object) |
|
|
4755
4910
|
| default-value? | `V \| null` | |
|
|
4756
4911
|
| placeholder? | `string` | |
|
|
4912
|
+
| disabled? | `boolean` | |
|
|
4757
4913
|
| invalid? | `boolean` | |
|
|
4758
4914
|
| required? | `boolean` | |
|
|
4759
4915
|
| name? | `string` | |
|
|
@@ -4761,19 +4917,21 @@ Dropdown list for one option: arrow keys, typeahead, Escape; native select hidde
|
|
|
4761
4917
|
| item-label? | `ItemAccessor<T, string>` | Label of an item: property name or function (default: `label`) |
|
|
4762
4918
|
| item-disabled? | `ItemAccessor<T, boolean>` | Disabled state of an item: property name or function (default: `disabled`) |
|
|
4763
4919
|
| item-group? | `ItemAccessor<T, string \| null \| undefined>` | Group heading of an item: property name or function (default: `group`); items are listed per group |
|
|
4920
|
+
| item-keywords? | `ItemAccessor<T, string \| readonly string[] \| null \| undefined>` | More text the search finds an item by, besides its label: property name or function, one text or a list (default: `keywords`), e.g. the name of the item's category |
|
|
4764
4921
|
| value-key? | `ItemAccessor<V, string \| number>` | Identifies object values (property name or function), e.g. "id" – without it objects are compared by content |
|
|
4765
4922
|
| clearable? | `boolean` | Button that clears the value (also Backspace/Delete on the closed field) |
|
|
4766
4923
|
| loading? | `boolean` | Shows a spinner in the field and "Loading" in the list (aria-busy) |
|
|
4767
4924
|
| loading-text? | `string` | Text of the loading row in the list |
|
|
4768
4925
|
| size? | `SelectSize` | Height of the field: 32, 40 (default) or 48 px |
|
|
4769
|
-
| filter? | `boolean` | Search field at the top of the list; filters by label, ignoring case and accents |
|
|
4770
|
-
| manual-filter? | `boolean` | The items are filtered elsewhere (server): no local filtering, listen to
|
|
4926
|
+
| filter? | `boolean` | Search field at the top of the list; filters by label and itemKeywords, ignoring case and accents |
|
|
4927
|
+
| manual-filter? | `boolean` | The items are filtered elsewhere (server): no local filtering, listen to filterChange |
|
|
4771
4928
|
| empty-text? | `string` | Shown when no item is left (default "No results" / "No entries") |
|
|
4772
|
-
| has-more? | `boolean` | More items can be loaded: scrolling to the end of the list
|
|
4929
|
+
| has-more? | `boolean` | More items can be loaded: scrolling to the end of the list emits loadMore |
|
|
4773
4930
|
| data-source? | `DataSource<T>` | Loads the options when the list opens (pages while scrolling; with `filter` the search asks it, after a typing pause, outdated answers dropped); `getItemsByKeys` gives the label of a chosen value that is not loaded |
|
|
4774
4931
|
| min-search-length? | `number` | Fewest characters the search needs before the data source is asked |
|
|
4775
4932
|
| page-size? | `number` | Options per request of the data source (default 50) |
|
|
4776
4933
|
| standalone? | `boolean` | Not labelled by a surrounding Field – for a second control inside it (e.g. PhoneInput's country) |
|
|
4934
|
+
| id? | `string` | Id of the field (the trigger), e.g. for a `<label for>` |
|
|
4777
4935
|
| classes? | `RecipeClasses<typeof selectRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
4778
4936
|
|
|
4779
4937
|
| Event | Payload | Description |
|
|
@@ -4824,7 +4982,6 @@ Navigation landmark with links and expandable groups (buttons with aria-expanded
|
|
|
4824
4982
|
| label | `string` | Name of the navigation landmark, e.g. "Main navigation" |
|
|
4825
4983
|
| rail? | `boolean` | Icons only, the labels as tooltips (and for screen readers). Default: the collapsed state of a surrounding AppShell (navbarCollapsed) |
|
|
4826
4984
|
| expand-on-hover? | `boolean` | With `rail`: hovering or focusing the rail shows the labels (no tooltips) – default from the AppShell |
|
|
4827
|
-
| style? | `CSSProperties` | |
|
|
4828
4985
|
| classes? | `RecipeClasses<typeof sidebarNavRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
4829
4986
|
|
|
4830
4987
|
| Event | Payload | Description |
|
|
@@ -4846,21 +5003,20 @@ Signature field (role="application"): draw with mouse, pen or finger; "Undo" rem
|
|
|
4846
5003
|
|
|
4847
5004
|
| Prop | Type | Description |
|
|
4848
5005
|
| --- | --- | --- |
|
|
4849
|
-
| v-model? (modelValue) | `string` | The signature as data URL ("" when empty
|
|
4850
|
-
| paths? | `string[]` | The strokes as SVG paths
|
|
5006
|
+
| v-model? (modelValue) | `string` | The signature as data URL ("" when empty) – use with v-model |
|
|
5007
|
+
| v-model:paths? | `string[]` | The strokes as SVG paths – use with v-model:paths (to restore or store them) |
|
|
4851
5008
|
| default-paths? | `string[]` | |
|
|
4852
5009
|
| format? | `'png' \| 'svg'` | Format of the data URL: png (default) or svg; a typed signature is always svg |
|
|
4853
5010
|
| label? | `string` | Visible label, also the name of the field (default "Signature"; a surrounding Field names it, too) |
|
|
4854
5011
|
| color? | `string` | Ink colour – a real colour (it is exported), default black on the light sheet |
|
|
4855
5012
|
| stroke-width? | `number` | Stroke width in px (default 2) |
|
|
4856
5013
|
| typed-alternative? | `boolean` | Offers typing the name instead of drawing (accessible alternative) |
|
|
4857
|
-
| typed-name? | `string` | The typed name
|
|
5014
|
+
| v-model:typed-name? | `string` | The typed name – use with v-model:typedName |
|
|
4858
5015
|
| disabled? | `boolean` | |
|
|
4859
5016
|
| read-only? | `boolean` | |
|
|
4860
5017
|
| invalid? | `boolean` | |
|
|
4861
5018
|
| required? | `boolean` | |
|
|
4862
5019
|
| name? | `string` | Name of the hidden form field (its value is the data URL) |
|
|
4863
|
-
| style? | `CSSProperties` | |
|
|
4864
5020
|
| classes? | `RecipeClasses<typeof signaturePadRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
4865
5021
|
|
|
4866
5022
|
| Event | Payload | Description |
|
|
@@ -4884,7 +5040,7 @@ Columns of equal width, fixed per breakpoint or as many as fit
|
|
|
4884
5040
|
| columns? | `ResponsiveColumns` | Columns: a number or per breakpoint, e.g. { base: 1, sm: 2, lg: 4 } (default 1) |
|
|
4885
5041
|
| min-column-width? | `string` | As many columns as fit, each at least this wide (e.g. "14rem") – instead of `columns` |
|
|
4886
5042
|
| gap? | `LayoutGap` | Space between the cells (default md, 16px) |
|
|
4887
|
-
| as? | `
|
|
5043
|
+
| as? | `string \| Component` | Element to render, e.g. "ul" (default div) |
|
|
4888
5044
|
| classes? | `RecipeClasses<typeof simpleGridRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
4889
5045
|
|
|
4890
5046
|
|
|
@@ -4955,7 +5111,7 @@ Range: "Price, Minimum" / "Price, Maximum"
|
|
|
4955
5111
|
|
|
4956
5112
|
| Prop | Type | Description |
|
|
4957
5113
|
| --- | --- | --- |
|
|
4958
|
-
| v-model? (modelValue) | `number[]` | One value per thumb – two values make a range slider |
|
|
5114
|
+
| v-model? (modelValue) | `number[]` | One value per thumb – two values make a range slider (v-model) |
|
|
4959
5115
|
| default-value? | `number[]` | |
|
|
4960
5116
|
| min? | `number` | |
|
|
4961
5117
|
| max? | `number` | |
|
|
@@ -4963,6 +5119,7 @@ Range: "Price, Minimum" / "Price, Maximum"
|
|
|
4963
5119
|
| label | `string` | Visible label, also the accessible name of the thumbs |
|
|
4964
5120
|
| thumb-labels? | `readonly string[]` | Names of the thumbs of a range slider, read after the label |
|
|
4965
5121
|
| show-value? | `boolean` | Shows the formatted value next to the label |
|
|
5122
|
+
| hide-label? | `boolean` | The label for screen readers only – it stays the accessible name of the thumbs |
|
|
4966
5123
|
| format-value? | `(value: number) => string` | Formats the shown and announced value, e.g. (v) => `${v} %` |
|
|
4967
5124
|
| disabled? | `boolean` | |
|
|
4968
5125
|
| name? | `string` | |
|
|
@@ -4988,21 +5145,19 @@ Sortable list: every item has a handle – drag it, or press Space/Enter, move w
|
|
|
4988
5145
|
|
|
4989
5146
|
| Prop | Type | Description |
|
|
4990
5147
|
| --- | --- | --- |
|
|
4991
|
-
| v-model? (modelValue) | `T[]` | The items in their order
|
|
5148
|
+
| v-model? (modelValue) | `T[]` | The items in their order – use with v-model |
|
|
4992
5149
|
| default-value? | `T[]` | |
|
|
4993
5150
|
| item-key? | `ItemAccessor<T, string \| number>` | Key of an item: property name or function (default `id`, else `value`, else the item) |
|
|
4994
5151
|
| item-label? | `ItemAccessor<T, string>` | Text of an item for its handle and the announcements (default `label`, `name` or `title`) |
|
|
4995
5152
|
| label? | `string` | Name of the list (visible label, also announced when an item moves in) |
|
|
4996
5153
|
| group? | `string` | Lists of the same group exchange items (e.g. Kanban columns) |
|
|
4997
|
-
| name? | `string` | Id of this list in `
|
|
5154
|
+
| name? | `string` | Id of this list in `move` events (default: generated) |
|
|
4998
5155
|
| orientation? | `SortableOrientation` | vertical (default), horizontal or grid (with `columns`) |
|
|
4999
5156
|
| columns? | `number` | Columns of the grid |
|
|
5000
5157
|
| accepts? | `(item: T, from: string) => boolean` | Whether an item from another list of the group may come in |
|
|
5001
5158
|
| animate? | `boolean` | Items glide to their new place when they move (default: yes; not with reduced motion) |
|
|
5002
5159
|
| disabled? | `boolean` | |
|
|
5003
5160
|
| empty-text? | `string` | Text of an empty list (it stays a drop target) |
|
|
5004
|
-
| aria-label? | `string` | |
|
|
5005
|
-
| style? | `CSSProperties` | |
|
|
5006
5161
|
| classes? | `RecipeClasses<typeof sortableRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
5007
5162
|
|
|
5008
5163
|
| Event | Payload | Description |
|
|
@@ -5030,7 +5185,6 @@ Small line without axes; the canvas is an image named by the trend and the extre
|
|
|
5030
5185
|
| width? | `string` | |
|
|
5031
5186
|
| height? | `string` | |
|
|
5032
5187
|
| format-value? | `(value: number) => string` | |
|
|
5033
|
-
| style? | `CSSProperties` | |
|
|
5034
5188
|
| classes? | `RecipeClasses<typeof sparklineRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
5035
5189
|
|
|
5036
5190
|
|
|
@@ -5049,7 +5203,6 @@ A menu button: the actions open above it (or in a circle around it) as menu item
|
|
|
5049
5203
|
| layout? | `SpeedDialLayout` | `column` (default): above the button with visible labels; `circle`, `semicircle`, `quarter`: around it, the labels show as tooltips on hover and focus |
|
|
5050
5204
|
| direction? | `SpeedDialDirection` | Where the actions open: up (default), down; for semicircle and quarter also left or right |
|
|
5051
5205
|
| radius? | `number` | Distance of the actions from the centre of the button in px (circle layouts, default 80) |
|
|
5052
|
-
| style? | `CSSProperties` | |
|
|
5053
5206
|
| classes? | `RecipeClasses<typeof speedDialRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
5054
5207
|
|
|
5055
5208
|
| Event | Payload | Description |
|
|
@@ -5070,7 +5223,7 @@ Loading indicator with a label for screen readers (role="status"); with `value`
|
|
|
5070
5223
|
| --- | --- | --- |
|
|
5071
5224
|
| size? | `Size` | |
|
|
5072
5225
|
| label? | `string` | Text announced to screen readers (live region) |
|
|
5073
|
-
|
|
|
5226
|
+
| value? | `number` | Fixed progress 0–100: a ring that fills up instead of turning (a progress bar) |
|
|
5074
5227
|
| classes? | `RecipeClasses<typeof spinnerRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
5075
5228
|
|
|
5076
5229
|
|
|
@@ -5093,7 +5246,6 @@ Main action plus a menu with the other actions; both are separate buttons
|
|
|
5093
5246
|
| icon? | `Component` | |
|
|
5094
5247
|
| disabled? | `boolean` | |
|
|
5095
5248
|
| menu-label? | `string` | Accessible name of the menu button |
|
|
5096
|
-
| style? | `CSSProperties` | |
|
|
5097
5249
|
| classes? | `RecipeClasses<typeof splitButtonRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
5098
5250
|
|
|
5099
5251
|
| Event | Payload | Description |
|
|
@@ -5117,7 +5269,6 @@ Panels with handles between them (role="separator"): drag, or arrow keys (Shift
|
|
|
5117
5269
|
| step? | `number` | Arrow keys on a handle change the size by this many percent (default 1) |
|
|
5118
5270
|
| shift-step? | `number` | Shift + arrow keys (percent, default 10) |
|
|
5119
5271
|
| storage-key? | `string` | Remembers the sizes in localStorage under this key |
|
|
5120
|
-
| style? | `CSSProperties` | |
|
|
5121
5272
|
| classes? | `RecipeClasses<typeof splitterRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
5122
5273
|
|
|
5123
5274
|
| Event | Payload | Description |
|
|
@@ -5142,10 +5293,9 @@ Content cut to maxHeight; the button (aria-expanded) shows the rest. Hidden text
|
|
|
5142
5293
|
| Prop | Type | Description |
|
|
5143
5294
|
| --- | --- | --- |
|
|
5144
5295
|
| max-height? | `number` | Height of the cut content in px |
|
|
5145
|
-
| open? | `boolean` |
|
|
5296
|
+
| v-model:open? | `boolean` | Open state – use with v-model:open |
|
|
5146
5297
|
| show-label? | `string` | |
|
|
5147
5298
|
| hide-label? | `string` | |
|
|
5148
|
-
| style? | `CSSProperties` | |
|
|
5149
5299
|
| classes? | `RecipeClasses<typeof spoilerRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
5150
5300
|
|
|
5151
5301
|
| Event | Payload | Description |
|
|
@@ -5166,7 +5316,7 @@ Children below each other with an even gap
|
|
|
5166
5316
|
| --- | --- | --- |
|
|
5167
5317
|
| gap? | `LayoutGap` | Space between the children: none, xs (4px), sm (8px), md (16px, default), lg (24px), xl (32px) |
|
|
5168
5318
|
| align? | `'stretch' \| 'start' \| 'center' \| 'end'` | Horizontal alignment of the children |
|
|
5169
|
-
| as? | `
|
|
5319
|
+
| as? | `string \| Component` | Element to render, e.g. "ul" or "section" (default div) |
|
|
5170
5320
|
| classes? | `RecipeClasses<typeof stackRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
5171
5321
|
|
|
5172
5322
|
|
|
@@ -5182,7 +5332,7 @@ Label, value (with prefix/suffix and unit), trend as arrow + text, optional char
|
|
|
5182
5332
|
| Prop | Type | Description |
|
|
5183
5333
|
| --- | --- | --- |
|
|
5184
5334
|
| label | `string` | What the number is, e.g. "Revenue" |
|
|
5185
|
-
|
|
|
5335
|
+
| value? | `number \| null` | The number; null or undefined shows nothing (or the placeholder while loading) |
|
|
5186
5336
|
| format-options? | `Intl.NumberFormatOptions` | Format of the value, e.g. { style: 'currency', currency: 'EUR' } or { notation: 'compact' } |
|
|
5187
5337
|
| unit? | `string` | Unit (Intl unit identifier), e.g. "percent", "kilobyte", "hour" – formatted with the locale |
|
|
5188
5338
|
| prefix? | `string` | Text before the value, e.g. "≈" |
|
|
@@ -5233,13 +5383,12 @@ Steps list (tabs) with one panel per step and back/next buttons; the last "Next"
|
|
|
5233
5383
|
| Prop | Type | Description |
|
|
5234
5384
|
| --- | --- | --- |
|
|
5235
5385
|
| items | `readonly StepperItem[]` | |
|
|
5236
|
-
| step? | `number` | Current step (0-based; items.length = all done) |
|
|
5386
|
+
| v-model:step? | `number` | Current step (0-based; items.length = all done) – use with v-model:step |
|
|
5237
5387
|
| default-step? | `number` | |
|
|
5238
5388
|
| linear? | `boolean` | Steps only in order: no jumping ahead via the step list |
|
|
5239
5389
|
| is-step-valid? | `(index: number) => boolean` | Blocks "Next" while a step is not valid (with linear) |
|
|
5240
5390
|
| orientation? | `'horizontal' \| 'vertical'` | Steps listed top to bottom beside the content |
|
|
5241
5391
|
| label-placement? | `'end' \| 'bottom'` | Label beside the number (default) or below it |
|
|
5242
|
-
| style? | `CSSProperties` | |
|
|
5243
5392
|
| classes? | `RecipeClasses<typeof stepperRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
5244
5393
|
|
|
5245
5394
|
| Event | Payload | Description |
|
|
@@ -5283,13 +5432,13 @@ Sticks to the top or bottom edge while its container scrolls
|
|
|
5283
5432
|
| edge? | `'top' \| 'bottom'` | Edge it sticks to while its container scrolls (default top) |
|
|
5284
5433
|
| offset? | `string` | Distance from the edge, e.g. "3.5rem" below a fixed header (default 0) |
|
|
5285
5434
|
| bar? | `boolean` | Action bar look (background, line, buttons at the end) – e.g. Save/Cancel below a long form |
|
|
5286
|
-
| as? | `
|
|
5435
|
+
| as? | `string \| Component` | Element to render (default div) |
|
|
5287
5436
|
| classes? | `RecipeClasses<typeof stickyRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
5288
5437
|
|
|
5289
5438
|
|
|
5290
5439
|
### Switch
|
|
5291
5440
|
|
|
5292
|
-
|
|
5441
|
+
Without a text the label is left out: Ark names the input by it, an empty one would hide a <label for>
|
|
5293
5442
|
|
|
5294
5443
|
- Import: `import { Switch } from '@wirecore/wirelayer-vue'`
|
|
5295
5444
|
- Category: Forms
|
|
@@ -5298,15 +5447,20 @@ Ark renders a plain checkbox; role="switch" makes screen readers announce it as
|
|
|
5298
5447
|
|
|
5299
5448
|
| Prop | Type | Description |
|
|
5300
5449
|
| --- | --- | --- |
|
|
5301
|
-
| checked? | `boolean` |
|
|
5450
|
+
| v-model:checked? | `boolean` | Controlled state – use with v-model:checked |
|
|
5302
5451
|
| default-checked? | `boolean` | |
|
|
5303
5452
|
| description? | `string` | Second line below the label, also read as the switch's description |
|
|
5304
5453
|
| icon? | `Component` | Icon component before the label |
|
|
5305
5454
|
| checked-icon? | `Component` | Icon in the thumb while on |
|
|
5306
5455
|
| unchecked-icon? | `Component` | Icon in the thumb while off |
|
|
5456
|
+
| on-label? | `string` | Short text in the track while on, e.g. "On" (decoration – the state is announced by the switch) |
|
|
5307
5457
|
| off-label? | `string` | Short text in the track while off, e.g. "Off" |
|
|
5458
|
+
| disabled? | `boolean` | |
|
|
5308
5459
|
| invalid? | `boolean` | |
|
|
5309
|
-
|
|
|
5460
|
+
| required? | `boolean` | |
|
|
5461
|
+
| name? | `string` | |
|
|
5462
|
+
| value? | `string` | Value of the switch – inside a SwitchGroup its state comes from the group's value |
|
|
5463
|
+
| id? | `string` | Id of the switch (the hidden input), e.g. for a `<label for>` |
|
|
5310
5464
|
| classes? | `RecipeClasses<typeof switchControlRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
5311
5465
|
|
|
5312
5466
|
| Event | Payload | Description |
|
|
@@ -5325,11 +5479,11 @@ role="group" named by its label, described by helper and error text; Switches wi
|
|
|
5325
5479
|
|
|
5326
5480
|
| Prop | Type | Description |
|
|
5327
5481
|
| --- | --- | --- |
|
|
5328
|
-
| v-model? (modelValue) | `string[]` | Values of the switches that are on
|
|
5482
|
+
| v-model? (modelValue) | `string[]` | Values of the switches that are on – use with v-model |
|
|
5329
5483
|
| default-value? | `string[]` | |
|
|
5330
5484
|
| label? | `string` | Visible label of the group (names it); otherwise pass aria-label |
|
|
5331
|
-
| helper-text? | `
|
|
5332
|
-
| error? | `
|
|
5485
|
+
| helper-text? | `string` | |
|
|
5486
|
+
| error? | `string` | Error message – also marks the group and its switches invalid |
|
|
5333
5487
|
| invalid? | `boolean` | |
|
|
5334
5488
|
| required? | `boolean` | Shows the required mark after the label |
|
|
5335
5489
|
| disabled? | `boolean` | |
|
|
@@ -5355,7 +5509,6 @@ Navigation to the headings of the page; the section in view is marked (aria-curr
|
|
|
5355
5509
|
| --- | --- | --- |
|
|
5356
5510
|
| items | `readonly TocEntry[]` | |
|
|
5357
5511
|
| title? | `string` | |
|
|
5358
|
-
| style? | `CSSProperties` | |
|
|
5359
5512
|
| classes? | `RecipeClasses<typeof tableOfContentsRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
5360
5513
|
|
|
5361
5514
|
|
|
@@ -5370,7 +5523,7 @@ Tab panels: tab list with arrow keys, one panel visible
|
|
|
5370
5523
|
|
|
5371
5524
|
| Prop | Type | Description |
|
|
5372
5525
|
| --- | --- | --- |
|
|
5373
|
-
| v-model? (modelValue) | `string` |
|
|
5526
|
+
| v-model? (modelValue) | `string` | Selected tab – use with v-model |
|
|
5374
5527
|
| default-value? | `string` | |
|
|
5375
5528
|
| label? | `string` | Accessible name of the tab list |
|
|
5376
5529
|
| orientation? | `'horizontal' \| 'vertical'` | Tab list above (default) or beside the panels |
|
|
@@ -5395,7 +5548,7 @@ The panel of one tab
|
|
|
5395
5548
|
|
|
5396
5549
|
| Prop | Type | Description |
|
|
5397
5550
|
| --- | --- | --- |
|
|
5398
|
-
|
|
|
5551
|
+
| value | `string` | |
|
|
5399
5552
|
| classes? | `RecipeClasses<typeof tabsRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
5400
5553
|
|
|
5401
5554
|
|
|
@@ -5424,9 +5577,10 @@ One tab button
|
|
|
5424
5577
|
|
|
5425
5578
|
| Prop | Type | Description |
|
|
5426
5579
|
| --- | --- | --- |
|
|
5427
|
-
|
|
|
5580
|
+
| value | `string` | |
|
|
5428
5581
|
| icon? | `Component` | Icon component before the label |
|
|
5429
|
-
|
|
|
5582
|
+
| disabled? | `boolean` | |
|
|
5583
|
+
| closable? | `boolean` | Shows a close button (pointer) and closes with the Delete key; `close` reports it – remove the tab (and select another one) yourself. The focus moves to the neighbouring tab |
|
|
5430
5584
|
| classes? | `RecipeClasses<typeof tabsRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
5431
5585
|
|
|
5432
5586
|
| Event | Payload | Description |
|
|
@@ -5444,7 +5598,7 @@ Free entries: Enter or "," adds, Backspace on the empty field selects the last e
|
|
|
5444
5598
|
|
|
5445
5599
|
| Prop | Type | Description |
|
|
5446
5600
|
| --- | --- | --- |
|
|
5447
|
-
| v-model? (modelValue) | `string[]` |
|
|
5601
|
+
| v-model? (modelValue) | `string[]` | Entries – use with v-model |
|
|
5448
5602
|
| default-value? | `string[]` | |
|
|
5449
5603
|
| placeholder? | `string` | |
|
|
5450
5604
|
| max? | `number` | Most entries allowed |
|
|
@@ -5455,14 +5609,13 @@ Free entries: Enter or "," adds, Backspace on the empty field selects the last e
|
|
|
5455
5609
|
| name? | `string` | |
|
|
5456
5610
|
| suggestions? | `readonly string[]` | Suggestions while typing (entries already added are left out); arrow keys pick one, Enter adds it |
|
|
5457
5611
|
| filter? | `boolean` | Filters the suggestions by the typed text, ignoring case and accents (default true) |
|
|
5458
|
-
| manual-filter? | `boolean` | The suggestions are filtered elsewhere (server): no local filtering, listen to
|
|
5612
|
+
| manual-filter? | `boolean` | The suggestions are filtered elsewhere (server): no local filtering, listen to filterChange |
|
|
5459
5613
|
| loading? | `boolean` | Shows "Loading" in the suggestions (aria-busy) |
|
|
5460
5614
|
| loading-text? | `string` | Text of the loading row |
|
|
5461
|
-
| has-more? | `boolean` | More suggestions can be loaded: scrolling to the end of the list
|
|
5615
|
+
| has-more? | `boolean` | More suggestions can be loaded: scrolling to the end of the list emits loadMore |
|
|
5462
5616
|
| data-source? | `DataSource<string>` | Suggestions from a server instead of `suggestions`: asked with the typed text after a typing pause (outdated answers dropped), more while scrolling |
|
|
5463
5617
|
| min-search-length? | `number` | Fewest characters the typed text needs before the data source is asked (default 1) |
|
|
5464
|
-
|
|
|
5465
|
-
| style? | `CSSProperties` | |
|
|
5618
|
+
| id? | `string` | Id of the input, e.g. for a `<label for>` |
|
|
5466
5619
|
| classes? | `RecipeClasses<typeof tagsInputRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
5467
5620
|
|
|
5468
5621
|
| Event | Payload | Description |
|
|
@@ -5483,13 +5636,16 @@ Multi-line text field, optionally growing with the text (autoResize) and with a
|
|
|
5483
5636
|
|
|
5484
5637
|
| Prop | Type | Description |
|
|
5485
5638
|
| --- | --- | --- |
|
|
5639
|
+
| v-model? (modelValue) | `string` | |
|
|
5640
|
+
| default-value? | `string` | Start value without v-model (uncontrolled) |
|
|
5486
5641
|
| size? | `Size` | |
|
|
5487
5642
|
| invalid? | `boolean` | Marks the textarea as invalid (also inherited from a surrounding Field) |
|
|
5488
5643
|
| success? | `boolean` | Confirmed value: green border and check icon (also inherited from a Field with `success`) |
|
|
5644
|
+
| disabled? | `boolean` | Disables the textarea (also inherited from a surrounding Field) |
|
|
5489
5645
|
| auto-resize? | `boolean` | Grows with its text instead of scrolling (rows stays the minimum) |
|
|
5490
5646
|
| min-rows? | `number` | With autoResize: at least this many rows |
|
|
5491
5647
|
| max-rows? | `number` | With autoResize: at most this many rows, then it scrolls |
|
|
5492
|
-
| show-count? | `boolean` | Counter "12 / 200" below the field (needs `
|
|
5648
|
+
| show-count? | `boolean` | Counter "12 / 200" below the field (needs `maxlength`); the remaining characters are announced once typing pauses, not on every character |
|
|
5493
5649
|
| loading? | `boolean` | Shows a spinner in the corner and marks the field busy (aria-busy) |
|
|
5494
5650
|
| clearable? | `boolean` | Shows a button that empties the field while it has text |
|
|
5495
5651
|
| clear-label? | `string` | Accessible name of the clear button (default "Clear input") |
|
|
@@ -5510,7 +5666,7 @@ Free time slots for a booking: radio buttons for one time (arrow keys move and c
|
|
|
5510
5666
|
|
|
5511
5667
|
| Prop | Type | Description |
|
|
5512
5668
|
| --- | --- | --- |
|
|
5513
|
-
| v-model? (modelValue) | `T` | Chosen start time ("HH:mm"); with range { start, end } (start times of the first and last slot) |
|
|
5669
|
+
| v-model? (modelValue) | `T` | Chosen start time ("HH:mm") – use with v-model; with range { start, end } (start times of the first and last slot) |
|
|
5514
5670
|
| default-value? | `T` | |
|
|
5515
5671
|
| times? | `(string \| TimeGridSlot)[]` | The bookable times; default every `interval` minutes from `start` up to `end` |
|
|
5516
5672
|
| start? | `string` | First slot ("HH:mm") when `times` is not given |
|
|
@@ -5525,8 +5681,6 @@ Free time slots for a booking: radio buttons for one time (arrow keys move and c
|
|
|
5525
5681
|
| disabled? | `boolean` | |
|
|
5526
5682
|
| name? | `string` | Sent as "HH:mm"; with range as name[0] and name[1] |
|
|
5527
5683
|
| size? | `'sm' \| 'md' \| 'lg'` | |
|
|
5528
|
-
| aria-label? | `string` | Accessible name instead of `label` |
|
|
5529
|
-
| style? | `CSSProperties` | |
|
|
5530
5684
|
| classes? | `RecipeClasses<typeof timeGridRecipe>` | Extra classes per part of the component, e.g. { slot: "…" } (see the recipe) |
|
|
5531
5685
|
|
|
5532
5686
|
| Event | Payload | Description |
|
|
@@ -5550,11 +5704,10 @@ Events in order (ordered list); the markers are decoration, the status colour is
|
|
|
5550
5704
|
| orientation? | `'vertical' \| 'horizontal'` | Events side by side with a horizontal line |
|
|
5551
5705
|
| active-index? | `number` | Index of the current event: filled marker and aria-current="step" |
|
|
5552
5706
|
| feed? | `boolean` | A feed (role="feed"): each event is an article that takes the focus, Page Up/Down move between them; with `hasMore` older events are loaded at the end |
|
|
5553
|
-
| has-more? | `boolean` | Older events can be loaded: the button "Load older entries" (and `autoLoad`)
|
|
5707
|
+
| has-more? | `boolean` | Older events can be loaded: the button "Load older entries" (and `autoLoad`) emits loadMore |
|
|
5554
5708
|
| loading? | `boolean` | Older events are loading (aria-busy on the feed) |
|
|
5555
5709
|
| auto-load? | `boolean` | Loads older events when the end of the feed scrolls into view (the button stays as fallback) |
|
|
5556
5710
|
| set-size? | `number` | Number of all events (aria-setsize); -1 when unknown (default: the number of items, or -1 with hasMore) |
|
|
5557
|
-
| style? | `CSSProperties` | |
|
|
5558
5711
|
| classes? | `RecipeClasses<typeof timelineRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
5559
5712
|
|
|
5560
5713
|
| Event | Payload | Description |
|
|
@@ -5577,7 +5730,7 @@ Time field: type the digits one after another ("1430"), arrow keys change hour o
|
|
|
5577
5730
|
|
|
5578
5731
|
| Prop | Type | Description |
|
|
5579
5732
|
| --- | --- | --- |
|
|
5580
|
-
| v-model? (modelValue) | `string \| null` | "HH:mm", e.g. "14:30" ("HH:mm:ss" with withSeconds); with timeZone "14:30+02:00" |
|
|
5733
|
+
| v-model? (modelValue) | `string \| null` | "HH:mm", e.g. "14:30" ("HH:mm:ss" with withSeconds) – use with v-model; with timeZone "14:30+02:00" |
|
|
5581
5734
|
| default-value? | `string \| null` | |
|
|
5582
5735
|
| min? | `string` | Earliest time ("HH:mm") – also the start of the list |
|
|
5583
5736
|
| max? | `string` | Latest time ("HH:mm") – also the end of the list |
|
|
@@ -5596,8 +5749,7 @@ Time field: type the digits one after another ("1430"), arrow keys change hour o
|
|
|
5596
5749
|
| time-zone? | `string` | IANA zone ("Europe/Berlin"): the time is typed in the zone, the value gets its offset ("14:30+02:00") |
|
|
5597
5750
|
| reference-date? | `string` | Day whose offset applies with timeZone (ISO, default today) |
|
|
5598
5751
|
| show-time-zone? | `boolean` | Short zone name after the time ("CEST") |
|
|
5599
|
-
|
|
|
5600
|
-
| style? | `CSSProperties` | |
|
|
5752
|
+
| id? | `string` | Id of the field – the (first) time gets it; a `<label for>` cannot name it, use a Field or aria-label |
|
|
5601
5753
|
| classes? | `RecipeClasses<typeof datePickerRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
5602
5754
|
|
|
5603
5755
|
| Event | Payload | Description |
|
|
@@ -5615,7 +5767,7 @@ Start and end time in one field ("09:00 – 17:30"): typing runs on from start t
|
|
|
5615
5767
|
|
|
5616
5768
|
| Prop | Type | Description |
|
|
5617
5769
|
| --- | --- | --- |
|
|
5618
|
-
| v-model? (modelValue) | `TimeRange \| null` | Start and end ("09:00" – "17:30") |
|
|
5770
|
+
| v-model? (modelValue) | `TimeRange \| null` | Start and end ("09:00" – "17:30") – use with v-model |
|
|
5619
5771
|
| default-value? | `TimeRange \| null` | |
|
|
5620
5772
|
| min? | `string` | Earliest time ("HH:mm") |
|
|
5621
5773
|
| max? | `string` | Latest time ("HH:mm") |
|
|
@@ -5629,8 +5781,7 @@ Start and end time in one field ("09:00 – 17:30"): typing runs on from start t
|
|
|
5629
5781
|
| name? | `string` | Sent as name[0] and name[1] |
|
|
5630
5782
|
| size? | `'sm' \| 'md' \| 'lg'` | |
|
|
5631
5783
|
| clearable? | `boolean` | Clear button in the field while it has a value |
|
|
5632
|
-
|
|
|
5633
|
-
| style? | `CSSProperties` | |
|
|
5784
|
+
| id? | `string` | Id of the field – the (first) time gets it; a `<label for>` cannot name it, use a Field or aria-label |
|
|
5634
5785
|
| classes? | `RecipeClasses<typeof datePickerRecipe>` | Extra classes per part of the component (see the datePicker recipe) |
|
|
5635
5786
|
|
|
5636
5787
|
| Event | Payload | Description |
|
|
@@ -5649,6 +5800,10 @@ Place once in the app; show toasts with toast({ title, description, type, action
|
|
|
5649
5800
|
| Prop | Type | Description |
|
|
5650
5801
|
| --- | --- | --- |
|
|
5651
5802
|
| toaster? | `typeof appToaster` | A toaster from createToaster() – without it the app-wide one of toast() |
|
|
5803
|
+
| placement? | `ToasterOptions['placement']` | Where the toasts appear (default bottom-end) – also for the app-wide toaster of toast() |
|
|
5804
|
+
| max? | `number` | Toasts shown at once (default 5); more wait in a queue |
|
|
5805
|
+
| overlap? | `boolean` | Toasts lie on top of each other and fan out on hover or focus (instead of a list) |
|
|
5806
|
+
| gap? | `number` | Space between the toasts in px (default 12) |
|
|
5652
5807
|
| label? | `string` | Accessible name of the notification region |
|
|
5653
5808
|
| close-label? | `string` | Accessible name of each toast's close button |
|
|
5654
5809
|
| show-progress? | `boolean` | Thin bar at the bottom that shows the remaining time (decorative; stops while paused) |
|
|
@@ -5667,10 +5822,14 @@ Button that stays pressed (aria-pressed), e.g. "Active only" – the label does
|
|
|
5667
5822
|
|
|
5668
5823
|
| Prop | Type | Description |
|
|
5669
5824
|
| --- | --- | --- |
|
|
5670
|
-
| pressed? | `boolean` |
|
|
5825
|
+
| v-model:pressed? | `boolean` | Pressed state – use with v-model:pressed |
|
|
5671
5826
|
| default-pressed? | `boolean` | |
|
|
5672
5827
|
| size? | `Size` | |
|
|
5673
5828
|
| icon? | `Component` | |
|
|
5829
|
+
| pressed-icon? | `Component` | Icon while pressed (default: `icon`) – the label stays the same |
|
|
5830
|
+
| icon-props? | `Record<string, unknown>` | Props passed on to the icon component, e.g. { fill: 'currentColor' } for a filled icon or { strokeWidth: 1.5 } |
|
|
5831
|
+
| pressed-icon-props? | `Record<string, unknown>` | Props of the icon while pressed, added to `iconProps` – e.g. { fill: 'currentColor' }: a filled icon when on |
|
|
5832
|
+
| disabled? | `boolean` | |
|
|
5674
5833
|
| classes? | `RecipeClasses<typeof toggleButtonRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
5675
5834
|
|
|
5676
5835
|
| Event | Payload | Description |
|
|
@@ -5689,10 +5848,10 @@ Button that stays pressed (aria-pressed), e.g. "Active only" – the label does
|
|
|
5689
5848
|
|
|
5690
5849
|
| Prop | Type | Description |
|
|
5691
5850
|
| --- | --- | --- |
|
|
5692
|
-
| content? | `
|
|
5851
|
+
| content? | `string` | The explanation (or the default slot) |
|
|
5693
5852
|
| label? | `string` | What it explains, e.g. the field label – names the button "More information about <label>" |
|
|
5694
5853
|
| trigger-label? | `string` | Own accessible name of the button |
|
|
5695
|
-
| open? | `boolean` | Open state
|
|
5854
|
+
| v-model:open? | `boolean` | Open state – use with v-model:open |
|
|
5696
5855
|
| icon? | `Component` | Icon of the button (default: info) |
|
|
5697
5856
|
| classes? | `RecipeClasses<typeof toggletipRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
5698
5857
|
|
|
@@ -5713,7 +5872,6 @@ Groups controls (role="toolbar"): one tab stop, arrow keys move between the cont
|
|
|
5713
5872
|
| --- | --- | --- |
|
|
5714
5873
|
| label | `string` | Accessible name, e.g. "Formatting" |
|
|
5715
5874
|
| orientation? | `'horizontal' \| 'vertical'` | |
|
|
5716
|
-
| style? | `CSSProperties` | |
|
|
5717
5875
|
| classes? | `RecipeClasses<typeof toolbarRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
5718
5876
|
|
|
5719
5877
|
| Slot | Slot props | Description |
|
|
@@ -5739,6 +5897,7 @@ No element of its own: the trigger is the slotted element
|
|
|
5739
5897
|
| close-delay? | `number` | Delay before closing (ms); default 150 or that of the TooltipGroup |
|
|
5740
5898
|
| interactive? | `boolean` | The pointer can move onto the tooltip without it closing (WCAG 1.4.13) |
|
|
5741
5899
|
| follow-cursor? | `boolean` | Follows the mouse pointer over the trigger |
|
|
5900
|
+
| close-on-scroll? | `boolean` | Closes when the page (or a container around the trigger) scrolls – false keeps it open while scrolling |
|
|
5742
5901
|
| disabled? | `boolean` | Never opens (e.g. Truncate while the text fits) – the trigger stays the same element |
|
|
5743
5902
|
| classes? | `RecipeClasses<typeof tooltipRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
5744
5903
|
|
|
@@ -5788,7 +5947,7 @@ Step-by-step introduction: each step is a dialog next to its element (focus move
|
|
|
5788
5947
|
| Prop | Type | Description |
|
|
5789
5948
|
| --- | --- | --- |
|
|
5790
5949
|
| steps | `readonly TourStep[]` | |
|
|
5791
|
-
| open? | `boolean` | Running –
|
|
5950
|
+
| v-model:open? | `boolean` | Running – use with v-model:open |
|
|
5792
5951
|
| classes? | `RecipeClasses<typeof tourRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
5793
5952
|
|
|
5794
5953
|
| Event | Payload | Description |
|
|
@@ -5809,30 +5968,28 @@ Tree (role="tree"): arrow keys move and open/close, Enter/Space select, typing j
|
|
|
5809
5968
|
| --- | --- | --- |
|
|
5810
5969
|
| items | `readonly TreeNode[]` | |
|
|
5811
5970
|
| label? | `string` | Visible label, also the tree's accessible name |
|
|
5812
|
-
| aria-label? | `string` | Accessible name without a visible label |
|
|
5813
5971
|
| selection-mode? | `'single' \| 'multiple'` | |
|
|
5814
|
-
| selected-value? | `string[]` |
|
|
5972
|
+
| v-model:selected-value? | `string[]` | Selected ids – use with v-model:selected-value |
|
|
5815
5973
|
| default-selected-value? | `string[]` | |
|
|
5816
|
-
| expanded-value? | `string[]` |
|
|
5974
|
+
| v-model:expanded-value? | `string[]` | Expanded ids – use with v-model:expanded-value |
|
|
5817
5975
|
| default-expanded-value? | `string[]` | |
|
|
5818
|
-
| checkable? | `boolean` | A checkbox per node; checking a branch checks its children |
|
|
5819
|
-
| checked-value? | `string[]` | |
|
|
5976
|
+
| checkable? | `boolean` | A checkbox per node; checking a branch checks its children (v-model:checked-value) |
|
|
5977
|
+
| v-model:checked-value? | `string[]` | |
|
|
5820
5978
|
| default-checked-value? | `string[]` | |
|
|
5821
5979
|
| check-strictly? | `boolean` | Check boxes of parents and children are independent (no cascade) |
|
|
5822
5980
|
| checked-strategy? | `TreeCheckedStrategy` | Which checked ids are reported: `all` – every checked node, `parent` – a fully checked branch instead of its children, `child` – only nodes without children. Without it the ids are reported as Ark keeps them. |
|
|
5823
|
-
| reorderable? | `boolean` | Nodes can be moved: drag and drop (before, after or into a branch), Alt+arrow keys on the focused node (up/down among the siblings, right into the branch above, left out of the branch), or Ctrl+X and Ctrl+V. Reported via `
|
|
5981
|
+
| reorderable? | `boolean` | Nodes can be moved: drag and drop (before, after or into a branch), Alt+arrow keys on the focused node (up/down among the siblings, right into the branch above, left out of the branch), or Ctrl+X and Ctrl+V. Reported via `move`. |
|
|
5824
5982
|
| allow-drop? | `TreeDropAllowed` | Decides whether a node may go before, after or into another one (drag and drop, keyboard, paste) |
|
|
5825
|
-
| group? | `string` | Trees with the same group exchange nodes: drag and drop, or Ctrl+X in one tree and Ctrl+V in the other. The receiving tree reports `
|
|
5826
|
-
| name? | `string` | Identifies this tree in `
|
|
5827
|
-
| load-children? | `(node: TreeNode, request: { signal: AbortSignal }) => Promise<TreeNode[]>` | Loads the children of a node with `hasChildren: true` (or `leaf: false`) when it opens; the signal aborts it. Without it (and without `dataSource`) the tree
|
|
5983
|
+
| group? | `string` | Trees with the same group exchange nodes: drag and drop, or Ctrl+X in one tree and Ctrl+V in the other. The receiving tree reports `transfer`; the parent moves the node between the items. |
|
|
5984
|
+
| name? | `string` | Identifies this tree in `transfer` events (sourceTree/targetTree) |
|
|
5985
|
+
| load-children? | `(node: TreeNode, request: { signal: AbortSignal }) => Promise<TreeNode[]>` | Loads the children of a node with `hasChildren: true` (or `leaf: false`) when it opens; the signal aborts it. Without it (and without `dataSource`) the tree emits `loadChildren` and the parent adds the children. |
|
|
5828
5986
|
| data-source? | `DataSource<TreeNode>` | Source of the children of lazy nodes (`getChildren`) |
|
|
5829
5987
|
| filter? | `boolean` | Search field above the tree; hits stay with their ancestors (opened), hits are marked |
|
|
5830
|
-
| filter-value? | `string` | Search text –
|
|
5988
|
+
| v-model:filter-value? | `string` | Search text – use with v-model:filter-value, or set it from a search field of your own |
|
|
5831
5989
|
| filter-mode? | `'filter' \| 'highlight'` | `filter`: only the hits and their ancestors stay; `highlight`: all nodes stay, Enter jumps to the next hit |
|
|
5832
5990
|
| expand-controls? | `boolean` | Buttons "Expand all" and "Collapse all" above the tree |
|
|
5833
5991
|
| show-lines? | `boolean` | Guide lines along the children of open branches |
|
|
5834
|
-
| empty-text? | `string` | Shown without nodes (or without hits) |
|
|
5835
|
-
| style? | `CSSProperties` | |
|
|
5992
|
+
| empty-text? | `string` | Shown without nodes (or without hits); the `empty` slot replaces it |
|
|
5836
5993
|
| classes? | `RecipeClasses<typeof treeRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
5837
5994
|
|
|
5838
5995
|
| Event | Payload | Description |
|
|
@@ -5882,7 +6039,7 @@ Select whose options are a tree: the button opens the tree in a panel, choosing
|
|
|
5882
6039
|
| Prop | Type | Description |
|
|
5883
6040
|
| --- | --- | --- |
|
|
5884
6041
|
| items | `readonly TreeNode[]` | |
|
|
5885
|
-
| v-model? (modelValue) | `T` | Chosen node id (an array of ids with `multiple`) |
|
|
6042
|
+
| v-model? (modelValue) | `T` | Chosen node id (an array of ids with `multiple`) – use with v-model |
|
|
5886
6043
|
| default-value? | `T` | |
|
|
5887
6044
|
| placeholder? | `string` | |
|
|
5888
6045
|
| leaves-only? | `boolean` | Only nodes without children can be chosen |
|
|
@@ -5899,8 +6056,7 @@ Select whose options are a tree: the button opens the tree in a panel, choosing
|
|
|
5899
6056
|
| size? | `'sm' \| 'md' \| 'lg'` | Height of the field: 32, 40 (default) or 48 px |
|
|
5900
6057
|
| load-children? | `(node: TreeNode, request: { signal: AbortSignal }) => Promise<TreeNode[]>` | Loads the children of lazy nodes (`hasChildren: true`) when they open; they are kept while the field lives |
|
|
5901
6058
|
| data-source? | `DataSource<TreeNode>` | Source of the children of lazy nodes (`getChildren`) |
|
|
5902
|
-
|
|
|
5903
|
-
| style? | `CSSProperties` | |
|
|
6059
|
+
| id? | `string` | Id of the field (the trigger), e.g. for a `<label for>` |
|
|
5904
6060
|
| classes? | `RecipeClasses<typeof treeSelectRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
5905
6061
|
|
|
5906
6062
|
| Event | Payload | Description |
|
|
@@ -5924,7 +6080,7 @@ Text cut to one or more lines; the full text in a tooltip (only while cut) or be
|
|
|
5924
6080
|
| lines? | `number` | Lines before the text is cut (default 1: one line with an ellipsis) |
|
|
5925
6081
|
| tooltip? | `boolean` | The full text in a tooltip – only while it is cut; the text then becomes focusable for keyboard users |
|
|
5926
6082
|
| expandable? | `boolean` | A "Show more" button below the cut text instead of the tooltip |
|
|
5927
|
-
| expanded? | `boolean` | Expanded state with `expandable`
|
|
6083
|
+
| v-model:expanded? | `boolean` | Expanded state with `expandable` – use with v-model:expanded |
|
|
5928
6084
|
| default-expanded? | `boolean` | |
|
|
5929
6085
|
| as? | `'span' \| 'p' \| 'div'` | Element of the text (default span; p for paragraphs) |
|
|
5930
6086
|
| more-label? | `string` | Text of the button while cut / expanded |
|
|
@@ -5952,14 +6108,13 @@ Only the visible rows are in the DOM; each row says its position (aria-posinset/
|
|
|
5952
6108
|
| estimate-size? | `(item: T, index: number) => number` | Estimated height of one item, when the heights differ a lot (rows are measured when shown) |
|
|
5953
6109
|
| height? | `string` | Height of the scroll area (CSS length) |
|
|
5954
6110
|
| item-group? | `ItemAccessor<T, string \| null \| undefined>` | Group heading of an item (property name or function); the heading of the group in view sticks to the top |
|
|
5955
|
-
| has-more? | `boolean` | More items can be loaded: scrolling near the end
|
|
6111
|
+
| has-more? | `boolean` | More items can be loaded: scrolling near the end emits loadMore |
|
|
5956
6112
|
| loading? | `boolean` | The next items are loading: a loading row at the end |
|
|
5957
6113
|
| loading-more? | `boolean` | |
|
|
5958
|
-
| end-threshold? | `number` | How many rows before the end
|
|
6114
|
+
| end-threshold? | `number` | How many rows before the end loadMore is emitted (default 5) |
|
|
5959
6115
|
| data-source? | `DataSource<T>` | Loads the items page by page while scrolling (instead of `items`) |
|
|
5960
6116
|
| query? | `Omit<DataQuery, 'page' \| 'pageSize' \| 'cursor'>` | Sorting, filters and search for the data source; a change starts over |
|
|
5961
6117
|
| page-size? | `number` | Items per request of the data source (default 50) |
|
|
5962
|
-
| style? | `CSSProperties` | |
|
|
5963
6118
|
|
|
5964
6119
|
| Event | Payload | Description |
|
|
5965
6120
|
| --- | --- | --- |
|
|
@@ -5982,9 +6137,10 @@ Select for any number of items – only the visible options are rendered.
|
|
|
5982
6137
|
| Prop | Type | Description |
|
|
5983
6138
|
| --- | --- | --- |
|
|
5984
6139
|
| items | `readonly T[]` | Any number of items – only the visible options are rendered |
|
|
5985
|
-
| v-model? (modelValue) | `V \| null` | Selected value; any type (string, number, boolean, object) |
|
|
6140
|
+
| v-model? (modelValue) | `V \| null` | Selected value – use with v-model; any type (string, number, boolean, object) |
|
|
5986
6141
|
| default-value? | `V \| null` | |
|
|
5987
6142
|
| placeholder? | `string` | |
|
|
6143
|
+
| disabled? | `boolean` | |
|
|
5988
6144
|
| invalid? | `boolean` | |
|
|
5989
6145
|
| required? | `boolean` | |
|
|
5990
6146
|
| name? | `string` | |
|
|
@@ -5997,12 +6153,13 @@ Select for any number of items – only the visible options are rendered.
|
|
|
5997
6153
|
| loading-text? | `string` | Text of the loading row in the list |
|
|
5998
6154
|
| size? | `SelectSize` | Height of the field: 32, 40 (default) or 48 px |
|
|
5999
6155
|
| filter? | `boolean` | Search field at the top of the list; filters by label, ignoring case and accents |
|
|
6000
|
-
| manual-filter? | `boolean` | The items are filtered elsewhere (server): no local filtering, listen to
|
|
6156
|
+
| manual-filter? | `boolean` | The items are filtered elsewhere (server): no local filtering, listen to filterChange |
|
|
6001
6157
|
| empty-text? | `string` | Shown when no item is left (default "No results" / "No entries") |
|
|
6002
|
-
| has-more? | `boolean` | More items can be loaded: reaching the end of the list
|
|
6158
|
+
| has-more? | `boolean` | More items can be loaded: reaching the end of the list emits loadMore (endless list) |
|
|
6003
6159
|
| data-source? | `DataSource<T>` | Loads the items from a server instead of `items`: the first page when it opens, more while scrolling, the search field asks the server (after a typing pause); labels of chosen values that are not loaded come from `getItemsByKeys` |
|
|
6004
6160
|
| page-size? | `number` | Items per request of the data source (default 50) |
|
|
6005
6161
|
| min-search-length? | `number` | Fewest characters the search needs before the data source is asked |
|
|
6162
|
+
| id? | `string` | Id of the field (the trigger), e.g. for a `<label for>` |
|
|
6006
6163
|
|
|
6007
6164
|
| Event | Payload | Description |
|
|
6008
6165
|
| --- | --- | --- |
|
|
@@ -6022,6 +6179,30 @@ Tree for many nodes: the open part of the tree as a flat, virtualised list of tr
|
|
|
6022
6179
|
|
|
6023
6180
|
| Prop | Type | Description |
|
|
6024
6181
|
| --- | --- | --- |
|
|
6182
|
+
| items | `readonly TreeNode[]` | |
|
|
6183
|
+
| label? | `string` | Visible label, also the tree's accessible name |
|
|
6184
|
+
| selection-mode? | `'single' \| 'multiple'` | |
|
|
6185
|
+
| v-model:selected-value? | `string[]` | Selected ids – use with v-model:selected-value |
|
|
6186
|
+
| default-selected-value? | `string[]` | |
|
|
6187
|
+
| v-model:expanded-value? | `string[]` | Expanded ids – use with v-model:expanded-value |
|
|
6188
|
+
| default-expanded-value? | `string[]` | |
|
|
6189
|
+
| checkable? | `boolean` | A checkbox per node; checking a branch checks its children (v-model:checked-value) |
|
|
6190
|
+
| v-model:checked-value? | `string[]` | |
|
|
6191
|
+
| default-checked-value? | `string[]` | |
|
|
6192
|
+
| check-strictly? | `boolean` | Check boxes of parents and children are independent (no cascade) |
|
|
6193
|
+
| checked-strategy? | `TreeCheckedStrategy` | Which checked ids are reported: `all` – every checked node, `parent` – a fully checked branch instead of its children, `child` – only nodes without children. Without it the ids are reported as Ark keeps them. |
|
|
6194
|
+
| reorderable? | `boolean` | Nodes can be moved: drag and drop (before, after or into a branch), Alt+arrow keys on the focused node (up/down among the siblings, right into the branch above, left out of the branch), or Ctrl+X and Ctrl+V. Reported via `move`. |
|
|
6195
|
+
| allow-drop? | `TreeDropAllowed` | Decides whether a node may go before, after or into another one (drag and drop, keyboard, paste) |
|
|
6196
|
+
| group? | `string` | Trees with the same group exchange nodes: drag and drop, or Ctrl+X in one tree and Ctrl+V in the other. The receiving tree reports `transfer`; the parent moves the node between the items. |
|
|
6197
|
+
| name? | `string` | Identifies this tree in `transfer` events (sourceTree/targetTree) |
|
|
6198
|
+
| load-children? | `(node: TreeNode, request: { signal: AbortSignal }) => Promise<TreeNode[]>` | Loads the children of a node with `hasChildren: true` (or `leaf: false`) when it opens; the signal aborts it. Without it (and without `dataSource`) the tree emits `loadChildren` and the parent adds the children. |
|
|
6199
|
+
| data-source? | `DataSource<TreeNode>` | Source of the children of lazy nodes (`getChildren`) |
|
|
6200
|
+
| filter? | `boolean` | Search field above the tree; hits stay with their ancestors (opened), hits are marked |
|
|
6201
|
+
| v-model:filter-value? | `string` | Search text – use with v-model:filter-value, or set it from a search field of your own |
|
|
6202
|
+
| filter-mode? | `'filter' \| 'highlight'` | `filter`: only the hits and their ancestors stay; `highlight`: all nodes stay, Enter jumps to the next hit |
|
|
6203
|
+
| expand-controls? | `boolean` | Buttons "Expand all" and "Collapse all" above the tree |
|
|
6204
|
+
| empty-text? | `string` | Shown without nodes (or without hits); the `empty` slot replaces it |
|
|
6205
|
+
| classes? | `RecipeClasses<typeof treeRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
6025
6206
|
| height? | `string` | Height of the scrolling tree (CSS length) |
|
|
6026
6207
|
| item-height? | `number` | Estimated row height in px (rows are measured when shown) |
|
|
6027
6208
|
|
|
@@ -6051,7 +6232,7 @@ Text only for screen readers, e.g. a label next to an icon
|
|
|
6051
6232
|
|
|
6052
6233
|
| Prop | Type | Description |
|
|
6053
6234
|
| --- | --- | --- |
|
|
6054
|
-
| as? | `
|
|
6235
|
+
| as? | `string` | Element (default span) |
|
|
6055
6236
|
| focusable? | `boolean` | Becomes visible while it (or something inside) has the focus – e.g. a skip link |
|
|
6056
6237
|
| classes? | `RecipeClasses<typeof visuallyHiddenRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
6057
6238
|
|
|
@@ -6074,7 +6255,6 @@ Floating bars: each change starts where the previous one ended, totals from zero
|
|
|
6074
6255
|
| format-value? | `(value: number) => string` | Formats values in the axis, tooltips and table |
|
|
6075
6256
|
| tones? | `{ up?: ChartTone; down?: ChartTone; total?: ChartTone }` | Colours of rising, falling and total bars (default success, danger, primary) |
|
|
6076
6257
|
| options? | `Record<string, unknown>` | Chart.js options – merged over the WireLayer defaults |
|
|
6077
|
-
| style? | `CSSProperties` | |
|
|
6078
6258
|
| classes? | `RecipeClasses<typeof chartRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe chart) |
|
|
6079
6259
|
|
|
6080
6260
|
|
|
@@ -6113,9 +6293,9 @@ Multi-step form on the Stepper: "Next" checks the step (async with a spinner), "
|
|
|
6113
6293
|
| Prop | Type | Description |
|
|
6114
6294
|
| --- | --- | --- |
|
|
6115
6295
|
| steps | `readonly WizardStep[]` | |
|
|
6116
|
-
| step? | `number` | Current step (0-based; steps + summary = done) –
|
|
6296
|
+
| v-model:step? | `number` | Current step (0-based; steps + summary = done) – use with v-model:step |
|
|
6117
6297
|
| default-step? | `number` | |
|
|
6118
|
-
| summary-label? | `string` | Name of the summary step (default "Summary") |
|
|
6298
|
+
| summary-label? | `string` | Name of the summary step – the step appears with the #summary slot (default "Summary") |
|
|
6119
6299
|
| orientation? | `'horizontal' \| 'vertical'` | Steps listed top to bottom beside the content |
|
|
6120
6300
|
| classes? | `RecipeClasses<typeof wizardRecipe>` | Extra classes per part of the component, e.g. { base: "…" } (see the recipe) |
|
|
6121
6301
|
|
|
@@ -6140,7 +6320,7 @@ Year field ("2026"): type the digits, or pick from the year grid; range: start
|
|
|
6140
6320
|
|
|
6141
6321
|
| Prop | Type | Description |
|
|
6142
6322
|
| --- | --- | --- |
|
|
6143
|
-
| v-model? (modelValue) | `T` | Year as "2026"; with range { start, end } |
|
|
6323
|
+
| v-model? (modelValue) | `T` | Year as "2026" – use with v-model; with range { start, end } |
|
|
6144
6324
|
| default-value? | `T` | |
|
|
6145
6325
|
| range? | `boolean` | Start and end year instead of one |
|
|
6146
6326
|
| min? | `string` | Earliest year ("2020") |
|
|
@@ -6152,10 +6332,10 @@ Year field ("2026"): type the digits, or pick from the year grid; range: start
|
|
|
6152
6332
|
| invalid? | `boolean` | |
|
|
6153
6333
|
| required? | `boolean` | |
|
|
6154
6334
|
| name? | `string` | With range sent as name[0] and name[1] |
|
|
6335
|
+
| placeholder? | `string` | Text of the empty field, shown until it gets the focus – no replacement for a label |
|
|
6155
6336
|
| size? | `'sm' \| 'md' \| 'lg'` | |
|
|
6156
6337
|
| clearable? | `boolean` | Clear button in the field while it has a value |
|
|
6157
|
-
|
|
|
6158
|
-
| style? | `CSSProperties` | |
|
|
6338
|
+
| id? | `string` | Id of the field – the (first) date gets it; a `<label for>` cannot name it, use a Field or aria-label |
|
|
6159
6339
|
| classes? | `RecipeClasses<typeof datePicker>` | Extra classes per part of the date field, e.g. { control: "…" } (the calendar: RecipesProvider) |
|
|
6160
6340
|
|
|
6161
6341
|
| Event | Payload | Description |
|
|
@@ -6362,6 +6542,29 @@ that render components, such as `confirm` or the DataTable feature `dateInput`,
|
|
|
6362
6542
|
components warn in the console when the classes of a recipe they render are missing. Recipes you call yourself
|
|
6363
6543
|
(`card()`) are not checked – add their files along with the import.
|
|
6364
6544
|
|
|
6545
|
+
**With Vite** (Vue, React, Nuxt, Astro) the plugin `@wirecore/wirelayer-recipes/vite` adds these files itself: it reads
|
|
6546
|
+
the imports from `@wirecore/wirelayer-*` in your source files and adds the files of the imported components and recipes
|
|
6547
|
+
to the CSS file that imports `theme.css` (or `styles-core.css`). Put it before Tailwind's plugin:
|
|
6548
|
+
|
|
6549
|
+
```ts
|
|
6550
|
+
// vite.config.ts (Nuxt: vite.plugins in nuxt.config.ts, Astro: vite.plugins in astro.config.mjs)
|
|
6551
|
+
import tailwindcss from '@tailwindcss/vite';
|
|
6552
|
+
import { wirelayer } from '@wirecore/wirelayer-recipes/vite';
|
|
6553
|
+
|
|
6554
|
+
export default { plugins: [wirelayer(), tailwindcss()] };
|
|
6555
|
+
```
|
|
6556
|
+
|
|
6557
|
+
```css
|
|
6558
|
+
@import 'tailwindcss';
|
|
6559
|
+
@import '@wirecore/wirelayer-vue/theme.css'; /* the plugin adds the sources files here */
|
|
6560
|
+
@import '@wirecore/wirelayer-vue/fonts.css'; /* the WireLayer fonts – leave it out with a font of your own */
|
|
6561
|
+
```
|
|
6562
|
+
|
|
6563
|
+
`theme.css` is the theme without fonts and without component classes: an app with its own font
|
|
6564
|
+
(`@theme { --font-sans: … }`) does not bundle Schibsted Grotesk and JetBrains Mono. Components the plugin cannot see –
|
|
6565
|
+
registered globally (`app.component(…)`) or imported automatically – trigger the warning above; import their files by
|
|
6566
|
+
hand. Next.js does not use Vite: there, list the files or use `styles.css`.
|
|
6567
|
+
|
|
6365
6568
|
### Usage
|
|
6366
6569
|
|
|
6367
6570
|
```vue
|
|
@@ -6394,9 +6597,13 @@ import { ArrowRight } from 'lucide-react';
|
|
|
6394
6597
|
// nuxt.config.ts
|
|
6395
6598
|
import tailwindcss from '@tailwindcss/vite';
|
|
6396
6599
|
|
|
6600
|
+
import { wirelayer } from '@wirecore/wirelayer-recipes/vite';
|
|
6601
|
+
|
|
6397
6602
|
export default defineNuxtConfig({
|
|
6398
|
-
|
|
6399
|
-
|
|
6603
|
+
// main.css: @import 'tailwindcss'; @import '@wirecore/wirelayer-vue/theme.css';
|
|
6604
|
+
// @import '@wirecore/wirelayer-vue/fonts.css'; – or styles.css with all classes, without the plugin
|
|
6605
|
+
css: ['~/assets/main.css'],
|
|
6606
|
+
vite: { plugins: [wirelayer(), tailwindcss()] },
|
|
6400
6607
|
});
|
|
6401
6608
|
```
|
|
6402
6609
|
|
|
@@ -6479,6 +6686,31 @@ Every component consists of named parts of its recipe (`base`, `icon`, `row`, `t
|
|
|
6479
6686
|
The names are the exports of the recipes (`button`, `iconButton`, `dataTable` …) and are checked by TypeScript, as are
|
|
6480
6687
|
the variants and parts. Your own components use the same through `useRecipe('button', button)`.
|
|
6481
6688
|
|
|
6689
|
+
`variants` adds classes for single values of a variant, `compoundVariants` for combinations – instead of selectors on
|
|
6690
|
+
the recipe's own classes, which break when they change:
|
|
6691
|
+
|
|
6692
|
+
```ts
|
|
6693
|
+
const recipes: RecipeConfig = {
|
|
6694
|
+
// only the medium size: 42px high, 16px text
|
|
6695
|
+
button: {
|
|
6696
|
+
variants: { size: { md: { base: 'h-[2.625rem] text-base' } } },
|
|
6697
|
+
compoundVariants: [{ size: ['sm', 'md'], shape: 'rounded', classes: { base: 'rounded-md' } }],
|
|
6698
|
+
},
|
|
6699
|
+
input: { variants: { size: { md: { base: 'h-[2.625rem]' } }, invalid: { true: { base: 'border-2' } } } },
|
|
6700
|
+
};
|
|
6701
|
+
```
|
|
6702
|
+
|
|
6703
|
+
Per part the classes come in this order: `classes`, the matching `variants` and `compoundVariants`, the states of the
|
|
6704
|
+
recipe, the overrides of states (`invalid: { true: … }`), and last the class passed to the component. Inner providers
|
|
6705
|
+
extend outer ones (classes of the same value are joined, the inner ones win).
|
|
6706
|
+
|
|
6707
|
+
Classes from a provider or `classes` change the look, not the states: the classes of an active state variant
|
|
6708
|
+
(`invalid`, `success`, `disabled`, `readOnly`, `current`, `selected`, `checked`, `loading`) are added after them, so a
|
|
6709
|
+
field with `classes: { base: 'border-line-2' }` still turns red when it is invalid. States that the components mark as
|
|
6710
|
+
attributes (`data-invalid:`, `data-disabled:`, `data-[state=checked]:`) win through their selector anyway. Only the
|
|
6711
|
+
class passed to the component itself (`class`/`className`) comes after the states – the way out when a single field
|
|
6712
|
+
should look different in every state.
|
|
6713
|
+
|
|
6482
6714
|
### Hooks and composables
|
|
6483
6715
|
|
|
6484
6716
|
Around 40 hooks (React) and composables (Vue) with the same names and the same logic – for your own components and
|
|
@@ -6857,6 +7089,56 @@ WireLayer is licensed under the MIT license. The fonts shipped with `@wirecore/w
|
|
|
6857
7089
|
JetBrains Mono) are licensed under the SIL Open Font License 1.1 (`dist/fonts/OFL.txt`). Optional peer dependencies such
|
|
6858
7090
|
as `pdfjs-dist` (Apache-2.0), Chart.js, Tiptap and Shiki are installed by the app itself – with their own licenses.
|
|
6859
7091
|
|
|
7092
|
+
### Components and APIs side by side
|
|
7093
|
+
|
|
7094
|
+
| PrimeVue | WireLayer |
|
|
7095
|
+
| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
|
|
7096
|
+
| `<Button label icon="pi pi-x">` | the label as slot text, `:leading-icon` with a Lucide component (`@lucide/vue`) |
|
|
7097
|
+
| `severity` / `text` / `outlined` | `color` – or `variant="text"` / `variant="outline"` |
|
|
7098
|
+
| Icon button + `v-tooltip` | `<Tooltip content><IconButton :icon label /></Tooltip>` – `label` is the accessible name (often the tooltip text) |
|
|
7099
|
+
| `Button :loading` | `loading` on `Button` and `IconButton` (stays focusable, ignores clicks) |
|
|
7100
|
+
| `Card` with `#title`/`#content` | `Card` with the default slot and an own heading |
|
|
7101
|
+
| `InputText`, `Password`, `InputNumber`, `InputChips`, `SelectButton`, `RadioButton` | `Input`, `PasswordInput`, `NumberInput`, `TagsInput`, `SegmentedControl`, `RadioGroup` + `RadioGroupItem` |
|
|
7102
|
+
| `IconField` + `InputIcon` | `Input :leading-icon` |
|
|
7103
|
+
| `Select :options optionLabel optionValue` | `Select :items item-label item-value` (object values: `value-key`) |
|
|
7104
|
+
| `Message severity` | `Alert status` (`error` → `danger`) |
|
|
7105
|
+
| `Tag` | `Badge` |
|
|
7106
|
+
| `Dialog v-model:visible header` | `Dialog v-model:open` + `DialogContent title size` (`hide-title` keeps the title for screen readers only) |
|
|
7107
|
+
| `Toolbar` as a container | a plain `div` – WireLayer's `Toolbar` is `role="toolbar"` (one tab stop, arrow keys) |
|
|
7108
|
+
| `useToast().add({ severity, summary, detail, life })` | `toast({ type, title, description, duration })`, `<Toaster />` once in the app |
|
|
7109
|
+
| `useConfirm().require({ … })` | `await confirm({ title, description, … })`, `<ConfirmDialog />` once in the app |
|
|
7110
|
+
| `DataTable` + `Column` | `DataTable :columns` (column objects), `#cell-<id>`, `#expansion`, `v-model:page-size` |
|
|
7111
|
+
| `expandedRows` with a row toggler on some rows | `#expansion` + `row-expandable` |
|
|
7112
|
+
| `paginatorTemplate` (first/last page) | `paginator-edges`, `paginator-align` |
|
|
7113
|
+
| `showGridlines` (with the outer border) | `gridlines` + `bordered` |
|
|
7114
|
+
| `FilterMatchMode`, `filters` | `v-model:global-filter`, column `filter`/`filterOptions`, `filter-display="row"` |
|
|
7115
|
+
| `@primevue/forms` + `zodResolver` | TanStack Form with Zod directly as a Standard Schema, `FormField` + `bindInput`/`bindValue` |
|
|
7116
|
+
| `pt` (pass-through) | `classes` per part, `RecipesProvider` for all components below it |
|
|
7117
|
+
| Theme preset (`definePreset`) | `--wc-*` tokens, `defineTheme`, the component variables (_Foundations › Themes_) |
|
|
7118
|
+
| `darkModeSelector` (a class) | `data-mode` on `<html>` |
|
|
7119
|
+
| `tailwindcss-primeui` (`bg-surface-*`, `text-muted-color`) | semantic tokens: `bg-card`, `bg-bg-2`, `text-muted`, `border-line` … |
|
|
7120
|
+
|
|
7121
|
+
### Pitfalls
|
|
7122
|
+
|
|
7123
|
+
- **An empty choice is `null`, not `''`.** For PrimeVue's Select `''` means "nothing chosen"; WireLayer's Select treats
|
|
7124
|
+
`''` as a value (it warns in development that it is not among the items). Use `null`.
|
|
7125
|
+
- **TanStack fields start with `''`.** A required text in Zod therefore needs `.min(1)` – `z.string()` alone accepts
|
|
7126
|
+
the empty field.
|
|
7127
|
+
- **Fonts:** set your own with `@theme { --font-sans: … }`. Import `theme.css` instead of `styles.css` (with the
|
|
7128
|
+
sources files, or the Vite plugin `@wirecore/wirelayer-recipes/vite`) so the WireLayer fonts are not bundled
|
|
7129
|
+
(_Getting started › Welcome › Smaller CSS_).
|
|
7130
|
+
- **Card spacing:** `Card` puts a `gap` between its direct children – wrap content that should sit tight in one
|
|
7131
|
+
element.
|
|
7132
|
+
- **Overrides go per part and per variant.** `classes: { base: 'rounded-md' }` reaches every size; only the medium size
|
|
7133
|
+
with `variants: { size: { md: { base: '…' } } }` – no selectors on the recipe's own classes. States such as `invalid`
|
|
7134
|
+
stay visible over such classes; only `class` on the component itself replaces them.
|
|
7135
|
+
- **Sizes and corners in one place:** the height, text and corners of buttons and fields per size, the corners of
|
|
7136
|
+
rounded buttons, the padding of cards and the backdrop of dialogs are CSS variables (`--wc-control-h-md` …).
|
|
7137
|
+
- **Labels:** wrap a control in `Field` (it links label, description and error). A native `<label for>` works with the
|
|
7138
|
+
control's own `id`; date fields, sliders and groups need `Field` or `aria-label`.
|
|
7139
|
+
- **Brand colours:** `checkTheme` lists the pairs below WCAG AA, `suggestThemeFixes` the nearest colours (and `on-*`
|
|
7140
|
+
colours) that meet them – an orange `primary` with white text, common in PrimeVue themes, does not.
|
|
7141
|
+
|
|
6860
7142
|
### Custom theme
|
|
6861
7143
|
|
|
6862
7144
|
A theme overrides any colors per mode. `themeToCss` generates the CSS for it,
|
|
@@ -6882,3 +7164,47 @@ writeFileSync('brand.css', themeToCss(brand));
|
|
|
6882
7164
|
```
|
|
6883
7165
|
|
|
6884
7166
|
All bundled themes pass this check in both modes.
|
|
7167
|
+
|
|
7168
|
+
When a pair misses its contrast, `suggestThemeFixes` says how to fix it: per pair the nearest variant of a colour that
|
|
7169
|
+
meets it – its lightness moved in OKLCH, the hue kept – and, where text sits on the colour, a light or dark `on-*`
|
|
7170
|
+
colour. A suggestion never breaks a pair that passed:
|
|
7171
|
+
|
|
7172
|
+
```ts
|
|
7173
|
+
import { suggestThemeFixes } from '@wirecore/wirelayer-tokens';
|
|
7174
|
+
|
|
7175
|
+
suggestThemeFixes(brand);
|
|
7176
|
+
// [{ name: 'primary: text-on-primary on bg-primary', mode: 'light', ratio: 2.6, min: 4.5,
|
|
7177
|
+
// color: { token: 'primary', value: '#a35c00', ratio: 4.5 },
|
|
7178
|
+
// on: { token: 'on-primary', value: '#050505', ratio: 8.1 } }, …]
|
|
7179
|
+
```
|
|
7180
|
+
|
|
7181
|
+
### Component sizes and shapes
|
|
7182
|
+
|
|
7183
|
+
Besides the colors, a few measures that a brand usually changes are CSS variables. Without them every component looks as
|
|
7184
|
+
before – their defaults are the values of the recipes. Set them on `:root` (all pages), on a `[data-theme]` or on any
|
|
7185
|
+
element (that part of the page):
|
|
7186
|
+
|
|
7187
|
+
```css
|
|
7188
|
+
:root {
|
|
7189
|
+
--wc-control-h-md: 2.625rem; /* buttons and fields of the medium size: 42px */
|
|
7190
|
+
--wc-control-text-md: 1rem;
|
|
7191
|
+
--wc-control-radius-md: 0.375rem;
|
|
7192
|
+
--wc-button-radius: 0.375rem;
|
|
7193
|
+
--wc-card-p: 1.25rem;
|
|
7194
|
+
--wc-backdrop: rgb(0 0 0 / 0.4);
|
|
7195
|
+
}
|
|
7196
|
+
```
|
|
7197
|
+
|
|
7198
|
+
| Variable | Default | Applies to |
|
|
7199
|
+
| ----------------------------------------------------- | -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
7200
|
+
| `--wc-control-h-sm` / `-md` / `-lg` | `2rem` / `2.5rem` / `3rem` | Height of the sizes sm, md, lg: Button, IconButton, Input, NativeSelect, Select, MultiSelect, Combobox, NumberInput, PasswordInput, the date and time fields, ColorPicker, TagsInput (minimum) |
|
|
7201
|
+
| `--wc-control-radius-sm` / `-md` / `-lg` | `6px` / `8px` / `10px` | Corners of the fields above and of Textarea (not of buttons) |
|
|
7202
|
+
| `--wc-control-text-sm` / `-md` / `-lg` | `13px` / `15px` / `16px` | Text in the fields above and in Textarea |
|
|
7203
|
+
| `--wc-button-radius` | `8px` | Corners of Button and IconButton with `shape="rounded"` (`pill` and `square` stay) |
|
|
7204
|
+
| `--wc-card-p` | `1.5rem` | Padding of Card |
|
|
7205
|
+
| `--wc-backdrop` | `rgb(0 0 0 / 0.6)` | Dimming behind Dialog, Drawer and ConfirmDialog |
|
|
7206
|
+
| `--radius-card` / `--radius-panel` / `--radius-popup` | `20px` / `28px` / `12px` | Corners of cards, panels and popups (menus, lists, popovers) |
|
|
7207
|
+
| `--wc-dialog-w` | by `size` | Width of a DialogContent |
|
|
7208
|
+
|
|
7209
|
+
The rest – the padding of a dialog or of table cells, the size of a single variant – is set per part with `classes` or
|
|
7210
|
+
`RecipesProvider` (_Getting started › Welcome › Customizing_). The React Native components keep their fixed sizes.
|