quasar 2.15.4 → 2.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (560) hide show
  1. package/dist/api/Brand.json +1 -1
  2. package/dist/api/QBreadcrumbs.json +1 -1
  3. package/dist/api/QBreadcrumbsEl.json +1 -1
  4. package/dist/api/QBtnDropdown.json +1 -1
  5. package/dist/api/QCarousel.json +1 -1
  6. package/dist/api/QCheckbox.json +1 -1
  7. package/dist/api/QCircularProgress.json +1 -1
  8. package/dist/api/QDialog.json +1 -1
  9. package/dist/api/QDrawer.json +1 -1
  10. package/dist/api/QEditor.json +1 -1
  11. package/dist/api/QExpansionItem.json +1 -1
  12. package/dist/api/QFab.json +1 -1
  13. package/dist/api/QFabAction.json +1 -1
  14. package/dist/api/QField.json +1 -1
  15. package/dist/api/QFile.json +1 -1
  16. package/dist/api/QImg.json +1 -1
  17. package/dist/api/QInnerLoading.json +1 -1
  18. package/dist/api/QInput.json +1 -1
  19. package/dist/api/QIntersection.json +1 -1
  20. package/dist/api/QItem.json +1 -1
  21. package/dist/api/QKnob.json +1 -1
  22. package/dist/api/QMenu.json +1 -1
  23. package/dist/api/QPage.json +1 -1
  24. package/dist/api/QPagination.json +1 -1
  25. package/dist/api/QParallax.json +1 -1
  26. package/dist/api/QPopupEdit.json +1 -1
  27. package/dist/api/QRadio.json +1 -1
  28. package/dist/api/QRange.json +1 -1
  29. package/dist/api/QRouteTab.json +1 -1
  30. package/dist/api/QSelect.json +1 -1
  31. package/dist/api/QSeparator.json +1 -1
  32. package/dist/api/QSkeleton.json +1 -1
  33. package/dist/api/QSlider.json +1 -1
  34. package/dist/api/QSpinner.json +1 -1
  35. package/dist/api/QSpinnerAudio.json +1 -1
  36. package/dist/api/QSpinnerBall.json +1 -1
  37. package/dist/api/QSpinnerBars.json +1 -1
  38. package/dist/api/QSpinnerBox.json +1 -1
  39. package/dist/api/QSpinnerClock.json +1 -1
  40. package/dist/api/QSpinnerComment.json +1 -1
  41. package/dist/api/QSpinnerCube.json +1 -1
  42. package/dist/api/QSpinnerDots.json +1 -1
  43. package/dist/api/QSpinnerFacebook.json +1 -1
  44. package/dist/api/QSpinnerGears.json +1 -1
  45. package/dist/api/QSpinnerGrid.json +1 -1
  46. package/dist/api/QSpinnerHearts.json +1 -1
  47. package/dist/api/QSpinnerHourglass.json +1 -1
  48. package/dist/api/QSpinnerInfinity.json +1 -1
  49. package/dist/api/QSpinnerIos.json +1 -1
  50. package/dist/api/QSpinnerOrbit.json +1 -1
  51. package/dist/api/QSpinnerOval.json +1 -1
  52. package/dist/api/QSpinnerPie.json +1 -1
  53. package/dist/api/QSpinnerPuff.json +1 -1
  54. package/dist/api/QSpinnerRadio.json +1 -1
  55. package/dist/api/QSpinnerRings.json +1 -1
  56. package/dist/api/QSpinnerTail.json +1 -1
  57. package/dist/api/QSplitter.json +1 -1
  58. package/dist/api/QStepper.json +1 -1
  59. package/dist/api/QTabPanels.json +1 -1
  60. package/dist/api/QTable.json +1 -1
  61. package/dist/api/QTimeline.json +1 -1
  62. package/dist/api/QToggle.json +1 -1
  63. package/dist/api/QTooltip.json +1 -1
  64. package/dist/api/QTree.json +1 -1
  65. package/dist/api/QVirtualScroll.json +1 -1
  66. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  67. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  68. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  69. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  70. package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +1 -1
  71. package/dist/icon-set/fontawesome-v6.umd.prod.js +1 -1
  72. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  73. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  74. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  75. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  76. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  77. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  78. package/dist/icon-set/material-symbols-outlined.umd.prod.js +1 -1
  79. package/dist/icon-set/material-symbols-rounded.umd.prod.js +1 -1
  80. package/dist/icon-set/material-symbols-sharp.umd.prod.js +1 -1
  81. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  82. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  83. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  84. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  85. package/dist/icon-set/mdi-v7.umd.prod.js +1 -1
  86. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  87. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  88. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  89. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +1 -1
  90. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  91. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  92. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  93. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  94. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  95. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  96. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  97. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  98. package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +1 -1
  99. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +1 -1
  100. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +1 -1
  101. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  102. package/dist/icon-set/svg-mdi-v7.umd.prod.js +1 -1
  103. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  104. package/dist/icon-set/themify.umd.prod.js +1 -1
  105. package/dist/lang/ar-TN.umd.prod.js +1 -1
  106. package/dist/lang/ar.umd.prod.js +1 -1
  107. package/dist/lang/az-Latn.umd.prod.js +1 -1
  108. package/dist/lang/bg.umd.prod.js +1 -1
  109. package/dist/lang/bn.umd.prod.js +1 -1
  110. package/dist/lang/ca.umd.prod.js +1 -1
  111. package/dist/lang/cs.umd.prod.js +1 -1
  112. package/dist/lang/da.umd.prod.js +1 -1
  113. package/dist/lang/de-CH.umd.prod.js +1 -1
  114. package/dist/lang/de-DE.umd.prod.js +1 -1
  115. package/dist/lang/de.umd.prod.js +1 -1
  116. package/dist/lang/el.umd.prod.js +1 -1
  117. package/dist/lang/en-GB.umd.prod.js +1 -1
  118. package/dist/lang/en-US.umd.prod.js +1 -1
  119. package/dist/lang/eo.umd.prod.js +1 -1
  120. package/dist/lang/es.umd.prod.js +1 -1
  121. package/dist/lang/et.umd.prod.js +1 -1
  122. package/dist/lang/eu.umd.prod.js +1 -1
  123. package/dist/lang/fa-IR.umd.prod.js +1 -1
  124. package/dist/lang/fa.umd.prod.js +1 -1
  125. package/dist/lang/fi.umd.prod.js +1 -1
  126. package/dist/lang/fr.umd.prod.js +1 -1
  127. package/dist/lang/gn.umd.prod.js +1 -1
  128. package/dist/lang/he.umd.prod.js +1 -1
  129. package/dist/lang/hi.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/kk.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/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/mk.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-MY.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/tl.umd.prod.js +1 -1
  165. package/dist/lang/tr.umd.prod.js +1 -1
  166. package/dist/lang/ug.umd.prod.js +1 -1
  167. package/dist/lang/uk.umd.prod.js +1 -1
  168. package/dist/lang/uz-Cyrl.umd.prod.js +1 -1
  169. package/dist/lang/uz-Latn.umd.prod.js +1 -1
  170. package/dist/lang/vi.umd.prod.js +1 -1
  171. package/dist/lang/zh-CN.umd.prod.js +1 -1
  172. package/dist/lang/zh-TW.umd.prod.js +1 -1
  173. package/dist/{quasar.esm.js → quasar.client.js} +333 -361
  174. package/dist/quasar.sass +1 -1
  175. package/dist/quasar.server.prod.cjs +127 -0
  176. package/dist/quasar.server.prod.js +127 -0
  177. package/dist/quasar.umd.js +333 -360
  178. package/dist/quasar.umd.prod.js +8 -8
  179. package/dist/transforms/api-list.json +1 -1
  180. package/dist/types/index.d.ts +191 -93
  181. package/dist/vetur/quasar-attributes.json +1 -1
  182. package/dist/vetur/quasar-tags.json +1 -1
  183. package/dist/web-types/web-types.json +1 -1
  184. package/icon-set/bootstrap-icons.js +3 -8
  185. package/icon-set/eva-icons.js +3 -8
  186. package/icon-set/fontawesome-v5-pro.js +1 -6
  187. package/icon-set/fontawesome-v5.js +1 -6
  188. package/icon-set/fontawesome-v6-pro.js +1 -6
  189. package/icon-set/fontawesome-v6.js +1 -6
  190. package/icon-set/ionicons-v4.js +3 -8
  191. package/icon-set/line-awesome.js +1 -6
  192. package/icon-set/material-icons-outlined.js +1 -6
  193. package/icon-set/material-icons-round.js +1 -6
  194. package/icon-set/material-icons-sharp.js +1 -6
  195. package/icon-set/material-icons.js +1 -6
  196. package/icon-set/material-symbols-outlined.js +1 -6
  197. package/icon-set/material-symbols-rounded.js +1 -6
  198. package/icon-set/material-symbols-sharp.js +1 -6
  199. package/icon-set/mdi-v3.js +1 -6
  200. package/icon-set/mdi-v4.js +1 -6
  201. package/icon-set/mdi-v5.js +1 -6
  202. package/icon-set/mdi-v6.js +1 -6
  203. package/icon-set/mdi-v7.js +1 -6
  204. package/icon-set/svg-bootstrap-icons.js +6 -6
  205. package/icon-set/svg-eva-icons.js +6 -6
  206. package/icon-set/svg-fontawesome-v5.js +3 -3
  207. package/icon-set/svg-fontawesome-v6.js +4 -5
  208. package/icon-set/svg-ionicons-v4.js +6 -6
  209. package/icon-set/svg-ionicons-v5.js +5 -5
  210. package/icon-set/svg-ionicons-v6.js +5 -5
  211. package/icon-set/svg-line-awesome.js +4 -5
  212. package/icon-set/svg-material-icons-outlined.js +4 -5
  213. package/icon-set/svg-material-icons-round.js +4 -5
  214. package/icon-set/svg-material-icons-sharp.js +4 -5
  215. package/icon-set/svg-material-icons.js +4 -5
  216. package/icon-set/svg-material-symbols-outlined.js +4 -4
  217. package/icon-set/svg-material-symbols-rounded.js +4 -4
  218. package/icon-set/svg-material-symbols-sharp.js +4 -4
  219. package/icon-set/svg-mdi-v6.js +4 -5
  220. package/icon-set/svg-mdi-v7.js +4 -4
  221. package/icon-set/svg-themify.js +6 -6
  222. package/icon-set/themify.js +3 -8
  223. package/lang/ar-TN.js +1 -6
  224. package/lang/ar.js +1 -6
  225. package/lang/az-Latn.js +1 -6
  226. package/lang/bg.js +1 -6
  227. package/lang/bn.js +1 -6
  228. package/lang/ca.js +1 -6
  229. package/lang/cs.js +1 -6
  230. package/lang/da.js +1 -6
  231. package/lang/de-CH.js +1 -6
  232. package/lang/de-DE.js +1 -6
  233. package/lang/de.js +1 -6
  234. package/lang/el.js +1 -6
  235. package/lang/en-GB.js +1 -6
  236. package/lang/en-US.js +1 -6
  237. package/lang/eo.js +1 -6
  238. package/lang/es.js +1 -6
  239. package/lang/et.js +1 -6
  240. package/lang/eu.js +1 -6
  241. package/lang/fa-IR.js +1 -6
  242. package/lang/fa.js +1 -6
  243. package/lang/fi.js +1 -6
  244. package/lang/fr.js +1 -6
  245. package/lang/gn.js +1 -6
  246. package/lang/he.js +1 -6
  247. package/lang/hi.js +1 -6
  248. package/lang/hr.js +1 -6
  249. package/lang/hu.js +1 -6
  250. package/lang/id.js +1 -6
  251. package/lang/is.js +1 -6
  252. package/lang/it.js +1 -6
  253. package/lang/ja.js +1 -6
  254. package/lang/kk.js +1 -6
  255. package/lang/km.js +1 -6
  256. package/lang/ko-KR.js +1 -6
  257. package/lang/kur-CKB.js +1 -6
  258. package/lang/lt.js +1 -6
  259. package/lang/lu.js +1 -6
  260. package/lang/lv.js +1 -6
  261. package/lang/mk.js +1 -6
  262. package/lang/ml.js +1 -6
  263. package/lang/mm.js +1 -6
  264. package/lang/ms-MY.js +1 -6
  265. package/lang/ms.js +1 -6
  266. package/lang/my.js +1 -6
  267. package/lang/nb-NO.js +1 -6
  268. package/lang/nl.js +1 -6
  269. package/lang/pl.js +1 -6
  270. package/lang/pt-BR.js +1 -6
  271. package/lang/pt.js +1 -6
  272. package/lang/ro.js +1 -6
  273. package/lang/ru.js +1 -6
  274. package/lang/sk.js +1 -6
  275. package/lang/sl.js +1 -6
  276. package/lang/sm.js +1 -6
  277. package/lang/sr-CYR.js +1 -6
  278. package/lang/sr.js +1 -6
  279. package/lang/sv.js +1 -6
  280. package/lang/ta.js +1 -6
  281. package/lang/th.js +1 -6
  282. package/lang/tl.js +1 -6
  283. package/lang/tr.js +1 -6
  284. package/lang/ug.js +1 -6
  285. package/lang/uk.js +1 -6
  286. package/lang/uz-Cyrl.js +1 -6
  287. package/lang/uz-Latn.js +1 -6
  288. package/lang/vi.js +1 -6
  289. package/lang/zh-CN.js +1 -6
  290. package/lang/zh-TW.js +1 -6
  291. package/package.json +18 -7
  292. package/src/components/avatar/QAvatar.test.js +0 -28
  293. package/src/components/badge/QBadge.test.js +0 -36
  294. package/src/components/banner/QBanner.test.js +0 -16
  295. package/src/components/bar/QBar.test.js +0 -8
  296. package/src/components/breadcrumbs/QBreadcrumbs.json +2 -1
  297. package/src/components/breadcrumbs/QBreadcrumbs.test.js +1 -21
  298. package/src/components/breadcrumbs/QBreadcrumbsEl.test.js +0 -51
  299. package/src/components/btn/QBtn.json +6 -1
  300. package/src/components/btn/QBtn.test.js +0 -143
  301. package/src/components/btn/use-btn.js +8 -4
  302. package/src/components/btn/use-btn.test.js +9 -1
  303. package/src/components/btn-dropdown/QBtnDropdown.js +3 -3
  304. package/src/components/btn-dropdown/QBtnDropdown.json +1 -4
  305. package/src/components/btn-toggle/QBtnToggle.json +3 -1
  306. package/src/components/card/QCardActions.json +1 -0
  307. package/src/components/carousel/QCarousel.js +4 -3
  308. package/src/components/carousel/QCarousel.json +6 -3
  309. package/src/components/checkbox/use-checkbox.json +1 -1
  310. package/src/components/chip/QChip.test.js +0 -108
  311. package/src/components/circular-progress/QCircularProgress.json +0 -1
  312. package/src/components/color/QColor.json +1 -0
  313. package/src/components/date/QDate.js +8 -2
  314. package/src/components/date/QDate.json +1 -0
  315. package/src/components/date/use-datetime.js +1 -3
  316. package/src/components/dialog/QDialog.js +1 -2
  317. package/src/components/dialog/QDialog.json +11 -1
  318. package/src/components/dialog/QDialog.test.js +38 -160
  319. package/src/components/drawer/QDrawer.json +2 -2
  320. package/src/components/editor/QEditor.js +3 -8
  321. package/src/components/editor/QEditor.json +9 -2
  322. package/src/components/expansion-item/QExpansionItem.js +1 -1
  323. package/src/components/expansion-item/QExpansionItem.json +5 -6
  324. package/src/components/fab/QFab.js +1 -0
  325. package/src/components/fab/QFab.json +5 -4
  326. package/src/components/fab/QFabAction.json +2 -1
  327. package/src/components/fab/use-fab.json +2 -1
  328. package/src/components/field/QField.json +0 -39
  329. package/src/components/file/QFile.js +2 -2
  330. package/src/components/file/QFile.json +2 -7
  331. package/src/components/footer/QFooter.json +3 -1
  332. package/src/components/form/QForm.js +1 -1
  333. package/src/components/header/QHeader.json +3 -1
  334. package/src/components/img/QImg.json +1 -1
  335. package/src/components/infinite-scroll/QInfiniteScroll.js +7 -6
  336. package/src/components/inner-loading/QInnerLoading.js +1 -1
  337. package/src/components/inner-loading/QInnerLoading.json +1 -0
  338. package/src/components/input/QInput.js +2 -1
  339. package/src/components/input/QInput.json +7 -24
  340. package/src/components/intersection/QIntersection.json +1 -1
  341. package/src/components/item/QItem.json +3 -1
  342. package/src/components/knob/QKnob.json +11 -2
  343. package/src/components/menu/QMenu.js +2 -4
  344. package/src/components/menu/QMenu.json +3 -1
  345. package/src/components/option-group/QOptionGroup.js +1 -0
  346. package/src/components/page/QPage.json +1 -2
  347. package/src/components/page-scroller/QPageScroller.js +1 -0
  348. package/src/components/page-scroller/QPageScroller.json +4 -0
  349. package/src/components/page-sticky/QPageSticky.js +1 -1
  350. package/src/components/pagination/QPagination.json +7 -2
  351. package/src/components/parallax/QParallax.js +2 -4
  352. package/src/components/parallax/QParallax.json +1 -0
  353. package/src/components/popup-edit/QPopupEdit.json +2 -1
  354. package/src/components/pull-to-refresh/QPullToRefresh.js +2 -4
  355. package/src/components/radio/QRadio.json +2 -2
  356. package/src/components/range/QRange.json +1 -0
  357. package/src/components/scroll-observer/QScrollObserver.js +2 -4
  358. package/src/components/select/QSelect.js +7 -7
  359. package/src/components/select/QSelect.json +27 -16
  360. package/src/components/separator/QSeparator.json +0 -1
  361. package/src/components/skeleton/QSkeleton.json +1 -1
  362. package/src/components/slider/QSlider.json +1 -0
  363. package/src/components/slider/use-slider.js +0 -2
  364. package/src/components/spinner/QSpinner.json +1 -5
  365. package/src/components/spinner/QSpinner.test.js +79 -0
  366. package/src/components/spinner/QSpinnerAudio.test.js +59 -0
  367. package/src/components/spinner/QSpinnerBall.test.js +59 -0
  368. package/src/components/spinner/QSpinnerBars.test.js +59 -0
  369. package/src/components/spinner/QSpinnerBox.test.js +59 -0
  370. package/src/components/spinner/QSpinnerClock.test.js +59 -0
  371. package/src/components/spinner/QSpinnerComment.test.js +59 -0
  372. package/src/components/spinner/QSpinnerCube.test.js +59 -0
  373. package/src/components/spinner/QSpinnerDots.test.js +59 -0
  374. package/src/components/spinner/QSpinnerFacebook.test.js +59 -0
  375. package/src/components/spinner/QSpinnerGears.test.js +59 -0
  376. package/src/components/spinner/QSpinnerGrid.test.js +59 -0
  377. package/src/components/spinner/QSpinnerHearts.test.js +59 -0
  378. package/src/components/spinner/QSpinnerHourglass.test.js +59 -0
  379. package/src/components/spinner/QSpinnerInfinity.test.js +59 -0
  380. package/src/components/spinner/QSpinnerIos.test.js +59 -0
  381. package/src/components/spinner/QSpinnerOrbit.test.js +59 -0
  382. package/src/components/spinner/QSpinnerOval.test.js +59 -0
  383. package/src/components/spinner/QSpinnerPie.test.js +59 -0
  384. package/src/components/spinner/QSpinnerPuff.test.js +59 -0
  385. package/src/components/spinner/QSpinnerRadio.test.js +59 -0
  386. package/src/components/spinner/QSpinnerRings.test.js +59 -0
  387. package/src/components/spinner/QSpinnerTail.test.js +59 -0
  388. package/src/components/spinner/spinner.json +5 -0
  389. package/src/components/spinner/use-spinner.js +1 -1
  390. package/src/components/spinner/use-spinner.test.js +59 -0
  391. package/src/components/splitter/QSplitter.json +3 -3
  392. package/src/components/stepper/QStep.json +6 -0
  393. package/src/components/tab-panels/QTabPanels.json +6 -0
  394. package/src/components/table/QTable.js +6 -8
  395. package/src/components/table/QTable.json +13 -8
  396. package/src/components/table/QTh.json +4 -0
  397. package/src/components/tabs/QRouteTab.json +3 -2
  398. package/src/components/tabs/QTab.json +1 -65
  399. package/src/components/tabs/use-tab.json +72 -0
  400. package/src/components/time/QTime.js +6 -0
  401. package/src/components/time/QTime.json +2 -0
  402. package/src/components/timeline/QTimeline.json +2 -1
  403. package/src/components/toolbar/QToolbar.test.js +0 -4
  404. package/src/components/toolbar/QToolbarTitle.test.js +0 -4
  405. package/src/components/tooltip/QTooltip.js +6 -6
  406. package/src/components/tooltip/QTooltip.json +6 -15
  407. package/src/components/tree/QTree.js +1 -1
  408. package/src/components/tree/QTree.json +2 -1
  409. package/src/components/uploader/xhr-uploader-plugin.js +1 -3
  410. package/src/components/video/QVideo.test.js +0 -24
  411. package/src/components/virtual-scroll/QVirtualScroll.js +2 -4
  412. package/src/components/virtual-scroll/QVirtualScroll.json +0 -1
  413. package/src/components/virtual-scroll/use-virtual-scroll.js +2 -2
  414. package/src/components/virtual-scroll/use-virtual-scroll.json +1 -1
  415. package/src/composables/private.use-anchor/use-anchor-static.json +22 -0
  416. package/src/composables/private.use-anchor/use-anchor.js +13 -4
  417. package/src/composables/private.use-anchor/use-anchor.json +2 -19
  418. package/src/composables/private.use-field/use-field.js +6 -3
  419. package/src/composables/private.use-field/use-field.json +22 -0
  420. package/src/composables/private.use-fullscreen/use-fullscreen.json +10 -0
  421. package/src/composables/private.use-model-toggle/use-model-toggle.json +4 -2
  422. package/src/composables/private.use-panel/use-panel.json +3 -0
  423. package/src/composables/private.use-portal/use-portal.js +1 -1
  424. package/src/composables/private.use-router-link/use-router-link.js +15 -9
  425. package/src/composables/private.use-router-link/use-router-link.json +2 -0
  426. package/src/composables/private.use-validate/use-validate.json +1 -0
  427. package/src/composables/use-id/use-id.test.js +0 -1
  428. package/src/install-quasar.js +1 -1
  429. package/src/plugins/app-fullscreen/AppFullscreen.js +1 -1
  430. package/src/plugins/app-fullscreen/test/mock-fullscreen.js +1 -1
  431. package/src/plugins/bottom-sheet/BottomSheet.js +1 -1
  432. package/src/plugins/bottom-sheet/BottomSheet.json +1 -1
  433. package/src/plugins/dialog/Dialog.js +1 -1
  434. package/src/plugins/dialog/Dialog.json +1 -1
  435. package/src/plugins/icon-set/IconSet.js +1 -2
  436. package/src/plugins/icon-set/IconSet.test.js +2 -2
  437. package/src/plugins/lang/Lang.js +1 -2
  438. package/src/plugins/lang/Lang.test.js +2 -2
  439. package/src/plugins/loading/Loading.js +1 -1
  440. package/src/plugins/loading-bar/LoadingBar.js +1 -1
  441. package/src/plugins/notify/Notify.js +1 -1
  442. package/src/utils/{private.global/global-config.test.js → private.config/instance-config.test.js} +2 -2
  443. package/src/utils/{private.global/global-nodes.js → private.config/nodes.js} +1 -1
  444. package/src/utils/{private.global/global-nodes.test.js → private.config/nodes.test.js} +3 -3
  445. package/src/utils/{private.global/global-dialog.js → private.dialog/create-dialog.js} +1 -1
  446. package/src/utils/scroll/scroll.js +4 -0
  447. package/wrappers/{index.mjs → index.cjs} +15 -15
  448. package/wrappers/index.js +15 -15
  449. package/dist/quasar.cjs.prod.js +0 -127
  450. package/dist/quasar.esm.prod.js +0 -127
  451. package/dist/transforms/import-transformation.js +0 -9
  452. package/icon-set/bootstrap-icons.mjs +0 -136
  453. package/icon-set/eva-icons.mjs +0 -186
  454. package/icon-set/fontawesome-v5-pro.mjs +0 -128
  455. package/icon-set/fontawesome-v5.mjs +0 -128
  456. package/icon-set/fontawesome-v6-pro.mjs +0 -128
  457. package/icon-set/fontawesome-v6.mjs +0 -128
  458. package/icon-set/ionicons-v4.mjs +0 -180
  459. package/icon-set/line-awesome.mjs +0 -128
  460. package/icon-set/material-icons-outlined.mjs +0 -128
  461. package/icon-set/material-icons-round.mjs +0 -128
  462. package/icon-set/material-icons-sharp.mjs +0 -128
  463. package/icon-set/material-icons.mjs +0 -128
  464. package/icon-set/material-symbols-outlined.mjs +0 -128
  465. package/icon-set/material-symbols-rounded.mjs +0 -128
  466. package/icon-set/material-symbols-sharp.mjs +0 -128
  467. package/icon-set/mdi-v3.mjs +0 -141
  468. package/icon-set/mdi-v4.mjs +0 -141
  469. package/icon-set/mdi-v5.mjs +0 -141
  470. package/icon-set/mdi-v6.mjs +0 -141
  471. package/icon-set/mdi-v7.mjs +0 -141
  472. package/icon-set/svg-bootstrap-icons.mjs +0 -210
  473. package/icon-set/svg-eva-icons.mjs +0 -233
  474. package/icon-set/svg-fontawesome-v5.mjs +0 -197
  475. package/icon-set/svg-fontawesome-v6.mjs +0 -198
  476. package/icon-set/svg-ionicons-v4.mjs +0 -234
  477. package/icon-set/svg-ionicons-v5.mjs +0 -225
  478. package/icon-set/svg-ionicons-v6.mjs +0 -224
  479. package/icon-set/svg-line-awesome.mjs +0 -198
  480. package/icon-set/svg-material-icons-outlined.mjs +0 -203
  481. package/icon-set/svg-material-icons-round.mjs +0 -203
  482. package/icon-set/svg-material-icons-sharp.mjs +0 -203
  483. package/icon-set/svg-material-icons.mjs +0 -203
  484. package/icon-set/svg-material-symbols-outlined.mjs +0 -201
  485. package/icon-set/svg-material-symbols-rounded.mjs +0 -201
  486. package/icon-set/svg-material-symbols-sharp.mjs +0 -201
  487. package/icon-set/svg-mdi-v6.mjs +0 -225
  488. package/icon-set/svg-mdi-v7.mjs +0 -224
  489. package/icon-set/svg-themify.mjs +0 -231
  490. package/icon-set/themify.mjs +0 -169
  491. package/lang/ar-TN.mjs +0 -98
  492. package/lang/ar.mjs +0 -98
  493. package/lang/az-Latn.mjs +0 -93
  494. package/lang/bg.mjs +0 -93
  495. package/lang/bn.mjs +0 -93
  496. package/lang/ca.mjs +0 -93
  497. package/lang/cs.mjs +0 -104
  498. package/lang/da.mjs +0 -93
  499. package/lang/de-CH.mjs +0 -93
  500. package/lang/de-DE.mjs +0 -93
  501. package/lang/de.mjs +0 -93
  502. package/lang/el.mjs +0 -93
  503. package/lang/en-GB.mjs +0 -93
  504. package/lang/en-US.mjs +0 -93
  505. package/lang/eo.mjs +0 -93
  506. package/lang/es.mjs +0 -93
  507. package/lang/et.mjs +0 -93
  508. package/lang/eu.mjs +0 -93
  509. package/lang/fa-IR.mjs +0 -94
  510. package/lang/fa.mjs +0 -94
  511. package/lang/fi.mjs +0 -94
  512. package/lang/fr.mjs +0 -96
  513. package/lang/gn.mjs +0 -93
  514. package/lang/he.mjs +0 -94
  515. package/lang/hi.mjs +0 -93
  516. package/lang/hr.mjs +0 -93
  517. package/lang/hu.mjs +0 -93
  518. package/lang/id.mjs +0 -93
  519. package/lang/is.mjs +0 -93
  520. package/lang/it.mjs +0 -93
  521. package/lang/ja.mjs +0 -92
  522. package/lang/kk.mjs +0 -97
  523. package/lang/km.mjs +0 -93
  524. package/lang/ko-KR.mjs +0 -93
  525. package/lang/kur-CKB.mjs +0 -103
  526. package/lang/lt.mjs +0 -105
  527. package/lang/lu.mjs +0 -93
  528. package/lang/lv.mjs +0 -93
  529. package/lang/mk.mjs +0 -93
  530. package/lang/ml.mjs +0 -97
  531. package/lang/mm.mjs +0 -94
  532. package/lang/ms-MY.mjs +0 -96
  533. package/lang/ms.mjs +0 -93
  534. package/lang/my.mjs +0 -92
  535. package/lang/nb-NO.mjs +0 -94
  536. package/lang/nl.mjs +0 -93
  537. package/lang/pl.mjs +0 -93
  538. package/lang/pt-BR.mjs +0 -93
  539. package/lang/pt.mjs +0 -93
  540. package/lang/ro.mjs +0 -93
  541. package/lang/ru.mjs +0 -97
  542. package/lang/sk.mjs +0 -93
  543. package/lang/sl.mjs +0 -93
  544. package/lang/sm.mjs +0 -93
  545. package/lang/sr-CYR.mjs +0 -93
  546. package/lang/sr.mjs +0 -93
  547. package/lang/sv.mjs +0 -93
  548. package/lang/ta.mjs +0 -93
  549. package/lang/th.mjs +0 -93
  550. package/lang/tl.mjs +0 -93
  551. package/lang/tr.mjs +0 -89
  552. package/lang/ug.mjs +0 -93
  553. package/lang/uk.mjs +0 -97
  554. package/lang/uz-Cyrl.mjs +0 -95
  555. package/lang/uz-Latn.mjs +0 -99
  556. package/lang/vi.mjs +0 -93
  557. package/lang/zh-CN.mjs +0 -92
  558. package/lang/zh-TW.mjs +0 -92
  559. /package/src/utils/{private.global/global-config.js → private.config/instance-config.js} +0 -0
  560. /package/src/utils/{private.global/global-dialog.json → private.dialog/create-dialog.json} +0 -0
@@ -143,7 +143,6 @@
143
143
  "filter-method": {
144
144
  "type": "Function",
145
145
  "desc": "The function to use to filter the tree nodes; For best performance, reference it from your scope and do not define it inline",
146
- "default": "# see source code",
147
146
  "params": {
148
147
  "node": {
149
148
  "type": "Object",
@@ -158,6 +157,7 @@
158
157
  "type": "Boolean",
159
158
  "desc": "Matches or not"
160
159
  },
160
+ "examples": [ "(node, filter) => node.label.toLowerCase().indexOf(filter.toLowerCase()) !== -1" ],
161
161
  "category": "filter"
162
162
  },
163
163
 
@@ -165,6 +165,7 @@
165
165
  "type": "Number",
166
166
  "desc": "Toggle animation duration (in milliseconds)",
167
167
  "default": "300",
168
+ "passthrough": "child",
168
169
  "category": "style"
169
170
  },
170
171
 
@@ -16,9 +16,7 @@ const props = {
16
16
  },
17
17
  fieldName: {
18
18
  type: [ Function, String ],
19
- default: () => {
20
- return file => file.name
21
- }
19
+ default: () => file => file.name
22
20
  },
23
21
  headers: [ Function, Array ],
24
22
  formFields: [ Function, Array ],
@@ -6,10 +6,6 @@ import QVideo from './QVideo.js'
6
6
  describe('[QVideo API]', () => {
7
7
  describe('[Props]', () => {
8
8
  describe('[(prop)ratio]', () => {
9
- test('is defined correctly', () => {
10
- expect(QVideo.props.ratio).toBeDefined()
11
- })
12
-
13
9
  test.each([
14
10
  [ 'String', '5' ],
15
11
  [ 'Number', 5 ]
@@ -36,10 +32,6 @@ describe('[QVideo API]', () => {
36
32
  })
37
33
 
38
34
  describe('[(prop)src]', () => {
39
- test('is defined correctly', () => {
40
- expect(QVideo.props.src).toBeDefined()
41
- })
42
-
43
35
  test('type String has effect', () => {
44
36
  const propVal = 'https://www.youtube.com/embed/k3_tw44QsZQ'
45
37
  const wrapper = mount(QVideo, {
@@ -56,10 +48,6 @@ describe('[QVideo API]', () => {
56
48
  })
57
49
 
58
50
  describe('[(prop)title]', () => {
59
- test('is defined correctly', () => {
60
- expect(QVideo.props.title).toBeDefined()
61
- })
62
-
63
51
  test('type String has effect', async () => {
64
52
  const wrapper = mount(QVideo, {
65
53
  props: {
@@ -84,10 +72,6 @@ describe('[QVideo API]', () => {
84
72
  })
85
73
 
86
74
  describe('[(prop)fetchpriority]', () => {
87
- test('is defined correctly', () => {
88
- expect(QVideo.props.fetchpriority).toBeDefined()
89
- })
90
-
91
75
  test.each([
92
76
  [ 'high' ],
93
77
  [ 'low' ],
@@ -115,10 +99,6 @@ describe('[QVideo API]', () => {
115
99
  })
116
100
 
117
101
  describe('[(prop)loading]', () => {
118
- test('is defined correctly', () => {
119
- expect(QVideo.props.loading).toBeDefined()
120
- })
121
-
122
102
  test.each([
123
103
  [ 'eager' ],
124
104
  [ 'lazy' ]
@@ -145,10 +125,6 @@ describe('[QVideo API]', () => {
145
125
  })
146
126
 
147
127
  describe('[(prop)referrerpolicy]', () => {
148
- test('is defined correctly', () => {
149
- expect(QVideo.props.referrerpolicy).toBeDefined()
150
- })
151
-
152
128
  test.each([
153
129
  [ 'no-referrer' ],
154
130
  [ 'no-referrer-when-downgrade' ],
@@ -7,7 +7,7 @@ import getTableMiddle from '../table/get-table-middle.js'
7
7
  import { useVirtualScroll, useVirtualScrollProps } from './use-virtual-scroll.js'
8
8
 
9
9
  import { createComponent } from '../../utils/private.create/create.js'
10
- import { getScrollTarget } from '../../utils/scroll/scroll.js'
10
+ import { getScrollTarget, scrollTargetProp } from '../../utils/scroll/scroll.js'
11
11
  import { listenOpts } from '../../utils/event/event.js'
12
12
  import { hMergeSlot } from '../../utils/private.render/render.js'
13
13
 
@@ -38,9 +38,7 @@ export default createComponent({
38
38
  itemsFn: Function,
39
39
  itemsSize: Number,
40
40
 
41
- scrollTarget: {
42
- default: void 0
43
- }
41
+ scrollTarget: scrollTargetProp
44
42
  },
45
43
 
46
44
  setup (props, { slots, attrs }) {
@@ -28,7 +28,6 @@
28
28
  "items-size": {
29
29
  "type": "Number",
30
30
  "desc": "Number of available items in the list; Required and used only if 'itemsFn' is provided",
31
- "default": "# void 0",
32
31
  "examples": [ "100000" ],
33
32
  "category": "content"
34
33
  },
@@ -193,7 +193,7 @@ function sumSize (sizeAgg, size, from, to) {
193
193
  const commonVirtScrollProps = {
194
194
  virtualScrollSliceSize: {
195
195
  type: [ Number, String ],
196
- default: null
196
+ default: 10
197
197
  },
198
198
 
199
199
  virtualScrollSliceRatioBefore: {
@@ -224,7 +224,7 @@ const commonVirtScrollProps = {
224
224
  tableColspan: [ Number, String ]
225
225
  }
226
226
 
227
- export const commonVirtPropsList = Object.keys(commonVirtScrollProps)
227
+ export const commonVirtScrollPropsList = Object.keys(commonVirtScrollProps)
228
228
 
229
229
  export const useVirtualScrollProps = {
230
230
  virtualScrollHorizontal: Boolean,
@@ -9,7 +9,7 @@
9
9
  "virtual-scroll-slice-size": {
10
10
  "type": [ "Number", "String", "null" ],
11
11
  "desc": "Minimum number of items to render in the virtual list",
12
- "default": "30",
12
+ "default": "10",
13
13
  "examples": [ "60", "'60'" ],
14
14
  "category": "virtual-scroll"
15
15
  },
@@ -0,0 +1,22 @@
1
+ {
2
+ "props": {
3
+ "target": {
4
+ "type": [ "Boolean", "String", "Element" ],
5
+ "desc": "Configure a target element to trigger component toggle; 'true' means it enables the parent DOM element, 'false' means it disables attaching events to any DOM elements; By using a String (CSS selector) or a DOM element it attaches the events to the specified DOM element (if it exists)",
6
+ "default": "true",
7
+ "examples": [
8
+ "false",
9
+ ".my-parent",
10
+ "#target-id",
11
+ "$refs.target"
12
+ ],
13
+ "category": "behavior"
14
+ },
15
+
16
+ "no-parent-event": {
17
+ "type": "Boolean",
18
+ "desc": "Skips attaching events to the target DOM element (that trigger the element to get shown)",
19
+ "category": "behavior"
20
+ }
21
+ }
22
+ }
@@ -4,11 +4,20 @@ import { clearSelection } from '../../utils/private.selection/selection.js'
4
4
  import { addEvt, cleanEvt, prevent } from '../../utils/event/event.js'
5
5
  import { isKeyCode } from '../../utils/private.keyboard/key-composition.js'
6
6
 
7
+ export const useAnchorStaticProps = {
8
+ /* SSR does not know about Element */
9
+ target: __QUASAR_SSR_SERVER__
10
+ ? { default: true }
11
+ : {
12
+ type: [ Boolean, String, Element ],
13
+ default: true
14
+ },
15
+
16
+ noParentEvent: Boolean
17
+ }
18
+
7
19
  export const useAnchorProps = {
8
- target: {
9
- default: true
10
- },
11
- noParentEvent: Boolean,
20
+ ...useAnchorStaticProps,
12
21
  contextMenu: Boolean
13
22
  }
14
23
 
@@ -1,24 +1,7 @@
1
1
  {
2
- "props": {
3
- "target": {
4
- "type": [ "Boolean", "String", "Element" ],
5
- "desc": "Configure a target element to trigger component toggle; 'true' means it enables the parent DOM element, 'false' means it disables attaching events to any DOM elements; By using a String (CSS selector) or a DOM element it attaches the events to the specified DOM element (if it exists)",
6
- "default": "true",
7
- "examples": [
8
- "false",
9
- ".my-parent",
10
- "#target-id",
11
- "$refs.target"
12
- ],
13
- "category": "behavior"
14
- },
15
-
16
- "no-parent-event": {
17
- "type": "Boolean",
18
- "desc": "Skips attaching events to the target DOM element (that trigger the element to get shown)",
19
- "category": "behavior"
20
- },
2
+ "mixins": [ "composables/private.use-anchor/use-anchor-static" ],
21
3
 
4
+ "props": {
22
5
  "context-menu": {
23
6
  "type": "Boolean",
24
7
  "desc": "Allows the component to behave like a context menu, which opens with a right mouse click (or long tap on mobile)",
@@ -18,7 +18,7 @@ export function fieldValueIsFilled (val) {
18
18
  && ('' + val).length !== 0
19
19
  }
20
20
 
21
- export const useFieldProps = {
21
+ export const useNonInputFieldProps = {
22
22
  ...useDarkProps,
23
23
  ...useValidateProps,
24
24
 
@@ -61,12 +61,15 @@ export const useFieldProps = {
61
61
 
62
62
  autofocus: Boolean,
63
63
 
64
- for: String,
64
+ for: String
65
+ }
65
66
 
67
+ export const useFieldProps = {
68
+ ...useNonInputFieldProps,
66
69
  maxlength: [ Number, String ]
67
70
  }
68
71
 
69
- export const useFieldEmits = [ 'update:modelValue', 'clear', 'focus', 'blur', 'popupShow', 'popupHide' ]
72
+ export const useFieldEmits = [ 'update:modelValue', 'clear', 'focus', 'blur' ]
70
73
 
71
74
  export function useFieldState ({ requiredForAttr = true, tagProp } = {}) {
72
75
  const { props, proxy } = getCurrentInstance()
@@ -212,6 +212,28 @@
212
212
  },
213
213
 
214
214
  "events": {
215
+ "update:model-value": {
216
+ "extends": "update:model-value"
217
+ },
218
+
219
+ "focus": {
220
+ "desc": "Emitted when component gets focused",
221
+ "params": {
222
+ "evt": {
223
+ "extends": "evt"
224
+ }
225
+ }
226
+ },
227
+
228
+ "blur": {
229
+ "desc": "Emitted when component loses focus",
230
+ "params": {
231
+ "evt": {
232
+ "extends": "evt"
233
+ }
234
+ }
235
+ },
236
+
215
237
  "clear": {
216
238
  "desc": "When using the 'clearable' property, this event is emitted when the clear icon is clicked",
217
239
  "params": {
@@ -24,6 +24,16 @@
24
24
  "desc": "Fullscreen state (showing/hidden)"
25
25
  }
26
26
  }
27
+ },
28
+
29
+ "update:fullscreen": {
30
+ "desc": "Used by Vue on 'v-model:fullscreen' prop for updating its value",
31
+ "params": {
32
+ "value": {
33
+ "type": "Boolean",
34
+ "desc": "Fullscreen state (showing/hidden)"
35
+ }
36
+ }
27
37
  }
28
38
  },
29
39
 
@@ -1,9 +1,11 @@
1
1
  {
2
2
  "props": {
3
3
  "model-value": {
4
- "type": "Boolean",
4
+ "type": [ "Boolean", "null" ],
5
5
  "desc": "Model of the component defining shown/hidden state; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive",
6
- "category": "model"
6
+ "default": "null",
7
+ "category": "model",
8
+ "examples": [ "# v-model=\"state\"" ]
7
9
  }
8
10
  },
9
11
 
@@ -4,6 +4,7 @@
4
4
  "type": "Any",
5
5
  "desc": "Model of the component defining the current panel's name; If a Number is used, it does not define the panel's index, but rather the panel's name which can also be an Integer; Either use this property (along with a listener for 'update:model-value' event) OR use the v-model directive.",
6
6
  "examples": [ "# v-model=\"panelName\"" ],
7
+ "required": true,
7
8
  "category": "model"
8
9
  },
9
10
 
@@ -61,6 +62,7 @@
61
62
  "extends": "transition",
62
63
  "desc": "One of Quasar's embedded transitions (has effect only if 'animated' prop is set)",
63
64
  "default": "# slide-right/slide-down",
65
+ "__runtimeDefault": true,
64
66
  "category": "transition"
65
67
  },
66
68
 
@@ -68,6 +70,7 @@
68
70
  "extends": "transition",
69
71
  "desc": "One of Quasar's embedded transitions (has effect only if 'animated' prop is set)",
70
72
  "default": "# slide-left/slide-up",
73
+ "__runtimeDefault": true,
71
74
  "category": "transition"
72
75
  },
73
76
 
@@ -3,7 +3,7 @@ import { h, ref, onUnmounted, Teleport } from 'vue'
3
3
  import { createComponent } from '../../utils/private.create/create.js'
4
4
  import { noop } from '../../utils/event/event.js'
5
5
  import { addFocusWaitFlag, removeFocusWaitFlag } from '../../utils/private.focus/focus-manager.js'
6
- import { createGlobalNode, removeGlobalNode } from '../../utils/private.global/global-nodes.js'
6
+ import { createGlobalNode, removeGlobalNode } from '../../utils/private.config/nodes.js'
7
7
  import { portalProxyList } from '../../utils/private.portal/portal.js'
8
8
  import { injectProp } from '../../utils/private.inject-obj-prop/inject-obj-prop.js'
9
9
 
@@ -77,10 +77,23 @@ function isSameRouteLocationParams (a, b) {
77
77
  return true
78
78
  }
79
79
 
80
- export const useRouterLinkProps = {
80
+ export const useRouterLinkNonMatchingProps = {
81
81
  // router-link
82
82
  to: [ String, Object ],
83
83
  replace: Boolean,
84
+
85
+ // regular <a> link
86
+ href: String,
87
+ target: String,
88
+
89
+ // state
90
+ disable: Boolean
91
+ }
92
+
93
+ export const useRouterLinkProps = {
94
+ ...useRouterLinkNonMatchingProps,
95
+
96
+ // router-link
84
97
  exact: Boolean,
85
98
  activeClass: {
86
99
  type: String,
@@ -89,14 +102,7 @@ export const useRouterLinkProps = {
89
102
  exactActiveClass: {
90
103
  type: String,
91
104
  default: 'q-router-link--exact-active'
92
- },
93
-
94
- // regular <a> link
95
- href: String,
96
- target: String,
97
-
98
- // state
99
- disable: Boolean
105
+ }
100
106
  }
101
107
 
102
108
  // external props: type, tag
@@ -25,6 +25,7 @@
25
25
  "active-class": {
26
26
  "type": "String",
27
27
  "desc": "Equivalent to Vue Router <router-link> 'active-class' property; Superseded by 'href' prop if used",
28
+ "default": "'q-router-link--active'",
28
29
  "examples": [ "'my-active-class'" ],
29
30
  "category": "navigation"
30
31
  },
@@ -32,6 +33,7 @@
32
33
  "exact-active-class": {
33
34
  "type": "String",
34
35
  "desc": "Equivalent to Vue Router <router-link> 'active-class' property; Superseded by 'href' prop if used",
36
+ "default": "'q-router-link--exact-active'",
35
37
  "examples": [ "'my-exact-active-class'" ],
36
38
  "category": "navigation"
37
39
  },
@@ -47,6 +47,7 @@
47
47
  "lazy-rules": {
48
48
  "type": [ "Boolean", "String" ],
49
49
  "desc": "If set to boolean true then it checks validation status against the 'rules' only after field loses focus for first time; If set to 'ondemand' then it will trigger only when component's validate() method is manually called or when the wrapper QForm submits itself",
50
+ "default": "false",
50
51
  "values": [ "true", "false", "'ondemand'" ],
51
52
  "category": "behavior"
52
53
  }
@@ -58,7 +58,6 @@ describe('[useId API]', () => {
58
58
  defineComponent({
59
59
  template: '<div />',
60
60
  setup () {
61
- // eslint-disable-next-line
62
61
  const result = useId()
63
62
  return { result }
64
63
  }
@@ -9,7 +9,7 @@ import Lang from './plugins/lang/Lang.js'
9
9
  import IconSet from './plugins/icon-set/IconSet.js'
10
10
 
11
11
  import { quasarKey } from './utils/private.symbols/symbols.js'
12
- import { globalConfig, globalConfigIsFrozen, freezeGlobalConfig } from './utils/private.global/global-config.js'
12
+ import { globalConfig, globalConfigIsFrozen, freezeGlobalConfig } from './utils/private.config/instance-config.js'
13
13
  import { isObject } from './utils/is/is.js'
14
14
 
15
15
  /**
@@ -1,5 +1,5 @@
1
1
  import { createReactivePlugin } from '../../utils/private.create/create.js'
2
- import { changeGlobalNodesTarget } from '../../utils/private.global/global-nodes.js'
2
+ import { changeGlobalNodesTarget } from '../../utils/private.config/nodes.js'
3
3
 
4
4
  const prefixes = {}
5
5
 
@@ -1,4 +1,4 @@
1
- import { vi } from 'vitest'
1
+ import { vi, onTestFinished } from 'vitest'
2
2
 
3
3
  /**
4
4
  * jsdom does not support Fullscreen API,
@@ -1,5 +1,5 @@
1
1
  import BottomSheet from './component/BottomSheetComponent.js'
2
- import globalDialog from '../../utils/private.global/global-dialog.js'
2
+ import globalDialog from '../../utils/private.dialog/create-dialog.js'
3
3
 
4
4
  export default {
5
5
  install ({ $q, parentApp }) {
@@ -1,5 +1,5 @@
1
1
  {
2
- "mixins": [ "utils/private.global/global-dialog" ],
2
+ "mixins": [ "utils/private.dialog/create-dialog" ],
3
3
 
4
4
  "meta": {
5
5
  "docsUrl": "https://v2.quasar.dev/quasar-plugins/bottom-sheet"
@@ -1,5 +1,5 @@
1
1
  import DialogPlugin from './component/DialogPluginComponent.js'
2
- import globalDialog from '../../utils/private.global/global-dialog.js'
2
+ import globalDialog from '../../utils/private.dialog/create-dialog.js'
3
3
 
4
4
  export default {
5
5
  install ({ $q, parentApp }) {
@@ -1,5 +1,5 @@
1
1
  {
2
- "mixins": [ "utils/private.global/global-dialog" ],
2
+ "mixins": [ "utils/private.dialog/create-dialog" ],
3
3
 
4
4
  "meta": {
5
5
  "docsUrl": "https://v2.quasar.dev/quasar-plugins/dialog"
@@ -1,8 +1,7 @@
1
1
  import { createReactivePlugin } from '../../utils/private.create/create.js'
2
2
  import { injectProp } from '../../utils/private.inject-obj-prop/inject-obj-prop.js'
3
3
 
4
- // no extension on purpose for next one:
5
- import materialIcons from '../../../icon-set/material-icons'
4
+ import materialIcons from '../../../icon-set/material-icons.js'
6
5
 
7
6
  const Plugin = createReactivePlugin({
8
7
  iconMapFn: null,
@@ -330,13 +330,13 @@ describe('[IconSet API]', () => {
330
330
 
331
331
  test('should work with an imported icon set', async () => {
332
332
  const { vm: { $q } } = mountPlugin()
333
- const { default: newIconSet } = await import('quasar/icon-set/fontawesome-v6.mjs')
333
+ const { default: newIconSet } = await import('quasar/icon-set/fontawesome-v6.js')
334
334
 
335
335
  IconSet.set(newIconSet)
336
336
  expect(IconSet.props.name).toBe(newIconSet.name)
337
337
  expect($q.iconSet.name).toBe(newIconSet.name)
338
338
 
339
- const { default: anotherIconSet } = await import('quasar/icon-set/ionicons-v4.mjs')
339
+ const { default: anotherIconSet } = await import('quasar/icon-set/ionicons-v4.js')
340
340
  $q.iconSet.set(anotherIconSet)
341
341
  expect(IconSet.props.name).toBe(anotherIconSet.name)
342
342
  expect($q.iconSet.name).toBe(anotherIconSet.name)
@@ -1,7 +1,6 @@
1
1
  import { createReactivePlugin } from '../../utils/private.create/create.js'
2
2
 
3
- // no extension on purpose for next one:
4
- import defaultLang from '../../../lang/en-US'
3
+ import defaultLang from '../../../lang/en-US.js'
5
4
 
6
5
  function getLocale () {
7
6
  if (__QUASAR_SSR_SERVER__) return
@@ -231,13 +231,13 @@ describe('[Lang API]', () => {
231
231
 
232
232
  test('should work with an imported lang pack', async () => {
233
233
  const { vm: { $q } } = mountPlugin()
234
- const { default: deLang } = await import('quasar/lang/de-DE.mjs')
234
+ const { default: deLang } = await import('quasar/lang/de-DE.js')
235
235
 
236
236
  Lang.set(deLang)
237
237
  expect(Lang.props.nativeName).toBe(deLang.nativeName)
238
238
  expect($q.lang.nativeName).toBe(deLang.nativeName)
239
239
 
240
- const { default: itLang } = await import('quasar/lang/it.mjs')
240
+ const { default: itLang } = await import('quasar/lang/it.js')
241
241
  $q.lang.set(itLang)
242
242
  expect(Lang.props.nativeName).toBe(itLang.nativeName)
243
243
  expect($q.lang.nativeName).toBe(itLang.nativeName)
@@ -5,7 +5,7 @@ import QSpinner from '../../components/spinner/QSpinner.js'
5
5
  import { createChildApp } from '../../install-quasar.js'
6
6
 
7
7
  import { createReactivePlugin } from '../../utils/private.create/create.js'
8
- import { createGlobalNode, removeGlobalNode } from '../../utils/private.global/global-nodes.js'
8
+ import { createGlobalNode, removeGlobalNode } from '../../utils/private.config/nodes.js'
9
9
  import preventScroll from '../../utils/scroll/prevent-scroll.js'
10
10
  import { isObject } from '../../utils/is/is.js'
11
11
 
@@ -5,7 +5,7 @@ import { createChildApp } from '../../install-quasar.js'
5
5
 
6
6
  import { createReactivePlugin } from '../../utils/private.create/create.js'
7
7
  import { noop } from '../../utils/event/event.js'
8
- import { createGlobalNode } from '../../utils/private.global/global-nodes.js'
8
+ import { createGlobalNode } from '../../utils/private.config/nodes.js'
9
9
  import { isObject } from '../../utils/is/is.js'
10
10
 
11
11
  const barRef = ref(null)
@@ -9,7 +9,7 @@ import { createChildApp } from '../../install-quasar.js'
9
9
 
10
10
  import { createComponent } from '../../utils/private.create/create.js'
11
11
  import { noop } from '../../utils/event/event.js'
12
- import { createGlobalNode } from '../../utils/private.global/global-nodes.js'
12
+ import { createGlobalNode } from '../../utils/private.config/nodes.js'
13
13
  import { isObject } from '../../utils/is/is.js'
14
14
 
15
15
  let uid = 0
@@ -1,7 +1,7 @@
1
1
  import { describe, test, expect } from 'vitest'
2
2
  import { mount, config } from '@vue/test-utils'
3
3
 
4
- import { globalConfig, globalConfigIsFrozen, freezeGlobalConfig } from './global-config.js'
4
+ import { globalConfig, globalConfigIsFrozen, freezeGlobalConfig } from './instance-config.js'
5
5
 
6
6
  // We override Quasar install so we have a custom $q.config
7
7
  const quasarVuePlugin = config.global.plugins.find(entry => entry.name === 'Quasar')
@@ -12,7 +12,7 @@ function mountWithConfig (config) {
12
12
  mount({ template: '<div />' })
13
13
  }
14
14
 
15
- describe('[globalConfig API]', () => {
15
+ describe('[instanceConfig API]', () => {
16
16
  describe('[Variables]', () => {
17
17
  describe('[(variable)globalConfig]', () => {
18
18
  test('is defined correctly', () => {
@@ -1,4 +1,4 @@
1
- import { globalConfig } from '../private.global/global-config.js'
1
+ import { globalConfig } from '../private.config/instance-config.js'
2
2
 
3
3
  const nodesList = []
4
4
  const portalTypeList = []
@@ -1,7 +1,7 @@
1
1
  import { describe, test, expect, afterEach } from 'vitest'
2
2
 
3
- import { createGlobalNode, removeGlobalNode, changeGlobalNodesTarget } from './global-nodes.js'
4
- import { globalConfig } from './global-config.js'
3
+ import { createGlobalNode, removeGlobalNode, changeGlobalNodesTarget } from './nodes.js'
4
+ import { globalConfig } from './instance-config.js'
5
5
 
6
6
  let el = null
7
7
 
@@ -14,7 +14,7 @@ afterEach(() => {
14
14
  }
15
15
  })
16
16
 
17
- describe('[globalNodes API]', () => {
17
+ describe('[nodes API]', () => {
18
18
  describe('[Functions]', () => {
19
19
  describe('[(function)createGlobalNode]', () => {
20
20
  test('createGlobalNode(id)', () => {
@@ -1,7 +1,7 @@
1
1
  import { h, ref, nextTick } from 'vue'
2
2
 
3
3
  import { createChildApp } from '../../install-quasar.js'
4
- import { createGlobalNode, removeGlobalNode } from '../private.global/global-nodes.js'
4
+ import { createGlobalNode, removeGlobalNode } from '../private.config/nodes.js'
5
5
 
6
6
  const ssrAPI = {
7
7
  onOk: () => ssrAPI,
@@ -1,5 +1,9 @@
1
1
  import { css, getElement } from '../dom/dom.js'
2
2
 
3
+ export const scrollTargetProp = __QUASAR_SSR_SERVER__
4
+ ? {} /* SSR does not know about Element */
5
+ : [ Element, String ]
6
+
3
7
  const scrollTargets = __QUASAR_SSR_SERVER__
4
8
  ? []
5
9
  : [ null, document, document.body, document.scrollingElement, document.documentElement ]