Skip to content

Commit e92856a

Browse files
committed
Merge branch 'master' into dev
2 parents c57bf18 + b62e737 commit e92856a

File tree

34 files changed

+356
-115
lines changed

34 files changed

+356
-115
lines changed

MIGRATION.md

+13-13
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ const opts = {
202202
}
203203
```
204204

205-
* Now defaults to use [mdi](https://materialdesignicons.com/) icons. For information on how to install please navigate [here](https://vuetifyjs.com/customization/icons#install-material-design-icons).
205+
* Now defaults to use [mdi](https://materialdesignicons.com/) icons. For information on how to install please navigate [here](https://vuetifyjs.com/customization/icons#install-material-design-icons)
206206
* Is now located under the **icons** property of the Vuetify options
207207

208208
If you want to use a custom iconfont, you must set it up in the initial Vuetify options now.
@@ -330,11 +330,11 @@ All event names has been changed from camelCase to kebab-case:
330330
- `update:returnValue``update:return-value`
331331

332332
### Activators
333-
* Components with activators, `v-tooltip`, `v-menu`, `v-dialog`, `v-list-group` and `v-bottom-sheet` must now be bound using the new [v-slot](https://vuejs.org/v2/guide/components-slots.html#Named-Slots) syntax.
333+
* Components with activators, `v-tooltip`, `v-menu`, `v-dialog`, `v-list-group` and `v-bottom-sheet` must now be bound using the new [v-slot](https://vuejs.org/v2/guide/components-slots.html#Named-Slots) syntax
334334
* Requires [email protected]
335-
* We understand this is considerably more verbose than the v1.5 counterpart. We are still exploring ways to support the new **v-slot** in a more concise manner.
336-
* You can find more information on the official Vue documentation for [Destructuring Slot Props](https://vuejs.org/v2/guide/components-slots.html#Destructuring-Slot-Props).
337-
* You can find more information on the official Vue documentation for [v-slot](https://vuejs.org/v2/guide/components-slots.html#Named-Slots).
335+
* We understand this is considerably more verbose than the v1.5 counterpart. We are still exploring ways to support the new **v-slot** in a more concise manner
336+
* You can find more information on the official Vue documentation for [Destructuring Slot Props](https://vuejs.org/v2/guide/components-slots.html#Destructuring-Slot-Props)
337+
* You can find more information on the official Vue documentation for [v-slot](https://vuejs.org/v2/guide/components-slots.html#Named-Slots)
338338
* The upside to this change is it is easier to support nested activators and provide proper a11y support
339339

340340
#### Regular activator
@@ -542,29 +542,29 @@ _Developer notes: Was never explicitly listed in API_
542542
Data table (and iterator) have been rewritten from the ground up to be both easier to use and to allow for more flexibilty in more advanced use cases. This has resulted in a number of breaking changes. Some of these are shared between both components while some are unique to each.
543543

544544
#### Shared
545-
* **disable-initial-sort** has been removed. Neither component initially sorts data anymore. Use **sort-by** (or **options**) prop to sort.
546-
* **filter** prop has been removed. Instead use **custom-filter**. This was done in an effort to make custom filtering less confusing.
545+
* **disable-initial-sort** has been removed. Neither component initially sorts data anymore. Use **sort-by** (or **options**) prop to sort
546+
* **filter** prop has been removed. Instead use **custom-filter**. This was done in an effort to make custom filtering less confusing
547547
* The signature for **custom-filter** has changed from `(items: object[], search: string, filter: Filter): object[]` to `(value: any, search: string, item: any) => boolean`
548-
* **pagination** prop has been removed. Instead use the separate props such as **page**, **sort-by**, etc. If you want to provide a single object you can use the new **options** prop instead. **NOTE**: The **options** prop has a different object structure than **pagination**. Check API docs for details.
548+
* **pagination** prop has been removed. Instead use the separate props such as **page**, **sort-by**, etc. If you want to provide a single object you can use the new **options** prop instead. **NOTE**: The **options** prop has a different object structure than **pagination**. Check API docs for details
549549
* **total-items** prop has been renamed to **server-items-length**
550550
* **hide-actions** prop has been renamed to **hide-default-footer**. Also it no longer changes the visible items per page
551551
* Props related to the default footer have been move to the **footer-props** prop. These are:
552552
* **prev-icon**
553553
* **next-icon**
554554
* **rows-per-page-items****items-per-page-options**
555555
* **rows-per-page-text****items-per-page-text**
556-
* The **expand** prop has been removed.
556+
* The **expand** prop has been removed
557557

558558
#### `v-data-iterator`
559559
* The **content-tag**, **content-props**, **content-class** props have been removed. Instead simply use the default scoped slot to implement your intended markup.
560560

561561
#### `v-data-table`
562562
* **items** slot has been renamed to **item**
563563
* **headers** slot renamed to **header**
564-
* **item** slot (and **header**) now require you to define a `<tr>` element. Previously this was optional.
565-
* **expand** slot renamed to **expanded-item**. It no longer includes an expansion transition, and the slot is inside the `<tr>` element so that you can define your own `<td>` columns. To get back to a similar look as in 1.5, you will need a `<td>` with *colspan* equal to the number of columns in your header.
564+
* **item** slot (and **header**) now require you to define a `<tr>` element. Previously this was optional
565+
* **expand** slot renamed to **expanded-item**. It no longer includes an expansion transition, and the slot is inside the `<tr>` element so that you can define your own `<td>` columns. To get back to a similar look as in 1.5, you will need a `<td>` with *colspan* equal to the number of columns in your header
566566
* **hide-header** has been renamed to **hide-default-header**
567-
* **select-all** has been renamed to **show-select**. This will also render a checkbox on each item row as long as you are not defining a slot that overrides the internal row rendering (such as **item** or **body**).
567+
* **select-all** has been renamed to **show-select**. This will also render a checkbox on each item row as long as you are not defining a slot that overrides the internal row rendering (such as **item** or **body**)
568568
* Props related to the default header have been moved to the **header-props** prop. These are:
569569
* **sort-icon**
570570

@@ -777,7 +777,7 @@ _Developer notes: The tabs-items component does not have to be provided and is o
777777
```
778778

779779
#### `v-toolbar`
780-
* All existing scrolling techniques and `app` functionality has been deprecated and moved to `v-app-bar`.
780+
* All existing scrolling techniques and `app` functionality has been deprecated and moved to `v-app-bar`
781781

782782
<h2 id="i-need-help">🆘 I need help!</h2>
783783

lerna.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,6 @@
1313
}
1414
},
1515
"npmClient": "yarn",
16-
"version": "2.1.9",
16+
"version": "2.1.10",
1717
"useWorkspaces": true
1818
}

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"dev": "node scripts/dev.js",
1515
"build": "node scripts/build.js",
1616
"start": "lerna run start --scope vuetifyjs.com --stream",
17-
"lint": "lerna run lint --parallel",
17+
"lint": "lerna run lint --parallel --stream",
1818
"lint:fix": "lerna run lint:fix --parallel",
1919
"version": "node scripts/confirm-npm-tag.js",
2020
"postinstall": "node scripts/post-install.js",

packages/api-generator/package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,21 @@
11
{
22
"name": "@vuetify/api-generator",
3-
"version": "2.1.9",
3+
"version": "2.1.10",
44
"private": true,
55
"description": "",
66
"main": "dist/api.js",
77
"scripts": {
88
"debug": "babel-node inspect src/index.js",
99
"build": "node src/index.js",
10-
"lint": "eslint --ext .js src",
10+
"lint": "eslint --ext .js src -f codeframe --max-warnings 0",
1111
"lint:fix": "yarn lint --fix"
1212
},
1313
"author": "",
1414
"license": "ISC",
1515
"dependencies": {
1616
"deepmerge": "^4.0.0",
1717
"vue": "^2.6.10",
18-
"vuetify": "^2.1.9"
18+
"vuetify": "^2.1.10"
1919
},
2020
"devDependencies": {
2121
"@babel/node": "^7.5.5",

packages/api-generator/src/maps/v-data-table.js

+12-1
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,17 @@ const DataTableHeaderScopedProps = {
3636
},
3737
}
3838

39+
const DataTableFooterScopedProps = {
40+
props: {
41+
options: DataOptions,
42+
pagination: DataDefaultScopedSlotProps.pagination,
43+
itemsPerPageText: 'string',
44+
},
45+
on: '{}',
46+
headers: 'TableHeader[]',
47+
widths: '[]',
48+
}
49+
3950
const DataTableHeaderColumnScopedProps = {
4051
header: 'TableHeader',
4152
}
@@ -85,7 +96,7 @@ const DataTableSlots = [
8596
{ name: 'body.append', props: DataTableBodyScopedProps },
8697
{ name: 'body.prepend', props: DataTableBodyScopedProps },
8798
{ name: 'body', props: DataTableBodyScopedProps },
88-
{ name: 'footer', props: DataDefaultScopedSlotProps },
99+
{ name: 'footer', props: DataTableFooterScopedProps },
89100
{ name: 'footer.page-text', props: DataFooterPageTextScopedProps },
90101
{ name: 'header', props: DataTableHeaderScopedProps },
91102
{ name: 'header.data-table-select', props: DataTableHeaderSelectScopedProps },
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
module.exports = {
2+
'v-snackbar': {
3+
events: [
4+
{
5+
name: 'input',
6+
value: 'boolean',
7+
},
8+
],
9+
},
10+
}

packages/docs/package.json

+4-4
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,16 @@
33
"description": "A Vue.js project",
44
"private": true,
55
"author": "John Leider <[email protected]>",
6-
"version": "2.1.9",
6+
"version": "2.1.10",
77
"scripts": {
88
"dev": "cross-env node --max_old_space_size=4096 server",
99
"start": "cross-env NODE_ENV=production node server",
1010
"build": "rimraf dist && cross-env NODE_ENV=production webpack --config build/webpack.prod.config.js --no-progress --hide-modules",
11-
"lint": "eslint --ext .js,.vue,.json src -f codeframe",
11+
"lint": "eslint --ext .js,.vue,.json src -f codeframe --max-warnings 0",
1212
"lint:fix": "yarn lint --fix"
1313
},
1414
"dependencies": {
15-
"@vuetify/api-generator": "^2.1.9",
15+
"@vuetify/api-generator": "^2.1.10",
1616
"babel-polyfill": "^6.26.0",
1717
"chokidar": "^3.0.2",
1818
"compression": "^1.7.4",
@@ -39,7 +39,7 @@
3939
"vue-router": "^3.0.7",
4040
"vue-server-renderer": "^2.6.10",
4141
"vuelidate": "^0.7.4",
42-
"vuetify": "^2.1.9",
42+
"vuetify": "^2.1.10",
4343
"vuex": "^3.1.1",
4444
"vuex-pathify": "^1.4.0",
4545
"vuex-router-sync": "^5.0.0",

packages/docs/src/components/getting-started/Team.vue

+1
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,7 @@
5959
title: 'core',
6060
name: 'Andrew Henry',
6161
github: 'MajesticPotatoe',
62+
linkedin: 'andrew-henry-01049830',
6263
avatar: 'avatarStyle=Transparent&topType=ShortHairShortRound&accessoriesType=Blank&hairColor=BrownDark&facialHairType=Blank&clotheType=Hoodie&clotheColor=Heather&eyeType=Dizzy&eyebrowType=DefaultNatural&mouthType=Default&skinColor=Light',
6364
},
6465
{

packages/docs/src/data/pages/getting-started/QuickStart.json

+5
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,11 @@
166166
"type": "text",
167167
"lang": "cdnText"
168168
},
169+
{
170+
"type": "alert",
171+
"lang": "cdnAlert",
172+
"value": "info"
173+
},
169174
{
170175
"type": "markup",
171176
"value": "html_cdn_quickstart"

packages/docs/src/examples/cards/complex/weather.vue

-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<template>
22
<v-card
33
class="mx-auto"
4-
color="#F9F9F9"
54
max-width="400"
65
>
76
<v-list-item two-line>

packages/docs/src/examples/chips/complex/photos.vue

-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<template>
22
<v-card
33
class="mx-auto"
4-
color="white"
54
max-width="500"
65
>
76
<v-toolbar

packages/docs/src/examples/data-tables/intermediate/expand.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
class="elevation-1"
1111
>
1212
<template v-slot:top>
13-
<v-toolbar flat color="white">
13+
<v-toolbar flat>
1414
<v-toolbar-title>Expandable Table</v-toolbar-title>
1515
<v-spacer></v-spacer>
1616
<v-switch v-model="singleExpand" label="Single expand" class="mt-2"></v-switch>

packages/docs/src/examples/navigation-drawers/intermediate/combined.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
permanent
99
width="100%"
1010
>
11-
<v-row class="fill-height">
11+
<v-row class="fill-height" no-gutters>
1212
<v-navigation-drawer
1313
dark
1414
mini-variant

packages/docs/src/examples/selection-controls/playground.vue

+12-5
Original file line numberDiff line numberDiff line change
@@ -9,23 +9,29 @@
99
<v-select v-model="color" :items="colors" label="Color"></v-select>
1010
</v-col>
1111
<v-col cols="12">
12-
<header>Switches</header>
12+
<header>Checkboxes</header>
1313
</v-col>
1414
<v-checkbox v-model="loading" class="mx-2" label="Loading"></v-checkbox>
1515
<v-checkbox v-model="flat" class="mx-2" label="Flat"></v-checkbox>
1616
<v-checkbox v-model="inset" class="mx-2" label="Inset"></v-checkbox>
1717
<v-col cols="12">
18-
<header>Radios</header>
18+
<header>Switches</header>
1919
</v-col>
2020
<v-switch v-model="mandatory" class="mx-2" label="Mandatory"></v-switch>
2121
<v-switch v-model="multiple" class="mx-2" label="Multiple"></v-switch>
2222
<v-switch v-model="row" class="mx-2" label="Row"></v-switch>
2323
<v-col cols="12">
24-
<header>Checkboxes</header>
24+
<header>Radios</header>
2525
</v-col>
26-
<v-switch v-model="indeterminate" class="mx-2" label="Indeterminate"></v-switch>
26+
<v-radio-group>
27+
<v-radio
28+
v-for="n in 3"
29+
:key="n"
30+
:label="`Radio ${n}`"
31+
:value="n"
32+
></v-radio>
33+
</v-radio-group>
2734
</v-row>
28-
2935
<v-switch
3036
:disabled="disabled"
3137
:readonly="readonly"
@@ -51,6 +57,7 @@
5157
<v-radio label="I'm a radio button"></v-radio>
5258
<v-radio label="I'm a radio button"></v-radio>
5359
</v-radio-group>
60+
<v-switch v-model="indeterminate" class="mx-2" label="Indeterminate"></v-switch>
5461
<v-checkbox
5562
:disabled="disabled"
5663
:readonly="readonly"

packages/docs/src/examples/text-fields/simple/password.vue

+4-4
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<v-col cols="12" sm="6">
77
<v-text-field
88
v-model="password"
9-
:append-icon="show1 ? 'visibility' : 'visibility_off'"
9+
:append-icon="show1 ? 'mdi-eye' : 'mdi-eye-off'"
1010
:rules="[rules.required, rules.min]"
1111
:type="show1 ? 'text' : 'password'"
1212
name="input-10-1"
@@ -19,7 +19,7 @@
1919

2020
<v-col cols="12" sm="6">
2121
<v-text-field
22-
:append-icon="show2 ? 'visibility' : 'visibility_off'"
22+
:append-icon="show2 ? 'mdi-eye' : 'mdi-eye-off'"
2323
:rules="[rules.required, rules.min]"
2424
:type="show2 ? 'text' : 'password'"
2525
name="input-10-2"
@@ -33,7 +33,7 @@
3333

3434
<v-col cols="12" sm="6">
3535
<v-text-field
36-
:append-icon="show3 ? 'visibility' : 'visibility_off'"
36+
:append-icon="show3 ? 'mdi-eye' : 'mdi-eye-off'"
3737
:rules="[rules.required, rules.min]"
3838
:type="show3 ? 'text' : 'password'"
3939
name="input-10-2"
@@ -47,7 +47,7 @@
4747

4848
<v-col cols="12" sm="6">
4949
<v-text-field
50-
:append-icon="show4 ? 'visibility' : 'visibility_off'"
50+
:append-icon="show4 ? 'mdi-eye' : 'mdi-eye-off'"
5151
:rules="[rules.required, rules.emailMatch]"
5252
:type="show4 ? 'text' : 'password'"
5353
name="input-10-2"

packages/docs/src/lang/en/customization/SassVariables.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,5 +7,5 @@
77
"sassAlert1": "Note: SCSS/SASS variables are only supported using [A-la-carte installation](/customization/a-la-carte). This is automatically setup when using the **vue-cli-plugin-vuetify** plugin.",
88
"setupText3": "The next time you run **yarn run serve**, Vue CLI 3 will inject the variables file into your style files. Under the hood, Vuetify global styles will be hoisted to the top of the compiled styles and used to override the default behavior.",
99
"webpackHeading": "## Webpack install",
10-
"webpackText1": "This step is only necessary if you are modifying SASS Variables in a webpack project. If you are using vue-cli-3 with the **vue-cli-plugin-vuetify** plugin, this is handled automatically for you by creating a `variables.sass` or `variables.scss` file in the `src/sass` directory of your project. A detailed guide of how to setup the loader can be found on the [Quick start](/getting-started/quick-start#webpack-installation) page."
10+
"webpackText1": "This step is only necessary if you are modifying SASS Variables in a webpack project. If you are using vue-cli-3 with the **vue-cli-plugin-vuetify** plugin, this is handled automatically for you by creating a `variables.sass` or `variables.scss` file in the `src/sass` directory of your project. A detailed guide of how to setup the loader can be found on the [Quick start](/getting-started/quick-start#webpack-install) page."
1111
}

packages/docs/src/lang/en/getting-started/QuickStart.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,6 @@
2424
"webpackText5": "Vuetify uses [Google's Roboto font](https://material.io/design/typography/the-type-system.html) and [Material Design Icons](https://materialdesignicons.com/). The simplest way to install these are to include their CDN's in your main `index.html`.",
2525
"webpackText6": "For more information on different support iconfonts and advanced implementations, navigate to the [Icons](/customization/icons) page.",
2626
"cdnHeader": "## CDN usage",
27-
"cdnText": "To test using Vuetify.js without installing a template from Vue CLI, copy the code below into your `index.html`. This will pull the latest version of Vue and Vuetify, allowing you to start playing with components. You can also use the [Vuetify starter](https://template.vuetifyjs.com) on codepen. While not recommended, if you need to utilize the cdn packages in a _production_ environment, it is recommended that you scope the versions of your assets. For more information on how to do this, navigate to the [jsdelivr](https://www.jsdelivr.com/) website."
27+
"cdnText": "To test using Vuetify.js without installing a template from Vue CLI, copy the code below into your `index.html`. This will pull the latest version of Vue and Vuetify, allowing you to start playing with components. You can also use the [Vuetify starter](https://template.vuetifyjs.com) on codepen. While not recommended, if you need to utilize the cdn packages in a _production_ environment, it is recommended that you scope the versions of your assets. For more information on how to do this, navigate to the [jsdelivr](https://www.jsdelivr.com/) website.",
28+
"cdnAlert": "In order for your application to work properly, you must wrap it in a v-app component. See the [Application](/components/application) component page for more details."
2829
}

packages/docs/src/layouts/documentation/Index.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<template>
22
<v-app>
3-
<core-system-bar />
3+
<!-- <core-system-bar /> -->
44

55
<documentation-app-bar />
66

packages/docs/src/layouts/frontend/Index.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<template>
22
<v-app>
3-
<core-system-bar />
3+
<!-- <core-system-bar /> -->
44

55
<frontend-app-bar />
66

packages/docs/src/layouts/layouts/Index.vue

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<component
44
:is="component"
55
v-if="component"
6-
:source="`https://github.com/vuetifyjs/vuetify/blob/${branch}/packages/docs/src/examples/layouts/${page}.vue`"
6+
:source="`https://github.com/vuetifyjs/vuetify/blob/${branch}/packages/docs/src/layouts/layouts/demos/${page}.vue`"
77
/>
88
</div>
99
</template>

packages/docs/src/layouts/layouts/demos/google-contacts.vue

+7-4
Original file line numberDiff line numberDiff line change
@@ -82,11 +82,11 @@
8282
color="blue darken-3"
8383
dark
8484
>
85+
<v-app-bar-nav-icon @click.stop="drawer = !drawer" />
8586
<v-toolbar-title
8687
style="width: 300px"
8788
class="ml-0 pl-4"
8889
>
89-
<v-app-bar-nav-icon @click.stop="drawer = !drawer" />
9090
<span class="hidden-sm-and-down">Google Contacts</span>
9191
</v-toolbar-title>
9292
<v-text-field
@@ -178,15 +178,18 @@
178178
Create contact
179179
</v-card-title>
180180
<v-container>
181-
<v-row>
181+
<v-row class="mx-2">
182182
<v-col
183183
class="align-center justify-space-between"
184184
cols="12"
185185
>
186-
<v-row align="center">
186+
<v-row
187+
align="center"
188+
class="mr-0"
189+
>
187190
<v-avatar
188191
size="40px"
189-
class="mr-4"
192+
class="mx-3"
190193
>
191194
<img
192195
src="//ssl.gstatic.com/s2/oz/images/sge/grey_silhouette.png"

packages/docs/src/snippets/ts/create_translation.txt

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ export default {
1515
sortBy: 'Sort by',
1616
},
1717
dataFooter: {
18+
pageText: '{0}-{1} of {2}',
1819
itemsPerPageText: 'Items per page:',
1920
itemsPerPageAll: 'All',
2021
nextPage: 'Next page',

0 commit comments

Comments
 (0)