quasar 2.2.1 → 2.3.0

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 (261) hide show
  1. package/dist/api/QCircularProgress.json +14 -0
  2. package/dist/api/QLinearProgress.json +14 -0
  3. package/dist/api/QOptionGroup.json +36 -1
  4. package/dist/api/QSkeleton.json +1 -1
  5. package/dist/api/QTable.json +5 -0
  6. package/dist/api/QTree.json +6 -0
  7. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  8. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  9. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  10. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  11. package/dist/icon-set/ionicons-v4.umd.prod.js +1 -1
  12. package/dist/icon-set/line-awesome.umd.prod.js +1 -1
  13. package/dist/icon-set/material-icons-outlined.umd.prod.js +1 -1
  14. package/dist/icon-set/material-icons-round.umd.prod.js +1 -1
  15. package/dist/icon-set/material-icons-sharp.umd.prod.js +1 -1
  16. package/dist/icon-set/material-icons.umd.prod.js +1 -1
  17. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  18. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  19. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  20. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  21. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  22. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  23. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  24. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  25. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  26. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  27. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  28. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  29. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  30. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  31. package/dist/icon-set/svg-mdi-v4.umd.prod.js +1 -1
  32. package/dist/icon-set/svg-mdi-v5.umd.prod.js +1 -1
  33. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  34. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  35. package/dist/icon-set/themify.umd.prod.js +1 -1
  36. package/dist/lang/ar.umd.prod.js +1 -1
  37. package/dist/lang/az-Latn.umd.prod.js +1 -1
  38. package/dist/lang/bg.umd.prod.js +1 -1
  39. package/dist/lang/bn.umd.prod.js +1 -1
  40. package/dist/lang/ca.umd.prod.js +1 -1
  41. package/dist/lang/cs.umd.prod.js +1 -1
  42. package/dist/lang/da.umd.prod.js +1 -1
  43. package/dist/lang/de.umd.prod.js +1 -1
  44. package/dist/lang/el.umd.prod.js +1 -1
  45. package/dist/lang/en-GB.umd.prod.js +1 -1
  46. package/dist/lang/en-US.umd.prod.js +1 -1
  47. package/dist/lang/eo.umd.prod.js +1 -1
  48. package/dist/lang/es.umd.prod.js +1 -1
  49. package/dist/lang/et.umd.prod.js +1 -1
  50. package/dist/lang/fa-IR.umd.prod.js +1 -1
  51. package/dist/lang/fa.umd.prod.js +1 -1
  52. package/dist/lang/fi.umd.prod.js +1 -1
  53. package/dist/lang/fr.umd.prod.js +1 -1
  54. package/dist/lang/gn.umd.prod.js +1 -1
  55. package/dist/lang/he.umd.prod.js +1 -1
  56. package/dist/lang/hr.umd.prod.js +1 -1
  57. package/dist/lang/hu.umd.prod.js +1 -1
  58. package/dist/lang/id.umd.prod.js +1 -1
  59. package/dist/lang/is.umd.prod.js +1 -1
  60. package/dist/lang/it.umd.prod.js +1 -1
  61. package/dist/lang/ja.umd.prod.js +1 -1
  62. package/dist/lang/km.umd.prod.js +1 -1
  63. package/dist/lang/ko-KR.umd.prod.js +1 -1
  64. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  65. package/dist/lang/lt.umd.prod.js +1 -1
  66. package/dist/lang/lu.umd.prod.js +1 -1
  67. package/dist/lang/lv.umd.prod.js +1 -1
  68. package/dist/lang/ml.umd.prod.js +1 -1
  69. package/dist/lang/ms.umd.prod.js +1 -1
  70. package/dist/lang/nb-NO.umd.prod.js +1 -1
  71. package/dist/lang/nl.umd.prod.js +1 -1
  72. package/dist/lang/pl.umd.prod.js +1 -1
  73. package/dist/lang/pt-BR.umd.prod.js +1 -1
  74. package/dist/lang/pt.umd.prod.js +1 -1
  75. package/dist/lang/ro.umd.prod.js +1 -1
  76. package/dist/lang/ru.umd.prod.js +1 -1
  77. package/dist/lang/sk.umd.prod.js +1 -1
  78. package/dist/lang/sl.umd.prod.js +1 -1
  79. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  80. package/dist/lang/sr.umd.prod.js +1 -1
  81. package/dist/lang/sv.umd.prod.js +1 -1
  82. package/dist/lang/ta.umd.prod.js +1 -1
  83. package/dist/lang/th.umd.prod.js +1 -1
  84. package/dist/lang/tr.umd.prod.js +1 -1
  85. package/dist/lang/ug.umd.prod.js +1 -1
  86. package/dist/lang/uk.umd.prod.js +1 -1
  87. package/dist/lang/vi.umd.prod.js +1 -1
  88. package/dist/lang/zh-CN.umd.prod.js +1 -1
  89. package/dist/lang/zh-TW.umd.prod.js +1 -1
  90. package/dist/quasar.cjs.prod.js +2 -2
  91. package/dist/quasar.css +53 -9
  92. package/dist/quasar.esm.prod.js +2 -2
  93. package/dist/quasar.prod.css +1 -1
  94. package/dist/quasar.rtl.css +120 -9
  95. package/dist/quasar.rtl.prod.css +1 -1
  96. package/dist/quasar.sass +45 -7
  97. package/dist/quasar.umd.js +320 -254
  98. package/dist/quasar.umd.prod.js +2 -2
  99. package/dist/ssr-directives/Morph.js +1 -1
  100. package/dist/types/index.d.ts +33 -3
  101. package/dist/vetur/quasar-attributes.json +13 -1
  102. package/dist/vetur/quasar-tags.json +5 -2
  103. package/dist/web-types/web-types.json +32 -2
  104. package/package.json +1 -1
  105. package/src/api.extends.json +7 -0
  106. package/src/components/ajax-bar/QAjaxBar.js +3 -2
  107. package/src/components/avatar/QAvatar.js +3 -2
  108. package/src/components/badge/QBadge.js +3 -2
  109. package/src/components/banner/QBanner.js +3 -2
  110. package/src/components/bar/QBar.js +3 -2
  111. package/src/components/breadcrumbs/QBreadcrumbs.js +3 -2
  112. package/src/components/breadcrumbs/QBreadcrumbsEl.js +3 -2
  113. package/src/components/btn/QBtn.js +3 -2
  114. package/src/components/btn-dropdown/QBtnDropdown.js +3 -2
  115. package/src/components/btn-group/QBtnGroup.js +3 -2
  116. package/src/components/btn-toggle/QBtnToggle.js +3 -2
  117. package/src/components/card/QCard.js +3 -2
  118. package/src/components/card/QCardActions.js +3 -2
  119. package/src/components/card/QCardSection.js +3 -2
  120. package/src/components/carousel/QCarousel.js +3 -2
  121. package/src/components/carousel/QCarouselControl.js +3 -2
  122. package/src/components/carousel/QCarouselSlide.js +3 -2
  123. package/src/components/chat/QChatMessage.js +3 -2
  124. package/src/components/checkbox/QCheckbox.js +3 -2
  125. package/src/components/chip/QChip.js +3 -2
  126. package/src/components/circular-progress/QCircularProgress.js +9 -3
  127. package/src/components/circular-progress/QCircularProgress.json +6 -0
  128. package/src/components/color/QColor.js +3 -2
  129. package/src/components/date/QDate.js +5 -3
  130. package/src/components/dialog/QDialog.js +3 -2
  131. package/src/components/dialog-bottom-sheet/BottomSheet.js +3 -2
  132. package/src/components/dialog-plugin/DialogPlugin.js +3 -2
  133. package/src/components/drawer/QDrawer.js +3 -2
  134. package/src/components/editor/QEditor.js +3 -2
  135. package/src/components/expansion-item/QExpansionItem.js +3 -2
  136. package/src/components/fab/QFab.js +3 -2
  137. package/src/components/fab/QFabAction.js +3 -2
  138. package/src/components/field/QField.js +3 -3
  139. package/src/components/file/QFile.js +3 -2
  140. package/src/components/footer/QFooter.js +3 -2
  141. package/src/components/form/QForm.js +3 -2
  142. package/src/components/header/QHeader.js +3 -2
  143. package/src/components/icon/QIcon.js +4 -2
  144. package/src/components/img/QImg.js +5 -2
  145. package/src/components/infinite-scroll/QInfiniteScroll.js +50 -32
  146. package/src/components/inner-loading/QInnerLoading.js +3 -2
  147. package/src/components/input/QInput.js +3 -2
  148. package/src/components/intersection/QIntersection.js +3 -2
  149. package/src/components/item/QItem.js +3 -2
  150. package/src/components/item/QItemLabel.js +3 -2
  151. package/src/components/item/QItemSection.js +3 -2
  152. package/src/components/item/QList.js +3 -3
  153. package/src/components/knob/QKnob.js +3 -2
  154. package/src/components/layout/QLayout.js +3 -2
  155. package/src/components/linear-progress/QLinearProgress.js +13 -3
  156. package/src/components/linear-progress/QLinearProgress.json +6 -0
  157. package/src/components/linear-progress/QLinearProgress.sass +2 -1
  158. package/src/components/markup-table/QMarkupTable.js +3 -2
  159. package/src/components/menu/QMenu.js +4 -3
  160. package/src/components/no-ssr/QNoSsr.js +3 -2
  161. package/src/components/option-group/QOptionGroup.js +4 -2
  162. package/src/components/option-group/QOptionGroup.json +24 -1
  163. package/src/components/page/QPage.js +3 -2
  164. package/src/components/page/QPageContainer.js +3 -2
  165. package/src/components/page-scroller/QPageScroller.js +4 -2
  166. package/src/components/page-sticky/QPageSticky.js +2 -3
  167. package/src/components/pagination/QPagination.js +3 -2
  168. package/src/components/parallax/QParallax.js +3 -2
  169. package/src/components/popup-edit/QPopupEdit.js +3 -2
  170. package/src/components/popup-proxy/QPopupProxy.js +10 -17
  171. package/src/components/pull-to-refresh/QPullToRefresh.js +3 -2
  172. package/src/components/radio/QRadio.js +3 -2
  173. package/src/components/range/QRange.js +3 -2
  174. package/src/components/rating/QRating.js +6 -5
  175. package/src/components/resize-observer/QResizeObserver.js +3 -2
  176. package/src/components/responsive/QResponsive.js +3 -2
  177. package/src/components/scroll-area/QScrollArea.js +3 -2
  178. package/src/components/scroll-observer/QScrollObserver.js +3 -2
  179. package/src/components/select/QSelect.js +11 -20
  180. package/src/components/separator/QSeparator.js +4 -2
  181. package/src/components/skeleton/QSkeleton.js +3 -2
  182. package/src/components/skeleton/QSkeleton.json +1 -4
  183. package/src/components/slide-item/QSlideItem.js +3 -2
  184. package/src/components/slide-transition/QSlideTransition.js +4 -2
  185. package/src/components/slider/QSlider.js +3 -2
  186. package/src/components/space/QSpace.js +4 -2
  187. package/src/components/spinner/QSpinner.js +4 -2
  188. package/src/components/spinner/QSpinnerAudio.js +4 -2
  189. package/src/components/spinner/QSpinnerBall.js +4 -2
  190. package/src/components/spinner/QSpinnerBars.js +4 -2
  191. package/src/components/spinner/QSpinnerBox.js +4 -2
  192. package/src/components/spinner/QSpinnerClock.js +4 -2
  193. package/src/components/spinner/QSpinnerComment.js +4 -2
  194. package/src/components/spinner/QSpinnerCube.js +4 -2
  195. package/src/components/spinner/QSpinnerDots.js +4 -2
  196. package/src/components/spinner/QSpinnerFacebook.js +4 -2
  197. package/src/components/spinner/QSpinnerGears.js +4 -2
  198. package/src/components/spinner/QSpinnerGrid.js +4 -2
  199. package/src/components/spinner/QSpinnerHearts.js +4 -2
  200. package/src/components/spinner/QSpinnerHourglass.js +4 -2
  201. package/src/components/spinner/QSpinnerInfinity.js +4 -2
  202. package/src/components/spinner/QSpinnerIos.js +4 -2
  203. package/src/components/spinner/QSpinnerOrbit.js +4 -2
  204. package/src/components/spinner/QSpinnerOval.js +4 -2
  205. package/src/components/spinner/QSpinnerPie.js +4 -2
  206. package/src/components/spinner/QSpinnerPuff.js +4 -2
  207. package/src/components/spinner/QSpinnerRadio.js +4 -2
  208. package/src/components/spinner/QSpinnerRings.js +4 -2
  209. package/src/components/spinner/QSpinnerTail.js +4 -2
  210. package/src/components/splitter/QSplitter.js +3 -2
  211. package/src/components/stepper/QStep.js +3 -2
  212. package/src/components/stepper/QStepper.js +3 -2
  213. package/src/components/stepper/QStepperNavigation.js +3 -2
  214. package/src/components/stepper/StepHeader.js +4 -2
  215. package/src/components/tab-panels/QTabPanel.js +4 -2
  216. package/src/components/tab-panels/QTabPanels.js +3 -2
  217. package/src/components/table/QTable.js +4 -2
  218. package/src/components/table/QTable.json +1 -0
  219. package/src/components/table/QTd.js +3 -2
  220. package/src/components/table/QTh.js +3 -2
  221. package/src/components/table/QTr.js +3 -2
  222. package/src/components/table/table-pagination.js +2 -2
  223. package/src/components/tabs/QRouteTab.js +4 -2
  224. package/src/components/tabs/QTab.js +3 -3
  225. package/src/components/tabs/QTabs.js +4 -3
  226. package/src/components/time/QTime.js +9 -9
  227. package/src/components/timeline/QTimeline.js +3 -2
  228. package/src/components/timeline/QTimelineEntry.js +3 -2
  229. package/src/components/toggle/QToggle.js +5 -2
  230. package/src/components/toolbar/QToolbar.js +3 -2
  231. package/src/components/toolbar/QToolbarTitle.js +3 -2
  232. package/src/components/tooltip/QTooltip.js +3 -2
  233. package/src/components/tree/QTree.js +12 -7
  234. package/src/components/tree/QTree.json +5 -0
  235. package/src/components/tree/QTree.sass +52 -4
  236. package/src/components/uploader/QUploaderAddTrigger.js +3 -2
  237. package/src/components/uploader/uploader-core.js +2 -7
  238. package/src/components/video/QVideo.js +4 -2
  239. package/src/components/virtual-scroll/QVirtualScroll.js +3 -2
  240. package/src/components/virtual-scroll/use-virtual-scroll.js +17 -1
  241. package/src/composables/private/use-file.js +8 -0
  242. package/src/composables/private/use-model-toggle.js +1 -1
  243. package/src/composables/use-dialog-plugin-component.js +6 -1
  244. package/src/css/normalize.sass +0 -7
  245. package/src/directives/ClosePopup.js +3 -1
  246. package/src/directives/Intersection.js +3 -1
  247. package/src/directives/Morph.js +4 -1
  248. package/src/directives/Mutation.js +3 -1
  249. package/src/directives/Ripple.js +3 -1
  250. package/src/directives/Scroll.js +3 -1
  251. package/src/directives/ScrollFire.js +3 -1
  252. package/src/directives/TouchHold.js +4 -1
  253. package/src/directives/TouchPan.js +4 -1
  254. package/src/directives/TouchRepeat.js +4 -1
  255. package/src/directives/TouchSwipe.js +4 -1
  256. package/src/plugins/Notify.js +4 -3
  257. package/src/utils/create-uploader-component.js +9 -7
  258. package/src/utils/date.js +1 -1
  259. package/src/utils/private/create.js +4 -0
  260. package/src/utils/private/get-emits-object.js +11 -0
  261. package/src/utils/private/vm.js +3 -3
@@ -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.2.5"
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: {
@@ -14,7 +14,30 @@
14
14
 
15
15
  "options": {
16
16
  "type": "Array",
17
- "desc": "Array of objects with value and label props. The binary components will be created according to this array; Props from QToggle, QCheckbox or QRadio can also be added as key/value pairs to control the components singularly",
17
+ "desc": "Array of objects with value, label, and disable (optional) props. The binary components will be created according to this array; Props from QToggle, QCheckbox or QRadio can also be added as key/value pairs to control the components singularly",
18
+ "definition": {
19
+ "label": {
20
+ "type": "String",
21
+ "desc": "Label to display along the component",
22
+ "required": true,
23
+ "examples": [ "Option 1", "Option 2", "Option 3" ]
24
+ },
25
+ "value": {
26
+ "type": "Any",
27
+ "desc": "Value of the option that will be used by the component model",
28
+ "required": true,
29
+ "examples": [ "op1", "op2", "op3" ]
30
+ },
31
+ "disable": {
32
+ "type": "Boolean",
33
+ "desc": "If true, the option will be disabled"
34
+ },
35
+ "...props": {
36
+ "type": "Any",
37
+ "desc": "Any other props from QToggle, QCheckbox, or QRadio",
38
+ "examples": [ "val=\"car\"", ":true-value=\"trueValue\"", "checked-icon=\"visibility\"" ]
39
+ }
40
+ },
18
41
  "examples": [
19
42
  ":options=\"[ { label: 'Option 1', value: 'op1' }, { label: 'Option 2', value: 'op2' }, { label: 'Option 3', value: 'op3', disable: true } ]\""
20
43
  ],
@@ -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: {
@@ -1,12 +1,13 @@
1
- import { defineComponent, watch, onMounted, onBeforeUnmount, getCurrentInstance } from 'vue'
1
+ import { watch, onMounted, onBeforeUnmount, getCurrentInstance } from 'vue'
2
2
 
3
+ import { createComponent } from '../../utils/private/create.js'
3
4
  import { getScrollTarget, getVerticalScrollPosition, getHorizontalScrollPosition } from '../../utils/scroll.js'
4
5
  import { listenOpts, noop } from '../../utils/event.js'
5
6
 
6
7
  const { passive } = listenOpts
7
8
  const axisValues = [ 'both', 'horizontal', 'vertical' ]
8
9
 
9
- export default defineComponent({
10
+ export default createComponent({
10
11
  name: 'QScrollObserver',
11
12
 
12
13
  props: {
@@ -1,4 +1,4 @@
1
- import { h, defineComponent, ref, computed, watch, onBeforeUpdate, onUpdated, onBeforeUnmount, nextTick, getCurrentInstance } from 'vue'
1
+ import { h, ref, computed, watch, onBeforeUpdate, onUpdated, onBeforeUnmount, nextTick, getCurrentInstance } from 'vue'
2
2
 
3
3
  import QField from '../field/QField.js'
4
4
  import QIcon from '../icon/QIcon.js'
@@ -16,6 +16,7 @@ import { useVirtualScroll, useVirtualScrollProps } from '../virtual-scroll/use-v
16
16
  import { useFormProps, useFormInputNameAttr } from '../../composables/private/use-form.js'
17
17
  import useKeyComposition from '../../composables/private/use-key-composition.js'
18
18
 
19
+ import { createComponent } from '../../utils/private/create.js'
19
20
  import { isDeepEqual } from '../../utils/private/is.js'
20
21
  import { stop, prevent, stopAndPrevent } from '../../utils/event.js'
21
22
  import { normalizeToInterval } from '../../utils/format.js'
@@ -26,7 +27,7 @@ const validateNewValueMode = v => [ 'add', 'add-unique', 'toggle' ].includes(v)
26
27
  const reEscapeList = '.*+?^${}()|[]\\'
27
28
  const fieldPropsList = Object.keys(useFieldProps)
28
29
 
29
- export default defineComponent({
30
+ export default createComponent({
30
31
  name: 'QSelect',
31
32
 
32
33
  inheritAttrs: false,
@@ -932,6 +933,12 @@ export default defineComponent({
932
933
  }
933
934
 
934
935
  function getAllOptions () {
936
+ if (noOptions.value === true) {
937
+ return slots[ 'no-option' ] !== void 0
938
+ ? slots[ 'no-option' ]({ inputValue: inputValue.value })
939
+ : void 0
940
+ }
941
+
935
942
  const fn = slots.option !== void 0
936
943
  ? slots.option
937
944
  : scope => {
@@ -1113,14 +1120,6 @@ export default defineComponent({
1113
1120
  }
1114
1121
 
1115
1122
  function getMenu () {
1116
- const child = noOptions.value === true
1117
- ? (
1118
- slots[ 'no-option' ] !== void 0
1119
- ? () => slots[ 'no-option' ]({ inputValue: inputValue.value })
1120
- : void 0
1121
- )
1122
- : getAllOptions
1123
-
1124
1123
  return h(QMenu, {
1125
1124
  ref: menuRef,
1126
1125
  class: menuContentClass.value,
@@ -1145,7 +1144,7 @@ export default defineComponent({
1145
1144
  onBeforeShow: onControlPopupShow,
1146
1145
  onBeforeHide: onMenuBeforeHide,
1147
1146
  onShow: onMenuShow
1148
- }, child)
1147
+ }, getAllOptions)
1149
1148
  }
1150
1149
 
1151
1150
  function onMenuBeforeHide (e) {
@@ -1202,15 +1201,7 @@ export default defineComponent({
1202
1201
  ...listboxAttrs.value,
1203
1202
  onClick: prevent,
1204
1203
  onScrollPassive: onVirtualScrollEvt
1205
- }, (
1206
- noOptions.value === true
1207
- ? (
1208
- slots[ 'no-option' ] !== void 0
1209
- ? slots[ 'no-option' ]({ inputValue: inputValue.value })
1210
- : null
1211
- )
1212
- : getAllOptions()
1213
- ))
1204
+ }, getAllOptions())
1214
1205
  )
1215
1206
 
1216
1207
  return h(QDialog, {
@@ -1,7 +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
 
5
+ import { createComponent } from '../../utils/private/create.js'
6
+
5
7
  const insetMap = {
6
8
  true: 'inset',
7
9
  item: 'item-inset',
@@ -16,7 +18,7 @@ export const margins = {
16
18
  xl: 24
17
19
  }
18
20
 
19
- export default defineComponent({
21
+ export default createComponent({
20
22
  name: 'QSeparator',
21
23
 
22
24
  props: {