quasar 2.10.0 → 2.10.1

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 (306) hide show
  1. package/dist/api/Dialog.json +25 -68
  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 +0 -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/svg-bootstrap-icons.umd.prod.js +1 -1
  91. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  92. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  93. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +1 -1
  94. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  95. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  96. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  97. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  98. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  99. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  100. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  101. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  102. package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +1 -1
  103. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +1 -1
  104. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +1 -1
  105. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  106. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  107. package/dist/icon-set/themify.umd.prod.js +1 -1
  108. package/dist/lang/ar-TN.umd.prod.js +1 -1
  109. package/dist/lang/ar.umd.prod.js +1 -1
  110. package/dist/lang/az-Latn.umd.prod.js +1 -1
  111. package/dist/lang/bg.umd.prod.js +1 -1
  112. package/dist/lang/bn.umd.prod.js +1 -1
  113. package/dist/lang/ca.umd.prod.js +1 -1
  114. package/dist/lang/cs.umd.prod.js +1 -1
  115. package/dist/lang/da.umd.prod.js +1 -1
  116. package/dist/lang/de.umd.prod.js +1 -1
  117. package/dist/lang/el.umd.prod.js +1 -1
  118. package/dist/lang/en-GB.umd.prod.js +1 -1
  119. package/dist/lang/en-US.umd.prod.js +1 -1
  120. package/dist/lang/eo.umd.prod.js +1 -1
  121. package/dist/lang/es.umd.prod.js +1 -1
  122. package/dist/lang/et.umd.prod.js +1 -1
  123. package/dist/lang/eu.umd.prod.js +1 -1
  124. package/dist/lang/fa-IR.umd.prod.js +1 -1
  125. package/dist/lang/fa.umd.prod.js +1 -1
  126. package/dist/lang/fi.umd.prod.js +1 -1
  127. package/dist/lang/fr.umd.prod.js +1 -1
  128. package/dist/lang/gn.umd.prod.js +1 -1
  129. package/dist/lang/he.umd.prod.js +1 -1
  130. package/dist/lang/hr.umd.prod.js +1 -1
  131. package/dist/lang/hu.umd.prod.js +1 -1
  132. package/dist/lang/id.umd.prod.js +1 -1
  133. package/dist/lang/is.umd.prod.js +1 -1
  134. package/dist/lang/it.umd.prod.js +1 -1
  135. package/dist/lang/ja.umd.prod.js +1 -1
  136. package/dist/lang/km.umd.prod.js +1 -1
  137. package/dist/lang/ko-KR.umd.prod.js +1 -1
  138. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  139. package/dist/lang/kz.umd.prod.js +1 -1
  140. package/dist/lang/lt.umd.prod.js +1 -1
  141. package/dist/lang/lu.umd.prod.js +1 -1
  142. package/dist/lang/lv.umd.prod.js +1 -1
  143. package/dist/lang/ml.umd.prod.js +1 -1
  144. package/dist/lang/mm.umd.prod.js +1 -1
  145. package/dist/lang/ms.umd.prod.js +1 -1
  146. package/dist/lang/my.umd.prod.js +1 -1
  147. package/dist/lang/nb-NO.umd.prod.js +1 -1
  148. package/dist/lang/nl.umd.prod.js +1 -1
  149. package/dist/lang/pl.umd.prod.js +1 -1
  150. package/dist/lang/pt-BR.umd.prod.js +1 -1
  151. package/dist/lang/pt.umd.prod.js +1 -1
  152. package/dist/lang/ro.umd.prod.js +1 -1
  153. package/dist/lang/ru.umd.prod.js +1 -1
  154. package/dist/lang/sk.umd.prod.js +1 -1
  155. package/dist/lang/sl.umd.prod.js +1 -1
  156. package/dist/lang/sm.umd.prod.js +1 -1
  157. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  158. package/dist/lang/sr.umd.prod.js +1 -1
  159. package/dist/lang/sv.umd.prod.js +1 -1
  160. package/dist/lang/ta.umd.prod.js +1 -1
  161. package/dist/lang/th.umd.prod.js +1 -1
  162. package/dist/lang/tr.umd.prod.js +1 -1
  163. package/dist/lang/ug.umd.prod.js +1 -1
  164. package/dist/lang/uk.umd.prod.js +1 -1
  165. package/dist/lang/uz-Cyrl.umd.prod.js +1 -1
  166. package/dist/lang/uz-Latn.umd.prod.js +1 -1
  167. package/dist/lang/vi.umd.prod.js +1 -1
  168. package/dist/lang/zh-CN.umd.prod.js +1 -1
  169. package/dist/lang/zh-TW.umd.prod.js +1 -1
  170. package/dist/quasar.cjs.prod.js +2 -2
  171. package/dist/quasar.css +2 -2
  172. package/dist/quasar.esm.js +166 -158
  173. package/dist/quasar.esm.prod.js +2 -2
  174. package/dist/quasar.prod.css +1 -1
  175. package/dist/quasar.rtl.css +2 -2
  176. package/dist/quasar.rtl.prod.css +1 -1
  177. package/dist/quasar.sass +3 -3
  178. package/dist/quasar.umd.js +166 -158
  179. package/dist/quasar.umd.prod.js +2 -2
  180. package/dist/types/index.d.ts +50 -55
  181. package/dist/vetur/quasar-attributes.json +4 -0
  182. package/dist/vetur/quasar-tags.json +2 -1
  183. package/dist/web-types/web-types.json +142 -132
  184. package/package.json +3 -3
  185. package/src/api.extends.json +1 -2
  186. package/src/components/ajax-bar/QAjaxBar.json +5 -11
  187. package/src/components/breadcrumbs/QBreadcrumbs.json +0 -2
  188. package/src/components/breadcrumbs/QBreadcrumbsEl.json +1 -2
  189. package/src/components/btn/QBtn.json +1 -3
  190. package/src/components/btn/__tests__/QBtn.spec.js +87 -14
  191. package/src/components/btn/__tests__/use-btn.spec.js +385 -58
  192. package/src/components/btn-dropdown/QBtnDropdown.js +4 -11
  193. package/src/components/btn-dropdown/QBtnDropdown.json +0 -2
  194. package/src/components/btn-toggle/QBtnToggle.json +2 -4
  195. package/src/components/carousel/QCarousel.json +4 -9
  196. package/src/components/carousel/QCarouselControl.json +0 -1
  197. package/src/components/checkbox/use-checkbox.json +1 -2
  198. package/src/components/circular-progress/QCircularProgress.json +0 -5
  199. package/src/components/color/QColor.json +0 -1
  200. package/src/components/date/QDate.js +3 -3
  201. package/src/components/date/QDate.json +28 -56
  202. package/src/components/dialog/QDialog.js +30 -40
  203. package/src/components/dialog/QDialog.json +9 -2
  204. package/src/components/dialog-bottom-sheet/BottomSheet.js +1 -2
  205. package/src/components/dialog-plugin/DialogPlugin.js +4 -4
  206. package/src/components/drawer/QDrawer.js +5 -5
  207. package/src/components/drawer/QDrawer.json +0 -4
  208. package/src/components/editor/QEditor.json +3 -6
  209. package/src/components/expansion-item/QExpansionItem.js +3 -3
  210. package/src/components/expansion-item/QExpansionItem.json +3 -8
  211. package/src/components/fab/QFab.json +0 -1
  212. package/src/components/fab/use-fab.json +0 -1
  213. package/src/components/field/QField.json +0 -1
  214. package/src/components/file/QFile.js +4 -1
  215. package/src/components/file/QFile.json +19 -20
  216. package/src/components/footer/QFooter.json +0 -1
  217. package/src/components/form/QForm.js +5 -3
  218. package/src/components/form/QForm.json +2 -4
  219. package/src/components/header/QHeader.json +0 -4
  220. package/src/components/infinite-scroll/QInfiniteScroll.json +9 -6
  221. package/src/components/inner-loading/QInnerLoading.js +2 -5
  222. package/src/components/input/QInput.js +4 -1
  223. package/src/components/input/QInput.json +11 -7
  224. package/src/components/input/use-mask.js +1 -1
  225. package/src/components/intersection/QIntersection.json +0 -1
  226. package/src/components/item/QItem.json +1 -2
  227. package/src/components/item/QItemLabel.json +0 -1
  228. package/src/components/item/QList.js +7 -2
  229. package/src/components/item/QList.json +7 -0
  230. package/src/components/knob/QKnob.js +3 -3
  231. package/src/components/knob/QKnob.json +3 -12
  232. package/src/components/layout/QLayout.js +1 -1
  233. package/src/components/layout/QLayout.json +6 -12
  234. package/src/components/linear-progress/QLinearProgress.json +0 -2
  235. package/src/components/menu/QMenu.js +8 -5
  236. package/src/components/menu/QMenu.json +0 -2
  237. package/src/components/option-group/QOptionGroup.json +2 -5
  238. package/src/components/page/QPage.json +3 -6
  239. package/src/components/page-scroller/QPageScroller.json +0 -2
  240. package/src/components/page-sticky/QPageSticky.json +0 -1
  241. package/src/components/pagination/QPagination.json +5 -13
  242. package/src/components/parallax/QParallax.json +2 -6
  243. package/src/components/popup-edit/QPopupEdit.js +3 -3
  244. package/src/components/popup-edit/QPopupEdit.json +4 -10
  245. package/src/components/popup-proxy/QPopupProxy.json +0 -1
  246. package/src/components/radio/QRadio.json +1 -2
  247. package/src/components/range/QRange.json +2 -4
  248. package/src/components/rating/QRating.json +0 -1
  249. package/src/components/resize-observer/QResizeObserver.json +2 -4
  250. package/src/components/scroll-area/QScrollArea.js +15 -4
  251. package/src/components/scroll-area/QScrollArea.json +24 -50
  252. package/src/components/scroll-observer/QScrollObserver.js +2 -0
  253. package/src/components/scroll-observer/QScrollObserver.json +6 -12
  254. package/src/components/select/QSelect.js +20 -24
  255. package/src/components/select/QSelect.json +30 -65
  256. package/src/components/select/QSelect.sass +2 -2
  257. package/src/components/slide-item/QSlideItem.json +1 -2
  258. package/src/components/slide-transition/QSlideTransition.json +0 -1
  259. package/src/components/slider/use-slider.json +33 -70
  260. package/src/components/spinner/QSpinner.json +0 -1
  261. package/src/components/splitter/QSplitter.json +1 -2
  262. package/src/components/table/QTable.js +3 -3
  263. package/src/components/table/QTable.json +118 -239
  264. package/src/components/tabs/QRouteTab.json +0 -1
  265. package/src/components/tabs/QTabs.json +0 -2
  266. package/src/components/time/QTime.json +10 -20
  267. package/src/components/tooltip/QTooltip.js +2 -5
  268. package/src/components/tooltip/QTooltip.json +0 -4
  269. package/src/components/tree/QTree.js +6 -6
  270. package/src/components/tree/QTree.json +15 -31
  271. package/src/components/uploader/QUploader.json +13 -22
  272. package/src/components/uploader/xhr-uploader-plugin.js +1 -1
  273. package/src/components/uploader/xhr-uploader-plugin.json +25 -50
  274. package/src/components/virtual-scroll/QVirtualScroll.json +5 -10
  275. package/src/components/virtual-scroll/use-virtual-scroll.js +1 -1
  276. package/src/components/virtual-scroll/use-virtual-scroll.json +8 -19
  277. package/src/composables/private/use-field.js +1 -1
  278. package/src/composables/private/use-field.json +2 -3
  279. package/src/composables/private/use-file.json +4 -13
  280. package/src/composables/private/use-model-toggle.js +3 -3
  281. package/src/composables/private/use-panel.js +2 -2
  282. package/src/composables/private/use-panel.json +0 -2
  283. package/src/composables/private/use-portal.js +5 -1
  284. package/src/composables/private/use-portal.json +7 -1
  285. package/src/composables/private/use-transition.js +17 -11
  286. package/src/composables/private/use-transition.json +0 -1
  287. package/src/composables/private/use-validate.json +1 -3
  288. package/src/directives/Intersection.json +26 -53
  289. package/src/directives/Morph.json +4 -8
  290. package/src/directives/Mutation.json +6 -12
  291. package/src/directives/Scroll.json +2 -4
  292. package/src/directives/TouchHold.json +3 -6
  293. package/src/directives/TouchPan.json +7 -14
  294. package/src/directives/TouchRepeat.json +6 -12
  295. package/src/directives/TouchSwipe.json +3 -6
  296. package/src/plugins/BottomSheet.json +1 -2
  297. package/src/plugins/Cookies.json +2 -4
  298. package/src/plugins/Dialog.json +32 -72
  299. package/src/plugins/Loading.json +6 -11
  300. package/src/plugins/LoadingBar.json +3 -6
  301. package/src/plugins/Notify.json +4 -5
  302. package/src/plugins/Platform.json +3 -6
  303. package/src/plugins/Screen.json +9 -18
  304. package/src/utils/private/global-dialog.json +6 -12
  305. package/src/utils/private/portal.js +4 -4
  306. package/src/utils/private/web-storage.json +6 -10
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v2.10.0
2
+ * Quasar Framework v2.10.1
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -1610,7 +1610,7 @@ function prepareApp (app, uiOpts, pluginOpts) {
1610
1610
  }
1611
1611
 
1612
1612
  var installQuasar = function (parentApp, opts = {}) {
1613
- const $q = { version: '2.10.0' };
1613
+ const $q = { version: '2.10.1' };
1614
1614
 
1615
1615
  if (globalConfigIsFrozen === false) {
1616
1616
  if (opts.config !== void 0) {
@@ -4185,7 +4185,7 @@ const useModelToggleProps = {
4185
4185
  };
4186
4186
 
4187
4187
  const useModelToggleEmits = [
4188
- 'before-show', 'show', 'before-hide', 'hide'
4188
+ 'beforeShow', 'show', 'beforeHide', 'hide'
4189
4189
  ];
4190
4190
 
4191
4191
  // handleShow/handleHide -> removeTick(), self (& emit show)
@@ -4245,7 +4245,7 @@ function useModelToggle ({
4245
4245
 
4246
4246
  showing.value = true;
4247
4247
 
4248
- emit('before-show', evt);
4248
+ emit('beforeShow', evt);
4249
4249
 
4250
4250
  if (handleShow !== void 0) {
4251
4251
  handleShow(evt);
@@ -4284,7 +4284,7 @@ function useModelToggle ({
4284
4284
 
4285
4285
  showing.value = false;
4286
4286
 
4287
- emit('before-hide', evt);
4287
+ emit('beforeHide', evt);
4288
4288
 
4289
4289
  if (handleHide !== void 0) {
4290
4290
  handleHide(evt);
@@ -4406,8 +4406,8 @@ const portalProxyList = [];
4406
4406
 
4407
4407
  function getPortalProxy (el) {
4408
4408
  return portalProxyList.find(proxy =>
4409
- proxy.__qPortalInnerRef.value !== null
4410
- && proxy.__qPortalInnerRef.value.contains(el)
4409
+ proxy.contentEl !== null
4410
+ && proxy.contentEl.contains(el)
4411
4411
  )
4412
4412
  }
4413
4413
 
@@ -4421,7 +4421,7 @@ function closePortalMenus (proxy, evt) {
4421
4421
  return getParentProxy(proxy)
4422
4422
  }
4423
4423
  }
4424
- else if (proxy.__qPortalInnerRef !== void 0) {
4424
+ else if (proxy.__qPortal === true) {
4425
4425
  // treat it as point of separation if parent is QPopupProxy
4426
4426
  // (so mobile matches desktop behavior)
4427
4427
  // and hide it too
@@ -4442,7 +4442,7 @@ function closePortalMenus (proxy, evt) {
4442
4442
 
4443
4443
  function closePortals (proxy, evt, depth) {
4444
4444
  while (depth !== 0 && proxy !== void 0 && proxy !== null) {
4445
- if (proxy.__qPortalInnerRef !== void 0) {
4445
+ if (proxy.__qPortal === true) {
4446
4446
  depth--;
4447
4447
 
4448
4448
  if (proxy.$options.name === 'QMenu') {
@@ -4534,7 +4534,10 @@ function usePortal (vm, innerRef, renderPortalContent, checkGlobalDialog) {
4534
4534
  onUnmounted(() => { hidePortal(true); });
4535
4535
 
4536
4536
  // needed for portal vm detection
4537
- vm.proxy.__qPortalInnerRef = innerRef;
4537
+ vm.proxy.__qPortal = true;
4538
+
4539
+ // public way of accessing the rendered content
4540
+ injectProp(vm.proxy, 'contentEl', () => innerRef.value);
4538
4541
 
4539
4542
  return {
4540
4543
  showPortal,
@@ -4572,18 +4575,24 @@ const useTransitionProps = {
4572
4575
  }
4573
4576
  };
4574
4577
 
4575
- function useTransition (props, showing) {
4576
- const transitionState = ref(showing.value);
4578
+ function useTransition (props, defaultShowFn = () => {}, defaultHideFn = () => {}) {
4579
+ return {
4580
+ transitionProps: computed(() => {
4581
+ const show = `q-transition--${ props.transitionShow || defaultShowFn() }`;
4582
+ const hide = `q-transition--${ props.transitionHide || defaultHideFn() }`;
4577
4583
 
4578
- watch(showing, val => {
4579
- nextTick(() => { transitionState.value = val; });
4580
- });
4584
+ return {
4585
+ appear: true,
4581
4586
 
4582
- // return transition
4583
- return {
4584
- transition: computed(() => 'q-transition--' + (
4585
- transitionState.value === true ? props.transitionHide : props.transitionShow
4586
- )),
4587
+ enterFromClass: `${ show }-enter-from`,
4588
+ enterActiveClass: `${ show }-enter-active`,
4589
+ enterToClass: `${ show }-enter-to`,
4590
+
4591
+ leaveFromClass: `${ hide }-leave-from`,
4592
+ leaveActiveClass: `${ hide }-leave-active`,
4593
+ leaveToClass: `${ hide }-leave-to`
4594
+ }
4595
+ }),
4587
4596
 
4588
4597
  transitionStyle: computed(() => `--q-transition-duration: ${ props.transitionDuration }ms`)
4589
4598
  }
@@ -5306,7 +5315,7 @@ var QMenu = createComponent({
5306
5315
 
5307
5316
  emits: [
5308
5317
  ...useModelToggleEmits,
5309
- 'click', 'escape-key'
5318
+ 'click', 'escapeKey'
5310
5319
  ],
5311
5320
 
5312
5321
  setup (props, { slots, emit, attrs }) {
@@ -5327,7 +5336,7 @@ var QMenu = createComponent({
5327
5336
  const isDark = useDark(props, $q);
5328
5337
  const { registerTick, removeTick } = useTick();
5329
5338
  const { registerTimeout } = useTimeout();
5330
- const { transition, transitionStyle } = useTransition(props, showing);
5339
+ const { transitionProps, transitionStyle } = useTransition(props);
5331
5340
  const { localScrollTarget, changeScrollEvent, unconfigureScrollTarget } = useScrollTarget(props, configureScrollTarget);
5332
5341
 
5333
5342
  const { anchorEl, canShow } = useAnchor({ showing });
@@ -5407,7 +5416,10 @@ var QMenu = createComponent({
5407
5416
  let node = innerRef.value;
5408
5417
 
5409
5418
  if (node && node.contains(document.activeElement) !== true) {
5410
- node = node.querySelector('[autofocus], [data-autofocus]') || node;
5419
+ node = node.querySelector('[autofocus][tabindex], [data-autofocus][tabindex]')
5420
+ || node.querySelector('[autofocus] [tabindex], [data-autofocus] [tabindex]')
5421
+ || node.querySelector('[autofocus], [data-autofocus]')
5422
+ || node;
5411
5423
  node.focus({ preventScroll: true });
5412
5424
  }
5413
5425
  });
@@ -5544,7 +5556,7 @@ var QMenu = createComponent({
5544
5556
  }
5545
5557
 
5546
5558
  function onEscapeKey (evt) {
5547
- emit('escape-key');
5559
+ emit('escapeKey');
5548
5560
  hide(evt);
5549
5561
  }
5550
5562
 
@@ -5572,7 +5584,7 @@ var QMenu = createComponent({
5572
5584
  function renderPortalContent () {
5573
5585
  return h(
5574
5586
  Transition,
5575
- { name: transition.value, appear: true },
5587
+ transitionProps.value,
5576
5588
  () => (
5577
5589
  showing.value === true
5578
5590
  ? h('div', {
@@ -5679,13 +5691,6 @@ function uid$3 () {
5679
5691
 
5680
5692
  const btnPropsList = Object.keys(useBtnProps);
5681
5693
 
5682
- // let's not duplicate type checking and prop validations
5683
- // so just specify the props here with no type description
5684
- const btnProps = btnPropsList.reduce(
5685
- (acc, key) => (acc[ key ] = {}) && acc,
5686
- {}
5687
- );
5688
-
5689
5694
  const passBtnProps = props => btnPropsList.reduce(
5690
5695
  (acc, key) => {
5691
5696
  const val = props[ key ];
@@ -5701,7 +5706,7 @@ var QBtnDropdown = createComponent({
5701
5706
  name: 'QBtnDropdown',
5702
5707
 
5703
5708
  props: {
5704
- ...btnProps,
5709
+ ...useBtnProps,
5705
5710
  ...useTransitionProps,
5706
5711
 
5707
5712
  modelValue: Boolean,
@@ -5734,7 +5739,7 @@ var QBtnDropdown = createComponent({
5734
5739
  toggleAriaLabel: String
5735
5740
  },
5736
5741
 
5737
- emits: [ 'update:modelValue', 'click', 'before-show', 'show', 'before-hide', 'hide' ],
5742
+ emits: [ 'update:modelValue', 'click', 'beforeShow', 'show', 'beforeHide', 'hide' ],
5738
5743
 
5739
5744
  setup (props, { slots, emit }) {
5740
5745
  const { proxy } = getCurrentInstance();
@@ -5782,7 +5787,7 @@ var QBtnDropdown = createComponent({
5782
5787
 
5783
5788
  function onBeforeShow (e) {
5784
5789
  showing.value = true;
5785
- emit('before-show', e);
5790
+ emit('beforeShow', e);
5786
5791
  }
5787
5792
 
5788
5793
  function onShow (e) {
@@ -5792,7 +5797,7 @@ var QBtnDropdown = createComponent({
5792
5797
 
5793
5798
  function onBeforeHide (e) {
5794
5799
  showing.value = false;
5795
- emit('before-hide', e);
5800
+ emit('beforeHide', e);
5796
5801
  }
5797
5802
 
5798
5803
  function onHide (e) {
@@ -6554,7 +6559,7 @@ const usePanelProps = {
6554
6559
  keepAliveMax: Number
6555
6560
  };
6556
6561
 
6557
- const usePanelEmits = [ 'update:modelValue', 'before-transition', 'transition' ];
6562
+ const usePanelEmits = [ 'update:modelValue', 'beforeTransition', 'transition' ];
6558
6563
 
6559
6564
  function usePanel () {
6560
6565
  const { props, emit, proxy } = getCurrentInstance();
@@ -6626,7 +6631,7 @@ function usePanel () {
6626
6631
 
6627
6632
  if (panelIndex.value !== index) {
6628
6633
  panelIndex.value = index;
6629
- emit('before-transition', newVal, oldVal);
6634
+ emit('beforeTransition', newVal, oldVal);
6630
6635
  nextTick(() => {
6631
6636
  emit('transition', newVal, oldVal);
6632
6637
  });
@@ -13086,7 +13091,7 @@ var QDate = createComponent({
13086
13091
 
13087
13092
  emits: [
13088
13093
  ...useDatetimeEmits,
13089
- 'range-start', 'range-end', 'navigation'
13094
+ 'rangeStart', 'rangeEnd', 'navigation'
13090
13095
  ],
13091
13096
 
13092
13097
  setup (props, { slots, emit }) {
@@ -14395,7 +14400,7 @@ var QDate = createComponent({
14395
14400
  finalHash: initHash
14396
14401
  };
14397
14402
 
14398
- emit('range-start', getShortDate(day));
14403
+ emit('rangeStart', getShortDate(day));
14399
14404
  }
14400
14405
  else {
14401
14406
  const
@@ -14408,7 +14413,7 @@ var QDate = createComponent({
14408
14413
  editRange.value = null;
14409
14414
  addToModel(initHash === finalHash ? day : { target: day, ...payload });
14410
14415
 
14411
- emit('range-end', {
14416
+ emit('rangeEnd', {
14412
14417
  from: getShortDate(payload.from),
14413
14418
  to: getShortDate(payload.to)
14414
14419
  });
@@ -14713,7 +14718,7 @@ const positionClass$1 = {
14713
14718
  left: 'fixed-left items-center'
14714
14719
  };
14715
14720
 
14716
- const transitions = {
14721
+ const defaultTransitions = {
14717
14722
  standard: [ 'scale', 'scale' ],
14718
14723
  top: [ 'slide-down', 'slide-up' ],
14719
14724
  bottom: [ 'slide-up', 'slide-down' ],
@@ -14730,8 +14735,8 @@ var QDialog = createComponent({
14730
14735
  ...useModelToggleProps,
14731
14736
  ...useTransitionProps,
14732
14737
 
14733
- transitionShow: String,
14734
- transitionHide: String,
14738
+ transitionShow: String, // override useTransitionProps
14739
+ transitionHide: String, // override useTransitionProps
14735
14740
 
14736
14741
  persistent: Boolean,
14737
14742
  autoClose: Boolean,
@@ -14762,7 +14767,7 @@ var QDialog = createComponent({
14762
14767
 
14763
14768
  emits: [
14764
14769
  ...useModelToggleEmits,
14765
- 'shake', 'click', 'escape-key'
14770
+ 'shake', 'click', 'escapeKey'
14766
14771
  ],
14767
14772
 
14768
14773
  setup (props, { slots, emit, attrs }) {
@@ -14770,7 +14775,6 @@ var QDialog = createComponent({
14770
14775
 
14771
14776
  const innerRef = ref(null);
14772
14777
  const showing = ref(false);
14773
- const transitionState = ref(false);
14774
14778
  const animating = ref(false);
14775
14779
 
14776
14780
  let shakeTimeout, refocusTarget = null, isMaximized, avoidAutoClose;
@@ -14785,6 +14789,12 @@ var QDialog = createComponent({
14785
14789
  const { registerTimeout } = useTimeout();
14786
14790
  const { registerTick, removeTick } = useTick();
14787
14791
 
14792
+ const { transitionProps, transitionStyle } = useTransition(
14793
+ props,
14794
+ () => defaultTransitions[ props.position ][ 0 ],
14795
+ () => defaultTransitions[ props.position ][ 1 ]
14796
+ );
14797
+
14788
14798
  const { showPortal, hidePortal, portalIsAccessible, renderPortal } = usePortal(
14789
14799
  vm, innerRef, renderPortalContent, /* pls do check if on a global dialog */ true
14790
14800
  );
@@ -14809,26 +14819,6 @@ var QDialog = createComponent({
14809
14819
  + (props.square === true ? ' q-dialog__inner--square' : '')
14810
14820
  );
14811
14821
 
14812
- const transitionShow = computed(() =>
14813
- 'q-transition--'
14814
- + (props.transitionShow === void 0 ? transitions[ props.position ][ 0 ] : props.transitionShow)
14815
- );
14816
-
14817
- const transitionHide = computed(() =>
14818
- 'q-transition--'
14819
- + (props.transitionHide === void 0 ? transitions[ props.position ][ 1 ] : props.transitionHide)
14820
- );
14821
-
14822
- const transition = computed(() => (
14823
- transitionState.value === true
14824
- ? transitionHide.value
14825
- : transitionShow.value
14826
- ));
14827
-
14828
- const transitionStyle = computed(
14829
- () => `--q-transition-duration: ${ props.transitionDuration }ms`
14830
- );
14831
-
14832
14822
  const useBackdrop = computed(() => showing.value === true && props.seamless !== true);
14833
14823
 
14834
14824
  const onEvents = computed(() => (
@@ -14843,12 +14833,6 @@ var QDialog = createComponent({
14843
14833
  attrs.class
14844
14834
  ]);
14845
14835
 
14846
- watch(showing, val => {
14847
- nextTick(() => {
14848
- transitionState.value = val;
14849
- });
14850
- });
14851
-
14852
14836
  watch(() => props.maximized, state => {
14853
14837
  showing.value === true && updateMaximized(state);
14854
14838
  });
@@ -14948,13 +14932,23 @@ var QDialog = createComponent({
14948
14932
  return
14949
14933
  }
14950
14934
 
14951
- node = node.querySelector(selector || '[autofocus], [data-autofocus]') || node;
14935
+ node = (selector !== '' ? node.querySelector(selector) : null)
14936
+ || node.querySelector('[autofocus][tabindex], [data-autofocus][tabindex]')
14937
+ || node.querySelector('[autofocus] [tabindex], [data-autofocus] [tabindex]')
14938
+ || node.querySelector('[autofocus], [data-autofocus]')
14939
+ || node;
14952
14940
  node.focus({ preventScroll: true });
14953
14941
  });
14954
14942
  }
14955
14943
 
14956
- function shake () {
14957
- focus();
14944
+ function shake (refocusTarget) {
14945
+ if (refocusTarget && typeof refocusTarget.focus === 'function') {
14946
+ refocusTarget.focus({ preventScroll: true });
14947
+ }
14948
+ else {
14949
+ focus();
14950
+ }
14951
+
14958
14952
  emit('shake');
14959
14953
 
14960
14954
  const node = innerRef.value;
@@ -14980,7 +14974,7 @@ var QDialog = createComponent({
14980
14974
  props.maximized !== true && props.noShake !== true && shake();
14981
14975
  }
14982
14976
  else {
14983
- emit('escape-key');
14977
+ emit('escapeKey');
14984
14978
  hide();
14985
14979
  }
14986
14980
  }
@@ -15035,7 +15029,7 @@ var QDialog = createComponent({
15035
15029
  hide(e);
15036
15030
  }
15037
15031
  else if (props.noShake !== true) {
15038
- shake();
15032
+ shake(e.relatedTarget);
15039
15033
  }
15040
15034
  }
15041
15035
 
@@ -15078,14 +15072,15 @@ var QDialog = createComponent({
15078
15072
  class: 'q-dialog__backdrop fixed-full',
15079
15073
  style: transitionStyle.value,
15080
15074
  'aria-hidden': 'true',
15081
- onMousedown: onBackdropClick
15075
+ tabindex: -1,
15076
+ onFocusin: onBackdropClick
15082
15077
  })
15083
15078
  : null
15084
15079
  )),
15085
15080
 
15086
15081
  h(
15087
15082
  Transition,
15088
- { name: transition.value, appear: true },
15083
+ transitionProps.value,
15089
15084
  () => (
15090
15085
  showing.value === true
15091
15086
  ? h('div', {
@@ -15158,7 +15153,7 @@ var QDrawer = createComponent({
15158
15153
 
15159
15154
  emits: [
15160
15155
  ...useModelToggleEmits,
15161
- 'on-layout', 'mini-state'
15156
+ 'onLayout', 'miniState'
15162
15157
  ],
15163
15158
 
15164
15159
  setup (props, { slots, emit, attrs }) {
@@ -15491,7 +15486,7 @@ var QDrawer = createComponent({
15491
15486
  watch(offset, val => { updateLayout('offset', val); });
15492
15487
 
15493
15488
  watch(onLayout, val => {
15494
- emit('on-layout', val);
15489
+ emit('onLayout', val);
15495
15490
  updateLayout('space', val);
15496
15491
  });
15497
15492
 
@@ -15515,7 +15510,7 @@ var QDrawer = createComponent({
15515
15510
  }
15516
15511
  });
15517
15512
 
15518
- watch(isMini, val => { emit('mini-state', val); });
15513
+ watch(isMini, val => { emit('miniState', val); });
15519
15514
 
15520
15515
  function applyPosition (position) {
15521
15516
  if (position === void 0) {
@@ -15680,8 +15675,8 @@ var QDrawer = createComponent({
15680
15675
  }
15681
15676
 
15682
15677
  onMounted(() => {
15683
- emit('on-layout', onLayout.value);
15684
- emit('mini-state', isMini.value);
15678
+ emit('onLayout', onLayout.value);
15679
+ emit('miniState', isMini.value);
15685
15680
 
15686
15681
  lastDesktopState = props.showIfAbove === true;
15687
15682
 
@@ -16234,7 +16229,7 @@ var QTooltip = createComponent({
16234
16229
 
16235
16230
  const { registerTick, removeTick } = useTick();
16236
16231
  const { registerTimeout } = useTimeout();
16237
- const { transition, transitionStyle } = useTransition(props, showing);
16232
+ const { transitionProps, transitionStyle } = useTransition(props);
16238
16233
  const { localScrollTarget, changeScrollEvent, unconfigureScrollTarget } = useScrollTarget(props, configureScrollTarget);
16239
16234
 
16240
16235
  const { anchorEl, canShow, anchorEvents } = useAnchor({ showing, configureAnchorEl });
@@ -16431,10 +16426,7 @@ var QTooltip = createComponent({
16431
16426
  }
16432
16427
 
16433
16428
  function renderPortalContent () {
16434
- return h(Transition, {
16435
- name: transition.value,
16436
- appear: true
16437
- }, getTooltipContent)
16429
+ return h(Transition, transitionProps.value, getTooltipContent)
16438
16430
  }
16439
16431
 
16440
16432
  onBeforeUnmount(anchorCleanup);
@@ -17808,7 +17800,7 @@ var QExpansionItem = createComponent({
17808
17800
 
17809
17801
  emits: [
17810
17802
  ...useModelToggleEmits,
17811
- 'click', 'after-show', 'after-hide'
17803
+ 'click', 'afterShow', 'afterHide'
17812
17804
  ],
17813
17805
 
17814
17806
  setup (props, { slots, emit }) {
@@ -17917,11 +17909,11 @@ var QExpansionItem = createComponent({
17917
17909
  }
17918
17910
 
17919
17911
  function onShow () {
17920
- emit('after-show');
17912
+ emit('afterShow');
17921
17913
  }
17922
17914
 
17923
17915
  function onHide () {
17924
- emit('after-hide');
17916
+ emit('afterHide');
17925
17917
  }
17926
17918
 
17927
17919
  function enterGroup () {
@@ -18749,7 +18741,7 @@ const useFieldProps = {
18749
18741
  maxlength: [ Number, String ]
18750
18742
  };
18751
18743
 
18752
- const useFieldEmits = [ 'update:modelValue', 'clear', 'focus', 'blur', 'popup-show', 'popup-hide' ];
18744
+ const useFieldEmits = [ 'update:modelValue', 'clear', 'focus', 'blur', 'popupShow', 'popupHide' ];
18753
18745
 
18754
18746
  function useFieldState () {
18755
18747
  const { props, attrs, proxy, vnode } = getCurrentInstance();
@@ -19844,9 +19836,11 @@ var QFile = createComponent({
19844
19836
  Object.assign(proxy, {
19845
19837
  removeAtIndex,
19846
19838
  removeFile,
19847
- getNativeElement: () => inputRef.value
19839
+ getNativeElement: () => inputRef.value // deprecated
19848
19840
  });
19849
19841
 
19842
+ injectProp(proxy, 'nativeEl', () => inputRef.value);
19843
+
19850
19844
  return useField(state)
19851
19845
  }
19852
19846
  });
@@ -20057,7 +20051,7 @@ var QForm = createComponent({
20057
20051
  onSubmit: Function
20058
20052
  },
20059
20053
 
20060
- emits: [ 'reset', 'validation-success', 'validation-error' ],
20054
+ emits: [ 'reset', 'validationSuccess', 'validationError' ],
20061
20055
 
20062
20056
  setup (props, { slots, emit }) {
20063
20057
  const vm = getCurrentInstance();
@@ -20074,7 +20068,7 @@ var QForm = createComponent({
20074
20068
  const index = ++validateIndex;
20075
20069
 
20076
20070
  const emitEvent = (res, ref) => {
20077
- emit('validation-' + (res === true ? 'success' : 'error'), ref);
20071
+ emit('validation' + (res === true ? 'Success' : 'Error'), ref);
20078
20072
  };
20079
20073
 
20080
20074
  const validateComponent = comp => {
@@ -20176,7 +20170,9 @@ var QForm = createComponent({
20176
20170
  addFocusFn(() => {
20177
20171
  if (rootRef.value === null) { return }
20178
20172
 
20179
- const target = rootRef.value.querySelector('[autofocus], [data-autofocus]')
20173
+ const target = rootRef.value.querySelector('[autofocus][tabindex], [data-autofocus][tabindex]')
20174
+ || rootRef.value.querySelector('[autofocus] [tabindex], [data-autofocus] [tabindex]')
20175
+ || rootRef.value.querySelector('[autofocus], [data-autofocus]')
20180
20176
  || Array.prototype.find.call(rootRef.value.querySelectorAll('[tabindex]'), el => el.tabIndex > -1);
20181
20177
 
20182
20178
  target !== null && target !== void 0 && target.focus({ preventScroll: true });
@@ -20994,7 +20990,7 @@ var QInnerLoading = createComponent({
20994
20990
  const vm = getCurrentInstance();
20995
20991
  const isDark = useDark(props, vm.proxy.$q);
20996
20992
 
20997
- const { transition, transitionStyle } = useTransition(props, computed(() => props.showing));
20993
+ const { transitionProps, transitionStyle } = useTransition(props);
20998
20994
 
20999
20995
  const classes = computed(() =>
21000
20996
  'q-inner-loading absolute-full column flex-center'
@@ -21038,10 +21034,7 @@ var QInnerLoading = createComponent({
21038
21034
  : null
21039
21035
  }
21040
21036
 
21041
- return () => h(Transition, {
21042
- name: transition.value,
21043
- appear: true
21044
- }, getContent)
21037
+ return () => h(Transition, transitionProps.value, getContent)
21045
21038
  }
21046
21039
  });
21047
21040
 
@@ -21229,7 +21222,7 @@ function useMask (props, emit, emitValue, inputRef) {
21229
21222
 
21230
21223
  computedMask = mask;
21231
21224
  computedUnmask = val => {
21232
- const unmaskMatch = unmaskMatcher.exec(val);
21225
+ const unmaskMatch = unmaskMatcher.exec(props.reverseFillMask === true ? val : val.slice(0, mask.length));
21233
21226
  if (unmaskMatch !== null) {
21234
21227
  val = unmaskMatch.slice(1).join('');
21235
21228
  }
@@ -22018,9 +22011,11 @@ var QInput = createComponent({
22018
22011
  Object.assign(proxy, {
22019
22012
  focus,
22020
22013
  select,
22021
- getNativeElement: () => inputRef.value
22014
+ getNativeElement: () => inputRef.value // deprecated
22022
22015
  });
22023
22016
 
22017
+ injectProp(proxy, 'nativeEl', () => inputRef.value);
22018
+
22024
22019
  return renderFn
22025
22020
  }
22026
22021
  });
@@ -22219,7 +22214,12 @@ var QList = createComponent({
22219
22214
  bordered: Boolean,
22220
22215
  dense: Boolean,
22221
22216
  separator: Boolean,
22222
- padding: Boolean
22217
+ padding: Boolean,
22218
+
22219
+ tag: {
22220
+ type: String,
22221
+ default: 'div'
22222
+ }
22223
22223
  },
22224
22224
 
22225
22225
  setup (props, { slots }) {
@@ -22235,7 +22235,7 @@ var QList = createComponent({
22235
22235
  + (props.padding === true ? ' q-list--padding' : '')
22236
22236
  );
22237
22237
 
22238
- return () => h('div', { class: classes.value, role: 'list' }, hSlot(slots.default))
22238
+ return () => h(props.tag, { class: classes.value, role: 'list' }, hSlot(slots.default))
22239
22239
  }
22240
22240
  });
22241
22241
 
@@ -22273,7 +22273,7 @@ var QKnob = createComponent({
22273
22273
  readonly: Boolean
22274
22274
  },
22275
22275
 
22276
- emits: [ 'update:modelValue', 'change', 'drag-value' ],
22276
+ emits: [ 'update:modelValue', 'change', 'dragValue' ],
22277
22277
 
22278
22278
  setup (props, { slots, emit }) {
22279
22279
  const { proxy } = getCurrentInstance();
@@ -22320,7 +22320,7 @@ var QKnob = createComponent({
22320
22320
  )
22321
22321
  );
22322
22322
 
22323
- const decimals = computed(() => (String(props.step).trim('0').split('.')[ 1 ] || '').length);
22323
+ const decimals = computed(() => (String(props.step).trim().split('.')[ 1 ] || '').length);
22324
22324
  const step = computed(() => (props.step === 0 ? 1 : props.step));
22325
22325
  const instantFeedback = computed(() => props.instantFeedback === true || dragging.value === true);
22326
22326
 
@@ -22455,7 +22455,7 @@ var QKnob = createComponent({
22455
22455
 
22456
22456
  newModel = between(newModel, innerMin.value, innerMax.value);
22457
22457
 
22458
- emit('drag-value', newModel);
22458
+ emit('dragValue', newModel);
22459
22459
 
22460
22460
  if (model.value !== newModel) {
22461
22461
  model.value = newModel;
@@ -22630,6 +22630,8 @@ var QScrollObserver = createComponent({
22630
22630
 
22631
22631
  const { proxy } = getCurrentInstance();
22632
22632
 
22633
+ watch(() => proxy.$q.lang.rtl, emitEvent);
22634
+
22633
22635
  onMounted(() => {
22634
22636
  parentEl = proxy.$el.parentNode;
22635
22637
  configureScrollTarget();
@@ -22730,7 +22732,7 @@ var QLayout = createComponent({
22730
22732
  if (height.value !== newHeight) {
22731
22733
  resized = true;
22732
22734
  height.value = newHeight;
22733
- props.onScrollHeight !== void 0 && emit('scroll-height', newHeight);
22735
+ props.onScrollHeight !== void 0 && emit('scrollHeight', newHeight);
22734
22736
  updateScrollbarWidth();
22735
22737
  }
22736
22738
  if (width.value !== newWidth) {
@@ -24381,7 +24383,7 @@ var QPopupEdit = createComponent({
24381
24383
 
24382
24384
  emits: [
24383
24385
  'update:modelValue', 'save', 'cancel',
24384
- 'before-show', 'show', 'before-hide', 'hide'
24386
+ 'beforeShow', 'show', 'beforeHide', 'hide'
24385
24387
  ],
24386
24388
 
24387
24389
  setup (props, { slots, emit }) {
@@ -24445,7 +24447,7 @@ var QPopupEdit = createComponent({
24445
24447
  validated = false;
24446
24448
  initialValue.value = cloneDeep(props.modelValue);
24447
24449
  currentModel.value = cloneDeep(props.modelValue);
24448
- emit('before-show');
24450
+ emit('beforeShow');
24449
24451
  }
24450
24452
 
24451
24453
  function onShow () {
@@ -24463,7 +24465,7 @@ var QPopupEdit = createComponent({
24463
24465
  }
24464
24466
  }
24465
24467
 
24466
- emit('before-hide');
24468
+ emit('beforeHide');
24467
24469
  }
24468
24470
 
24469
24471
  function onHide () {
@@ -25732,7 +25734,7 @@ var QScrollArea = createComponent({
25732
25734
  scroll.horizontal.percentage = computed(() => {
25733
25735
  const diff = scroll.horizontal.size.value - container.horizontal.value;
25734
25736
  if (diff <= 0) { return 0 }
25735
- const p = between(scroll.horizontal.position.value / diff, 0, 1);
25737
+ const p = between(Math.abs(scroll.horizontal.position.value) / diff, 0, 1);
25736
25738
  return Math.round(p * 10000) / 10000
25737
25739
  });
25738
25740
  scroll.horizontal.thumbHidden = computed(() =>
@@ -25758,7 +25760,7 @@ var QScrollArea = createComponent({
25758
25760
  return {
25759
25761
  ...props.thumbStyle,
25760
25762
  ...props.horizontalThumbStyle,
25761
- left: `${ scroll.horizontal.thumbStart.value }px`,
25763
+ [ proxy.$q.lang.rtl === true ? 'right' : 'left' ]: `${ scroll.horizontal.thumbStart.value }px`,
25762
25764
  width: `${ scroll.horizontal.thumbSize.value }px`
25763
25765
  }
25764
25766
  });
@@ -25952,6 +25954,15 @@ var QScrollArea = createComponent({
25952
25954
 
25953
25955
  let scrollPosition = null;
25954
25956
 
25957
+ watch(() => proxy.$q.lang.rtl, rtl => {
25958
+ if (targetRef.value !== null) {
25959
+ setHorizontalScrollPosition(
25960
+ targetRef.value,
25961
+ Math.abs(scroll.horizontal.position.value) * (rtl === true ? -1 : 1)
25962
+ );
25963
+ }
25964
+ });
25965
+
25955
25966
  onDeactivated(() => {
25956
25967
  scrollPosition = {
25957
25968
  top: scroll.vertical.position.value,
@@ -25988,7 +25999,9 @@ var QScrollArea = createComponent({
25988
25999
  setScrollPercentage (axis, percentage, duration) {
25989
26000
  localSetScrollPosition(
25990
26001
  axis,
25991
- percentage * (scroll[ axis ].size.value - container[ axis ].value),
26002
+ percentage
26003
+ * (scroll[ axis ].size.value - container[ axis ].value)
26004
+ * (axis === 'horizontal' && proxy.$q.lang.rtl === true ? -1 : 1),
25992
26005
  duration
25993
26006
  );
25994
26007
  }
@@ -26737,7 +26750,7 @@ function useVirtualScroll ({
26737
26750
 
26738
26751
  function emitScroll (index) {
26739
26752
  if (prevToIndex !== index) {
26740
- props.onVirtualScroll !== void 0 && emit('virtual-scroll', {
26753
+ props.onVirtualScroll !== void 0 && emit('virtualScroll', {
26741
26754
  index,
26742
26755
  from: virtualScrollSliceRange.value.from,
26743
26756
  to: virtualScrollSliceRange.value.to - 1,
@@ -26909,9 +26922,9 @@ var QSelect = createComponent({
26909
26922
 
26910
26923
  emits: [
26911
26924
  ...useFieldEmits,
26912
- 'add', 'remove', 'input-value', 'new-value',
26925
+ 'add', 'remove', 'inputValue', 'newValue',
26913
26926
  'keyup', 'keypress', 'keydown',
26914
- 'filter-abort'
26927
+ 'filterAbort'
26915
26928
  ],
26916
26929
 
26917
26930
  setup (props, { slots, emit }) {
@@ -27050,20 +27063,16 @@ var QSelect = createComponent({
27050
27063
 
27051
27064
  const tabindex = computed(() => (state.focused.value === true ? props.tabindex : -1));
27052
27065
 
27053
- const comboboxAttrs = computed(() => {
27054
- const attrs = {
27055
- tabindex: props.tabindex,
27056
- role: 'combobox',
27057
- 'aria-label': props.label,
27058
- 'aria-readonly': props.readonly === true ? 'true' : 'false',
27059
- 'aria-autocomplete': props.useInput === true ? 'list' : 'none',
27060
- 'aria-expanded': menu.value === true ? 'true' : 'false',
27061
- 'aria-owns': `${ state.targetUid.value }_lb`,
27062
- 'aria-controls': `${ state.targetUid.value }_lb`
27063
- };
27064
-
27065
- return attrs
27066
- });
27066
+ const comboboxAttrs = computed(() => ({
27067
+ tabindex: props.tabindex,
27068
+ role: 'combobox',
27069
+ 'aria-label': props.label,
27070
+ 'aria-readonly': props.readonly === true ? 'true' : 'false',
27071
+ 'aria-autocomplete': props.useInput === true ? 'list' : 'none',
27072
+ 'aria-expanded': menu.value === true ? 'true' : 'false',
27073
+ 'aria-owns': `${ state.targetUid.value }_lb`,
27074
+ 'aria-controls': `${ state.targetUid.value }_lb`
27075
+ }));
27067
27076
 
27068
27077
  const listboxAttrs = computed(() => {
27069
27078
  const attrs = {
@@ -27659,7 +27668,7 @@ var QSelect = createComponent({
27659
27668
  };
27660
27669
 
27661
27670
  if (props.onNewValue !== void 0) {
27662
- emit('new-value', inputValue.value, done);
27671
+ emit('newValue', inputValue.value, done);
27663
27672
  }
27664
27673
  else {
27665
27674
  done(inputValue.value);
@@ -27682,8 +27691,8 @@ var QSelect = createComponent({
27682
27691
  return hasDialog === true
27683
27692
  ? menuContentRef.value
27684
27693
  : (
27685
- menuRef.value !== null && menuRef.value.__qPortalInnerRef.value !== null
27686
- ? menuRef.value.__qPortalInnerRef.value
27694
+ menuRef.value !== null && menuRef.value.contentEl !== null
27695
+ ? menuRef.value.contentEl
27687
27696
  : void 0
27688
27697
  )
27689
27698
  }
@@ -27826,7 +27835,7 @@ var QSelect = createComponent({
27826
27835
  function setInputValue (val) {
27827
27836
  if (inputValue.value !== val) {
27828
27837
  inputValue.value = val;
27829
- emit('input-value', val);
27838
+ emit('inputValue', val);
27830
27839
  }
27831
27840
  }
27832
27841
 
@@ -27850,7 +27859,7 @@ var QSelect = createComponent({
27850
27859
  }
27851
27860
 
27852
27861
  if (state.innerLoading.value === true) {
27853
- emit('filter-abort');
27862
+ emit('filterAbort');
27854
27863
  }
27855
27864
  else {
27856
27865
  state.innerLoading.value = true;
@@ -28067,7 +28076,7 @@ var QSelect = createComponent({
28067
28076
  filterId = void 0;
28068
28077
 
28069
28078
  if (state.innerLoading.value === true) {
28070
- emit('filter-abort');
28079
+ emit('filterAbort');
28071
28080
  state.innerLoading.value = false;
28072
28081
  innerLoadingIndicator.value = false;
28073
28082
  }
@@ -28153,14 +28162,14 @@ var QSelect = createComponent({
28153
28162
 
28154
28163
  function onControlPopupShow (e) {
28155
28164
  e !== void 0 && stop(e);
28156
- emit('popup-show', e);
28165
+ emit('popupShow', e);
28157
28166
  state.hasPopupOpen = true;
28158
28167
  state.onControlFocusin(e);
28159
28168
  }
28160
28169
 
28161
28170
  function onControlPopupHide (e) {
28162
28171
  e !== void 0 && stop(e);
28163
- emit('popup-hide', e);
28172
+ emit('popupHide', e);
28164
28173
  state.hasPopupOpen = false;
28165
28174
  state.onControlFocusout(e);
28166
28175
  }
@@ -32151,7 +32160,7 @@ var QTable = createComponent({
32151
32160
  },
32152
32161
 
32153
32162
  emits: [
32154
- 'request', 'virtual-scroll',
32163
+ 'request', 'virtualScroll',
32155
32164
  ...useFullscreenEmits,
32156
32165
  ...useTableRowExpandEmits,
32157
32166
  ...useTableRowSelectionEmits
@@ -32385,7 +32394,7 @@ var QTable = createComponent({
32385
32394
 
32386
32395
  scrollTarget.scrollTop = offsetTop;
32387
32396
 
32388
- emit('virtual-scroll', {
32397
+ emit('virtualScroll', {
32389
32398
  index: toIndex,
32390
32399
  from: 0,
32391
32400
  to: innerPagination.value.rowsPerPage - 1,
@@ -32395,7 +32404,7 @@ var QTable = createComponent({
32395
32404
  }
32396
32405
 
32397
32406
  function onVScroll (info) {
32398
- emit('virtual-scroll', info);
32407
+ emit('virtualScroll', info);
32399
32408
  }
32400
32409
 
32401
32410
  function getProgress () {
@@ -34323,9 +34332,9 @@ var QTree = createComponent({
34323
34332
  'update:expanded',
34324
34333
  'update:ticked',
34325
34334
  'update:selected',
34326
- 'lazy-load',
34327
- 'after-show',
34328
- 'after-hide'
34335
+ 'lazyLoad',
34336
+ 'afterShow',
34337
+ 'afterHide'
34329
34338
  ],
34330
34339
 
34331
34340
  setup (props, { slots, emit }) {
@@ -34574,7 +34583,7 @@ var QTree = createComponent({
34574
34583
  if (Array.isArray(node[ props.childrenKey ]) !== true) {
34575
34584
  node[ props.childrenKey ] = [];
34576
34585
  }
34577
- emit('lazy-load', {
34586
+ emit('lazyLoad', {
34578
34587
  node,
34579
34588
  key,
34580
34589
  done: children => {
@@ -34721,11 +34730,11 @@ var QTree = createComponent({
34721
34730
  }
34722
34731
 
34723
34732
  function onShow () {
34724
- emit('after-show');
34733
+ emit('afterShow');
34725
34734
  }
34726
34735
 
34727
34736
  function onHide () {
34728
- emit('after-hide');
34737
+ emit('afterHide');
34729
34738
  }
34730
34739
 
34731
34740
  function getNode (node) {
@@ -35568,7 +35577,7 @@ function injectPlugin ({ props, emit, helpers }) {
35568
35577
  helpers.queuedFiles.value = helpers.queuedFiles.value.concat(files);
35569
35578
  files.forEach(f => { helpers.updateFileStatus(f, 'failed'); });
35570
35579
 
35571
- emit('factory-failed', err, files);
35580
+ emit('factoryFailed', err, files);
35572
35581
  workingThreads.value--;
35573
35582
  }
35574
35583
  };
@@ -37944,8 +37953,7 @@ var BottomSheet$1 = createComponent({
37944
37953
  tabindex: 0,
37945
37954
  clickable: true,
37946
37955
  dark: isDark.value,
37947
- onClick () { onOk(action); },
37948
- onKeyup (e) { e.keyCode === 13 && onOk(action); }
37956
+ onClick () { onOk(action); }
37949
37957
  }, () => [
37950
37958
  h(
37951
37959
  QItemSection,
@@ -38582,12 +38590,12 @@ var DialogPlugin = createComponent({
38582
38590
  function getPrompt () {
38583
38591
  return [
38584
38592
  h(QInput, {
38585
- modelValue: model.value,
38586
- ...formProps.value,
38587
38593
  color: vmColor.value,
38588
38594
  dense: true,
38589
38595
  autofocus: true,
38590
38596
  dark: isDark.value,
38597
+ ...formProps.value,
38598
+ modelValue: model.value,
38591
38599
  'onUpdate:modelValue': onUpdateModel,
38592
38600
  onKeyup: onInputKeyup
38593
38601
  })
@@ -38597,11 +38605,11 @@ var DialogPlugin = createComponent({
38597
38605
  function getOptions () {
38598
38606
  return [
38599
38607
  h(QOptionGroup, {
38600
- modelValue: model.value,
38601
- ...formProps.value,
38602
38608
  color: vmColor.value,
38603
38609
  options: props.options.items,
38604
38610
  dark: isDark.value,
38611
+ ...formProps.value,
38612
+ modelValue: model.value,
38605
38613
  'onUpdate:modelValue': onUpdateModel
38606
38614
  })
38607
38615
  ]
@@ -40288,7 +40296,7 @@ function runSequentialPromises (
40288
40296
  */
40289
40297
 
40290
40298
  const Quasar = {
40291
- version: '2.10.0',
40299
+ version: '2.10.1',
40292
40300
  install: installQuasar,
40293
40301
  lang: Plugin$8,
40294
40302
  iconSet: Plugin$7