quasar 2.10.0 → 2.10.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 (319) hide show
  1. package/dist/api/Dialog.json +28 -69
  2. package/dist/api/Intersection.json +25 -100
  3. package/dist/api/Loading.json +5 -20
  4. package/dist/api/LoadingBar.json +1 -7
  5. package/dist/api/LocalStorage.json +4 -16
  6. package/dist/api/Morph.json +2 -14
  7. package/dist/api/Notify.json +0 -3
  8. package/dist/api/Platform.json +1 -4
  9. package/dist/api/QAjaxBar.json +1 -11
  10. package/dist/api/QBreadcrumbs.json +0 -8
  11. package/dist/api/QBtn.json +0 -3
  12. package/dist/api/QBtnDropdown.json +0 -12
  13. package/dist/api/QCarousel.json +0 -10
  14. package/dist/api/QCarouselControl.json +0 -3
  15. package/dist/api/QCircularProgress.json +0 -23
  16. package/dist/api/QColor.json +0 -3
  17. package/dist/api/QDialog.json +18 -9
  18. package/dist/api/QDrawer.json +0 -6
  19. package/dist/api/QExpansionItem.json +0 -3
  20. package/dist/api/QFab.json +1 -6
  21. package/dist/api/QFabAction.json +1 -3
  22. package/dist/api/QField.json +1 -6
  23. package/dist/api/QFile.json +12 -29
  24. package/dist/api/QFooter.json +0 -3
  25. package/dist/api/QHeader.json +0 -6
  26. package/dist/api/QInfiniteScroll.json +9 -16
  27. package/dist/api/QInnerLoading.json +0 -4
  28. package/dist/api/QInput.json +8 -15
  29. package/dist/api/QIntersection.json +0 -4
  30. package/dist/api/QItemLabel.json +0 -5
  31. package/dist/api/QKnob.json +3 -36
  32. package/dist/api/QLayout.json +6 -24
  33. package/dist/api/QLinearProgress.json +0 -6
  34. package/dist/api/QList.json +15 -0
  35. package/dist/api/QMenu.json +7 -12
  36. package/dist/api/QOptionGroup.json +0 -3
  37. package/dist/api/QPage.json +2 -8
  38. package/dist/api/QPageScroller.json +0 -9
  39. package/dist/api/QPageSticky.json +0 -3
  40. package/dist/api/QPagination.json +4 -25
  41. package/dist/api/QParallax.json +2 -14
  42. package/dist/api/QPopupEdit.json +0 -8
  43. package/dist/api/QPopupProxy.json +21 -4
  44. package/dist/api/QRange.json +5 -32
  45. package/dist/api/QRating.json +0 -4
  46. package/dist/api/QResizeObserver.json +2 -8
  47. package/dist/api/QScrollArea.json +8 -36
  48. package/dist/api/QScrollObserver.json +6 -24
  49. package/dist/api/QSelect.json +18 -108
  50. package/dist/api/QSlideItem.json +1 -6
  51. package/dist/api/QSlideTransition.json +0 -4
  52. package/dist/api/QSlider.json +3 -24
  53. package/dist/api/QSpinner.json +0 -4
  54. package/dist/api/QSplitter.json +1 -4
  55. package/dist/api/QStepper.json +0 -7
  56. package/dist/api/QTabPanels.json +0 -7
  57. package/dist/api/QTable.json +43 -191
  58. package/dist/api/QTabs.json +0 -6
  59. package/dist/api/QTime.json +3 -12
  60. package/dist/api/QTooltip.json +7 -18
  61. package/dist/api/QTree.json +0 -3
  62. package/dist/api/QUploader.json +5 -16
  63. package/dist/api/QVirtualScroll.json +11 -56
  64. package/dist/api/Screen.json +9 -36
  65. package/dist/api/Scroll.json +2 -8
  66. package/dist/api/SessionStorage.json +4 -16
  67. package/dist/api/TouchHold.json +3 -12
  68. package/dist/api/TouchPan.json +7 -28
  69. package/dist/api/TouchRepeat.json +6 -24
  70. package/dist/api/TouchSwipe.json +3 -12
  71. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  72. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  73. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  74. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  75. package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +1 -1
  76. package/dist/icon-set/fontawesome-v6.umd.prod.js +1 -1
  77. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  78. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  79. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  80. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  81. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  82. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  83. package/dist/icon-set/material-symbols-outlined.umd.prod.js +1 -1
  84. package/dist/icon-set/material-symbols-rounded.umd.prod.js +1 -1
  85. package/dist/icon-set/material-symbols-sharp.umd.prod.js +1 -1
  86. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  87. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  88. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  89. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  90. package/dist/icon-set/mdi-v7.umd.prod.js +6 -0
  91. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  92. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  93. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  94. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +1 -1
  95. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  96. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  97. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  98. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  99. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  100. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  101. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  102. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  103. package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +1 -1
  104. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +1 -1
  105. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +1 -1
  106. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  107. package/dist/icon-set/svg-mdi-v7.umd.prod.js +6 -0
  108. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  109. package/dist/icon-set/themify.umd.prod.js +1 -1
  110. package/dist/lang/ar-TN.umd.prod.js +1 -1
  111. package/dist/lang/ar.umd.prod.js +1 -1
  112. package/dist/lang/az-Latn.umd.prod.js +1 -1
  113. package/dist/lang/bg.umd.prod.js +1 -1
  114. package/dist/lang/bn.umd.prod.js +1 -1
  115. package/dist/lang/ca.umd.prod.js +1 -1
  116. package/dist/lang/cs.umd.prod.js +1 -1
  117. package/dist/lang/da.umd.prod.js +1 -1
  118. package/dist/lang/de.umd.prod.js +1 -1
  119. package/dist/lang/el.umd.prod.js +1 -1
  120. package/dist/lang/en-GB.umd.prod.js +1 -1
  121. package/dist/lang/en-US.umd.prod.js +1 -1
  122. package/dist/lang/eo.umd.prod.js +1 -1
  123. package/dist/lang/es.umd.prod.js +1 -1
  124. package/dist/lang/et.umd.prod.js +1 -1
  125. package/dist/lang/eu.umd.prod.js +1 -1
  126. package/dist/lang/fa-IR.umd.prod.js +1 -1
  127. package/dist/lang/fa.umd.prod.js +1 -1
  128. package/dist/lang/fi.umd.prod.js +1 -1
  129. package/dist/lang/fr.umd.prod.js +1 -1
  130. package/dist/lang/gn.umd.prod.js +1 -1
  131. package/dist/lang/he.umd.prod.js +1 -1
  132. package/dist/lang/hr.umd.prod.js +1 -1
  133. package/dist/lang/hu.umd.prod.js +1 -1
  134. package/dist/lang/id.umd.prod.js +1 -1
  135. package/dist/lang/is.umd.prod.js +1 -1
  136. package/dist/lang/it.umd.prod.js +1 -1
  137. package/dist/lang/ja.umd.prod.js +1 -1
  138. package/dist/lang/km.umd.prod.js +1 -1
  139. package/dist/lang/ko-KR.umd.prod.js +1 -1
  140. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  141. package/dist/lang/kz.umd.prod.js +1 -1
  142. package/dist/lang/lt.umd.prod.js +1 -1
  143. package/dist/lang/lu.umd.prod.js +1 -1
  144. package/dist/lang/lv.umd.prod.js +1 -1
  145. package/dist/lang/ml.umd.prod.js +1 -1
  146. package/dist/lang/mm.umd.prod.js +1 -1
  147. package/dist/lang/ms.umd.prod.js +1 -1
  148. package/dist/lang/my.umd.prod.js +1 -1
  149. package/dist/lang/nb-NO.umd.prod.js +1 -1
  150. package/dist/lang/nl.umd.prod.js +1 -1
  151. package/dist/lang/pl.umd.prod.js +1 -1
  152. package/dist/lang/pt-BR.umd.prod.js +1 -1
  153. package/dist/lang/pt.umd.prod.js +1 -1
  154. package/dist/lang/ro.umd.prod.js +1 -1
  155. package/dist/lang/ru.umd.prod.js +1 -1
  156. package/dist/lang/sk.umd.prod.js +1 -1
  157. package/dist/lang/sl.umd.prod.js +1 -1
  158. package/dist/lang/sm.umd.prod.js +1 -1
  159. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  160. package/dist/lang/sr.umd.prod.js +1 -1
  161. package/dist/lang/sv.umd.prod.js +1 -1
  162. package/dist/lang/ta.umd.prod.js +1 -1
  163. package/dist/lang/th.umd.prod.js +1 -1
  164. package/dist/lang/tr.umd.prod.js +1 -1
  165. package/dist/lang/ug.umd.prod.js +1 -1
  166. package/dist/lang/uk.umd.prod.js +1 -1
  167. package/dist/lang/uz-Cyrl.umd.prod.js +1 -1
  168. package/dist/lang/uz-Latn.umd.prod.js +1 -1
  169. package/dist/lang/vi.umd.prod.js +1 -1
  170. package/dist/lang/zh-CN.umd.prod.js +1 -1
  171. package/dist/lang/zh-TW.umd.prod.js +1 -1
  172. package/dist/quasar.cjs.prod.js +2 -2
  173. package/dist/quasar.css +3 -3
  174. package/dist/quasar.esm.js +223 -192
  175. package/dist/quasar.esm.prod.js +2 -2
  176. package/dist/quasar.prod.css +1 -1
  177. package/dist/quasar.rtl.css +10 -3
  178. package/dist/quasar.rtl.prod.css +1 -1
  179. package/dist/quasar.sass +5 -4
  180. package/dist/quasar.umd.js +222 -191
  181. package/dist/quasar.umd.prod.js +2 -2
  182. package/dist/types/api/dialog.d.ts +101 -0
  183. package/dist/types/api/qpopupproxy.d.ts +3 -0
  184. package/dist/types/api.d.ts +2 -0
  185. package/dist/types/index.d.ts +56 -97
  186. package/dist/vetur/quasar-attributes.json +4 -0
  187. package/dist/vetur/quasar-tags.json +2 -1
  188. package/dist/web-types/web-types.json +142 -132
  189. package/icon-set/mdi-v7.js +146 -0
  190. package/icon-set/mdi-v7.mjs +141 -0
  191. package/icon-set/svg-mdi-v7.js +224 -0
  192. package/icon-set/svg-mdi-v7.mjs +224 -0
  193. package/package.json +4 -4
  194. package/src/api.extends.json +1 -2
  195. package/src/components/ajax-bar/QAjaxBar.json +5 -11
  196. package/src/components/breadcrumbs/QBreadcrumbs.json +0 -2
  197. package/src/components/breadcrumbs/QBreadcrumbsEl.json +1 -2
  198. package/src/components/btn/QBtn.json +1 -3
  199. package/src/components/btn/__tests__/QBtn.spec.js +87 -14
  200. package/src/components/btn/__tests__/use-btn.spec.js +385 -58
  201. package/src/components/btn-dropdown/QBtnDropdown.js +4 -12
  202. package/src/components/btn-dropdown/QBtnDropdown.json +0 -2
  203. package/src/components/btn-toggle/QBtnToggle.json +2 -4
  204. package/src/components/carousel/QCarousel.json +4 -9
  205. package/src/components/carousel/QCarouselControl.json +0 -1
  206. package/src/components/checkbox/use-checkbox.json +1 -2
  207. package/src/components/circular-progress/QCircularProgress.json +0 -5
  208. package/src/components/color/QColor.json +0 -1
  209. package/src/components/date/QDate.js +6 -4
  210. package/src/components/date/QDate.json +28 -56
  211. package/src/components/dialog/QDialog.js +34 -41
  212. package/src/components/dialog/QDialog.json +9 -2
  213. package/src/components/dialog-bottom-sheet/BottomSheet.js +1 -2
  214. package/src/components/dialog-plugin/DialogPlugin.js +4 -4
  215. package/src/components/drawer/QDrawer.js +5 -5
  216. package/src/components/drawer/QDrawer.json +0 -4
  217. package/src/components/editor/QEditor.json +3 -6
  218. package/src/components/expansion-item/QExpansionItem.js +3 -4
  219. package/src/components/expansion-item/QExpansionItem.json +3 -8
  220. package/src/components/fab/QFab.js +3 -6
  221. package/src/components/fab/QFab.json +0 -1
  222. package/src/components/fab/QFab.sass +2 -1
  223. package/src/components/fab/use-fab.json +0 -1
  224. package/src/components/field/QField.json +0 -1
  225. package/src/components/file/QFile.js +4 -1
  226. package/src/components/file/QFile.json +19 -20
  227. package/src/components/footer/QFooter.json +0 -1
  228. package/src/components/form/QForm.js +5 -3
  229. package/src/components/form/QForm.json +2 -4
  230. package/src/components/header/QHeader.json +0 -4
  231. package/src/components/img/QImg.js +20 -19
  232. package/src/components/infinite-scroll/QInfiniteScroll.json +9 -6
  233. package/src/components/inner-loading/QInnerLoading.js +2 -5
  234. package/src/components/input/QInput.js +12 -3
  235. package/src/components/input/QInput.json +11 -7
  236. package/src/components/input/use-mask.js +3 -1
  237. package/src/components/intersection/QIntersection.json +0 -1
  238. package/src/components/item/QItem.json +1 -2
  239. package/src/components/item/QItemLabel.json +0 -1
  240. package/src/components/item/QList.js +7 -2
  241. package/src/components/item/QList.json +7 -0
  242. package/src/components/knob/QKnob.js +3 -3
  243. package/src/components/knob/QKnob.json +3 -12
  244. package/src/components/layout/QLayout.js +1 -1
  245. package/src/components/layout/QLayout.json +6 -12
  246. package/src/components/linear-progress/QLinearProgress.json +0 -2
  247. package/src/components/menu/QMenu.js +12 -6
  248. package/src/components/menu/QMenu.json +0 -2
  249. package/src/components/option-group/QOptionGroup.json +2 -5
  250. package/src/components/page/QPage.json +3 -6
  251. package/src/components/page-scroller/QPageScroller.json +0 -2
  252. package/src/components/page-sticky/QPageSticky.json +0 -1
  253. package/src/components/pagination/QPagination.json +5 -13
  254. package/src/components/parallax/QParallax.json +2 -6
  255. package/src/components/popup-edit/QPopupEdit.js +3 -3
  256. package/src/components/popup-edit/QPopupEdit.json +4 -10
  257. package/src/components/popup-proxy/QPopupProxy.js +6 -0
  258. package/src/components/popup-proxy/QPopupProxy.json +19 -1
  259. package/src/components/radio/QRadio.json +1 -2
  260. package/src/components/range/QRange.json +2 -4
  261. package/src/components/rating/QRating.json +0 -1
  262. package/src/components/resize-observer/QResizeObserver.json +2 -4
  263. package/src/components/scroll-area/QScrollArea.js +15 -4
  264. package/src/components/scroll-area/QScrollArea.json +24 -50
  265. package/src/components/scroll-observer/QScrollObserver.js +2 -0
  266. package/src/components/scroll-observer/QScrollObserver.json +6 -12
  267. package/src/components/select/QSelect.js +28 -27
  268. package/src/components/select/QSelect.json +30 -65
  269. package/src/components/select/QSelect.sass +2 -2
  270. package/src/components/slide-item/QSlideItem.json +1 -2
  271. package/src/components/slide-transition/QSlideTransition.json +0 -1
  272. package/src/components/slider/use-slider.json +33 -70
  273. package/src/components/spinner/QSpinner.json +0 -1
  274. package/src/components/splitter/QSplitter.json +1 -2
  275. package/src/components/table/QTable.js +3 -3
  276. package/src/components/table/QTable.json +118 -239
  277. package/src/components/tabs/QRouteTab.json +0 -1
  278. package/src/components/tabs/QTabs.json +0 -2
  279. package/src/components/time/QTime.json +10 -20
  280. package/src/components/tooltip/QTooltip.js +2 -5
  281. package/src/components/tooltip/QTooltip.json +0 -4
  282. package/src/components/tree/QTree.js +6 -6
  283. package/src/components/tree/QTree.json +15 -31
  284. package/src/components/uploader/QUploader.json +13 -22
  285. package/src/components/uploader/xhr-uploader-plugin.js +1 -1
  286. package/src/components/uploader/xhr-uploader-plugin.json +25 -50
  287. package/src/components/virtual-scroll/QVirtualScroll.json +5 -10
  288. package/src/components/virtual-scroll/use-virtual-scroll.js +1 -1
  289. package/src/components/virtual-scroll/use-virtual-scroll.json +8 -19
  290. package/src/composables/private/use-field.js +1 -1
  291. package/src/composables/private/use-field.json +2 -3
  292. package/src/composables/private/use-file.json +4 -13
  293. package/src/composables/private/use-model-toggle.js +3 -3
  294. package/src/composables/private/use-panel.js +2 -2
  295. package/src/composables/private/use-panel.json +0 -2
  296. package/src/composables/private/use-portal.js +5 -1
  297. package/src/composables/private/use-portal.json +7 -1
  298. package/src/composables/private/use-transition.js +17 -11
  299. package/src/composables/private/use-transition.json +0 -1
  300. package/src/composables/private/use-validate.json +1 -3
  301. package/src/directives/Intersection.json +26 -53
  302. package/src/directives/Morph.json +4 -8
  303. package/src/directives/Mutation.json +6 -12
  304. package/src/directives/Scroll.json +2 -4
  305. package/src/directives/TouchHold.json +3 -6
  306. package/src/directives/TouchPan.json +7 -14
  307. package/src/directives/TouchRepeat.json +6 -12
  308. package/src/directives/TouchSwipe.json +3 -6
  309. package/src/plugins/BottomSheet.json +1 -2
  310. package/src/plugins/Cookies.json +2 -4
  311. package/src/plugins/Dialog.json +35 -73
  312. package/src/plugins/Loading.json +6 -11
  313. package/src/plugins/LoadingBar.json +3 -6
  314. package/src/plugins/Notify.json +4 -5
  315. package/src/plugins/Platform.json +3 -6
  316. package/src/plugins/Screen.json +9 -18
  317. package/src/utils/private/global-dialog.json +6 -12
  318. package/src/utils/private/portal.js +4 -4
  319. package/src/utils/private/web-storage.json +6 -10
@@ -151,8 +151,7 @@
151
151
  "type": "Boolean",
152
152
  "desc": "Highlight the toolbar button, when a child option has been selected."
153
153
  }
154
- },
155
- "__exemption": [ "examples" ]
154
+ }
156
155
  }
157
156
  },
158
157
  "category": "toolbar"
@@ -308,8 +307,7 @@
308
307
  "desc": "Retrieve the content of the Editor",
309
308
  "returns": {
310
309
  "type": "Element",
311
- "desc": "Provides the pure HTML within the editable area",
312
- "__exemption": [ "examples" ]
310
+ "desc": "Provides the pure HTML within the editable area"
313
311
  }
314
312
  }
315
313
  },
@@ -318,8 +316,7 @@
318
316
  "caret": {
319
317
  "type": "Object",
320
318
  "tsType": "QEditorCaret",
321
- "desc": "The current caret state",
322
- "__exemption": [ "examples" ]
319
+ "desc": "The current caret state"
323
320
  }
324
321
  }
325
322
  }
@@ -61,7 +61,7 @@ export default createComponent({
61
61
 
62
62
  emits: [
63
63
  ...useModelToggleEmits,
64
- 'click', 'after-show', 'after-hide'
64
+ 'click', 'afterShow', 'afterHide'
65
65
  ],
66
66
 
67
67
  setup (props, { slots, emit }) {
@@ -143,7 +143,6 @@ export default createComponent({
143
143
  return {
144
144
  role: 'button',
145
145
  'aria-expanded': showing.value === true ? 'true' : 'false',
146
- 'aria-owns': targetUid,
147
146
  'aria-controls': targetUid,
148
147
  'aria-label': toggleAriaLabel
149
148
  }
@@ -170,11 +169,11 @@ export default createComponent({
170
169
  }
171
170
 
172
171
  function onShow () {
173
- emit('after-show')
172
+ emit('afterShow')
174
173
  }
175
174
 
176
175
  function onHide () {
177
- emit('after-hide')
176
+ emit('afterHide')
178
177
  }
179
178
 
180
179
  function enterGroup () {
@@ -81,7 +81,6 @@
81
81
  "type": "Number",
82
82
  "desc": "Animation duration (in milliseconds)",
83
83
  "default": 300,
84
- "examples": [ ":duration=\"1000\"" ],
85
84
  "category": "behavior"
86
85
  },
87
86
 
@@ -189,7 +188,6 @@
189
188
  "detailsId": {
190
189
  "type": "String",
191
190
  "desc": "QExpansionItem details panel id (for use in aria-controls)",
192
- "__exemption": [ "examples" ],
193
191
  "addedIn": "v2.8.4"
194
192
  },
195
193
 
@@ -200,8 +198,7 @@
200
198
  "evt": {
201
199
  "type": "Object",
202
200
  "required": false,
203
- "desc": "JS event object",
204
- "__exemption": [ "examples" ]
201
+ "desc": "JS event object"
205
202
  }
206
203
  },
207
204
  "returns": null,
@@ -215,8 +212,7 @@
215
212
  "evt": {
216
213
  "type": "Object",
217
214
  "required": false,
218
- "desc": "JS event object",
219
- "__exemption": [ "examples" ]
215
+ "desc": "JS event object"
220
216
  }
221
217
  },
222
218
  "returns": null,
@@ -230,8 +226,7 @@
230
226
  "evt": {
231
227
  "type": "Object",
232
228
  "required": false,
233
- "desc": "JS event object",
234
- "__exemption": [ "examples" ]
229
+ "desc": "JS event object"
235
230
  }
236
231
  },
237
232
  "returns": null,
@@ -77,13 +77,11 @@ export default createComponent({
77
77
 
78
78
  const actionAttrs = computed(() => {
79
79
  const attrs = {
80
- id: targetUid
80
+ id: targetUid,
81
+ role: 'menu'
81
82
  }
82
83
 
83
- if (showing.value === true) {
84
- attrs.role = 'menu'
85
- }
86
- else {
84
+ if (showing.value !== true) {
87
85
  attrs[ 'aria-hidden' ] = 'true'
88
86
  }
89
87
 
@@ -152,7 +150,6 @@ export default createComponent({
152
150
  'aria-expanded': showing.value === true ? 'true' : 'false',
153
151
  'aria-haspopup': 'true',
154
152
  'aria-controls': targetUid,
155
- 'aria-owns': targetUid,
156
153
  onClick: toggle
157
154
  }, getTriggerContent),
158
155
 
@@ -28,7 +28,6 @@
28
28
  "desc": "Direction to expand Fab Actions to",
29
29
  "default": "right",
30
30
  "values": [ "up", "right", "down", "left" ],
31
- "examples": [ "down" ],
32
31
  "category": "behavior"
33
32
  },
34
33
 
@@ -137,7 +137,8 @@
137
137
 
138
138
  &--opened
139
139
  opacity: 1
140
- transform: scale(1) translate(0, 0)
140
+ // needed when rtlcss is enabled
141
+ transform: scale(1) translate(0.1px, 0)
141
142
  pointer-events: all
142
143
 
143
144
  &--align-left
@@ -68,7 +68,6 @@
68
68
  "label": {
69
69
  "type": [ "String", "Number" ],
70
70
  "desc": "The label that will be shown when Fab is extended",
71
- "default": "",
72
71
  "examples": [ "Button Label" ],
73
72
  "category": "content"
74
73
  },
@@ -9,7 +9,6 @@
9
9
  "maxlength": {
10
10
  "type": [ "String", "Number" ],
11
11
  "desc": "Specify a max length of model",
12
- "examples": [ "12" ],
13
12
  "category": "model"
14
13
  },
15
14
 
@@ -10,6 +10,7 @@ import useFileFormDomProps from '../../composables/private/use-file-dom-props.js
10
10
  import { createComponent } from '../../utils/private/create.js'
11
11
  import { humanStorageSize } from '../../utils/format.js'
12
12
  import { prevent } from '../../utils/event.js'
13
+ import { injectProp } from '../../utils/private/inject-obj-prop.js'
13
14
 
14
15
  export default createComponent({
15
16
  name: 'QFile',
@@ -285,9 +286,11 @@ export default createComponent({
285
286
  Object.assign(proxy, {
286
287
  removeAtIndex,
287
288
  removeFile,
288
- getNativeElement: () => inputRef.value
289
+ getNativeElement: () => inputRef.value // deprecated
289
290
  })
290
291
 
292
+ injectProp(proxy, 'nativeEl', () => inputRef.value)
293
+
291
294
  return useField(state)
292
295
  }
293
296
  })
@@ -49,22 +49,19 @@
49
49
  "filesNumber": {
50
50
  "type": "Number",
51
51
  "required": true,
52
- "desc": "Number of picked files",
53
- "examples": [ 5 ]
52
+ "desc": "Number of picked files"
54
53
  },
55
54
  "maxFiles": {
56
55
  "type": [ "Number", "String" ],
57
56
  "required": true,
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",
59
- "examples": [ 5 ]
57
+ "desc": "Maximum number of files (same as 'max-files' prop, if specified); When 'max-files' is not specified, this has 'void 0' as value"
60
58
  }
61
59
  }
62
60
  }
63
61
  },
64
62
  "returns": {
65
63
  "type": "String",
66
- "desc": "String to display for the counter label",
67
- "__exemption": [ "examples" ]
64
+ "desc": "String to display for the counter label"
68
65
  },
69
66
  "examples": [
70
67
  ":counter-label=\"counterLabelFn\""
@@ -105,14 +102,12 @@
105
102
  "scope": {
106
103
  "index": {
107
104
  "type": "Number",
108
- "desc": "Selection index",
109
- "examples": [ 0 ]
105
+ "desc": "Selection index"
110
106
  },
111
107
 
112
108
  "file": {
113
109
  "type": "File",
114
- "desc": "File object",
115
- "__exemption": [ "examples" ]
110
+ "desc": "File object"
116
111
  },
117
112
 
118
113
  "ref": {
@@ -128,8 +123,7 @@
128
123
  "scope": {
129
124
  "files": {
130
125
  "type": [ "FileList", "Array" ],
131
- "desc": "Array of File objects",
132
- "__exemption": [ "examples" ]
126
+ "desc": "Array of File objects"
133
127
  },
134
128
 
135
129
  "ref": {
@@ -154,8 +148,7 @@
154
148
  "index": {
155
149
  "type": "Number",
156
150
  "desc": "Index at which to remove selection",
157
- "required": true,
158
- "examples": [ 0 ]
151
+ "required": true
159
152
  }
160
153
  }
161
154
  },
@@ -166,19 +159,25 @@
166
159
  "file": {
167
160
  "type": "File",
168
161
  "desc": "File to remove (instance of File)",
169
- "required": true,
170
- "__exemption": [ "examples" ]
162
+ "required": true
171
163
  }
172
164
  }
173
165
  },
174
166
 
175
167
  "getNativeElement": {
176
- "desc": "Get the native input DOM Element",
168
+ "desc": "DEPRECATED; Access 'nativeEl' directly; Gets the native input DOM Element",
177
169
  "returns": {
178
- "type": "Object",
179
- "desc": "The underlying native input DOM Element",
180
- "__exemption": [ "examples" ]
170
+ "type": "Element",
171
+ "desc": "The underlying native input DOM Element"
181
172
  }
182
173
  }
174
+ },
175
+
176
+ "computedProps": {
177
+ "nativeEl": {
178
+ "type": "Element",
179
+ "desc": "The native input DOM Element",
180
+ "addedIn": "v2.10.1"
181
+ }
183
182
  }
184
183
  }
@@ -35,7 +35,6 @@
35
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
- "examples": [ "150" ],
39
38
  "category": "behavior"
40
39
  }
41
40
  },
@@ -19,7 +19,7 @@ export default createComponent({
19
19
  onSubmit: Function
20
20
  },
21
21
 
22
- emits: [ 'reset', 'validation-success', 'validation-error' ],
22
+ emits: [ 'reset', 'validationSuccess', 'validationError' ],
23
23
 
24
24
  setup (props, { slots, emit }) {
25
25
  const vm = getCurrentInstance()
@@ -36,7 +36,7 @@ export default createComponent({
36
36
  const index = ++validateIndex
37
37
 
38
38
  const emitEvent = (res, ref) => {
39
- emit('validation-' + (res === true ? 'success' : 'error'), ref)
39
+ emit('validation' + (res === true ? 'Success' : 'Error'), ref)
40
40
  }
41
41
 
42
42
  const validateComponent = comp => {
@@ -138,7 +138,9 @@ export default createComponent({
138
138
  addFocusFn(() => {
139
139
  if (rootRef.value === null) { return }
140
140
 
141
- const target = rootRef.value.querySelector('[autofocus], [data-autofocus]')
141
+ const target = rootRef.value.querySelector('[autofocus][tabindex], [data-autofocus][tabindex]')
142
+ || rootRef.value.querySelector('[autofocus] [tabindex], [data-autofocus] [tabindex]')
143
+ || rootRef.value.querySelector('[autofocus], [data-autofocus]')
142
144
  || Array.prototype.find.call(rootRef.value.querySelectorAll('[tabindex]'), el => el.tabIndex > -1)
143
145
 
144
146
  target !== null && target !== void 0 && target.focus({ preventScroll: true })
@@ -41,8 +41,7 @@
41
41
  "params": {
42
42
  "evt": {
43
43
  "type": [ "Event", "SubmitEvent" ],
44
- "desc": "Form submission event object",
45
- "__exemption": [ "examples" ]
44
+ "desc": "Form submission event object"
46
45
  }
47
46
  }
48
47
  },
@@ -114,8 +113,7 @@
114
113
  "desc": "Get array of children vue components that support validation",
115
114
  "returns": {
116
115
  "type": "Array",
117
- "desc": "Vue components that support Quasar validation API",
118
- "__exemption": [ "examples" ]
116
+ "desc": "Vue components that support Quasar validation API"
119
117
  }
120
118
  }
121
119
  }
@@ -25,9 +25,6 @@
25
25
  "type": "Number",
26
26
  "desc": "Amount of scroll (in pixels) that should trigger a 'reveal' state change",
27
27
  "default": 250,
28
- "examples": [
29
- ":reveal-offset=\"500\""
30
- ],
31
28
  "category": "behavior"
32
29
  },
33
30
 
@@ -45,7 +42,6 @@
45
42
  "type": [ "Number", "String" ],
46
43
  "desc": "When using SSR, you can optionally hint of the height (in pixels) of the QHeader",
47
44
  "default": 50,
48
- "examples": [ "150" ],
49
45
  "category": "behavior"
50
46
  }
51
47
  },
@@ -6,7 +6,6 @@ import useRatio, { useRatioProps } from '../../composables/private/use-ratio.js'
6
6
 
7
7
  import { createComponent } from '../../utils/private/create.js'
8
8
  import { hSlot } from '../../utils/private/render.js'
9
- import { isRuntimeSsrPreHydration } from '../../plugins/Platform.js'
10
9
 
11
10
  const defaultRatio = 16 / 9
12
11
 
@@ -74,7 +73,7 @@ export default createComponent({
74
73
 
75
74
  const images = [
76
75
  ref(null),
77
- ref(props.placeholderSrc !== void 0 ? { src: props.placeholderSrc } : null)
76
+ ref(getPlaceholderSrc())
78
77
  ]
79
78
 
80
79
  const position = ref(0)
@@ -114,18 +113,24 @@ export default createComponent({
114
113
  : null
115
114
  }
116
115
 
116
+ function getPlaceholderSrc () {
117
+ return props.placeholderSrc !== void 0
118
+ ? { src: props.placeholderSrc }
119
+ : null
120
+ }
121
+
117
122
  function addImage (imgProps) {
118
123
  clearTimeout(loadTimer)
119
124
  hasError.value = false
120
125
 
121
126
  if (imgProps === null) {
122
127
  isLoading.value = false
123
- images[ 0 ].value = null
124
- images[ 1 ].value = null
125
- return
128
+ images[ position.value ^ 1 ].value = getPlaceholderSrc()
129
+ }
130
+ else {
131
+ isLoading.value = true
126
132
  }
127
133
 
128
- isLoading.value = true
129
134
  images[ position.value ].value = imgProps
130
135
  }
131
136
 
@@ -160,7 +165,7 @@ export default createComponent({
160
165
  // if component has been already destroyed
161
166
  if (loadTimer === null) { return }
162
167
 
163
- position.value = position.value === 1 ? 0 : 1
168
+ position.value = position.value ^ 1
164
169
  images[ position.value ].value = null
165
170
  isLoading.value = false
166
171
  hasError.value = false
@@ -171,19 +176,11 @@ export default createComponent({
171
176
  clearTimeout(loadTimer)
172
177
  isLoading.value = false
173
178
  hasError.value = true
174
- images[ 0 ].value = null
175
- images[ 1 ].value = null
179
+ images[ position.value ].value = null
180
+ images[ position.value ^ 1 ].value = getPlaceholderSrc()
176
181
  emit('error', err)
177
182
  }
178
183
 
179
- function getContainer (key, child) {
180
- return h(
181
- 'div',
182
- { class: 'q-img__container absolute-full', key },
183
- child
184
- )
185
- }
186
-
187
184
  function getImage (index) {
188
185
  const img = images[ index ].value
189
186
 
@@ -211,7 +208,11 @@ export default createComponent({
211
208
  data.class += ' q-img__image--loaded'
212
209
  }
213
210
 
214
- return getContainer('img' + index, h('img', data))
211
+ return h(
212
+ 'div',
213
+ { class: 'q-img__container absolute-full', key: 'img' + index },
214
+ h('img', data)
215
+ )
215
216
  }
216
217
 
217
218
  function getContent () {
@@ -242,7 +243,7 @@ export default createComponent({
242
243
  }
243
244
 
244
245
  if (__QUASAR_SSR_SERVER__ !== true) {
245
- if (__QUASAR_SSR_CLIENT__ && isRuntimeSsrPreHydration.value === true) {
246
+ if (__QUASAR_SSR_CLIENT__) {
246
247
  onMounted(() => {
247
248
  addImage(getCurrentSrc())
248
249
  })
@@ -8,7 +8,6 @@
8
8
  "type": "Number",
9
9
  "desc": "Offset (pixels) to bottom of Infinite Scroll container from which the component should start loading more content in advance",
10
10
  "default": 500,
11
- "examples": [ ":offset=\"250\"" ],
12
11
  "category": "behavior"
13
12
  },
14
13
 
@@ -16,7 +15,6 @@
16
15
  "type": [ "String", "Number" ],
17
16
  "desc": "Debounce amount (in milliseconds)",
18
17
  "default": 100,
19
- "examples": [ "0", "530" ],
20
18
  "category": "behavior"
21
19
  },
22
20
 
@@ -24,7 +22,6 @@
24
22
  "type": "Number",
25
23
  "desc": "Initialize the pagination index (used for the @load event)",
26
24
  "default": 0,
27
- "examples": [ 2, 3 ],
28
25
  "category": "behavior"
29
26
  },
30
27
 
@@ -59,8 +56,7 @@
59
56
  "params": {
60
57
  "index": {
61
58
  "type": "Number",
62
- "desc": "The index parameter can be used to make some sort of pagination on the content you load. It takes numeric values starting with 1 and incrementing with each call",
63
- "examples": [ 12 ]
59
+ "desc": "The index parameter can be used to make some sort of pagination on the content you load. It takes numeric values starting with 1 and incrementing with each call"
64
60
  },
65
61
  "done": {
66
62
  "type": "Function",
@@ -99,7 +95,14 @@
99
95
  },
100
96
 
101
97
  "setIndex": {
102
- "desc": "Overwrite the current pagination index"
98
+ "desc": "Overwrite the current pagination index",
99
+ "params": {
100
+ "newIndex": {
101
+ "type": "Number",
102
+ "desc": "New pagination index",
103
+ "required": true
104
+ }
105
+ }
103
106
  },
104
107
 
105
108
  "updateScrollTarget": {
@@ -30,7 +30,7 @@ export default createComponent({
30
30
  const vm = getCurrentInstance()
31
31
  const isDark = useDark(props, vm.proxy.$q)
32
32
 
33
- const { transition, transitionStyle } = useTransition(props, computed(() => props.showing))
33
+ const { transitionProps, transitionStyle } = useTransition(props)
34
34
 
35
35
  const classes = computed(() =>
36
36
  'q-inner-loading absolute-full column flex-center'
@@ -74,9 +74,6 @@ export default createComponent({
74
74
  : null
75
75
  }
76
76
 
77
- return () => h(Transition, {
78
- name: transition.value,
79
- appear: true
80
- }, getContent)
77
+ return () => h(Transition, transitionProps.value, getContent)
81
78
  }
82
79
  })
@@ -9,6 +9,7 @@ import useKeyComposition from '../../composables/private/use-key-composition.js'
9
9
  import { createComponent } from '../../utils/private/create.js'
10
10
  import { stop } from '../../utils/event.js'
11
11
  import { addFocusFn } from '../../utils/private/focus-manager.js'
12
+ import { injectProp } from '../../utils/private/inject-obj-prop.js'
12
13
 
13
14
  export default createComponent({
14
15
  name: 'QInput',
@@ -39,7 +40,8 @@ export default createComponent({
39
40
 
40
41
  emits: [
41
42
  ...useFieldEmits,
42
- 'paste', 'change'
43
+ 'paste', 'change',
44
+ 'keydown', 'animationend'
43
45
  ],
44
46
 
45
47
  setup (props, { emit, attrs }) {
@@ -97,7 +99,7 @@ export default createComponent({
97
99
  }
98
100
 
99
101
  if (props.autogrow === true) {
100
- evt.onAnimationend = adjustHeight
102
+ evt.onAnimationend = onAnimationend
101
103
  }
102
104
 
103
105
  return evt
@@ -252,6 +254,11 @@ export default createComponent({
252
254
  props.autogrow === true && adjustHeight()
253
255
  }
254
256
 
257
+ function onAnimationend (e) {
258
+ emit('animationend', e)
259
+ adjustHeight()
260
+ }
261
+
255
262
  function emitValue (val, stopWatcher) {
256
263
  emitValueFn = () => {
257
264
  if (
@@ -415,9 +422,11 @@ export default createComponent({
415
422
  Object.assign(proxy, {
416
423
  focus,
417
424
  select,
418
- getNativeElement: () => inputRef.value
425
+ getNativeElement: () => inputRef.value // deprecated
419
426
  })
420
427
 
428
+ injectProp(proxy, 'nativeEl', () => inputRef.value)
429
+
421
430
  return renderFn
422
431
  }
423
432
  })
@@ -28,21 +28,18 @@
28
28
  "text", "password", "textarea", "email", "search",
29
29
  "tel", "file", "number", "url", "time", "date"
30
30
  ],
31
- "examples": [ "password" ],
32
31
  "category": "general"
33
32
  },
34
33
 
35
34
  "debounce": {
36
35
  "type": [ "String", "Number" ],
37
36
  "desc": "Debounce amount (in milliseconds) when updating model",
38
- "examples": [ "0", "530" ],
39
37
  "category": "model"
40
38
  },
41
39
 
42
40
  "maxlength": {
43
41
  "type": [ "String", "Number" ],
44
42
  "desc": "Specify a max length of model",
45
- "examples": [ "12" ],
46
43
  "category": "model"
47
44
  },
48
45
 
@@ -118,12 +115,19 @@
118
115
  },
119
116
 
120
117
  "getNativeElement": {
121
- "desc": "Get the native input/textarea DOM Element",
118
+ "desc": "DEPRECATED; Access 'nativeEl' directly instead; Get the native input/textarea DOM Element",
122
119
  "returns": {
123
- "type": "Object",
124
- "desc": "The underlying native input/textarea DOM Element",
125
- "__exemption": [ "examples" ]
120
+ "type": "Element",
121
+ "desc": "The underlying native input/textarea DOM Element"
126
122
  }
127
123
  }
124
+ },
125
+
126
+ "computedProps": {
127
+ "nativeEl": {
128
+ "type": "Element",
129
+ "desc": "The native input/textarea DOM Element",
130
+ "addedIn": "v2.10.1"
131
+ }
128
132
  }
129
133
  }
@@ -186,7 +186,7 @@ export default function (props, emit, emitValue, inputRef) {
186
186
 
187
187
  computedMask = mask
188
188
  computedUnmask = val => {
189
- const unmaskMatch = unmaskMatcher.exec(val)
189
+ const unmaskMatch = unmaskMatcher.exec(props.reverseFillMask === true ? val : val.slice(0, mask.length))
190
190
  if (unmaskMatch !== null) {
191
191
  val = unmaskMatch.slice(1).join('')
192
192
  }
@@ -420,6 +420,8 @@ export default function (props, emit, emitValue, inputRef) {
420
420
  }
421
421
 
422
422
  function onMaskedKeydown (e) {
423
+ emit('keydown', e)
424
+
423
425
  if (shouldIgnoreKey(e) === true) {
424
426
  return
425
427
  }
@@ -55,7 +55,6 @@
55
55
  "type": [ "String", "Number" ],
56
56
  "desc": "Transition duration (in milliseconds, without unit)",
57
57
  "default": 300,
58
- "examples": [ 500, "1200" ],
59
58
  "category": "behavior",
60
59
  "addedIn": "v2.3.1"
61
60
  },
@@ -109,8 +109,7 @@
109
109
  },
110
110
  "returns": {
111
111
  "type": "Promise<any>",
112
- "desc": "Returns the router's navigation promise",
113
- "__exemption": [ "examples" ]
112
+ "desc": "Returns the router's navigation promise"
114
113
  }
115
114
  }
116
115
  }