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
@@ -5,18 +5,33 @@ import QBtn from '../btn/QBtn.js'
5
5
  import QBtnGroup from '../btn-group/QBtnGroup.js'
6
6
  import QMenu from '../menu/QMenu.js'
7
7
 
8
- import { useBtnProps } from '../btn/use-btn.js'
8
+ import { getBtnDesignAttr, useBtnProps } from '../btn/use-btn.js'
9
+ import { useTransitionProps } from '../../composables/private/use-transition.js'
9
10
 
10
11
  import { createComponent } from '../../utils/private/create.js'
11
12
  import { stop } from '../../utils/event.js'
12
13
  import uid from '../../utils/uid.js'
13
14
  import { hSlot } from '../../utils/private/render.js'
14
15
 
16
+ const btnPropsList = Object.keys(useBtnProps)
17
+
18
+ export const passBtnProps = props => btnPropsList.reduce(
19
+ (acc, key) => {
20
+ const val = props[ key ]
21
+ if (val !== void 0) {
22
+ acc[ key ] = val
23
+ }
24
+ return acc
25
+ },
26
+ {}
27
+ )
28
+
15
29
  export default createComponent({
16
30
  name: 'QBtnDropdown',
17
31
 
18
32
  props: {
19
33
  ...useBtnProps,
34
+ ...useTransitionProps,
20
35
 
21
36
  modelValue: Boolean,
22
37
  split: Boolean,
@@ -48,7 +63,7 @@ export default createComponent({
48
63
  toggleAriaLabel: String
49
64
  },
50
65
 
51
- emits: [ 'update:modelValue', 'click', 'before-show', 'show', 'before-hide', 'hide' ],
66
+ emits: [ 'update:modelValue', 'click', 'beforeShow', 'show', 'beforeHide', 'hide' ],
52
67
 
53
68
  setup (props, { slots, emit }) {
54
69
  const { proxy } = getCurrentInstance()
@@ -57,7 +72,7 @@ export default createComponent({
57
72
  const menuRef = ref(null)
58
73
  const targetUid = uid()
59
74
 
60
- const attributes = computed(() => {
75
+ const ariaAttrs = computed(() => {
61
76
  const acc = {
62
77
  'aria-expanded': showing.value === true ? 'true' : 'false',
63
78
  'aria-haspopup': 'true',
@@ -85,6 +100,9 @@ export default createComponent({
85
100
  + (props.split === false ? ' q-btn-dropdown__arrow-container' : '')
86
101
  )
87
102
 
103
+ const btnDesignAttr = computed(() => getBtnDesignAttr(props))
104
+ const btnProps = computed(() => passBtnProps(props))
105
+
88
106
  watch(() => props.modelValue, val => {
89
107
  menuRef.value !== null && menuRef.value[ val ? 'show' : 'hide' ]()
90
108
  })
@@ -93,7 +111,7 @@ export default createComponent({
93
111
 
94
112
  function onBeforeShow (e) {
95
113
  showing.value = true
96
- emit('before-show', e)
114
+ emit('beforeShow', e)
97
115
  }
98
116
 
99
117
  function onShow (e) {
@@ -103,7 +121,7 @@ export default createComponent({
103
121
 
104
122
  function onBeforeHide (e) {
105
123
  showing.value = false
106
- emit('before-hide', e)
124
+ emit('beforeHide', e)
107
125
  }
108
126
 
109
127
  function onHide (e) {
@@ -165,6 +183,9 @@ export default createComponent({
165
183
  self: props.menuSelf,
166
184
  offset: props.menuOffset,
167
185
  separateClosePopup: true,
186
+ transitionShow: props.transitionShow,
187
+ transitionHide: props.transitionHide,
188
+ transitionDuration: props.transitionDuration,
168
189
  onBeforeShow,
169
190
  onShow,
170
191
  onBeforeHide,
@@ -175,11 +196,11 @@ export default createComponent({
175
196
  if (props.split === false) {
176
197
  return h(QBtn, {
177
198
  class: 'q-btn-dropdown q-btn-dropdown--simple',
178
- ...props,
199
+ ...btnProps.value,
200
+ ...ariaAttrs.value,
179
201
  disable: props.disable === true || props.disableMainBtn === true,
180
202
  noWrap: true,
181
203
  round: false,
182
- ...attributes.value,
183
204
  onClick
184
205
  }, {
185
206
  default: () => hSlot(slots.label, []).concat(Arrow),
@@ -189,21 +210,17 @@ export default createComponent({
189
210
 
190
211
  return h(QBtnGroup, {
191
212
  class: 'q-btn-dropdown q-btn-dropdown--split no-wrap q-btn-item',
192
- outline: props.outline,
193
- flat: props.flat,
194
213
  rounded: props.rounded,
195
214
  square: props.square,
196
- push: props.push,
197
- unelevated: props.unelevated,
215
+ ...btnDesignAttr.value,
198
216
  glossy: props.glossy,
199
217
  stretch: props.stretch
200
218
  }, () => [
201
219
  h(QBtn, {
202
220
  class: 'q-btn-dropdown--current',
203
- ...props,
221
+ ...btnProps.value,
204
222
  disable: props.disable === true || props.disableMainBtn === true,
205
223
  noWrap: true,
206
- iconRight: props.iconRight,
207
224
  round: false,
208
225
  onClick: onClickHide
209
226
  }, {
@@ -213,16 +230,15 @@ export default createComponent({
213
230
 
214
231
  h(QBtn, {
215
232
  class: 'q-btn-dropdown__arrow-container q-anchor--skip',
216
- ...attributes.value,
233
+ ...ariaAttrs.value,
234
+ ...btnDesignAttr.value,
217
235
  disable: props.disable === true || props.disableDropdown === true,
218
- outline: props.outline,
219
- flat: props.flat,
220
236
  rounded: props.rounded,
221
- push: props.push,
222
- size: props.size,
223
237
  color: props.color,
224
238
  textColor: props.textColor,
225
239
  dense: props.dense,
240
+ size: props.size,
241
+ padding: props.padding,
226
242
  ripple: props.ripple
227
243
  }, () => Arrow)
228
244
  ])
@@ -1,5 +1,5 @@
1
1
  {
2
- "mixins": [ "components/btn/use-btn", "composables/private/use-model-toggle" ],
2
+ "mixins": [ "components/btn/use-btn", "composables/private/use-model-toggle", "composables/private/use-transition" ],
3
3
 
4
4
  "meta": {
5
5
  "docsUrl": "https://v2.quasar.dev/vue-components/button-dropdown"
@@ -97,7 +97,6 @@
97
97
  "bottom left", "bottom middle", "bottom right", "bottom start", "bottom end"
98
98
  ],
99
99
  "default": "bottom end",
100
- "examples": [ "top right", "bottom end" ],
101
100
  "category": "position"
102
101
  },
103
102
 
@@ -110,7 +109,6 @@
110
109
  "bottom left", "bottom middle", "bottom right", "bottom start", "bottom end"
111
110
  ],
112
111
  "default": "top end",
113
- "examples": [ "top right", "bottom end" ],
114
112
  "category": "position"
115
113
  },
116
114
 
@@ -7,6 +7,7 @@ import { createComponent } from '../../utils/private/create.js'
7
7
  import { useFormInject, useFormProps } from '../../composables/private/use-form.js'
8
8
 
9
9
  import { hMergeSlot } from '../../utils/private/render.js'
10
+ import { getBtnDesignAttr } from '../btn/use-btn.js'
10
11
 
11
12
  export default createComponent({
12
13
  name: 'QBtnToggle',
@@ -80,6 +81,14 @@ export default createComponent({
80
81
 
81
82
  const injectFormInput = useFormInject(formAttrs)
82
83
 
84
+ const btnDesignAttr = computed(() => getBtnDesignAttr(props))
85
+
86
+ const btnOptionDesign = computed(() => ({
87
+ rounded: props.rounded,
88
+ dense: props.dense,
89
+ ...btnDesignAttr.value
90
+ }))
91
+
83
92
  const btnOptions = computed(() => props.options.map((item, i) => {
84
93
  const { attrs, value, slot, ...opt } = item
85
94
 
@@ -87,19 +96,11 @@ export default createComponent({
87
96
  slot,
88
97
  props: {
89
98
  key: i,
90
- onClick (e) { set(value, item, e) },
91
99
 
92
100
  'aria-pressed': value === props.modelValue ? 'true' : 'false',
93
-
94
101
  ...attrs,
95
102
  ...opt,
96
-
97
- outline: props.outline,
98
- flat: props.flat,
99
- rounded: props.rounded,
100
- push: props.push,
101
- unelevated: props.unelevated,
102
- dense: props.dense,
103
+ ...btnOptionDesign.value,
103
104
 
104
105
  disable: props.disable === true || opt.disable === true,
105
106
 
@@ -117,7 +118,9 @@ export default createComponent({
117
118
  padding: mergeOpt(opt, 'padding'),
118
119
  ripple: mergeOpt(opt, 'ripple'),
119
120
  stack: mergeOpt(opt, 'stack') === true,
120
- stretch: mergeOpt(opt, 'stretch') === true
121
+ stretch: mergeOpt(opt, 'stretch') === true,
122
+
123
+ onClick (e) { set(value, item, e) }
121
124
  }
122
125
  }
123
126
  }))
@@ -156,12 +159,9 @@ export default createComponent({
156
159
 
157
160
  return () => h(QBtnGroup, {
158
161
  class: 'q-btn-toggle',
159
- outline: props.outline,
160
- flat: props.flat,
162
+ ...btnDesignAttr.value,
161
163
  rounded: props.rounded,
162
- push: props.push,
163
164
  stretch: props.stretch,
164
- unelevated: props.unelevated,
165
165
  glossy: props.glossy,
166
166
  spread: props.spread
167
167
  }, getContent)
@@ -36,8 +36,7 @@
36
36
  "value": {
37
37
  "type": "Any",
38
38
  "desc": "Value of the option that will be used by component model",
39
- "required": true,
40
- "__exemption": [ "examples" ]
39
+ "required": true
41
40
  },
42
41
  "slot": {
43
42
  "type": "String",
@@ -46,8 +45,7 @@
46
45
  },
47
46
  "...props": {
48
47
  "type": "Any",
49
- "desc": "Any other QBtn props (including class and style)",
50
- "__exemption": [ "examples" ]
48
+ "desc": "Any other QBtn props (including class and style)"
51
49
  }
52
50
  },
53
51
  "examples": [
@@ -75,7 +75,6 @@
75
75
  "desc": "Side to stick navigation to",
76
76
  "default": "bottom/right",
77
77
  "values": [ "top", "right", "bottom", "left" ],
78
- "examples": [ "left" ],
79
78
  "category": "content"
80
79
  },
81
80
 
@@ -117,18 +116,15 @@
117
116
  "scope": {
118
117
  "index": {
119
118
  "type": "Number",
120
- "desc": "The 0-based index of corresponding slide",
121
- "__exemption": [ "examples" ]
119
+ "desc": "The 0-based index of corresponding slide"
122
120
  },
123
121
  "maxIndex": {
124
122
  "type": "Number",
125
- "desc": "The available number of slides",
126
- "__exemption": [ "examples" ]
123
+ "desc": "The available number of slides"
127
124
  },
128
125
  "name": {
129
126
  "type": "Any",
130
- "desc": "The name of the corresponding slide",
131
- "__exemption": [ "examples" ]
127
+ "desc": "The name of the corresponding slide"
132
128
  },
133
129
  "active": {
134
130
  "type": "Boolean",
@@ -136,8 +132,7 @@
136
132
  },
137
133
  "btnProps": {
138
134
  "type": "Object",
139
- "desc": "Default QBtn props that can be binded to your own QBtn",
140
- "__exemption": [ "examples" ]
135
+ "desc": "Default QBtn props that can be binded to your own QBtn"
141
136
  },
142
137
  "onClick": {
143
138
  "type": "Function",
@@ -13,7 +13,6 @@
13
13
  "bottom-right", "bottom-left",
14
14
  "top", "right", "bottom", "left"
15
15
  ],
16
- "examples": [ "top-right" ],
17
16
  "category": "position"
18
17
  },
19
18
 
@@ -127,7 +127,7 @@ export default function (type, getInner) {
127
127
  const attributes = computed(() => {
128
128
  const attrs = {
129
129
  tabindex: tabindex.value,
130
- role: 'checkbox',
130
+ role: type === 'toggle' ? 'switch' : 'checkbox',
131
131
  'aria-label': props.label,
132
132
  'aria-checked': isIndeterminate.value === true
133
133
  ? 'mixed'
@@ -118,8 +118,7 @@
118
118
  "value": {
119
119
  "type": "Any",
120
120
  "desc": "New model value",
121
- "required": true,
122
- "__exemption": [ "examples" ]
121
+ "required": true
123
122
  },
124
123
  "evt": {
125
124
  "extends": "evt",
@@ -102,16 +102,19 @@ export default createComponent({
102
102
  + (isDark.value === true ? ' q-chip--dark q-dark' : '')
103
103
  })
104
104
 
105
- const attributes = computed(() => (
106
- props.disable === true
105
+ const attributes = computed(() => {
106
+ const chip = props.disable === true
107
107
  ? { tabindex: -1, 'aria-disabled': 'true' }
108
- : {
109
- tabindex: props.tabindex || 0,
110
- role: 'button',
111
- 'aria-hidden': 'false',
112
- 'aria-label': props.removeAriaLabel || $q.lang.label.remove
113
- }
114
- ))
108
+ : { tabindex: props.tabindex || 0 }
109
+ const remove = {
110
+ ...chip,
111
+ role: 'button',
112
+ 'aria-hidden': 'false',
113
+ 'aria-label': props.removeAriaLabel || $q.lang.label.remove
114
+ }
115
+
116
+ return { chip, remove }
117
+ })
115
118
 
116
119
  function onKeyup (e) {
117
120
  e.keyCode === 13 /* ENTER */ && onClick(e)
@@ -169,7 +172,7 @@ export default createComponent({
169
172
  h(QIcon, {
170
173
  class: 'q-chip__icon q-chip__icon--remove cursor-pointer',
171
174
  name: removeIcon.value,
172
- ...attributes.value,
175
+ ...attributes.value.remove,
173
176
  onClick: onRemove,
174
177
  onKeyup: onRemove
175
178
  })
@@ -188,7 +191,7 @@ export default createComponent({
188
191
 
189
192
  isClickable.value === true && Object.assign(
190
193
  data,
191
- attributes.value,
194
+ attributes.value.chip,
192
195
  { onClick, onKeyup }
193
196
  )
194
197
 
@@ -10,7 +10,6 @@
10
10
  "type": "Number",
11
11
  "default": 0,
12
12
  "desc": "Current progress (must be between min/max)",
13
- "examples": [ 0, 100, 52.32 ],
14
13
  "category": "model"
15
14
  },
16
15
 
@@ -18,7 +17,6 @@
18
17
  "type": "Number",
19
18
  "default": 0,
20
19
  "desc": "Minimum value defining 'no progress' (must be lower than 'max')",
21
- "examples": [ 0, 100, 52.32 ],
22
20
  "category": "model"
23
21
  },
24
22
 
@@ -26,7 +24,6 @@
26
24
  "type": "Number",
27
25
  "default": 100,
28
26
  "desc": "Maximum value defining 100% progress made (must be higher than 'min')",
29
- "examples": [ 100, 52.32 ],
30
27
  "category": "model"
31
28
  },
32
29
 
@@ -64,7 +61,6 @@
64
61
  "type": "Number",
65
62
  "default": 0.2,
66
63
  "desc": "Thickness of progress arc as a ratio (0.0 < x < 1.0) of component size",
67
- "examples": [ 1, 0.3 ],
68
64
  "category": "style"
69
65
  },
70
66
 
@@ -72,7 +68,6 @@
72
68
  "type": "Number",
73
69
  "desc": "Angle to rotate progress arc by",
74
70
  "default": 0,
75
- "examples": [ 0, 40, 90 ],
76
71
  "category": "content"
77
72
  },
78
73
 
@@ -32,7 +32,6 @@
32
32
  "desc": "Forces a certain model format upon the model",
33
33
  "default": "auto",
34
34
  "values": [ "auto", "hex", "rgb", "hexa", "rgba" ],
35
- "examples": [ "hex" ],
36
35
  "category": "model"
37
36
  },
38
37
 
@@ -82,7 +82,7 @@ export default createComponent({
82
82
 
83
83
  emits: [
84
84
  ...useDatetimeEmits,
85
- 'range-start', 'range-end', 'navigation'
85
+ 'rangeStart', 'rangeEnd', 'navigation'
86
86
  ],
87
87
 
88
88
  setup (props, { slots, emit }) {
@@ -1391,7 +1391,7 @@ export default createComponent({
1391
1391
  finalHash: initHash
1392
1392
  }
1393
1393
 
1394
- emit('range-start', getShortDate(day))
1394
+ emit('rangeStart', getShortDate(day))
1395
1395
  }
1396
1396
  else {
1397
1397
  const
@@ -1404,7 +1404,7 @@ export default createComponent({
1404
1404
  editRange.value = null
1405
1405
  addToModel(initHash === finalHash ? day : { target: day, ...payload })
1406
1406
 
1407
- emit('range-end', {
1407
+ emit('rangeEnd', {
1408
1408
  from: getShortDate(payload.from),
1409
1409
  to: getShortDate(payload.to)
1410
1410
  })
@@ -210,20 +210,17 @@
210
210
  "year": {
211
211
  "type": "Number",
212
212
  "required": true,
213
- "desc": "The year of the date that the user has clicked/tapped on",
214
- "__exemption": [ "examples" ]
213
+ "desc": "The year of the date that the user has clicked/tapped on"
215
214
  },
216
215
  "month": {
217
216
  "type": "Number",
218
217
  "required": true,
219
- "desc": "The month of the date that the user has clicked/tapped on",
220
- "__exemption": [ "examples" ]
218
+ "desc": "The month of the date that the user has clicked/tapped on"
221
219
  },
222
220
  "day": {
223
221
  "type": "Number",
224
222
  "required": true,
225
- "desc": "The day of the month that the user has clicked/tapped on",
226
- "__exemption": [ "examples" ]
223
+ "desc": "The day of the month that the user has clicked/tapped on"
227
224
  },
228
225
  "from": {
229
226
  "type": "Object",
@@ -233,20 +230,17 @@
233
230
  "year": {
234
231
  "type": "Number",
235
232
  "required": true,
236
- "desc": "The year",
237
- "__exemption": [ "examples" ]
233
+ "desc": "The year"
238
234
  },
239
235
  "month": {
240
236
  "type": "Number",
241
237
  "required": true,
242
- "desc": "The month",
243
- "__exemption": [ "examples" ]
238
+ "desc": "The month"
244
239
  },
245
240
  "day": {
246
241
  "type": "Number",
247
242
  "required": true,
248
- "desc": "The day of month",
249
- "__exemption": [ "examples" ]
243
+ "desc": "The day of month"
250
244
  }
251
245
  }
252
246
  },
@@ -258,20 +252,17 @@
258
252
  "year": {
259
253
  "type": "Number",
260
254
  "required": true,
261
- "desc": "The year",
262
- "__exemption": [ "examples" ]
255
+ "desc": "The year"
263
256
  },
264
257
  "month": {
265
258
  "type": "Number",
266
259
  "required": true,
267
- "desc": "The month",
268
- "__exemption": [ "examples" ]
260
+ "desc": "The month"
269
261
  },
270
262
  "day": {
271
263
  "type": "Number",
272
264
  "required": true,
273
- "desc": "The day of month",
274
- "__exemption": [ "examples" ]
265
+ "desc": "The day of month"
275
266
  }
276
267
  }
277
268
  }
@@ -290,14 +281,12 @@
290
281
  "year": {
291
282
  "type": "Number",
292
283
  "required": true,
293
- "desc": "The year",
294
- "__exemption": [ "examples" ]
284
+ "desc": "The year"
295
285
  },
296
286
  "month": {
297
287
  "type": "Number",
298
288
  "required": true,
299
- "desc": "The month",
300
- "__exemption": [ "examples" ]
289
+ "desc": "The month"
301
290
  }
302
291
  }
303
292
  }
@@ -314,20 +303,17 @@
314
303
  "year": {
315
304
  "type": "Number",
316
305
  "required": true,
317
- "desc": "The year",
318
- "__exemption": [ "examples" ]
306
+ "desc": "The year"
319
307
  },
320
308
  "month": {
321
309
  "type": "Number",
322
310
  "required": true,
323
- "desc": "The month",
324
- "__exemption": [ "examples" ]
311
+ "desc": "The month"
325
312
  },
326
313
  "day": {
327
314
  "type": "Number",
328
315
  "required": true,
329
- "desc": "The day of month",
330
- "__exemption": [ "examples" ]
316
+ "desc": "The day of month"
331
317
  }
332
318
  }
333
319
  }
@@ -349,20 +335,17 @@
349
335
  "year": {
350
336
  "type": "Number",
351
337
  "required": true,
352
- "desc": "The year",
353
- "__exemption": [ "examples" ]
338
+ "desc": "The year"
354
339
  },
355
340
  "month": {
356
341
  "type": "Number",
357
342
  "required": true,
358
- "desc": "The month",
359
- "__exemption": [ "examples" ]
343
+ "desc": "The month"
360
344
  },
361
345
  "day": {
362
346
  "type": "Number",
363
347
  "required": true,
364
- "desc": "The day of month",
365
- "__exemption": [ "examples" ]
348
+ "desc": "The day of month"
366
349
  }
367
350
  }
368
351
  },
@@ -374,20 +357,17 @@
374
357
  "year": {
375
358
  "type": "Number",
376
359
  "required": true,
377
- "desc": "The year",
378
- "__exemption": [ "examples" ]
360
+ "desc": "The year"
379
361
  },
380
362
  "month": {
381
363
  "type": "Number",
382
364
  "required": true,
383
- "desc": "The month",
384
- "__exemption": [ "examples" ]
365
+ "desc": "The month"
385
366
  },
386
367
  "day": {
387
368
  "type": "Number",
388
369
  "required": true,
389
- "desc": "The day of month",
390
- "__exemption": [ "examples" ]
370
+ "desc": "The day of month"
391
371
  }
392
372
  }
393
373
  }
@@ -435,13 +415,11 @@
435
415
  "params": {
436
416
  "year": {
437
417
  "type": "Number",
438
- "desc": "The year",
439
- "__exemption": [ "examples" ]
418
+ "desc": "The year"
440
419
  },
441
420
  "month": {
442
421
  "type": "Number",
443
- "desc": "The month",
444
- "__exemption": [ "examples" ]
422
+ "desc": "The month"
445
423
  }
446
424
  }
447
425
  },
@@ -455,18 +433,15 @@
455
433
  "definition": {
456
434
  "year": {
457
435
  "type": "Number",
458
- "desc": "The year",
459
- "__exemption": [ "examples" ]
436
+ "desc": "The year"
460
437
  },
461
438
  "month": {
462
439
  "type": "Number",
463
- "desc": "The month",
464
- "__exemption": [ "examples" ]
440
+ "desc": "The month"
465
441
  },
466
442
  "day": {
467
443
  "type": "Number",
468
- "desc": "The day of month",
469
- "__exemption": [ "examples" ]
444
+ "desc": "The day of month"
470
445
  }
471
446
  }
472
447
  },
@@ -476,18 +451,15 @@
476
451
  "definition": {
477
452
  "year": {
478
453
  "type": "Number",
479
- "desc": "The year",
480
- "__exemption": [ "examples" ]
454
+ "desc": "The year"
481
455
  },
482
456
  "month": {
483
457
  "type": "Number",
484
- "desc": "The month",
485
- "__exemption": [ "examples" ]
458
+ "desc": "The month"
486
459
  },
487
460
  "day": {
488
461
  "type": "Number",
489
- "desc": "The day of month",
490
- "__exemption": [ "examples" ]
462
+ "desc": "The day of month"
491
463
  }
492
464
  }
493
465
  }