@dimailn/vuetify 2.7.2-alpha23 → 2.7.2-alpha25

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.
Files changed (108) hide show
  1. package/dist/vuetify.js +280 -256
  2. package/dist/vuetify.js.map +1 -1
  3. package/dist/vuetify.min.css +1 -1
  4. package/dist/vuetify.min.js +2 -2
  5. package/es5/components/VBadge/VBadge.js +17 -14
  6. package/es5/components/VBadge/VBadge.js.map +1 -1
  7. package/es5/components/VBtn/VBtn.js +16 -16
  8. package/es5/components/VBtn/VBtn.js.map +1 -1
  9. package/es5/components/VColorPicker/VColorPicker.js +18 -31
  10. package/es5/components/VColorPicker/VColorPicker.js.map +1 -1
  11. package/es5/components/VColorPicker/VColorPickerCanvas.js +45 -46
  12. package/es5/components/VColorPicker/VColorPickerCanvas.js.map +1 -1
  13. package/es5/components/VColorPicker/VColorPickerEdit.js +27 -26
  14. package/es5/components/VColorPicker/VColorPickerEdit.js.map +1 -1
  15. package/es5/components/VColorPicker/VColorPickerPreview.js +41 -30
  16. package/es5/components/VColorPicker/VColorPickerPreview.js.map +1 -1
  17. package/es5/components/VColorPicker/VColorPickerSwatches.js +13 -10
  18. package/es5/components/VColorPicker/VColorPickerSwatches.js.map +1 -1
  19. package/es5/components/VDataTable/VDataTable.js +7 -11
  20. package/es5/components/VDataTable/VDataTable.js.map +1 -1
  21. package/es5/components/VInput/VInput.js +24 -6
  22. package/es5/components/VInput/VInput.js.map +1 -1
  23. package/es5/components/VSelect/VSelectList.js +1 -1
  24. package/es5/components/VSelect/VSelectList.js.map +1 -1
  25. package/es5/components/VSlider/VSlider.js +23 -18
  26. package/es5/components/VSlider/VSlider.js.map +1 -1
  27. package/es5/components/VTooltip/VTooltip.js +3 -7
  28. package/es5/components/VTooltip/VTooltip.js.map +1 -1
  29. package/es5/framework.js +1 -1
  30. package/es5/mixins/activatable/index.js +2 -1
  31. package/es5/mixins/activatable/index.js.map +1 -1
  32. package/es5/mixins/bootable/index.js +1 -2
  33. package/es5/mixins/bootable/index.js.map +1 -1
  34. package/es5/mixins/mouse/index.js +10 -5
  35. package/es5/mixins/mouse/index.js.map +1 -1
  36. package/es5/mixins/selectable/index.js +3 -0
  37. package/es5/mixins/selectable/index.js.map +1 -1
  38. package/lib/components/VBadge/VBadge.js +14 -13
  39. package/lib/components/VBadge/VBadge.js.map +1 -1
  40. package/lib/components/VBtn/VBtn.js +18 -19
  41. package/lib/components/VBtn/VBtn.js.map +1 -1
  42. package/lib/components/VColorPicker/VColorPicker.js +29 -37
  43. package/lib/components/VColorPicker/VColorPicker.js.map +1 -1
  44. package/lib/components/VColorPicker/VColorPickerCanvas.js +41 -43
  45. package/lib/components/VColorPicker/VColorPickerCanvas.js.map +1 -1
  46. package/lib/components/VColorPicker/VColorPickerEdit.js +25 -31
  47. package/lib/components/VColorPicker/VColorPickerEdit.js.map +1 -1
  48. package/lib/components/VColorPicker/VColorPickerPreview.js +45 -32
  49. package/lib/components/VColorPicker/VColorPickerPreview.js.map +1 -1
  50. package/lib/components/VColorPicker/VColorPickerSwatches.js +15 -9
  51. package/lib/components/VColorPicker/VColorPickerSwatches.js.map +1 -1
  52. package/lib/components/VDataTable/VDataTable.js +3 -4
  53. package/lib/components/VDataTable/VDataTable.js.map +1 -1
  54. package/lib/components/VInput/VInput.js +16 -4
  55. package/lib/components/VInput/VInput.js.map +1 -1
  56. package/lib/components/VSelect/VSelectList.js +2 -1
  57. package/lib/components/VSelect/VSelectList.js.map +1 -1
  58. package/lib/components/VSlider/VSlider.js +26 -21
  59. package/lib/components/VSlider/VSlider.js.map +1 -1
  60. package/lib/components/VTooltip/VTooltip.js +6 -9
  61. package/lib/components/VTooltip/VTooltip.js.map +1 -1
  62. package/lib/framework.js +1 -1
  63. package/lib/mixins/activatable/index.js +2 -1
  64. package/lib/mixins/activatable/index.js.map +1 -1
  65. package/lib/mixins/bootable/index.js +2 -4
  66. package/lib/mixins/bootable/index.js.map +1 -1
  67. package/lib/mixins/mouse/index.js +9 -5
  68. package/lib/mixins/mouse/index.js.map +1 -1
  69. package/lib/mixins/selectable/index.js +4 -0
  70. package/lib/mixins/selectable/index.js.map +1 -1
  71. package/package.json +1 -1
  72. package/src/components/VBadge/VBadge.ts +24 -25
  73. package/src/components/VBadge/__tests__/VBadge.spec.ts +47 -30
  74. package/src/components/VBadge/__tests__/__snapshots__/VBadge.spec.ts.snap +5 -5
  75. package/src/components/VBtn/VBtn.ts +18 -16
  76. package/src/components/VBtn/__tests__/VBtn.spec.ts +257 -242
  77. package/src/components/VBtn/__tests__/__snapshots__/VBtn.spec.ts.snap +13 -73
  78. package/src/components/VColorPicker/VColorPicker.ts +32 -35
  79. package/src/components/VColorPicker/VColorPickerCanvas.ts +44 -37
  80. package/src/components/VColorPicker/VColorPickerEdit.ts +37 -35
  81. package/src/components/VColorPicker/VColorPickerPreview.ts +48 -28
  82. package/src/components/VColorPicker/VColorPickerSwatches.ts +23 -12
  83. package/src/components/VColorPicker/__tests__/VColorPicker.spec.ts +47 -47
  84. package/src/components/VColorPicker/__tests__/VColorPickerCanvas.spec.ts +15 -13
  85. package/src/components/VColorPicker/__tests__/VColorPickerEdit.spec.ts +52 -50
  86. package/src/components/VColorPicker/__tests__/VColorPickerPreview.spec.ts +101 -30
  87. package/src/components/VColorPicker/__tests__/__snapshots__/VColorPicker.spec.ts.snap +200 -157
  88. package/src/components/VColorPicker/__tests__/__snapshots__/VColorPickerEdit.spec.ts.snap +28 -11
  89. package/src/components/VDataTable/VDataTable.ts +3 -3
  90. package/src/components/VInput/VInput.ts +12 -2
  91. package/src/components/VInput/__tests__/VInput.spec.ts +170 -234
  92. package/src/components/VInput/__tests__/__snapshots__/VInput.spec.ts.snap +50 -101
  93. package/src/components/VSelect/VSelectList.ts +1 -0
  94. package/src/components/VSkeletonLoader/__tests__/VSkeletonLoader.spec.ts +22 -15
  95. package/src/components/VSkeletonLoader/__tests__/__snapshots__/VSkeletonLoader.spec.ts.snap +60 -60
  96. package/src/components/VSlider/VSlider.ts +43 -27
  97. package/src/components/VSlider/__tests__/VSlider.spec.ts +188 -286
  98. package/src/components/VSlider/__tests__/__snapshots__/VSlider.spec.ts.snap +157 -246
  99. package/src/components/VTabs/__tests__/VTab.spec.ts +3 -3
  100. package/src/components/VTabs/__tests__/VTabsBar.spec.ts +2 -2
  101. package/src/components/VTooltip/VTooltip.ts +20 -20
  102. package/src/components/VTooltip/__tests__/VTooltip.spec.ts +60 -75
  103. package/src/mixins/activatable/index.ts +2 -1
  104. package/src/mixins/bootable/__tests__/bootable.spec.ts +17 -11
  105. package/src/mixins/bootable/index.ts +4 -3
  106. package/src/mixins/mouse/__tests__/mouse.spec.ts +54 -40
  107. package/src/mixins/mouse/index.ts +10 -6
  108. package/src/mixins/selectable/index.ts +4 -0
@@ -1,4 +1,4 @@
1
- import {Transition, h} from 'vue'
1
+ import { Transition, h, defineComponent, VNode, withDirectives, vShow } from 'vue'
2
2
  // Styles
3
3
  import './VBadge.sass'
4
4
 
@@ -8,30 +8,29 @@ import VIcon from '../VIcon/VIcon'
8
8
  // Mixins
9
9
  import Colorable from '../../mixins/colorable'
10
10
  import Themeable from '../../mixins/themeable'
11
- import Toggleable from '../../mixins/toggleable'
11
+ import { factory as ToggleableFactory } from '../../mixins/toggleable'
12
12
  import Transitionable from '../../mixins/transitionable'
13
13
  import { factory as PositionableFactory } from '../../mixins/positionable'
14
14
  import mergeData from '../../util/mergeData'
15
15
  // Utilities
16
- import mixins from '../../util/mixins'
17
16
  import {
18
17
  convertToUnit,
19
18
  getSlot,
20
19
  } from '../../util/helpers'
21
20
 
22
- // Types
23
- import { VNode } from 'vue'
24
-
25
- export default mixins(
26
- Colorable,
27
- PositionableFactory(['left', 'bottom']),
28
- Themeable,
29
- Toggleable,
30
- Transitionable,
31
- /* @vue/component */
32
- ).extend({
21
+ const Toggleable = ToggleableFactory('modelValue', 'update:modelValue')
22
+
23
+ export default defineComponent({
33
24
  name: 'v-badge',
34
25
 
26
+ mixins: [
27
+ Colorable,
28
+ PositionableFactory(['left', 'bottom']),
29
+ Themeable,
30
+ Toggleable,
31
+ Transitionable,
32
+ ],
33
+
35
34
  props: {
36
35
  avatar: Boolean,
37
36
  bordered: Boolean,
@@ -55,7 +54,7 @@ export default mixins(
55
54
  type: String,
56
55
  default: 'scale-rotate-transition',
57
56
  },
58
- value: { default: true },
57
+ modelValue: { default: true },
59
58
  },
60
59
 
61
60
  computed: {
@@ -136,13 +135,12 @@ export default mixins(
136
135
  'aria-live': this.$attrs['aria-live'] || 'polite',
137
136
  title: this.$attrs.title,
138
137
  role: this.$attrs.role || 'status',
139
- directives: [{
140
- name: 'show',
141
- value: this.isActive,
142
- }],
143
138
  })
144
139
 
145
- const badge = h('span', data, [this.genBadgeContent()])
140
+ const badge = withDirectives(
141
+ h('span', data, [this.genBadgeContent()]),
142
+ [[vShow, this.isActive]]
143
+ )
146
144
 
147
145
  if (!this.transition) return badge
148
146
 
@@ -150,7 +148,9 @@ export default mixins(
150
148
  name: this.transition,
151
149
  origin: this.origin,
152
150
  mode: this.mode,
153
- }, [badge])
151
+ }, {
152
+ default: () => [badge],
153
+ })
154
154
  },
155
155
  genBadgeContent () {
156
156
  // Dot prop shows no content
@@ -160,7 +160,7 @@ export default mixins(
160
160
 
161
161
  if (slot) return slot
162
162
  if (this.content) return String(this.content)
163
- if (this.icon) return h(VIcon, this.icon)
163
+ if (this.icon) return h(VIcon, { icon: this.icon })
164
164
 
165
165
  return undefined
166
166
  },
@@ -187,8 +187,7 @@ export default mixins(
187
187
  else children.push(badge)
188
188
 
189
189
  return h('span', mergeData({
190
- class: ['v-badge', this.classes]
191
- }, attrs)
192
- , children)
190
+ class: ['v-badge', this.classes],
191
+ }, attrs), children)
193
192
  },
194
193
  })
@@ -2,25 +2,26 @@
2
2
  import VBadge from '../VBadge'
3
3
 
4
4
  // Utilities
5
- import {
6
- mount,
7
- Wrapper,
8
- } from '@vue/test-utils'
9
- import { compileToFunctions } from 'vue-template-compiler'
5
+ import { mount, enableAutoUnmount, VueWrapper } from '@vue/test-utils'
10
6
 
11
7
  // Types
12
- import { ExtractVue } from '../../../util/mixins'
8
+ import { ComponentPublicInstance } from 'vue'
13
9
 
14
10
  describe('VBadge.ts', () => {
15
- type Instance = ExtractVue<typeof VBadge>
16
- let mountFunction: (options?: object) => Wrapper<Instance>
11
+ type Instance = ComponentPublicInstance
12
+ let mountFunction: (options?: object) => VueWrapper<Instance>
13
+
14
+ enableAutoUnmount(afterEach)
17
15
 
18
16
  beforeEach(() => {
19
17
  mountFunction = (options = {}) => {
20
18
  return mount(VBadge, {
21
- mocks: {
22
- $vuetify: {
23
- lang: { t: (text = '') => text },
19
+ global: {
20
+ mocks: {
21
+ $vuetify: {
22
+ lang: { t: (text = '') => text },
23
+ rtl: false,
24
+ },
24
25
  },
25
26
  },
26
27
  ...options,
@@ -31,22 +32,22 @@ describe('VBadge.ts', () => {
31
32
  it('should render component and match snapshot', async () => {
32
33
  const wrapper = mountFunction({
33
34
  slots: {
34
- badge: [compileToFunctions('<span>content</span>')],
35
- default: [compileToFunctions('<span>element</span>')],
35
+ badge: '<span>content</span>',
36
+ default: '<span>element</span>',
36
37
  },
37
38
  })
38
39
 
39
40
  expect(wrapper.html()).toMatchSnapshot()
40
41
  })
41
42
 
42
- it('should render component with with value=false and match snapshot', async () => {
43
+ it('should render component with with modelValue=false and match snapshot', async () => {
43
44
  const wrapper = mountFunction({
44
- propsData: {
45
- value: false,
45
+ props: {
46
+ modelValue: false,
46
47
  },
47
48
  slots: {
48
- badge: [compileToFunctions('<span>content</span>')],
49
- default: [compileToFunctions('<span>element</span>')],
49
+ badge: '<span>content</span>',
50
+ default: '<span>element</span>',
50
51
  },
51
52
  })
52
53
 
@@ -55,7 +56,7 @@ describe('VBadge.ts', () => {
55
56
 
56
57
  it('should render component with bottom prop', () => {
57
58
  const wrapper = mountFunction({
58
- propsData: {
59
+ props: {
59
60
  bottom: true,
60
61
  },
61
62
  })
@@ -65,7 +66,7 @@ describe('VBadge.ts', () => {
65
66
 
66
67
  it('should render component with left prop', () => {
67
68
  const wrapper = mountFunction({
68
- propsData: {
69
+ props: {
69
70
  left: true,
70
71
  },
71
72
  })
@@ -75,7 +76,7 @@ describe('VBadge.ts', () => {
75
76
 
76
77
  it('should render component with overlap prop', () => {
77
78
  const wrapper = mountFunction({
78
- propsData: {
79
+ props: {
79
80
  overlap: true,
80
81
  },
81
82
  })
@@ -85,11 +86,11 @@ describe('VBadge.ts', () => {
85
86
 
86
87
  it('should render component with color prop', () => {
87
88
  const wrapper = mountFunction({
88
- propsData: {
89
+ props: {
89
90
  color: 'green lighten-1',
90
91
  },
91
92
  slots: {
92
- badge: [compileToFunctions('<span>content</span>')],
93
+ badge: '<span>content</span>',
93
94
  },
94
95
  })
95
96
 
@@ -104,9 +105,17 @@ describe('VBadge.ts', () => {
104
105
  render: jest.fn(),
105
106
  }
106
107
 
107
- mountFunction({
108
- stubs: {
109
- transition: transitionStub,
108
+ const wrapper = mount(VBadge, {
109
+ global: {
110
+ mocks: {
111
+ $vuetify: {
112
+ lang: { t: (text = '') => text },
113
+ rtl: false,
114
+ },
115
+ },
116
+ stubs: {
117
+ transition: transitionStub,
118
+ },
110
119
  },
111
120
  })
112
121
 
@@ -119,12 +128,20 @@ describe('VBadge.ts', () => {
119
128
  render: jest.fn(),
120
129
  }
121
130
 
122
- mountFunction({
123
- propsData: {
131
+ const wrapper = mount(VBadge, {
132
+ props: {
124
133
  transition: '',
125
134
  },
126
- stubs: {
127
- transition: transitionStub,
135
+ global: {
136
+ mocks: {
137
+ $vuetify: {
138
+ lang: { t: (text = '') => text },
139
+ rtl: false,
140
+ },
141
+ },
142
+ stubs: {
143
+ transition: transitionStub,
144
+ },
128
145
  },
129
146
  })
130
147
 
@@ -6,11 +6,11 @@ exports[`VBadge.ts should render component and match snapshot 1`] = `
6
6
  element
7
7
  </span>
8
8
  <span class="v-badge__wrapper">
9
- <span aria-atomic="true"
9
+ <span class="v-badge__badge primary"
10
+ aria-atomic="true"
10
11
  aria-label="$vuetify.badge"
11
12
  aria-live="polite"
12
13
  role="status"
13
- class="v-badge__badge primary"
14
14
  >
15
15
  <span>
16
16
  content
@@ -20,17 +20,17 @@ exports[`VBadge.ts should render component and match snapshot 1`] = `
20
20
  </span>
21
21
  `;
22
22
 
23
- exports[`VBadge.ts should render component with with value=false and match snapshot 1`] = `
23
+ exports[`VBadge.ts should render component with with modelValue=false and match snapshot 1`] = `
24
24
  <span class="v-badge theme--light">
25
25
  <span>
26
26
  element
27
27
  </span>
28
28
  <span class="v-badge__wrapper">
29
- <span aria-atomic="true"
29
+ <span class="v-badge__badge primary"
30
+ aria-atomic="true"
30
31
  aria-label="$vuetify.badge"
31
32
  aria-live="polite"
32
33
  role="status"
33
- class="v-badge__badge primary"
34
34
  style="display: none;"
35
35
  >
36
36
  <span>
@@ -19,13 +19,11 @@ import Sizeable from '../../mixins/sizeable'
19
19
  import mixins, { ExtractVue } from '../../util/mixins'
20
20
  import { breaking } from '../../util/console'
21
21
  import { getSlot } from '../../util/helpers'
22
- import mergeData from '../../util/mergeData'
23
22
 
24
23
  // Types
25
- import { VNode, withDirectives } from 'vue'
24
+ import { VNode, withDirectives, h } from 'vue'
26
25
  import { PropValidator, PropType } from 'vue/types/options'
27
26
  import { RippleOptions } from '../../directives/ripple'
28
- import {h} from 'vue'
29
27
 
30
28
  const baseMixins = mixins(
31
29
  VSheet,
@@ -42,7 +40,6 @@ interface options extends ExtractVue<typeof baseMixins> {
42
40
 
43
41
  export default baseMixins.extend({
44
42
  name: 'v-btn',
45
- inheritAttrs: false,
46
43
  props: {
47
44
  activeClass: {
48
45
  type: String,
@@ -107,7 +104,7 @@ export default baseMixins.extend({
107
104
  computedElevation (): string | number | undefined {
108
105
  if (this.disabled) return undefined
109
106
 
110
- return Elevatable.computed.computedElevation.call(this)
107
+ return this.elevation
111
108
  },
112
109
  computedRipple (): RippleOptions | boolean {
113
110
  const defaultRipple = this.icon || this.fab ? { circle: true } : true
@@ -161,7 +158,6 @@ export default baseMixins.extend({
161
158
  this.$emit('click', e)
162
159
  this.$emitLegacy('click', e)
163
160
 
164
-
165
161
  this.btnToggle && this.toggle()
166
162
  },
167
163
  genContent (): VNode {
@@ -175,7 +171,7 @@ export default baseMixins.extend({
175
171
  }, getSlot(this, 'loader') || [h(VProgressCircular, {
176
172
  indeterminate: true,
177
173
  size: 23,
178
- width: 2
174
+ width: 2,
179
175
  })])
180
176
  },
181
177
  },
@@ -190,25 +186,31 @@ export default baseMixins.extend({
190
186
  ? this.setBackgroundColor
191
187
  : this.setTextColor
192
188
 
193
- let data = {}
189
+ // Merge component classes with routable classes
190
+ const mergedClasses = {
191
+ ...this.classes,
192
+ ...linkData.class,
193
+ }
194
194
 
195
195
  if (tag === 'button') {
196
- data.type = this.type
197
- data.disabled = this.disabled
196
+ linkData.type = this.type
197
+ linkData.disabled = this.disabled
198
198
  }
199
- data.value = ['string', 'number'].includes(typeof this.value)
199
+ linkData.value = ['string', 'number'].includes(typeof this.value)
200
200
  ? this.value
201
201
  : JSON.stringify(this.value)
202
202
 
203
- data = {
204
- ...data,
205
- ...linkData
203
+ const data = {
204
+ ...linkData,
205
+ class: mergedClasses,
206
+ style: this.styles,
206
207
  }
207
208
 
208
- data = mergeData(data, { class: this.$attrs.class })
209
+ // Apply color styling but preserve Vue's automatic attribute inheritance
210
+ const finalData = this.disabled ? data : setColor(this.color, data)
209
211
 
210
212
  return withDirectives(
211
- h(tag, this.disabled ? data : setColor(this.color, data), children),
213
+ h(tag, finalData, children),
212
214
  directives
213
215
  )
214
216
  },