vuetify 2.5.14 → 2.6.2

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 (237) hide show
  1. package/dist/json/attributes.json +196 -0
  2. package/dist/json/tags.json +88 -20
  3. package/dist/json/web-types.json +721 -141
  4. package/dist/vuetify.css +165 -5
  5. package/dist/vuetify.css.map +1 -1
  6. package/dist/vuetify.js +966 -333
  7. package/dist/vuetify.js.map +1 -1
  8. package/dist/vuetify.min.css +2 -2
  9. package/dist/vuetify.min.js +2 -2
  10. package/es5/components/VAutocomplete/VAutocomplete.js +1 -0
  11. package/es5/components/VAutocomplete/VAutocomplete.js.map +1 -1
  12. package/es5/components/VBanner/VBanner.js +3 -2
  13. package/es5/components/VBanner/VBanner.js.map +1 -1
  14. package/es5/components/VBottomNavigation/VBottomNavigation.js +10 -2
  15. package/es5/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
  16. package/es5/components/VBottomSheet/VBottomSheet.js +1 -4
  17. package/es5/components/VBottomSheet/VBottomSheet.js.map +1 -1
  18. package/es5/components/VCalendar/VCalendar.js +2 -2
  19. package/es5/components/VCalendar/VCalendar.js.map +1 -1
  20. package/es5/components/VCalendar/VCalendarDaily.js +16 -8
  21. package/es5/components/VCalendar/VCalendarDaily.js.map +1 -1
  22. package/es5/components/VCalendar/VCalendarWeekly.js +14 -10
  23. package/es5/components/VCalendar/VCalendarWeekly.js.map +1 -1
  24. package/es5/components/VCalendar/mixins/calendar-with-events.js +19 -20
  25. package/es5/components/VCalendar/mixins/calendar-with-events.js.map +1 -1
  26. package/es5/components/VCalendar/mixins/mouse.js +13 -4
  27. package/es5/components/VCalendar/mixins/mouse.js.map +1 -1
  28. package/es5/components/VCombobox/VCombobox.js +1 -1
  29. package/es5/components/VCombobox/VCombobox.js.map +1 -1
  30. package/es5/components/VDataTable/MobileRow.js +2 -2
  31. package/es5/components/VDataTable/MobileRow.js.map +1 -1
  32. package/es5/components/VDataTable/Row.js +25 -9
  33. package/es5/components/VDataTable/Row.js.map +1 -1
  34. package/es5/components/VDataTable/VDataTableHeaderDesktop.js +1 -1
  35. package/es5/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
  36. package/es5/components/VDatePicker/mixins/date-picker-table.js +13 -3
  37. package/es5/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
  38. package/es5/components/VDialog/VDialog.js +4 -10
  39. package/es5/components/VDialog/VDialog.js.map +1 -1
  40. package/es5/components/VInput/VInput.js +3 -1
  41. package/es5/components/VInput/VInput.js.map +1 -1
  42. package/es5/components/VItemGroup/VItemGroup.js +8 -4
  43. package/es5/components/VItemGroup/VItemGroup.js.map +1 -1
  44. package/es5/components/VMenu/VMenu.js +0 -4
  45. package/es5/components/VMenu/VMenu.js.map +1 -1
  46. package/es5/components/VNavigationDrawer/VNavigationDrawer.js +7 -11
  47. package/es5/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
  48. package/es5/components/VOtpInput/VOtpInput.js +377 -0
  49. package/es5/components/VOtpInput/VOtpInput.js.map +1 -0
  50. package/es5/components/VOtpInput/index.js +20 -0
  51. package/es5/components/VOtpInput/index.js.map +1 -0
  52. package/es5/components/VRadioGroup/VRadioGroup.js +1 -3
  53. package/es5/components/VRadioGroup/VRadioGroup.js.map +1 -1
  54. package/es5/components/VSelect/VSelect.js +6 -1
  55. package/es5/components/VSelect/VSelect.js.map +1 -1
  56. package/es5/components/VSlideGroup/VSlideGroup.js +12 -4
  57. package/es5/components/VSlideGroup/VSlideGroup.js.map +1 -1
  58. package/es5/components/VSnackbar/VSnackbar.js +4 -8
  59. package/es5/components/VSnackbar/VSnackbar.js.map +1 -1
  60. package/es5/components/VStepper/VStepperStep.js +12 -1
  61. package/es5/components/VStepper/VStepperStep.js.map +1 -1
  62. package/es5/components/VTabs/VTab.js +3 -2
  63. package/es5/components/VTabs/VTab.js.map +1 -1
  64. package/es5/components/VTooltip/VTooltip.js +14 -9
  65. package/es5/components/VTooltip/VTooltip.js.map +1 -1
  66. package/es5/components/VTreeview/VTreeview.js +2 -1
  67. package/es5/components/VTreeview/VTreeview.js.map +1 -1
  68. package/es5/components/VTreeview/VTreeviewNode.js +3 -1
  69. package/es5/components/VTreeview/VTreeviewNode.js.map +1 -1
  70. package/es5/components/index.js +13 -0
  71. package/es5/components/index.js.map +1 -1
  72. package/es5/directives/ripple/index.js +0 -7
  73. package/es5/directives/ripple/index.js.map +1 -1
  74. package/es5/framework.js +1 -1
  75. package/es5/locale/da.js +77 -0
  76. package/es5/locale/da.js.map +1 -0
  77. package/es5/locale/index.js +8 -0
  78. package/es5/locale/index.js.map +1 -1
  79. package/es5/locale/it.js +6 -6
  80. package/es5/locale/it.js.map +1 -1
  81. package/es5/mixins/activatable/index.js +6 -2
  82. package/es5/mixins/activatable/index.js.map +1 -1
  83. package/es5/mixins/menuable/index.js +9 -8
  84. package/es5/mixins/menuable/index.js.map +1 -1
  85. package/es5/mixins/routable/index.js +4 -7
  86. package/es5/mixins/routable/index.js.map +1 -1
  87. package/es5/services/application/index.js +1 -3
  88. package/es5/services/application/index.js.map +1 -1
  89. package/es5/util/helpers.js +13 -6
  90. package/es5/util/helpers.js.map +1 -1
  91. package/lib/components/VAutocomplete/VAutocomplete.js +1 -0
  92. package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
  93. package/lib/components/VBanner/VBanner.js +3 -2
  94. package/lib/components/VBanner/VBanner.js.map +1 -1
  95. package/lib/components/VBottomNavigation/VBottomNavigation.js +10 -2
  96. package/lib/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
  97. package/lib/components/VBottomSheet/VBottomSheet.js +1 -4
  98. package/lib/components/VBottomSheet/VBottomSheet.js.map +1 -1
  99. package/lib/components/VCalendar/VCalendar.js +2 -2
  100. package/lib/components/VCalendar/VCalendar.js.map +1 -1
  101. package/lib/components/VCalendar/VCalendarDaily.js +20 -8
  102. package/lib/components/VCalendar/VCalendarDaily.js.map +1 -1
  103. package/lib/components/VCalendar/VCalendarWeekly.js +10 -2
  104. package/lib/components/VCalendar/VCalendarWeekly.js.map +1 -1
  105. package/lib/components/VCalendar/mixins/calendar-with-events.js +6 -3
  106. package/lib/components/VCalendar/mixins/calendar-with-events.js.map +1 -1
  107. package/lib/components/VCalendar/mixins/mouse.js +9 -4
  108. package/lib/components/VCalendar/mixins/mouse.js.map +1 -1
  109. package/lib/components/VCombobox/VCombobox.js +1 -1
  110. package/lib/components/VCombobox/VCombobox.js.map +1 -1
  111. package/lib/components/VDataTable/MobileRow.js +2 -2
  112. package/lib/components/VDataTable/MobileRow.js.map +1 -1
  113. package/lib/components/VDataTable/Row.js +15 -8
  114. package/lib/components/VDataTable/Row.js.map +1 -1
  115. package/lib/components/VDataTable/VDataTableHeaderDesktop.js +1 -1
  116. package/lib/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
  117. package/lib/components/VDatePicker/mixins/date-picker-table.js +12 -2
  118. package/lib/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
  119. package/lib/components/VDialog/VDialog.js +4 -10
  120. package/lib/components/VDialog/VDialog.js.map +1 -1
  121. package/lib/components/VInput/VInput.js +2 -0
  122. package/lib/components/VInput/VInput.js.map +1 -1
  123. package/lib/components/VItemGroup/VItemGroup.js +7 -5
  124. package/lib/components/VItemGroup/VItemGroup.js.map +1 -1
  125. package/lib/components/VMenu/VMenu.js +0 -4
  126. package/lib/components/VMenu/VMenu.js.map +1 -1
  127. package/lib/components/VNavigationDrawer/VNavigationDrawer.js +3 -7
  128. package/lib/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
  129. package/lib/components/VOtpInput/VOtpInput.js +344 -0
  130. package/lib/components/VOtpInput/VOtpInput.js.map +1 -0
  131. package/lib/components/VOtpInput/index.js +4 -0
  132. package/lib/components/VOtpInput/index.js.map +1 -0
  133. package/lib/components/VRadioGroup/VRadioGroup.js +2 -4
  134. package/lib/components/VRadioGroup/VRadioGroup.js.map +1 -1
  135. package/lib/components/VSelect/VSelect.js +6 -1
  136. package/lib/components/VSelect/VSelect.js.map +1 -1
  137. package/lib/components/VSlideGroup/VSlideGroup.js +13 -4
  138. package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
  139. package/lib/components/VSnackbar/VSnackbar.js +4 -8
  140. package/lib/components/VSnackbar/VSnackbar.js.map +1 -1
  141. package/lib/components/VStepper/VStepperStep.js +12 -1
  142. package/lib/components/VStepper/VStepperStep.js.map +1 -1
  143. package/lib/components/VTabs/VTab.js +3 -2
  144. package/lib/components/VTabs/VTab.js.map +1 -1
  145. package/lib/components/VTooltip/VTooltip.js +14 -9
  146. package/lib/components/VTooltip/VTooltip.js.map +1 -1
  147. package/lib/components/VTreeview/VTreeview.js +2 -1
  148. package/lib/components/VTreeview/VTreeview.js.map +1 -1
  149. package/lib/components/VTreeview/VTreeviewNode.js +3 -1
  150. package/lib/components/VTreeview/VTreeviewNode.js.map +1 -1
  151. package/lib/components/index.js +1 -0
  152. package/lib/components/index.js.map +1 -1
  153. package/lib/directives/ripple/index.js +0 -7
  154. package/lib/directives/ripple/index.js.map +1 -1
  155. package/lib/framework.js +1 -1
  156. package/lib/locale/da.js +70 -0
  157. package/lib/locale/da.js.map +1 -0
  158. package/lib/locale/index.js +1 -0
  159. package/lib/locale/index.js.map +1 -1
  160. package/lib/locale/it.js +6 -6
  161. package/lib/locale/it.js.map +1 -1
  162. package/lib/mixins/activatable/index.js +6 -2
  163. package/lib/mixins/activatable/index.js.map +1 -1
  164. package/lib/mixins/menuable/index.js +9 -8
  165. package/lib/mixins/menuable/index.js.map +1 -1
  166. package/lib/mixins/routable/index.js +5 -7
  167. package/lib/mixins/routable/index.js.map +1 -1
  168. package/lib/services/application/index.js +1 -3
  169. package/lib/services/application/index.js.map +1 -1
  170. package/lib/util/helpers.js +13 -6
  171. package/lib/util/helpers.js.map +1 -1
  172. package/package.json +2 -2
  173. package/src/components/VAutocomplete/VAutocomplete.ts +2 -0
  174. package/src/components/VAutocomplete/__tests__/VAutocomplete3.spec.ts +16 -0
  175. package/src/components/VBanner/VBanner.ts +16 -10
  176. package/src/components/VBottomNavigation/VBottomNavigation.ts +14 -2
  177. package/src/components/VBottomNavigation/__tests__/VBottomNavigation.spec.ts +9 -7
  178. package/src/components/VBottomSheet/VBottomSheet.ts +1 -4
  179. package/src/components/VCalendar/VCalendar.ts +3 -2
  180. package/src/components/VCalendar/VCalendarCategory.sass +67 -0
  181. package/src/components/VCalendar/VCalendarDaily.ts +9 -8
  182. package/src/components/VCalendar/VCalendarWeekly.ts +4 -2
  183. package/src/components/VCalendar/_variables.scss +4 -0
  184. package/src/components/VCalendar/mixins/calendar-with-events.ts +4 -3
  185. package/src/components/VCalendar/mixins/mouse.ts +10 -4
  186. package/src/components/VCombobox/VCombobox.ts +1 -1
  187. package/src/components/VCombobox/__tests__/VCombobox.spec.ts +2 -2
  188. package/src/components/VDataTable/MobileRow.ts +2 -2
  189. package/src/components/VDataTable/Row.ts +23 -16
  190. package/src/components/VDataTable/VDataTableHeaderDesktop.ts +1 -1
  191. package/src/components/VDatePicker/__tests__/VDatePicker.date.spec.ts +16 -0
  192. package/src/components/VDatePicker/__tests__/VDatePicker.month.spec.ts +16 -0
  193. package/src/components/VDatePicker/mixins/date-picker-table.ts +24 -2
  194. package/src/components/VDialog/VDialog.ts +4 -10
  195. package/src/components/VInput/VInput.sass +8 -0
  196. package/src/components/VInput/VInput.ts +2 -0
  197. package/src/components/VItemGroup/VItemGroup.ts +5 -3
  198. package/src/components/VItemGroup/__tests__/VItemGroup.spec.ts +19 -2
  199. package/src/components/VMenu/VMenu.ts +0 -4
  200. package/src/components/VNavigationDrawer/VNavigationDrawer.ts +3 -6
  201. package/src/components/VOtpInput/VOtpInput.sass +37 -0
  202. package/src/components/VOtpInput/VOtpInput.ts +324 -0
  203. package/src/components/VOtpInput/__tests__/VOtpInput.spec.ts +294 -0
  204. package/src/components/VOtpInput/_variables.scss +4 -0
  205. package/src/components/VOtpInput/index.ts +4 -0
  206. package/src/components/VRadioGroup/VRadioGroup.ts +0 -4
  207. package/src/components/VSelect/VSelect.ts +4 -0
  208. package/src/components/VSlideGroup/VSlideGroup.ts +21 -2
  209. package/src/components/VSnackbar/VSnackbar.ts +3 -7
  210. package/src/components/VSnackbar/__tests__/VSnackbar.spec.ts +4 -1
  211. package/src/components/VStepper/VStepper.sass +4 -4
  212. package/src/components/VStepper/VStepperStep.ts +14 -2
  213. package/src/components/VStepper/__tests__/__snapshots__/VStepperStep.spec.ts.snap +18 -6
  214. package/src/components/VTabs/VTab.ts +10 -2
  215. package/src/components/VTextarea/VTextarea.sass +13 -0
  216. package/src/components/VTooltip/VTooltip.sass +4 -1
  217. package/src/components/VTooltip/VTooltip.ts +14 -8
  218. package/src/components/VTooltip/_variables.scss +1 -0
  219. package/src/components/VTreeview/VTreeview.ts +2 -1
  220. package/src/components/VTreeview/VTreeviewNode.ts +3 -1
  221. package/src/components/index.ts +1 -0
  222. package/src/directives/ripple/VRipple.sass +4 -1
  223. package/src/directives/ripple/index.ts +0 -7
  224. package/src/locale/da.ts +69 -0
  225. package/src/locale/index.ts +1 -0
  226. package/src/locale/it.ts +6 -6
  227. package/src/mixins/activatable/__tests__/__snapshots__/activatable.spec.ts.snap +1 -2
  228. package/src/mixins/activatable/index.ts +6 -2
  229. package/src/mixins/menuable/index.ts +8 -7
  230. package/src/mixins/routable/index.ts +3 -6
  231. package/src/services/application/index.ts +1 -1
  232. package/src/styles/settings/_variables.scss +4 -3
  233. package/src/util/__tests__/__snapshots__/helpers.spec.ts.snap +11 -0
  234. package/src/util/__tests__/helpers.spec.ts +17 -0
  235. package/src/util/helpers.ts +14 -7
  236. package/types/lib.d.ts +2 -0
  237. package/src/directives/ripple/_variables.scss +0 -6
@@ -90,9 +90,7 @@ export default mixins(
90
90
  : Themeable.options.computed.isDark.call(this)
91
91
  },
92
92
  styles (): object {
93
- // Styles are not needed when
94
- // using the absolute prop.
95
- if (this.absolute) return {}
93
+ if (this.absolute || !this.app) return {}
96
94
 
97
95
  const {
98
96
  bar,
@@ -104,12 +102,10 @@ export default mixins(
104
102
  top,
105
103
  } = this.$vuetify.application
106
104
 
107
- // Should always move for y-axis
108
- // applicationable components.
109
105
  return {
110
106
  paddingBottom: convertToUnit(bottom + footer + insetFooter),
111
- paddingLeft: !this.app ? undefined : convertToUnit(left),
112
- paddingRight: !this.app ? undefined : convertToUnit(right),
107
+ paddingLeft: convertToUnit(left),
108
+ paddingRight: convertToUnit(right),
113
109
  paddingTop: convertToUnit(bar + top),
114
110
  }
115
111
  },
@@ -63,7 +63,10 @@ describe('VSnackbar.ts', () => {
63
63
  [true, false],
64
64
  ])('should have app padding on the x-axis using %s', (absolute, expected: boolean) => {
65
65
  const wrapper = mountFunction({
66
- propsData: { absolute },
66
+ propsData: {
67
+ app: true,
68
+ absolute,
69
+ },
67
70
  })
68
71
 
69
72
  expect(Object.keys(wrapper.vm.styles).length > 0).toBe(expected)
@@ -137,9 +137,8 @@
137
137
  color: inherit
138
138
 
139
139
  &__label
140
- align-items: flex-start
141
- display: flex
142
- flex-direction: column
140
+ display: block
141
+ flex-grow: 1
143
142
  line-height: $stepper-label-line-height
144
143
 
145
144
  +ltr()
@@ -149,6 +148,7 @@
149
148
  text-align: right
150
149
 
151
150
  small
151
+ display: block
152
152
  font-size: $stepper-label-small-font-size
153
153
  font-weight: $stepper-label-small-font-weight
154
154
  text-shadow: none
@@ -219,7 +219,7 @@
219
219
  flex-basis: $stepper-alt-labels-flex-basis
220
220
 
221
221
  small
222
- align-self: center
222
+ text-align: center
223
223
 
224
224
  .v-stepper__step__step
225
225
  margin-bottom: $stepper-alt-labels-step-step-margin-bottom
@@ -10,6 +10,7 @@ import ripple from '../../directives/ripple'
10
10
 
11
11
  // Utilities
12
12
  import mixins from '../../util/mixins'
13
+ import { keyCodes } from '../../util/helpers'
13
14
 
14
15
  // Types
15
16
  import { VNode } from 'vue'
@@ -90,7 +91,7 @@ export default baseMixins.extend<options>().extend({
90
91
  },
91
92
 
92
93
  methods: {
93
- click (e: MouseEvent) {
94
+ click (e: MouseEvent | KeyboardEvent) {
94
95
  e.stopPropagation()
95
96
 
96
97
  this.$emit('click', e)
@@ -131,6 +132,11 @@ export default baseMixins.extend<options>().extend({
131
132
 
132
133
  return children
133
134
  },
135
+ keyboardClick (e: KeyboardEvent) {
136
+ if (e.keyCode === keyCodes.space) {
137
+ this.click(e)
138
+ }
139
+ },
134
140
  toggle (step: number | string) {
135
141
  this.isActive = step.toString() === this.step.toString()
136
142
  this.isInactive = Number(step) < Number(this.step)
@@ -139,13 +145,19 @@ export default baseMixins.extend<options>().extend({
139
145
 
140
146
  render (h): VNode {
141
147
  return h('div', {
148
+ attrs: {
149
+ tabindex: this.editable ? 0 : -1,
150
+ },
142
151
  staticClass: 'v-stepper__step',
143
152
  class: this.classes,
144
153
  directives: [{
145
154
  name: 'ripple',
146
155
  value: this.editable,
147
156
  }],
148
- on: { click: this.click },
157
+ on: {
158
+ click: this.click,
159
+ keydown: this.keyboardClick,
160
+ },
149
161
  }, [
150
162
  this.genStep(),
151
163
  this.genLabel(),
@@ -1,7 +1,9 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
3
  exports[`VStepperStep.ts should accept a custom color 1`] = `
4
- <div class="v-stepper__step v-stepper__step--inactive v-stepper__step--complete">
4
+ <div tabindex="-1"
5
+ class="v-stepper__step v-stepper__step--inactive v-stepper__step--complete"
6
+ >
5
7
  <span class="v-stepper__step__step pink">
6
8
  <i aria-hidden="true"
7
9
  class="v-icon notranslate mdi mdi-check theme--light"
@@ -14,7 +16,9 @@ exports[`VStepperStep.ts should accept a custom color 1`] = `
14
16
  `;
15
17
 
16
18
  exports[`VStepperStep.ts should accept a custom css color 1`] = `
17
- <div class="v-stepper__step v-stepper__step--inactive v-stepper__step--complete">
19
+ <div tabindex="-1"
20
+ class="v-stepper__step v-stepper__step--inactive v-stepper__step--complete"
21
+ >
18
22
  <span class="v-stepper__step__step"
19
23
  style="background-color: rgb(170, 187, 204); border-color: #aabbcc;"
20
24
  >
@@ -29,7 +33,9 @@ exports[`VStepperStep.ts should accept a custom css color 1`] = `
29
33
  `;
30
34
 
31
35
  exports[`VStepperStep.ts should render 1`] = `
32
- <div class="v-stepper__step v-stepper__step--inactive">
36
+ <div tabindex="-1"
37
+ class="v-stepper__step v-stepper__step--inactive"
38
+ >
33
39
  <span class="v-stepper__step__step">
34
40
  1
35
41
  </span>
@@ -39,7 +45,9 @@ exports[`VStepperStep.ts should render 1`] = `
39
45
  `;
40
46
 
41
47
  exports[`VStepperStep.ts should render complete step 1`] = `
42
- <div class="v-stepper__step v-stepper__step--inactive v-stepper__step--complete">
48
+ <div tabindex="-1"
49
+ class="v-stepper__step v-stepper__step--inactive v-stepper__step--complete"
50
+ >
43
51
  <span class="v-stepper__step__step primary">
44
52
  <i aria-hidden="true"
45
53
  class="v-icon notranslate mdi mdi-check theme--light"
@@ -52,7 +60,9 @@ exports[`VStepperStep.ts should render complete step 1`] = `
52
60
  `;
53
61
 
54
62
  exports[`VStepperStep.ts should render editable step 1`] = `
55
- <div class="v-stepper__step v-stepper__step--editable v-stepper__step--inactive v-stepper__step--complete">
63
+ <div tabindex="0"
64
+ class="v-stepper__step v-stepper__step--editable v-stepper__step--inactive v-stepper__step--complete"
65
+ >
56
66
  <span class="v-stepper__step__step primary">
57
67
  <i aria-hidden="true"
58
68
  class="v-icon notranslate material-icons theme--light"
@@ -66,7 +76,9 @@ exports[`VStepperStep.ts should render editable step 1`] = `
66
76
  `;
67
77
 
68
78
  exports[`VStepperStep.ts should render step with error 1`] = `
69
- <div class="v-stepper__step v-stepper__step--inactive v-stepper__step--error error--text">
79
+ <div tabindex="-1"
80
+ class="v-stepper__step v-stepper__step--inactive v-stepper__step--error error--text"
81
+ >
70
82
  <span class="v-stepper__step__step">
71
83
  <i aria-hidden="true"
72
84
  class="v-icon notranslate material-icons theme--light"
@@ -11,6 +11,9 @@ import { ExtractVue } from './../../util/mixins'
11
11
  // Types
12
12
  import { VNode } from 'vue/types'
13
13
 
14
+ // Components
15
+ import VTabsBar from '../VTabs/VTabsBar'
16
+
14
17
  const baseMixins = mixins(
15
18
  Routable,
16
19
  // Must be after routable
@@ -19,8 +22,11 @@ const baseMixins = mixins(
19
22
  Themeable
20
23
  )
21
24
 
25
+ type VTabBarInstance = InstanceType<typeof VTabsBar>
26
+
22
27
  interface options extends ExtractVue<typeof baseMixins> {
23
28
  $el: HTMLElement
29
+ tabsBar: VTabBarInstance
24
30
  }
25
31
 
26
32
  export default baseMixins.extend<options>().extend(
@@ -49,7 +55,9 @@ export default baseMixins.extend<options>().extend(
49
55
  }
50
56
  },
51
57
  value (): any {
52
- let to = this.to || this.href || ''
58
+ let to = this.to || this.href
59
+
60
+ if (to == null) return to
53
61
 
54
62
  if (this.$router &&
55
63
  this.to === Object(this.to)
@@ -92,7 +100,7 @@ export default baseMixins.extend<options>().extend(
92
100
  },
93
101
  toggle () {
94
102
  // VItemGroup treats a change event as a click
95
- if (!this.isActive) {
103
+ if (!this.isActive || (!this.tabsBar.mandatory && !this.to)) {
96
104
  this.$emit('change')
97
105
  }
98
106
  },
@@ -1,5 +1,14 @@
1
1
  @import './_variables.scss'
2
2
 
3
+ +theme(v-textarea) using ($material)
4
+ &.v-text-field--solo-inverted
5
+ &.v-input--is-focused
6
+ textarea
7
+ color: map-deep-get($material, 'inputs', 'solo-inverted-focused-text')
8
+
9
+ textarea::placeholder
10
+ color: map-deep-get($material, 'inputs', 'solo-inverted-focused-placeholder')
11
+
3
12
  .v-textarea
4
13
  textarea
5
14
  align-self: stretch
@@ -49,6 +58,10 @@
49
58
  &.v-text-field--solo
50
59
  align-items: flex-start
51
60
 
61
+ .v-input__control
62
+ textarea
63
+ caret-color: auto
64
+
52
65
  // Essentially revert styles
53
66
  // applied by v-text-field
54
67
  .v-input__prepend-inner,
@@ -17,9 +17,12 @@
17
17
  position: absolute
18
18
  text-transform: initial
19
19
  width: auto
20
- opacity: 1
20
+ opacity: 0
21
21
  pointer-events: none
22
22
 
23
+ &.menuable__content__active
24
+ opacity: $tooltip-opacity
25
+
23
26
  &--fixed
24
27
  position: fixed
25
28
 
@@ -34,6 +34,10 @@ export default mixins(Colorable, Delayable, Dependent, Menuable, Toggleable).ext
34
34
  type: Boolean,
35
35
  default: true,
36
36
  },
37
+ openOnFocus: {
38
+ type: Boolean,
39
+ default: true,
40
+ },
37
41
  tag: {
38
42
  type: String,
39
43
  default: 'span',
@@ -125,7 +129,6 @@ export default mixins(Colorable, Delayable, Dependent, Menuable, Toggleable).ext
125
129
  left: this.calculatedLeft,
126
130
  maxWidth: convertToUnit(this.maxWidth),
127
131
  minWidth: convertToUnit(this.minWidth),
128
- opacity: this.isActive ? 0.9 : 0,
129
132
  top: this.calculatedTop,
130
133
  zIndex: this.zIndex || this.activeZIndex,
131
134
  }
@@ -158,14 +161,17 @@ export default mixins(Colorable, Delayable, Dependent, Menuable, Toggleable).ext
158
161
  genActivatorListeners () {
159
162
  const listeners = Activatable.options.methods.genActivatorListeners.call(this)
160
163
 
161
- listeners.focus = (e: Event) => {
162
- this.getActivator(e)
163
- this.runDelay('open')
164
- }
165
- listeners.blur = (e: Event) => {
166
- this.getActivator(e)
167
- this.runDelay('close')
164
+ if (this.openOnFocus) {
165
+ listeners.focus = (e: Event) => {
166
+ this.getActivator(e)
167
+ this.runDelay('open')
168
+ }
169
+ listeners.blur = (e: Event) => {
170
+ this.getActivator(e)
171
+ this.runDelay('close')
172
+ }
168
173
  }
174
+
169
175
  listeners.keydown = (e: KeyboardEvent) => {
170
176
  if (e.keyCode === keyCodes.esc) {
171
177
  this.getActivator(e)
@@ -2,6 +2,7 @@
2
2
 
3
3
  $tooltip-background-color: rgba(map-get($grey, 'darken-2'), 0.9) !default;
4
4
  $tooltip-text-color: map-get($shades, 'white') !default;
5
+ $tooltip-opacity: .9 !default;
5
6
  $tooltip-border-radius: $border-radius-root !default;
6
7
  $tooltip-font-size: 14px !default;
7
8
  $tooltip-transition-timing-function: map-get($transition, 'linear-out-slow-in') !default;
@@ -59,6 +59,7 @@ export default mixins(
59
59
  default: () => ([]),
60
60
  } as PropValidator<NodeArray>,
61
61
  dense: Boolean,
62
+ disabled: Boolean,
62
63
  filter: Function as PropType<TreeviewItemFunction>,
63
64
  hoverable: Boolean,
64
65
  items: {
@@ -415,7 +416,7 @@ export default mixins(
415
416
  }).map(item => {
416
417
  const genChild = VTreeviewNode.options.methods.genChild.bind(this)
417
418
 
418
- return genChild(item, getObjectValueByPath(item, this.itemDisabled))
419
+ return genChild(item, this.disabled || getObjectValueByPath(item, this.itemDisabled))
419
420
  })
420
421
  /* istanbul ignore next */
421
422
  : this.$slots.default! // TODO: remove type annotation with TS 3.2
@@ -36,6 +36,7 @@ export const VTreeviewNodeProps = {
36
36
  type: String,
37
37
  default: 'primary',
38
38
  },
39
+ disablePerNode: Boolean,
39
40
  expandIcon: {
40
41
  type: String,
41
42
  default: '$subgroup',
@@ -122,7 +123,7 @@ const VTreeviewNode = baseMixins.extend<options>().extend({
122
123
  disabled (): boolean {
123
124
  return (
124
125
  getObjectValueByPath(this.item, this.itemDisabled) ||
125
- (this.parentIsDisabled && this.selectionType === 'leaf')
126
+ (!this.disablePerNode && (this.parentIsDisabled && this.selectionType === 'leaf'))
126
127
  )
127
128
  },
128
129
  key (): string {
@@ -310,6 +311,7 @@ const VTreeviewNode = baseMixins.extend<options>().extend({
310
311
  selectable: this.selectable,
311
312
  selectedColor: this.selectedColor,
312
313
  color: this.color,
314
+ disablePerNode: this.disablePerNode,
313
315
  expandIcon: this.expandIcon,
314
316
  indeterminateIcon: this.indeterminateIcon,
315
317
  offIcon: this.offIcon,
@@ -43,6 +43,7 @@ export * from './VMain'
43
43
  export * from './VMenu'
44
44
  export * from './VMessages'
45
45
  export * from './VNavigationDrawer'
46
+ export * from './VOtpInput'
46
47
  export * from './VOverflowBtn'
47
48
  export * from './VOverlay'
48
49
  export * from './VPagination'
@@ -1,4 +1,4 @@
1
- @import './_variables.scss'
1
+ @import '../../styles/styles.sass'
2
2
 
3
3
  .v-ripple
4
4
  &__container
@@ -28,9 +28,12 @@
28
28
 
29
29
  &--enter
30
30
  transition: none
31
+ opacity: 0
31
32
 
32
33
  &--in
33
34
  transition: $ripple-animation-transition-in
35
+ opacity: $ripple-animation-visible-opacity
34
36
 
35
37
  &--out
36
38
  transition: $ripple-animation-transition-out
39
+ opacity: 0
@@ -17,10 +17,6 @@ function transform (el: HTMLElement, value: string) {
17
17
  el.style.webkitTransform = value
18
18
  }
19
19
 
20
- function opacity (el: HTMLElement, value: number) {
21
- el.style.opacity = value.toString()
22
- }
23
-
24
20
  export interface RippleOptions {
25
21
  class?: string
26
22
  center?: boolean
@@ -109,14 +105,12 @@ const ripples = {
109
105
  animation.classList.add('v-ripple__animation--enter')
110
106
  animation.classList.add('v-ripple__animation--visible')
111
107
  transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)
112
- opacity(animation, 0)
113
108
  animation.dataset.activated = String(performance.now())
114
109
 
115
110
  setTimeout(() => {
116
111
  animation.classList.remove('v-ripple__animation--enter')
117
112
  animation.classList.add('v-ripple__animation--in')
118
113
  transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)
119
- opacity(animation, 0.25)
120
114
  }, 0)
121
115
  },
122
116
 
@@ -137,7 +131,6 @@ const ripples = {
137
131
  setTimeout(() => {
138
132
  animation.classList.remove('v-ripple__animation--in')
139
133
  animation.classList.add('v-ripple__animation--out')
140
- opacity(animation, 0)
141
134
 
142
135
  setTimeout(() => {
143
136
  const ripples = el.getElementsByClassName('v-ripple__animation')
@@ -0,0 +1,69 @@
1
+ export default {
2
+ badge: 'Emblem',
3
+ close: 'Luk',
4
+ dataIterator: {
5
+ noResultsText: 'Ingen matchende data fundet',
6
+ loadingText: 'Indhenter data...',
7
+ },
8
+ dataTable: {
9
+ itemsPerPageText: 'Rækker pr. side:',
10
+ ariaLabel: {
11
+ sortDescending: 'Sorteret faldende.',
12
+ sortAscending: 'Sorteret stigende.',
13
+ sortNone: 'Ikke sorteret.',
14
+ activateNone: 'Aktiver for at fjerne sortering.',
15
+ activateDescending: 'Aktiver for at sortere faldende.',
16
+ activateAscending: 'Aktiver for at sortere stigende.',
17
+ },
18
+ sortBy: 'Sorter efter',
19
+ },
20
+ dataFooter: {
21
+ itemsPerPageText: 'Rækker pr. side:',
22
+ itemsPerPageAll: 'Alle',
23
+ nextPage: 'Næste side',
24
+ prevPage: 'Forrige side',
25
+ firstPage: 'Første side',
26
+ lastPage: 'Sidste side',
27
+ pageText: '{0}-{1} af {2}',
28
+ },
29
+ datePicker: {
30
+ itemsSelected: '{0} valgt',
31
+ nextMonthAriaLabel: 'Næste måned',
32
+ nextYearAriaLabel: 'Næste år',
33
+ prevMonthAriaLabel: 'Forrige måned',
34
+ prevYearAriaLabel: 'Forrige år',
35
+ },
36
+ noDataText: 'Ingen data tilgængelig',
37
+ carousel: {
38
+ prev: 'Forrige visuelle',
39
+ next: 'Næste visuelle',
40
+ ariaLabel: {
41
+ delimiter: 'Karrusel dias {0} af {1}',
42
+ },
43
+ },
44
+ calendar: {
45
+ moreEvents: '{0} mere',
46
+ },
47
+ fileInput: {
48
+ counter: '{0} filer',
49
+ counterSize: '{0} filer ({1} total)',
50
+ },
51
+ timePicker: {
52
+ am: 'AM',
53
+ pm: 'PM',
54
+ },
55
+ pagination: {
56
+ ariaLabel: {
57
+ wrapper: 'Pagineringsnavigation',
58
+ next: 'Næste side',
59
+ previous: 'Forrige side',
60
+ page: 'Gå til side {0}',
61
+ currentPage: 'Nuværende side, Side {0}',
62
+ },
63
+ },
64
+ rating: {
65
+ ariaLabel: {
66
+ icon: 'Bedømmelse {0} af {1}',
67
+ },
68
+ },
69
+ }
@@ -4,6 +4,7 @@ export { default as bg } from './bg'
4
4
  export { default as ca } from './ca'
5
5
  export { default as ckb } from './ckb'
6
6
  export { default as cs } from './cs'
7
+ export { default as da } from './da'
7
8
  export { default as de } from './de'
8
9
  export { default as el } from './el'
9
10
  export { default as en } from './en'
package/src/locale/it.ts CHANGED
@@ -22,8 +22,8 @@ export default {
22
22
  itemsPerPageAll: 'Tutti',
23
23
  nextPage: 'Pagina seguente',
24
24
  prevPage: 'Pagina precedente',
25
- firstPage: 'Pagina prima',
26
- lastPage: 'Pagina ultima',
25
+ firstPage: 'Prima pagina',
26
+ lastPage: 'Ultima pagina',
27
27
  pageText: '{0}-{1} di {2}',
28
28
  },
29
29
  datePicker: {
@@ -38,15 +38,15 @@ export default {
38
38
  prev: 'Vista precedente',
39
39
  next: 'Prossima vista',
40
40
  ariaLabel: {
41
- delimiter: 'Carousel slide {0} of {1}',
41
+ delimiter: 'Carousel slide {0} di {1}',
42
42
  },
43
43
  },
44
44
  calendar: {
45
45
  moreEvents: '{0} di più',
46
46
  },
47
47
  fileInput: {
48
- counter: '{0} files',
49
- counterSize: '{0} files ({1} in totale)',
48
+ counter: '{0} file',
49
+ counterSize: '{0} file ({1} in totale)',
50
50
  },
51
51
  timePicker: {
52
52
  am: 'AM',
@@ -63,7 +63,7 @@ export default {
63
63
  },
64
64
  rating: {
65
65
  ariaLabel: {
66
- icon: 'Rating {0} of {1}',
66
+ icon: 'Valutazione {0} di {1}',
67
67
  },
68
68
  },
69
69
  }
@@ -2,8 +2,7 @@
2
2
 
3
3
  exports[`activatable.ts should render activator slot with hover 1`] = `
4
4
  <div>
5
- <button role="button"
6
- aria-haspopup="true"
5
+ <button aria-haspopup="true"
7
6
  aria-expanded="false"
8
7
  >
9
8
  </button>
@@ -30,6 +30,10 @@ export default baseMixins.extend({
30
30
  },
31
31
  disabled: Boolean,
32
32
  internalActivator: Boolean,
33
+ openOnClick: {
34
+ type: Boolean,
35
+ default: true,
36
+ },
33
37
  openOnHover: Boolean,
34
38
  openOnFocus: Boolean,
35
39
  },
@@ -89,7 +93,7 @@ export default baseMixins.extend({
89
93
  },
90
94
  genActivatorAttributes () {
91
95
  return {
92
- role: 'button',
96
+ role: (this.openOnClick && !this.openOnHover) ? 'button' : undefined,
93
97
  'aria-haspopup': true,
94
98
  'aria-expanded': String(this.isActive),
95
99
  }
@@ -108,7 +112,7 @@ export default baseMixins.extend({
108
112
  this.getActivator(e)
109
113
  this.runDelay('close')
110
114
  }
111
- } else {
115
+ } else if (this.openOnClick) {
112
116
  listeners.click = (e: MouseEvent) => {
113
117
  const activator = this.getActivator(e)
114
118
  if (activator) activator.focus()
@@ -78,7 +78,6 @@ export default baseMixins.extend<options>().extend({
78
78
  default: 0,
79
79
  },
80
80
  offsetOverflow: Boolean,
81
- openOnClick: Boolean,
82
81
  positionX: {
83
82
  type: Number,
84
83
  default: null,
@@ -298,13 +297,15 @@ export default baseMixins.extend<options>().extend({
298
297
 
299
298
  const onClick = listeners.click
300
299
 
301
- listeners.click = (e: MouseEvent & KeyboardEvent & FocusEvent) => {
302
- if (this.openOnClick) {
303
- onClick && onClick(e)
304
- }
300
+ if (onClick) {
301
+ listeners.click = (e: MouseEvent & KeyboardEvent & FocusEvent) => {
302
+ if (this.openOnClick) {
303
+ onClick && onClick(e)
304
+ }
305
305
 
306
- this.absoluteX = e.clientX
307
- this.absoluteY = e.clientY
306
+ this.absoluteX = e.clientX
307
+ this.absoluteY = e.clientY
308
+ }
308
309
  }
309
310
 
310
311
  return listeners
@@ -80,9 +80,6 @@ export default Vue.extend({
80
80
  },
81
81
 
82
82
  methods: {
83
- click (e: MouseEvent): void {
84
- this.$emit('click', e)
85
- },
86
83
  generateRouteLink () {
87
84
  let exact = this.exact
88
85
  let tag
@@ -100,7 +97,7 @@ export default Vue.extend({
100
97
  }],
101
98
  [this.to ? 'nativeOn' : 'on']: {
102
99
  ...this.$listeners,
103
- click: this.click,
100
+ ...('click' in this ? { click: (this as any).click } : undefined), // #14447
104
101
  },
105
102
  ref: 'link',
106
103
  }
@@ -143,8 +140,8 @@ export default Vue.extend({
143
140
  },
144
141
  onRouteChange () {
145
142
  if (!this.to || !this.$refs.link || !this.$route) return
146
- const activeClass = `${this.activeClass} ${this.proxyClass || ''}`.trim()
147
- const exactActiveClass = `${this.exactActiveClass} ${this.proxyClass || ''}`.trim() || activeClass
143
+ const activeClass = `${this.activeClass || ''} ${this.proxyClass || ''}`.trim()
144
+ const exactActiveClass = `${this.exactActiveClass || ''} ${this.proxyClass || ''}`.trim() || activeClass
148
145
 
149
146
  const path = '_vnode.data.class.' + (this.exact ? exactActiveClass : activeClass)
150
147
 
@@ -36,7 +36,7 @@ export class Application extends Service implements IApplication {
36
36
  location: TargetProp,
37
37
  size: number
38
38
  ) {
39
- this.application[location] = { [uid]: size }
39
+ this.application[location][uid] = size
40
40
 
41
41
  this.update(location)
42
42
  }