Skip to content

Commit d55dbc2

Browse files
committed
Merge branch 'master' into dev
2 parents bd9037c + 61de6a6 commit d55dbc2

33 files changed

Lines changed: 362 additions & 183 deletions

File tree

lerna.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,5 +13,5 @@
1313
}
1414
},
1515
"npmClient": "pnpm",
16-
"version": "4.0.2"
16+
"version": "4.0.4"
1717
}

packages/api-generator/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "@vuetify/api-generator",
33
"type": "module",
4-
"version": "4.0.2",
4+
"version": "4.0.4",
55
"private": true,
66
"description": "",
77
"scripts": {

packages/docs/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"description": "A Vue.js project",
55
"private": true,
66
"author": "John Leider <john@vuetifyjs.com>",
7-
"version": "4.0.2",
7+
"version": "4.0.4",
88
"repository": {
99
"type": "git",
1010
"url": "git+https://github.com/vuetifyjs/vuetify.git",

packages/docs/src/components/home/Sponsors.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@
4848
v-bind="hoverProps"
4949
:append-icon="isHovering ? 'mdi-heart' : 'mdi-heart-outline'"
5050
:text="t('home.sponsors.become-sponsor')"
51+
:to="rpath('/introduction/sponsors-and-backers/')"
5152
class="text-none mt-9"
5253
color="primary"
5354
rounded="lg"

packages/docs/src/data/new-in.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@
341341
"closable": "4.0.0",
342342
"closeText": "4.0.0",
343343
"gap": "4.0.0",
344-
"totalVisible": "3.11.0"
344+
"totalVisible": "4.0.0"
345345
}
346346
},
347347
"VStepper": {

packages/docs/src/examples/v-chip/prop-colored.vue

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,5 +42,3 @@
4242
</v-chip>
4343
</div>
4444
</template>
45-
<script setup lang="ts">
46-
</script>

packages/docs/src/examples/v-chip/prop-sizes.vue

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,5 +69,3 @@
6969
</v-chip>
7070
</div>
7171
</template>
72-
<script setup lang="ts">
73-
</script>

packages/docs/src/examples/v-infinite-scroll/usage.vue

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,6 @@
4747
const props = computed(() => {
4848
return {
4949
height: 300,
50-
items: 'items',
5150
onLoad: 'load',
5251
}
5352
})
@@ -63,7 +62,7 @@
6362
})
6463
6564
const code = computed(() => {
66-
return `<v-infinite-scroll>${slots.value}</v-infinite-scroll>`
65+
return `<v-infinite-scroll${propsToString(props.value)}>${slots.value}</v-infinite-scroll>`
6766
})
6867
6968
const script = computed(() => {
Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
<template>
2+
<v-layout>
3+
<v-app-bar density="compact" title="My Website">
4+
<v-btn
5+
v-for="group in groups"
6+
:key="group.name"
7+
:text="group.name"
8+
append-icon="mdi-chevron-down"
9+
@focus="activate($event, group)"
10+
@mouseenter="activate($event, group)"
11+
@mouseleave="delayedClose()"
12+
></v-btn>
13+
</v-app-bar>
14+
15+
<v-menu
16+
v-model="menu"
17+
:activator="activator"
18+
:content-class="{ 'menu-move-transition': menuMoving }"
19+
location="bottom end"
20+
offset="4"
21+
viewport-margin="0"
22+
>
23+
<v-list
24+
:items="menuItems"
25+
class="py-1"
26+
density="compact"
27+
rounded="lg"
28+
border
29+
@mouseenter="onListEnter()"
30+
@mouseleave="delayedClose()"
31+
>
32+
<template v-slot:append>
33+
<v-icon icon="mdi-arrow-top-right"></v-icon>
34+
</template>
35+
</v-list>
36+
</v-menu>
37+
38+
<v-main>
39+
<!-- Main Content -->
40+
</v-main>
41+
</v-layout>
42+
</template>
43+
44+
<script setup>
45+
import { ref } from 'vue'
46+
47+
const menu = ref(false)
48+
const activator = ref()
49+
const menuItems = ref([])
50+
const menuMoving = ref(false)
51+
52+
const groups = [
53+
{
54+
name: 'Home',
55+
submenu: [
56+
{ title: 'Welcome', value: 'welcome' },
57+
{ title: 'Updates', value: 'latest' },
58+
],
59+
},
60+
{
61+
name: 'About Me',
62+
submenu: [
63+
{ title: 'Bio', value: 'bio' },
64+
{ title: 'Resume', value: 'resume' },
65+
{ title: 'Skills', value: 'skills' },
66+
],
67+
},
68+
{
69+
name: 'Blog',
70+
submenu: [
71+
{ title: 'All Posts', value: 'all-posts' },
72+
{ title: 'Tech', value: 'tech-posts' },
73+
{ title: 'Life', value: 'life-posts' },
74+
],
75+
},
76+
]
77+
78+
let closeTimeout = -1
79+
let movingTimeout = -1
80+
function activate ({ currentTarget }, group) {
81+
clearTimeout(closeTimeout)
82+
83+
clearTimeout(movingTimeout)
84+
if (menu.value) {
85+
menuMoving.value = true
86+
movingTimeout = window.setTimeout(() => menuMoving.value = false, 300)
87+
}
88+
89+
activator.value = currentTarget
90+
menuItems.value = group.submenu
91+
menu.value = true
92+
}
93+
94+
function onListEnter () {
95+
clearTimeout(closeTimeout)
96+
}
97+
98+
function delayedClose () {
99+
clearTimeout(closeTimeout)
100+
closeTimeout = window.setTimeout(() => menu.value = false, 600)
101+
}
102+
</script>
103+
104+
<style>
105+
.menu-move-transition {
106+
transition: 0.2s ease-out;
107+
transition-property: left, top;
108+
}
109+
</style>

packages/docs/src/examples/v-navigation-drawer/prop-rail-variant.vue

Lines changed: 37 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
<v-navigation-drawer
55
v-model="drawer"
66
:rail="rail"
7+
:rail-width="wider ? 80 : undefined"
8+
color="indigo"
79
permanent
810
@click="rail = false"
911
>
@@ -12,8 +14,15 @@
1214
prepend-avatar="https://randomuser.me/api/portraits/men/85.jpg"
1315
title="John Leider"
1416
>
17+
<template v-slot:prepend>
18+
<v-avatar
19+
:class="{ 'mx-1': wider }"
20+
:size="(wider && rail) ? 40 : undefined"
21+
></v-avatar>
22+
</template>
1523
<template v-slot:append>
1624
<v-btn
25+
:inert="rail"
1726
icon="mdi-chevron-left"
1827
variant="text"
1928
@click.stop="rail = !rail"
@@ -26,23 +35,25 @@
2635

2736
<v-list density="compact" nav>
2837
<v-list-item
29-
prepend-icon="mdi-home-city"
30-
title="Home"
31-
value="home"
32-
></v-list-item>
33-
<v-list-item
34-
prepend-icon="mdi-account"
35-
title="My Account"
36-
value="account"
37-
></v-list-item>
38-
<v-list-item
39-
prepend-icon="mdi-account-group-outline"
40-
title="Users"
41-
value="users"
38+
v-for="item in items"
39+
:key="item.value"
40+
:class="{ 'pl-5': wider }"
41+
:prepend-icon="item.icon"
42+
:title="item.title"
43+
:value="item.value"
4244
></v-list-item>
4345
</v-list>
4446
</v-navigation-drawer>
45-
<v-main style="height: 250px"></v-main>
47+
48+
<v-main style="height: 250px">
49+
<div class="ml-16">
50+
<v-switch
51+
v-model="wider"
52+
color="success"
53+
label="Wider (80px)"
54+
></v-switch>
55+
</div>
56+
</v-main>
4657
</v-layout>
4758
</v-card>
4859
</template>
@@ -52,6 +63,12 @@
5263
5364
const drawer = ref(true)
5465
const rail = ref(true)
66+
const wider = ref(false)
67+
const items = [
68+
{ icon: 'mdi-home-city', title: 'Home', value: 'home' },
69+
{ icon: 'mdi-account', title: 'My Account', value: 'account' },
70+
{ icon: 'mdi-account-group-outline', title: 'Users', value: 'users' },
71+
]
5572
</script>
5673

5774
<script>
@@ -60,6 +77,12 @@
6077
return {
6178
drawer: true,
6279
rail: true,
80+
wider: true,
81+
items: [
82+
{ icon: 'mdi-home-city', title: 'Home', value: 'home' },
83+
{ icon: 'mdi-account', title: 'My Account', value: 'account' },
84+
{ icon: 'mdi-account-group-outline', title: 'Users', value: 'users' },
85+
],
6386
}
6487
},
6588
}

0 commit comments

Comments
 (0)