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
@@ -1,12 +1,13 @@
1
- import { h, defineComponent, ref, computed, Transition } from 'vue'
1
+ import { h, ref, computed, Transition } from 'vue'
2
2
 
3
3
  import { isRuntimeSsrPreHydration } from '../../plugins/Platform.js'
4
4
 
5
5
  import Intersection from '../../directives/Intersection.js'
6
6
 
7
+ import { createComponent } from '../../utils/private/create.js'
7
8
  import { hSlot, hDir } from '../../utils/private/render.js'
8
9
 
9
- export default defineComponent({
10
+ export default createComponent({
10
11
  name: 'QIntersection',
11
12
 
12
13
  props: {
@@ -17,6 +18,10 @@ export default defineComponent({
17
18
 
18
19
  once: Boolean,
19
20
  transition: String,
21
+ transitionDuration: {
22
+ type: [ String, Number ],
23
+ default: 300
24
+ },
20
25
 
21
26
  ssrPrerender: Boolean,
22
27
 
@@ -62,6 +67,10 @@ export default defineComponent({
62
67
  ] ]
63
68
  })
64
69
 
70
+ const transitionStyle = computed(
71
+ () => `--q-transition-duration: ${ props.transitionDuration }ms`
72
+ )
73
+
65
74
  function trigger (entry) {
66
75
  if (showing.value !== entry.isIntersecting) {
67
76
  showing.value = entry.isIntersecting
@@ -71,7 +80,7 @@ export default defineComponent({
71
80
 
72
81
  function getContent () {
73
82
  return showing.value === true
74
- ? [ h('div', { key: 'content' }, hSlot(slots.default)) ]
83
+ ? [ h('div', { key: 'content', style: transitionStyle.value }, hSlot(slots.default)) ]
75
84
  : void 0
76
85
  }
77
86
 
@@ -51,6 +51,15 @@
51
51
  "category": "behavior"
52
52
  },
53
53
 
54
+ "transition-duration": {
55
+ "type": [ "String", "Number" ],
56
+ "desc": "Transition duration (in milliseconds, without unit)",
57
+ "default": 300,
58
+ "examples": [ 500, "1200" ],
59
+ "category": "behavior",
60
+ "addedIn": "v2.3.1"
61
+ },
62
+
54
63
  "disable": {
55
64
  "type": "Boolean",
56
65
  "desc": "Disable visibility observable (content will remain as it was, visible or hidden)",
@@ -1,13 +1,14 @@
1
- import { h, defineComponent, ref, computed, getCurrentInstance } from 'vue'
1
+ import { h, ref, computed, getCurrentInstance } from 'vue'
2
2
 
3
3
  import useDark, { useDarkProps } from '../../composables/private/use-dark.js'
4
4
  import useRouterLink, { useRouterLinkProps } from '../../composables/private/use-router-link.js'
5
5
 
6
+ import { createComponent } from '../../utils/private/create.js'
6
7
  import { hUniqueSlot } from '../../utils/private/render.js'
7
8
  import { stopAndPrevent } from '../../utils/event.js'
8
9
  import { isKeyCode } from '../../utils/private/key-composition.js'
9
10
 
10
- export default defineComponent({
11
+ export default createComponent({
11
12
  name: 'QItem',
12
13
 
13
14
  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: 'QItemLabel',
7
8
 
8
9
  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: 'QItemSection',
7
8
 
8
9
  props: {
@@ -1,10 +1,10 @@
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
  import { hSlot } from '../../utils/private/render.js'
6
6
 
7
- export default defineComponent({
7
+ export default createComponent({
8
8
  name: 'QList',
9
9
 
10
10
  props: {
@@ -1,8 +1,9 @@
1
- import { h, defineComponent, ref, computed, watch, onMounted, withDirectives, getCurrentInstance } from 'vue'
1
+ import { h, ref, computed, watch, onMounted, withDirectives, getCurrentInstance } from 'vue'
2
2
 
3
3
  import QCircularProgress from '../circular-progress/QCircularProgress.js'
4
4
  import TouchPan from '../../directives/TouchPan.js'
5
5
 
6
+ import { createComponent } from '../../utils/private/create.js'
6
7
  import { position, stopAndPrevent } from '../../utils/event.js'
7
8
  import { between, normalizeToInterval } from '../../utils/format.js'
8
9
 
@@ -13,7 +14,7 @@ import { useCircularCommonProps } from '../circular-progress/use-circular-progre
13
14
  const keyCodes = [ 34, 37, 40, 33, 39, 38 ]
14
15
  const commonPropsName = Object.keys(useCircularCommonProps)
15
16
 
16
- export default defineComponent({
17
+ export default createComponent({
17
18
  name: 'QKnob',
18
19
 
19
20
  props: {
@@ -1,15 +1,16 @@
1
- import { h, defineComponent, ref, reactive, computed, provide, getCurrentInstance } from 'vue'
1
+ import { h, ref, reactive, computed, provide, getCurrentInstance } from 'vue'
2
2
 
3
3
  import { isRuntimeSsrPreHydration } from '../../plugins/Platform.js'
4
4
 
5
5
  import QScrollObserver from '../scroll-observer/QScrollObserver.js'
6
6
  import QResizeObserver from '../resize-observer/QResizeObserver.js'
7
7
 
8
+ import { createComponent } from '../../utils/private/create.js'
8
9
  import { getScrollbarWidth } from '../../utils/scroll.js'
9
10
  import { hMergeSlot } from '../../utils/private/render.js'
10
11
  import { layoutKey } from '../../utils/private/symbols.js'
11
12
 
12
- export default defineComponent({
13
+ export default createComponent({
13
14
  name: 'QLayout',
14
15
 
15
16
  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 useDark, { useDarkProps } from '../../composables/private/use-dark.js'
4
4
  import useSize, { useSizeProps } from '../../composables/private/use-size.js'
5
5
 
6
+ import { createComponent } from '../../utils/private/create.js'
6
7
  import { hMergeSlot } from '../../utils/private/render.js'
7
8
 
8
9
  const defaultSizes = {
@@ -21,7 +22,7 @@ function width (val, reverse, $q) {
21
22
  }
22
23
  }
23
24
 
24
- export default defineComponent({
25
+ export default createComponent({
25
26
  name: 'QLinearProgress',
26
27
 
27
28
  props: {
@@ -43,6 +44,11 @@ export default defineComponent({
43
44
  query: Boolean,
44
45
  rounded: Boolean,
45
46
 
47
+ animationSpeed: {
48
+ type: [ String, Number ],
49
+ default: 2100
50
+ },
51
+
46
52
  instantFeedback: Boolean
47
53
  },
48
54
 
@@ -52,6 +58,10 @@ export default defineComponent({
52
58
  const sizeStyle = useSize(props, defaultSizes)
53
59
 
54
60
  const motion = computed(() => props.indeterminate === true || props.query === true)
61
+ const style = computed(() => ({
62
+ ...(sizeStyle.value !== null ? sizeStyle.value : {}),
63
+ '--q-linear-progress-speed': `${ props.animationSpeed }ms`
64
+ }))
55
65
 
56
66
  const classes = computed(() =>
57
67
  'q-linear-progress'
@@ -102,7 +112,7 @@ export default defineComponent({
102
112
 
103
113
  return h('div', {
104
114
  class: classes.value,
105
- style: sizeStyle.value,
115
+ style: style.value,
106
116
  role: 'progressbar',
107
117
  'aria-valuemin': 0,
108
118
  'aria-valuemax': 1,
@@ -66,6 +66,12 @@
66
66
  "type": "Boolean",
67
67
  "desc": "No transition when model changes",
68
68
  "category": "behavior"
69
+ },
70
+
71
+ "animation-speed": {
72
+ "extends": "animation-speed",
73
+ "default": 300,
74
+ "addedIn": "v2.3"
69
75
  }
70
76
  },
71
77
 
@@ -1,4 +1,5 @@
1
1
  .q-linear-progress
2
+ --q-linear-progress-speed: .3s
2
3
  position: relative
3
4
  width: 100%
4
5
  overflow: hidden
@@ -10,7 +11,7 @@
10
11
  transform-origin: 0 0
11
12
 
12
13
  &--with-transition
13
- transition: transform .3s
14
+ transition: transform var(--q-linear-progress-speed)
14
15
 
15
16
  &--reverse
16
17
  .q-linear-progress
@@ -1,12 +1,13 @@
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
8
  const separatorValues = [ 'horizontal', 'vertical', 'cell', 'none' ]
8
9
 
9
- export default defineComponent({
10
+ export default createComponent({
10
11
  name: 'QMarkupTable',
11
12
 
12
13
  props: {
@@ -1,4 +1,4 @@
1
- import { h, defineComponent, ref, computed, watch, Transition, onBeforeUnmount, getCurrentInstance } from 'vue'
1
+ import { h, ref, computed, watch, Transition, onBeforeUnmount, getCurrentInstance } from 'vue'
2
2
 
3
3
  import useAnchor, { useAnchorProps } from '../../composables/private/use-anchor.js'
4
4
  import useScrollTarget from '../../composables/private/use-scroll-target.js'
@@ -9,6 +9,7 @@ import useTransition, { useTransitionProps } from '../../composables/private/use
9
9
  import useTick from '../../composables/private/use-tick.js'
10
10
  import useTimeout from '../../composables/private/use-timeout.js'
11
11
 
12
+ import { createComponent } from '../../utils/private/create.js'
12
13
  import { closePortalMenus } from '../../utils/private/portal.js'
13
14
  import { getScrollTarget } from '../../utils/scroll.js'
14
15
  import { position, stopAndPrevent } from '../../utils/event.js'
@@ -17,13 +18,13 @@ import { addEscapeKey, removeEscapeKey } from '../../utils/private/escape-key.js
17
18
  import { addFocusout, removeFocusout } from '../../utils/private/focusout.js'
18
19
  import { childHasFocus } from '../../utils/dom.js'
19
20
  import { addClickOutside, removeClickOutside } from '../../utils/private/click-outside.js'
21
+ import { addFocusFn } from '../../utils/private/focus-manager.js'
20
22
 
21
23
  import {
22
24
  validatePosition, validateOffset, setPosition, parsePosition
23
25
  } from '../../utils/private/position-engine.js'
24
- import { addFocusFn } from '../../utils/private/focus-manager.js'
25
26
 
26
- export default defineComponent({
27
+ export default createComponent({
27
28
  name: 'QMenu',
28
29
 
29
30
  inheritAttrs: false,
@@ -1,10 +1,11 @@
1
- import { h, defineComponent } from 'vue'
1
+ import { h } from 'vue'
2
2
 
3
3
  import useCanRender from '../../composables/private/use-can-render.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: 'QNoSsr',
9
10
 
10
11
  props: {
@@ -1,9 +1,11 @@
1
- import { h, defineComponent, computed, getCurrentInstance } from 'vue'
1
+ import { h, computed, getCurrentInstance } from 'vue'
2
2
 
3
3
  import QRadio from '../radio/QRadio.js'
4
4
  import QCheckbox from '../checkbox/QCheckbox.js'
5
5
  import QToggle from '../toggle/QToggle.js'
6
6
 
7
+ import { createComponent } from '../../utils/private/create.js'
8
+
7
9
  import useDark, { useDarkProps } from '../../composables/private/use-dark.js'
8
10
 
9
11
  const components = {
@@ -14,7 +16,7 @@ const components = {
14
16
 
15
17
  const typeValues = Object.keys(components)
16
18
 
17
- export default defineComponent({
19
+ export default createComponent({
18
20
  name: 'QOptionGroup',
19
21
 
20
22
  props: {
@@ -1,9 +1,10 @@
1
- import { h, defineComponent, computed, inject, getCurrentInstance } from 'vue'
1
+ import { h, computed, inject, getCurrentInstance } from 'vue'
2
2
 
3
+ import { createComponent } from '../../utils/private/create.js'
3
4
  import { hSlot } from '../../utils/private/render.js'
4
5
  import { pageContainerKey, layoutKey } from '../../utils/private/symbols.js'
5
6
 
6
- export default defineComponent({
7
+ export default createComponent({
7
8
  name: 'QPage',
8
9
 
9
10
  props: {
@@ -1,9 +1,10 @@
1
- import { h, defineComponent, computed, provide, inject, getCurrentInstance } from 'vue'
1
+ import { h, computed, provide, inject, getCurrentInstance } from 'vue'
2
2
 
3
+ import { createComponent } from '../../utils/private/create.js'
3
4
  import { hSlot } from '../../utils/private/render.js'
4
5
  import { pageContainerKey, layoutKey } from '../../utils/private/symbols.js'
5
6
 
6
- export default defineComponent({
7
+ export default createComponent({
7
8
  name: 'QPageContainer',
8
9
 
9
10
  setup (_, { slots }) {
@@ -1,9 +1,11 @@
1
- import { h, defineComponent, ref, computed, watch, onBeforeUnmount, getCurrentInstance, Transition } from 'vue'
1
+ import { h, ref, computed, watch, onBeforeUnmount, getCurrentInstance, Transition } from 'vue'
2
2
 
3
3
  import usePageSticky, { usePageStickyProps } from '../page-sticky/use-page-sticky.js'
4
4
  import { getScrollTarget, setVerticalScrollPosition } from '../../utils/scroll.js'
5
5
 
6
- export default defineComponent({
6
+ import { createComponent } from '../../utils/private/create.js'
7
+
8
+ export default createComponent({
7
9
  name: 'QPageScroller',
8
10
 
9
11
  props: {
@@ -1,8 +1,7 @@
1
- import { defineComponent } from 'vue'
2
-
1
+ import { createComponent } from '../../utils/private/create.js'
3
2
  import usePageSticky, { usePageStickyProps } from './use-page-sticky'
4
3
 
5
- export default defineComponent({
4
+ export default createComponent({
6
5
  name: 'QPageSticky',
7
6
 
8
7
  props: usePageStickyProps,
@@ -1,14 +1,15 @@
1
- import { h, defineComponent, ref, watch, computed, getCurrentInstance } from 'vue'
1
+ import { h, ref, watch, computed, getCurrentInstance } from 'vue'
2
2
 
3
3
  import QBtn from '../btn/QBtn.js'
4
4
  import QInput from '../input/QInput.js'
5
5
 
6
6
  import useDark, { useDarkProps } from '../../composables/private/use-dark.js'
7
7
 
8
+ import { createComponent } from '../../utils/private/create.js'
8
9
  import { between } from '../../utils/format.js'
9
10
  import { isKeyCode } from '../../utils/private/key-composition.js'
10
11
 
11
- export default defineComponent({
12
+ export default createComponent({
12
13
  name: 'QPagination',
13
14
 
14
15
  props: {
@@ -1,5 +1,6 @@
1
- import { h, defineComponent, ref, watch, onMounted, onBeforeUnmount } from 'vue'
1
+ import { h, ref, watch, onMounted, onBeforeUnmount } from 'vue'
2
2
 
3
+ import { createComponent } from '../../utils/private/create.js'
3
4
  import { height, offset } from '../../utils/dom.js'
4
5
  import frameDebounce from '../../utils/frame-debounce.js'
5
6
  import { getScrollTarget } from '../../utils/scroll.js'
@@ -8,7 +9,7 @@ import { listenOpts } from '../../utils/event.js'
8
9
 
9
10
  const { passive } = listenOpts
10
11
 
11
- export default defineComponent({
12
+ export default createComponent({
12
13
  name: 'QParallax',
13
14
 
14
15
  props: {
@@ -1,12 +1,13 @@
1
- import { h, defineComponent, ref, computed, nextTick, getCurrentInstance } from 'vue'
1
+ import { h, ref, computed, nextTick, getCurrentInstance } from 'vue'
2
2
 
3
3
  import QMenu from '../menu/QMenu.js'
4
4
  import QBtn from '../btn/QBtn.js'
5
5
 
6
+ import { createComponent } from '../../utils/private/create.js'
6
7
  import clone from '../../utils/clone.js'
7
8
  import { isDeepEqual } from '../../utils/private/is.js'
8
9
 
9
- export default defineComponent({
10
+ export default createComponent({
10
11
  name: 'QPopupEdit',
11
12
 
12
13
  props: {
@@ -1,12 +1,13 @@
1
- import { h, defineComponent, ref, computed, watch, getCurrentInstance } from 'vue'
1
+ import { h, ref, computed, watch, getCurrentInstance } from 'vue'
2
2
 
3
3
  import QDialog from '../dialog/QDialog.js'
4
4
  import QMenu from '../menu/QMenu.js'
5
5
 
6
6
  import useAnchor, { useAnchorProps } from '../../composables/private/use-anchor.js'
7
- import { hSlot } from '../../utils/private/render.js'
8
7
 
9
- export default defineComponent({
8
+ import { createComponent } from '../../utils/private/create.js'
9
+
10
+ export default createComponent({
10
11
  name: 'QPopupProxy',
11
12
 
12
13
  props: {
@@ -38,6 +39,10 @@ export default defineComponent({
38
39
 
39
40
  const type = ref(getType())
40
41
 
42
+ const popupProps = computed(() => (
43
+ type.value === 'menu' ? { maxHeight: '99vh' } : {})
44
+ )
45
+
41
46
  watch(() => getType(), val => {
42
47
  if (showing.value !== true) {
43
48
  type.value = val
@@ -63,21 +68,9 @@ export default defineComponent({
63
68
  }
64
69
 
65
70
  return () => {
66
- const def = hSlot(slots.default)
67
-
68
- const popupProps = (
69
- type.value === 'menu'
70
- && def !== void 0
71
- && def[ 0 ] !== void 0
72
- && def[ 0 ].type !== void 0
73
- && [ 'QDate', 'QTime', 'QCarousel', 'QColor' ].includes(
74
- def[ 0 ].type.name
75
- )
76
- ) ? { cover: true, maxHeight: '99vh' } : {}
77
-
78
71
  const data = {
79
72
  ref: popupRef,
80
- ...popupProps,
73
+ ...popupProps.value,
81
74
  ...attrs,
82
75
  onShow,
83
76
  onHide
@@ -98,7 +91,7 @@ export default defineComponent({
98
91
  })
99
92
  }
100
93
 
101
- return h(component, data, () => def)
94
+ return h(component, data, slots.default)
102
95
  }
103
96
  }
104
97
  })
@@ -1,9 +1,10 @@
1
- import { h, defineComponent, ref, computed, watch, onMounted, onBeforeUnmount, getCurrentInstance } from 'vue'
1
+ import { h, ref, computed, watch, onMounted, onBeforeUnmount, getCurrentInstance } from 'vue'
2
2
 
3
3
  import QIcon from '../icon/QIcon.js'
4
4
  import QSpinner from '../spinner/QSpinner.js'
5
5
  import TouchPan from '../../directives/TouchPan.js'
6
6
 
7
+ import { createComponent } from '../../utils/private/create.js'
7
8
  import { getScrollTarget, getVerticalScrollPosition } from '../../utils/scroll.js'
8
9
  import { between } from '../../utils/format.js'
9
10
  import { prevent } from '../../utils/event.js'
@@ -13,7 +14,7 @@ const
13
14
  PULLER_HEIGHT = 40,
14
15
  OFFSET_TOP = 20
15
16
 
16
- export default defineComponent({
17
+ export default createComponent({
17
18
  name: 'QPullToRefresh',
18
19
 
19
20
  props: {
@@ -1,10 +1,11 @@
1
- import { h, defineComponent, ref, computed, getCurrentInstance } from 'vue'
1
+ import { h, ref, computed, getCurrentInstance } from 'vue'
2
2
 
3
3
  import useDark, { useDarkProps } from '../../composables/private/use-dark.js'
4
4
  import useSize, { useSizeProps } from '../../composables/private/use-size.js'
5
5
  import useRefocusTarget from '../../composables/private/use-refocus-target.js'
6
6
  import { useFormProps, useFormInject } from '../../composables/private/use-form.js'
7
7
 
8
+ import { createComponent } from '../../utils/private/create.js'
8
9
  import optionSizes from '../../utils/private/option-sizes.js'
9
10
  import { stopAndPrevent } from '../../utils/event.js'
10
11
  import { hSlot, hMergeSlot } from '../../utils/private/render.js'
@@ -24,7 +25,7 @@ const svg = h('svg', {
24
25
  })
25
26
  ])
26
27
 
27
- export default defineComponent({
28
+ export default createComponent({
28
29
  name: 'QRadio',
29
30
 
30
31
  props: {
@@ -1,4 +1,4 @@
1
- import { h, defineComponent, ref, computed, watch, getCurrentInstance } from 'vue'
1
+ import { h, ref, computed, watch, getCurrentInstance } from 'vue'
2
2
 
3
3
  import { useFormInject, useFormProps } from '../../composables/private/use-form.js'
4
4
 
@@ -10,6 +10,7 @@ import useSlider, {
10
10
  keyCodes
11
11
  } from '../slider/use-slider.js'
12
12
 
13
+ import { createComponent } from '../../utils/private/create.js'
13
14
  import { stopAndPrevent } from '../../utils/event.js'
14
15
  import { between } from '../../utils/format.js'
15
16
  import { hDir } from '../../utils/private/render.js'
@@ -20,7 +21,7 @@ const dragType = {
20
21
  MAX: 2
21
22
  }
22
23
 
23
- export default defineComponent({
24
+ export default createComponent({
24
25
  name: 'QRange',
25
26
 
26
27
  props: {
@@ -1,15 +1,16 @@
1
- import { h, defineComponent, ref, computed, onBeforeUpdate, getCurrentInstance } from 'vue'
1
+ import { h, ref, computed, onBeforeUpdate, getCurrentInstance } from 'vue'
2
2
 
3
3
  import QIcon from '../icon/QIcon.js'
4
4
 
5
+ import useSize, { useSizeProps } from '../../composables/private/use-size.js'
6
+ import { useFormProps, useFormAttrs, useFormInject } from '../../composables/private/use-form.js'
7
+
8
+ import { createComponent } from '../../utils/private/create.js'
5
9
  import { stopAndPrevent } from '../../utils/event.js'
6
10
  import { between } from '../../utils/format.js'
7
11
  import { hMergeSlot } from '../../utils/private/render.js'
8
12
 
9
- import useSize, { useSizeProps } from '../../composables/private/use-size.js'
10
- import { useFormProps, useFormAttrs, useFormInject } from '../../composables/private/use-form.js'
11
-
12
- export default defineComponent({
13
+ export default createComponent({
13
14
  name: 'QRating',
14
15
 
15
16
  props: {
@@ -1,7 +1,8 @@
1
- import { h, defineComponent, onMounted, onBeforeUnmount, getCurrentInstance, nextTick } from 'vue'
1
+ import { h, onMounted, onBeforeUnmount, getCurrentInstance, nextTick } from 'vue'
2
2
 
3
3
  import useCanRender from '../../composables/private/use-can-render.js'
4
4
 
5
+ import { createComponent } from '../../utils/private/create.js'
5
6
  import { listenOpts, noop } from '../../utils/event.js'
6
7
 
7
8
  const hasObserver = typeof ResizeObserver !== 'undefined'
@@ -12,7 +13,7 @@ const resizeProps = hasObserver === true
12
13
  url: 'about:blank'
13
14
  }
14
15
 
15
- export default defineComponent({
16
+ export default createComponent({
16
17
  name: 'QResizeObserver',
17
18
 
18
19
  props: {
@@ -1,10 +1,11 @@
1
- import { h, defineComponent } from 'vue'
1
+ import { h } from 'vue'
2
2
 
3
3
  import useRatio, { useRatioProps } from '../../composables/private/use-ratio.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: 'QResponsive',
9
10
 
10
11
  props: useRatioProps,
@@ -1,4 +1,4 @@
1
- import { h, defineComponent, ref, computed, withDirectives, getCurrentInstance } from 'vue'
1
+ import { h, ref, computed, withDirectives, getCurrentInstance } from 'vue'
2
2
 
3
3
  import useDark, { useDarkProps } from '../../composables/private/use-dark.js'
4
4
 
@@ -7,6 +7,7 @@ import QScrollObserver from '../scroll-observer/QScrollObserver.js'
7
7
 
8
8
  import TouchPan from '../../directives/TouchPan.js'
9
9
 
10
+ import { createComponent } from '../../utils/private/create.js'
10
11
  import { between } from '../../utils/format.js'
11
12
  import { setVerticalScrollPosition, setHorizontalScrollPosition } from '../../utils/scroll.js'
12
13
  import { hMergeSlot } from '../../utils/private/render.js'
@@ -18,7 +19,7 @@ const dirProps = {
18
19
  horizontal: { offset: 'offsetX', scroll: 'scrollLeft', dir: 'right', dist: 'x' }
19
20
  }
20
21
 
21
- export default defineComponent({
22
+ export default createComponent({
22
23
  name: 'QScrollArea',
23
24
 
24
25
  props: {