quasar 2.9.2 → 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 (337) 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/QBreadcrumbsEl.json +0 -14
  12. package/dist/api/QBtn.json +0 -3
  13. package/dist/api/QBtnDropdown.json +32 -8
  14. package/dist/api/QCarousel.json +0 -10
  15. package/dist/api/QCarouselControl.json +0 -3
  16. package/dist/api/QCircularProgress.json +0 -23
  17. package/dist/api/QColor.json +0 -3
  18. package/dist/api/QDialog.json +18 -9
  19. package/dist/api/QDrawer.json +0 -6
  20. package/dist/api/QExpansionItem.json +0 -3
  21. package/dist/api/QFab.json +1 -6
  22. package/dist/api/QFabAction.json +1 -3
  23. package/dist/api/QField.json +1 -6
  24. package/dist/api/QFile.json +12 -29
  25. package/dist/api/QFooter.json +0 -3
  26. package/dist/api/QHeader.json +0 -6
  27. package/dist/api/QInfiniteScroll.json +9 -16
  28. package/dist/api/QInnerLoading.json +0 -4
  29. package/dist/api/QInput.json +8 -15
  30. package/dist/api/QIntersection.json +0 -4
  31. package/dist/api/QItemLabel.json +0 -5
  32. package/dist/api/QKnob.json +3 -36
  33. package/dist/api/QLayout.json +6 -24
  34. package/dist/api/QLinearProgress.json +0 -6
  35. package/dist/api/QList.json +15 -0
  36. package/dist/api/QMenu.json +7 -12
  37. package/dist/api/QOptionGroup.json +0 -3
  38. package/dist/api/QPage.json +2 -8
  39. package/dist/api/QPageScroller.json +0 -9
  40. package/dist/api/QPageSticky.json +0 -3
  41. package/dist/api/QPagination.json +138 -127
  42. package/dist/api/QParallax.json +2 -14
  43. package/dist/api/QPopupEdit.json +0 -8
  44. package/dist/api/QPopupProxy.json +0 -4
  45. package/dist/api/QRange.json +5 -32
  46. package/dist/api/QRating.json +0 -4
  47. package/dist/api/QResizeObserver.json +2 -8
  48. package/dist/api/QScrollArea.json +8 -36
  49. package/dist/api/QScrollObserver.json +6 -24
  50. package/dist/api/QSelect.json +18 -108
  51. package/dist/api/QSlideItem.json +1 -6
  52. package/dist/api/QSlideTransition.json +0 -4
  53. package/dist/api/QSlider.json +3 -24
  54. package/dist/api/QSpinner.json +0 -4
  55. package/dist/api/QSplitter.json +1 -4
  56. package/dist/api/QStepper.json +0 -7
  57. package/dist/api/QTabPanels.json +0 -7
  58. package/dist/api/QTable.json +43 -191
  59. package/dist/api/QTabs.json +1 -7
  60. package/dist/api/QTime.json +3 -12
  61. package/dist/api/QTooltip.json +7 -18
  62. package/dist/api/QTree.json +0 -3
  63. package/dist/api/QUploader.json +5 -16
  64. package/dist/api/QVirtualScroll.json +11 -56
  65. package/dist/api/Screen.json +9 -36
  66. package/dist/api/Scroll.json +2 -8
  67. package/dist/api/SessionStorage.json +4 -16
  68. package/dist/api/TouchHold.json +3 -12
  69. package/dist/api/TouchPan.json +7 -28
  70. package/dist/api/TouchRepeat.json +6 -24
  71. package/dist/api/TouchSwipe.json +3 -12
  72. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  73. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  74. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  75. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  76. package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +1 -1
  77. package/dist/icon-set/fontawesome-v6.umd.prod.js +1 -1
  78. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  79. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  80. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  81. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  82. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  83. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  84. package/dist/icon-set/material-symbols-outlined.umd.prod.js +1 -1
  85. package/dist/icon-set/material-symbols-rounded.umd.prod.js +1 -1
  86. package/dist/icon-set/material-symbols-sharp.umd.prod.js +1 -1
  87. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  88. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  89. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  90. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  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-themify.umd.prod.js +1 -1
  108. package/dist/icon-set/themify.umd.prod.js +1 -1
  109. package/dist/lang/ar-TN.umd.prod.js +1 -1
  110. package/dist/lang/ar.umd.prod.js +1 -1
  111. package/dist/lang/az-Latn.umd.prod.js +1 -1
  112. package/dist/lang/bg.umd.prod.js +1 -1
  113. package/dist/lang/bn.umd.prod.js +1 -1
  114. package/dist/lang/ca.umd.prod.js +1 -1
  115. package/dist/lang/cs.umd.prod.js +1 -1
  116. package/dist/lang/da.umd.prod.js +1 -1
  117. package/dist/lang/de.umd.prod.js +1 -1
  118. package/dist/lang/el.umd.prod.js +1 -1
  119. package/dist/lang/en-GB.umd.prod.js +1 -1
  120. package/dist/lang/en-US.umd.prod.js +1 -1
  121. package/dist/lang/eo.umd.prod.js +1 -1
  122. package/dist/lang/es.umd.prod.js +1 -1
  123. package/dist/lang/et.umd.prod.js +1 -1
  124. package/dist/lang/eu.umd.prod.js +1 -1
  125. package/dist/lang/fa-IR.umd.prod.js +1 -1
  126. package/dist/lang/fa.umd.prod.js +1 -1
  127. package/dist/lang/fi.umd.prod.js +1 -1
  128. package/dist/lang/fr.umd.prod.js +1 -1
  129. package/dist/lang/gn.umd.prod.js +1 -1
  130. package/dist/lang/he.umd.prod.js +1 -1
  131. package/dist/lang/hr.umd.prod.js +1 -1
  132. package/dist/lang/hu.umd.prod.js +1 -1
  133. package/dist/lang/id.umd.prod.js +1 -1
  134. package/dist/lang/is.umd.prod.js +1 -1
  135. package/dist/lang/it.umd.prod.js +1 -1
  136. package/dist/lang/ja.umd.prod.js +1 -1
  137. package/dist/lang/km.umd.prod.js +1 -1
  138. package/dist/lang/ko-KR.umd.prod.js +1 -1
  139. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  140. package/dist/lang/kz.umd.prod.js +1 -1
  141. package/dist/lang/lt.umd.prod.js +1 -1
  142. package/dist/lang/lu.umd.prod.js +1 -1
  143. package/dist/lang/lv.umd.prod.js +1 -1
  144. package/dist/lang/ml.umd.prod.js +1 -1
  145. package/dist/lang/mm.umd.prod.js +1 -1
  146. package/dist/lang/ms.umd.prod.js +1 -1
  147. package/dist/lang/my.umd.prod.js +1 -1
  148. package/dist/lang/nb-NO.umd.prod.js +1 -1
  149. package/dist/lang/nl.umd.prod.js +1 -1
  150. package/dist/lang/pl.umd.prod.js +1 -1
  151. package/dist/lang/pt-BR.umd.prod.js +1 -1
  152. package/dist/lang/pt.umd.prod.js +1 -1
  153. package/dist/lang/ro.umd.prod.js +1 -1
  154. package/dist/lang/ru.umd.prod.js +1 -1
  155. package/dist/lang/sk.umd.prod.js +1 -1
  156. package/dist/lang/sl.umd.prod.js +1 -1
  157. package/dist/lang/sm.umd.prod.js +1 -1
  158. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  159. package/dist/lang/sr.umd.prod.js +1 -1
  160. package/dist/lang/sv.umd.prod.js +1 -1
  161. package/dist/lang/ta.umd.prod.js +1 -1
  162. package/dist/lang/th.umd.prod.js +1 -1
  163. package/dist/lang/tr.umd.prod.js +1 -1
  164. package/dist/lang/ug.umd.prod.js +1 -1
  165. package/dist/lang/uk.umd.prod.js +1 -1
  166. package/dist/lang/uz-Cyrl.umd.prod.js +1 -1
  167. package/dist/lang/uz-Latn.umd.prod.js +1 -1
  168. package/dist/lang/vi.umd.prod.js +1 -1
  169. package/dist/lang/zh-CN.umd.prod.js +1 -1
  170. package/dist/lang/zh-TW.umd.prod.js +1 -1
  171. package/dist/quasar.cjs.prod.js +2 -2
  172. package/dist/quasar.css +12 -2
  173. package/dist/quasar.esm.js +603 -445
  174. package/dist/quasar.esm.prod.js +2 -2
  175. package/dist/quasar.prod.css +1 -1
  176. package/dist/quasar.rtl.css +28 -2
  177. package/dist/quasar.rtl.prod.css +1 -1
  178. package/dist/quasar.sass +13 -3
  179. package/dist/quasar.umd.js +603 -445
  180. package/dist/quasar.umd.prod.js +2 -2
  181. package/dist/transforms/auto-import.json +7 -3
  182. package/dist/transforms/import-map.json +2 -0
  183. package/dist/types/index.d.ts +116 -106
  184. package/dist/vetur/quasar-attributes.json +65 -49
  185. package/dist/vetur/quasar-tags.json +18 -14
  186. package/dist/web-types/web-types.json +261 -222
  187. package/package.json +3 -3
  188. package/src/api.extends.json +1 -2
  189. package/src/components/ajax-bar/QAjaxBar.json +5 -11
  190. package/src/components/badge/QBadge.js +1 -1
  191. package/src/components/breadcrumbs/QBreadcrumbs.json +0 -2
  192. package/src/components/breadcrumbs/QBreadcrumbsEl.json +1 -6
  193. package/src/components/breadcrumbs/__tests__/BasicBreadcrumbs.vue +7 -0
  194. package/src/components/breadcrumbs/__tests__/BreadcrumbWithSeparatorSlot.vue +11 -0
  195. package/src/components/breadcrumbs/__tests__/QBreadcrumbs.spec.js +112 -0
  196. package/src/components/breadcrumbs/__tests__/QBreadcrumbsEl.spec.js +87 -0
  197. package/src/components/btn/QBtn.json +1 -3
  198. package/src/components/btn/__tests__/QBtn.spec.js +87 -14
  199. package/src/components/btn/__tests__/use-btn.spec.js +385 -58
  200. package/src/components/btn/use-btn.js +24 -14
  201. package/src/components/btn-dropdown/QBtnDropdown.js +34 -18
  202. package/src/components/btn-dropdown/QBtnDropdown.json +1 -3
  203. package/src/components/btn-toggle/QBtnToggle.js +14 -14
  204. package/src/components/btn-toggle/QBtnToggle.json +2 -4
  205. package/src/components/carousel/QCarousel.json +4 -9
  206. package/src/components/carousel/QCarouselControl.json +0 -1
  207. package/src/components/checkbox/use-checkbox.js +1 -1
  208. package/src/components/checkbox/use-checkbox.json +1 -2
  209. package/src/components/chip/QChip.js +14 -11
  210. package/src/components/circular-progress/QCircularProgress.json +0 -5
  211. package/src/components/color/QColor.json +0 -1
  212. package/src/components/date/QDate.js +3 -3
  213. package/src/components/date/QDate.json +28 -56
  214. package/src/components/dialog/QDialog.js +32 -41
  215. package/src/components/dialog/QDialog.json +9 -2
  216. package/src/components/dialog-bottom-sheet/BottomSheet.js +7 -4
  217. package/src/components/dialog-plugin/DialogPlugin.js +4 -4
  218. package/src/components/drawer/QDrawer.js +10 -8
  219. package/src/components/drawer/QDrawer.json +0 -4
  220. package/src/components/editor/QEditor.json +3 -6
  221. package/src/components/expansion-item/QExpansionItem.js +3 -3
  222. package/src/components/expansion-item/QExpansionItem.json +3 -8
  223. package/src/components/fab/QFab.json +0 -1
  224. package/src/components/fab/use-fab.json +0 -1
  225. package/src/components/field/QField.json +0 -1
  226. package/src/components/file/QFile.js +4 -1
  227. package/src/components/file/QFile.json +19 -20
  228. package/src/components/footer/QFooter.js +5 -3
  229. package/src/components/footer/QFooter.json +0 -1
  230. package/src/components/form/QForm.js +5 -3
  231. package/src/components/form/QForm.json +2 -4
  232. package/src/components/header/QHeader.js +5 -3
  233. package/src/components/header/QHeader.json +0 -4
  234. package/src/components/infinite-scroll/QInfiniteScroll.json +9 -6
  235. package/src/components/inner-loading/QInnerLoading.js +2 -5
  236. package/src/components/input/QInput.js +4 -1
  237. package/src/components/input/QInput.json +11 -7
  238. package/src/components/input/use-mask.js +2 -2
  239. package/src/components/intersection/QIntersection.json +0 -1
  240. package/src/components/item/QItem.js +1 -0
  241. package/src/components/item/QItem.json +1 -2
  242. package/src/components/item/QItemLabel.json +0 -1
  243. package/src/components/item/QList.js +7 -2
  244. package/src/components/item/QList.json +7 -0
  245. package/src/components/knob/QKnob.js +3 -3
  246. package/src/components/knob/QKnob.json +3 -12
  247. package/src/components/layout/QLayout.js +1 -1
  248. package/src/components/layout/QLayout.json +6 -12
  249. package/src/components/linear-progress/QLinearProgress.json +0 -2
  250. package/src/components/menu/QMenu.js +8 -5
  251. package/src/components/menu/QMenu.json +0 -2
  252. package/src/components/option-group/QOptionGroup.js +1 -1
  253. package/src/components/option-group/QOptionGroup.json +2 -5
  254. package/src/components/page/QPage.js +11 -4
  255. package/src/components/page/QPage.json +3 -6
  256. package/src/components/page/QPageContainer.js +5 -3
  257. package/src/components/page-scroller/QPageScroller.json +0 -2
  258. package/src/components/page-sticky/QPageSticky.json +0 -1
  259. package/src/components/page-sticky/use-page-sticky.js +5 -3
  260. package/src/components/pagination/QPagination.js +265 -188
  261. package/src/components/pagination/QPagination.json +87 -78
  262. package/src/components/pagination/QPagination.sass +14 -0
  263. package/src/components/parallax/QParallax.json +2 -6
  264. package/src/components/popup-edit/QPopupEdit.js +3 -3
  265. package/src/components/popup-edit/QPopupEdit.json +4 -10
  266. package/src/components/popup-proxy/QPopupProxy.json +0 -1
  267. package/src/components/radio/QRadio.json +1 -2
  268. package/src/components/range/QRange.json +2 -4
  269. package/src/components/rating/QRating.json +0 -1
  270. package/src/components/resize-observer/QResizeObserver.js +14 -10
  271. package/src/components/resize-observer/QResizeObserver.json +2 -4
  272. package/src/components/scroll-area/QScrollArea.js +15 -4
  273. package/src/components/scroll-area/QScrollArea.json +24 -50
  274. package/src/components/scroll-observer/QScrollObserver.js +2 -0
  275. package/src/components/scroll-observer/QScrollObserver.json +6 -12
  276. package/src/components/select/QSelect.js +20 -24
  277. package/src/components/select/QSelect.json +30 -65
  278. package/src/components/select/QSelect.sass +2 -2
  279. package/src/components/slide-item/QSlideItem.json +1 -2
  280. package/src/components/slide-transition/QSlideTransition.json +0 -1
  281. package/src/components/slider/use-slider.json +33 -70
  282. package/src/components/spinner/QSpinner.json +0 -1
  283. package/src/components/splitter/QSplitter.json +1 -2
  284. package/src/components/stepper/QStep.js +7 -5
  285. package/src/components/tab-panels/QTabPanel.js +1 -1
  286. package/src/components/table/QTable.js +3 -3
  287. package/src/components/table/QTable.json +118 -239
  288. package/src/components/tabs/QRouteTab.json +0 -1
  289. package/src/components/tabs/QTabs.js +0 -7
  290. package/src/components/tabs/QTabs.json +1 -3
  291. package/src/components/tabs/use-tab.js +5 -3
  292. package/src/components/time/QTime.json +10 -20
  293. package/src/components/timeline/QTimelineEntry.js +5 -3
  294. package/src/components/toolbar/QToolbar.js +1 -1
  295. package/src/components/tooltip/QTooltip.js +3 -6
  296. package/src/components/tooltip/QTooltip.json +0 -4
  297. package/src/components/tree/QTree.js +6 -6
  298. package/src/components/tree/QTree.json +15 -31
  299. package/src/components/uploader/QUploader.json +13 -22
  300. package/src/components/uploader/QUploaderAddTrigger.js +7 -3
  301. package/src/components/uploader/xhr-uploader-plugin.js +1 -1
  302. package/src/components/uploader/xhr-uploader-plugin.json +25 -50
  303. package/src/components/virtual-scroll/QVirtualScroll.json +5 -10
  304. package/src/components/virtual-scroll/use-virtual-scroll.js +1 -1
  305. package/src/components/virtual-scroll/use-virtual-scroll.json +8 -19
  306. package/src/composables/private/use-field.js +1 -1
  307. package/src/composables/private/use-field.json +2 -3
  308. package/src/composables/private/use-file.js +10 -1
  309. package/src/composables/private/use-file.json +4 -13
  310. package/src/composables/private/use-model-toggle.js +3 -3
  311. package/src/composables/private/use-panel.js +2 -2
  312. package/src/composables/private/use-panel.json +0 -2
  313. package/src/composables/private/use-portal.js +5 -1
  314. package/src/composables/private/use-portal.json +7 -1
  315. package/src/composables/private/use-transition.js +17 -11
  316. package/src/composables/private/use-transition.json +0 -1
  317. package/src/composables/private/use-validate.json +1 -3
  318. package/src/directives/Intersection.json +26 -53
  319. package/src/directives/Morph.json +4 -8
  320. package/src/directives/Mutation.json +6 -12
  321. package/src/directives/Scroll.json +2 -4
  322. package/src/directives/TouchHold.json +3 -6
  323. package/src/directives/TouchPan.json +7 -14
  324. package/src/directives/TouchRepeat.json +6 -12
  325. package/src/directives/TouchSwipe.json +3 -6
  326. package/src/plugins/BottomSheet.json +1 -2
  327. package/src/plugins/Cookies.json +2 -4
  328. package/src/plugins/Dialog.json +32 -72
  329. package/src/plugins/Loading.json +6 -11
  330. package/src/plugins/LoadingBar.json +3 -6
  331. package/src/plugins/Notify.json +4 -5
  332. package/src/plugins/Platform.json +3 -6
  333. package/src/plugins/Screen.json +9 -18
  334. package/src/utils/private/global-dialog.json +6 -12
  335. package/src/utils/private/portal.js +4 -4
  336. package/src/utils/private/symbols.js +2 -0
  337. package/src/utils/private/web-storage.json +6 -10
@@ -7,14 +7,12 @@
7
7
  "params": {
8
8
  "files": {
9
9
  "type": "Array",
10
- "desc": "Uploaded files",
11
- "__exemption": [ "examples" ]
10
+ "desc": "Uploaded files"
12
11
  }
13
12
  },
14
13
  "returns": {
15
14
  "type": [ "Object", "Promise<any>" ],
16
- "desc": "Optional configuration for the upload process; You can override QUploader props in this Object (url, method, headers, formFields, fieldName, withCredentials, sendRaw); Props of these Object can also be Functions with the form of (file[s]) => value",
17
- "__exemption": [ "examples" ]
15
+ "desc": "Optional configuration for the upload process; You can override QUploader props in this Object (url, method, headers, formFields, fieldName, withCredentials, sendRaw); Props of these Object can also be Functions with the form of (file[s]) => value"
18
16
  },
19
17
  "category": "upload"
20
18
  },
@@ -26,14 +24,12 @@
26
24
  "params": {
27
25
  "files": {
28
26
  "type": "Array",
29
- "desc": "Uploaded files",
30
- "__exemption": [ "examples" ]
27
+ "desc": "Uploaded files"
31
28
  }
32
29
  },
33
30
  "returns": {
34
31
  "type": "String",
35
- "desc": "URL or path to the server which handles the upload",
36
- "__exemption": [ "examples" ]
32
+ "desc": "URL or path to the server which handles the upload"
37
33
  },
38
34
  "category": "upload"
39
35
  },
@@ -47,14 +43,12 @@
47
43
  "params": {
48
44
  "files": {
49
45
  "type": "Array",
50
- "desc": "Uploaded files",
51
- "__exemption": [ "examples" ]
46
+ "desc": "Uploaded files"
52
47
  }
53
48
  },
54
49
  "returns": {
55
50
  "type": "String",
56
- "desc": "HTTP method to use for upload",
57
- "__exemption": [ "examples" ]
51
+ "desc": "HTTP method to use for upload"
58
52
  },
59
53
  "category": "upload"
60
54
  },
@@ -70,14 +64,12 @@
70
64
  "params": {
71
65
  "files": {
72
66
  "type": "File",
73
- "desc": "The current file being processed",
74
- "__exemption": [ "examples" ]
67
+ "desc": "The current file being processed"
75
68
  }
76
69
  },
77
70
  "returns": {
78
71
  "type": "String",
79
- "desc": "Field name for the current file upload",
80
- "__exemption": [ "examples" ]
72
+ "desc": "Field name for the current file upload"
81
73
  },
82
74
  "category": "upload"
83
75
  },
@@ -107,14 +99,12 @@
107
99
  "params": {
108
100
  "files": {
109
101
  "type": "Array",
110
- "desc": "Uploaded files",
111
- "__exemption": [ "examples" ]
102
+ "desc": "Uploaded files"
112
103
  }
113
104
  },
114
105
  "returns": {
115
106
  "type": "String",
116
- "desc": "An array consisting of objects with header definitions",
117
- "__exemption": [ "examples" ]
107
+ "desc": "An array consisting of objects with header definitions"
118
108
  },
119
109
  "category": "upload"
120
110
  },
@@ -144,14 +134,12 @@
144
134
  "params": {
145
135
  "files": {
146
136
  "type": "Array",
147
- "desc": "Uploaded files",
148
- "__exemption": [ "examples" ]
137
+ "desc": "Uploaded files"
149
138
  }
150
139
  },
151
140
  "returns": {
152
141
  "type": "String",
153
- "desc": "An array consists of objects with additional fields definitions (used by Form to be uploaded)",
154
- "__exemption": [ "examples" ]
142
+ "desc": "An array consists of objects with additional fields definitions (used by Form to be uploaded)"
155
143
  },
156
144
  "category": "upload"
157
145
  },
@@ -163,14 +151,12 @@
163
151
  "params": {
164
152
  "files": {
165
153
  "type": "Array",
166
- "desc": "Uploaded files",
167
- "__exemption": [ "examples" ]
154
+ "desc": "Uploaded files"
168
155
  }
169
156
  },
170
157
  "returns": {
171
158
  "type": "Boolean",
172
- "desc": "If true, withCredentials will be set to true on the XHR that manages the upload",
173
- "__exemption": [ "examples" ]
159
+ "desc": "If true, withCredentials will be set to true on the XHR that manages the upload"
174
160
  },
175
161
  "category": "upload"
176
162
  },
@@ -182,14 +168,12 @@
182
168
  "params": {
183
169
  "files": {
184
170
  "type": "Array",
185
- "desc": "Uploaded files",
186
- "__exemption": [ "examples" ]
171
+ "desc": "Uploaded files"
187
172
  }
188
173
  },
189
174
  "returns": {
190
175
  "type": "Boolean",
191
- "desc": "If true, raw files will get sent without wrapping into a Form()",
192
- "__exemption": [ "examples" ]
176
+ "desc": "If true, raw files will get sent without wrapping into a Form()"
193
177
  },
194
178
  "category": "upload"
195
179
  },
@@ -201,14 +185,12 @@
201
185
  "params": {
202
186
  "files": {
203
187
  "type": "Array",
204
- "desc": "Uploaded files",
205
- "__exemption": [ "examples" ]
188
+ "desc": "Uploaded files"
206
189
  }
207
190
  },
208
191
  "returns": {
209
192
  "type": "Boolean",
210
- "desc": "If true, files will be uploaded in a batch (in one XHR request)",
211
- "__exemption": [ "examples" ]
193
+ "desc": "If true, files will be uploaded in a batch (in one XHR request)"
212
194
  },
213
195
  "category": "upload"
214
196
  }
@@ -225,14 +207,12 @@
225
207
  "files": {
226
208
  "type": "Array",
227
209
  "required": true,
228
- "desc": "Uploaded files",
229
- "__exemption": [ "examples" ]
210
+ "desc": "Uploaded files"
230
211
  },
231
212
  "xhr": {
232
213
  "type": "Object",
233
214
  "required": true,
234
- "desc": "XMLHttpRequest that has been used to upload this batch of files",
235
- "__exemption": [ "examples" ]
215
+ "desc": "XMLHttpRequest that has been used to upload this batch of files"
236
216
  }
237
217
  }
238
218
  }
@@ -249,14 +229,12 @@
249
229
  "files": {
250
230
  "type": "Array",
251
231
  "required": true,
252
- "desc": "Files which encountered error",
253
- "__exemption": [ "examples" ]
232
+ "desc": "Files which encountered error"
254
233
  },
255
234
  "xhr": {
256
235
  "type": "Object",
257
236
  "required": true,
258
- "desc": "XMLHttpRequest that has been used to upload this batch of files",
259
- "__exemption": [ "examples" ]
237
+ "desc": "XMLHttpRequest that has been used to upload this batch of files"
260
238
  }
261
239
  }
262
240
  }
@@ -273,14 +251,12 @@
273
251
  "files": {
274
252
  "type": "Array",
275
253
  "required": true,
276
- "desc": "Files which are now uploading",
277
- "__exemption": [ "examples" ]
254
+ "desc": "Files which are now uploading"
278
255
  },
279
256
  "xhr": {
280
257
  "type": "Object",
281
258
  "required": true,
282
- "desc": "XMLHttpRequest used for uploading",
283
- "__exemption": [ "examples" ]
259
+ "desc": "XMLHttpRequest used for uploading"
284
260
  }
285
261
  }
286
262
  }
@@ -296,8 +272,7 @@
296
272
  },
297
273
  "files": {
298
274
  "type": "Array",
299
- "desc": "Files which were to get uploaded",
300
- "__exemption": [ "examples" ]
275
+ "desc": "Files which were to get uploaded"
301
276
  }
302
277
  }
303
278
  }
@@ -42,19 +42,16 @@
42
42
  "params": {
43
43
  "from": {
44
44
  "type": "Number",
45
- "desc": "Index of the first item (0 based)",
46
- "examples": [ 15 ]
45
+ "desc": "Index of the first item (0 based)"
47
46
  },
48
47
  "size": {
49
48
  "type": "Number",
50
- "desc": "Number of items to return",
51
- "examples": [ 38 ]
49
+ "desc": "Number of items to return"
52
50
  }
53
51
  },
54
52
  "returns": {
55
53
  "type": "Array",
56
- "desc": "List of scope for items to be displayed",
57
- "__exemption": [ "examples" ]
54
+ "desc": "List of scope for items to be displayed"
58
55
  },
59
56
  "examples": [
60
57
  ":items-fn=\"(from, size) => { const items = []; for (let i = 0; i < size; i++) { items.push('Item ' + i) }; return items }\""
@@ -96,13 +93,11 @@
96
93
  "scope": {
97
94
  "index": {
98
95
  "type": "Number",
99
- "desc": "Item index in the options list",
100
- "examples": [ 0 ]
96
+ "desc": "Item index in the options list"
101
97
  },
102
98
  "item": {
103
99
  "type": "Any",
104
- "desc": "Item data -- its value is taken from 'options' prop",
105
- "__exemption": [ "examples" ]
100
+ "desc": "Item data -- its value is taken from 'options' prop"
106
101
  }
107
102
  }
108
103
  }
@@ -677,7 +677,7 @@ export function useVirtualScroll ({
677
677
 
678
678
  function emitScroll (index) {
679
679
  if (prevToIndex !== index) {
680
- props.onVirtualScroll !== void 0 && emit('virtual-scroll', {
680
+ props.onVirtualScroll !== void 0 && emit('virtualScroll', {
681
681
  index,
682
682
  from: virtualScrollSliceRange.value.from,
683
683
  to: virtualScrollSliceRange.value.to - 1,
@@ -17,24 +17,21 @@
17
17
  "virtual-scroll-slice-ratio-before": {
18
18
  "type": [ "Number", "String" ],
19
19
  "desc": "Ratio of number of items in visible zone to render before it",
20
- "default": "1",
21
- "examples": [ "virtual-scroll-slice-ratio-before=\"0.3\"" ],
20
+ "default": 1,
22
21
  "category": "virtual-scroll"
23
22
  },
24
23
 
25
24
  "virtual-scroll-slice-ratio-after": {
26
25
  "type": [ "Number", "String" ],
27
26
  "desc": "Ratio of number of items in visible zone to render after it",
28
- "default": "1",
29
- "examples": [ "virtual-scroll-slice-ratio-after=\"2\"" ],
27
+ "default": 1,
30
28
  "category": "virtual-scroll"
31
29
  },
32
30
 
33
31
  "virtual-scroll-item-size": {
34
32
  "type": [ "Number", "String" ],
35
33
  "desc": "Default size in pixels (height if vertical, width if horizontal) of an item; This value is used for rendering the initial list; Try to use a value close to the minimum size of an item",
36
- "default": "24",
37
- "examples": [ "virtual-scroll-item-size=\"48\"" ],
34
+ "default": 24,
38
35
  "category": "virtual-scroll"
39
36
  },
40
37
 
@@ -42,7 +39,6 @@
42
39
  "type": [ "Number", "String" ],
43
40
  "desc": "Size in pixels (height if vertical, width if horizontal) of the sticky part (if using one) at the start of the list; A correct value will improve scroll precision",
44
41
  "default": "0",
45
- "examples": [ "virtual-scroll-sticky-size-start=\"48\"" ],
46
42
  "category": "virtual-scroll"
47
43
  },
48
44
 
@@ -50,14 +46,12 @@
50
46
  "type": [ "Number", "String" ],
51
47
  "desc": "Size in pixels (height if vertical, width if horizontal) of the sticky part (if using one) at the end of the list; A correct value will improve scroll precision",
52
48
  "default": "0",
53
- "examples": [ "virtual-scroll-sticky-size-end=\"48\"" ],
54
49
  "category": "virtual-scroll"
55
50
  },
56
51
 
57
52
  "table-colspan": {
58
53
  "type": [ "Number", "String" ],
59
54
  "desc": "The number of columns in the table (you need this if you use table-layout: fixed)",
60
- "examples": [ "table-colspan=\"12\"" ],
61
55
  "category": "virtual-scroll|content"
62
56
  }
63
57
  },
@@ -73,20 +67,17 @@
73
67
  "index": {
74
68
  "type": "Number",
75
69
  "required": true,
76
- "desc": "Index of the list item that was scrolled into view (0 based)",
77
- "examples": [ 30 ]
70
+ "desc": "Index of the list item that was scrolled into view (0 based)"
78
71
  },
79
72
  "from": {
80
73
  "type": "Number",
81
74
  "required": true,
82
- "desc": "The index of the first list item that is rendered (0 based)",
83
- "examples": [ 10 ]
75
+ "desc": "The index of the first list item that is rendered (0 based)"
84
76
  },
85
77
  "to": {
86
78
  "type": "Number",
87
79
  "required": true,
88
- "desc": "The index of the last list item that is rendered (0 based)",
89
- "examples": [ 50 ]
80
+ "desc": "The index of the last list item that is rendered (0 based)"
90
81
  },
91
82
  "direction": {
92
83
  "type": "String",
@@ -112,8 +103,7 @@
112
103
  "index": {
113
104
  "type": [ "String", "Number" ],
114
105
  "desc": "The index of the list item (0 based)",
115
- "required": true,
116
- "examples": [ "1", 23 ]
106
+ "required": true
117
107
  },
118
108
  "edge": {
119
109
  "type": "String",
@@ -132,8 +122,7 @@
132
122
  "params": {
133
123
  "index": {
134
124
  "type": [ "String", "Number" ],
135
- "desc": "The index of the list item to scroll to after refresh (0 based); If it's not specified the scroll position is not changed; Use a negative value to keep scroll position",
136
- "examples": [ "1", 23, -1 ]
125
+ "desc": "The index of the list item to scroll to after refresh (0 based); If it's not specified the scroll position is not changed; Use a negative value to keep scroll position"
137
126
  }
138
127
  }
139
128
  }
@@ -72,7 +72,7 @@ export const useFieldProps = {
72
72
  maxlength: [ Number, String ]
73
73
  }
74
74
 
75
- export const useFieldEmits = [ 'update:modelValue', 'clear', 'focus', 'blur', 'popup-show', 'popup-hide' ]
75
+ export const useFieldEmits = [ 'update:modelValue', 'clear', 'focus', 'blur', 'popupShow', 'popupHide' ]
76
76
 
77
77
  export function useFieldState () {
78
78
  const { props, attrs, proxy, vnode } = getCurrentInstance()
@@ -226,9 +226,8 @@
226
226
  "desc": "When using the 'clearable' property, this event is emitted when the clear icon is clicked",
227
227
  "params": {
228
228
  "value": {
229
- "type": [ "Any" ],
230
- "desc": "The previous value before clearing it",
231
- "__exemption": [ "examples" ]
229
+ "type": "Any",
230
+ "desc": "The previous value before clearing it"
232
231
  }
233
232
  }
234
233
  }
@@ -1,5 +1,6 @@
1
1
  import { h, ref, computed, getCurrentInstance } from 'vue'
2
2
 
3
+ import { client } from '../../plugins/Platform.js'
3
4
  import { stop, stopAndPrevent } from '../../utils/event.js'
4
5
 
5
6
  function filterFiles (files, rejectedFiles, failedPropValidation, filterFn) {
@@ -187,7 +188,14 @@ export default function ({
187
188
 
188
189
  function onDragleave (e) {
189
190
  stopAndPrevent(e)
190
- e.relatedTarget !== dndRef.value && (dnd.value = false)
191
+
192
+ // Safari bug: relatedTarget is null for over 10 years
193
+ // https://bugs.webkit.org/show_bug.cgi?id=66547
194
+ const gone = e.relatedTarget !== null || client.is.safari !== true
195
+ ? e.relatedTarget !== dndRef.value
196
+ : document.elementsFromPoint(e.clientX, e.clientY).includes(dndRef.value) === false
197
+
198
+ gone === true && (dnd.value = false)
191
199
  }
192
200
 
193
201
  function onDrop (e) {
@@ -221,6 +229,7 @@ export default function ({
221
229
  pickFiles,
222
230
  addFiles,
223
231
  onDragover,
232
+ onDragleave,
224
233
  processFiles,
225
234
  getDndNode,
226
235
 
@@ -32,17 +32,12 @@
32
32
  "max-total-size": {
33
33
  "type": [ "Number", "String" ],
34
34
  "desc": "Maximum size of all files combined in bytes",
35
- "examples": [ 1024, 1048576 ],
36
35
  "category": "behavior"
37
36
  },
38
37
 
39
38
  "max-files": {
40
39
  "type": [ "Number", "String" ],
41
40
  "desc": "Maximum number of files to contain",
42
- "examples": [
43
- ":max-files=\"5\"",
44
- "10"
45
- ],
46
41
  "category": "behavior"
47
42
  },
48
43
 
@@ -52,14 +47,12 @@
52
47
  "params": {
53
48
  "files": {
54
49
  "type": [ "FileList", "Array" ],
55
- "desc": "Candidate files to be added to queue",
56
- "__exemption": [ "examples" ]
50
+ "desc": "Candidate files to be added to queue"
57
51
  }
58
52
  },
59
53
  "returns": {
60
54
  "type": "Array",
61
- "desc": "Filtered files to be added to queue",
62
- "__exemption": [ "examples" ]
55
+ "desc": "Filtered files to be added to queue"
63
56
  },
64
57
  "examples": [ ":filter=\"files => files.filter(file => file.size === 1024)\"" ],
65
58
  "category": "behavior"
@@ -73,8 +66,7 @@
73
66
  "rejectedEntries": {
74
67
  "type": "Array",
75
68
  "tsType": "QRejectedEntry",
76
- "desc": "Array of { failedPropValidation: string, file: File } Objects for files that do not pass the validation",
77
- "__exemption": ["examples"]
69
+ "desc": "Array of { failedPropValidation: string, file: File } Objects for files that do not pass the validation"
78
70
  }
79
71
  }
80
72
  }
@@ -96,8 +88,7 @@
96
88
  "files": {
97
89
  "type": [ "FileList", "Array" ],
98
90
  "desc": "Array of files (instances of File)",
99
- "required": true,
100
- "__exemption": [ "examples" ]
91
+ "required": true
101
92
  }
102
93
  }
103
94
  }
@@ -12,7 +12,7 @@ export const useModelToggleProps = {
12
12
  }
13
13
 
14
14
  export const useModelToggleEmits = [
15
- 'before-show', 'show', 'before-hide', 'hide'
15
+ 'beforeShow', 'show', 'beforeHide', 'hide'
16
16
  ]
17
17
 
18
18
  // handleShow/handleHide -> removeTick(), self (& emit show)
@@ -72,7 +72,7 @@ export default function ({
72
72
 
73
73
  showing.value = true
74
74
 
75
- emit('before-show', evt)
75
+ emit('beforeShow', evt)
76
76
 
77
77
  if (handleShow !== void 0) {
78
78
  handleShow(evt)
@@ -111,7 +111,7 @@ export default function ({
111
111
 
112
112
  showing.value = false
113
113
 
114
- emit('before-hide', evt)
114
+ emit('beforeHide', evt)
115
115
 
116
116
  if (handleHide !== void 0) {
117
117
  handleHide(evt)
@@ -44,7 +44,7 @@ export const usePanelProps = {
44
44
  keepAliveMax: Number
45
45
  }
46
46
 
47
- export const usePanelEmits = [ 'update:modelValue', 'before-transition', 'transition' ]
47
+ export const usePanelEmits = [ 'update:modelValue', 'beforeTransition', 'transition' ]
48
48
 
49
49
  export default function () {
50
50
  const { props, emit, proxy } = getCurrentInstance()
@@ -116,7 +116,7 @@ export default function () {
116
116
 
117
117
  if (panelIndex.value !== index) {
118
118
  panelIndex.value = index
119
- emit('before-transition', newVal, oldVal)
119
+ emit('beforeTransition', newVal, oldVal)
120
120
  nextTick(() => {
121
121
  emit('transition', newVal, oldVal)
122
122
  })
@@ -30,7 +30,6 @@
30
30
  "keep-alive-max": {
31
31
  "type": "Number",
32
32
  "desc": "Equivalent to using Vue's native max prop for <keep-alive>",
33
- "examples": [ "2" ],
34
33
  "category": "behavior"
35
34
  },
36
35
 
@@ -76,7 +75,6 @@
76
75
  "type": [ "String", "Number" ],
77
76
  "desc": "Transition duration (in milliseconds, without unit)",
78
77
  "default": 300,
79
- "examples": [ 500, "1200" ],
80
78
  "category": "transition",
81
79
  "addedIn": "v2.2"
82
80
  }
@@ -4,6 +4,7 @@ import { noop } from '../../utils/event.js'
4
4
  import { addFocusWaitFlag, removeFocusWaitFlag } from '../../utils/private/focus-manager.js'
5
5
  import { createGlobalNode, removeGlobalNode } from '../../utils/private/global-nodes.js'
6
6
  import { portalProxyList } from '../../utils/private/portal.js'
7
+ import { injectProp } from '../../utils/private/inject-obj-prop.js'
7
8
 
8
9
  function isOnGlobalDialog (vm) {
9
10
  vm = vm.parent
@@ -93,7 +94,10 @@ export default function (vm, innerRef, renderPortalContent, checkGlobalDialog) {
93
94
  onUnmounted(() => { hidePortal(true) })
94
95
 
95
96
  // needed for portal vm detection
96
- vm.proxy.__qPortalInnerRef = innerRef
97
+ vm.proxy.__qPortal = true
98
+
99
+ // public way of accessing the rendered content
100
+ injectProp(vm.proxy, 'contentEl', () => innerRef.value)
97
101
 
98
102
  return {
99
103
  showPortal,
@@ -1,3 +1,9 @@
1
1
  {
2
- "props": {}
2
+ "computedProps": {
3
+ "contentEl": {
4
+ "type": "Element",
5
+ "desc": "The DOM Element of the rendered content",
6
+ "addedIn": "v2.10.1"
7
+ }
8
+ }
3
9
  }
@@ -1,4 +1,4 @@
1
- import { ref, computed, watch, nextTick } from 'vue'
1
+ import { computed } from 'vue'
2
2
 
3
3
  export const useTransitionProps = {
4
4
  transitionShow: {
@@ -17,18 +17,24 @@ export const useTransitionProps = {
17
17
  }
18
18
  }
19
19
 
20
- export default function (props, showing) {
21
- const transitionState = ref(showing.value)
20
+ export default function (props, defaultShowFn = () => {}, defaultHideFn = () => {}) {
21
+ return {
22
+ transitionProps: computed(() => {
23
+ const show = `q-transition--${ props.transitionShow || defaultShowFn() }`
24
+ const hide = `q-transition--${ props.transitionHide || defaultHideFn() }`
22
25
 
23
- watch(showing, val => {
24
- nextTick(() => { transitionState.value = val })
25
- })
26
+ return {
27
+ appear: true,
26
28
 
27
- // return transition
28
- return {
29
- transition: computed(() => 'q-transition--' + (
30
- transitionState.value === true ? props.transitionHide : props.transitionShow
31
- )),
29
+ enterFromClass: `${ show }-enter-from`,
30
+ enterActiveClass: `${ show }-enter-active`,
31
+ enterToClass: `${ show }-enter-to`,
32
+
33
+ leaveFromClass: `${ hide }-leave-from`,
34
+ leaveActiveClass: `${ hide }-leave-active`,
35
+ leaveToClass: `${ hide }-leave-to`
36
+ }
37
+ }),
32
38
 
33
39
  transitionStyle: computed(() => `--q-transition-duration: ${ props.transitionDuration }ms`)
34
40
  }
@@ -14,7 +14,6 @@
14
14
  "type": [ "String", "Number" ],
15
15
  "desc": "Transition duration (in milliseconds, without unit)",
16
16
  "default": 300,
17
- "examples": [ 500, "1200" ],
18
17
  "category": "transition"
19
18
  }
20
19
  }
@@ -3,7 +3,6 @@
3
3
  "model-value": {
4
4
  "type": "Any",
5
5
  "desc": "Model of the component; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive",
6
- "__exemption": [ "examples" ],
7
6
  "category": "model"
8
7
  },
9
8
 
@@ -62,8 +61,7 @@
62
61
  "params": {
63
62
  "value": {
64
63
  "type": "Any",
65
- "desc": "Optional value to validate against",
66
- "__exemption": [ "examples" ]
64
+ "desc": "Optional value to validate against"
67
65
  }
68
66
  },
69
67
  "returns": {