quasar 2.3.0 → 2.3.4

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 (255) hide show
  1. package/dist/api/AppFullscreen.json +15 -8
  2. package/dist/api/BottomSheet.json +23 -2
  3. package/dist/api/Cookies.json +4 -3
  4. package/dist/api/Dialog.json +41 -12
  5. package/dist/api/Loading.json +4 -2
  6. package/dist/api/LoadingBar.json +8 -3
  7. package/dist/api/LocalStorage.json +8 -0
  8. package/dist/api/Morph.json +14 -7
  9. package/dist/api/Mutation.json +1 -1
  10. package/dist/api/Notify.json +41 -27
  11. package/dist/api/QAjaxBar.json +6 -3
  12. package/dist/api/QBreadcrumbs.json +8 -4
  13. package/dist/api/QBreadcrumbsEl.json +4 -2
  14. package/dist/api/QBtn.json +6 -3
  15. package/dist/api/QBtnDropdown.json +11 -6
  16. package/dist/api/QBtnToggle.json +4 -2
  17. package/dist/api/QCard.json +2 -1
  18. package/dist/api/QCardActions.json +2 -1
  19. package/dist/api/QCardSection.json +2 -1
  20. package/dist/api/QCarousel.json +10 -5
  21. package/dist/api/QCarouselControl.json +4 -2
  22. package/dist/api/QChatMessage.json +8 -4
  23. package/dist/api/QCheckbox.json +8 -4
  24. package/dist/api/QChip.json +2 -1
  25. package/dist/api/QCircularProgress.json +14 -7
  26. package/dist/api/QColor.json +6 -3
  27. package/dist/api/QDate.json +79 -5
  28. package/dist/api/QDialog.json +8 -4
  29. package/dist/api/QDrawer.json +10 -5
  30. package/dist/api/QEditor.json +17 -7
  31. package/dist/api/QExpansionItem.json +5 -3
  32. package/dist/api/QFab.json +11 -6
  33. package/dist/api/QFabAction.json +4 -2
  34. package/dist/api/QField.json +2 -1
  35. package/dist/api/QFile.json +7 -2
  36. package/dist/api/QFooter.json +3 -2
  37. package/dist/api/QForm.json +1 -1
  38. package/dist/api/QHeader.json +5 -3
  39. package/dist/api/QIcon.json +2 -1
  40. package/dist/api/QImg.json +8 -4
  41. package/dist/api/QInfiniteScroll.json +6 -3
  42. package/dist/api/QInnerLoading.json +8 -4
  43. package/dist/api/QInput.json +2 -1
  44. package/dist/api/QIntersection.json +17 -1
  45. package/dist/api/QItem.json +2 -1
  46. package/dist/api/QKnob.json +8 -4
  47. package/dist/api/QLayout.json +9 -1
  48. package/dist/api/QLinearProgress.json +4 -2
  49. package/dist/api/QMarkupTable.json +2 -1
  50. package/dist/api/QMenu.json +8 -4
  51. package/dist/api/QNoSsr.json +2 -1
  52. package/dist/api/QOptionGroup.json +2 -1
  53. package/dist/api/QPage.json +2 -1
  54. package/dist/api/QPageScroller.json +8 -4
  55. package/dist/api/QPageSticky.json +2 -1
  56. package/dist/api/QPagination.json +10 -6
  57. package/dist/api/QParallax.json +2 -1
  58. package/dist/api/QPopupEdit.json +5 -2
  59. package/dist/api/QPopupProxy.json +7 -4
  60. package/dist/api/QRange.json +8 -4
  61. package/dist/api/QRating.json +5 -2
  62. package/dist/api/QResizeObserver.json +4 -1
  63. package/dist/api/QRouteTab.json +5 -26
  64. package/dist/api/QScrollArea.json +32 -6
  65. package/dist/api/QScrollObserver.json +13 -1
  66. package/dist/api/QSelect.json +141 -47
  67. package/dist/api/QSeparator.json +2 -1
  68. package/dist/api/QSkeleton.json +8 -4
  69. package/dist/api/QSlideItem.json +9 -0
  70. package/dist/api/QSlideTransition.json +2 -1
  71. package/dist/api/QSlider.json +8 -4
  72. package/dist/api/QSpinner.json +2 -1
  73. package/dist/api/QSplitter.json +4 -2
  74. package/dist/api/QStep.json +2 -1
  75. package/dist/api/QStepper.json +6 -3
  76. package/dist/api/QTab.json +4 -2
  77. package/dist/api/QTabPanels.json +6 -3
  78. package/dist/api/QTable.json +216 -93
  79. package/dist/api/QTabs.json +4 -2
  80. package/dist/api/QTime.json +16 -4
  81. package/dist/api/QTimeline.json +4 -2
  82. package/dist/api/QTimelineEntry.json +4 -2
  83. package/dist/api/QToggle.json +8 -4
  84. package/dist/api/QTooltip.json +18 -9
  85. package/dist/api/QTree.json +34 -19
  86. package/dist/api/QUploader.json +93 -5
  87. package/dist/api/QVirtualScroll.json +26 -11
  88. package/dist/api/ScrollFire.json +1 -1
  89. package/dist/api/SessionStorage.json +8 -0
  90. package/dist/api/TouchHold.json +2 -1
  91. package/dist/api/TouchRepeat.json +2 -1
  92. package/dist/api/TouchSwipe.json +2 -1
  93. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  94. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  95. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  96. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  97. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  98. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  99. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  100. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  101. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  102. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  103. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  104. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  105. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  106. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  107. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  108. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  109. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  110. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  111. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  112. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +6 -0
  113. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  114. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  115. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  116. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  117. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  118. package/dist/icon-set/svg-mdi-v4.umd.prod.js +1 -1
  119. package/dist/icon-set/svg-mdi-v5.umd.prod.js +1 -1
  120. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  121. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  122. package/dist/icon-set/themify.umd.prod.js +1 -1
  123. package/dist/lang/ar.umd.prod.js +1 -1
  124. package/dist/lang/az-Latn.umd.prod.js +1 -1
  125. package/dist/lang/bg.umd.prod.js +1 -1
  126. package/dist/lang/bn.umd.prod.js +1 -1
  127. package/dist/lang/ca.umd.prod.js +1 -1
  128. package/dist/lang/cs.umd.prod.js +1 -1
  129. package/dist/lang/da.umd.prod.js +1 -1
  130. package/dist/lang/de.umd.prod.js +1 -1
  131. package/dist/lang/el.umd.prod.js +1 -1
  132. package/dist/lang/en-GB.umd.prod.js +1 -1
  133. package/dist/lang/en-US.umd.prod.js +1 -1
  134. package/dist/lang/eo.umd.prod.js +1 -1
  135. package/dist/lang/es.umd.prod.js +1 -1
  136. package/dist/lang/et.umd.prod.js +1 -1
  137. package/dist/lang/fa-IR.umd.prod.js +1 -1
  138. package/dist/lang/fa.umd.prod.js +1 -1
  139. package/dist/lang/fi.umd.prod.js +1 -1
  140. package/dist/lang/fr.umd.prod.js +1 -1
  141. package/dist/lang/gn.umd.prod.js +1 -1
  142. package/dist/lang/he.umd.prod.js +1 -1
  143. package/dist/lang/hr.umd.prod.js +1 -1
  144. package/dist/lang/hu.umd.prod.js +1 -1
  145. package/dist/lang/id.umd.prod.js +1 -1
  146. package/dist/lang/is.umd.prod.js +1 -1
  147. package/dist/lang/it.umd.prod.js +1 -1
  148. package/dist/lang/ja.umd.prod.js +1 -1
  149. package/dist/lang/km.umd.prod.js +1 -1
  150. package/dist/lang/ko-KR.umd.prod.js +1 -1
  151. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  152. package/dist/lang/lt.umd.prod.js +1 -1
  153. package/dist/lang/lu.umd.prod.js +1 -1
  154. package/dist/lang/lv.umd.prod.js +1 -1
  155. package/dist/lang/ml.umd.prod.js +1 -1
  156. package/dist/lang/ms.umd.prod.js +1 -1
  157. package/dist/lang/nb-NO.umd.prod.js +1 -1
  158. package/dist/lang/nl.umd.prod.js +1 -1
  159. package/dist/lang/pl.umd.prod.js +1 -1
  160. package/dist/lang/pt-BR.umd.prod.js +1 -1
  161. package/dist/lang/pt.umd.prod.js +1 -1
  162. package/dist/lang/ro.umd.prod.js +1 -1
  163. package/dist/lang/ru.umd.prod.js +1 -1
  164. package/dist/lang/sk.umd.prod.js +1 -1
  165. package/dist/lang/sl.umd.prod.js +1 -1
  166. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  167. package/dist/lang/sr.umd.prod.js +1 -1
  168. package/dist/lang/sv.umd.prod.js +1 -1
  169. package/dist/lang/ta.umd.prod.js +1 -1
  170. package/dist/lang/th.umd.prod.js +1 -1
  171. package/dist/lang/tr.umd.prod.js +1 -1
  172. package/dist/lang/ug.umd.prod.js +1 -1
  173. package/dist/lang/uk.umd.prod.js +1 -1
  174. package/dist/lang/vi.umd.prod.js +1 -1
  175. package/dist/lang/zh-CN.umd.prod.js +1 -1
  176. package/dist/lang/zh-TW.umd.prod.js +1 -1
  177. package/dist/quasar.cjs.prod.js +2 -2
  178. package/dist/quasar.css +8 -1
  179. package/dist/quasar.esm.prod.js +2 -2
  180. package/dist/quasar.prod.css +1 -1
  181. package/dist/quasar.rtl.css +13 -1
  182. package/dist/quasar.rtl.prod.css +1 -1
  183. package/dist/quasar.sass +40 -35
  184. package/dist/quasar.umd.js +74 -48
  185. package/dist/quasar.umd.prod.js +2 -2
  186. package/dist/ssr-directives/Morph.js +1 -1
  187. package/dist/types/api/cookies.d.ts +1 -1
  188. package/dist/types/composables.d.ts +5 -1
  189. package/dist/types/extras/icon-set.d.ts +1 -0
  190. package/dist/types/index.d.ts +519 -192
  191. package/dist/vetur/quasar-attributes.json +7 -3
  192. package/dist/vetur/quasar-tags.json +1 -0
  193. package/dist/web-types/web-types.json +26 -12
  194. package/icon-set/svg-ionicons-v6.js +225 -0
  195. package/package.json +5 -2
  196. package/src/body.js +14 -4
  197. package/src/components/btn/QBtn.js +1 -0
  198. package/src/components/btn-dropdown/QBtnDropdown.json +1 -0
  199. package/src/components/chip/QChip.json +1 -2
  200. package/src/components/circular-progress/QCircularProgress.json +1 -1
  201. package/src/components/date/QDate.json +59 -1
  202. package/src/components/editor/QEditor.js +2 -2
  203. package/src/components/editor/QEditor.json +6 -2
  204. package/src/components/expansion-item/QExpansionItem.json +2 -1
  205. package/src/components/fab/QFab.json +3 -1
  206. package/src/components/field/QField.json +3 -3
  207. package/src/components/file/QFile.json +9 -6
  208. package/src/components/footer/QFooter.json +1 -1
  209. package/src/components/form/QForm.json +2 -3
  210. package/src/components/header/QHeader.json +1 -1
  211. package/src/components/icon/QIcon.js +2 -2
  212. package/src/components/intersection/QIntersection.js +9 -1
  213. package/src/components/intersection/QIntersection.json +9 -0
  214. package/src/components/layout/QLayout.json +8 -1
  215. package/src/components/linear-progress/QLinearProgress.js +3 -2
  216. package/src/components/linear-progress/QLinearProgress.json +1 -1
  217. package/src/components/linear-progress/QLinearProgress.sass +1 -1
  218. package/src/components/pagination/QPagination.json +0 -1
  219. package/src/components/popup-edit/QPopupEdit.json +1 -0
  220. package/src/components/popup-proxy/QPopupProxy.json +2 -1
  221. package/src/components/rating/QRating.json +1 -1
  222. package/src/components/resize-observer/QResizeObserver.json +2 -0
  223. package/src/components/scroll-area/QScrollArea.js +8 -13
  224. package/src/components/scroll-area/QScrollArea.json +33 -10
  225. package/src/components/scroll-observer/QScrollObserver.json +11 -0
  226. package/src/components/select/QSelect.js +7 -3
  227. package/src/components/select/QSelect.json +88 -15
  228. package/src/components/slide-item/QSlideItem.json +9 -0
  229. package/src/components/slider/use-slider.js +3 -3
  230. package/src/components/table/QTable.js +1 -1
  231. package/src/components/table/QTable.json +155 -60
  232. package/src/components/table/table-pagination.js +4 -0
  233. package/src/components/tabs/QRouteTab.json +1 -23
  234. package/src/components/time/QTime.json +8 -0
  235. package/src/components/tree/QTree.json +26 -21
  236. package/src/components/tree/QTree.sass +45 -41
  237. package/src/components/uploader/xhr-uploader-plugin.json +105 -4
  238. package/src/components/virtual-scroll/QVirtualScroll.json +15 -0
  239. package/src/components/virtual-scroll/use-virtual-scroll.json +7 -5
  240. package/src/composables/private/use-field.js +4 -4
  241. package/src/composables/private/use-refocus-target.js +12 -3
  242. package/src/composables/private/use-split-attrs.js +10 -7
  243. package/src/composables/use-dialog-plugin-component.js +1 -0
  244. package/src/css/core/transitions.sass +3 -1
  245. package/src/directives/Mutation.json +2 -3
  246. package/src/directives/ScrollFire.json +2 -3
  247. package/src/install-quasar.js +1 -0
  248. package/src/plugins/AppFullscreen.json +8 -8
  249. package/src/plugins/Cookies.json +2 -2
  250. package/src/plugins/Dialog.json +6 -5
  251. package/src/plugins/LoadingBar.json +4 -3
  252. package/src/plugins/Notify.json +13 -19
  253. package/src/utils/private/global-dialog.json +16 -2
  254. package/src/utils/private/web-storage.json +10 -0
  255. package/wrappers/index.js +4 -0
@@ -61,6 +61,17 @@
61
61
  "events": {
62
62
  "type": [ "Array", "Function" ],
63
63
  "desc": "A list of events to highlight on the calendar; If using a function, it receives the date as a String and must return a Boolean (matches or not); If using a function then for best performance, reference it from your scope and do not define it inline",
64
+ "params": {
65
+ "date": {
66
+ "type": "String",
67
+ "desc": "The current date being processed.",
68
+ "examples": [ "2018/11/05", "2021/10/25" ]
69
+ }
70
+ },
71
+ "returns": {
72
+ "type": "Boolean",
73
+ "desc": "If true, the current date will be highlighted"
74
+ },
64
75
  "examples": [
65
76
  ":events=\"['2018/11/05', '2018/11/06', '2018/11/09', '2018/11/23']\"",
66
77
  ":events=\"date => date[9] % 3 === 0\""
@@ -71,6 +82,18 @@
71
82
  "event-color": {
72
83
  "type": [ "String", "Function" ],
73
84
  "desc": "Color name (from the Quasar Color Palette); If using a function, it receives the date as a String and must return a String (color for the received date); If using a function then for best performance, reference it from your scope and do not define it inline",
85
+ "params": {
86
+ "date": {
87
+ "type": "String",
88
+ "desc": "The current date being processed.",
89
+ "examples": [ "2018/11/05", "2021/10/25" ]
90
+ }
91
+ },
92
+ "returns": {
93
+ "type": "String",
94
+ "desc": "Color for the current date.",
95
+ "examples": [ "teal", "orange" ]
96
+ },
74
97
  "examples": [
75
98
  "teal-10",
76
99
  ":event-color=\"(date) => date[9] % 2 === 0 ? 'teal' : 'orange'\""
@@ -81,6 +104,17 @@
81
104
  "options": {
82
105
  "type": [ "Array", "Function" ],
83
106
  "desc": "Optionally configure the days that are selectable; If using a function, it receives the date as a String and must return a Boolean (is date acceptable or not); If using a function then for best performance, reference it from your scope and do not define it inline; Incompatible with 'range' prop",
107
+ "params": {
108
+ "date": {
109
+ "type": "String",
110
+ "desc": "The current date being processed.",
111
+ "examples": [ "2018/11/05", "2021/10/25" ]
112
+ }
113
+ },
114
+ "returns": {
115
+ "type": "Boolean",
116
+ "desc": "If true, the current date will be made available for selection"
117
+ },
84
118
  "examples": [
85
119
  ":options=\"['2018/11/05', '2018/11/12', '2018/11/19', '2018/11/26' ]\"",
86
120
  ":options=\"date => date[9] % 3 === 0\"",
@@ -175,35 +209,42 @@
175
209
  "definition": {
176
210
  "year": {
177
211
  "type": "Number",
212
+ "required": true,
178
213
  "desc": "The year of the date that the user has clicked/tapped on",
179
214
  "__exemption": [ "examples" ]
180
215
  },
181
216
  "month": {
182
217
  "type": "Number",
218
+ "required": true,
183
219
  "desc": "The month of the date that the user has clicked/tapped on",
184
220
  "__exemption": [ "examples" ]
185
221
  },
186
222
  "day": {
187
223
  "type": "Number",
224
+ "required": true,
188
225
  "desc": "The day of the month that the user has clicked/tapped on",
189
226
  "__exemption": [ "examples" ]
190
227
  },
191
228
  "from": {
192
229
  "type": "Object",
230
+ "required": false,
193
231
  "desc": "Object of properties of the range starting point (only if range)",
194
232
  "definition": {
195
233
  "year": {
196
234
  "type": "Number",
235
+ "required": true,
197
236
  "desc": "The year",
198
237
  "__exemption": [ "examples" ]
199
238
  },
200
239
  "month": {
201
240
  "type": "Number",
241
+ "required": true,
202
242
  "desc": "The month",
203
243
  "__exemption": [ "examples" ]
204
244
  },
205
245
  "day": {
206
246
  "type": "Number",
247
+ "required": true,
207
248
  "desc": "The day of month",
208
249
  "__exemption": [ "examples" ]
209
250
  }
@@ -211,20 +252,24 @@
211
252
  },
212
253
  "to": {
213
254
  "type": "Object",
255
+ "required": false,
214
256
  "desc": "Object of properties of the range ending point (only if range)",
215
257
  "definition": {
216
258
  "year": {
217
259
  "type": "Number",
260
+ "required": true,
218
261
  "desc": "The year",
219
262
  "__exemption": [ "examples" ]
220
263
  },
221
264
  "month": {
222
265
  "type": "Number",
266
+ "required": true,
223
267
  "desc": "The month",
224
268
  "__exemption": [ "examples" ]
225
269
  },
226
270
  "day": {
227
271
  "type": "Number",
272
+ "required": true,
228
273
  "desc": "The day of month",
229
274
  "__exemption": [ "examples" ]
230
275
  }
@@ -244,11 +289,13 @@
244
289
  "definition": {
245
290
  "year": {
246
291
  "type": "Number",
292
+ "required": true,
247
293
  "desc": "The year",
248
294
  "__exemption": [ "examples" ]
249
295
  },
250
296
  "month": {
251
297
  "type": "Number",
298
+ "required": true,
252
299
  "desc": "The month",
253
300
  "__exemption": [ "examples" ]
254
301
  }
@@ -266,16 +313,19 @@
266
313
  "definition": {
267
314
  "year": {
268
315
  "type": "Number",
316
+ "required": true,
269
317
  "desc": "The year",
270
318
  "__exemption": [ "examples" ]
271
319
  },
272
320
  "month": {
273
321
  "type": "Number",
322
+ "required": true,
274
323
  "desc": "The month",
275
324
  "__exemption": [ "examples" ]
276
325
  },
277
326
  "day": {
278
327
  "type": "Number",
328
+ "required": true,
279
329
  "desc": "The day of month",
280
330
  "__exemption": [ "examples" ]
281
331
  }
@@ -293,20 +343,24 @@
293
343
  "definition": {
294
344
  "from": {
295
345
  "type": "Object",
346
+ "required": true,
296
347
  "desc": "Definition of date from where the range begins",
297
348
  "definition": {
298
349
  "year": {
299
350
  "type": "Number",
351
+ "required": true,
300
352
  "desc": "The year",
301
353
  "__exemption": [ "examples" ]
302
354
  },
303
355
  "month": {
304
356
  "type": "Number",
357
+ "required": true,
305
358
  "desc": "The month",
306
359
  "__exemption": [ "examples" ]
307
360
  },
308
361
  "day": {
309
362
  "type": "Number",
363
+ "required": true,
310
364
  "desc": "The day of month",
311
365
  "__exemption": [ "examples" ]
312
366
  }
@@ -314,20 +368,24 @@
314
368
  },
315
369
  "to": {
316
370
  "type": "Object",
371
+ "required": true,
317
372
  "desc": "Definition of date to where the range ends",
318
373
  "definition": {
319
374
  "year": {
320
375
  "type": "Number",
376
+ "required": true,
321
377
  "desc": "The year",
322
378
  "__exemption": [ "examples" ]
323
379
  },
324
380
  "month": {
325
381
  "type": "Number",
382
+ "required": true,
326
383
  "desc": "The month",
327
384
  "__exemption": [ "examples" ]
328
385
  },
329
386
  "day": {
330
387
  "type": "Number",
388
+ "required": true,
331
389
  "desc": "The day of month",
332
390
  "__exemption": [ "examples" ]
333
391
  }
@@ -349,8 +407,8 @@
349
407
  "params": {
350
408
  "view": {
351
409
  "type": "String",
352
- "desc": "QDate view name",
353
410
  "required": true,
411
+ "desc": "QDate view name",
354
412
  "values": [ "Calendar", "Months", "Years" ]
355
413
  }
356
414
  }
@@ -80,12 +80,12 @@ export default createComponent({
80
80
  ],
81
81
 
82
82
  setup (props, { slots, emit, attrs }) {
83
- const { proxy } = getCurrentInstance()
83
+ const { proxy, vnode } = getCurrentInstance()
84
84
  const { $q } = proxy
85
85
 
86
86
  const isDark = useDark(props, $q)
87
87
  const { inFullscreen, toggleFullscreen } = useFullscreen()
88
- const splitAttrs = useSplitAttrs(attrs)
88
+ const splitAttrs = useSplitAttrs(attrs, vnode)
89
89
 
90
90
  const rootRef = ref(null)
91
91
  const contentRef = ref(null)
@@ -120,8 +120,12 @@
120
120
  },
121
121
  "disable": {
122
122
  "type": [ "Boolean", "Function" ],
123
- "desc": "Is button disabled? If specifying a function, return a Boolean value.",
124
- "examples": [ "() => this.userIsActive()" ]
123
+ "desc": "Is button disabled?",
124
+ "returns": {
125
+ "type": "Boolean",
126
+ "desc": "If true, the button will be disabled"
127
+ },
128
+ "examples": [ "!user.active", "() => !checkIfUserIsActive()" ]
125
129
  },
126
130
  "type": {
127
131
  "type": "String",
@@ -7,8 +7,9 @@
7
7
 
8
8
  "props": {
9
9
  "model-value": {
10
+ "extends": "model-value",
10
11
  "desc": "Model of the component defining 'open' state; Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive",
11
- "category": "model"
12
+ "required": false
12
13
  },
13
14
 
14
15
  "icon": {
@@ -3,8 +3,10 @@
3
3
 
4
4
  "props": {
5
5
  "model-value": {
6
+ "extends": "model-value",
6
7
  "desc": "Controls state of fab actions (showing/hidden); Works best with v-model directive, otherwise use along listening to 'update:modelValue' event",
7
- "category": "model"
8
+ "category": "model",
9
+ "required": false
8
10
  },
9
11
 
10
12
  "icon": {
@@ -30,9 +30,8 @@
30
30
  "examples": [ "qf_363270c0-7a83-62b1-8dcf-6dfd64ee38fa" ]
31
31
  },
32
32
  "field": {
33
- "type": "Object",
34
- "desc": "DOM element of the field",
35
- "__exemption": [ "examples" ]
33
+ "type": "Element",
34
+ "desc": "DOM element of the field"
36
35
  },
37
36
  "editable": {
38
37
  "type": "Boolean",
@@ -57,6 +56,7 @@
57
56
  "params": {
58
57
  "value": {
59
58
  "type": "Any",
59
+ "required": true,
60
60
  "desc": "Value to be emitted",
61
61
  "examples": [ 0, "Changed text" ]
62
62
  }
@@ -42,16 +42,19 @@
42
42
  "definition": {
43
43
  "totalSize": {
44
44
  "type": "String",
45
+ "required": true,
45
46
  "desc": "The total size of files in human readable format",
46
47
  "examples": [ "1.42MB" ]
47
48
  },
48
49
  "filesNumber": {
49
50
  "type": "Number",
51
+ "required": true,
50
52
  "desc": "Number of picked files",
51
53
  "examples": [ 5 ]
52
54
  },
53
55
  "maxFiles": {
54
56
  "type": [ "Number", "String" ],
57
+ "required": true,
55
58
  "desc": "Maximum number of files (same as 'max-files' prop, if specified); When 'max-files' is not specified, this has 'void 0' as value",
56
59
  "examples": [ 5 ]
57
60
  }
@@ -111,9 +114,9 @@
111
114
  },
112
115
 
113
116
  "ref": {
114
- "type": "Object",
115
- "desc": "Reference to the QFile component",
116
- "__exemption": [ "examples" ]
117
+ "type": "Component",
118
+ "tsType": "QFile",
119
+ "desc": "Reference to the QFile component"
117
120
  }
118
121
  }
119
122
  },
@@ -128,9 +131,9 @@
128
131
  },
129
132
 
130
133
  "ref": {
131
- "type": "Object",
132
- "desc": "Reference to the QFile component",
133
- "__exemption": [ "examples" ]
134
+ "type": "Component",
135
+ "tsType": "QFile",
136
+ "desc": "Reference to the QFile component"
134
137
  }
135
138
  }
136
139
  }
@@ -32,7 +32,7 @@
32
32
  },
33
33
 
34
34
  "height-hint": {
35
- "type": [ "Number", "String " ],
35
+ "type": [ "Number", "String" ],
36
36
  "desc": "When using SSR, you can optionally hint of the height (in pixels) of the QFooter",
37
37
  "default": 50,
38
38
  "examples": [ "150" ],
@@ -52,9 +52,8 @@
52
52
  "desc": "Emitted after a validation was triggered and at least one of the inner Quasar components models are NOT valid",
53
53
  "params": {
54
54
  "ref": {
55
- "type": "Object",
56
- "desc": "Vue reference to the first component that triggered the validation error",
57
- "__exemption": [ "examples" ]
55
+ "type": "Component",
56
+ "desc": "Vue reference to the first component that triggered the validation error"
58
57
  }
59
58
  }
60
59
  }
@@ -42,7 +42,7 @@
42
42
  },
43
43
 
44
44
  "height-hint": {
45
- "type": [ "Number", "String " ],
45
+ "type": [ "Number", "String" ],
46
46
  "desc": "When using SSR, you can optionally hint of the height (in pixels) of the QHeader",
47
47
  "default": 50,
48
48
  "examples": [ "150" ],
@@ -29,11 +29,11 @@ const matMap = {
29
29
 
30
30
  const libRE = new RegExp('^(' + Object.keys(libMap).join('|') + ')')
31
31
  const matRE = new RegExp('^(' + Object.keys(matMap).join('|') + ')')
32
- const mRE = /^M/
32
+ const mRE = /^[Mm] ?\d/
33
33
  const imgRE = /^img:/
34
34
  const svgUseRE = /^svguse:/
35
35
  const ionRE = /^ion-/
36
- const faLaRE = /^[l|f]a[s|r|l|b|d]? /
36
+ const faLaRE = /^[lf]a[srlbdk]? /
37
37
 
38
38
  export default createComponent({
39
39
  name: 'QIcon',
@@ -18,6 +18,10 @@ export default createComponent({
18
18
 
19
19
  once: Boolean,
20
20
  transition: String,
21
+ transitionDuration: {
22
+ type: [ String, Number ],
23
+ default: 300
24
+ },
21
25
 
22
26
  ssrPrerender: Boolean,
23
27
 
@@ -63,6 +67,10 @@ export default createComponent({
63
67
  ] ]
64
68
  })
65
69
 
70
+ const transitionStyle = computed(
71
+ () => `--q-transition-duration: ${ props.transitionDuration }ms`
72
+ )
73
+
66
74
  function trigger (entry) {
67
75
  if (showing.value !== entry.isIntersecting) {
68
76
  showing.value = entry.isIntersecting
@@ -72,7 +80,7 @@ export default createComponent({
72
80
 
73
81
  function getContent () {
74
82
  return showing.value === true
75
- ? [ h('div', { key: 'content' }, hSlot(slots.default)) ]
83
+ ? [ h('div', { key: 'content', style: transitionStyle.value }, hSlot(slots.default)) ]
76
84
  : void 0
77
85
  }
78
86
 
@@ -51,6 +51,15 @@
51
51
  "category": "behavior"
52
52
  },
53
53
 
54
+ "transition-duration": {
55
+ "type": [ "String", "Number" ],
56
+ "desc": "Transition duration (in milliseconds, without unit)",
57
+ "default": 300,
58
+ "examples": [ 500, "1200" ],
59
+ "category": "behavior",
60
+ "addedIn": "v2.3.1"
61
+ },
62
+
54
63
  "disable": {
55
64
  "type": "Boolean",
56
65
  "desc": "Disable visibility observable (content will remain as it was, visible or hidden)",
@@ -37,11 +37,13 @@
37
37
  "definition": {
38
38
  "height": {
39
39
  "type": "Number",
40
+ "required": true,
40
41
  "desc": "Layout height",
41
42
  "examples": [ 575 ]
42
43
  },
43
44
  "width": {
44
45
  "type": "Number",
46
+ "required": true,
45
47
  "desc": "Layout height",
46
48
  "examples": [ 575 ]
47
49
  }
@@ -59,27 +61,32 @@
59
61
  "definition": {
60
62
  "position": {
61
63
  "type": "Number",
64
+ "required": true,
62
65
  "desc": "Scroll offset from top (vertical)",
63
66
  "examples": [ 120 ]
64
67
  },
65
68
 
66
69
  "direction": {
67
70
  "type": "String",
71
+ "required": true,
68
72
  "desc": "Direction of scroll",
69
73
  "values": [ "up", "down" ]
70
74
  },
71
75
  "directionChanged": {
72
76
  "type": "Boolean",
77
+ "required": true,
73
78
  "desc": "Has scroll direction changed since event was last emitted?"
74
79
  },
75
80
  "delta": {
76
81
  "type": "Number",
82
+ "required": true,
77
83
  "desc": "Vertical delta distance since event was last emitted",
78
84
  "examples": [ 120 ]
79
85
  },
80
86
 
81
87
  "inflectionPoint": {
82
88
  "type": "Number",
89
+ "required": true,
83
90
  "desc": "Scroll offset from top (vertical)",
84
91
  "examples": [ 120 ]
85
92
  }
@@ -94,7 +101,7 @@
94
101
  "height": {
95
102
  "type": "Number",
96
103
  "desc": "New scroll height of layout",
97
- "examples": [1442]
104
+ "examples": [ 1442 ]
98
105
  }
99
106
  }
100
107
  }
@@ -58,6 +58,7 @@ export default createComponent({
58
58
  const sizeStyle = useSize(props, defaultSizes)
59
59
 
60
60
  const motion = computed(() => props.indeterminate === true || props.query === true)
61
+ const widthReverse = computed(() => props.reverse !== props.query)
61
62
  const style = computed(() => ({
62
63
  ...(sizeStyle.value !== null ? sizeStyle.value : {}),
63
64
  '--q-linear-progress-speed': `${ props.animationSpeed }ms`
@@ -70,7 +71,7 @@ export default createComponent({
70
71
  + (props.rounded === true ? ' rounded-borders' : '')
71
72
  )
72
73
 
73
- const trackStyle = computed(() => width(props.buffer !== void 0 ? props.buffer : 1, props.reverse, proxy.$q))
74
+ const trackStyle = computed(() => width(props.buffer !== void 0 ? props.buffer : 1, widthReverse.value, proxy.$q))
74
75
  const trackClass = computed(() =>
75
76
  'q-linear-progress__track absolute-full'
76
77
  + ` q-linear-progress__track--with${ props.instantFeedback === true ? 'out' : '' }-transition`
@@ -78,7 +79,7 @@ export default createComponent({
78
79
  + (props.trackColor !== void 0 ? ` bg-${ props.trackColor }` : '')
79
80
  )
80
81
 
81
- const modelStyle = computed(() => width(motion.value === true ? 1 : props.value, props.reverse, proxy.$q))
82
+ const modelStyle = computed(() => width(motion.value === true ? 1 : props.value, widthReverse.value, proxy.$q))
82
83
  const modelClass = computed(() =>
83
84
  'q-linear-progress__model absolute-full'
84
85
  + ` q-linear-progress__model--with${ props.instantFeedback === true ? 'out' : '' }-transition`
@@ -71,7 +71,7 @@
71
71
  "animation-speed": {
72
72
  "extends": "animation-speed",
73
73
  "default": 300,
74
- "addedIn": "v2.2.5"
74
+ "addedIn": "v2.3"
75
75
  }
76
76
  },
77
77
 
@@ -51,7 +51,7 @@
51
51
  background: rgba(255,255,255,.6)
52
52
 
53
53
  &__stripe
54
- transition: width .3s
54
+ transition: width var(--q-linear-progress-speed)
55
55
  background-image: linear-gradient(45deg, rgba(255,255,255,.15) 25%, rgba(255,255,255,0) 25%, rgba(255,255,255,0) 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, rgba(255,255,255,0) 75%, rgba(255,255,255,0)) !important
56
56
  background-size: 40px 40px !important
57
57
 
@@ -22,7 +22,6 @@
22
22
  "max": {
23
23
  "type": "Number",
24
24
  "desc": "Number of last page (must be higher than 'min')",
25
- "default": 100,
26
25
  "required": true,
27
26
  "examples": [ 10 ],
28
27
  "category": "model"
@@ -173,6 +173,7 @@
173
173
  "params": {
174
174
  "value": {
175
175
  "type": "Any",
176
+ "required": true,
176
177
  "desc": "Value to be checked",
177
178
  "examples": [ 0, "Changed text" ]
178
179
  }
@@ -7,9 +7,10 @@
7
7
 
8
8
  "props": {
9
9
  "model-value": {
10
+ "extends": "model-value",
10
11
  "type": "Boolean",
11
12
  "desc": "Defines the state of the component (shown/hidden); Either use this property (along with a listener for 'update:modelValue' event) OR use v-model directive",
12
- "category": "model"
13
+ "required": false
13
14
  },
14
15
 
15
16
  "breakpoint": {
@@ -9,7 +9,7 @@
9
9
  "model-value": {
10
10
  "extends": "model-value",
11
11
  "type": "Number",
12
- "examples": [ ":value=\"2\"" ]
12
+ "examples": [ "v-model=\"rating\"", ":model-value=\"rating\"", ":model-value=\"2\"" ]
13
13
  },
14
14
 
15
15
  "max": {
@@ -23,11 +23,13 @@
23
23
  "definition": {
24
24
  "height": {
25
25
  "type": "Number",
26
+ "required": true,
26
27
  "desc": "Layout height",
27
28
  "examples": [ 822 ]
28
29
  },
29
30
  "width": {
30
31
  "type": "Number",
32
+ "required": true,
31
33
  "desc": "Layout width",
32
34
  "examples": [ 822 ]
33
35
  }
@@ -18,6 +18,11 @@ const dirProps = {
18
18
  vertical: { offset: 'offsetY', scroll: 'scrollTop', dir: 'down', dist: 'y' },
19
19
  horizontal: { offset: 'offsetX', scroll: 'scrollLeft', dir: 'right', dist: 'x' }
20
20
  }
21
+ const panOpts = {
22
+ prevent: true,
23
+ mouse: true,
24
+ mouseAllDir: true
25
+ }
21
26
 
22
27
  export default createComponent({
23
28
  name: 'QScrollArea',
@@ -173,7 +178,7 @@ export default createComponent({
173
178
  )
174
179
 
175
180
  const mainStyle = computed(() => (
176
- scroll.vertical.thumbHidden.value === true || scroll.horizontal.thumbHidden.value === true
181
+ scroll.vertical.thumbHidden.value === true && scroll.horizontal.thumbHidden.value === true
177
182
  ? props.contentStyle
178
183
  : props.contentActiveStyle
179
184
  ))
@@ -182,24 +187,14 @@ export default createComponent({
182
187
  TouchPan,
183
188
  e => { onPanThumb(e, 'vertical') },
184
189
  void 0,
185
- {
186
- vertical: true,
187
- prevent: true,
188
- mouse: true,
189
- mouseAllDir: true
190
- }
190
+ { vertical: true, ...panOpts }
191
191
  ] ]
192
192
 
193
193
  const thumbHorizDir = [ [
194
194
  TouchPan,
195
195
  e => { onPanThumb(e, 'horizontal') },
196
196
  void 0,
197
- {
198
- horizontal: true,
199
- prevent: true,
200
- mouse: true,
201
- mouseAllDir: true
202
- }
197
+ { horizontal: true, ...panOpts }
203
198
  ] ]
204
199
 
205
200
  function getScroll () {