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