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
  */
@@ -1610,7 +1610,7 @@ function prepareApp (app, uiOpts, pluginOpts) {
1610
1610
  }
1611
1611
 
1612
1612
  var installQuasar = function (parentApp, opts = {}) {
1613
- const $q = { version: '2.10.1' };
1613
+ const $q = { version: '2.11.0' };
1614
1614
 
1615
1615
  if (globalConfigIsFrozen === false) {
1616
1616
  if (opts.config !== void 0) {
@@ -5494,7 +5494,10 @@ var QMenu = createComponent({
5494
5494
  || evt.qClickOutside !== true
5495
5495
  )
5496
5496
  ) {
5497
- refocusTarget.focus();
5497
+ ((evt && evt.type.indexOf('key') === 0
5498
+ ? refocusTarget.closest('[tabindex]:not([tabindex^="-"])')
5499
+ : void 0
5500
+ ) || refocusTarget).focus();
5498
5501
  refocusTarget = null;
5499
5502
  }
5500
5503
 
@@ -5753,7 +5756,6 @@ var QBtnDropdown = createComponent({
5753
5756
  'aria-expanded': showing.value === true ? 'true' : 'false',
5754
5757
  'aria-haspopup': 'true',
5755
5758
  'aria-controls': targetUid,
5756
- 'aria-owns': targetUid,
5757
5759
  'aria-label': props.toggleAriaLabel || proxy.$q.lang.label[ showing.value === true ? 'collapse' : 'expand' ](props.label)
5758
5760
  };
5759
5761
 
@@ -13717,7 +13719,9 @@ var QDate = createComponent({
13717
13719
  });
13718
13720
 
13719
13721
  watch(view, () => {
13720
- blurTargetRef.value !== null && blurTargetRef.value.focus();
13722
+ if (blurTargetRef.value !== null && proxy.$el.contains(document.activeElement) === true) {
13723
+ blurTargetRef.value.focus();
13724
+ }
13721
13725
  });
13722
13726
 
13723
13727
  watch(() => viewModel.value.year, year => {
@@ -14912,7 +14916,10 @@ var QDialog = createComponent({
14912
14916
  hidePortal();
14913
14917
 
14914
14918
  if (refocusTarget !== null) {
14915
- refocusTarget.focus();
14919
+ ((evt && evt.type.indexOf('key') === 0
14920
+ ? refocusTarget.closest('[tabindex]:not([tabindex^="-"])')
14921
+ : void 0
14922
+ ) || refocusTarget).focus();
14916
14923
  refocusTarget = null;
14917
14924
  }
14918
14925
 
@@ -14941,9 +14948,9 @@ var QDialog = createComponent({
14941
14948
  });
14942
14949
  }
14943
14950
 
14944
- function shake (refocusTarget) {
14945
- if (refocusTarget && typeof refocusTarget.focus === 'function') {
14946
- refocusTarget.focus({ preventScroll: true });
14951
+ function shake (focusTarget) {
14952
+ if (focusTarget && typeof focusTarget.focus === 'function') {
14953
+ focusTarget.focus({ preventScroll: true });
14947
14954
  }
14948
14955
  else {
14949
14956
  focus();
@@ -15056,6 +15063,8 @@ var QDialog = createComponent({
15056
15063
 
15057
15064
  onBeforeUnmount(cleanup);
15058
15065
 
15066
+ const backdropEvt = vm.proxy.$q.platform.is.ios === true ? 'onClick' : 'onFocusin';
15067
+
15059
15068
  function renderPortalContent () {
15060
15069
  return h('div', {
15061
15070
  role: 'dialog',
@@ -15073,7 +15082,7 @@ var QDialog = createComponent({
15073
15082
  style: transitionStyle.value,
15074
15083
  'aria-hidden': 'true',
15075
15084
  tabindex: -1,
15076
- onFocusin: onBackdropClick
15085
+ [ backdropEvt ]: onBackdropClick
15077
15086
  })
15078
15087
  : null
15079
15088
  )),
@@ -17882,7 +17891,6 @@ var QExpansionItem = createComponent({
17882
17891
  return {
17883
17892
  role: 'button',
17884
17893
  'aria-expanded': showing.value === true ? 'true' : 'false',
17885
- 'aria-owns': targetUid,
17886
17894
  'aria-controls': targetUid,
17887
17895
  'aria-label': toggleAriaLabel
17888
17896
  }
@@ -18263,13 +18271,11 @@ var QFab = createComponent({
18263
18271
 
18264
18272
  const actionAttrs = computed(() => {
18265
18273
  const attrs = {
18266
- id: targetUid
18274
+ id: targetUid,
18275
+ role: 'menu'
18267
18276
  };
18268
18277
 
18269
- if (showing.value === true) {
18270
- attrs.role = 'menu';
18271
- }
18272
- else {
18278
+ if (showing.value !== true) {
18273
18279
  attrs[ 'aria-hidden' ] = 'true';
18274
18280
  }
18275
18281
 
@@ -18338,7 +18344,6 @@ var QFab = createComponent({
18338
18344
  'aria-expanded': showing.value === true ? 'true' : 'false',
18339
18345
  'aria-haspopup': 'true',
18340
18346
  'aria-controls': targetUid,
18341
- 'aria-owns': targetUid,
18342
18347
  onClick: toggle
18343
18348
  }, getTriggerContent),
18344
18349
 
@@ -20523,7 +20528,7 @@ var QImg = createComponent({
20523
20528
 
20524
20529
  const images = [
20525
20530
  ref(null),
20526
- ref(props.placeholderSrc !== void 0 ? { src: props.placeholderSrc } : null)
20531
+ ref(getPlaceholderSrc())
20527
20532
  ];
20528
20533
 
20529
20534
  const position = ref(0);
@@ -20563,18 +20568,24 @@ var QImg = createComponent({
20563
20568
  : null
20564
20569
  }
20565
20570
 
20571
+ function getPlaceholderSrc () {
20572
+ return props.placeholderSrc !== void 0
20573
+ ? { src: props.placeholderSrc }
20574
+ : null
20575
+ }
20576
+
20566
20577
  function addImage (imgProps) {
20567
20578
  clearTimeout(loadTimer);
20568
20579
  hasError.value = false;
20569
20580
 
20570
20581
  if (imgProps === null) {
20571
20582
  isLoading.value = false;
20572
- images[ 0 ].value = null;
20573
- images[ 1 ].value = null;
20574
- return
20583
+ images[ position.value ^ 1 ].value = getPlaceholderSrc();
20584
+ }
20585
+ else {
20586
+ isLoading.value = true;
20575
20587
  }
20576
20588
 
20577
- isLoading.value = true;
20578
20589
  images[ position.value ].value = imgProps;
20579
20590
  }
20580
20591
 
@@ -20609,7 +20620,7 @@ var QImg = createComponent({
20609
20620
  // if component has been already destroyed
20610
20621
  if (loadTimer === null) { return }
20611
20622
 
20612
- position.value = position.value === 1 ? 0 : 1;
20623
+ position.value = position.value ^ 1;
20613
20624
  images[ position.value ].value = null;
20614
20625
  isLoading.value = false;
20615
20626
  hasError.value = false;
@@ -20620,19 +20631,11 @@ var QImg = createComponent({
20620
20631
  clearTimeout(loadTimer);
20621
20632
  isLoading.value = false;
20622
20633
  hasError.value = true;
20623
- images[ 0 ].value = null;
20624
- images[ 1 ].value = null;
20634
+ images[ position.value ].value = null;
20635
+ images[ position.value ^ 1 ].value = getPlaceholderSrc();
20625
20636
  emit('error', err);
20626
20637
  }
20627
20638
 
20628
- function getContainer (key, child) {
20629
- return h(
20630
- 'div',
20631
- { class: 'q-img__container absolute-full', key },
20632
- child
20633
- )
20634
- }
20635
-
20636
20639
  function getImage (index) {
20637
20640
  const img = images[ index ].value;
20638
20641
 
@@ -20660,7 +20663,11 @@ var QImg = createComponent({
20660
20663
  data.class += ' q-img__image--loaded';
20661
20664
  }
20662
20665
 
20663
- return getContainer('img' + index, h('img', data))
20666
+ return h(
20667
+ 'div',
20668
+ { class: 'q-img__container absolute-full', key: 'img' + index },
20669
+ h('img', data)
20670
+ )
20664
20671
  }
20665
20672
 
20666
20673
  function getContent () {
@@ -20691,7 +20698,7 @@ var QImg = createComponent({
20691
20698
  }
20692
20699
 
20693
20700
  {
20694
- if (__QUASAR_SSR_CLIENT__ && isRuntimeSsrPreHydration.value === true) {
20701
+ if (__QUASAR_SSR_CLIENT__) {
20695
20702
  onMounted(() => {
20696
20703
  addImage(getCurrentSrc());
20697
20704
  });
@@ -21456,6 +21463,8 @@ function useMask (props, emit, emitValue, inputRef) {
21456
21463
  };
21457
21464
 
21458
21465
  function onMaskedKeydown (e) {
21466
+ emit('keydown', e);
21467
+
21459
21468
  if (shouldIgnoreKey(e) === true) {
21460
21469
  return
21461
21470
  }
@@ -21635,7 +21644,8 @@ var QInput = createComponent({
21635
21644
 
21636
21645
  emits: [
21637
21646
  ...useFieldEmits,
21638
- 'paste', 'change'
21647
+ 'paste', 'change',
21648
+ 'keydown', 'animationend'
21639
21649
  ],
21640
21650
 
21641
21651
  setup (props, { emit, attrs }) {
@@ -21693,7 +21703,7 @@ var QInput = createComponent({
21693
21703
  }
21694
21704
 
21695
21705
  if (props.autogrow === true) {
21696
- evt.onAnimationend = adjustHeight;
21706
+ evt.onAnimationend = onAnimationend;
21697
21707
  }
21698
21708
 
21699
21709
  return evt
@@ -21848,6 +21858,11 @@ var QInput = createComponent({
21848
21858
  props.autogrow === true && adjustHeight();
21849
21859
  }
21850
21860
 
21861
+ function onAnimationend (e) {
21862
+ emit('animationend', e);
21863
+ adjustHeight();
21864
+ }
21865
+
21851
21866
  function emitValue (val, stopWatcher) {
21852
21867
  emitValueFn = () => {
21853
21868
  if (
@@ -21898,8 +21913,8 @@ var QInput = createComponent({
21898
21913
  // but keep the total control size the same
21899
21914
  // Firefox rulez #14263, #14344
21900
21915
  $q.platform.is.firefox !== true && (inp.style.overflow = 'hidden');
21901
- inp.style.height = '1px';
21902
21916
  parentStyle.marginBottom = (inp.scrollHeight - 1) + 'px';
21917
+ inp.style.height = '1px';
21903
21918
 
21904
21919
  inp.style.height = inp.scrollHeight + 'px';
21905
21920
  inp.style.overflow = overflow;
@@ -22235,7 +22250,7 @@ var QList = createComponent({
22235
22250
  + (props.padding === true ? ' q-list--padding' : '')
22236
22251
  );
22237
22252
 
22238
- return () => h(props.tag, { class: classes.value, role: 'list' }, hSlot(slots.default))
22253
+ return () => h(props.tag, { class: classes.value }, hSlot(slots.default))
22239
22254
  }
22240
22255
  });
22241
22256
 
@@ -24587,6 +24602,11 @@ var QPopupProxy = createComponent({
24587
24602
  toggle (evt) { popupRef.value.toggle(evt); }
24588
24603
  });
24589
24604
 
24605
+ injectProp(proxy, 'currentComponent', () => ({
24606
+ type: type.value,
24607
+ ref: popupRef.value
24608
+ }));
24609
+
24590
24610
  return () => {
24591
24611
  const data = {
24592
24612
  ref: popupRef,
@@ -24682,9 +24702,11 @@ var QLinearProgress = createComponent({
24682
24702
  );
24683
24703
 
24684
24704
  const trackStyle = computed(() => width(props.buffer !== void 0 ? props.buffer : 1, widthReverse.value, proxy.$q));
24705
+ const transitionSuffix = computed(() => `with${ props.instantFeedback === true ? 'out' : '' }-transition`);
24706
+
24685
24707
  const trackClass = computed(() =>
24686
24708
  'q-linear-progress__track absolute-full'
24687
- + ` q-linear-progress__track--with${ props.instantFeedback === true ? 'out' : '' }-transition`
24709
+ + ` q-linear-progress__track--${ transitionSuffix.value }`
24688
24710
  + ` q-linear-progress__track--${ isDark.value === true ? 'dark' : 'light' }`
24689
24711
  + (props.trackColor !== void 0 ? ` bg-${ props.trackColor }` : '')
24690
24712
  );
@@ -24692,13 +24714,14 @@ var QLinearProgress = createComponent({
24692
24714
  const modelStyle = computed(() => width(motion.value === true ? 1 : props.value, widthReverse.value, proxy.$q));
24693
24715
  const modelClass = computed(() =>
24694
24716
  'q-linear-progress__model absolute-full'
24695
- + ` q-linear-progress__model--with${ props.instantFeedback === true ? 'out' : '' }-transition`
24717
+ + ` q-linear-progress__model--${ transitionSuffix.value }`
24696
24718
  + ` q-linear-progress__model--${ motion.value === true ? 'in' : '' }determinate`
24697
24719
  );
24698
24720
 
24699
24721
  const stripeStyle = computed(() => ({ width: `${ props.value * 100 }%` }));
24700
24722
  const stripeClass = computed(() =>
24701
24723
  `q-linear-progress__stripe absolute-${ props.reverse === true ? 'right' : 'left' }`
24724
+ + ` q-linear-progress__stripe--${ transitionSuffix.value }`
24702
24725
  );
24703
24726
 
24704
24727
  return () => {
@@ -27046,6 +27069,11 @@ var QSelect = createComponent({
27046
27069
  .join(', ')
27047
27070
  );
27048
27071
 
27072
+ const ariaCurrentValue = computed(() => (props.displayValue !== void 0
27073
+ ? props.displayValue
27074
+ : selectedString.value
27075
+ ));
27076
+
27049
27077
  const needsHtmlFn = computed(() => (
27050
27078
  props.optionsHtml === true
27051
27079
  ? () => true
@@ -27063,22 +27091,15 @@ var QSelect = createComponent({
27063
27091
 
27064
27092
  const tabindex = computed(() => (state.focused.value === true ? props.tabindex : -1));
27065
27093
 
27066
- const comboboxAttrs = computed(() => ({
27067
- tabindex: props.tabindex,
27068
- role: 'combobox',
27069
- 'aria-label': props.label,
27070
- 'aria-readonly': props.readonly === true ? 'true' : 'false',
27071
- 'aria-autocomplete': props.useInput === true ? 'list' : 'none',
27072
- 'aria-expanded': menu.value === true ? 'true' : 'false',
27073
- 'aria-owns': `${ state.targetUid.value }_lb`,
27074
- 'aria-controls': `${ state.targetUid.value }_lb`
27075
- }));
27076
-
27077
- const listboxAttrs = computed(() => {
27094
+ const comboboxAttrs = computed(() => {
27078
27095
  const attrs = {
27079
- id: `${ state.targetUid.value }_lb`,
27080
- role: 'listbox',
27081
- 'aria-multiselectable': props.multiple === true ? 'true' : 'false'
27096
+ tabindex: props.tabindex,
27097
+ role: 'combobox',
27098
+ 'aria-label': props.label,
27099
+ 'aria-readonly': props.readonly === true ? 'true' : 'false',
27100
+ 'aria-autocomplete': props.useInput === true ? 'list' : 'none',
27101
+ 'aria-expanded': menu.value === true ? 'true' : 'false',
27102
+ 'aria-controls': `${ state.targetUid.value }_lb`
27082
27103
  };
27083
27104
 
27084
27105
  if (optionIndex.value >= 0) {
@@ -27088,6 +27109,12 @@ var QSelect = createComponent({
27088
27109
  return attrs
27089
27110
  });
27090
27111
 
27112
+ const listboxAttrs = computed(() => ({
27113
+ id: `${ state.targetUid.value }_lb`,
27114
+ role: 'listbox',
27115
+ 'aria-multiselectable': props.multiple === true ? 'true' : 'false'
27116
+ }));
27117
+
27091
27118
  const selectedScope = computed(() => {
27092
27119
  return innerValue.value.map((opt, i) => ({
27093
27120
  index: i,
@@ -27583,7 +27610,9 @@ var QSelect = createComponent({
27583
27610
  && props.useInput !== true
27584
27611
  && e.key !== void 0
27585
27612
  && e.key.length === 1 // printable char
27586
- && e.altKey === e.ctrlKey // not kbd shortcut
27613
+ && e.altKey === false // not kbd shortcut
27614
+ && e.ctrlKey === false // not kbd shortcut
27615
+ && e.metaKey === false // not kbd shortcut, especially on macOS with Command key
27587
27616
  && (e.keyCode !== 32 || searchBuffer.length > 0) // space in middle of search
27588
27617
  ) {
27589
27618
  menu.value !== true && showPopup(e);
@@ -27730,9 +27759,7 @@ var QSelect = createComponent({
27730
27759
 
27731
27760
  return [
27732
27761
  h('span', {
27733
- [ valueAsHtml.value === true ? 'innerHTML' : 'textContent' ]: props.displayValue !== void 0
27734
- ? props.displayValue
27735
- : selectedString.value
27762
+ [ valueAsHtml.value === true ? 'innerHTML' : 'textContent' ]: ariaCurrentValue.value
27736
27763
  })
27737
27764
  ]
27738
27765
  }
@@ -27787,7 +27814,7 @@ var QSelect = createComponent({
27787
27814
  id: isTarget === true ? state.targetUid.value : void 0,
27788
27815
  maxlength: props.maxlength,
27789
27816
  autocomplete: props.autocomplete,
27790
- 'data-autofocus': (fromDialog !== true && props.autofocus === true) || void 0,
27817
+ 'data-autofocus': fromDialog === true || props.autofocus === true || void 0,
27791
27818
  disabled: props.disable === true,
27792
27819
  readonly: props.readonly === true,
27793
27820
  ...inputControlEvents.value
@@ -28287,8 +28314,9 @@ var QSelect = createComponent({
28287
28314
  key: 'd_t',
28288
28315
  class: 'q-select__focus-target',
28289
28316
  id: isTarget === true ? state.targetUid.value : void 0,
28317
+ value: ariaCurrentValue.value,
28290
28318
  readonly: true,
28291
- 'data-autofocus': (fromDialog !== true && props.autofocus === true) || void 0,
28319
+ 'data-autofocus': fromDialog === true || props.autofocus === true || void 0,
28292
28320
  ...attrs,
28293
28321
  onKeydown: onTargetKeydown,
28294
28322
  onKeyup: onTargetKeyup,
@@ -31165,8 +31193,8 @@ var QStepper = createComponent({
31165
31193
 
31166
31194
  const classes = computed(() =>
31167
31195
  `q-stepper q-stepper--${ props.vertical === true ? 'vertical' : 'horizontal' }`
31168
- + (props.flat === true || isDark.value === true ? ' q-stepper--flat no-shadow' : '')
31169
- + (props.bordered === true || (isDark.value === true && props.flat === false) ? ' q-stepper--bordered' : '')
31196
+ + (props.flat === true ? ' q-stepper--flat' : '')
31197
+ + (props.bordered === true ? ' q-stepper--bordered' : '')
31170
31198
  + (isDark.value === true ? ' q-stepper--dark q-dark' : '')
31171
31199
  );
31172
31200
 
@@ -40296,7 +40324,7 @@ function runSequentialPromises (
40296
40324
  */
40297
40325
 
40298
40326
  const Quasar = {
40299
- version: '2.10.1',
40327
+ version: '2.11.0',
40300
40328
  install: installQuasar,
40301
40329
  lang: Plugin$8,
40302
40330
  iconSet: Plugin$7