quasar 2.2.2 → 2.3.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 (290) hide show
  1. package/dist/api/BottomSheet.json +17 -2
  2. package/dist/api/Dialog.json +17 -2
  3. package/dist/api/LocalStorage.json +8 -0
  4. package/dist/api/QCircularProgress.json +14 -0
  5. package/dist/api/QDate.json +46 -0
  6. package/dist/api/QEditor.json +7 -2
  7. package/dist/api/QFooter.json +1 -1
  8. package/dist/api/QHeader.json +1 -1
  9. package/dist/api/QIntersection.json +14 -0
  10. package/dist/api/QLinearProgress.json +14 -0
  11. package/dist/api/QRouteTab.json +1 -24
  12. package/dist/api/QScrollArea.json +3 -0
  13. package/dist/api/QSelect.json +62 -0
  14. package/dist/api/QSkeleton.json +1 -1
  15. package/dist/api/QTable.json +62 -5
  16. package/dist/api/QTree.json +6 -0
  17. package/dist/api/QUploader.json +81 -1
  18. package/dist/api/SessionStorage.json +8 -0
  19. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  20. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  21. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  22. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  23. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  24. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  25. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  26. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  27. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  28. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  29. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  30. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  31. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  32. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  33. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  34. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  35. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  36. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  37. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  38. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  39. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  40. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  41. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  42. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  43. package/dist/icon-set/svg-mdi-v4.umd.prod.js +1 -1
  44. package/dist/icon-set/svg-mdi-v5.umd.prod.js +1 -1
  45. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  46. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  47. package/dist/icon-set/themify.umd.prod.js +1 -1
  48. package/dist/lang/ar.umd.prod.js +1 -1
  49. package/dist/lang/az-Latn.umd.prod.js +1 -1
  50. package/dist/lang/bg.umd.prod.js +1 -1
  51. package/dist/lang/bn.umd.prod.js +1 -1
  52. package/dist/lang/ca.umd.prod.js +1 -1
  53. package/dist/lang/cs.umd.prod.js +1 -1
  54. package/dist/lang/da.umd.prod.js +1 -1
  55. package/dist/lang/de.umd.prod.js +1 -1
  56. package/dist/lang/el.umd.prod.js +1 -1
  57. package/dist/lang/en-GB.umd.prod.js +1 -1
  58. package/dist/lang/en-US.umd.prod.js +1 -1
  59. package/dist/lang/eo.umd.prod.js +1 -1
  60. package/dist/lang/es.umd.prod.js +1 -1
  61. package/dist/lang/et.umd.prod.js +1 -1
  62. package/dist/lang/fa-IR.umd.prod.js +1 -1
  63. package/dist/lang/fa.umd.prod.js +1 -1
  64. package/dist/lang/fi.umd.prod.js +1 -1
  65. package/dist/lang/fr.umd.prod.js +1 -1
  66. package/dist/lang/gn.umd.prod.js +1 -1
  67. package/dist/lang/he.umd.prod.js +1 -1
  68. package/dist/lang/hr.umd.prod.js +1 -1
  69. package/dist/lang/hu.umd.prod.js +1 -1
  70. package/dist/lang/id.umd.prod.js +1 -1
  71. package/dist/lang/is.umd.prod.js +1 -1
  72. package/dist/lang/it.umd.prod.js +1 -1
  73. package/dist/lang/ja.umd.prod.js +1 -1
  74. package/dist/lang/km.umd.prod.js +1 -1
  75. package/dist/lang/ko-KR.umd.prod.js +1 -1
  76. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  77. package/dist/lang/lt.umd.prod.js +1 -1
  78. package/dist/lang/lu.umd.prod.js +1 -1
  79. package/dist/lang/lv.umd.prod.js +1 -1
  80. package/dist/lang/ml.umd.prod.js +1 -1
  81. package/dist/lang/ms.umd.prod.js +1 -1
  82. package/dist/lang/nb-NO.umd.prod.js +1 -1
  83. package/dist/lang/nl.umd.prod.js +1 -1
  84. package/dist/lang/pl.umd.prod.js +1 -1
  85. package/dist/lang/pt-BR.umd.prod.js +1 -1
  86. package/dist/lang/pt.umd.prod.js +1 -1
  87. package/dist/lang/ro.umd.prod.js +1 -1
  88. package/dist/lang/ru.umd.prod.js +1 -1
  89. package/dist/lang/sk.umd.prod.js +1 -1
  90. package/dist/lang/sl.umd.prod.js +1 -1
  91. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  92. package/dist/lang/sr.umd.prod.js +1 -1
  93. package/dist/lang/sv.umd.prod.js +1 -1
  94. package/dist/lang/ta.umd.prod.js +1 -1
  95. package/dist/lang/th.umd.prod.js +1 -1
  96. package/dist/lang/tr.umd.prod.js +1 -1
  97. package/dist/lang/ug.umd.prod.js +1 -1
  98. package/dist/lang/uk.umd.prod.js +1 -1
  99. package/dist/lang/vi.umd.prod.js +1 -1
  100. package/dist/lang/zh-CN.umd.prod.js +1 -1
  101. package/dist/lang/zh-TW.umd.prod.js +1 -1
  102. package/dist/quasar.cjs.prod.js +2 -2
  103. package/dist/quasar.css +57 -9
  104. package/dist/quasar.esm.prod.js +2 -2
  105. package/dist/quasar.prod.css +1 -1
  106. package/dist/quasar.rtl.css +124 -9
  107. package/dist/quasar.rtl.prod.css +1 -1
  108. package/dist/quasar.sass +47 -7
  109. package/dist/quasar.umd.js +356 -267
  110. package/dist/quasar.umd.prod.js +2 -2
  111. package/dist/ssr-directives/Morph.js +1 -1
  112. package/dist/types/index.d.ts +374 -141
  113. package/dist/vetur/quasar-attributes.json +18 -2
  114. package/dist/vetur/quasar-tags.json +6 -2
  115. package/dist/web-types/web-types.json +44 -3
  116. package/package.json +4 -1
  117. package/src/api.extends.json +7 -0
  118. package/src/body.js +14 -4
  119. package/src/components/ajax-bar/QAjaxBar.js +3 -2
  120. package/src/components/avatar/QAvatar.js +3 -2
  121. package/src/components/badge/QBadge.js +3 -2
  122. package/src/components/banner/QBanner.js +3 -2
  123. package/src/components/bar/QBar.js +3 -2
  124. package/src/components/breadcrumbs/QBreadcrumbs.js +3 -2
  125. package/src/components/breadcrumbs/QBreadcrumbsEl.js +3 -2
  126. package/src/components/btn/QBtn.js +3 -2
  127. package/src/components/btn-dropdown/QBtnDropdown.js +3 -2
  128. package/src/components/btn-group/QBtnGroup.js +3 -2
  129. package/src/components/btn-toggle/QBtnToggle.js +3 -2
  130. package/src/components/card/QCard.js +3 -2
  131. package/src/components/card/QCardActions.js +3 -2
  132. package/src/components/card/QCardSection.js +3 -2
  133. package/src/components/carousel/QCarousel.js +3 -2
  134. package/src/components/carousel/QCarouselControl.js +3 -2
  135. package/src/components/carousel/QCarouselSlide.js +3 -2
  136. package/src/components/chat/QChatMessage.js +3 -2
  137. package/src/components/checkbox/QCheckbox.js +3 -2
  138. package/src/components/chip/QChip.js +3 -2
  139. package/src/components/circular-progress/QCircularProgress.js +9 -3
  140. package/src/components/circular-progress/QCircularProgress.json +6 -0
  141. package/src/components/color/QColor.js +3 -2
  142. package/src/components/date/QDate.js +5 -3
  143. package/src/components/date/QDate.json +34 -0
  144. package/src/components/dialog/QDialog.js +3 -2
  145. package/src/components/dialog-bottom-sheet/BottomSheet.js +3 -2
  146. package/src/components/dialog-plugin/DialogPlugin.js +3 -2
  147. package/src/components/drawer/QDrawer.js +3 -2
  148. package/src/components/editor/QEditor.js +3 -2
  149. package/src/components/editor/QEditor.json +6 -2
  150. package/src/components/expansion-item/QExpansionItem.js +3 -2
  151. package/src/components/fab/QFab.js +3 -2
  152. package/src/components/fab/QFabAction.js +3 -2
  153. package/src/components/field/QField.js +3 -3
  154. package/src/components/file/QFile.js +3 -2
  155. package/src/components/footer/QFooter.js +3 -2
  156. package/src/components/footer/QFooter.json +1 -1
  157. package/src/components/form/QForm.js +3 -2
  158. package/src/components/header/QHeader.js +3 -2
  159. package/src/components/header/QHeader.json +1 -1
  160. package/src/components/icon/QIcon.js +4 -2
  161. package/src/components/img/QImg.js +5 -2
  162. package/src/components/infinite-scroll/QInfiniteScroll.js +50 -32
  163. package/src/components/inner-loading/QInnerLoading.js +3 -2
  164. package/src/components/input/QInput.js +3 -2
  165. package/src/components/intersection/QIntersection.js +12 -3
  166. package/src/components/intersection/QIntersection.json +9 -0
  167. package/src/components/item/QItem.js +3 -2
  168. package/src/components/item/QItemLabel.js +3 -2
  169. package/src/components/item/QItemSection.js +3 -2
  170. package/src/components/item/QList.js +3 -3
  171. package/src/components/knob/QKnob.js +3 -2
  172. package/src/components/layout/QLayout.js +3 -2
  173. package/src/components/linear-progress/QLinearProgress.js +13 -3
  174. package/src/components/linear-progress/QLinearProgress.json +6 -0
  175. package/src/components/linear-progress/QLinearProgress.sass +2 -1
  176. package/src/components/markup-table/QMarkupTable.js +3 -2
  177. package/src/components/menu/QMenu.js +4 -3
  178. package/src/components/no-ssr/QNoSsr.js +3 -2
  179. package/src/components/option-group/QOptionGroup.js +4 -2
  180. package/src/components/page/QPage.js +3 -2
  181. package/src/components/page/QPageContainer.js +3 -2
  182. package/src/components/page-scroller/QPageScroller.js +4 -2
  183. package/src/components/page-sticky/QPageSticky.js +2 -3
  184. package/src/components/pagination/QPagination.js +3 -2
  185. package/src/components/parallax/QParallax.js +3 -2
  186. package/src/components/popup-edit/QPopupEdit.js +3 -2
  187. package/src/components/popup-proxy/QPopupProxy.js +10 -17
  188. package/src/components/pull-to-refresh/QPullToRefresh.js +3 -2
  189. package/src/components/radio/QRadio.js +3 -2
  190. package/src/components/range/QRange.js +3 -2
  191. package/src/components/rating/QRating.js +6 -5
  192. package/src/components/resize-observer/QResizeObserver.js +3 -2
  193. package/src/components/responsive/QResponsive.js +3 -2
  194. package/src/components/scroll-area/QScrollArea.js +3 -2
  195. package/src/components/scroll-area/QScrollArea.json +4 -1
  196. package/src/components/scroll-observer/QScrollObserver.js +3 -2
  197. package/src/components/select/QSelect.js +17 -22
  198. package/src/components/select/QSelect.json +47 -0
  199. package/src/components/separator/QSeparator.js +4 -2
  200. package/src/components/skeleton/QSkeleton.js +3 -2
  201. package/src/components/skeleton/QSkeleton.json +1 -4
  202. package/src/components/slide-item/QSlideItem.js +3 -2
  203. package/src/components/slide-transition/QSlideTransition.js +4 -2
  204. package/src/components/slider/QSlider.js +3 -2
  205. package/src/components/slider/use-slider.js +3 -3
  206. package/src/components/space/QSpace.js +4 -2
  207. package/src/components/spinner/QSpinner.js +4 -2
  208. package/src/components/spinner/QSpinnerAudio.js +4 -2
  209. package/src/components/spinner/QSpinnerBall.js +4 -2
  210. package/src/components/spinner/QSpinnerBars.js +4 -2
  211. package/src/components/spinner/QSpinnerBox.js +4 -2
  212. package/src/components/spinner/QSpinnerClock.js +4 -2
  213. package/src/components/spinner/QSpinnerComment.js +4 -2
  214. package/src/components/spinner/QSpinnerCube.js +4 -2
  215. package/src/components/spinner/QSpinnerDots.js +4 -2
  216. package/src/components/spinner/QSpinnerFacebook.js +4 -2
  217. package/src/components/spinner/QSpinnerGears.js +4 -2
  218. package/src/components/spinner/QSpinnerGrid.js +4 -2
  219. package/src/components/spinner/QSpinnerHearts.js +4 -2
  220. package/src/components/spinner/QSpinnerHourglass.js +4 -2
  221. package/src/components/spinner/QSpinnerInfinity.js +4 -2
  222. package/src/components/spinner/QSpinnerIos.js +4 -2
  223. package/src/components/spinner/QSpinnerOrbit.js +4 -2
  224. package/src/components/spinner/QSpinnerOval.js +4 -2
  225. package/src/components/spinner/QSpinnerPie.js +4 -2
  226. package/src/components/spinner/QSpinnerPuff.js +4 -2
  227. package/src/components/spinner/QSpinnerRadio.js +4 -2
  228. package/src/components/spinner/QSpinnerRings.js +4 -2
  229. package/src/components/spinner/QSpinnerTail.js +4 -2
  230. package/src/components/splitter/QSplitter.js +3 -2
  231. package/src/components/stepper/QStep.js +3 -2
  232. package/src/components/stepper/QStepper.js +3 -2
  233. package/src/components/stepper/QStepperNavigation.js +3 -2
  234. package/src/components/stepper/StepHeader.js +4 -2
  235. package/src/components/tab-panels/QTabPanel.js +4 -2
  236. package/src/components/tab-panels/QTabPanels.js +3 -2
  237. package/src/components/table/QTable.js +4 -2
  238. package/src/components/table/QTable.json +51 -5
  239. package/src/components/table/QTd.js +3 -2
  240. package/src/components/table/QTh.js +3 -2
  241. package/src/components/table/QTr.js +3 -2
  242. package/src/components/table/table-pagination.js +2 -2
  243. package/src/components/tabs/QRouteTab.js +4 -2
  244. package/src/components/tabs/QRouteTab.json +1 -23
  245. package/src/components/tabs/QTab.js +3 -3
  246. package/src/components/tabs/QTabs.js +4 -3
  247. package/src/components/time/QTime.js +9 -7
  248. package/src/components/timeline/QTimeline.js +3 -2
  249. package/src/components/timeline/QTimelineEntry.js +3 -2
  250. package/src/components/toggle/QToggle.js +5 -2
  251. package/src/components/toolbar/QToolbar.js +3 -2
  252. package/src/components/toolbar/QToolbarTitle.js +3 -2
  253. package/src/components/tooltip/QTooltip.js +3 -2
  254. package/src/components/tree/QTree.js +12 -7
  255. package/src/components/tree/QTree.json +5 -0
  256. package/src/components/tree/QTree.sass +52 -4
  257. package/src/components/uploader/QUploaderAddTrigger.js +3 -2
  258. package/src/components/uploader/uploader-core.js +2 -7
  259. package/src/components/uploader/xhr-uploader-plugin.json +97 -1
  260. package/src/components/video/QVideo.js +4 -2
  261. package/src/components/virtual-scroll/QVirtualScroll.js +3 -2
  262. package/src/components/virtual-scroll/use-virtual-scroll.js +17 -1
  263. package/src/composables/private/use-field.js +2 -2
  264. package/src/composables/private/use-file.js +8 -0
  265. package/src/composables/private/use-model-toggle.js +1 -1
  266. package/src/composables/private/use-refocus-target.js +12 -3
  267. package/src/composables/use-dialog-plugin-component.js +6 -1
  268. package/src/css/core/transitions.sass +3 -1
  269. package/src/css/normalize.sass +0 -7
  270. package/src/directives/ClosePopup.js +3 -1
  271. package/src/directives/Intersection.js +3 -1
  272. package/src/directives/Morph.js +4 -1
  273. package/src/directives/Mutation.js +3 -1
  274. package/src/directives/Ripple.js +3 -1
  275. package/src/directives/Scroll.js +3 -1
  276. package/src/directives/ScrollFire.js +3 -1
  277. package/src/directives/TouchHold.js +4 -1
  278. package/src/directives/TouchPan.js +4 -1
  279. package/src/directives/TouchRepeat.js +4 -1
  280. package/src/directives/TouchSwipe.js +4 -1
  281. package/src/install-quasar.js +1 -0
  282. package/src/plugins/Notify.js +4 -3
  283. package/src/utils/create-uploader-component.js +9 -7
  284. package/src/utils/date.js +1 -1
  285. package/src/utils/private/create.js +4 -0
  286. package/src/utils/private/get-emits-object.js +11 -0
  287. package/src/utils/private/global-dialog.json +10 -2
  288. package/src/utils/private/vm.js +3 -3
  289. package/src/utils/private/web-storage.json +10 -0
  290. package/wrappers/index.js +4 -0
@@ -1027,6 +1027,10 @@
1027
1027
  "type": "boolean",
1028
1028
  "description": "No animation when model changes"
1029
1029
  },
1030
+ "q-circular-progress/animation-speed": {
1031
+ "type": "string|number",
1032
+ "description": "Animation speed (in milliseconds, without unit)"
1033
+ },
1030
1034
  "q-color/name": {
1031
1035
  "type": "string",
1032
1036
  "description": "Used to specify the name of the control; Useful if dealing with forms submitted directly to a URL"
@@ -2132,7 +2136,7 @@
2132
2136
  "description": "Adds a default shadow to the footer"
2133
2137
  },
2134
2138
  "q-footer/height-hint": {
2135
- "type": "number|string ",
2139
+ "type": "number|string",
2136
2140
  "description": "When using SSR, you can optionally hint of the height (in pixels) of the QFooter"
2137
2141
  },
2138
2142
  "q-form/autofocus": {
@@ -2172,7 +2176,7 @@
2172
2176
  "description": "Adds a default shadow to the header"
2173
2177
  },
2174
2178
  "q-header/height-hint": {
2175
- "type": "number|string ",
2179
+ "type": "number|string",
2176
2180
  "description": "When using SSR, you can optionally hint of the height (in pixels) of the QHeader"
2177
2181
  },
2178
2182
  "q-icon/size": {
@@ -2575,6 +2579,10 @@
2575
2579
  "type": "string",
2576
2580
  "description": "One of Quasar's embedded transitions"
2577
2581
  },
2582
+ "q-intersection/transition-duration": {
2583
+ "type": "string|number",
2584
+ "description": "Transition duration (in milliseconds, without unit)"
2585
+ },
2578
2586
  "q-intersection/disable": {
2579
2587
  "type": "boolean",
2580
2588
  "description": "Disable visibility observable (content will remain as it was, visible or hidden)"
@@ -2819,6 +2827,10 @@
2819
2827
  "type": "boolean",
2820
2828
  "description": "No transition when model changes"
2821
2829
  },
2830
+ "q-linear-progress/animation-speed": {
2831
+ "type": "string|number",
2832
+ "description": "Animation speed (in milliseconds, without unit)"
2833
+ },
2822
2834
  "q-markup-table/dense": {
2823
2835
  "type": "boolean",
2824
2836
  "description": "Dense mode; occupies less space"
@@ -5347,6 +5359,10 @@
5347
5359
  "type": "string",
5348
5360
  "description": "Color name for selected nodes (from the Quasar Color Palette)"
5349
5361
  },
5362
+ "q-tree/dense": {
5363
+ "type": "boolean",
5364
+ "description": "Dense mode; occupies less space"
5365
+ },
5350
5366
  "q-tree/dark": {
5351
5367
  "type": "boolean",
5352
5368
  "description": "Notify the component that the background is a dark color"
@@ -357,7 +357,8 @@
357
357
  "indeterminate",
358
358
  "show-value",
359
359
  "reverse",
360
- "instant-feedback"
360
+ "instant-feedback",
361
+ "animation-speed"
361
362
  ],
362
363
  "description": ""
363
364
  },
@@ -844,6 +845,7 @@
844
845
  "margin",
845
846
  "threshold",
846
847
  "transition",
848
+ "transition-duration",
847
849
  "disable"
848
850
  ],
849
851
  "description": ""
@@ -939,7 +941,8 @@
939
941
  "indeterminate",
940
942
  "query",
941
943
  "rounded",
942
- "instant-feedback"
944
+ "instant-feedback",
945
+ "animation-speed"
943
946
  ],
944
947
  "description": ""
945
948
  },
@@ -1924,6 +1927,7 @@
1924
1927
  "control-color",
1925
1928
  "text-color",
1926
1929
  "selected-color",
1930
+ "dense",
1927
1931
  "dark",
1928
1932
  "icon",
1929
1933
  "tick-strategy",
@@ -2,7 +2,7 @@
2
2
  "$schema": "",
3
3
  "framework": "vue",
4
4
  "name": "quasar",
5
- "version": "2.2.2",
5
+ "version": "2.3.1",
6
6
  "contributions": {
7
7
  "html": {
8
8
  "types-syntax": "typescript",
@@ -3155,6 +3155,16 @@
3155
3155
  "description": "No animation when model changes",
3156
3156
  "doc-url": "https://v2.quasar.dev/vue-components/circular-progress",
3157
3157
  "type": "boolean"
3158
+ },
3159
+ {
3160
+ "name": "animation-speed",
3161
+ "value": {
3162
+ "kind": "expression",
3163
+ "type": "string|number"
3164
+ },
3165
+ "description": "Animation speed (in milliseconds, without unit)\n\nExamples:\n500\n1200",
3166
+ "doc-url": "https://v2.quasar.dev/vue-components/circular-progress",
3167
+ "default": "600"
3158
3168
  }
3159
3169
  ],
3160
3170
  "slots": [
@@ -6705,7 +6715,7 @@
6705
6715
  "name": "height-hint",
6706
6716
  "value": {
6707
6717
  "kind": "expression",
6708
- "type": "number|String "
6718
+ "type": "number|string"
6709
6719
  },
6710
6720
  "description": "When using SSR, you can optionally hint of the height (in pixels) of the QFooter\n\nExamples:\n150",
6711
6721
  "doc-url": "https://v2.quasar.dev/layout/header-and-footer",
@@ -6897,7 +6907,7 @@
6897
6907
  "name": "height-hint",
6898
6908
  "value": {
6899
6909
  "kind": "expression",
6900
- "type": "number|String "
6910
+ "type": "number|string"
6901
6911
  },
6902
6912
  "description": "When using SSR, you can optionally hint of the height (in pixels) of the QHeader\n\nExamples:\n150",
6903
6913
  "doc-url": "https://v2.quasar.dev/layout/header-and-footer",
@@ -8140,6 +8150,16 @@
8140
8150
  "description": "One of Quasar's embedded transitions\n\nExamples:\nfade\nslide-down",
8141
8151
  "doc-url": "https://v2.quasar.dev/vue-components/intersection"
8142
8152
  },
8153
+ {
8154
+ "name": "transition-duration",
8155
+ "value": {
8156
+ "kind": "expression",
8157
+ "type": "string|number"
8158
+ },
8159
+ "description": "Transition duration (in milliseconds, without unit)\n\nExamples:\n500\n1200",
8160
+ "doc-url": "https://v2.quasar.dev/vue-components/intersection",
8161
+ "default": "300"
8162
+ },
8143
8163
  {
8144
8164
  "name": "disable",
8145
8165
  "value": {
@@ -8952,6 +8972,16 @@
8952
8972
  "description": "No transition when model changes",
8953
8973
  "doc-url": "https://v2.quasar.dev/vue-components/linear-progress",
8954
8974
  "type": "boolean"
8975
+ },
8976
+ {
8977
+ "name": "animation-speed",
8978
+ "value": {
8979
+ "kind": "expression",
8980
+ "type": "string|number"
8981
+ },
8982
+ "description": "Animation speed (in milliseconds, without unit)\n\nExamples:\n500\n1200",
8983
+ "doc-url": "https://v2.quasar.dev/vue-components/linear-progress",
8984
+ "default": "300"
8955
8985
  }
8956
8986
  ],
8957
8987
  "slots": [
@@ -11517,6 +11547,7 @@
11517
11547
  {
11518
11548
  "name": "info",
11519
11549
  "type": "object",
11550
+ "description": "An object containing scroll information",
11520
11551
  "doc-url": "https://v2.quasar.dev/vue-components/scroll-area"
11521
11552
  }
11522
11553
  ],
@@ -17427,6 +17458,16 @@
17427
17458
  "description": "Color name for selected nodes (from the Quasar Color Palette)\n\nExamples:\nprimary\nteal-10",
17428
17459
  "doc-url": "https://v2.quasar.dev/vue-components/tree"
17429
17460
  },
17461
+ {
17462
+ "name": "dense",
17463
+ "value": {
17464
+ "kind": "expression",
17465
+ "type": "boolean"
17466
+ },
17467
+ "description": "Dense mode; occupies less space",
17468
+ "doc-url": "https://v2.quasar.dev/vue-components/tree",
17469
+ "type": "boolean"
17470
+ },
17430
17471
  {
17431
17472
  "name": "dark",
17432
17473
  "value": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "quasar",
3
- "version": "2.2.2",
3
+ "version": "2.3.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,6 +67,8 @@
67
67
  "@rollup/plugin-node-resolve": "^11.2.1",
68
68
  "@rollup/plugin-replace": "^2.3.3",
69
69
  "babel-preset-es2015-rollup": "^3.0.0",
70
+ "cli-highlight": "^2.1.11",
71
+ "diff": "^5.0.0",
70
72
  "eslint": "^7.4.0",
71
73
  "eslint-config-standard": "^16.0.2",
72
74
  "eslint-friendly-formatter": "^4.0.1",
@@ -75,6 +77,7 @@
75
77
  "eslint-plugin-promise": "^4.2.1",
76
78
  "eslint-plugin-vue": "^7.0.0",
77
79
  "eslint-webpack-plugin": "^2.4.1",
80
+ "fast-glob": "^3.2.7",
78
81
  "json-beautify": "^1.1.1",
79
82
  "module-alias": "^2.2.2",
80
83
  "prettier": "^2.4.1",
@@ -95,6 +95,13 @@
95
95
  "category": "transition"
96
96
  },
97
97
 
98
+ "animation-speed": {
99
+ "type": [ "String", "Number" ],
100
+ "desc": "Animation speed (in milliseconds, without unit)",
101
+ "examples": [ 500, "1200" ],
102
+ "category": "style"
103
+ },
104
+
98
105
  "model-value": {
99
106
  "desc": "Model of the component; Either use this property (along with a listener for 'update:model-value' event) OR use v-model directive",
100
107
  "required": true,
package/src/body.js CHANGED
@@ -82,12 +82,18 @@ export default {
82
82
  }
83
83
 
84
84
  ssrContext._meta.bodyClasses += cls.join(' ')
85
- return
86
- }
87
85
 
88
- const { $q } = opts
86
+ const brand = $q.config.brand
87
+ if (brand !== void 0) {
88
+ const vars = Object.keys(brand)
89
+ .map(key => `--q-${ key }:${ brand[ key ] };`)
90
+ .join('')
91
+
92
+ ssrContext._meta.endingHeadTags += `<style>:root{${ vars }}</style>`
93
+ }
89
94
 
90
- $q.config.brand !== void 0 && setColors($q.config.brand)
95
+ return
96
+ }
91
97
 
92
98
  if (this.__installed === true) { return }
93
99
 
@@ -95,6 +101,10 @@ export default {
95
101
  applyClientSsrCorrections()
96
102
  }
97
103
  else {
104
+ const { $q } = opts
105
+
106
+ $q.config.brand !== void 0 && setColors($q.config.brand)
107
+
98
108
  const cls = getBodyClasses(client, $q.config)
99
109
  document.body.classList.add.apply(document.body.classList, cls)
100
110
  }
@@ -1,5 +1,6 @@
1
- import { h, defineComponent, ref, computed, onMounted, onBeforeUnmount, getCurrentInstance } from 'vue'
1
+ import { h, ref, computed, onMounted, onBeforeUnmount, getCurrentInstance } from 'vue'
2
2
 
3
+ import { createComponent } from '../../utils/private/create.js'
3
4
  import { between } from '../../utils/format.js'
4
5
 
5
6
  const
@@ -74,7 +75,7 @@ function restoreAjax (start, stop) {
74
75
  }
75
76
  }
76
77
 
77
- export default defineComponent({
78
+ export default createComponent({
78
79
  name: 'QAjaxBar',
79
80
 
80
81
  props: {
@@ -1,12 +1,13 @@
1
- import { h, defineComponent, computed } from 'vue'
1
+ import { h, computed } from 'vue'
2
2
 
3
3
  import QIcon from '../icon/QIcon.js'
4
4
 
5
5
  import useSize, { useSizeProps } from '../../composables/private/use-size.js'
6
6
 
7
+ import { createComponent } from '../../utils/private/create.js'
7
8
  import { hMergeSlotSafely } from '../../utils/private/render.js'
8
9
 
9
- export default defineComponent({
10
+ export default createComponent({
10
11
  name: 'QAvatar',
11
12
 
12
13
  props: {
@@ -1,10 +1,11 @@
1
- import { h, defineComponent, computed } from 'vue'
1
+ import { h, computed } from 'vue'
2
2
 
3
+ import { createComponent } from '../../utils/private/create.js'
3
4
  import { hSlot } from '../../utils/private/render.js'
4
5
 
5
6
  const alignValues = [ 'top', 'middle', 'bottom' ]
6
7
 
7
- export default defineComponent({
8
+ export default createComponent({
8
9
  name: 'QBadge',
9
10
 
10
11
  props: {
@@ -1,10 +1,11 @@
1
- import { h, defineComponent, computed, getCurrentInstance } from 'vue'
1
+ import { h, computed, getCurrentInstance } from 'vue'
2
2
 
3
+ import { createComponent } from '../../utils/private/create.js'
3
4
  import useDark, { useDarkProps } from '../../composables/private/use-dark.js'
4
5
 
5
6
  import { hSlot } from '../../utils/private/render.js'
6
7
 
7
- export default defineComponent({
8
+ export default createComponent({
8
9
  name: 'QBanner',
9
10
 
10
11
  props: {
@@ -1,10 +1,11 @@
1
- import { h, defineComponent, computed, getCurrentInstance } from 'vue'
1
+ import { h, computed, getCurrentInstance } from 'vue'
2
2
 
3
3
  import useDark, { useDarkProps } from '../../composables/private/use-dark.js'
4
4
 
5
+ import { createComponent } from '../../utils/private/create.js'
5
6
  import { hSlot } from '../../utils/private/render.js'
6
7
 
7
- export default defineComponent({
8
+ export default createComponent({
8
9
  name: 'QBar',
9
10
 
10
11
  props: {
@@ -1,11 +1,12 @@
1
- import { h, defineComponent, computed } from 'vue'
1
+ import { h, computed } from 'vue'
2
2
 
3
3
  import useAlign, { useAlignProps } from '../../composables/private/use-align.js'
4
4
 
5
+ import { createComponent } from '../../utils/private/create.js'
5
6
  import { hSlot } from '../../utils/private/render.js'
6
7
  import { getNormalizedVNodes } from '../../utils/private/vm.js'
7
8
 
8
- export default defineComponent({
9
+ export default createComponent({
9
10
  name: 'QBreadcrumbs',
10
11
 
11
12
  props: {
@@ -1,11 +1,12 @@
1
- import { h, defineComponent, computed } from 'vue'
1
+ import { h, computed } from 'vue'
2
2
 
3
3
  import QIcon from '../icon/QIcon.js'
4
4
 
5
+ import { createComponent } from '../../utils/private/create.js'
5
6
  import { hMergeSlot } from '../../utils/private/render.js'
6
7
  import useRouterLink, { useRouterLinkProps } from '../../composables/private/use-router-link.js'
7
8
 
8
- export default defineComponent({
9
+ export default createComponent({
9
10
  name: 'QBreadcrumbsEl',
10
11
 
11
12
  props: {
@@ -1,4 +1,4 @@
1
- import { h, defineComponent, ref, computed, Transition, onBeforeUnmount, withDirectives, getCurrentInstance } from 'vue'
1
+ import { h, ref, computed, Transition, onBeforeUnmount, withDirectives, getCurrentInstance } from 'vue'
2
2
 
3
3
  import QIcon from '../icon/QIcon.js'
4
4
  import QSpinner from '../spinner/QSpinner.js'
@@ -7,6 +7,7 @@ import Ripple from '../../directives/Ripple.js'
7
7
 
8
8
  import useBtn, { useBtnProps } from './use-btn.js'
9
9
 
10
+ import { createComponent } from '../../utils/private/create.js'
10
11
  import { hMergeSlot } from '../../utils/private/render.js'
11
12
  import { stop, prevent, stopAndPrevent, listenOpts } from '../../utils/event.js'
12
13
  import { isKeyCode } from '../../utils/private/key-composition.js'
@@ -18,7 +19,7 @@ let
18
19
  keyboardTarget = null,
19
20
  mouseTarget = null
20
21
 
21
- export default defineComponent({
22
+ export default createComponent({
22
23
  name: 'QBtn',
23
24
 
24
25
  props: {
@@ -1,4 +1,4 @@
1
- import { h, defineComponent, ref, computed, watch, onMounted, getCurrentInstance } from 'vue'
1
+ import { h, ref, computed, watch, onMounted, getCurrentInstance } from 'vue'
2
2
 
3
3
  import QIcon from '../icon/QIcon.js'
4
4
  import QBtn from '../btn/QBtn.js'
@@ -7,10 +7,11 @@ import QMenu from '../menu/QMenu.js'
7
7
 
8
8
  import { useBtnProps } from '../btn/use-btn.js'
9
9
 
10
+ import { createComponent } from '../../utils/private/create.js'
10
11
  import { stop } from '../../utils/event.js'
11
12
  import { hSlot } from '../../utils/private/render.js'
12
13
 
13
- export default defineComponent({
14
+ export default createComponent({
14
15
  name: 'QBtnDropdown',
15
16
 
16
17
  props: {
@@ -1,8 +1,9 @@
1
- import { h, defineComponent, computed } from 'vue'
1
+ import { h, computed } from 'vue'
2
2
 
3
+ import { createComponent } from '../../utils/private/create.js'
3
4
  import { hSlot } from '../../utils/private/render.js'
4
5
 
5
- export default defineComponent({
6
+ export default createComponent({
6
7
  name: 'QBtnGroup',
7
8
 
8
9
  props: {
@@ -1,13 +1,14 @@
1
- import { h, defineComponent, computed } from 'vue'
1
+ import { h, computed } from 'vue'
2
2
 
3
3
  import QBtn from '../btn/QBtn.js'
4
4
  import QBtnGroup from '../btn-group/QBtnGroup.js'
5
5
 
6
+ import { createComponent } from '../../utils/private/create.js'
6
7
  import { useFormInject, useFormProps } from '../../composables/private/use-form.js'
7
8
 
8
9
  import { hMergeSlot } from '../../utils/private/render.js'
9
10
 
10
- export default defineComponent({
11
+ export default createComponent({
11
12
  name: 'QBtnToggle',
12
13
 
13
14
  props: {
@@ -1,10 +1,11 @@
1
- import { h, defineComponent, computed, getCurrentInstance } from 'vue'
1
+ import { h, computed, getCurrentInstance } from 'vue'
2
2
 
3
3
  import useDark, { useDarkProps } from '../../composables/private/use-dark.js'
4
4
 
5
+ import { createComponent } from '../../utils/private/create.js'
5
6
  import { hSlot } from '../../utils/private/render.js'
6
7
 
7
- export default defineComponent({
8
+ export default createComponent({
8
9
  name: 'QCard',
9
10
 
10
11
  props: {
@@ -1,10 +1,11 @@
1
- import { h, defineComponent, computed } from 'vue'
1
+ import { h, computed } from 'vue'
2
2
 
3
3
  import useAlign, { useAlignProps } from '../../composables/private/use-align.js'
4
4
 
5
+ import { createComponent } from '../../utils/private/create.js'
5
6
  import { hSlot } from '../../utils/private/render.js'
6
7
 
7
- export default defineComponent({
8
+ export default createComponent({
8
9
  name: 'QCardActions',
9
10
 
10
11
  props: {
@@ -1,8 +1,9 @@
1
- import { h, defineComponent, computed } from 'vue'
1
+ import { h, computed } from 'vue'
2
2
 
3
+ import { createComponent } from '../../utils/private/create.js'
3
4
  import { hSlot } from '../../utils/private/render.js'
4
5
 
5
- export default defineComponent({
6
+ export default createComponent({
6
7
  name: 'QCardSection',
7
8
 
8
9
  props: {
@@ -1,4 +1,4 @@
1
- import { h, defineComponent, computed, watch, onMounted, onBeforeUnmount, getCurrentInstance } from 'vue'
1
+ import { h, computed, watch, onMounted, onBeforeUnmount, getCurrentInstance } from 'vue'
2
2
 
3
3
  import QBtn from '../btn/QBtn.js'
4
4
 
@@ -6,13 +6,14 @@ import useDark, { useDarkProps } from '../../composables/private/use-dark.js'
6
6
  import usePanel, { usePanelProps, usePanelEmits } from '../../composables/private/use-panel.js'
7
7
  import useFullscreen, { useFullscreenProps, useFullscreenEmits } from '../../composables/private/use-fullscreen.js'
8
8
 
9
+ import { createComponent } from '../../utils/private/create.js'
9
10
  import { isNumber } from '../../utils/private/is.js'
10
11
  import { hMergeSlot, hDir } from '../../utils/private/render.js'
11
12
 
12
13
  const navigationPositionOptions = [ 'top', 'right', 'bottom', 'left' ]
13
14
  const controlTypeOptions = [ 'regular', 'flat', 'outline', 'push', 'unelevated' ]
14
15
 
15
- export default defineComponent({
16
+ export default createComponent({
16
17
  name: 'QCarousel',
17
18
 
18
19
  props: {
@@ -1,8 +1,9 @@
1
- import { h, defineComponent, computed } from 'vue'
1
+ import { h, computed } from 'vue'
2
2
 
3
+ import { createComponent } from '../../utils/private/create.js'
3
4
  import { hSlot } from '../../utils/private/render.js'
4
5
 
5
- export default defineComponent({
6
+ export default createComponent({
6
7
  name: 'QCarouselControl',
7
8
 
8
9
  props: {
@@ -1,10 +1,11 @@
1
- import { h, defineComponent, computed } from 'vue'
1
+ import { h, computed } from 'vue'
2
2
 
3
+ import { createComponent } from '../../utils/private/create.js'
3
4
  import { usePanelChildProps } from '../../composables/private/use-panel.js'
4
5
 
5
6
  import { hSlot } from '../../utils/private/render.js'
6
7
 
7
- export default defineComponent({
8
+ export default createComponent({
8
9
  name: 'QCarouselSlide',
9
10
 
10
11
  props: {
@@ -1,8 +1,9 @@
1
- import { h, defineComponent, computed } from 'vue'
1
+ import { h, computed } from 'vue'
2
2
 
3
+ import { createComponent } from '../../utils/private/create.js'
3
4
  import { getNormalizedVNodes } from '../../utils/private/vm.js'
4
5
 
5
- export default defineComponent({
6
+ export default createComponent({
6
7
  name: 'QChatMessage',
7
8
 
8
9
  props: {
@@ -1,5 +1,6 @@
1
- import { h, defineComponent } from 'vue'
1
+ import { h } from 'vue'
2
2
 
3
+ import { createComponent } from '../../utils/private/create.js'
3
4
  import useCheckbox, { useCheckboxProps, useCheckboxEmits } from './use-checkbox.js'
4
5
 
5
6
  const bgNode = h('div', {
@@ -23,7 +24,7 @@ const bgNode = h('div', {
23
24
  ])
24
25
  ])
25
26
 
26
- export default defineComponent({
27
+ export default createComponent({
27
28
  name: 'QCheckbox',
28
29
 
29
30
  props: useCheckboxProps,
@@ -1,4 +1,4 @@
1
- import { h, defineComponent, computed, getCurrentInstance } from 'vue'
1
+ import { h, computed, getCurrentInstance } from 'vue'
2
2
 
3
3
  import QIcon from '../icon/QIcon.js'
4
4
 
@@ -7,6 +7,7 @@ import Ripple from '../../directives/Ripple.js'
7
7
  import useDark, { useDarkProps } from '../../composables/private/use-dark.js'
8
8
  import useSize, { useSizeProps } from '../../composables/private/use-size.js'
9
9
 
10
+ import { createComponent } from '../../utils/private/create.js'
10
11
  import { stopAndPrevent } from '../../utils/event.js'
11
12
  import { hMergeSlotSafely, hDir } from '../../utils/private/render.js'
12
13
 
@@ -18,7 +19,7 @@ const defaultSizes = {
18
19
  xl: 24
19
20
  }
20
21
 
21
- export default defineComponent({
22
+ export default createComponent({
22
23
  name: 'QChip',
23
24
 
24
25
  props: {
@@ -1,8 +1,9 @@
1
- import { h, defineComponent, computed, getCurrentInstance } from 'vue'
1
+ import { h, computed, getCurrentInstance } from 'vue'
2
2
 
3
3
  import useSize from '../../composables/private/use-size.js'
4
4
  import { useCircularCommonProps } from './use-circular-progress.js'
5
5
 
6
+ import { createComponent } from '../../utils/private/create.js'
6
7
  import { hMergeSlotSafely } from '../../utils/private/render.js'
7
8
  import { between } from '../../utils/format.js'
8
9
 
@@ -12,7 +13,7 @@ const
12
13
  circumference = diameter * Math.PI,
13
14
  strokeDashArray = Math.round(circumference * 1000) / 1000
14
15
 
15
- export default defineComponent({
16
+ export default createComponent({
16
17
  name: 'QCircularProgress',
17
18
 
18
19
  props: {
@@ -23,6 +24,11 @@ export default defineComponent({
23
24
  default: 0
24
25
  },
25
26
 
27
+ animationSpeed: {
28
+ type: [ String, Number ],
29
+ default: 600
30
+ },
31
+
26
32
  indeterminate: Boolean
27
33
  },
28
34
 
@@ -42,7 +48,7 @@ export default defineComponent({
42
48
 
43
49
  const circleStyle = computed(() => (
44
50
  props.instantFeedback !== true && props.indeterminate !== true
45
- ? { transition: 'stroke-dashoffset 0.6s ease 0s, stroke 0.6s ease' }
51
+ ? { transition: `stroke-dashoffset ${ props.animationSpeed }ms ease 0s, stroke ${ props.animationSpeed }ms ease` }
46
52
  : ''
47
53
  ))
48
54
 
@@ -91,6 +91,12 @@
91
91
  "type": "Boolean",
92
92
  "desc": "No animation when model changes",
93
93
  "category": "behavior"
94
+ },
95
+
96
+ "animation-speed": {
97
+ "extends": "animation-speed",
98
+ "default": 600,
99
+ "addedIn": "v2.3"
94
100
  }
95
101
  },
96
102