quasar 2.15.0 → 2.15.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (523) hide show
  1. package/dist/api/AddressbarColor.json +1 -1
  2. package/dist/api/BottomSheet.json +1 -1
  3. package/dist/api/ClosePopup.json +1 -1
  4. package/dist/api/Cookies.json +1 -1
  5. package/dist/api/Dark.json +1 -1
  6. package/dist/api/Dialog.json +1 -1
  7. package/dist/api/Intersection.json +1 -1
  8. package/dist/api/Loading.json +1 -1
  9. package/dist/api/LoadingBar.json +1 -1
  10. package/dist/api/LocalStorage.json +1 -1
  11. package/dist/api/Morph.json +1 -1
  12. package/dist/api/Mutation.json +1 -1
  13. package/dist/api/Notify.json +1 -1
  14. package/dist/api/Platform.json +1 -1
  15. package/dist/api/QAjaxBar.json +1 -1
  16. package/dist/api/QAvatar.json +1 -1
  17. package/dist/api/QBadge.json +1 -1
  18. package/dist/api/QBanner.json +1 -1
  19. package/dist/api/QBar.json +1 -1
  20. package/dist/api/QBreadcrumbs.json +1 -1
  21. package/dist/api/QBreadcrumbsEl.json +1 -1
  22. package/dist/api/QBtn.json +1 -1
  23. package/dist/api/QBtnDropdown.json +1 -1
  24. package/dist/api/QBtnToggle.json +1 -1
  25. package/dist/api/QCard.json +1 -1
  26. package/dist/api/QCardActions.json +1 -1
  27. package/dist/api/QCardSection.json +1 -1
  28. package/dist/api/QCarousel.json +1 -1
  29. package/dist/api/QCarouselControl.json +1 -1
  30. package/dist/api/QCarouselSlide.json +1 -1
  31. package/dist/api/QChatMessage.json +1 -1
  32. package/dist/api/QCheckbox.json +1 -1
  33. package/dist/api/QChip.json +1 -1
  34. package/dist/api/QCircularProgress.json +1 -1
  35. package/dist/api/QColor.json +1 -1
  36. package/dist/api/QDate.json +1 -1
  37. package/dist/api/QDialog.json +1 -1
  38. package/dist/api/QDrawer.json +1 -1
  39. package/dist/api/QEditor.json +1 -1
  40. package/dist/api/QExpansionItem.json +1 -1
  41. package/dist/api/QFab.json +1 -1
  42. package/dist/api/QFabAction.json +1 -1
  43. package/dist/api/QField.json +1 -1
  44. package/dist/api/QFile.json +1 -1
  45. package/dist/api/QFooter.json +1 -1
  46. package/dist/api/QHeader.json +1 -1
  47. package/dist/api/QIcon.json +1 -1
  48. package/dist/api/QImg.json +1 -1
  49. package/dist/api/QInfiniteScroll.json +1 -1
  50. package/dist/api/QInnerLoading.json +1 -1
  51. package/dist/api/QInput.json +1 -1
  52. package/dist/api/QIntersection.json +1 -1
  53. package/dist/api/QItem.json +1 -1
  54. package/dist/api/QKnob.json +1 -1
  55. package/dist/api/QLayout.json +1 -1
  56. package/dist/api/QLinearProgress.json +1 -1
  57. package/dist/api/QList.json +1 -1
  58. package/dist/api/QMarkupTable.json +1 -1
  59. package/dist/api/QMenu.json +1 -1
  60. package/dist/api/QNoSsr.json +1 -1
  61. package/dist/api/QOptionGroup.json +1 -1
  62. package/dist/api/QPage.json +1 -1
  63. package/dist/api/QPageScroller.json +1 -1
  64. package/dist/api/QPageSticky.json +1 -1
  65. package/dist/api/QPagination.json +1 -1
  66. package/dist/api/QParallax.json +1 -1
  67. package/dist/api/QPopupEdit.json +1 -1
  68. package/dist/api/QPopupProxy.json +1 -1
  69. package/dist/api/QPullToRefresh.json +1 -1
  70. package/dist/api/QRadio.json +1 -1
  71. package/dist/api/QRange.json +1 -1
  72. package/dist/api/QRating.json +1 -1
  73. package/dist/api/QResizeObserver.json +1 -1
  74. package/dist/api/QResponsive.json +1 -1
  75. package/dist/api/QRouteTab.json +1 -1
  76. package/dist/api/QScrollArea.json +1 -1
  77. package/dist/api/QScrollObserver.json +1 -1
  78. package/dist/api/QSelect.json +1 -1
  79. package/dist/api/QSeparator.json +1 -1
  80. package/dist/api/QSkeleton.json +1 -1
  81. package/dist/api/QSlideItem.json +1 -1
  82. package/dist/api/QSlideTransition.json +1 -1
  83. package/dist/api/QSlider.json +1 -1
  84. package/dist/api/QSpinner.json +1 -1
  85. package/dist/api/QSpinnerAudio.json +1 -1
  86. package/dist/api/QSpinnerBall.json +1 -1
  87. package/dist/api/QSpinnerBars.json +1 -1
  88. package/dist/api/QSpinnerBox.json +1 -1
  89. package/dist/api/QSpinnerClock.json +1 -1
  90. package/dist/api/QSpinnerComment.json +1 -1
  91. package/dist/api/QSpinnerCube.json +1 -1
  92. package/dist/api/QSpinnerDots.json +1 -1
  93. package/dist/api/QSpinnerFacebook.json +1 -1
  94. package/dist/api/QSpinnerGears.json +1 -1
  95. package/dist/api/QSpinnerGrid.json +1 -1
  96. package/dist/api/QSpinnerHearts.json +1 -1
  97. package/dist/api/QSpinnerHourglass.json +1 -1
  98. package/dist/api/QSpinnerInfinity.json +1 -1
  99. package/dist/api/QSpinnerIos.json +1 -1
  100. package/dist/api/QSpinnerOrbit.json +1 -1
  101. package/dist/api/QSpinnerOval.json +1 -1
  102. package/dist/api/QSpinnerPie.json +1 -1
  103. package/dist/api/QSpinnerPuff.json +1 -1
  104. package/dist/api/QSpinnerRadio.json +1 -1
  105. package/dist/api/QSpinnerRings.json +1 -1
  106. package/dist/api/QSpinnerTail.json +1 -1
  107. package/dist/api/QSplitter.json +1 -1
  108. package/dist/api/QStep.json +1 -1
  109. package/dist/api/QStepper.json +1 -1
  110. package/dist/api/QTab.json +1 -1
  111. package/dist/api/QTabPanel.json +1 -1
  112. package/dist/api/QTabPanels.json +1 -1
  113. package/dist/api/QTable.json +1 -1
  114. package/dist/api/QTabs.json +1 -1
  115. package/dist/api/QTd.json +1 -1
  116. package/dist/api/QTh.json +1 -1
  117. package/dist/api/QTime.json +1 -1
  118. package/dist/api/QTimeline.json +1 -1
  119. package/dist/api/QTimelineEntry.json +1 -1
  120. package/dist/api/QToggle.json +1 -1
  121. package/dist/api/QTooltip.json +1 -1
  122. package/dist/api/QTr.json +1 -1
  123. package/dist/api/QTree.json +1 -1
  124. package/dist/api/QUploader.json +1 -1
  125. package/dist/api/QVideo.json +1 -1
  126. package/dist/api/QVirtualScroll.json +1 -1
  127. package/dist/api/Ripple.json +1 -1
  128. package/dist/api/Screen.json +1 -1
  129. package/dist/api/Scroll.json +1 -1
  130. package/dist/api/ScrollFire.json +1 -1
  131. package/dist/api/SessionStorage.json +1 -1
  132. package/dist/api/TouchHold.json +1 -1
  133. package/dist/api/TouchPan.json +1 -1
  134. package/dist/api/TouchRepeat.json +1 -1
  135. package/dist/api/TouchSwipe.json +1 -1
  136. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  137. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  138. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  139. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  140. package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +1 -1
  141. package/dist/icon-set/fontawesome-v6.umd.prod.js +1 -1
  142. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  143. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  144. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  145. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  146. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  147. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  148. package/dist/icon-set/material-symbols-outlined.umd.prod.js +1 -1
  149. package/dist/icon-set/material-symbols-rounded.umd.prod.js +1 -1
  150. package/dist/icon-set/material-symbols-sharp.umd.prod.js +1 -1
  151. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  152. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  153. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  154. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  155. package/dist/icon-set/mdi-v7.umd.prod.js +1 -1
  156. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  157. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  158. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  159. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +1 -1
  160. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  161. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  162. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  163. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  164. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  165. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  166. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  167. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  168. package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +1 -1
  169. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +1 -1
  170. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +1 -1
  171. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  172. package/dist/icon-set/svg-mdi-v7.umd.prod.js +1 -1
  173. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  174. package/dist/icon-set/themify.umd.prod.js +1 -1
  175. package/dist/lang/ar-TN.umd.prod.js +1 -1
  176. package/dist/lang/ar.umd.prod.js +1 -1
  177. package/dist/lang/az-Latn.umd.prod.js +1 -1
  178. package/dist/lang/bg.umd.prod.js +1 -1
  179. package/dist/lang/bn.umd.prod.js +1 -1
  180. package/dist/lang/ca.umd.prod.js +1 -1
  181. package/dist/lang/cs.umd.prod.js +1 -1
  182. package/dist/lang/da.umd.prod.js +1 -1
  183. package/dist/lang/de-CH.umd.prod.js +1 -1
  184. package/dist/lang/de-DE.umd.prod.js +1 -1
  185. package/dist/lang/de.umd.prod.js +1 -1
  186. package/dist/lang/el.umd.prod.js +1 -1
  187. package/dist/lang/en-GB.umd.prod.js +1 -1
  188. package/dist/lang/en-US.umd.prod.js +1 -1
  189. package/dist/lang/eo.umd.prod.js +1 -1
  190. package/dist/lang/es.umd.prod.js +1 -1
  191. package/dist/lang/et.umd.prod.js +1 -1
  192. package/dist/lang/eu.umd.prod.js +1 -1
  193. package/dist/lang/fa-IR.umd.prod.js +1 -1
  194. package/dist/lang/fa.umd.prod.js +1 -1
  195. package/dist/lang/fi.umd.prod.js +1 -1
  196. package/dist/lang/fr.umd.prod.js +1 -1
  197. package/dist/lang/gn.umd.prod.js +1 -1
  198. package/dist/lang/he.umd.prod.js +1 -1
  199. package/dist/lang/hi.umd.prod.js +1 -1
  200. package/dist/lang/hr.umd.prod.js +1 -1
  201. package/dist/lang/hu.umd.prod.js +1 -1
  202. package/dist/lang/id.umd.prod.js +1 -1
  203. package/dist/lang/is.umd.prod.js +1 -1
  204. package/dist/lang/it.umd.prod.js +1 -1
  205. package/dist/lang/ja.umd.prod.js +1 -1
  206. package/dist/lang/kk.umd.prod.js +1 -1
  207. package/dist/lang/km.umd.prod.js +1 -1
  208. package/dist/lang/ko-KR.umd.prod.js +1 -1
  209. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  210. package/dist/lang/lt.umd.prod.js +1 -1
  211. package/dist/lang/lu.umd.prod.js +1 -1
  212. package/dist/lang/lv.umd.prod.js +1 -1
  213. package/dist/lang/mk.umd.prod.js +1 -1
  214. package/dist/lang/ml.umd.prod.js +1 -1
  215. package/dist/lang/mm.umd.prod.js +1 -1
  216. package/dist/lang/ms-MY.umd.prod.js +1 -1
  217. package/dist/lang/ms.umd.prod.js +1 -1
  218. package/dist/lang/my.umd.prod.js +1 -1
  219. package/dist/lang/nb-NO.umd.prod.js +1 -1
  220. package/dist/lang/nl.umd.prod.js +1 -1
  221. package/dist/lang/pl.umd.prod.js +1 -1
  222. package/dist/lang/pt-BR.umd.prod.js +1 -1
  223. package/dist/lang/pt.umd.prod.js +1 -1
  224. package/dist/lang/ro.umd.prod.js +1 -1
  225. package/dist/lang/ru.umd.prod.js +1 -1
  226. package/dist/lang/sk.umd.prod.js +1 -1
  227. package/dist/lang/sl.umd.prod.js +1 -1
  228. package/dist/lang/sm.umd.prod.js +1 -1
  229. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  230. package/dist/lang/sr.umd.prod.js +1 -1
  231. package/dist/lang/sv.umd.prod.js +1 -1
  232. package/dist/lang/ta.umd.prod.js +1 -1
  233. package/dist/lang/th.umd.prod.js +1 -1
  234. package/dist/lang/tl.umd.prod.js +1 -1
  235. package/dist/lang/tr.umd.prod.js +1 -1
  236. package/dist/lang/ug.umd.prod.js +1 -1
  237. package/dist/lang/uk.umd.prod.js +1 -1
  238. package/dist/lang/uz-Cyrl.umd.prod.js +1 -1
  239. package/dist/lang/uz-Latn.umd.prod.js +1 -1
  240. package/dist/lang/vi.umd.prod.js +1 -1
  241. package/dist/lang/zh-CN.umd.prod.js +1 -1
  242. package/dist/lang/zh-TW.umd.prod.js +1 -1
  243. package/dist/quasar.cjs.prod.js +12 -12
  244. package/dist/quasar.css +53 -53
  245. package/dist/quasar.esm.js +82 -51
  246. package/dist/quasar.esm.prod.js +10 -10
  247. package/dist/quasar.prod.css +1 -1
  248. package/dist/quasar.rtl.css +65 -65
  249. package/dist/quasar.rtl.prod.css +1 -1
  250. package/dist/quasar.sass +37 -37
  251. package/dist/quasar.umd.js +80 -50
  252. package/dist/quasar.umd.prod.js +6 -6
  253. package/dist/transforms/import-map.json +1 -1
  254. package/dist/types/composables.d.ts +5 -0
  255. package/dist/types/index.d.ts +325 -235
  256. package/dist/types/tsconfig.json +1 -1
  257. package/dist/vetur/quasar-attributes.json +1 -1
  258. package/dist/web-types/web-types.json +1 -1
  259. package/package.json +21 -44
  260. package/src/api-file-example.json +5 -5
  261. package/src/api.extends.json +18 -18
  262. package/src/body.js +1 -1
  263. package/src/components/ajax-bar/QAjaxBar.json +5 -5
  264. package/src/components/avatar/QAvatar.json +1 -1
  265. package/src/components/avatar/QAvatar.test.js +146 -0
  266. package/src/components/badge/QBadge.json +2 -2
  267. package/src/components/badge/QBadge.test.js +167 -0
  268. package/src/components/banner/QBanner.test.js +123 -0
  269. package/src/components/bar/QBar.test.js +55 -0
  270. package/src/components/breadcrumbs/QBreadcrumbs.json +7 -7
  271. package/src/components/breadcrumbs/QBreadcrumbs.test.js +123 -0
  272. package/src/components/breadcrumbs/QBreadcrumbsEl.json +4 -4
  273. package/src/components/breadcrumbs/QBreadcrumbsEl.test.js +134 -0
  274. package/src/components/btn/QBtn.js +1 -1
  275. package/src/components/btn/QBtn.json +1 -1
  276. package/src/components/btn/QBtn.test.js +350 -0
  277. package/src/components/btn/use-btn.json +13 -13
  278. package/src/components/btn/use-btn.test.js +590 -0
  279. package/src/components/btn-dropdown/QBtnDropdown.json +14 -14
  280. package/src/components/btn-toggle/QBtnToggle.json +6 -6
  281. package/src/components/card/QCard.json +2 -2
  282. package/src/components/card/QCardActions.json +3 -3
  283. package/src/components/card/QCardSection.json +2 -2
  284. package/src/components/carousel/QCarousel.json +9 -9
  285. package/src/components/carousel/QCarouselControl.json +5 -5
  286. package/src/components/carousel/QCarouselSlide.json +4 -7
  287. package/src/components/chat/QChatMessage.json +9 -9
  288. package/src/components/checkbox/use-checkbox.json +13 -13
  289. package/src/components/chip/QChip.js +1 -1
  290. package/src/components/chip/QChip.json +6 -8
  291. package/src/components/chip/QChip.test.js +534 -0
  292. package/src/components/circular-progress/QCircularProgress.json +8 -8
  293. package/src/components/color/QColor.js +2 -2
  294. package/src/components/color/QColor.json +8 -10
  295. package/src/components/date/QDate.json +31 -30
  296. package/src/components/date/use-datetime.json +3 -3
  297. package/src/components/dialog/QDialog.json +13 -13
  298. package/src/components/dialog/QDialog.test.js +390 -0
  299. package/src/components/dialog/test/DialogWrapper.vue +17 -0
  300. package/src/components/drawer/QDrawer.js +1 -1
  301. package/src/components/drawer/QDrawer.json +8 -12
  302. package/src/components/editor/QEditor.json +31 -45
  303. package/src/components/expansion-item/QExpansionItem.js +1 -1
  304. package/src/components/expansion-item/QExpansionItem.json +14 -14
  305. package/src/components/fab/QFab.json +4 -4
  306. package/src/components/fab/QFabAction.json +3 -5
  307. package/src/components/fab/use-fab.json +10 -12
  308. package/src/components/field/QField.json +5 -5
  309. package/src/components/file/QFile.json +9 -11
  310. package/src/components/footer/QFooter.js +1 -1
  311. package/src/components/footer/QFooter.json +3 -5
  312. package/src/components/form/QForm.json +1 -3
  313. package/src/components/form/QFormChildMixin.json +1 -3
  314. package/src/components/header/QHeader.json +4 -6
  315. package/src/components/icon/QIcon.json +2 -2
  316. package/src/components/img/QImg.js +1 -1
  317. package/src/components/img/QImg.json +45 -59
  318. package/src/components/infinite-scroll/QInfiniteScroll.json +3 -3
  319. package/src/components/inner-loading/QInnerLoading.json +5 -7
  320. package/src/components/input/QInput.json +10 -10
  321. package/src/components/input/use-mask.json +1 -1
  322. package/src/components/intersection/QIntersection.js +2 -2
  323. package/src/components/intersection/QIntersection.json +7 -7
  324. package/src/components/item/QItem.json +5 -5
  325. package/src/components/item/QList.json +2 -2
  326. package/src/components/knob/QKnob.js +1 -1
  327. package/src/components/knob/QKnob.json +6 -6
  328. package/src/components/layout/QLayout.js +1 -1
  329. package/src/components/layout/QLayout.json +3 -5
  330. package/src/components/linear-progress/QLinearProgress.json +2 -2
  331. package/src/components/markup-table/QMarkupTable.json +3 -3
  332. package/src/components/menu/QMenu.json +8 -8
  333. package/src/components/no-ssr/QNoSsr.json +3 -3
  334. package/src/components/option-group/QOptionGroup.json +11 -13
  335. package/src/components/page/QPage.json +2 -2
  336. package/src/components/page-scroller/QPageScroller.json +3 -3
  337. package/src/components/page-sticky/QPageSticky.json +4 -4
  338. package/src/components/pagination/QPagination.json +20 -20
  339. package/src/components/parallax/QParallax.json +5 -5
  340. package/src/components/popup-edit/QPopupEdit.json +17 -19
  341. package/src/components/popup-proxy/QPopupProxy.json +2 -2
  342. package/src/components/pull-to-refresh/QPullToRefresh.js +1 -1
  343. package/src/components/radio/QRadio.json +5 -5
  344. package/src/components/range/QRange.json +3 -7
  345. package/src/components/rating/QRating.json +16 -19
  346. package/src/components/resize-observer/QResizeObserver.json +2 -2
  347. package/src/components/scroll-area/QScrollArea.js +1 -1
  348. package/src/components/scroll-area/QScrollArea.json +12 -12
  349. package/src/components/scroll-observer/QScrollObserver.json +4 -4
  350. package/src/components/select/QSelect.js +0 -0
  351. package/src/components/select/QSelect.json +55 -59
  352. package/src/components/select/__tests__/QSelect.cy.js +21 -1
  353. package/src/components/separator/QSeparator.json +3 -5
  354. package/src/components/skeleton/QSkeleton.json +14 -16
  355. package/src/components/slide-item/QSlideItem.js +1 -1
  356. package/src/components/slide-item/QSlideItem.json +2 -2
  357. package/src/components/slide-transition/QSlideTransition.json +1 -1
  358. package/src/components/slider/QSlider.json +2 -4
  359. package/src/components/slider/use-slider.js +1 -1
  360. package/src/components/slider/use-slider.json +18 -22
  361. package/src/components/spinner/QSpinner.json +1 -1
  362. package/src/components/spinner/QSpinnerAudio.json +1 -1
  363. package/src/components/spinner/QSpinnerBall.json +1 -1
  364. package/src/components/spinner/QSpinnerBars.json +1 -1
  365. package/src/components/spinner/QSpinnerBox.json +1 -1
  366. package/src/components/spinner/QSpinnerClock.json +1 -1
  367. package/src/components/spinner/QSpinnerComment.json +1 -1
  368. package/src/components/spinner/QSpinnerCube.json +1 -1
  369. package/src/components/spinner/QSpinnerDots.json +1 -1
  370. package/src/components/spinner/QSpinnerFacebook.json +1 -1
  371. package/src/components/spinner/QSpinnerGears.json +1 -1
  372. package/src/components/spinner/QSpinnerGrid.json +1 -1
  373. package/src/components/spinner/QSpinnerHearts.json +1 -1
  374. package/src/components/spinner/QSpinnerHourglass.json +1 -1
  375. package/src/components/spinner/QSpinnerInfinity.json +1 -1
  376. package/src/components/spinner/QSpinnerIos.json +1 -1
  377. package/src/components/spinner/QSpinnerOrbit.json +1 -1
  378. package/src/components/spinner/QSpinnerOval.json +1 -1
  379. package/src/components/spinner/QSpinnerPie.json +1 -1
  380. package/src/components/spinner/QSpinnerPuff.json +1 -1
  381. package/src/components/spinner/QSpinnerRadio.json +1 -1
  382. package/src/components/spinner/QSpinnerRings.json +1 -1
  383. package/src/components/spinner/QSpinnerTail.json +1 -1
  384. package/src/components/splitter/QSplitter.js +1 -1
  385. package/src/components/splitter/QSplitter.json +14 -14
  386. package/src/components/stepper/QStep.json +4 -10
  387. package/src/components/stepper/QStepper.json +1 -3
  388. package/src/components/stepper/StepHeader.js +1 -1
  389. package/src/components/table/QTable.js +1 -1
  390. package/src/components/table/QTable.json +113 -126
  391. package/src/components/table/QTd.json +1 -1
  392. package/src/components/table/QTh.json +1 -1
  393. package/src/components/table/QTr.json +1 -1
  394. package/src/components/tabs/QRouteTab.json +1 -1
  395. package/src/components/tabs/QTab.json +6 -13
  396. package/src/components/tabs/QTabs.json +8 -8
  397. package/src/components/tabs/use-tab.js +1 -1
  398. package/src/components/time/QTime.js +1 -1
  399. package/src/components/time/QTime.json +10 -22
  400. package/src/components/timeline/QTimeline.json +4 -4
  401. package/src/components/timeline/QTimelineEntry.json +11 -11
  402. package/src/components/tooltip/QTooltip.json +17 -20
  403. package/src/components/tree/QTree.json +26 -26
  404. package/src/components/uploader/QUploader.json +4 -4
  405. package/src/components/uploader/xhr-uploader-plugin.json +12 -12
  406. package/src/components/video/QVideo.json +15 -19
  407. package/src/components/virtual-scroll/QVirtualScroll.json +7 -10
  408. package/src/components/virtual-scroll/use-virtual-scroll.json +9 -8
  409. package/src/composables/private/use-anchor.json +6 -6
  410. package/src/composables/private/use-field.json +8 -11
  411. package/src/composables/private/use-file.js +1 -1
  412. package/src/composables/private/use-file.json +6 -8
  413. package/src/composables/private/use-form.json +1 -1
  414. package/src/composables/private/use-form.test.js +93 -0
  415. package/src/composables/private/use-fullscreen.json +1 -3
  416. package/src/composables/private/use-key-composition.js +1 -1
  417. package/src/composables/private/use-panel.child.json +1 -3
  418. package/src/composables/private/use-panel.js +1 -1
  419. package/src/composables/private/use-panel.json +12 -12
  420. package/src/composables/private/use-portal.js +16 -1
  421. package/src/composables/private/use-ratio.json +4 -3
  422. package/src/composables/private/use-ratio.test.js +27 -0
  423. package/src/composables/private/use-router-link.json +6 -6
  424. package/src/composables/private/use-size.json +1 -1
  425. package/src/composables/private/use-size.test.js +22 -0
  426. package/src/composables/private/use-transition.json +3 -3
  427. package/src/composables/private/use-validate.json +6 -6
  428. package/src/composables/use-hydration.js +1 -1
  429. package/src/composables/use-id.js +1 -1
  430. package/src/composables/use-id.test.js +55 -0
  431. package/src/composables/use-interval.js +36 -0
  432. package/src/composables/use-meta.js +1 -1
  433. package/src/composables/use-timeout.js +4 -1
  434. package/src/composables.js +2 -0
  435. package/src/css/index.sass +6 -6
  436. package/src/directives/{ClosePopup.js → close-popup/ClosePopup.js} +4 -4
  437. package/src/directives/{ClosePopup.json → close-popup/ClosePopup.json} +5 -5
  438. package/src/directives/{Intersection.js → intersection/Intersection.js} +3 -3
  439. package/src/directives/{Intersection.json → intersection/Intersection.json} +4 -6
  440. package/src/directives/{Morph.js → morph/Morph.js} +2 -2
  441. package/src/directives/{Morph.json → morph/Morph.json} +20 -20
  442. package/src/directives/{Mutation.js → mutation/Mutation.js} +2 -2
  443. package/src/directives/{Mutation.json → mutation/Mutation.json} +10 -12
  444. package/src/directives/{Ripple.js → ripple/Ripple.js} +6 -6
  445. package/src/directives/{Ripple.json → ripple/Ripple.json} +7 -13
  446. package/src/directives/{Scroll.js → scroll/Scroll.js} +4 -4
  447. package/src/directives/{Scroll.json → scroll/Scroll.json} +2 -2
  448. package/src/directives/{ScrollFire.js → scroll-fire/ScrollFire.js} +6 -6
  449. package/src/directives/{ScrollFire.json → scroll-fire/ScrollFire.json} +1 -1
  450. package/src/directives/{TouchHold.js → touch-hold/TouchHold.js} +5 -5
  451. package/src/directives/{TouchHold.json → touch-hold/TouchHold.json} +6 -6
  452. package/src/directives/{TouchPan.js → touch-pan/TouchPan.js} +6 -6
  453. package/src/directives/{TouchPan.json → touch-pan/TouchPan.json} +4 -4
  454. package/src/directives/{TouchRepeat.js → touch-repeat/TouchRepeat.js} +6 -6
  455. package/src/directives/{TouchRepeat.json → touch-repeat/TouchRepeat.json} +4 -4
  456. package/src/directives/{TouchSwipe.js → touch-swipe/TouchSwipe.js} +6 -6
  457. package/src/directives/{TouchSwipe.json → touch-swipe/TouchSwipe.json} +4 -4
  458. package/src/directives.js +11 -11
  459. package/src/history.js +1 -1
  460. package/src/install-quasar.js +3 -3
  461. package/src/plugins/{AddressbarColor.js → addressbar/AddressbarColor.js} +3 -3
  462. package/src/plugins/{AddressbarColor.json → addressbar/AddressbarColor.json} +1 -1
  463. package/src/plugins/{AppFullscreen.js → app-fullscreen/AppFullscreen.js} +2 -2
  464. package/src/plugins/{AppVisibility.js → app-visibility/AppVisibility.js} +2 -2
  465. package/src/plugins/{BottomSheet.js → bottom-sheet/BottomSheet.js} +2 -2
  466. package/src/plugins/{BottomSheet.json → bottom-sheet/BottomSheet.json} +10 -10
  467. package/src/{components/dialog-bottom-sheet/BottomSheet.js → plugins/bottom-sheet/component/BottomSheetComponent.js} +10 -10
  468. package/src/plugins/{Cookies.json → cookies/Cookies.json} +14 -16
  469. package/src/plugins/{Dark.js → dark/Dark.js} +1 -1
  470. package/src/plugins/{Dark.json → dark/Dark.json} +3 -3
  471. package/src/plugins/{Dialog.js → dialog/Dialog.js} +2 -2
  472. package/src/plugins/{Dialog.json → dialog/Dialog.json} +15 -15
  473. package/src/{components/dialog-plugin/DialogPlugin.js → plugins/dialog/component/DialogPluginComponent.js} +14 -14
  474. package/src/plugins/{Loading.js → loading/Loading.js} +7 -6
  475. package/src/plugins/{Loading.json → loading/Loading.json} +15 -15
  476. package/src/plugins/{LoadingBar.js → loading-bar/LoadingBar.js} +6 -6
  477. package/src/plugins/{LoadingBar.json → loading-bar/LoadingBar.json} +1 -1
  478. package/src/plugins/{LocalStorage.js → local-storage/LocalStorage.js} +2 -2
  479. package/src/plugins/{Meta.js → meta/Meta.js} +2 -2
  480. package/src/plugins/{Notify.js → notify/Notify.js} +11 -10
  481. package/src/plugins/{Notify.json → notify/Notify.json} +52 -68
  482. package/src/plugins/{Platform.js → platform/Platform.js} +3 -9
  483. package/src/plugins/{Platform.json → platform/Platform.json} +6 -10
  484. package/src/plugins/{Screen.js → screen/Screen.js} +4 -4
  485. package/src/plugins/{Screen.json → screen/Screen.json} +6 -12
  486. package/src/plugins/{SessionStorage.js → session-storage/SessionStorage.js} +2 -2
  487. package/src/plugins.js +15 -15
  488. package/src/utils/create-meta-mixin.js +1 -1
  489. package/src/utils/open-url.js +1 -1
  490. package/src/utils/prevent-scroll.js +1 -1
  491. package/src/utils/private/escape-key.js +1 -1
  492. package/src/utils/private/focusout.js +1 -1
  493. package/src/utils/private/global-dialog.json +2 -2
  494. package/src/utils/private/position-engine.js +1 -1
  495. package/src/utils/private/selection.js +1 -1
  496. package/src/utils/private/web-storage.json +8 -10
  497. package/src/components/avatar/__tests__/QAvatar.cy.js +0 -120
  498. package/src/components/badge/__tests__/QBadge.cy.js +0 -148
  499. package/src/components/banner/__tests__/QBanner.cy.js +0 -106
  500. package/src/components/bar/__tests__/QBar.cy.js +0 -45
  501. package/src/components/breadcrumbs/__tests__/QBreadcrumbs.cy.js +0 -111
  502. package/src/components/breadcrumbs/__tests__/QBreadcrumbsEl.cy.js +0 -87
  503. package/src/components/btn/__tests__/QBtn.cy.js +0 -128
  504. package/src/components/btn/__tests__/use-btn.cy.js +0 -517
  505. package/src/components/chip/__tests__/QChip.cy.js +0 -480
  506. package/src/components/dialog/__tests__/DialogWrapper.vue +0 -33
  507. package/src/components/dialog/__tests__/QDialog.cy.js +0 -543
  508. package/src/components/tabs/__tests__/QRouteTab.cy.js +0 -9
  509. /package/src/components/breadcrumbs/{__tests__ → test}/BasicBreadcrumbs.vue +0 -0
  510. /package/src/components/breadcrumbs/{__tests__ → test}/BreadcrumbWithSeparatorSlot.vue +0 -0
  511. /package/src/components/spinner/{__spinner-mixin.json → spinner.json} +0 -0
  512. /package/src/directives/{Morph.sass → morph/Morph.sass} +0 -0
  513. /package/src/directives/{Ripple.sass → ripple/Ripple.sass} +0 -0
  514. /package/src/plugins/{AppFullscreen.json → app-fullscreen/AppFullscreen.json} +0 -0
  515. /package/src/plugins/{AppVisibility.json → app-visibility/AppVisibility.json} +0 -0
  516. /package/src/{components/dialog-bottom-sheet/BottomSheet.sass → plugins/bottom-sheet/component/BottomSheetComponent.sass} +0 -0
  517. /package/src/plugins/{Cookies.js → cookies/Cookies.js} +0 -0
  518. /package/src/{components/dialog-plugin/DialogPlugin.sass → plugins/dialog/component/DialogPluginComponent.sass} +0 -0
  519. /package/src/plugins/{Loading.sass → loading/Loading.sass} +0 -0
  520. /package/src/plugins/{LocalStorage.json → local-storage/LocalStorage.json} +0 -0
  521. /package/src/plugins/{Meta.json → meta/Meta.json} +0 -0
  522. /package/src/plugins/{Notify.sass → notify/Notify.sass} +0 -0
  523. /package/src/plugins/{SessionStorage.json → session-storage/SessionStorage.json} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quasar",
3
- "version": "2.15.0",
3
+ "version": "2.15.2",
4
4
  "description": "Build high-performance VueJS user interfaces (SPA, PWA, SSR, Mobile and Desktop) in record time",
5
5
  "main": "dist/quasar.cjs.prod.js",
6
6
  "module": "dist/quasar.esm.prod.js",
@@ -14,31 +14,6 @@
14
14
  "src",
15
15
  "wrappers"
16
16
  ],
17
- "scripts": {
18
- "clean": "node build/script.clean.js",
19
- "dev": "cd ./dev && node ./script.dev.js dev && cd ..",
20
- "dev:build": "cd ./dev && node ./script.build.js dev && cd ..",
21
- "dev:ssr": "cd ./dev && node ./script.dev.js dev -m ssr && cd ..",
22
- "dev:build:ssr": "cd ./dev && node ./script.build.js dev -m ssr && cd ..",
23
- "dev:cordova:ios": "cd ./dev && node ./script.dev.js dev -m cordova -T ios && cd ..",
24
- "dev:cordova:android": "cd ./dev && node ./script.dev.js dev -m cordova -T android && cd ..",
25
- "dev:capacitor:ios": "cd ./dev && node ./script.dev.js dev -m capacitor -T ios && cd ..",
26
- "dev:capacitor:android": "cd ./dev && node ./script.dev.js dev -m capacitor -T android && cd ..",
27
- "dev:umd": "node build/script.test-umd.js",
28
- "dev:quploader": "cd dev/upload-server && yarn && cd ../.. && node dev/upload-server/server.js",
29
- "build": "node build/script.build.js",
30
- "lint": "eslint --ext .js,.cjs,.mjs,.vue src dev --report-unused-disable-directives",
31
- "lint-fix": "eslint --ext .js,.cjs,.mjs,.vue src dev --fix --report-unused-disable-directives",
32
- "format:types": "prettier --write \"types/**/*.{d.ts,ts,json}\"",
33
- "test:create": "node ./test/cypress/helpers/create-spec.js -c",
34
- "test:build": "yarn build",
35
- "test:e2e": "yarn test:build && cross-env NODE_ENV=test start-test \"node ./dev/script.dev.js\" http-get://localhost:9000 \"cypress open --project ./dev --e2e\"",
36
- "test:e2e:run": "cross-env NODE_ENV=test start-test \"node ./dev/script.dev.js\" http-get://localhost:9000 \"cypress run --project ./dev --e2e\"",
37
- "test:e2e:ci": "yarn test:build && yarn test:e2e:run",
38
- "test:component": "yarn test:build && cross-env NODE_ENV=test cypress open --project ./dev --component",
39
- "test:component:run": "cross-env NODE_ENV=test cypress run --project ./dev --component",
40
- "test:component:ci": "yarn test:build && yarn test:component:run"
41
- },
42
17
  "repository": {
43
18
  "type": "git",
44
19
  "url": "git+https://github.com/quasarframework/quasar.git"
@@ -71,9 +46,7 @@
71
46
  },
72
47
  "homepage": "https://quasar.dev",
73
48
  "devDependencies": {
74
- "@quasar/app-vite": "^2.0.0-beta.1",
75
49
  "@quasar/extras": "^1.16.4",
76
- "@quasar/quasar-app-extension-testing-e2e-cypress": "^6.0.0",
77
50
  "autoprefixer": "^10.4.17",
78
51
  "cli-highlight": "^2.1.11",
79
52
  "cross-env": "^7.0.3",
@@ -82,28 +55,16 @@
82
55
  "diff": "^5.2.0",
83
56
  "esbuild": "^0.20.1",
84
57
  "eslint": "^8.57.0",
85
- "eslint-config-standard": "^17.0.0",
86
- "eslint-friendly-formatter": "^4.0.1",
87
- "eslint-plugin-cypress": "^2.13.3",
88
- "eslint-plugin-import": "^2.29.1",
89
- "eslint-plugin-n": "^16.6.2",
90
- "eslint-plugin-no-only-tests": "^3.1.0",
91
- "eslint-plugin-node": "^11.1.0",
92
- "eslint-plugin-promise": "^6.1.1",
93
- "eslint-plugin-vue": "^9.22.0",
94
- "fast-glob": "^3.3.0",
58
+ "eslint-config-quasar": "^0.0.1",
59
+ "fast-glob": "^3.3.2",
95
60
  "fs-extra": "^11.2.0",
96
- "module-alias": "^2.2.2",
97
61
  "open": "^10.0.4",
98
62
  "postcss-rtlcss": "^5.1.0",
99
63
  "prettier": "^3.0.0",
100
64
  "recast": "^0.23.4",
101
65
  "table": "^6.8.1",
102
66
  "typescript": "^5.3.3",
103
- "vite-plugin-checker": "^0.6.4",
104
- "vue": "^3.4.20",
105
- "vue-router": "^4.2.1",
106
- "yargs": "^17.7.2"
67
+ "vue": "^3.4.20"
107
68
  },
108
69
  "vetur": {
109
70
  "tags": "dist/vetur/quasar-tags.json",
@@ -124,5 +85,21 @@
124
85
  "node": ">= 10.18.1",
125
86
  "npm": ">= 6.13.4",
126
87
  "yarn": ">= 1.21.1"
88
+ },
89
+ "scripts": {
90
+ "clean": "node build/script.clean.js",
91
+ "build": "node build/script.build.js",
92
+ "dev": "cd ./playground && quasar dev && cd ..",
93
+ "dev:ssr": "cd ./playground && quasar dev -m ssr && cd ..",
94
+ "dev:build": "cd ./playground && quasar build && cd ..",
95
+ "dev:build:ssr": "cd ./playground && quasar build -m ssr && cd ..",
96
+ "dev:umd": "node build/script.test-umd.js",
97
+ "dev:quploader": "cd ./playground/upload-server && pnpm i && cd ../.. && node playground/upload-server/server.js",
98
+ "lint": "eslint --ext .js,.cjs,.mjs,.vue ./ --fix --report-unused-disable-directives",
99
+ "format:types": "prettier --write \"types/**/*.{d.ts,ts,json}\"",
100
+ "test": "pnpm --filter quasar-ui-test test",
101
+ "test:build": "pnpm build",
102
+ "test:specs": "node ./testing/specs/script.js",
103
+ "test:specs:create": "node ./testing/specs/script.js --interactive"
127
104
  }
128
- }
105
+ }
@@ -9,24 +9,24 @@
9
9
  "width": {
10
10
  "type": [ "Number", "String" ],
11
11
  "desc": "Component width (in pixels)",
12
- "examples": [ ":width=\"300\"", "400" ],
12
+ "examples": [ "300", "'400'" ],
13
13
  "category": "style"
14
14
  },
15
15
 
16
16
  "position": {
17
17
  "type": "String",
18
18
  "desc": "Positions component at one of the edges of the screen",
19
- "examples": [ "bottom" ],
19
+ "examples": [ "'bottom'" ],
20
20
  "required": true,
21
- "default": "top",
22
- "values": [ "top", "right", "bottom", "left" ],
21
+ "default": "'top'",
22
+ "values": [ "'top'", "'right'", "'bottom'", "'left'" ],
23
23
  "category": "content"
24
24
  },
25
25
 
26
26
  "font-size": {
27
27
  "type": "String",
28
28
  "desc": "The size in CSS units, including unit name, of the content (icon, text)",
29
- "examples": [ "18px", "2rem" ],
29
+ "examples": [ "'18px'", "'2rem'" ],
30
30
  "category": "style"
31
31
  },
32
32
 
@@ -16,7 +16,7 @@
16
16
  "type": "String",
17
17
  "tsType": "NamedColor",
18
18
  "desc": "Color name for component from the Quasar Color Palette",
19
- "examples": [ "primary", "teal", "teal-10" ],
19
+ "examples": [ "'primary'", "'teal'", "'teal-10'" ],
20
20
  "category": "style"
21
21
  },
22
22
 
@@ -24,7 +24,7 @@
24
24
  "type": "String",
25
25
  "tsType": "NamedColor",
26
26
  "desc": "Overrides text color (if needed); Color name from the Quasar Color Palette",
27
- "examples": [ "primary", "teal", "teal-10" ],
27
+ "examples": [ "'primary'", "'teal'", "'teal-10'" ],
28
28
  "category": "style"
29
29
  },
30
30
 
@@ -37,13 +37,13 @@
37
37
  "size": {
38
38
  "type": "String",
39
39
  "desc": "Size in CSS units, including unit name",
40
- "examples": [ "16px", "2rem" ],
40
+ "examples": [ "'16px'", "'2rem'" ],
41
41
  "category": "style"
42
42
  },
43
43
 
44
44
  "dark": {
45
45
  "type": [ "Boolean", "null" ],
46
- "default": null,
46
+ "default": "null",
47
47
  "desc": "Notify the component that the background is a dark color",
48
48
  "category": "style"
49
49
  },
@@ -52,10 +52,10 @@
52
52
  "type": "String",
53
53
  "desc": "Icon name following Quasar convention; Make sure you have the icon library installed unless you are using 'img:' prefix; If 'none' (String) is used as value then no icon is rendered (but screen real estate will still be used for it)",
54
54
  "examples": [
55
- "map",
56
- "ion-add",
57
- "img:https://cdn.quasar.dev/logo-v2/svg/logo.svg",
58
- "img:path/to/some_image.png"
55
+ "'map'",
56
+ "'ion-add'",
57
+ "'img:https://cdn.quasar.dev/logo-v2/svg/logo.svg'",
58
+ "'img:path/to/some_image.png'"
59
59
  ],
60
60
  "category": "content"
61
61
  },
@@ -87,21 +87,21 @@
87
87
  "tabindex": {
88
88
  "type": [ "Number", "String" ],
89
89
  "desc": "Tabindex HTML attribute value",
90
- "examples": [ "0", "100" ],
90
+ "examples": [ "100", "'0'" ],
91
91
  "category": "general"
92
92
  },
93
93
 
94
94
  "transition": {
95
95
  "type": "String",
96
96
  "desc": "One of Quasar's embedded transitions",
97
- "examples": [ "fade", "slide-down" ],
97
+ "examples": [ "'fade'", "'slide-down'" ],
98
98
  "category": "transition"
99
99
  },
100
100
 
101
101
  "animation-speed": {
102
102
  "type": [ "String", "Number" ],
103
103
  "desc": "Animation speed (in milliseconds, without unit)",
104
- "examples": [ 500, "1200" ],
104
+ "examples": [ "500", "'1200'" ],
105
105
  "category": "style"
106
106
  },
107
107
 
@@ -121,7 +121,7 @@
121
121
  "tag": {
122
122
  "type": "String",
123
123
  "desc": "HTML tag to use",
124
- "examples": [ "div", "span" ],
124
+ "examples": [ "'div'", "'span'" ],
125
125
  "category": "content"
126
126
  },
127
127
 
@@ -129,10 +129,10 @@
129
129
  "type": [ "Element", "String" ],
130
130
  "desc": "CSS selector or DOM element to be used as a custom scroll container instead of the auto detected one",
131
131
  "examples": [
132
- ":scroll-target=\"$refs.scrollTarget\"",
133
- "scroll-target=\".scroll-target-class\"",
134
- "scroll-target=\"#scroll-target-id\"",
135
- "scroll-target=\"body\""
132
+ ".scroll-target-class",
133
+ "#scroll-target-id",
134
+ "$refs.scrollTarget",
135
+ "body"
136
136
  ],
137
137
  "category": "behavior"
138
138
  },
@@ -140,8 +140,8 @@
140
140
  "ripple": {
141
141
  "type": [ "Boolean", "Object" ],
142
142
  "desc": "Configure material ripple (disable it by setting it to 'false' or supply a config object)",
143
- "default": true,
144
- "examples": [ false, "{ early: true, center: true, color: 'teal', keyCodes: [] }" ],
143
+ "default": "true",
144
+ "examples": [ "false", "{ early: true, center: true, color: 'teal', keyCodes: [] }" ],
145
145
  "category": "style"
146
146
  },
147
147
 
package/src/body.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import setCssVar from './utils/set-css-var.js'
2
2
  import { noop } from './utils/event.js'
3
3
  import { onKeyDownComposition } from './utils/private/key-composition.js'
4
- import { isRuntimeSsrPreHydration, client } from './plugins/Platform.js'
4
+ import { isRuntimeSsrPreHydration, client } from './plugins/platform/Platform.js'
5
5
 
6
6
  function getMobilePlatform (is) {
7
7
  if (is.ios === true) return 'ios'
@@ -7,14 +7,14 @@
7
7
  "position": {
8
8
  "type": "String",
9
9
  "desc": "Position within window of where QAjaxBar should be displayed",
10
- "default": "top",
11
- "values": [ "top", "right", "bottom", "left" ],
10
+ "default": "'top'",
11
+ "values": [ "'top'", "'right'", "'bottom'", "'left'" ],
12
12
  "category": "style"
13
13
  },
14
14
 
15
15
  "size": {
16
16
  "extends": "size",
17
- "default": "2px"
17
+ "default": "'2px'"
18
18
  },
19
19
 
20
20
  "color": {
@@ -40,7 +40,7 @@
40
40
  "url": {
41
41
  "type": "String",
42
42
  "desc": "The URL being triggered",
43
- "examples": [ "https://some.url/path" ]
43
+ "examples": [ "'https://some.url/path'" ]
44
44
  }
45
45
  },
46
46
  "returns": {
@@ -68,7 +68,7 @@
68
68
  "params": {
69
69
  "speed": {
70
70
  "type": "Number",
71
- "default": 300,
71
+ "default": "300",
72
72
  "desc": "Delay (in milliseconds) between progress auto-increments; If delay is 0 then it disables auto-incrementing"
73
73
  }
74
74
  },
@@ -9,7 +9,7 @@
9
9
  "font-size": {
10
10
  "type": "String",
11
11
  "desc": "The size in CSS units, including unit name, of the content (icon, text)",
12
- "examples": [ "18px", "2rem" ],
12
+ "examples": [ "'18px'", "'2rem'" ],
13
13
  "category": "style"
14
14
  },
15
15
 
@@ -0,0 +1,146 @@
1
+ import { mount } from '@vue/test-utils'
2
+ import { describe, test, expect } from 'vitest'
3
+
4
+ import QAvatar from './QAvatar.js'
5
+
6
+ describe('[QAvatar API]', () => {
7
+ describe('[Props]', () => {
8
+ describe('[(prop)icon]', () => {
9
+ test('should render an icon', () => {
10
+ const icon = 'bug_report'
11
+ const wrapper = mount(QAvatar, {
12
+ props: {
13
+ icon,
14
+ color: 'grey'
15
+ }
16
+ })
17
+
18
+ expect(
19
+ wrapper.get('.q-avatar')
20
+ .get('.q-icon')
21
+ .text()
22
+ ).toContain(`${ icon }`)
23
+ })
24
+ })
25
+
26
+ describe('[(prop)font-size]', () => {
27
+ test('should set the font-size', () => {
28
+ const size = '40px'
29
+ // Doing em/rem units here does not work
30
+ // Cypress looks at actual computed values in the browser
31
+ const fontSize = '32px'
32
+ const wrapper = mount(QAvatar, {
33
+ props: {
34
+ size,
35
+ fontSize,
36
+ color: 'grey'
37
+ }
38
+ })
39
+
40
+ expect(
41
+ wrapper.get('.q-avatar')
42
+ .$style()
43
+ ).toContain(`font-size: ${ size };`)
44
+
45
+ expect(
46
+ wrapper.get('.q-avatar__content')
47
+ .$style()
48
+ ).toContain(`font-size: ${ fontSize };`)
49
+ })
50
+ })
51
+
52
+ describe('[(prop)color]', () => {
53
+ test('should set a background color', () => {
54
+ const color = 'red'
55
+ const wrapper = mount(QAvatar, {
56
+ props: {
57
+ color
58
+ }
59
+ })
60
+
61
+ expect(
62
+ wrapper.get('.q-avatar')
63
+ .classes()
64
+ ).toContain(`bg-${ color }`)
65
+ })
66
+ })
67
+
68
+ describe('[(prop)text-color]', () => {
69
+ test('should set a text color', () => {
70
+ const textColor = 'red'
71
+ const wrapper = mount(QAvatar, {
72
+ props: {
73
+ textColor
74
+ }
75
+ })
76
+
77
+ expect(
78
+ wrapper.get('.q-avatar')
79
+ .classes()
80
+ ).toContain(`text-${ textColor }`)
81
+ })
82
+ })
83
+
84
+ describe('[(prop)square]', () => {
85
+ test('should create a square avatar', () => {
86
+ const wrapper = mount(QAvatar, {
87
+ props: {
88
+ square: true,
89
+ color: 'grey'
90
+ }
91
+ })
92
+
93
+ expect(
94
+ wrapper.get('.q-avatar')
95
+ .classes()
96
+ ).toContain('q-avatar--square')
97
+
98
+ expect(
99
+ wrapper.get('.q-avatar')
100
+ .$computedStyle('border-radius')
101
+ ).toBe('0')
102
+ })
103
+ })
104
+
105
+ describe('[(prop)rounded]', () => {
106
+ test('should create a rounded avatar', () => {
107
+ const wrapper = mount(QAvatar, {
108
+ props: {
109
+ rounded: true,
110
+ color: 'grey'
111
+ }
112
+ })
113
+
114
+ expect(
115
+ wrapper.get('.q-avatar')
116
+ .classes()
117
+ ).toContain('rounded-borders')
118
+ })
119
+ })
120
+
121
+ describe.todo('(prop): size', () => {
122
+ test(' ', () => {
123
+ //
124
+ })
125
+ })
126
+ })
127
+
128
+ describe('[Slots]', () => {
129
+ describe('[(slot)default]', () => {
130
+ test('render the text in the default slot', () => {
131
+ const text = 'QQ'
132
+ const wrapper = mount(QAvatar, {
133
+ slots: {
134
+ // Using only a string here results in an error, this is a workaround
135
+ default: () => text
136
+ }
137
+ })
138
+
139
+ expect(
140
+ wrapper.get('.q-avatar')
141
+ .text()
142
+ ).toContain(text)
143
+ })
144
+ })
145
+ })
146
+ })
@@ -33,14 +33,14 @@
33
33
  "label": {
34
34
  "type": [ "String", "Number" ],
35
35
  "desc": "Badge's content as string; overrides default slot if specified",
36
- "examples": [ "John Doe", 22 ],
36
+ "examples": [ "'John Doe'", "22" ],
37
37
  "category": "content"
38
38
  },
39
39
 
40
40
  "align": {
41
41
  "type": "String",
42
42
  "desc": "Sets vertical-align CSS prop",
43
- "values": [ "top", "middle", "bottom" ],
43
+ "values": [ "'top'", "'middle'", "'bottom'" ],
44
44
  "category": "content"
45
45
  },
46
46
 
@@ -0,0 +1,167 @@
1
+ import { mount } from '@vue/test-utils'
2
+ import { describe, test, expect } from 'vitest'
3
+
4
+ import QBadge from './QBadge.js'
5
+
6
+ const defaultOptions = {
7
+ label: 'simple badge'
8
+ }
9
+
10
+ const alignValues = [ 'top', 'middle', 'bottom' ]
11
+
12
+ function mountQBadge (options = {}) {
13
+ options.props = {
14
+ ...defaultOptions,
15
+ ...options.props
16
+ }
17
+
18
+ return mount(QBadge, options)
19
+ }
20
+
21
+ describe('[QBadge API]', () => {
22
+ describe('[Props]', () => {
23
+ describe('[(prop)floating]', () => {
24
+ test('should render a floating badge', () => {
25
+ const wrapper = mountQBadge({
26
+ props: { floating: true }
27
+ })
28
+
29
+ expect(
30
+ wrapper.get('.q-badge')
31
+ .classes()
32
+ ).toContain('q-badge--floating')
33
+ })
34
+ })
35
+
36
+ describe('[(prop)multi-line]', () => {
37
+ test('should render a content with multiple lines', () => {
38
+ const wrapper = mountQBadge({
39
+ props: { multiLine: true }
40
+ })
41
+
42
+ expect(
43
+ wrapper.get('.q-badge')
44
+ .classes()
45
+ ).toContain('q-badge--multi-line')
46
+ })
47
+ })
48
+
49
+ describe('[(prop)label]', () => {
50
+ test('should render a label inside the badge', () => {
51
+ const label = 'Badge label'
52
+ const wrapper = mountQBadge({
53
+ props: { label }
54
+ })
55
+
56
+ expect(
57
+ wrapper.get('.q-badge')
58
+ .text()
59
+ ).toContain(label)
60
+ })
61
+ })
62
+
63
+ describe('[(prop)align]', () => {
64
+ test(`should render a badge aligned based on defined values: ${ alignValues.join(', ') }`, () => {
65
+ // loop over alignValues
66
+ for (const align of alignValues) {
67
+ const wrapper = mountQBadge({
68
+ props: { align }
69
+ })
70
+
71
+ expect(
72
+ wrapper.get('.q-badge')
73
+ .$style('vertical-align')
74
+ ).toBe(align)
75
+ }
76
+ })
77
+ })
78
+
79
+ describe('[(prop)color]', () => {
80
+ test('should change color based on Quasar Color Palette', () => {
81
+ const wrapper = mountQBadge({
82
+ props: { color: 'red' }
83
+ })
84
+
85
+ expect(
86
+ wrapper.get('.q-badge')
87
+ .classes()
88
+ ).toContain('bg-red')
89
+ })
90
+ })
91
+
92
+ describe('[(prop)text-color]', () => {
93
+ test('should change text color based on Quasar Color Palette', () => {
94
+ const wrapper = mountQBadge({
95
+ props: { textColor: 'red' }
96
+ })
97
+
98
+ expect(
99
+ wrapper.get('.q-badge')
100
+ .classes()
101
+ ).toContain('text-red')
102
+ })
103
+ })
104
+
105
+ describe('[(prop)transparent]', () => {
106
+ test('should have opacity style when "transparent" prop is true', () => {
107
+ const wrapper = mountQBadge({
108
+ props: { transparent: true }
109
+ })
110
+
111
+ expect(
112
+ wrapper.get('.q-badge')
113
+ .classes()
114
+ ).toContain('q-badge--transparent')
115
+ })
116
+ })
117
+
118
+ describe('[(prop)outline]', () => {
119
+ test('should have a outline style when "outline" prop is true', () => {
120
+ const wrapper = mountQBadge({
121
+ props: { outline: true }
122
+ })
123
+
124
+ expect(
125
+ wrapper.get('.q-badge')
126
+ .classes()
127
+ ).toContain('q-badge--outline')
128
+ })
129
+ })
130
+
131
+ describe('[(prop)rounded]', () => {
132
+ test('should have a rounded style when "rounded" prop is true', () => {
133
+ const wrapper = mountQBadge({
134
+ props: { rounded: true }
135
+ })
136
+
137
+ expect(
138
+ wrapper.get('.q-badge')
139
+ .classes()
140
+ ).toContain('q-badge--rounded')
141
+ })
142
+ })
143
+ })
144
+
145
+ describe('[Slots]', () => {
146
+ describe('[(slot)default]', () => {
147
+ test('should display the default slot content', () => {
148
+ const label = 'Badge label'
149
+
150
+ const wrapper = mountQBadge({
151
+ props: {
152
+ label: undefined
153
+ },
154
+
155
+ slots: {
156
+ default: label
157
+ }
158
+ })
159
+
160
+ expect(
161
+ wrapper.get('.q-badge')
162
+ .text()
163
+ ).toBe(label)
164
+ })
165
+ })
166
+ })
167
+ })