quasar 2.4.13 → 2.5.0

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 (163) hide show
  1. package/dist/api/QCheckbox.json +27 -0
  2. package/dist/api/QRadio.json +18 -0
  3. package/dist/api/QTime.json +8 -2
  4. package/dist/api/QToggle.json +24 -24
  5. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  6. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  7. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  8. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  9. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  10. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  11. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  12. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  13. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  14. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  15. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  16. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  17. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  18. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  19. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  20. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  21. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  22. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  23. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  24. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  25. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  26. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  27. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  28. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  29. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  30. package/dist/icon-set/svg-mdi-v4.umd.prod.js +1 -1
  31. package/dist/icon-set/svg-mdi-v5.umd.prod.js +1 -1
  32. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  33. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  34. package/dist/icon-set/themify.umd.prod.js +1 -1
  35. package/dist/lang/ar.umd.prod.js +1 -1
  36. package/dist/lang/az-Latn.umd.prod.js +1 -1
  37. package/dist/lang/bg.umd.prod.js +1 -1
  38. package/dist/lang/bn.umd.prod.js +1 -1
  39. package/dist/lang/ca.umd.prod.js +1 -1
  40. package/dist/lang/cs.umd.prod.js +1 -1
  41. package/dist/lang/da.umd.prod.js +1 -1
  42. package/dist/lang/de.umd.prod.js +1 -1
  43. package/dist/lang/el.umd.prod.js +1 -1
  44. package/dist/lang/en-GB.umd.prod.js +1 -1
  45. package/dist/lang/en-US.umd.prod.js +1 -1
  46. package/dist/lang/eo.umd.prod.js +1 -1
  47. package/dist/lang/es.umd.prod.js +1 -1
  48. package/dist/lang/et.umd.prod.js +1 -1
  49. package/dist/lang/fa-IR.umd.prod.js +1 -1
  50. package/dist/lang/fa.umd.prod.js +1 -1
  51. package/dist/lang/fi.umd.prod.js +1 -1
  52. package/dist/lang/fr.umd.prod.js +1 -1
  53. package/dist/lang/gn.umd.prod.js +1 -1
  54. package/dist/lang/he.umd.prod.js +1 -1
  55. package/dist/lang/hr.umd.prod.js +1 -1
  56. package/dist/lang/hu.umd.prod.js +1 -1
  57. package/dist/lang/id.umd.prod.js +1 -1
  58. package/dist/lang/is.umd.prod.js +1 -1
  59. package/dist/lang/it.umd.prod.js +1 -1
  60. package/dist/lang/ja.umd.prod.js +1 -1
  61. package/dist/lang/km.umd.prod.js +1 -1
  62. package/dist/lang/ko-KR.umd.prod.js +1 -1
  63. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  64. package/dist/lang/lt.umd.prod.js +1 -1
  65. package/dist/lang/lu.umd.prod.js +1 -1
  66. package/dist/lang/lv.umd.prod.js +1 -1
  67. package/dist/lang/ml.umd.prod.js +1 -1
  68. package/dist/lang/ms.umd.prod.js +1 -1
  69. package/dist/lang/my.umd.prod.js +1 -1
  70. package/dist/lang/nb-NO.umd.prod.js +1 -1
  71. package/dist/lang/nl.umd.prod.js +1 -1
  72. package/dist/lang/pl.umd.prod.js +1 -1
  73. package/dist/lang/pt-BR.umd.prod.js +1 -1
  74. package/dist/lang/pt.umd.prod.js +1 -1
  75. package/dist/lang/ro.umd.prod.js +1 -1
  76. package/dist/lang/ru.umd.prod.js +1 -1
  77. package/dist/lang/sk.umd.prod.js +1 -1
  78. package/dist/lang/sl.umd.prod.js +1 -1
  79. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  80. package/dist/lang/sr.umd.prod.js +1 -1
  81. package/dist/lang/sv.umd.prod.js +1 -1
  82. package/dist/lang/ta.umd.prod.js +1 -1
  83. package/dist/lang/th.umd.prod.js +1 -1
  84. package/dist/lang/tr.umd.prod.js +1 -1
  85. package/dist/lang/ug.umd.prod.js +1 -1
  86. package/dist/lang/uk.umd.prod.js +1 -1
  87. package/dist/lang/vi.umd.prod.js +1 -1
  88. package/dist/lang/zh-CN.umd.prod.js +1 -1
  89. package/dist/lang/zh-TW.umd.prod.js +1 -1
  90. package/dist/quasar.cjs.prod.js +2 -2
  91. package/dist/quasar.css +34 -10
  92. package/dist/quasar.esm.prod.js +2 -2
  93. package/dist/quasar.prod.css +1 -1
  94. package/dist/quasar.rtl.css +51 -23
  95. package/dist/quasar.rtl.prod.css +1 -1
  96. package/dist/quasar.sass +29 -11
  97. package/dist/quasar.umd.js +119 -49
  98. package/dist/quasar.umd.prod.js +2 -2
  99. package/dist/ssr-directives/Morph.js +1 -1
  100. package/dist/transforms/auto-import.json +39 -3
  101. package/dist/transforms/import-map.json +18 -0
  102. package/dist/types/index.d.ts +35 -13
  103. package/dist/vetur/quasar-attributes.json +32 -12
  104. package/dist/vetur/quasar-tags.json +8 -3
  105. package/dist/web-types/web-types.json +73 -28
  106. package/package.json +13 -3
  107. package/src/components/avatar/__tests__/QAvatar.spec.js +121 -0
  108. package/src/components/badge/__tests__/QBadge.spec.js +74 -0
  109. package/src/components/breadcrumbs/QBreadcrumbs.js +1 -1
  110. package/src/components/btn/__tests__/QBtn.spec.js +55 -0
  111. package/src/components/btn/__tests__/use-btn.spec.js +189 -0
  112. package/src/components/checkbox/QCheckbox.js +34 -3
  113. package/src/components/checkbox/QCheckbox.json +17 -0
  114. package/src/components/checkbox/QCheckbox.sass +17 -5
  115. package/src/components/checkbox/use-checkbox.js +4 -0
  116. package/src/components/checkbox/use-checkbox.json +18 -0
  117. package/src/components/chip/__tests__/QChip.spec.js +155 -0
  118. package/src/components/date/__tests__/QDate.spec.js +189 -0
  119. package/src/components/date/__tests__/use-datetime.spec.js +83 -0
  120. package/src/components/dialog/__tests__/QDialog.spec.js +129 -0
  121. package/src/components/editor/__tests__/QEditor.spec.js +195 -0
  122. package/src/components/input/QInput.js +9 -0
  123. package/src/components/input/__tests__/QInput.spec.js +105 -0
  124. package/src/components/input/__tests__/use-mask.spec.js +29 -0
  125. package/src/components/menu/__tests__/QMenu.spec.js +610 -0
  126. package/src/components/menu/__tests__/WrapperOne.vue +51 -0
  127. package/src/components/menu/__tests__/WrapperTwo.vue +38 -0
  128. package/src/components/radio/QRadio.js +26 -1
  129. package/src/components/radio/QRadio.json +16 -0
  130. package/src/components/radio/QRadio.sass +17 -6
  131. package/src/components/select/QSelect.js +1 -1
  132. package/src/components/select/__tests__/QSelect.spec.js +2003 -0
  133. package/src/components/select/__tests__/WrapperOne.vue +28 -0
  134. package/src/components/table/__tests__/QTable.spec.js +635 -0
  135. package/src/components/table/__tests__/QTd.spec.js +35 -0
  136. package/src/components/table/__tests__/QTh.spec.js +27 -0
  137. package/src/components/table/__tests__/QTr.spec.js +27 -0
  138. package/src/components/tabs/__tests__/QRouteTab.spec.js +9 -0
  139. package/src/components/tabs/__tests__/QTab.spec.js +79 -0
  140. package/src/components/tabs/__tests__/QTabs.spec.js +147 -0
  141. package/src/components/time/QTime.json +2 -2
  142. package/src/components/toggle/QToggle.js +5 -13
  143. package/src/components/toggle/QToggle.json +3 -12
  144. package/src/components/uploader/__tests__/QUploader.spec.js +161 -0
  145. package/src/composables/private/__tests__/FieldWrapper.vue +39 -0
  146. package/src/composables/private/__tests__/use-anchor.spec.js +99 -0
  147. package/src/composables/private/__tests__/use-field.spec.js +351 -0
  148. package/src/composables/private/__tests__/use-file.spec.js +69 -0
  149. package/src/composables/private/__tests__/use-form.spec.js +11 -0
  150. package/src/composables/private/__tests__/use-fullscreen.spec.js +37 -0
  151. package/src/composables/private/__tests__/use-model-toggle.spec.js +306 -0
  152. package/src/composables/private/__tests__/use-portal.spec.js +4 -0
  153. package/src/composables/private/__tests__/use-router-link.spec.js +55 -0
  154. package/src/composables/private/__tests__/use-size.spec.js +37 -0
  155. package/src/composables/private/__tests__/use-transition.spec.js +108 -0
  156. package/src/composables/private/__tests__/use-validate.spec.js +111 -0
  157. package/src/composables/private/use-fullscreen.js +1 -1
  158. package/src/composables/private/use-model-toggle.js +1 -1
  159. package/src/composables/private/use-validate.js +9 -5
  160. package/src/plugins/Meta.js +1 -1
  161. package/src/plugins/Screen.js +11 -8
  162. package/src/utils/date.js +5 -5
  163. package/src/utils/private/vm.js +14 -8
@@ -58,12 +58,19 @@ export default defineReactivePlugin({
58
58
  return
59
59
  }
60
60
 
61
+ const { visualViewport } = window
62
+ const target = visualViewport || window
63
+ const getSize = visualViewport === void 0
64
+ ? () => [ window.innerWidth, window.innerHeight ]
65
+ : () => [
66
+ visualViewport.width * visualViewport.scale + window.innerWidth - document.scrollingElement.clientWidth,
67
+ visualViewport.height * visualViewport.scale + window.innerHeight - document.scrollingElement.clientHeight
68
+ ]
69
+
61
70
  const classes = $q.config.screen !== void 0 && $q.config.screen.bodyClasses === true
62
71
 
63
72
  this.__update = force => {
64
- const
65
- w = window.innerWidth,
66
- h = window.innerHeight
73
+ const [ w, h ] = getSize()
67
74
 
68
75
  if (h !== this.height) {
69
76
  this.height = h
@@ -121,11 +128,7 @@ export default defineReactivePlugin({
121
128
  }
122
129
 
123
130
  const start = () => {
124
- const
125
- style = getComputedStyle(document.body),
126
- target = window.visualViewport !== void 0
127
- ? window.visualViewport
128
- : window
131
+ const style = getComputedStyle(document.body)
129
132
 
130
133
  // if css props available
131
134
  if (style.getPropertyValue('--q-size-sm')) {
package/src/utils/date.js CHANGED
@@ -185,16 +185,16 @@ function applyYearMonthDayChange (date, mod, sign) {
185
185
  month += sign * mod.months
186
186
  }
187
187
 
188
- if (mod.days !== void 0) {
189
- day += sign * mod.days
190
- }
191
-
192
188
  date.setDate(1)
193
189
  date.setMonth(2)
194
190
 
195
191
  date.setFullYear(year)
196
192
  date.setMonth(month)
197
- date.setDate(day)
193
+ date.setDate(Math.min(day, daysInMonth(date)))
194
+
195
+ if (mod.days !== void 0) {
196
+ date.setDate(date.getDate() + sign * mod.days)
197
+ }
198
198
 
199
199
  return date
200
200
  }
@@ -15,19 +15,25 @@ export function getParentVm (vm) {
15
15
  }
16
16
  }
17
17
 
18
+ function fillNormalizedVNodes (children, vnode) {
19
+ if (typeof vnode.type === 'symbol') {
20
+ if (Array.isArray(vnode.children) === true) {
21
+ vnode.children.forEach(child => {
22
+ fillNormalizedVNodes(children, child)
23
+ })
24
+ }
25
+ }
26
+ else {
27
+ children.add(vnode)
28
+ }
29
+ }
30
+
18
31
  // vnodes from rendered in advanced slots
19
32
  export function getNormalizedVNodes (vnodes) {
20
33
  const children = new Set()
21
34
 
22
35
  vnodes.forEach(vnode => {
23
- if (typeof vnode.type === 'symbol' && Array.isArray(vnode.children) === true) {
24
- vnode.children.forEach(child => {
25
- children.add(child)
26
- })
27
- }
28
- else {
29
- children.add(vnode)
30
- }
36
+ fillNormalizedVNodes(children, vnode)
31
37
  })
32
38
 
33
39
  return Array.from(children)