Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
7756a24
Merge branch 'master' into dev
J-Sek Feb 28, 2026
ea266dc
Merge branch 'master' into dev
J-Sek Mar 2, 2026
82ffc22
feat(VColorPicker): add `hide-input-labels` prop
J-Sek Mar 3, 2026
ac6dd31
Merge branch 'master' into dev
J-Sek Mar 4, 2026
91a866b
Merge branch 'master' into dev
J-Sek Mar 8, 2026
a22049e
Merge branch 'master' into dev
J-Sek Mar 12, 2026
105a8b8
feat(VProgressLinear): add `split` variant to align with MD3 (#22662)
Haviles04 Mar 12, 2026
7483e9d
Merge branch 'master' into dev
J-Sek Mar 16, 2026
237cd67
Merge branch 'master' into dev
J-Sek Mar 17, 2026
d4c3dab
Merge branch 'master' into dev
KaelWD Mar 19, 2026
ca399e5
feat(VCommandPalette, VOverlay): introduce viewport location strategy…
MatthewAry Mar 16, 2026
13c9af0
fix(VOverlay): make `location` and `origin` actually useful (#22720)
J-Sek Mar 19, 2026
bd9037c
feat(rounded): accept arbitrary values (#22721)
J-Sek Mar 25, 2026
d55dbc2
Merge branch 'master' into dev
J-Sek Mar 25, 2026
a50ce33
Merge branch 'master' into dev
J-Sek Mar 25, 2026
11d3bae
Merge branch 'master' into dev
J-Sek Mar 28, 2026
4dbc61f
feat(VFileUpload): add `loading` prop
J-Sek Mar 28, 2026
a8c1ad9
fix(Dialog, VSnackbar): correct position with static location strategy
J-Sek Mar 28, 2026
4c5228c
fix(VOverlay): `contained` should opt-out from static strategy
J-Sek Mar 28, 2026
86800d9
docs(SearchDialog): keep it snapped to the top
J-Sek Mar 29, 2026
a7ecdc3
Merge branch 'master' into dev
J-Sek Apr 2, 2026
c8a245c
feat(VPagination, VDataTableFooter): ability to hide last page (#22788)
userquin Apr 6, 2026
5e6c790
chore(VPagination): use `data-testid` instead of `data-test`
J-Sek Apr 6, 2026
66f09ce
fix(VSnackbarQueue): avoid stale z-index (#22796)
J-Sek Apr 11, 2026
327d648
feat(VTreeview): bind indentLines to item slot
J-Sek Apr 21, 2026
e7b5906
Merge branch 'master' into dev
KaelWD Apr 22, 2026
cd7b8ca
feat(VExpansionPanels): add more props for customization (#22723)
J-Sek Apr 23, 2026
342c20b
feat(VTooltip): `target="cursor"` should work for hoverable tooltips …
J-Sek Apr 23, 2026
c651933
fix(VCheckbox): align indeterminate opacity and color with MD3 (#22804)
J-Sek Apr 27, 2026
ff04a2c
feat(VNumberInput): add `grouping` prop (#22134)
J-Sek Apr 29, 2026
50508e3
feat(VExpansionPanelTitle): add hover prop to disable hover effect
selfAnnihilator Apr 30, 2026
4b9862b
Merge branch 'master' into feat/expansion-panel-hover-prop-v2
selfAnnihilator Apr 30, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions packages/api-generator/src/locale/en/VColorPicker.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
"hideCanvas": "Hides canvas.",
"hideEyeDropper": "Hides eyedropper icon.",
"hideSliders": "Hides sliders.",
"hideInputLabels": "Hides input labels.",
"hideInputs": "Hides inputs.",
"mode": "The current selected input type. Syncable with `v-model:mode`.",
"modes": "Sets available input types.",
Expand Down
3 changes: 2 additions & 1 deletion packages/api-generator/src/locale/en/VCommandPalette.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
"modelValue": "Controls the visibility of the command palette dialog. Use `v-model` for two-way binding.",
"noDataText": "Text displayed when no items match the current search query.",
"placeholder": "Placeholder text displayed in the search input.",
"search": "The current search query. Use `v-model:search` to control or monitor the search input value."
"search": "The current search query. Use `v-model:search` to control or monitor the search input value.",
"offsetTop": "Distance from the top of the viewport."
},
"events": {
"before-select": "Emitted before the default auto-close behavior for actionable item selection. The payload includes the selected item, the triggering event, and a **preventDefault** callback. Call **preventDefault()** to keep the palette open.",
Expand Down
6 changes: 4 additions & 2 deletions packages/api-generator/src/locale/en/VExpansionPanels.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,12 @@
"props": {
"focusable": "Makes the expansion-panel headers focusable.",
"flat": "Removes the expansion-panel's elevation and borders.",
"gap": "Sets the gap between panels. Hides the divider automatically.",
"modelValue": "Controls expanded panel(s). Defaults to an empty array when using **multiple** prop. It is recommended to set unique `value` prop for the panels inside, otherwise index is used instead.",
"noDivider": "Hides the dividers between adjacent panels.",
"readonly": "Makes the entire expansion panel read only.",
"static": "Remove title size expansion when selected.",
"tile": "Removes the border-radius."
"rounded": "Applies a border radius to the first and last panel. Since v4.1.0 accepts array of two values to customize inner radius.",
"static": "Remove title size expansion when selected."
},
"exposed": {
"prev": "Open the previous panel from the currently selected panel.",
Expand Down
2 changes: 2 additions & 0 deletions packages/api-generator/src/locale/en/VNumberInput.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
"props": {
"controlVariant": "Controls layout of the stepper buttons.",
"decimalSeparator": "Expects single character to be used as decimal separator.",
"grouping": "Enables grouping using current locale or specific character passed to `group-separator`. Note: `'auto'` is recommended over `true`.",
"group-separator": "Expects single character to be used for grouping digits in large numbers.",
"hideInput": "Hide the input field.",
"inset": "Applies an indentation to the dividers used in the stepper buttons.",
"max": "Specifies the maximum allowable value for the input.",
Expand Down
1 change: 1 addition & 0 deletions packages/api-generator/src/locale/en/VOverlay.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
"attach": "Specifies which DOM element the overlay content should teleport to. Can be a direct element reference, querySelector string, or `true` to disable teleporting. Uses `body` by default.",
"closeOnBack": "Closes the overlay content when the browser's back button is pressed or `$router.back()` is called, cancelling the original navigation. `persistent` overlays will cancel navigation and animate as if they were clicked outside instead of closing.",
"contained": "Limits the size of the component and scrim to its offset parent. Implies `absolute` and `attach`. (Note: The parent element must have position: relative.).",
"locationStrategy": "Sets how the overlay content is positioned. Defaults to `static`, which centers content in its container. Use `connected` to attach to an activator element, or `viewport` to position relative to the browser viewport.",
"noClickAnimation": "Disables the bounce effect when clicking outside of the content element when using the persistent prop.",
"opacity": "Sets the opacity of the scrim element. Only applies if `scrim` is enabled.",
"persistent": "Clicking outside of the element or pressing esc key will not deactivate it.",
Expand Down
2 changes: 1 addition & 1 deletion packages/api-generator/src/locale/en/VPagination.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"pageAriaLabel": "Label for each page button.",
"prevIcon": "The icon to use for the prev button.",
"previousAriaLabel": "Label for the previous button.",
"showFirstLastPage": "Show buttons for going to first and last page.",
"showFirstLastPage": "Show buttons for going to first and last page. Since v4.1.0 it accepts `'only-first'`, to only the first page button.",
"start": "Specify the starting page.",
"totalVisible": "Specify the total visible pagination numbers."
},
Expand Down
3 changes: 2 additions & 1 deletion packages/api-generator/src/locale/en/VProgressLinear.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@
"reverse": "Displays reversed progress (right to left in LTR mode and left to right in RTL).",
"roundedBar": "Applies a border radius to the progress bar.",
"stream": "An alternative style for portraying loading that works in tandem with **buffer-value**.",
"striped": "Adds a stripe background to the filled portion of the progress component."
"striped": "Adds a stripe background to the filled portion of the progress component.",
"variant": "Applies a distinct style to the component. **split** visually divides the progress bar at the current value, separating the filled and unfilled portions with a gap."
},
"slots": {
"default": "Provides the current value of the component."
Expand Down
2 changes: 2 additions & 0 deletions packages/api-generator/src/locale/en/VSelectionControl.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@
"description": "Low-level component used by `v-checkbox-btn` and `v-switch` for binary selection with support for indeterminate state as well.",
"props": {
"baseColor": "Sets the color of the input when it is not focused.",
"indeterminate": "Styles the control as an intermediate 'partially selected' state.",
"indeterminateIcon": "The icon used when the control is in the indeterminate state.",
"value": "The value used when the component is selected in a group. If not provided, a unique ID will be used."
},
"slots": {
Expand Down
2 changes: 1 addition & 1 deletion packages/api-generator/src/locale/en/generic.json
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@
"name": "Sets the component's name attribute.",
"noDataText": "Text shown when no items are provided to the component.",
"opacity": "Sets the component's opacity value",
"origin": "Sets the transition origin on the element. You can find more information on the MDN documentation [for transition origin](https://developer.mozilla.org/en-US/docs/Web/CSS/transform-origin).",
"origin": "Sets the anchor point on the overlay content that aligns to the `location` anchor on the target. `auto` uses the opposing side of `location`; `overlap` uses the same anchor, causing the overlay to cover the target. Also sets the CSS `transform-origin` for enter/leave transitions.",
"persistent": "Clicking outside or pressing **esc** key will not dismiss the dialog.",
"persistentCounter": "Forces counter to always be visible.",
"prependGap": "Sets the horizontal spacing between prepend slot and the main content. Also affects indent to ensure expected alignment of group children.",
Expand Down
2 changes: 1 addition & 1 deletion packages/api-generator/src/locale/en/rounded.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"props": {
"rounded": "Designates the **border-radius** applied to the component. This can be **0**, **xs**, **sm**, true, **lg**, **xl**, **pill**, **circle**, and **shaped**. Find more information on available border radius classes on the [Border Radius page](/styles/border-radius).",
"rounded": "Designates the **border-radius** applied to the component. You can use the predefined sizes **0**, **xs**, **sm**, **md**, **lg**, **xl**, **pill**, **circle**, and **shaped**, pass `true` for the component default. Since v4.1 you can also provide any valid CSS value (e.g. `8px`, `50%`, `1em`) or number (converted to `px`). Find more information on available border radius classes on the [Border Radius page](/styles/border-radius).",
"tile": "Removes any applied **border-radius** from the component."
}
}
3 changes: 2 additions & 1 deletion packages/docs/src/components/app/search/SearchDialog.vue
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@
<v-dialog
v-model="model"
activator="parent"
content-class="overflow-visible align-self-start mt-16"
content-class="overflow-visible mt-16"
location="top center"
max-height="900"
width="600"
scrollable
Expand Down
34 changes: 29 additions & 5 deletions packages/docs/src/data/new-in.json
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,8 @@
"props": {
"hideEyeDropper": "3.10.0",
"eyeDropperIcon": "3.10.0",
"hideTitle": "3.10.0"
"hideTitle": "3.10.0",
"hideInputLabels": "4.1.0"
}
},
"VCombobox": {
Expand Down Expand Up @@ -132,6 +133,7 @@
"headerProps": "3.5.0",
"initialSortOrder": "3.11.0",
"pageBy": "3.12.0",
"showFirstLastPage": "4.1.0",
"sortIcon": "3.12.0"
},
"slots": {
Expand All @@ -146,6 +148,7 @@
"groupExpandIcon": "3.10.0",
"initialSortOrder": "3.11.0",
"pageBy": "3.12.0",
"showFirstLastPage": "4.1.0",
"sortIcon": "3.12.0"
},
"slots": {
Expand Down Expand Up @@ -182,7 +185,15 @@
},
"VExpansionPanels": {
"props": {
"static": "3.4.0"
"static": "3.4.0",
"gap": "4.1.0",
"hover": "4.1.0",
"noDivider": "4.1.0"
}
},
"VExpansionPanelTitle": {
"props": {
"hover": "4.1.0"
}
},
"VField": {
Expand All @@ -199,7 +210,11 @@
},
"VFileUpload": {
"props": {
"filterByType": "3.10.0"
"filterByType": "3.10.0",
"loading": "4.1.0"
},
"slots": {
"loader": "4.1.0"
}
},
"VIcon": {
Expand Down Expand Up @@ -255,7 +270,9 @@
},
"VNumberInput": {
"props": {
"autocomplete": "3.10.0"
"autocomplete": "3.10.0",
"grouping": "4.1.0",
"groupSeparator": "4.1.0"
}
},
"VOtpInput": {
Expand Down Expand Up @@ -287,7 +304,8 @@
"props": {
"chunkCount": "3.10.0",
"chunkGap": "3.10.0",
"chunkWidth": "3.10.0"
"chunkWidth": "3.10.0",
"variant": "4.1.0"
}
},
"VRow": {
Expand All @@ -307,6 +325,12 @@
"menu-footer": "3.12.0"
}
},
"VSelectionControl": {
"props": {
"indeterminate": "4.1.0",
"indeterminateIcon": "4.1.0"
}
},
"VSlider": {
"events": {
"start": "3.2.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
v-model="model"
:items="items"
:search-props="{ autocomplete: 'off' }"
hotkey="ctrl+/"
hotkey="ctrl+slash"
max-width="500"
placeholder="Remind me..."
>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
v-model="model"
:filter-keys="['raw.name', 'raw.username']"
:items="items"
class="pa-2"
hotkey="alt+g"
item-title="name"
item-value="name"
Expand All @@ -17,7 +18,7 @@
What are you looking for?
</div>

<v-chip-group class="pl-2 mt-n1 mb-1">
<v-chip-group class="pl-2 mt-n1 mb-1 flex-1-0">
<v-chip
v-for="c in ['People', 'Files', 'Actions']"
:key="c"
Expand Down
17 changes: 17 additions & 0 deletions packages/docs/src/examples/v-expansion-panels/prop-rounded-gap.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<template>
<v-container>
<v-expansion-panels
:rounded="[20, 8]"
gap="8"
variant="accordion"
static
>
<v-expansion-panel
v-for="i in 3"
:key="i"
text="Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat."
title="Item"
></v-expansion-panel>
</v-expansion-panels>
</v-container>
</template>
17 changes: 17 additions & 0 deletions packages/docs/src/examples/v-file-upload/prop-loading.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<template>
<v-container>

<v-file-upload
:disabled="disabled"
:loading="loading"
></v-file-upload>

<v-switch v-model="loading" label="Loading"></v-switch>
</v-container>
</template>

<script setup>
import { shallowRef } from 'vue'

const loading = shallowRef(false)
</script>
45 changes: 45 additions & 0 deletions packages/docs/src/examples/v-number-input/prop-grouping.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<template>
<v-container fluid>
<v-row wrap>

<v-col cols="12" md="4" sm="6">
<h5 class="mt-0 mb-2">grouping="min2"</h5>
<v-number-input
v-model="example1"
:precision="0"
grouping="min2"
></v-number-input>
</v-col>

<v-col cols="12" md="4" sm="6">
<h5 class="mt-0 mb-2">custom separator</h5>
<v-number-input
v-model="example2"
:precision="2"
group-separator="'"
grouping="auto"
></v-number-input>
</v-col>

<v-col cols="12" md="4" sm="6">
<h5 class="mt-0 mb-2">locale="de"</h5>
<v-locale-provider locale="de">
<v-number-input
v-model="example3"
:precision="2"
grouping="auto"
></v-number-input>
</v-locale-provider>
</v-col>

</v-row>
</v-container>
</template>

<script setup>
import { ref } from 'vue'

const example1 = ref(10000)
const example2 = ref(12300000)
const example3 = ref(250000.5)
</script>
3 changes: 2 additions & 1 deletion packages/docs/src/examples/v-progress-linear/usage.vue
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,14 @@
const color = ref()
const indeterminate = ref(false)
const height = ref()
const options = []
const options = ['split']
const props = computed(() => {
return {
color: color.value || undefined,
indeterminate: indeterminate.value || undefined,
'model-value': !indeterminate.value ? '20' : undefined,
height: height.value !== 4 ? height.value : undefined,
variant: model.value === 'default' ? undefined : model.value,
}
})

Expand Down
6 changes: 6 additions & 0 deletions packages/docs/src/pages/en/components/expansion-panels.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,12 @@ There are four different variants of the expansion-panel. Accordion expansion-pa

<ExamplesExample file="v-expansion-panels/prop-variant" />

#### Gap

Use **gap** to add spacing between accordion panels. Can be combined with `:rounded="[outerRadius, innerRadius]"` to adjust the panels corner rounding.

<ExamplesExample file="v-expansion-panels/prop-rounded-gap" />

#### Disabled

Both the expansion-panel and its content can be disabled using the **disabled** prop.
Expand Down
6 changes: 6 additions & 0 deletions packages/docs/src/pages/en/components/file-upload.md
Original file line number Diff line number Diff line change
Expand Up @@ -74,6 +74,12 @@ Use the **browse-text**, **divider-text**, **icon**, **title**, or **subtitle**

<ExamplesExample file="v-file-upload/prop-content" />

#### Loading

The **loading** prop displays a progress indicator on the component. Unlike other components, the loading state does not disable interactions; files can still be browsed and dropped.

<ExamplesExample file="v-file-upload/prop-loading" />

#### Inset file list

The **inset-file-list** prop renders the file list inside the dropzone instead of below it.
Expand Down
6 changes: 6 additions & 0 deletions packages/docs/src/pages/en/components/number-inputs.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,3 +94,9 @@ The `step` prop behaves the same as the `step` attribute in the `<input type="nu
The `precision` prop enforces strict precision. It is expected to be an integer value in range between `0` and `15`. Input will prevent user from typing or pasting an invalid value.

<ExamplesExample file="v-number-input/prop-precision" />

#### Grouping

The `grouping` prop enables digit grouping (e.g. thousands separators). The value is passed to [Intl.NumberFormat](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#usegrouping) - `"auto"` should be preferred over `true`. Use `group-separator` to override the separator character.

<ExamplesExample file="v-number-input/prop-grouping" />
6 changes: 4 additions & 2 deletions packages/docs/src/pages/en/components/overlays.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ In its simplest form, the `v-overlay` component will add a dimmed layer over you

## Activator

Overlays can be opened with v-model, or by clicking or hovering on an activator element. An activator is mandatory for the connected locationLocation strategy. The activator element (if present) will also be used by some transitions to slide or scale from the activator's location instead of the middle of the screen.
Overlays can be opened with v-model, or by clicking or hovering on an activator element. An activator is mandatory for the connected location strategy. The activator element (if present) will also be used by some transitions to slide or scale from the activator's location instead of the middle of the screen.

Related props:

Expand Down Expand Up @@ -81,7 +81,9 @@ For more manual control, the slot can be used instead. `props` is an object cont

`location-strategy="static"`

Overlay content is absolutely positioned to the center of its container by default.
Overlay content is positioned relative to the browser viewport. `location` selects a side and alignment
while `origin` helps control transition - e.g. you may want the dialog to appear from the left when snapped
to the left edge.

### Connected

Expand Down
4 changes: 4 additions & 0 deletions packages/docs/src/pages/en/components/progress-linear.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,10 @@ The primary value is controlled by **v-model**, whereas the buffer is controlled

The component can be split into chunks using `chunk-count` or `chunk-width`. Visible progress is snapped to the last filled chunk.

::: warning
The **chunk-count** and **chunk-width** props have no effect when using **variant="split"**.
:::

<ExamplesExample file="v-progress-linear/prop-chunks" />

#### Colors
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ This is not an exhaustive list of compatible browsers, but the main targeted one
| Other Browsers | | ❓ Not officially supported |

<p class="text-body-small">* All browsers on iOS use WebKit and have the same support as Safari</p>
<p class="text-body-small">** Some components may have incorrect colors due to lack of support for <AppLink href="https://www.w3.org/TR/css-color-5/#relative-colors">relative color syntax</AppLink> (e.g. <v-code>rgb(from ...)</v-code>)</p>
<p class="text-body-small">** Some components may have incorrect colors due to lack of support for <AppLink href="https://www.w3.org/TR/css-color-5/#relative-colors">relative color syntax</AppLink> (e.g. <v-code>rgb(from ...)</v-code>). VNumberInput locale-aware grouping requires <v-code>Intl.NumberFormat</v-code> with string <v-code>useGrouping</v-code> options (Chrome 106+, Firefox 115+).</p>

This table is updated with minor releases of Vuetify. Chrome, Firefox, and Safari will be supported at least two years back from the Vuetify x.x.0 release date.
Current start date is December 2023.
Expand Down
Loading
Loading