quasar 2.10.1 → 2.11.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 (172) hide show
  1. package/dist/api/Dialog.json +3 -1
  2. package/dist/api/QFile.json +2 -0
  3. package/dist/api/QInput.json +2 -0
  4. package/dist/api/QPopupProxy.json +21 -0
  5. package/dist/icon-set/bootstrap-icons.umd.prod.js +1 -1
  6. package/dist/icon-set/eva-icons.umd.prod.js +1 -1
  7. package/dist/icon-set/fontawesome-v5-pro.umd.prod.js +1 -1
  8. package/dist/icon-set/fontawesome-v5.umd.prod.js +1 -1
  9. package/dist/icon-set/fontawesome-v6-pro.umd.prod.js +1 -1
  10. package/dist/icon-set/fontawesome-v6.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/material-symbols-outlined.umd.prod.js +1 -1
  18. package/dist/icon-set/material-symbols-rounded.umd.prod.js +1 -1
  19. package/dist/icon-set/material-symbols-sharp.umd.prod.js +1 -1
  20. package/dist/icon-set/mdi-v3.umd.prod.js +1 -1
  21. package/dist/icon-set/mdi-v4.umd.prod.js +1 -1
  22. package/dist/icon-set/mdi-v5.umd.prod.js +1 -1
  23. package/dist/icon-set/mdi-v6.umd.prod.js +1 -1
  24. package/dist/icon-set/mdi-v7.umd.prod.js +6 -0
  25. package/dist/icon-set/svg-bootstrap-icons.umd.prod.js +1 -1
  26. package/dist/icon-set/svg-eva-icons.umd.prod.js +1 -1
  27. package/dist/icon-set/svg-fontawesome-v5.umd.prod.js +1 -1
  28. package/dist/icon-set/svg-fontawesome-v6.umd.prod.js +1 -1
  29. package/dist/icon-set/svg-ionicons-v4.umd.prod.js +1 -1
  30. package/dist/icon-set/svg-ionicons-v5.umd.prod.js +1 -1
  31. package/dist/icon-set/svg-ionicons-v6.umd.prod.js +1 -1
  32. package/dist/icon-set/svg-line-awesome.umd.prod.js +1 -1
  33. package/dist/icon-set/svg-material-icons-outlined.umd.prod.js +1 -1
  34. package/dist/icon-set/svg-material-icons-round.umd.prod.js +1 -1
  35. package/dist/icon-set/svg-material-icons-sharp.umd.prod.js +1 -1
  36. package/dist/icon-set/svg-material-icons.umd.prod.js +1 -1
  37. package/dist/icon-set/svg-material-symbols-outlined.umd.prod.js +1 -1
  38. package/dist/icon-set/svg-material-symbols-rounded.umd.prod.js +1 -1
  39. package/dist/icon-set/svg-material-symbols-sharp.umd.prod.js +1 -1
  40. package/dist/icon-set/svg-mdi-v6.umd.prod.js +1 -1
  41. package/dist/icon-set/svg-mdi-v7.umd.prod.js +6 -0
  42. package/dist/icon-set/svg-themify.umd.prod.js +1 -1
  43. package/dist/icon-set/themify.umd.prod.js +1 -1
  44. package/dist/lang/ar-TN.umd.prod.js +1 -1
  45. package/dist/lang/ar.umd.prod.js +1 -1
  46. package/dist/lang/az-Latn.umd.prod.js +1 -1
  47. package/dist/lang/bg.umd.prod.js +1 -1
  48. package/dist/lang/bn.umd.prod.js +1 -1
  49. package/dist/lang/ca.umd.prod.js +1 -1
  50. package/dist/lang/cs.umd.prod.js +1 -1
  51. package/dist/lang/da.umd.prod.js +1 -1
  52. package/dist/lang/de.umd.prod.js +1 -1
  53. package/dist/lang/el.umd.prod.js +1 -1
  54. package/dist/lang/en-GB.umd.prod.js +1 -1
  55. package/dist/lang/en-US.umd.prod.js +1 -1
  56. package/dist/lang/eo.umd.prod.js +1 -1
  57. package/dist/lang/es.umd.prod.js +1 -1
  58. package/dist/lang/et.umd.prod.js +1 -1
  59. package/dist/lang/eu.umd.prod.js +1 -1
  60. package/dist/lang/fa-IR.umd.prod.js +1 -1
  61. package/dist/lang/fa.umd.prod.js +1 -1
  62. package/dist/lang/fi.umd.prod.js +1 -1
  63. package/dist/lang/fr.umd.prod.js +1 -1
  64. package/dist/lang/gn.umd.prod.js +1 -1
  65. package/dist/lang/he.umd.prod.js +1 -1
  66. package/dist/lang/hr.umd.prod.js +1 -1
  67. package/dist/lang/hu.umd.prod.js +1 -1
  68. package/dist/lang/id.umd.prod.js +1 -1
  69. package/dist/lang/is.umd.prod.js +1 -1
  70. package/dist/lang/it.umd.prod.js +1 -1
  71. package/dist/lang/ja.umd.prod.js +1 -1
  72. package/dist/lang/{kz.umd.prod.js → kk.umd.prod.js} +2 -2
  73. package/dist/lang/km.umd.prod.js +1 -1
  74. package/dist/lang/ko-KR.umd.prod.js +1 -1
  75. package/dist/lang/kur-CKB.umd.prod.js +1 -1
  76. package/dist/lang/lt.umd.prod.js +1 -1
  77. package/dist/lang/lu.umd.prod.js +1 -1
  78. package/dist/lang/lv.umd.prod.js +1 -1
  79. package/dist/lang/ml.umd.prod.js +1 -1
  80. package/dist/lang/mm.umd.prod.js +1 -1
  81. package/dist/lang/ms.umd.prod.js +1 -1
  82. package/dist/lang/my.umd.prod.js +1 -1
  83. package/dist/lang/nb-NO.umd.prod.js +1 -1
  84. package/dist/lang/nl.umd.prod.js +1 -1
  85. package/dist/lang/pl.umd.prod.js +1 -1
  86. package/dist/lang/pt-BR.umd.prod.js +1 -1
  87. package/dist/lang/pt.umd.prod.js +1 -1
  88. package/dist/lang/ro.umd.prod.js +1 -1
  89. package/dist/lang/ru.umd.prod.js +1 -1
  90. package/dist/lang/sk.umd.prod.js +1 -1
  91. package/dist/lang/sl.umd.prod.js +1 -1
  92. package/dist/lang/sm.umd.prod.js +1 -1
  93. package/dist/lang/sr-CYR.umd.prod.js +1 -1
  94. package/dist/lang/sr.umd.prod.js +1 -1
  95. package/dist/lang/sv.umd.prod.js +1 -1
  96. package/dist/lang/ta.umd.prod.js +1 -1
  97. package/dist/lang/th.umd.prod.js +1 -1
  98. package/dist/lang/tr.umd.prod.js +1 -1
  99. package/dist/lang/ug.umd.prod.js +1 -1
  100. package/dist/lang/uk.umd.prod.js +1 -1
  101. package/dist/lang/uz-Cyrl.umd.prod.js +1 -1
  102. package/dist/lang/uz-Latn.umd.prod.js +1 -1
  103. package/dist/lang/vi.umd.prod.js +1 -1
  104. package/dist/lang/zh-CN.umd.prod.js +1 -1
  105. package/dist/lang/zh-TW.umd.prod.js +1 -1
  106. package/dist/quasar.cjs.prod.js +2 -2
  107. package/dist/quasar.css +203 -13
  108. package/dist/quasar.esm.js +93 -65
  109. package/dist/quasar.esm.prod.js +2 -2
  110. package/dist/quasar.prod.css +1 -1
  111. package/dist/quasar.rtl.css +266 -13
  112. package/dist/quasar.rtl.prod.css +1 -1
  113. package/dist/quasar.sass +116 -16
  114. package/dist/quasar.umd.js +92 -64
  115. package/dist/quasar.umd.prod.js +2 -2
  116. package/dist/transforms/api-list.json +3 -3
  117. package/dist/transforms/auto-import.json +9 -53
  118. package/dist/transforms/import-map.json +4 -26
  119. package/dist/types/api/dialog.d.ts +101 -0
  120. package/dist/types/api/qfile.d.ts +5 -0
  121. package/dist/types/api/qinput.d.ts +27 -0
  122. package/dist/types/api/qpopupproxy.d.ts +3 -0
  123. package/dist/types/api.d.ts +3 -0
  124. package/dist/types/index.d.ts +263 -297
  125. package/dist/vetur/quasar-attributes.json +144 -144
  126. package/dist/vetur/quasar-tags.json +50 -50
  127. package/dist/web-types/web-types.json +634 -634
  128. package/icon-set/mdi-v7.js +146 -0
  129. package/icon-set/mdi-v7.mjs +141 -0
  130. package/icon-set/svg-mdi-v7.js +224 -0
  131. package/icon-set/svg-mdi-v7.mjs +224 -0
  132. package/lang/index.json +4 -4
  133. package/lang/{kz.js → kk.js} +1 -1
  134. package/lang/{kz.mjs → kk.mjs} +0 -0
  135. package/package.json +2 -2
  136. package/src/components/btn/QBtn.sass +0 -1
  137. package/src/components/btn-dropdown/QBtnDropdown.js +0 -1
  138. package/src/components/card/QCard.sass +2 -1
  139. package/src/components/chip/QChip.sass +6 -2
  140. package/src/components/color/QColor.sass +1 -0
  141. package/src/components/date/QDate.js +3 -1
  142. package/src/components/date/QDate.sass +1 -0
  143. package/src/components/dialog/QDialog.js +10 -5
  144. package/src/components/dialog/QDialog.sass +0 -1
  145. package/src/components/expansion-item/QExpansionItem.js +0 -1
  146. package/src/components/fab/QFab.js +3 -6
  147. package/src/components/fab/QFab.sass +2 -1
  148. package/src/components/file/QFile.json +2 -0
  149. package/src/components/img/QImg.js +20 -19
  150. package/src/components/input/QInput.js +9 -3
  151. package/src/components/input/QInput.json +2 -0
  152. package/src/components/input/use-mask.js +2 -0
  153. package/src/components/item/QList.js +1 -1
  154. package/src/components/knob/QKnob.sass +4 -1
  155. package/src/components/layout/QLayout.sass +2 -0
  156. package/src/components/linear-progress/QLinearProgress.js +5 -2
  157. package/src/components/linear-progress/QLinearProgress.sass +3 -1
  158. package/src/components/menu/QMenu.js +4 -1
  159. package/src/components/menu/QMenu.sass +3 -0
  160. package/src/components/popup-proxy/QPopupProxy.js +6 -0
  161. package/src/components/popup-proxy/QPopupProxy.json +19 -0
  162. package/src/components/select/QSelect.js +26 -21
  163. package/src/components/stepper/QStepper.js +2 -2
  164. package/src/components/stepper/QStepper.sass +5 -0
  165. package/src/components/table/QTable.sass +11 -1
  166. package/src/components/time/QTime.sass +1 -0
  167. package/src/components/toggle/QToggle.sass +5 -3
  168. package/src/components/uploader/QUploader.sass +1 -0
  169. package/src/css/core/elevation.sass +17 -4
  170. package/src/css/core/visibility.sass +3 -1
  171. package/src/css/variables.sass +69 -0
  172. package/src/plugins/Dialog.json +3 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Quasar Framework v2.10.1
2
+ * Quasar Framework v2.11.0
3
3
  * (c) 2015-present Razvan Stoenescu
4
4
  * Released under the MIT License.
5
5
  */
@@ -1612,7 +1612,7 @@
1612
1612
  }
1613
1613
 
1614
1614
  var installQuasar = function (parentApp, opts = {}) {
1615
- const $q = { version: '2.10.1' };
1615
+ const $q = { version: '2.11.0' };
1616
1616
 
1617
1617
  if (globalConfigIsFrozen === false) {
1618
1618
  if (opts.config !== void 0) {
@@ -5496,7 +5496,10 @@
5496
5496
  || evt.qClickOutside !== true
5497
5497
  )
5498
5498
  ) {
5499
- refocusTarget.focus();
5499
+ ((evt && evt.type.indexOf('key') === 0
5500
+ ? refocusTarget.closest('[tabindex]:not([tabindex^="-"])')
5501
+ : void 0
5502
+ ) || refocusTarget).focus();
5500
5503
  refocusTarget = null;
5501
5504
  }
5502
5505
 
@@ -5755,7 +5758,6 @@
5755
5758
  'aria-expanded': showing.value === true ? 'true' : 'false',
5756
5759
  'aria-haspopup': 'true',
5757
5760
  'aria-controls': targetUid,
5758
- 'aria-owns': targetUid,
5759
5761
  'aria-label': props.toggleAriaLabel || proxy.$q.lang.label[ showing.value === true ? 'collapse' : 'expand' ](props.label)
5760
5762
  };
5761
5763
 
@@ -13719,7 +13721,9 @@
13719
13721
  });
13720
13722
 
13721
13723
  vue.watch(view, () => {
13722
- blurTargetRef.value !== null && blurTargetRef.value.focus();
13724
+ if (blurTargetRef.value !== null && proxy.$el.contains(document.activeElement) === true) {
13725
+ blurTargetRef.value.focus();
13726
+ }
13723
13727
  });
13724
13728
 
13725
13729
  vue.watch(() => viewModel.value.year, year => {
@@ -14914,7 +14918,10 @@
14914
14918
  hidePortal();
14915
14919
 
14916
14920
  if (refocusTarget !== null) {
14917
- refocusTarget.focus();
14921
+ ((evt && evt.type.indexOf('key') === 0
14922
+ ? refocusTarget.closest('[tabindex]:not([tabindex^="-"])')
14923
+ : void 0
14924
+ ) || refocusTarget).focus();
14918
14925
  refocusTarget = null;
14919
14926
  }
14920
14927
 
@@ -14943,9 +14950,9 @@
14943
14950
  });
14944
14951
  }
14945
14952
 
14946
- function shake (refocusTarget) {
14947
- if (refocusTarget && typeof refocusTarget.focus === 'function') {
14948
- refocusTarget.focus({ preventScroll: true });
14953
+ function shake (focusTarget) {
14954
+ if (focusTarget && typeof focusTarget.focus === 'function') {
14955
+ focusTarget.focus({ preventScroll: true });
14949
14956
  }
14950
14957
  else {
14951
14958
  focus();
@@ -15058,6 +15065,8 @@
15058
15065
 
15059
15066
  vue.onBeforeUnmount(cleanup);
15060
15067
 
15068
+ const backdropEvt = vm.proxy.$q.platform.is.ios === true ? 'onClick' : 'onFocusin';
15069
+
15061
15070
  function renderPortalContent () {
15062
15071
  return vue.h('div', {
15063
15072
  role: 'dialog',
@@ -15075,7 +15084,7 @@
15075
15084
  style: transitionStyle.value,
15076
15085
  'aria-hidden': 'true',
15077
15086
  tabindex: -1,
15078
- onFocusin: onBackdropClick
15087
+ [ backdropEvt ]: onBackdropClick
15079
15088
  })
15080
15089
  : null
15081
15090
  )),
@@ -17884,7 +17893,6 @@
17884
17893
  return {
17885
17894
  role: 'button',
17886
17895
  'aria-expanded': showing.value === true ? 'true' : 'false',
17887
- 'aria-owns': targetUid,
17888
17896
  'aria-controls': targetUid,
17889
17897
  'aria-label': toggleAriaLabel
17890
17898
  }
@@ -18265,13 +18273,11 @@
18265
18273
 
18266
18274
  const actionAttrs = vue.computed(() => {
18267
18275
  const attrs = {
18268
- id: targetUid
18276
+ id: targetUid,
18277
+ role: 'menu'
18269
18278
  };
18270
18279
 
18271
- if (showing.value === true) {
18272
- attrs.role = 'menu';
18273
- }
18274
- else {
18280
+ if (showing.value !== true) {
18275
18281
  attrs[ 'aria-hidden' ] = 'true';
18276
18282
  }
18277
18283
 
@@ -18340,7 +18346,6 @@
18340
18346
  'aria-expanded': showing.value === true ? 'true' : 'false',
18341
18347
  'aria-haspopup': 'true',
18342
18348
  'aria-controls': targetUid,
18343
- 'aria-owns': targetUid,
18344
18349
  onClick: toggle
18345
18350
  }, getTriggerContent),
18346
18351
 
@@ -20525,7 +20530,7 @@
20525
20530
 
20526
20531
  const images = [
20527
20532
  vue.ref(null),
20528
- vue.ref(props.placeholderSrc !== void 0 ? { src: props.placeholderSrc } : null)
20533
+ vue.ref(getPlaceholderSrc())
20529
20534
  ];
20530
20535
 
20531
20536
  const position = vue.ref(0);
@@ -20565,18 +20570,24 @@
20565
20570
  : null
20566
20571
  }
20567
20572
 
20573
+ function getPlaceholderSrc () {
20574
+ return props.placeholderSrc !== void 0
20575
+ ? { src: props.placeholderSrc }
20576
+ : null
20577
+ }
20578
+
20568
20579
  function addImage (imgProps) {
20569
20580
  clearTimeout(loadTimer);
20570
20581
  hasError.value = false;
20571
20582
 
20572
20583
  if (imgProps === null) {
20573
20584
  isLoading.value = false;
20574
- images[ 0 ].value = null;
20575
- images[ 1 ].value = null;
20576
- return
20585
+ images[ position.value ^ 1 ].value = getPlaceholderSrc();
20586
+ }
20587
+ else {
20588
+ isLoading.value = true;
20577
20589
  }
20578
20590
 
20579
- isLoading.value = true;
20580
20591
  images[ position.value ].value = imgProps;
20581
20592
  }
20582
20593
 
@@ -20611,7 +20622,7 @@
20611
20622
  // if component has been already destroyed
20612
20623
  if (loadTimer === null) { return }
20613
20624
 
20614
- position.value = position.value === 1 ? 0 : 1;
20625
+ position.value = position.value ^ 1;
20615
20626
  images[ position.value ].value = null;
20616
20627
  isLoading.value = false;
20617
20628
  hasError.value = false;
@@ -20622,19 +20633,11 @@
20622
20633
  clearTimeout(loadTimer);
20623
20634
  isLoading.value = false;
20624
20635
  hasError.value = true;
20625
- images[ 0 ].value = null;
20626
- images[ 1 ].value = null;
20636
+ images[ position.value ].value = null;
20637
+ images[ position.value ^ 1 ].value = getPlaceholderSrc();
20627
20638
  emit('error', err);
20628
20639
  }
20629
20640
 
20630
- function getContainer (key, child) {
20631
- return vue.h(
20632
- 'div',
20633
- { class: 'q-img__container absolute-full', key },
20634
- child
20635
- )
20636
- }
20637
-
20638
20641
  function getImage (index) {
20639
20642
  const img = images[ index ].value;
20640
20643
 
@@ -20662,7 +20665,11 @@
20662
20665
  data.class += ' q-img__image--loaded';
20663
20666
  }
20664
20667
 
20665
- return getContainer('img' + index, vue.h('img', data))
20668
+ return vue.h(
20669
+ 'div',
20670
+ { class: 'q-img__container absolute-full', key: 'img' + index },
20671
+ vue.h('img', data)
20672
+ )
20666
20673
  }
20667
20674
 
20668
20675
  function getContent () {
@@ -21453,6 +21460,8 @@
21453
21460
  };
21454
21461
 
21455
21462
  function onMaskedKeydown (e) {
21463
+ emit('keydown', e);
21464
+
21456
21465
  if (shouldIgnoreKey(e) === true) {
21457
21466
  return
21458
21467
  }
@@ -21632,7 +21641,8 @@
21632
21641
 
21633
21642
  emits: [
21634
21643
  ...useFieldEmits,
21635
- 'paste', 'change'
21644
+ 'paste', 'change',
21645
+ 'keydown', 'animationend'
21636
21646
  ],
21637
21647
 
21638
21648
  setup (props, { emit, attrs }) {
@@ -21690,7 +21700,7 @@
21690
21700
  }
21691
21701
 
21692
21702
  if (props.autogrow === true) {
21693
- evt.onAnimationend = adjustHeight;
21703
+ evt.onAnimationend = onAnimationend;
21694
21704
  }
21695
21705
 
21696
21706
  return evt
@@ -21845,6 +21855,11 @@
21845
21855
  props.autogrow === true && adjustHeight();
21846
21856
  }
21847
21857
 
21858
+ function onAnimationend (e) {
21859
+ emit('animationend', e);
21860
+ adjustHeight();
21861
+ }
21862
+
21848
21863
  function emitValue (val, stopWatcher) {
21849
21864
  emitValueFn = () => {
21850
21865
  if (
@@ -21895,8 +21910,8 @@
21895
21910
  // but keep the total control size the same
21896
21911
  // Firefox rulez #14263, #14344
21897
21912
  $q.platform.is.firefox !== true && (inp.style.overflow = 'hidden');
21898
- inp.style.height = '1px';
21899
21913
  parentStyle.marginBottom = (inp.scrollHeight - 1) + 'px';
21914
+ inp.style.height = '1px';
21900
21915
 
21901
21916
  inp.style.height = inp.scrollHeight + 'px';
21902
21917
  inp.style.overflow = overflow;
@@ -22232,7 +22247,7 @@
22232
22247
  + (props.padding === true ? ' q-list--padding' : '')
22233
22248
  );
22234
22249
 
22235
- return () => vue.h(props.tag, { class: classes.value, role: 'list' }, hSlot(slots.default))
22250
+ return () => vue.h(props.tag, { class: classes.value }, hSlot(slots.default))
22236
22251
  }
22237
22252
  });
22238
22253
 
@@ -24584,6 +24599,11 @@
24584
24599
  toggle (evt) { popupRef.value.toggle(evt); }
24585
24600
  });
24586
24601
 
24602
+ injectProp(proxy, 'currentComponent', () => ({
24603
+ type: type.value,
24604
+ ref: popupRef.value
24605
+ }));
24606
+
24587
24607
  return () => {
24588
24608
  const data = {
24589
24609
  ref: popupRef,
@@ -24679,9 +24699,11 @@
24679
24699
  );
24680
24700
 
24681
24701
  const trackStyle = vue.computed(() => width(props.buffer !== void 0 ? props.buffer : 1, widthReverse.value, proxy.$q));
24702
+ const transitionSuffix = vue.computed(() => `with${ props.instantFeedback === true ? 'out' : '' }-transition`);
24703
+
24682
24704
  const trackClass = vue.computed(() =>
24683
24705
  'q-linear-progress__track absolute-full'
24684
- + ` q-linear-progress__track--with${ props.instantFeedback === true ? 'out' : '' }-transition`
24706
+ + ` q-linear-progress__track--${ transitionSuffix.value }`
24685
24707
  + ` q-linear-progress__track--${ isDark.value === true ? 'dark' : 'light' }`
24686
24708
  + (props.trackColor !== void 0 ? ` bg-${ props.trackColor }` : '')
24687
24709
  );
@@ -24689,13 +24711,14 @@
24689
24711
  const modelStyle = vue.computed(() => width(motion.value === true ? 1 : props.value, widthReverse.value, proxy.$q));
24690
24712
  const modelClass = vue.computed(() =>
24691
24713
  'q-linear-progress__model absolute-full'
24692
- + ` q-linear-progress__model--with${ props.instantFeedback === true ? 'out' : '' }-transition`
24714
+ + ` q-linear-progress__model--${ transitionSuffix.value }`
24693
24715
  + ` q-linear-progress__model--${ motion.value === true ? 'in' : '' }determinate`
24694
24716
  );
24695
24717
 
24696
24718
  const stripeStyle = vue.computed(() => ({ width: `${ props.value * 100 }%` }));
24697
24719
  const stripeClass = vue.computed(() =>
24698
24720
  `q-linear-progress__stripe absolute-${ props.reverse === true ? 'right' : 'left' }`
24721
+ + ` q-linear-progress__stripe--${ transitionSuffix.value }`
24699
24722
  );
24700
24723
 
24701
24724
  return () => {
@@ -27043,6 +27066,11 @@
27043
27066
  .join(', ')
27044
27067
  );
27045
27068
 
27069
+ const ariaCurrentValue = vue.computed(() => (props.displayValue !== void 0
27070
+ ? props.displayValue
27071
+ : selectedString.value
27072
+ ));
27073
+
27046
27074
  const needsHtmlFn = vue.computed(() => (
27047
27075
  props.optionsHtml === true
27048
27076
  ? () => true
@@ -27060,22 +27088,15 @@
27060
27088
 
27061
27089
  const tabindex = vue.computed(() => (state.focused.value === true ? props.tabindex : -1));
27062
27090
 
27063
- const comboboxAttrs = vue.computed(() => ({
27064
- tabindex: props.tabindex,
27065
- role: 'combobox',
27066
- 'aria-label': props.label,
27067
- 'aria-readonly': props.readonly === true ? 'true' : 'false',
27068
- 'aria-autocomplete': props.useInput === true ? 'list' : 'none',
27069
- 'aria-expanded': menu.value === true ? 'true' : 'false',
27070
- 'aria-owns': `${ state.targetUid.value }_lb`,
27071
- 'aria-controls': `${ state.targetUid.value }_lb`
27072
- }));
27073
-
27074
- const listboxAttrs = vue.computed(() => {
27091
+ const comboboxAttrs = vue.computed(() => {
27075
27092
  const attrs = {
27076
- id: `${ state.targetUid.value }_lb`,
27077
- role: 'listbox',
27078
- 'aria-multiselectable': props.multiple === true ? 'true' : 'false'
27093
+ tabindex: props.tabindex,
27094
+ role: 'combobox',
27095
+ 'aria-label': props.label,
27096
+ 'aria-readonly': props.readonly === true ? 'true' : 'false',
27097
+ 'aria-autocomplete': props.useInput === true ? 'list' : 'none',
27098
+ 'aria-expanded': menu.value === true ? 'true' : 'false',
27099
+ 'aria-controls': `${ state.targetUid.value }_lb`
27079
27100
  };
27080
27101
 
27081
27102
  if (optionIndex.value >= 0) {
@@ -27085,6 +27106,12 @@
27085
27106
  return attrs
27086
27107
  });
27087
27108
 
27109
+ const listboxAttrs = vue.computed(() => ({
27110
+ id: `${ state.targetUid.value }_lb`,
27111
+ role: 'listbox',
27112
+ 'aria-multiselectable': props.multiple === true ? 'true' : 'false'
27113
+ }));
27114
+
27088
27115
  const selectedScope = vue.computed(() => {
27089
27116
  return innerValue.value.map((opt, i) => ({
27090
27117
  index: i,
@@ -27580,7 +27607,9 @@
27580
27607
  && props.useInput !== true
27581
27608
  && e.key !== void 0
27582
27609
  && e.key.length === 1 // printable char
27583
- && e.altKey === e.ctrlKey // not kbd shortcut
27610
+ && e.altKey === false // not kbd shortcut
27611
+ && e.ctrlKey === false // not kbd shortcut
27612
+ && e.metaKey === false // not kbd shortcut, especially on macOS with Command key
27584
27613
  && (e.keyCode !== 32 || searchBuffer.length > 0) // space in middle of search
27585
27614
  ) {
27586
27615
  menu.value !== true && showPopup(e);
@@ -27727,9 +27756,7 @@
27727
27756
 
27728
27757
  return [
27729
27758
  vue.h('span', {
27730
- [ valueAsHtml.value === true ? 'innerHTML' : 'textContent' ]: props.displayValue !== void 0
27731
- ? props.displayValue
27732
- : selectedString.value
27759
+ [ valueAsHtml.value === true ? 'innerHTML' : 'textContent' ]: ariaCurrentValue.value
27733
27760
  })
27734
27761
  ]
27735
27762
  }
@@ -27784,7 +27811,7 @@
27784
27811
  id: isTarget === true ? state.targetUid.value : void 0,
27785
27812
  maxlength: props.maxlength,
27786
27813
  autocomplete: props.autocomplete,
27787
- 'data-autofocus': (fromDialog !== true && props.autofocus === true) || void 0,
27814
+ 'data-autofocus': fromDialog === true || props.autofocus === true || void 0,
27788
27815
  disabled: props.disable === true,
27789
27816
  readonly: props.readonly === true,
27790
27817
  ...inputControlEvents.value
@@ -28284,8 +28311,9 @@
28284
28311
  key: 'd_t',
28285
28312
  class: 'q-select__focus-target',
28286
28313
  id: isTarget === true ? state.targetUid.value : void 0,
28314
+ value: ariaCurrentValue.value,
28287
28315
  readonly: true,
28288
- 'data-autofocus': (fromDialog !== true && props.autofocus === true) || void 0,
28316
+ 'data-autofocus': fromDialog === true || props.autofocus === true || void 0,
28289
28317
  ...attrs,
28290
28318
  onKeydown: onTargetKeydown,
28291
28319
  onKeyup: onTargetKeyup,
@@ -31162,8 +31190,8 @@
31162
31190
 
31163
31191
  const classes = vue.computed(() =>
31164
31192
  `q-stepper q-stepper--${ props.vertical === true ? 'vertical' : 'horizontal' }`
31165
- + (props.flat === true || isDark.value === true ? ' q-stepper--flat no-shadow' : '')
31166
- + (props.bordered === true || (isDark.value === true && props.flat === false) ? ' q-stepper--bordered' : '')
31193
+ + (props.flat === true ? ' q-stepper--flat' : '')
31194
+ + (props.bordered === true ? ' q-stepper--bordered' : '')
31167
31195
  + (isDark.value === true ? ' q-stepper--dark q-dark' : '')
31168
31196
  );
31169
31197
 
@@ -40483,7 +40511,7 @@
40483
40511
  */
40484
40512
 
40485
40513
  var index_umd = {
40486
- version: '2.10.1',
40514
+ version: '2.11.0',
40487
40515
  install (app, opts) {
40488
40516
  installQuasar(app, {
40489
40517
  components,