vuetify 3.9.5 → 3.9.6

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 (65) hide show
  1. package/dist/json/attributes.json +3026 -3018
  2. package/dist/json/importMap-labs.json +20 -20
  3. package/dist/json/importMap.json +180 -180
  4. package/dist/json/tags.json +2 -0
  5. package/dist/json/web-types.json +5623 -5592
  6. package/dist/vuetify-labs.cjs +135 -78
  7. package/dist/vuetify-labs.css +3281 -3260
  8. package/dist/vuetify-labs.d.ts +89 -65
  9. package/dist/vuetify-labs.esm.js +135 -78
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +135 -78
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +55 -25
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +2730 -2712
  16. package/dist/vuetify.d.ts +63 -63
  17. package/dist/vuetify.esm.js +55 -25
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +55 -25
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +36 -32
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VBtn/VBtn.css +10 -0
  25. package/lib/components/VBtn/VBtn.sass +12 -0
  26. package/lib/components/VCard/VCard.css +5 -0
  27. package/lib/components/VCard/VCard.sass +4 -0
  28. package/lib/components/VDatePicker/VDatePicker.js +10 -4
  29. package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
  30. package/lib/components/VDatePicker/VDatePickerYears.js +18 -8
  31. package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
  32. package/lib/components/VFileInput/VFileInput.js +4 -2
  33. package/lib/components/VFileInput/VFileInput.js.map +1 -1
  34. package/lib/components/VNumberInput/VNumberInput.js +6 -6
  35. package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
  36. package/lib/components/VOtpInput/VOtpInput.js +8 -0
  37. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  38. package/lib/components/VSelect/VSelect.css +3 -0
  39. package/lib/components/VSelect/VSelect.sass +3 -0
  40. package/lib/components/VSparkline/VBarline.js +2 -2
  41. package/lib/components/VSparkline/VBarline.js.map +1 -1
  42. package/lib/components/VSparkline/VTrendline.js +3 -0
  43. package/lib/components/VSparkline/VTrendline.js.map +1 -1
  44. package/lib/components/VTextField/VTextField.js +2 -2
  45. package/lib/components/VTextField/VTextField.js.map +1 -1
  46. package/lib/components/VTextarea/VTextarea.js +4 -2
  47. package/lib/components/VTextarea/VTextarea.js.map +1 -1
  48. package/lib/entry-bundler.js +1 -1
  49. package/lib/framework.d.ts +63 -63
  50. package/lib/framework.js +1 -1
  51. package/lib/labs/VIconBtn/VIconBtn.js +1 -1
  52. package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
  53. package/lib/labs/VPie/VPie.css +3 -0
  54. package/lib/labs/VPie/VPie.js +71 -29
  55. package/lib/labs/VPie/VPie.js.map +1 -1
  56. package/lib/labs/VPie/VPie.sass +3 -0
  57. package/lib/labs/VPie/VPieSegment.d.ts +25 -2
  58. package/lib/labs/VPie/VPieSegment.js +11 -6
  59. package/lib/labs/VPie/VPieSegment.js.map +1 -1
  60. package/lib/labs/VPie/VPieTooltip.d.ts +10 -0
  61. package/lib/labs/VPie/VPieTooltip.js +4 -22
  62. package/lib/labs/VPie/VPieTooltip.js.map +1 -1
  63. package/lib/labs/VPie/types.d.ts +1 -0
  64. package/lib/labs/VPie/types.js.map +1 -1
  65. package/package.json +2 -2
package/dist/vuetify.cjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.9.5
2
+ * Vuetify v3.9.6
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -12786,7 +12786,7 @@
12786
12786
  "onClick:prependInner": props['onClick:prependInner'],
12787
12787
  "onClick:appendInner": props['onClick:appendInner'],
12788
12788
  "role": props.role
12789
- }, fieldProps, {
12789
+ }, omit(fieldProps, ['onClick:clear']), {
12790
12790
  "id": id.value,
12791
12791
  "active": isActive.value || isDirty.value,
12792
12792
  "dirty": isDirty.value || props.dirty,
@@ -23560,6 +23560,9 @@
23560
23560
  const VDatePickerYears = genericComponent()({
23561
23561
  name: 'VDatePickerYears',
23562
23562
  props: makeVDatePickerYearsProps(),
23563
+ directives: {
23564
+ vIntersect: Intersect
23565
+ },
23563
23566
  emits: {
23564
23567
  'update:modelValue': year => true
23565
23568
  },
@@ -23596,10 +23599,12 @@
23596
23599
  model.value = model.value ?? adapter.getYear(adapter.date());
23597
23600
  });
23598
23601
  const yearRef = templateRef();
23599
- vue.onMounted(async () => {
23600
- await vue.nextTick();
23602
+ function focusSelectedYear() {
23601
23603
  yearRef.el?.focus();
23602
- });
23604
+ yearRef.el?.scrollIntoView({
23605
+ block: 'center'
23606
+ });
23607
+ }
23603
23608
  function isYearAllowed(year) {
23604
23609
  if (Array.isArray(props.allowedYears) && props.allowedYears.length) {
23605
23610
  return props.allowedYears.includes(year);
@@ -23609,7 +23614,7 @@
23609
23614
  }
23610
23615
  return true;
23611
23616
  }
23612
- useRender(() => vue.createElementVNode("div", {
23617
+ useRender(() => vue.withDirectives(vue.createElementVNode("div", {
23613
23618
  "class": "v-date-picker-years",
23614
23619
  "style": {
23615
23620
  height: convertToUnit(props.height)
@@ -23640,7 +23645,11 @@
23640
23645
  }) ?? vue.createVNode(VBtn, vue.mergeProps({
23641
23646
  "key": "month"
23642
23647
  }, btnProps), null);
23643
- })])]));
23648
+ })])]), [[Intersect, {
23649
+ handler: focusSelectedYear
23650
+ }, null, {
23651
+ once: true
23652
+ }]]));
23644
23653
  return {};
23645
23654
  }
23646
23655
  });
@@ -23781,6 +23790,12 @@
23781
23790
  }
23782
23791
  return targets;
23783
23792
  });
23793
+ const allowedYears = vue.computed(() => {
23794
+ return props.allowedYears || isYearAllowed;
23795
+ });
23796
+ const allowedMonths = vue.computed(() => {
23797
+ return props.allowedMonths || isMonthAllowed;
23798
+ });
23784
23799
  function isAllowedInRange(start, end) {
23785
23800
  const allowedDates = props.allowedDates;
23786
23801
  if (typeof allowedDates !== 'function') return true;
@@ -23790,7 +23805,7 @@
23790
23805
  }
23791
23806
  return false;
23792
23807
  }
23793
- function allowedYears(year) {
23808
+ function isYearAllowed(year) {
23794
23809
  if (typeof props.allowedDates === 'function') {
23795
23810
  const startOfYear = adapter.parseISO(`${year}-01-01`);
23796
23811
  return isAllowedInRange(startOfYear, adapter.endOfYear(startOfYear));
@@ -23803,7 +23818,7 @@
23803
23818
  }
23804
23819
  return true;
23805
23820
  }
23806
- function allowedMonths(month) {
23821
+ function isMonthAllowed(month) {
23807
23822
  if (typeof props.allowedDates === 'function') {
23808
23823
  const monthTwoDigits = String(month + 1).padStart(2, '0');
23809
23824
  const startOfMonth = adapter.parseISO(`${year.value}-${monthTwoDigits}-01`);
@@ -23931,7 +23946,7 @@
23931
23946
  "min": minDate.value,
23932
23947
  "max": maxDate.value,
23933
23948
  "year": year.value,
23934
- "allowedMonths": allowedMonths
23949
+ "allowedMonths": allowedMonths.value
23935
23950
  }), {
23936
23951
  month: slots.month
23937
23952
  }) : viewMode.value === 'year' ? vue.createVNode(VDatePickerYears, vue.mergeProps({
@@ -23941,7 +23956,7 @@
23941
23956
  "onUpdate:modelValue": [$event => year.value = $event, onUpdateYear],
23942
23957
  "min": minDate.value,
23943
23958
  "max": maxDate.value,
23944
- "allowedYears": allowedYears
23959
+ "allowedYears": allowedYears.value
23945
23960
  }), {
23946
23961
  year: slots.year
23947
23962
  }) : vue.createVNode(VDatePickerMonth, vue.mergeProps({
@@ -24676,7 +24691,10 @@
24676
24691
  modelValue: _,
24677
24692
  ...inputProps
24678
24693
  } = VInput.filterProps(props);
24679
- const fieldProps = VField.filterProps(props);
24694
+ const fieldProps = {
24695
+ ...VField.filterProps(props),
24696
+ 'onClick:clear': onClear
24697
+ };
24680
24698
  return vue.createVNode(VInput, vue.mergeProps({
24681
24699
  "ref": vInputRef,
24682
24700
  "modelValue": props.multiple ? model.value : model.value[0],
@@ -24707,7 +24725,6 @@
24707
24725
  "prependIcon": props.prependIcon,
24708
24726
  "onMousedown": onControlMousedown,
24709
24727
  "onClick": onControlClick,
24710
- "onClick:clear": onClear,
24711
24728
  "onClick:prependInner": props['onClick:prependInner'],
24712
24729
  "onClick:appendInner": props['onClick:appendInner']
24713
24730
  }, fieldProps, {
@@ -26398,7 +26415,6 @@
26398
26415
  "aria-hidden": "true",
26399
26416
  "data-testid": "increment",
26400
26417
  "disabled": !canIncrease.value,
26401
- "flat": true,
26402
26418
  "height": controlNodeDefaultHeight.value,
26403
26419
  "icon": incrementIcon.value,
26404
26420
  "key": "increment-btn",
@@ -26407,16 +26423,17 @@
26407
26423
  "onPointerup": onControlMouseup,
26408
26424
  "onPointercancel": onControlMouseup,
26409
26425
  "size": controlNodeSize.value,
26426
+ "variant": "text",
26410
26427
  "tabindex": "-1"
26411
26428
  }, null) : vue.createVNode(VDefaultsProvider, {
26412
26429
  "key": "increment-defaults",
26413
26430
  "defaults": {
26414
26431
  VBtn: {
26415
26432
  disabled: !canIncrease.value,
26416
- flat: true,
26417
26433
  height: controlNodeDefaultHeight.value,
26418
26434
  size: controlNodeSize.value,
26419
- icon: incrementIcon.value
26435
+ icon: incrementIcon.value,
26436
+ variant: 'text'
26420
26437
  }
26421
26438
  }
26422
26439
  }, {
@@ -26428,7 +26445,6 @@
26428
26445
  "aria-hidden": "true",
26429
26446
  "data-testid": "decrement",
26430
26447
  "disabled": !canDecrease.value,
26431
- "flat": true,
26432
26448
  "height": controlNodeDefaultHeight.value,
26433
26449
  "icon": decrementIcon.value,
26434
26450
  "key": "decrement-btn",
@@ -26437,16 +26453,17 @@
26437
26453
  "onPointerup": onControlMouseup,
26438
26454
  "onPointercancel": onControlMouseup,
26439
26455
  "size": controlNodeSize.value,
26456
+ "variant": "text",
26440
26457
  "tabindex": "-1"
26441
26458
  }, null) : vue.createVNode(VDefaultsProvider, {
26442
26459
  "key": "decrement-defaults",
26443
26460
  "defaults": {
26444
26461
  VBtn: {
26445
26462
  disabled: !canDecrease.value,
26446
- flat: true,
26447
26463
  height: controlNodeDefaultHeight.value,
26448
26464
  size: controlNodeSize.value,
26449
- icon: decrementIcon.value
26465
+ icon: decrementIcon.value,
26466
+ variant: 'text'
26450
26467
  }
26451
26468
  }
26452
26469
  }, {
@@ -26582,6 +26599,7 @@
26582
26599
  const contentRef = vue.ref();
26583
26600
  const inputRef = vue.ref([]);
26584
26601
  const current = vue.computed(() => inputRef.value[focusIndex.value]);
26602
+ let _isComposing = false;
26585
26603
  useToggleScope(() => props.autofocus, () => {
26586
26604
  const intersectScope = vue.effectScope();
26587
26605
  intersectScope.run(() => {
@@ -26606,6 +26624,7 @@
26606
26624
  current.value.value = '';
26607
26625
  return;
26608
26626
  }
26627
+ if (_isComposing) return;
26609
26628
  const array = model.value.slice();
26610
26629
  const value = current.value.value;
26611
26630
  array[focusIndex.value] = value;
@@ -26618,6 +26637,10 @@
26618
26637
  model.value = array;
26619
26638
  if (target) focusChild(contentRef.value, target);
26620
26639
  }
26640
+ function onCompositionend() {
26641
+ _isComposing = false;
26642
+ onInput();
26643
+ }
26621
26644
  function onKeydown(e) {
26622
26645
  const array = model.value.slice();
26623
26646
  const index = focusIndex.value;
@@ -26731,6 +26754,8 @@
26731
26754
  "onFocus": e => onFocus(e, i),
26732
26755
  "onBlur": onBlur,
26733
26756
  "onKeydown": onKeydown,
26757
+ "onCompositionstart": () => _isComposing = true,
26758
+ "onCompositionend": onCompositionend,
26734
26759
  "onPaste": event => onPaste(i, event)
26735
26760
  }, null);
26736
26761
  }
@@ -27955,7 +27980,7 @@
27955
27980
  let minValue = props.min != null ? Number(props.min) : Math.min(...values);
27956
27981
  if (minValue > 0 && props.min == null) minValue = 0;
27957
27982
  if (maxValue < 0 && props.max == null) maxValue = 0;
27958
- const gridX = maxX / totalValues;
27983
+ const gridX = maxX / (totalValues === 1 ? 2 : totalValues);
27959
27984
  const gridY = (maxY - minY) / (maxValue - minValue || 1);
27960
27985
  const horizonY = maxY - Math.abs(minValue * gridY);
27961
27986
  return values.map((value, index) => {
@@ -27986,7 +28011,7 @@
27986
28011
  return labels;
27987
28012
  });
27988
28013
  const bars = vue.computed(() => genBars(items.value, boundary.value));
27989
- const offsetX = vue.computed(() => (Math.abs(bars.value[0].x - bars.value[1].x) - lineWidth.value) / 2);
28014
+ const offsetX = vue.computed(() => bars.value.length === 1 ? (boundary.value.maxX - lineWidth.value) / 2 : (Math.abs(bars.value[0].x - bars.value[1].x) - lineWidth.value) / 2);
27990
28015
  const smooth = vue.computed(() => typeof props.smooth === 'boolean' ? props.smooth ? 2 : 0 : Number(props.smooth));
27991
28016
  useRender(() => {
27992
28017
  const gradientData = !props.gradient.slice().length ? [''] : props.gradient.slice().reverse();
@@ -28137,6 +28162,9 @@
28137
28162
  minY,
28138
28163
  maxY
28139
28164
  } = boundary;
28165
+ if (values.length === 1) {
28166
+ values = [values[0], values[0]];
28167
+ }
28140
28168
  const totalValues = values.length;
28141
28169
  const maxValue = props.max != null ? Number(props.max) : Math.max(...values);
28142
28170
  const minValue = props.min != null ? Number(props.min) : Math.min(...values);
@@ -29451,7 +29479,10 @@
29451
29479
  modelValue: _,
29452
29480
  ...inputProps
29453
29481
  } = VInput.filterProps(props);
29454
- const fieldProps = VField.filterProps(props);
29482
+ const fieldProps = {
29483
+ ...VField.filterProps(props),
29484
+ 'onClick:clear': onClear
29485
+ };
29455
29486
  return vue.createVNode(VInput, vue.mergeProps({
29456
29487
  "ref": vInputRef,
29457
29488
  "modelValue": model.value,
@@ -29487,7 +29518,6 @@
29487
29518
  },
29488
29519
  "onClick": onControlClick,
29489
29520
  "onMousedown": onControlMousedown,
29490
- "onClick:clear": onClear,
29491
29521
  "onClick:prependInner": props['onClick:prependInner'],
29492
29522
  "onClick:appendInner": props['onClick:appendInner']
29493
29523
  }, fieldProps, {
@@ -31544,7 +31574,7 @@
31544
31574
  };
31545
31575
  });
31546
31576
  }
31547
- const version$1 = "3.9.5";
31577
+ const version$1 = "3.9.6";
31548
31578
  createVuetify$1.version = version$1;
31549
31579
 
31550
31580
  // Vue's inject() can only be used in setup
@@ -31569,7 +31599,7 @@
31569
31599
  ...options
31570
31600
  });
31571
31601
  };
31572
- const version = "3.9.5";
31602
+ const version = "3.9.6";
31573
31603
  createVuetify.version = version;
31574
31604
 
31575
31605
  exports.blueprints = index;