quasar 2.9.2 → 2.10.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (337) hide show
  1. package/dist/api/Dialog.json +25 -68
  2. package/dist/api/Intersection.json +25 -100
  3. package/dist/api/Loading.json +5 -20
  4. package/dist/api/LoadingBar.json +1 -7
  5. package/dist/api/LocalStorage.json +4 -16
  6. package/dist/api/Morph.json +2 -14
  7. package/dist/api/Notify.json +0 -3
  8. package/dist/api/Platform.json +1 -4
  9. package/dist/api/QAjaxBar.json +1 -11
  10. package/dist/api/QBreadcrumbs.json +0 -8
  11. package/dist/api/QBreadcrumbsEl.json +0 -14
  12. package/dist/api/QBtn.json +0 -3
  13. package/dist/api/QBtnDropdown.json +32 -8
  14. package/dist/api/QCarousel.json +0 -10
  15. package/dist/api/QCarouselControl.json +0 -3
  16. package/dist/api/QCircularProgress.json +0 -23
  17. package/dist/api/QColor.json +0 -3
  18. package/dist/api/QDialog.json +18 -9
  19. package/dist/api/QDrawer.json +0 -6
  20. package/dist/api/QExpansionItem.json +0 -3
  21. package/dist/api/QFab.json +1 -6
  22. package/dist/api/QFabAction.json +1 -3
  23. package/dist/api/QField.json +1 -6
  24. package/dist/api/QFile.json +12 -29
  25. package/dist/api/QFooter.json +0 -3
  26. package/dist/api/QHeader.json +0 -6
  27. package/dist/api/QInfiniteScroll.json +9 -16
  28. package/dist/api/QInnerLoading.json +0 -4
  29. package/dist/api/QInput.json +8 -15
  30. package/dist/api/QIntersection.json +0 -4
  31. package/dist/api/QItemLabel.json +0 -5
  32. package/dist/api/QKnob.json +3 -36
  33. package/dist/api/QLayout.json +6 -24
  34. package/dist/api/QLinearProgress.json +0 -6
  35. package/dist/api/QList.json +15 -0
  36. package/dist/api/QMenu.json +7 -12
  37. package/dist/api/QOptionGroup.json +0 -3
  38. package/dist/api/QPage.json +2 -8
  39. package/dist/api/QPageScroller.json +0 -9
  40. package/dist/api/QPageSticky.json +0 -3
  41. package/dist/api/QPagination.json +138 -127
  42. package/dist/api/QParallax.json +2 -14
  43. package/dist/api/QPopupEdit.json +0 -8
  44. package/dist/api/QPopupProxy.json +0 -4
  45. package/dist/api/QRange.json +5 -32
  46. package/dist/api/QRating.json +0 -4
  47. package/dist/api/QResizeObserver.json +2 -8
  48. package/dist/api/QScrollArea.json +8 -36
  49. package/dist/api/QScrollObserver.json +6 -24
  50. package/dist/api/QSelect.json +18 -108
  51. package/dist/api/QSlideItem.json +1 -6
  52. package/dist/api/QSlideTransition.json +0 -4
  53. package/dist/api/QSlider.json +3 -24
  54. package/dist/api/QSpinner.json +0 -4
  55. package/dist/api/QSplitter.json +1 -4
  56. package/dist/api/QStepper.json +0 -7
  57. package/dist/api/QTabPanels.json +0 -7
  58. package/dist/api/QTable.json +43 -191
  59. package/dist/api/QTabs.json +1 -7
  60. package/dist/api/QTime.json +3 -12
  61. package/dist/api/QTooltip.json +7 -18
  62. package/dist/api/QTree.json +0 -3
  63. package/dist/api/QUploader.json +5 -16
  64. package/dist/api/QVirtualScroll.json +11 -56
  65. package/dist/api/Screen.json +9 -36
  66. package/dist/api/Scroll.json +2 -8
  67. package/dist/api/SessionStorage.json +4 -16
  68. package/dist/api/TouchHold.json +3 -12
  69. package/dist/api/TouchPan.json +7 -28
  70. package/dist/api/TouchRepeat.json +6 -24
  71. package/dist/api/TouchSwipe.json +3 -12
  72. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  73. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  74. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  75. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  76. package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +1 -1
  77. package/dist/icon-set/fontawesome-v6.umd.prod.js +1 -1
  78. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  79. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  80. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  81. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  82. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  83. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  84. package/dist/icon-set/material-symbols-outlined.umd.prod.js +1 -1
  85. package/dist/icon-set/material-symbols-rounded.umd.prod.js +1 -1
  86. package/dist/icon-set/material-symbols-sharp.umd.prod.js +1 -1
  87. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  88. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  89. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  90. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  91. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  92. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  93. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  94. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +1 -1
  95. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  96. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  97. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  98. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  99. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  100. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  101. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  102. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  103. package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +1 -1
  104. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +1 -1
  105. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +1 -1
  106. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  107. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  108. package/dist/icon-set/themify.umd.prod.js +1 -1
  109. package/dist/lang/ar-TN.umd.prod.js +1 -1
  110. package/dist/lang/ar.umd.prod.js +1 -1
  111. package/dist/lang/az-Latn.umd.prod.js +1 -1
  112. package/dist/lang/bg.umd.prod.js +1 -1
  113. package/dist/lang/bn.umd.prod.js +1 -1
  114. package/dist/lang/ca.umd.prod.js +1 -1
  115. package/dist/lang/cs.umd.prod.js +1 -1
  116. package/dist/lang/da.umd.prod.js +1 -1
  117. package/dist/lang/de.umd.prod.js +1 -1
  118. package/dist/lang/el.umd.prod.js +1 -1
  119. package/dist/lang/en-GB.umd.prod.js +1 -1
  120. package/dist/lang/en-US.umd.prod.js +1 -1
  121. package/dist/lang/eo.umd.prod.js +1 -1
  122. package/dist/lang/es.umd.prod.js +1 -1
  123. package/dist/lang/et.umd.prod.js +1 -1
  124. package/dist/lang/eu.umd.prod.js +1 -1
  125. package/dist/lang/fa-IR.umd.prod.js +1 -1
  126. package/dist/lang/fa.umd.prod.js +1 -1
  127. package/dist/lang/fi.umd.prod.js +1 -1
  128. package/dist/lang/fr.umd.prod.js +1 -1
  129. package/dist/lang/gn.umd.prod.js +1 -1
  130. package/dist/lang/he.umd.prod.js +1 -1
  131. package/dist/lang/hr.umd.prod.js +1 -1
  132. package/dist/lang/hu.umd.prod.js +1 -1
  133. package/dist/lang/id.umd.prod.js +1 -1
  134. package/dist/lang/is.umd.prod.js +1 -1
  135. package/dist/lang/it.umd.prod.js +1 -1
  136. package/dist/lang/ja.umd.prod.js +1 -1
  137. package/dist/lang/km.umd.prod.js +1 -1
  138. package/dist/lang/ko-KR.umd.prod.js +1 -1
  139. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  140. package/dist/lang/kz.umd.prod.js +1 -1
  141. package/dist/lang/lt.umd.prod.js +1 -1
  142. package/dist/lang/lu.umd.prod.js +1 -1
  143. package/dist/lang/lv.umd.prod.js +1 -1
  144. package/dist/lang/ml.umd.prod.js +1 -1
  145. package/dist/lang/mm.umd.prod.js +1 -1
  146. package/dist/lang/ms.umd.prod.js +1 -1
  147. package/dist/lang/my.umd.prod.js +1 -1
  148. package/dist/lang/nb-NO.umd.prod.js +1 -1
  149. package/dist/lang/nl.umd.prod.js +1 -1
  150. package/dist/lang/pl.umd.prod.js +1 -1
  151. package/dist/lang/pt-BR.umd.prod.js +1 -1
  152. package/dist/lang/pt.umd.prod.js +1 -1
  153. package/dist/lang/ro.umd.prod.js +1 -1
  154. package/dist/lang/ru.umd.prod.js +1 -1
  155. package/dist/lang/sk.umd.prod.js +1 -1
  156. package/dist/lang/sl.umd.prod.js +1 -1
  157. package/dist/lang/sm.umd.prod.js +1 -1
  158. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  159. package/dist/lang/sr.umd.prod.js +1 -1
  160. package/dist/lang/sv.umd.prod.js +1 -1
  161. package/dist/lang/ta.umd.prod.js +1 -1
  162. package/dist/lang/th.umd.prod.js +1 -1
  163. package/dist/lang/tr.umd.prod.js +1 -1
  164. package/dist/lang/ug.umd.prod.js +1 -1
  165. package/dist/lang/uk.umd.prod.js +1 -1
  166. package/dist/lang/uz-Cyrl.umd.prod.js +1 -1
  167. package/dist/lang/uz-Latn.umd.prod.js +1 -1
  168. package/dist/lang/vi.umd.prod.js +1 -1
  169. package/dist/lang/zh-CN.umd.prod.js +1 -1
  170. package/dist/lang/zh-TW.umd.prod.js +1 -1
  171. package/dist/quasar.cjs.prod.js +2 -2
  172. package/dist/quasar.css +12 -2
  173. package/dist/quasar.esm.js +603 -445
  174. package/dist/quasar.esm.prod.js +2 -2
  175. package/dist/quasar.prod.css +1 -1
  176. package/dist/quasar.rtl.css +28 -2
  177. package/dist/quasar.rtl.prod.css +1 -1
  178. package/dist/quasar.sass +13 -3
  179. package/dist/quasar.umd.js +603 -445
  180. package/dist/quasar.umd.prod.js +2 -2
  181. package/dist/transforms/auto-import.json +7 -3
  182. package/dist/transforms/import-map.json +2 -0
  183. package/dist/types/index.d.ts +116 -106
  184. package/dist/vetur/quasar-attributes.json +65 -49
  185. package/dist/vetur/quasar-tags.json +18 -14
  186. package/dist/web-types/web-types.json +261 -222
  187. package/package.json +3 -3
  188. package/src/api.extends.json +1 -2
  189. package/src/components/ajax-bar/QAjaxBar.json +5 -11
  190. package/src/components/badge/QBadge.js +1 -1
  191. package/src/components/breadcrumbs/QBreadcrumbs.json +0 -2
  192. package/src/components/breadcrumbs/QBreadcrumbsEl.json +1 -6
  193. package/src/components/breadcrumbs/__tests__/BasicBreadcrumbs.vue +7 -0
  194. package/src/components/breadcrumbs/__tests__/BreadcrumbWithSeparatorSlot.vue +11 -0
  195. package/src/components/breadcrumbs/__tests__/QBreadcrumbs.spec.js +112 -0
  196. package/src/components/breadcrumbs/__tests__/QBreadcrumbsEl.spec.js +87 -0
  197. package/src/components/btn/QBtn.json +1 -3
  198. package/src/components/btn/__tests__/QBtn.spec.js +87 -14
  199. package/src/components/btn/__tests__/use-btn.spec.js +385 -58
  200. package/src/components/btn/use-btn.js +24 -14
  201. package/src/components/btn-dropdown/QBtnDropdown.js +34 -18
  202. package/src/components/btn-dropdown/QBtnDropdown.json +1 -3
  203. package/src/components/btn-toggle/QBtnToggle.js +14 -14
  204. package/src/components/btn-toggle/QBtnToggle.json +2 -4
  205. package/src/components/carousel/QCarousel.json +4 -9
  206. package/src/components/carousel/QCarouselControl.json +0 -1
  207. package/src/components/checkbox/use-checkbox.js +1 -1
  208. package/src/components/checkbox/use-checkbox.json +1 -2
  209. package/src/components/chip/QChip.js +14 -11
  210. package/src/components/circular-progress/QCircularProgress.json +0 -5
  211. package/src/components/color/QColor.json +0 -1
  212. package/src/components/date/QDate.js +3 -3
  213. package/src/components/date/QDate.json +28 -56
  214. package/src/components/dialog/QDialog.js +32 -41
  215. package/src/components/dialog/QDialog.json +9 -2
  216. package/src/components/dialog-bottom-sheet/BottomSheet.js +7 -4
  217. package/src/components/dialog-plugin/DialogPlugin.js +4 -4
  218. package/src/components/drawer/QDrawer.js +10 -8
  219. package/src/components/drawer/QDrawer.json +0 -4
  220. package/src/components/editor/QEditor.json +3 -6
  221. package/src/components/expansion-item/QExpansionItem.js +3 -3
  222. package/src/components/expansion-item/QExpansionItem.json +3 -8
  223. package/src/components/fab/QFab.json +0 -1
  224. package/src/components/fab/use-fab.json +0 -1
  225. package/src/components/field/QField.json +0 -1
  226. package/src/components/file/QFile.js +4 -1
  227. package/src/components/file/QFile.json +19 -20
  228. package/src/components/footer/QFooter.js +5 -3
  229. package/src/components/footer/QFooter.json +0 -1
  230. package/src/components/form/QForm.js +5 -3
  231. package/src/components/form/QForm.json +2 -4
  232. package/src/components/header/QHeader.js +5 -3
  233. package/src/components/header/QHeader.json +0 -4
  234. package/src/components/infinite-scroll/QInfiniteScroll.json +9 -6
  235. package/src/components/inner-loading/QInnerLoading.js +2 -5
  236. package/src/components/input/QInput.js +4 -1
  237. package/src/components/input/QInput.json +11 -7
  238. package/src/components/input/use-mask.js +2 -2
  239. package/src/components/intersection/QIntersection.json +0 -1
  240. package/src/components/item/QItem.js +1 -0
  241. package/src/components/item/QItem.json +1 -2
  242. package/src/components/item/QItemLabel.json +0 -1
  243. package/src/components/item/QList.js +7 -2
  244. package/src/components/item/QList.json +7 -0
  245. package/src/components/knob/QKnob.js +3 -3
  246. package/src/components/knob/QKnob.json +3 -12
  247. package/src/components/layout/QLayout.js +1 -1
  248. package/src/components/layout/QLayout.json +6 -12
  249. package/src/components/linear-progress/QLinearProgress.json +0 -2
  250. package/src/components/menu/QMenu.js +8 -5
  251. package/src/components/menu/QMenu.json +0 -2
  252. package/src/components/option-group/QOptionGroup.js +1 -1
  253. package/src/components/option-group/QOptionGroup.json +2 -5
  254. package/src/components/page/QPage.js +11 -4
  255. package/src/components/page/QPage.json +3 -6
  256. package/src/components/page/QPageContainer.js +5 -3
  257. package/src/components/page-scroller/QPageScroller.json +0 -2
  258. package/src/components/page-sticky/QPageSticky.json +0 -1
  259. package/src/components/page-sticky/use-page-sticky.js +5 -3
  260. package/src/components/pagination/QPagination.js +265 -188
  261. package/src/components/pagination/QPagination.json +87 -78
  262. package/src/components/pagination/QPagination.sass +14 -0
  263. package/src/components/parallax/QParallax.json +2 -6
  264. package/src/components/popup-edit/QPopupEdit.js +3 -3
  265. package/src/components/popup-edit/QPopupEdit.json +4 -10
  266. package/src/components/popup-proxy/QPopupProxy.json +0 -1
  267. package/src/components/radio/QRadio.json +1 -2
  268. package/src/components/range/QRange.json +2 -4
  269. package/src/components/rating/QRating.json +0 -1
  270. package/src/components/resize-observer/QResizeObserver.js +14 -10
  271. package/src/components/resize-observer/QResizeObserver.json +2 -4
  272. package/src/components/scroll-area/QScrollArea.js +15 -4
  273. package/src/components/scroll-area/QScrollArea.json +24 -50
  274. package/src/components/scroll-observer/QScrollObserver.js +2 -0
  275. package/src/components/scroll-observer/QScrollObserver.json +6 -12
  276. package/src/components/select/QSelect.js +20 -24
  277. package/src/components/select/QSelect.json +30 -65
  278. package/src/components/select/QSelect.sass +2 -2
  279. package/src/components/slide-item/QSlideItem.json +1 -2
  280. package/src/components/slide-transition/QSlideTransition.json +0 -1
  281. package/src/components/slider/use-slider.json +33 -70
  282. package/src/components/spinner/QSpinner.json +0 -1
  283. package/src/components/splitter/QSplitter.json +1 -2
  284. package/src/components/stepper/QStep.js +7 -5
  285. package/src/components/tab-panels/QTabPanel.js +1 -1
  286. package/src/components/table/QTable.js +3 -3
  287. package/src/components/table/QTable.json +118 -239
  288. package/src/components/tabs/QRouteTab.json +0 -1
  289. package/src/components/tabs/QTabs.js +0 -7
  290. package/src/components/tabs/QTabs.json +1 -3
  291. package/src/components/tabs/use-tab.js +5 -3
  292. package/src/components/time/QTime.json +10 -20
  293. package/src/components/timeline/QTimelineEntry.js +5 -3
  294. package/src/components/toolbar/QToolbar.js +1 -1
  295. package/src/components/tooltip/QTooltip.js +3 -6
  296. package/src/components/tooltip/QTooltip.json +0 -4
  297. package/src/components/tree/QTree.js +6 -6
  298. package/src/components/tree/QTree.json +15 -31
  299. package/src/components/uploader/QUploader.json +13 -22
  300. package/src/components/uploader/QUploaderAddTrigger.js +7 -3
  301. package/src/components/uploader/xhr-uploader-plugin.js +1 -1
  302. package/src/components/uploader/xhr-uploader-plugin.json +25 -50
  303. package/src/components/virtual-scroll/QVirtualScroll.json +5 -10
  304. package/src/components/virtual-scroll/use-virtual-scroll.js +1 -1
  305. package/src/components/virtual-scroll/use-virtual-scroll.json +8 -19
  306. package/src/composables/private/use-field.js +1 -1
  307. package/src/composables/private/use-field.json +2 -3
  308. package/src/composables/private/use-file.js +10 -1
  309. package/src/composables/private/use-file.json +4 -13
  310. package/src/composables/private/use-model-toggle.js +3 -3
  311. package/src/composables/private/use-panel.js +2 -2
  312. package/src/composables/private/use-panel.json +0 -2
  313. package/src/composables/private/use-portal.js +5 -1
  314. package/src/composables/private/use-portal.json +7 -1
  315. package/src/composables/private/use-transition.js +17 -11
  316. package/src/composables/private/use-transition.json +0 -1
  317. package/src/composables/private/use-validate.json +1 -3
  318. package/src/directives/Intersection.json +26 -53
  319. package/src/directives/Morph.json +4 -8
  320. package/src/directives/Mutation.json +6 -12
  321. package/src/directives/Scroll.json +2 -4
  322. package/src/directives/TouchHold.json +3 -6
  323. package/src/directives/TouchPan.json +7 -14
  324. package/src/directives/TouchRepeat.json +6 -12
  325. package/src/directives/TouchSwipe.json +3 -6
  326. package/src/plugins/BottomSheet.json +1 -2
  327. package/src/plugins/Cookies.json +2 -4
  328. package/src/plugins/Dialog.json +32 -72
  329. package/src/plugins/Loading.json +6 -11
  330. package/src/plugins/LoadingBar.json +3 -6
  331. package/src/plugins/Notify.json +4 -5
  332. package/src/plugins/Platform.json +3 -6
  333. package/src/plugins/Screen.json +9 -18
  334. package/src/utils/private/global-dialog.json +6 -12
  335. package/src/utils/private/portal.js +4 -4
  336. package/src/utils/private/symbols.js +2 -0
  337. package/src/utils/private/web-storage.json +6 -10
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quasar",
3
- "version": "2.9.2",
3
+ "version": "2.10.1",
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",
@@ -67,7 +67,7 @@
67
67
  },
68
68
  "homepage": "https://quasar.dev",
69
69
  "devDependencies": {
70
- "@quasar/app-vite": "^1.1.1",
70
+ "@quasar/app-vite": "^1.1.3",
71
71
  "@quasar/extras": "^1.12.0",
72
72
  "@quasar/quasar-app-extension-testing-e2e-cypress": "^4.1.2",
73
73
  "@rollup/plugin-node-resolve": "^11.2.1",
@@ -96,7 +96,7 @@
96
96
  "rollup": "^2.34.0",
97
97
  "table": "^6.0.4",
98
98
  "uglify-es": "^3.3.9",
99
- "vue": "^3.2.37",
99
+ "vue": "^3.2.41",
100
100
  "vue-router": "^4.0.16",
101
101
  "yargs": "^17.3.0"
102
102
  },
@@ -161,8 +161,7 @@
161
161
  "value": {
162
162
  "type": "Any",
163
163
  "desc": "New model value",
164
- "required": true,
165
- "__exemption": [ "examples" ]
164
+ "required": true
166
165
  }
167
166
  }
168
167
  },
@@ -9,7 +9,6 @@
9
9
  "desc": "Position within window of where QAjaxBar should be displayed",
10
10
  "default": "top",
11
11
  "values": [ "top", "right", "bottom", "left" ],
12
- "examples": [ "bottom" ],
13
12
  "category": "style"
14
13
  },
15
14
 
@@ -70,14 +69,12 @@
70
69
  "speed": {
71
70
  "type": "Number",
72
71
  "default": 300,
73
- "desc": "Delay (in milliseconds) between progress auto-increments; If delay is 0 then it disables auto-incrementing",
74
- "examples": [ 400, 0 ]
72
+ "desc": "Delay (in milliseconds) between progress auto-increments; If delay is 0 then it disables auto-incrementing"
75
73
  }
76
74
  },
77
75
  "returns": {
78
76
  "type": "Number",
79
- "desc": "Number of active simultaneous sessions",
80
- "__exemption": [ "examples" ]
77
+ "desc": "Number of active simultaneous sessions"
81
78
  }
82
79
  },
83
80
 
@@ -86,14 +83,12 @@
86
83
  "params": {
87
84
  "amount": {
88
85
  "type": "Number",
89
- "desc": "Amount (0 < x <= 100) to increment with",
90
- "examples": [ 1 ]
86
+ "desc": "Amount (0 < x <= 100) to increment with"
91
87
  }
92
88
  },
93
89
  "returns": {
94
90
  "type": "Number",
95
- "desc": "Number of active simultaneous sessions",
96
- "__exemption": [ "examples" ]
91
+ "desc": "Number of active simultaneous sessions"
97
92
  }
98
93
  },
99
94
 
@@ -101,8 +96,7 @@
101
96
  "desc": "Notify bar that one process you were waiting has finished",
102
97
  "returns": {
103
98
  "type": "Number",
104
- "desc": "Number of active simultaneous sessions",
105
- "__exemption": [ "examples" ]
99
+ "desc": "Number of active simultaneous sessions"
106
100
  }
107
101
  }
108
102
  }
@@ -53,7 +53,7 @@ export default createComponent({
53
53
  return () => h('div', {
54
54
  class: classes.value,
55
55
  style: style.value,
56
- role: 'alert',
56
+ role: 'status',
57
57
  'aria-label': props.label
58
58
  }, hMergeSlot(slots.default, props.label !== void 0 ? [ props.label ] : []))
59
59
  }
@@ -24,7 +24,6 @@
24
24
  "desc": "The gutter value allows you control over the space between the breadcrumb elements.",
25
25
  "default": "sm",
26
26
  "values": [ "none", "xs", "sm", "md", "lg", "xl" ],
27
- "examples": [ "md", "lg" ],
28
27
  "category": "content"
29
28
  },
30
29
 
@@ -39,7 +38,6 @@
39
38
  "default": "left",
40
39
  "desc": "Specify how to align the breadcrumbs horizontally",
41
40
  "values": [ "left", "center", "right", "between", "around", "evenly" ],
42
- "examples": [ "left", "center" ],
43
41
  "category": "content"
44
42
  }
45
43
  },
@@ -21,10 +21,6 @@
21
21
  "extends": "tag",
22
22
  "default": "span",
23
23
  "examples": [ "div", "span" ]
24
- },
25
-
26
- "ripple": {
27
- "extends": "ripple"
28
24
  }
29
25
  },
30
26
 
@@ -79,8 +75,7 @@
79
75
  },
80
76
  "returns": {
81
77
  "type": "Promise<any>",
82
- "desc": "Returns the router's navigation promise",
83
- "__exemption": [ "examples" ]
78
+ "desc": "Returns the router's navigation promise"
84
79
  }
85
80
  }
86
81
  }
@@ -0,0 +1,7 @@
1
+ <template>
2
+ <q-breadcrumbs v-bind="$attrs">
3
+ <q-breadcrumbs-el label="Home" icon="home" />
4
+ <q-breadcrumbs-el label="Components" icon="widgets" />
5
+ <q-breadcrumbs-el label="Toolbar" />
6
+ </q-breadcrumbs>
7
+ </template>
@@ -0,0 +1,11 @@
1
+ <template>
2
+ <q-breadcrumbs v-bind="$attrs">
3
+ <q-breadcrumbs-el label="Home" icon="home" />
4
+ <q-breadcrumbs-el label="Components" icon="widgets" />
5
+ <q-breadcrumbs-el label="Toolbar" />
6
+
7
+ <template v-slot:separator>
8
+ <q-icon size="1.2em" name="arrow_forward" color="purple" />
9
+ </template>
10
+ </q-breadcrumbs>
11
+ </template>
@@ -0,0 +1,112 @@
1
+ import { mount } from '@cypress/vue'
2
+ import { alignMap, alignValues } from '../../../composables/private/use-align.js'
3
+ import BasicBreadcrumbs from './BasicBreadcrumbs.vue'
4
+ import BreadcrumbWithSeparatorSlot from './BreadcrumbWithSeparatorSlot.vue'
5
+
6
+ const gutterValues = [ 'xs', 'sm', 'md', 'lg', 'xl' ]
7
+
8
+ describe('Breadcrumbs API', () => {
9
+ describe('Props', () => {
10
+ describe('Category: content', () => {
11
+ describe('(prop): separator', () => {
12
+ it('should render a custom separator based on the defined value', () => {
13
+ const customSeparator = '>'
14
+
15
+ mount(BasicBreadcrumbs, {
16
+ props: {
17
+ separator: customSeparator
18
+ }
19
+ })
20
+ cy.get('.q-breadcrumbs__separator')
21
+ .each(($el) => cy.wrap($el).should('contain', customSeparator))
22
+ })
23
+ })
24
+
25
+ describe('(prop): gutter', () => {
26
+ it(`should render a breadcrumb with a gutter based on defined values: ${ gutterValues.join(', ') }`, () => {
27
+ mount(BasicBreadcrumbs)
28
+
29
+ // loop through each gutter value
30
+ for (const gutter of gutterValues) {
31
+ cy.get('.q-breadcrumbs > div')
32
+ .then(() => Cypress.vueWrapper.setProps({ gutter }))
33
+ .should('have.class', `q-gutter-${ gutter }`)
34
+ }
35
+ })
36
+
37
+ it('should render a breadcrumb with no gutter when the value is set to "none"', () => {
38
+ mount(BasicBreadcrumbs, {
39
+ props: {
40
+ gutter: 'none'
41
+ }
42
+ })
43
+ cy.get('.q-breadcrumbs > div')
44
+ .should('not.have.class', 'q-gutter')
45
+ })
46
+ })
47
+
48
+ describe('(prop): align', () => {
49
+ it(`should render a breadcrumb aligned based on defined values: ${ alignValues.join(', ') }`, () => {
50
+ mount(BasicBreadcrumbs)
51
+
52
+ // loop over alignValues
53
+ for (const align of alignValues) {
54
+ cy.get('.q-breadcrumbs > div')
55
+ .then(() => Cypress.vueWrapper.setProps({ align }))
56
+ .should('have.class', `justify-${ alignMap[ align ] }`)
57
+ }
58
+ })
59
+ })
60
+ })
61
+
62
+ describe('Category: style', () => {
63
+ describe('(prop): active-color', () => {
64
+ it('should change breadcrumb item color based on Quasar Color Palette', () => {
65
+ const activeColor = 'red'
66
+
67
+ mount(BasicBreadcrumbs, {
68
+ props: {
69
+ activeColor
70
+ }
71
+ })
72
+ cy.get('.q-breadcrumbs > div > .flex.items-center:not(.q-breadcrumbs--last)')
73
+ .each(($el) => cy.wrap($el).should('have.class', `text-${ activeColor }`))
74
+ })
75
+ })
76
+
77
+ describe('(prop): separator-color', () => {
78
+ it('should change breadcrumb separator color based on Quasar Color Palette', () => {
79
+ const separatorColor = 'red'
80
+
81
+ mount(BasicBreadcrumbs, {
82
+ props: {
83
+ separatorColor
84
+ }
85
+ })
86
+ cy.get('.q-breadcrumbs__separator')
87
+ .each(($el) => cy.wrap($el).should('have.class', `text-${ separatorColor }`))
88
+ })
89
+ })
90
+ })
91
+ })
92
+
93
+ describe('Slots', () => {
94
+ describe('(slot): default', () => {
95
+ it('should display the default slot content', () => {
96
+ mount(BasicBreadcrumbs)
97
+
98
+ cy.get('.q-breadcrumbs > div')
99
+ .should('contain', 'Home')
100
+ })
101
+ })
102
+
103
+ describe('(slot): separator', () => {
104
+ it('should display the separator slot content', () => {
105
+ mount(BreadcrumbWithSeparatorSlot)
106
+
107
+ cy.get('.q-breadcrumbs__separator')
108
+ .should('contain', 'arrow_forward')
109
+ })
110
+ })
111
+ })
112
+ })
@@ -0,0 +1,87 @@
1
+ import { mount } from '@cypress/vue'
2
+ import QBreadcrumbsEl from '../QBreadcrumbsEl.js'
3
+
4
+ describe('BreadcrumbsEl API', () => {
5
+ describe('Props', () => {
6
+ describe('Category: content', () => {
7
+ describe('(prop): label', () => {
8
+ it('should render a label inside the breadcrumb element', () => {
9
+ const label = 'Breadcrumb label'
10
+
11
+ mount(QBreadcrumbsEl, {
12
+ props: { label }
13
+ })
14
+
15
+ cy.get('.q-breadcrumbs__el')
16
+ .should('contain', label)
17
+ })
18
+ })
19
+
20
+ describe('(prop): icon', () => {
21
+ it('should render on the left of the breadcrumb element', () => {
22
+ const icon = 'home'
23
+
24
+ mount(QBreadcrumbsEl, {
25
+ props: { icon }
26
+ })
27
+
28
+ cy.get('.q-breadcrumbs__el')
29
+ .should('contain', icon)
30
+ })
31
+ })
32
+
33
+ describe('(prop): tag', () => {
34
+ it('should render a custom tag', () => {
35
+ const tag = 'a'
36
+
37
+ mount(QBreadcrumbsEl, {
38
+ props: { tag }
39
+ })
40
+
41
+ cy.get('.q-breadcrumbs__el')
42
+ .should('have.prop', 'tagName', tag.toUpperCase())
43
+ })
44
+ })
45
+ })
46
+
47
+ describe('Category: style', () => {
48
+ it.skip(' ', () => {
49
+ //
50
+ })
51
+ })
52
+ })
53
+
54
+ describe('Slots', () => {
55
+ describe('(slot): default', () => {
56
+ it('should render the default slot', () => {
57
+ const label = 'Breadcrumb label'
58
+
59
+ mount(QBreadcrumbsEl, {
60
+ slots: { default: label }
61
+ })
62
+
63
+ cy.get('.q-breadcrumbs__el')
64
+ .should('contain', label)
65
+ })
66
+ })
67
+ })
68
+
69
+ describe('Events', () => {
70
+ describe('(event): click', () => {
71
+ it('should emit "click" event when clicked', () => {
72
+ const fn = cy.stub()
73
+
74
+ mount(QBreadcrumbsEl, {
75
+ props: {
76
+ label: 'clicked breadcrumb',
77
+ onClick: fn
78
+ }
79
+ })
80
+
81
+ cy.get('.q-breadcrumbs__el')
82
+ .click()
83
+ .then(() => expect(fn).to.be.calledOnce)
84
+ })
85
+ })
86
+ })
87
+ })
@@ -15,7 +15,6 @@
15
15
  "percentage": {
16
16
  "type": "Number",
17
17
  "desc": "Percentage (0.0 < x < 100.0); To be used along 'loading' prop; Display a progress bar on the background",
18
- "examples": [ 23 ],
19
18
  "category": "behavior"
20
19
  },
21
20
 
@@ -92,8 +91,7 @@
92
91
  },
93
92
  "returns": {
94
93
  "type": "Promise<any>",
95
- "desc": "Returns the router's navigation promise",
96
- "__exemption": [ "examples" ]
94
+ "desc": "Returns the router's navigation promise"
97
95
  }
98
96
  }
99
97
  }
@@ -1,23 +1,65 @@
1
+ import { mount } from '@cypress/vue'
2
+ import QBtn from '../QBtn.js'
3
+
4
+ const defaultOptions = {
5
+ label: 'simple Btn'
6
+ }
7
+
8
+ function mountQBtn (options = {}) {
9
+ options.props = {
10
+ ...defaultOptions,
11
+ ...options.props
12
+ }
13
+
14
+ return mount(QBtn, options)
15
+ }
16
+
1
17
  describe('Btn API', () => {
2
18
  describe('Props', () => {
3
19
  describe('Category: behavior', () => {
4
20
  describe('(prop): percentage', () => {
5
- it.skip(' ', () => {
6
- //
21
+ it('should render a button with a percentage when "loading" prop is set to true', () => {
22
+ const percentage = 50
23
+
24
+ mountQBtn({
25
+ props: {
26
+ percentage,
27
+ loading: true
28
+ }
29
+ })
30
+
31
+ cy.get('.q-btn').should('have.attr', 'aria-valuenow', percentage)
7
32
  })
8
33
  })
9
34
 
10
35
  describe('(prop): dark-percentage', () => {
11
- it.skip(' ', () => {
12
- //
36
+ it('should render a button with a dark percentage when "loading" prop is set to true', () => {
37
+ const percentage = 50
38
+
39
+ mountQBtn({
40
+ props: {
41
+ percentage,
42
+ loading: true,
43
+ darkPercentage: true
44
+ }
45
+ })
46
+
47
+ cy.get('.q-btn').should('have.attr', 'aria-valuenow', percentage)
48
+ .get('.q-btn__progress').should('have.class', 'q-btn__progress--dark')
13
49
  })
14
50
  })
15
51
  })
16
52
 
17
53
  describe('Category: style', () => {
18
54
  describe('(prop): round', () => {
19
- it.skip(' ', () => {
20
- //
55
+ it('should render a circle shaped button when "round" prop is set to true', () => {
56
+ mountQBtn({
57
+ props: {
58
+ round: true
59
+ }
60
+ })
61
+
62
+ cy.get('.q-btn').should('have.class', 'q-btn--round')
21
63
  })
22
64
  })
23
65
  })
@@ -25,30 +67,61 @@ describe('Btn API', () => {
25
67
 
26
68
  describe('Slots', () => {
27
69
  describe('(slot): default', () => {
28
- it.skip(' ', () => {
29
- //
70
+ it('should render a button with a label', () => {
71
+ mountQBtn()
72
+
73
+ cy.get('.q-btn').should('contain', defaultOptions.label)
30
74
  })
31
75
  })
32
76
 
33
77
  describe('(slot): loading', () => {
34
- it.skip(' ', () => {
35
- //
78
+ it('should render a button with a loading slot', () => {
79
+ const loadingSlot = 'loading slot'
80
+
81
+ mountQBtn({
82
+ props: {
83
+ loading: true
84
+ },
85
+ slots: {
86
+ loading: loadingSlot
87
+ }
88
+ })
89
+
90
+ cy.get('.q-btn').should('contain', loadingSlot).contains(defaultOptions.label).should('not.be.visible')
36
91
  })
37
92
  })
38
93
  })
39
94
 
40
95
  describe('Events', () => {
41
96
  describe('(event): click', () => {
42
- it.skip(' ', () => {
43
- //
97
+ it('should emit a click event when the button is clicked', () => {
98
+ const fn = cy.stub()
99
+
100
+ mountQBtn({
101
+ props: {
102
+ onClick: fn
103
+ }
104
+ })
105
+
106
+ cy.get('.q-btn').click()
107
+ .then(() => expect(fn).to.be.calledOnce)
44
108
  })
45
109
  })
46
110
  })
47
111
 
48
112
  describe('Methods', () => {
49
113
  describe('(method): click', () => {
50
- it.skip(' ', () => {
51
- //
114
+ it('should click the button', () => {
115
+ const fn = cy.stub()
116
+
117
+ mountQBtn({
118
+ props: {
119
+ onClick: fn
120
+ }
121
+ })
122
+
123
+ cy.get('.q-btn').invoke('click')
124
+ .then(() => expect(fn).to.be.calledOnce)
52
125
  })
53
126
  })
54
127
  })