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
@@ -0,0 +1,59 @@
1
+ import { mount, flushPromises } from '@vue/test-utils'
2
+ import { describe, test, expect } from 'vitest'
3
+
4
+ import QSpinnerTail from './QSpinnerTail.js'
5
+
6
+ describe('[QSpinnerTail API]', () => {
7
+ describe('[Props]', () => {
8
+ describe('[(prop)size]', () => {
9
+ test.each([
10
+ [ 'String', '100px' ],
11
+ [ 'Number', 100 ]
12
+ ])('type %s has effect', async (_, propVal) => {
13
+ const expectedValue = '' + propVal
14
+ const wrapper = mount(QSpinnerTail)
15
+
16
+ const target = wrapper.get('.q-spinner')
17
+
18
+ expect(
19
+ target.attributes('width')
20
+ ).not.toBe(expectedValue)
21
+
22
+ expect(
23
+ target.attributes('height')
24
+ ).not.toBe(expectedValue)
25
+
26
+ await wrapper.setProps({ size: propVal })
27
+ await flushPromises()
28
+
29
+ expect(
30
+ target.attributes('width')
31
+ ).toBe(expectedValue)
32
+
33
+ expect(
34
+ target.attributes('height')
35
+ ).toBe(expectedValue)
36
+ })
37
+ })
38
+
39
+ describe('[(prop)color]', () => {
40
+ test('type String has effect', async () => {
41
+ const propVal = 'red'
42
+ const wrapper = mount(QSpinnerTail)
43
+
44
+ const target = wrapper.get('.q-spinner')
45
+
46
+ expect(
47
+ target.classes()
48
+ ).not.toContain('text-red')
49
+
50
+ await wrapper.setProps({ color: propVal })
51
+ await flushPromises()
52
+
53
+ expect(
54
+ target.classes()
55
+ ).toContain('text-red')
56
+ })
57
+ })
58
+ })
59
+ })
@@ -8,6 +8,11 @@
8
8
  "props": {
9
9
  "color": {
10
10
  "extends": "color"
11
+ },
12
+
13
+ "size": {
14
+ "type": [ "String", "Number" ],
15
+ "default": "'1em'"
11
16
  }
12
17
  }
13
18
  }
@@ -3,7 +3,7 @@ import { useSizeDefaults } from '../../composables/private.use-size/use-size.js'
3
3
 
4
4
  export const useSpinnerProps = {
5
5
  size: {
6
- type: [ Number, String ],
6
+ type: [ String, Number ],
7
7
  default: '1em'
8
8
  },
9
9
  color: String
@@ -0,0 +1,59 @@
1
+ import { describe, test, expect } from 'vitest'
2
+
3
+ import useSpinner, { useSpinnerProps } from './use-spinner.js'
4
+ import { useSizeDefaults } from 'quasar/src/composables/private.use-size/use-size.js'
5
+
6
+ describe('[useSpinner API]', () => {
7
+ describe('[Variables]', () => {
8
+ describe('[(variable)useSpinnerProps]', () => {
9
+ test('is defined correctly', () => {
10
+ expect(useSpinnerProps).toBeTypeOf('object')
11
+ expect(Object.keys(useSpinnerProps)).not.toHaveLength(0)
12
+ })
13
+ })
14
+ })
15
+
16
+ describe('[Functions]', () => {
17
+ describe('[(function)default]', () => {
18
+ test('has correct return value when missing props', () => {
19
+ const result = useSpinner({})
20
+ expect(result).toStrictEqual({
21
+ cSize: expect.$ref(void 0),
22
+ classes: expect.$ref('q-spinner')
23
+ })
24
+ })
25
+
26
+ test('has correct return value when props.size has unit', () => {
27
+ const result = useSpinner({ size: '2em' })
28
+ expect(result).toStrictEqual({
29
+ cSize: expect.$ref('2em'),
30
+ classes: expect.$ref('q-spinner')
31
+ })
32
+ })
33
+
34
+ test('has correct return value when props.size is xl', () => {
35
+ const result = useSpinner({ size: 'xl' })
36
+ expect(result).toStrictEqual({
37
+ cSize: expect.$ref(`${ useSizeDefaults.xl }px`),
38
+ classes: expect.$ref('q-spinner')
39
+ })
40
+ })
41
+
42
+ test('has correct return value when props.color is defined', () => {
43
+ const result = useSpinner({ color: 'red' })
44
+ expect(result).toStrictEqual({
45
+ cSize: expect.$ref(void 0),
46
+ classes: expect.$ref('q-spinner text-red')
47
+ })
48
+ })
49
+
50
+ test('has correct return value when props.size & props.color are defined', () => {
51
+ const result = useSpinner({ size: '500em', color: 'bogus-color' })
52
+ expect(result).toStrictEqual({
53
+ cSize: expect.$ref('500em'),
54
+ classes: expect.$ref('q-spinner text-bogus-color')
55
+ })
56
+ })
57
+ })
58
+ })
59
+ })
@@ -41,6 +41,7 @@
41
41
  "type": "Array",
42
42
  "desc": "An array of two values representing the minimum and maximum split size of the two panels; When 'px' unit is set then you can use Infinity as the second value to make it unbound on the other side; Default value: for '%' unit it is [10, 90], while for 'px' unit it is [50, Infinity]",
43
43
  "default": "# [10, 90]/[50, Infinity]",
44
+ "__runtimeDefault": true,
44
45
  "examples": [ "[ 30, 70 ]", "[ 0, Infinity ]" ],
45
46
  "category": "content|model"
46
47
  },
@@ -94,9 +95,8 @@
94
95
  },
95
96
 
96
97
  "dark": {
97
- "type": "Boolean",
98
- "desc": "Applies a default lighter color on the separator; To be used when background is darker; Avoid using when you are overriding through separator-class or separator-style props",
99
- "category": "style"
98
+ "extends": "dark",
99
+ "desc": "Applies a default lighter color on the separator; To be used when background is darker; Avoid using when you are overriding through separator-class or separator-style props"
100
100
  }
101
101
  },
102
102
 
@@ -94,5 +94,11 @@
94
94
  "default": {
95
95
  "desc": "The content of the step; Can also contain a QStepperNavigation if you want to handle step navigation and don't have a global navigation in place"
96
96
  }
97
+ },
98
+
99
+ "events": {
100
+ "scroll": {
101
+ "internal": true
102
+ }
97
103
  }
98
104
  }
@@ -5,6 +5,12 @@
5
5
  "docsUrl": "https://v2.quasar.dev/vue-components/tab-panels"
6
6
  },
7
7
 
8
+ "props": {
9
+ "dark": {
10
+ "extends": "dark"
11
+ }
12
+ },
13
+
8
14
  "slots": {
9
15
  "default": {
10
16
  "extends": "default"
@@ -13,7 +13,7 @@ import QBtn from '../btn/QBtn.js'
13
13
  import getTableMiddle from './get-table-middle.js'
14
14
 
15
15
  import useDark, { useDarkProps } from '../../composables/private.use-dark/use-dark.js'
16
- import { commonVirtPropsList } from '../virtual-scroll/use-virtual-scroll.js'
16
+ import { commonVirtScrollPropsList } from '../virtual-scroll/use-virtual-scroll.js'
17
17
  import useFullscreen, { useFullscreenProps, useFullscreenEmits } from '../../composables/private.use-fullscreen/use-fullscreen.js'
18
18
 
19
19
  import { useTableSort, useTableSortProps } from './table-sort.js'
@@ -28,8 +28,8 @@ import { createComponent } from '../../utils/private.create/create.js'
28
28
 
29
29
  const bottomClass = 'q-table__bottom row items-center'
30
30
 
31
- const commonVirtPropsObj = {}
32
- commonVirtPropsList.forEach(p => { commonVirtPropsObj[ p ] = {} })
31
+ const virtScrollPassthroughProps = {}
32
+ commonVirtScrollPropsList.forEach(p => { virtScrollPassthroughProps[ p ] = {} })
33
33
 
34
34
  export default createComponent({
35
35
  name: 'QTable',
@@ -71,10 +71,8 @@ export default createComponent({
71
71
  wrapCells: Boolean,
72
72
 
73
73
  virtualScroll: Boolean,
74
- virtualScrollTarget: {
75
- default: void 0
76
- },
77
- ...commonVirtPropsObj,
74
+ virtualScrollTarget: {},
75
+ ...virtScrollPassthroughProps,
78
76
 
79
77
  noDataLabel: String,
80
78
  noResultsLabel: String,
@@ -266,7 +264,7 @@ export default createComponent({
266
264
  const virtProps = computed(() => {
267
265
  const acc = {}
268
266
 
269
- commonVirtPropsList
267
+ commonVirtScrollPropsList
270
268
  .forEach(p => { acc[ p ] = props[ p ] })
271
269
 
272
270
  if (acc.virtualScrollItemSize === void 0) {
@@ -41,13 +41,15 @@
41
41
  },
42
42
 
43
43
  "virtual-scroll-target": {
44
- "extends": "scroll-target"
44
+ "extends": "scroll-target",
45
+ "passthrough": "child"
45
46
  },
46
47
 
47
48
  "virtual-scroll-slice-size": {
48
- "type": [ "Number", "String" ],
49
+ "type": [ "Number", "String", "null" ],
49
50
  "desc": "Minimum number of rows to render in the virtual list",
50
51
  "default": "30",
52
+ "passthrough": "child",
51
53
  "category": "virtual-scroll"
52
54
  },
53
55
 
@@ -55,6 +57,7 @@
55
57
  "type": [ "Number", "String" ],
56
58
  "desc": "Ratio of number of rows in visible zone to render before it",
57
59
  "default": "1",
60
+ "passthrough": "child",
58
61
  "category": "virtual-scroll"
59
62
  },
60
63
 
@@ -62,6 +65,7 @@
62
65
  "type": [ "Number", "String" ],
63
66
  "desc": "Ratio of number of rows in visible zone to render after it",
64
67
  "default": "1",
68
+ "passthrough": "child",
65
69
  "category": "virtual-scroll"
66
70
  },
67
71
 
@@ -69,6 +73,7 @@
69
73
  "type": [ "Number", "String" ],
70
74
  "desc": "Default size in pixels of a row; This value is used for rendering the initial table; Try to use a value close to the minimum size of a row; Default value: 48 (24 if dense)",
71
75
  "default": "# 48/24",
76
+ "passthrough": "child",
72
77
  "category": "virtual-scroll"
73
78
  },
74
79
 
@@ -76,6 +81,7 @@
76
81
  "type": [ "Number", "String" ],
77
82
  "desc": "Size in pixels of the sticky header (if using one); A correct value will improve scroll precision; Will be also used for non-virtual-scroll tables for fixing top alignment when using scrollTo method",
78
83
  "default": "0",
84
+ "passthrough": "child",
79
85
  "category": "virtual-scroll|behavior"
80
86
  },
81
87
 
@@ -83,13 +89,15 @@
83
89
  "type": [ "Number", "String" ],
84
90
  "desc": "Size in pixels of the sticky footer part (if using one); A correct value will improve scroll precision",
85
91
  "default": "0",
92
+ "passthrough": "child",
86
93
  "category": "virtual-scroll"
87
94
  },
88
95
 
89
96
  "table-colspan": {
90
97
  "type": [ "Number", "String" ],
91
98
  "desc": "The number of columns in the table (you need this if you use table-layout: fixed)",
92
- "category": "virtual-scroll|content"
99
+ "category": "virtual-scroll|content",
100
+ "passthrough": "child"
93
101
  },
94
102
 
95
103
  "color": {
@@ -257,7 +265,7 @@
257
265
  "desc": "Comparison result of term 'a' with term 'b'. Less than 0 when 'a' should come first; greater than 0 if 'b' should come first; equal to 0 if their position must not be changed with respect to each other",
258
266
  "examples": [ "-1", "0", "1" ]
259
267
  },
260
- "addedIn": "v2.13.0"
268
+ "addedIn": "v2.13"
261
269
  },
262
270
  "sortOrder": {
263
271
  "type": "String",
@@ -661,7 +669,6 @@
661
669
  "type": "Array",
662
670
  "desc": "Filtered rows"
663
671
  },
664
- "default": "# see source code",
665
672
  "examples": [ "# see source code" ],
666
673
  "category": "filter"
667
674
  },
@@ -703,7 +710,7 @@
703
710
  "rows-per-page-options": {
704
711
  "type": "Array",
705
712
  "desc": "Options for user to pick (Numbers); Number 0 means 'Show all rows in one page'",
706
- "default": "[ 3, 5, 7, 10, 15, 20, 25, 50, 0 ]",
713
+ "default": "[ 5, 7, 10, 15, 20, 25, 50, 0 ]",
707
714
  "examples": [ "[ 10, 20 ]" ],
708
715
  "category": "pagination"
709
716
  },
@@ -728,7 +735,6 @@
728
735
  "expanded": {
729
736
  "type": "Array",
730
737
  "desc": "Keeps the array with expanded rows keys",
731
- "default": "[]",
732
738
  "syncable": true,
733
739
  "examples": [ "# v-model:expanded=\"expanded\"" ],
734
740
  "category": "expansion"
@@ -756,7 +762,6 @@
756
762
  "type": "Array",
757
763
  "desc": "Sorted rows"
758
764
  },
759
- "default": "# see source code",
760
765
  "examples": [ "# see source code" ],
761
766
  "category": "sorting"
762
767
  }
@@ -22,5 +22,9 @@
22
22
  "default": {
23
23
  "extends": "default"
24
24
  }
25
+ },
26
+
27
+ "events": {
28
+ "click": { "internal": true }
25
29
  }
26
30
  }
@@ -1,13 +1,14 @@
1
1
  {
2
+ "mixins": [ "components/tabs/use-tab", "composables/private.use-router-link/use-router-link" ],
3
+
2
4
  "meta": {
3
5
  "docsUrl": "https://v2.quasar.dev/vue-components/tabs"
4
6
  },
5
7
 
6
- "mixins": [ "components/tabs/QTab", "composables/private.use-router-link/use-router-link" ],
7
-
8
8
  "events": {
9
9
  "click": {
10
10
  "desc": "Emitted when the component is clicked",
11
+ "internal": false,
11
12
  "params": {
12
13
  "evt": {
13
14
  "extends": "evt",
@@ -3,69 +3,5 @@
3
3
  "docsUrl": "https://v2.quasar.dev/vue-components/tabs"
4
4
  },
5
5
 
6
- "props": {
7
- "icon": {
8
- "extends": "icon"
9
- },
10
-
11
- "label": {
12
- "type": [ "Number", "String" ],
13
- "desc": "A number or string to label the tab",
14
- "examples": [ "'Home'" ],
15
- "category": "content"
16
- },
17
-
18
- "alert": {
19
- "type": [ "Boolean", "String" ],
20
- "desc": "Adds an alert symbol to the tab, notifying the user there are some updates; If its value is not a Boolean, then you can specify a color",
21
- "examples": [ "'purple'" ],
22
- "category": "content"
23
- },
24
-
25
- "alert-icon": {
26
- "type": "String",
27
- "desc": "Adds a floating icon to the tab, notifying the user there are some updates; It's displayed only if 'alert' is set; Can use the color specified by 'alert' prop",
28
- "examples": [ "'alarm_on'" ],
29
- "category": "content"
30
- },
31
-
32
- "name": {
33
- "type": [ "Number", "String" ],
34
- "desc": "Panel name",
35
- "default": "# a random UUID",
36
- "examples": [ "'home'", "1" ],
37
- "category": "general"
38
- },
39
-
40
- "no-caps": {
41
- "type": "Boolean",
42
- "desc": "Turns off capitalizing all letters within the tab (which is the default)",
43
- "category": "content"
44
- },
45
-
46
- "content-class": {
47
- "type": "String",
48
- "desc": "Class definitions to be attributed to the content wrapper",
49
- "examples": [ "'my-special-class'" ],
50
- "category": "style"
51
- },
52
-
53
- "ripple": {
54
- "extends": "ripple"
55
- },
56
-
57
- "tabindex": {
58
- "extends": "tabindex"
59
- },
60
-
61
- "disable": {
62
- "extends": "disable"
63
- }
64
- },
65
-
66
- "slots": {
67
- "default": {
68
- "desc": "Suggestion: QMenu, QTooltip"
69
- }
70
- }
6
+ "mixins": [ "components/tabs/use-tab" ]
71
7
  }
@@ -0,0 +1,72 @@
1
+ {
2
+ "props": {
3
+ "icon": {
4
+ "extends": "icon"
5
+ },
6
+
7
+ "label": {
8
+ "type": [ "Number", "String" ],
9
+ "desc": "A number or string to label the tab",
10
+ "examples": [ "'Home'" ],
11
+ "category": "content"
12
+ },
13
+
14
+ "alert": {
15
+ "type": [ "Boolean", "String" ],
16
+ "desc": "Adds an alert symbol to the tab, notifying the user there are some updates; If its value is not a Boolean, then you can specify a color",
17
+ "examples": [ "'purple'" ],
18
+ "category": "content"
19
+ },
20
+
21
+ "alert-icon": {
22
+ "type": "String",
23
+ "desc": "Adds a floating icon to the tab, notifying the user there are some updates; It's displayed only if 'alert' is set; Can use the color specified by 'alert' prop",
24
+ "examples": [ "'alarm_on'" ],
25
+ "category": "content"
26
+ },
27
+
28
+ "name": {
29
+ "type": [ "Number", "String" ],
30
+ "desc": "Panel name",
31
+ "default": "# a random UUID",
32
+ "examples": [ "'home'", "1" ],
33
+ "category": "general"
34
+ },
35
+
36
+ "no-caps": {
37
+ "type": "Boolean",
38
+ "desc": "Turns off capitalizing all letters within the tab (which is the default)",
39
+ "category": "content"
40
+ },
41
+
42
+ "content-class": {
43
+ "type": "String",
44
+ "desc": "Class definitions to be attributed to the content wrapper",
45
+ "examples": [ "'my-special-class'" ],
46
+ "category": "style"
47
+ },
48
+
49
+ "ripple": {
50
+ "extends": "ripple"
51
+ },
52
+
53
+ "tabindex": {
54
+ "extends": "tabindex"
55
+ },
56
+
57
+ "disable": {
58
+ "extends": "disable"
59
+ }
60
+ },
61
+
62
+ "slots": {
63
+ "default": {
64
+ "desc": "Suggestion: QMenu, QTooltip"
65
+ }
66
+ },
67
+
68
+ "events": {
69
+ "click": { "internal": true },
70
+ "keydown": { "internal": true }
71
+ }
72
+ }
@@ -46,7 +46,13 @@ export default createComponent({
46
46
  ...useFormProps,
47
47
  ...useDatetimeProps,
48
48
 
49
+ modelValue: {
50
+ required: true,
51
+ validator: val => (typeof val === 'string' || val === null)
52
+ },
53
+
49
54
  mask: {
55
+ ...useDatetimeProps.mask,
50
56
  default: null
51
57
  },
52
58
 
@@ -24,6 +24,7 @@
24
24
  "type": "String",
25
25
  "desc": "The default date to use (in YYYY/MM/DD format) when model is unfilled (undefined or null)",
26
26
  "default": "# current day",
27
+ "__runtimeDefault": true,
27
28
  "examples": [ "'1995/02/23'" ],
28
29
  "category": "model"
29
30
  },
@@ -31,6 +32,7 @@
31
32
  "mask": {
32
33
  "type": [ "String", "null" ],
33
34
  "default": "'HH:mm'",
35
+ "__runtimeDefault": true,
34
36
  "examples": [ "'HH:mm:ss'", "'YYYY-MM-DD HH:mm:ss'", "'HH:mm MMMM Do, YYYY'" ]
35
37
  },
36
38
 
@@ -5,7 +5,8 @@
5
5
 
6
6
  "props": {
7
7
  "color": {
8
- "extends": "color"
8
+ "extends": "color",
9
+ "default": "'primary'"
9
10
  },
10
11
 
11
12
  "side": {
@@ -6,10 +6,6 @@ import QToolbar from './QToolbar.js'
6
6
  describe('[QToolbar API]', () => {
7
7
  describe('[Props]', () => {
8
8
  describe('[(prop)inset]', () => {
9
- test('is defined correctly', () => {
10
- expect(QToolbar.props.inset).toBeDefined()
11
- })
12
-
13
9
  test('type Boolean has effect', async () => {
14
10
  const wrapper = mount(QToolbar)
15
11
  const target = wrapper.get('.q-toolbar')
@@ -6,10 +6,6 @@ import QToolbarTitle from './QToolbarTitle.js'
6
6
  describe('[QToolbarTitle API]', () => {
7
7
  describe('[Props]', () => {
8
8
  describe('[(prop)shrink]', () => {
9
- test('is defined correctly', () => {
10
- expect(QToolbarTitle.props.shrink).toBeDefined()
11
- })
12
-
13
9
  test('type Boolean has effect', async () => {
14
10
  const wrapper = mount(QToolbarTitle)
15
11
  const target = wrapper.get('.q-toolbar__title')
@@ -1,6 +1,6 @@
1
1
  import { h, ref, computed, watch, onBeforeUnmount, Transition, getCurrentInstance } from 'vue'
2
2
 
3
- import useAnchor, { useAnchorProps } from '../../composables/private.use-anchor/use-anchor.js'
3
+ import useAnchor, { useAnchorStaticProps } from '../../composables/private.use-anchor/use-anchor.js'
4
4
  import useScrollTarget from '../../composables/private.use-scroll-target/use-scroll-target.js'
5
5
  import useModelToggle, { useModelToggleProps, useModelToggleEmits } from '../../composables/private.use-model-toggle/use-model-toggle.js'
6
6
  import usePortal from '../../composables/private.use-portal/use-portal.js'
@@ -9,7 +9,7 @@ import useTick from '../../composables/use-tick/use-tick.js'
9
9
  import useTimeout from '../../composables/use-timeout/use-timeout.js'
10
10
 
11
11
  import { createComponent } from '../../utils/private.create/create.js'
12
- import { getScrollTarget } from '../../utils/scroll/scroll.js'
12
+ import { getScrollTarget, scrollTargetProp } from '../../utils/scroll/scroll.js'
13
13
  import { stopAndPrevent, addEvt, cleanEvt } from '../../utils/event/event.js'
14
14
  import { clearSelection } from '../../utils/private.selection/selection.js'
15
15
  import { hSlot } from '../../utils/private.render/render.js'
@@ -24,7 +24,7 @@ export default createComponent({
24
24
  inheritAttrs: false,
25
25
 
26
26
  props: {
27
- ...useAnchorProps,
27
+ ...useAnchorStaticProps,
28
28
  ...useModelToggleProps,
29
29
  ...useTransitionProps,
30
30
 
@@ -38,9 +38,11 @@ export default createComponent({
38
38
  },
39
39
 
40
40
  transitionShow: {
41
+ ...useTransitionProps.transitionShow,
41
42
  default: 'jump-down'
42
43
  },
43
44
  transitionHide: {
45
+ ...useTransitionProps.transitionHide,
44
46
  default: 'jump-up'
45
47
  },
46
48
 
@@ -60,9 +62,7 @@ export default createComponent({
60
62
  validator: validateOffset
61
63
  },
62
64
 
63
- scrollTarget: {
64
- default: void 0
65
- },
65
+ scrollTarget: scrollTargetProp,
66
66
 
67
67
  delay: {
68
68
  type: Number,
@@ -1,5 +1,10 @@
1
1
  {
2
- "mixins": [ "composables/private.use-model-toggle/use-model-toggle", "composables/private.use-portal/use-portal", "composables/private.use-transition/use-transition" ],
2
+ "mixins": [
3
+ "composables/private.use-model-toggle/use-model-toggle",
4
+ "composables/private.use-anchor/use-anchor-static",
5
+ "composables/private.use-portal/use-portal",
6
+ "composables/private.use-transition/use-transition"
7
+ ],
3
8
 
4
9
  "meta": {
5
10
  "docsUrl": "https://v2.quasar.dev/vue-components/tooltip"
@@ -66,20 +71,6 @@
66
71
  "extends": "scroll-target"
67
72
  },
68
73
 
69
- "target": {
70
- "type": [ "Boolean", "String" ],
71
- "desc": "Configure a target element to trigger Tooltip 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) it attaches the events to the specified DOM element (if it exists)",
72
- "default": "true",
73
- "examples": [ "# :target=\"false\"", "# target=\".my-parent\"" ],
74
- "category": "behavior"
75
- },
76
-
77
- "no-parent-event": {
78
- "type": "Boolean",
79
- "desc": "Skips attaching events to the target DOM element (that trigger the element to get shown)",
80
- "category": "behavior"
81
- },
82
-
83
74
  "delay": {
84
75
  "type": "Number",
85
76
  "desc": "Configure Tooltip to appear with delay",
@@ -66,7 +66,7 @@ export default createComponent({
66
66
  filter: String,
67
67
  filterMethod: Function,
68
68
 
69
- duration: Number,
69
+ duration: {},
70
70
  noConnectors: Boolean,
71
71
  noTransition: Boolean,
72
72