@vuetify/nightly 3.9.0-beta.0-dev.2025-06-20 → 3.9.0-beta.0-dev.2025-06-24

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 (62) hide show
  1. package/CHANGELOG.md +87 -3
  2. package/dist/json/attributes.json +1523 -1523
  3. package/dist/json/importMap-labs.json +16 -16
  4. package/dist/json/importMap.json +182 -182
  5. package/dist/json/web-types.json +2950 -2950
  6. package/dist/vuetify-labs.cjs +45 -43
  7. package/dist/vuetify-labs.css +5095 -5099
  8. package/dist/vuetify-labs.d.ts +1294 -91
  9. package/dist/vuetify-labs.esm.js +45 -43
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +45 -43
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +45 -43
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +2312 -2316
  16. package/dist/vuetify.d.ts +1294 -91
  17. package/dist/vuetify.esm.js +45 -43
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +45 -43
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +38 -38
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VBtn/VBtn.sass +3 -1
  25. package/lib/components/VCarousel/VCarousel.css +0 -1
  26. package/lib/components/VCarousel/VCarousel.js +1 -0
  27. package/lib/components/VCarousel/VCarousel.js.map +1 -1
  28. package/lib/components/VCarousel/VCarousel.sass +0 -1
  29. package/lib/components/VDatePicker/VDatePickerControls.css +1 -0
  30. package/lib/components/VDatePicker/VDatePickerControls.sass +1 -0
  31. package/lib/components/VDatePicker/VDatePickerMonth.css +3 -8
  32. package/lib/components/VDatePicker/VDatePickerMonth.js +8 -3
  33. package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
  34. package/lib/components/VDatePicker/VDatePickerMonth.sass +3 -8
  35. package/lib/components/VField/VField.js +2 -10
  36. package/lib/components/VField/VField.js.map +1 -1
  37. package/lib/components/VList/VList.js +1 -1
  38. package/lib/components/VList/VList.js.map +1 -1
  39. package/lib/components/VNumberInput/VNumberInput.js +4 -10
  40. package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
  41. package/lib/components/VNumberInput/hold.js +4 -0
  42. package/lib/components/VNumberInput/hold.js.map +1 -1
  43. package/lib/components/VTimePicker/VTimePicker.css +1 -6
  44. package/lib/components/VTimePicker/VTimePicker.sass +1 -6
  45. package/lib/components/VTimePicker/VTimePickerClock.css +5 -4
  46. package/lib/components/VTimePicker/VTimePickerClock.sass +5 -4
  47. package/lib/components/VTimePicker/VTimePickerControls.css +2 -1
  48. package/lib/components/VTimePicker/VTimePickerControls.sass +2 -3
  49. package/lib/components/VTreeview/VTreeviewChildren.js +9 -5
  50. package/lib/components/VTreeview/VTreeviewChildren.js.map +1 -1
  51. package/lib/components/VTreeview/VTreeviewItem.d.ts +1206 -3
  52. package/lib/components/VTreeview/VTreeviewItem.js +8 -9
  53. package/lib/components/VTreeview/VTreeviewItem.js.map +1 -1
  54. package/lib/composables/calendar.d.ts +2 -0
  55. package/lib/composables/calendar.js +7 -3
  56. package/lib/composables/calendar.js.map +1 -1
  57. package/lib/entry-bundler.js +1 -1
  58. package/lib/framework.d.ts +62 -62
  59. package/lib/framework.js +1 -1
  60. package/lib/labs/VPicker/VPicker.css +4 -0
  61. package/lib/labs/VPicker/VPicker.sass +4 -0
  62. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.9.0-beta.0-dev.2025-06-20
2
+ * Vuetify v3.9.0-beta.0-dev.2025-06-24
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -10219,7 +10219,7 @@ function useItems(props) {
10219
10219
  function transformItem$2(props, item) {
10220
10220
  const type = getPropertyFromItem(item, props.itemType, 'item');
10221
10221
  const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle);
10222
- const value = getPropertyFromItem(item, props.itemValue, undefined);
10222
+ const value = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemValue, undefined);
10223
10223
  const children = getPropertyFromItem(item, props.itemChildren);
10224
10224
  const itemProps = props.itemProps === true ? omit(item, ['children']) : getPropertyFromItem(item, props.itemProps);
10225
10225
  const _props = {
@@ -12371,11 +12371,7 @@ const VField = genericComponent()({
12371
12371
  default: slots.loader
12372
12372
  }), hasPrepend && createElementVNode("div", {
12373
12373
  "key": "prepend",
12374
- "class": "v-field__prepend-inner",
12375
- "onMousedown": e => {
12376
- e.preventDefault();
12377
- e.stopPropagation();
12378
- }
12374
+ "class": "v-field__prepend-inner"
12379
12375
  }, [props.prependInnerIcon && createVNode(InputIcon, {
12380
12376
  "key": "prepend-icon",
12381
12377
  "name": "prependInner",
@@ -12444,11 +12440,7 @@ const VField = genericComponent()({
12444
12440
  })]), [[vShow, props.dirty]])]
12445
12441
  }), hasAppend && createElementVNode("div", {
12446
12442
  "key": "append",
12447
- "class": "v-field__append-inner",
12448
- "onMousedown": e => {
12449
- e.preventDefault();
12450
- e.stopPropagation();
12451
- }
12443
+ "class": "v-field__append-inner"
12452
12444
  }, [slots['append-inner']?.(slotProps.value), props.appendInnerIcon && createVNode(InputIcon, {
12453
12445
  "key": "append-icon",
12454
12446
  "name": "appendInner",
@@ -15694,6 +15686,7 @@ const VCarousel = genericComponent()({
15694
15686
  }) : createVNode(VBtn, mergeProps(item, props), null);
15695
15687
  })]
15696
15688
  })]), props.progress && createVNode(VProgressLinear, {
15689
+ "absolute": true,
15697
15690
  "class": "v-carousel__progress",
15698
15691
  "color": typeof props.progress === 'string' ? props.progress : undefined,
15699
15692
  "modelValue": (group.getItemIndex(model.value) + 1) / group.items.value.length * 100
@@ -22608,8 +22601,11 @@ function useCalendar(props) {
22608
22601
  }, v => adapter.getMonth(v));
22609
22602
  const weekDays = computed(() => {
22610
22603
  const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay();
22611
- // Always generate all days, regardless of props.weekdays
22612
- return [0, 1, 2, 3, 4, 5, 6].map(day => (day + firstDayOfWeek) % 7);
22604
+ return props.weekdays.map(day => (day + firstDayOfWeek) % 7);
22605
+ });
22606
+ const weekdayLabels = computed(() => {
22607
+ const labels = adapter.getWeekdays(props.firstDayOfWeek, props.weekdayFormat);
22608
+ return weekDays.value.map(day => labels[day]);
22613
22609
  });
22614
22610
  const weeksInMonth = computed(() => {
22615
22611
  const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek);
@@ -22690,7 +22686,7 @@ function useCalendar(props) {
22690
22686
  if (typeof props.allowedDates === 'function') {
22691
22687
  return !props.allowedDates(date);
22692
22688
  }
22693
- return !props.weekdays.includes(adapter.toJsDate(date).getDay());
22689
+ return false;
22694
22690
  }
22695
22691
  return {
22696
22692
  displayValue,
@@ -22700,6 +22696,7 @@ function useCalendar(props) {
22700
22696
  model,
22701
22697
  weeksInMonth,
22702
22698
  weekDays,
22699
+ weekdayLabels,
22703
22700
  weekNumbers
22704
22701
  };
22705
22702
  }
@@ -22738,7 +22735,9 @@ const VDatePickerMonth = genericComponent()({
22738
22735
  const {
22739
22736
  daysInMonth,
22740
22737
  model,
22741
- weekNumbers
22738
+ weekNumbers,
22739
+ weekDays,
22740
+ weekdayLabels
22742
22741
  } = useCalendar(props);
22743
22742
  const adapter = useDate();
22744
22743
  const rangeStart = shallowRef();
@@ -22810,7 +22809,10 @@ const VDatePickerMonth = genericComponent()({
22810
22809
  }
22811
22810
  }
22812
22811
  useRender(() => createElementVNode("div", {
22813
- "class": "v-date-picker-month"
22812
+ "class": "v-date-picker-month",
22813
+ "style": {
22814
+ '--v-date-picker-days-in-week': weekDays.value.length
22815
+ }
22814
22816
  }, [props.showWeek && createElementVNode("div", {
22815
22817
  "key": "weeks",
22816
22818
  "class": "v-date-picker-month__weeks"
@@ -22826,7 +22828,7 @@ const VDatePickerMonth = genericComponent()({
22826
22828
  "ref": daysRef,
22827
22829
  "key": daysInMonth.value[0].date?.toString(),
22828
22830
  "class": "v-date-picker-month__days"
22829
- }, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek, props.weekdayFormat).map(weekDay => createElementVNode("div", {
22831
+ }, [!props.hideWeekdays && weekdayLabels.value.map(weekDay => createElementVNode("div", {
22830
22832
  "class": normalizeClass(['v-date-picker-month__day', 'v-date-picker-month__weekday'])
22831
22833
  }, [weekDay])), daysInMonth.value.map((item, i) => {
22832
22834
  const slotProps = {
@@ -25506,6 +25508,8 @@ function useHold(_ref) {
25506
25508
  function holdStart(value) {
25507
25509
  holdStop();
25508
25510
  tick(value);
25511
+ window.addEventListener('pointerup', holdStop);
25512
+ document.addEventListener('blur', holdStop);
25509
25513
  timeout = window.setTimeout(() => {
25510
25514
  interval = window.setInterval(() => tick(value), HOLD_REPEAT);
25511
25515
  }, HOLD_DELAY);
@@ -25513,6 +25517,8 @@ function useHold(_ref) {
25513
25517
  function holdStop() {
25514
25518
  window.clearTimeout(timeout);
25515
25519
  window.clearInterval(interval);
25520
+ window.removeEventListener('pointerup', holdStop);
25521
+ document.removeEventListener('blur', holdStop);
25516
25522
  }
25517
25523
  function tick(value) {
25518
25524
  toggleUpDown(value === 'up');
@@ -25648,7 +25654,7 @@ const VNumberInput = genericComponent()({
25648
25654
  onClick: onControlClick,
25649
25655
  onPointerup: onControlMouseup,
25650
25656
  onPointerdown: onUpControlMousedown,
25651
- onPointercancel: onControlPointerCancel
25657
+ onPointercancel: onControlMouseup
25652
25658
  }
25653
25659
  };
25654
25660
  const decrementSlotProps = {
@@ -25656,7 +25662,7 @@ const VNumberInput = genericComponent()({
25656
25662
  onClick: onControlClick,
25657
25663
  onPointerup: onControlMouseup,
25658
25664
  onPointerdown: onDownControlMousedown,
25659
- onPointercancel: onControlPointerCancel
25665
+ onPointercancel: onControlMouseup
25660
25666
  }
25661
25667
  };
25662
25668
  watch(() => props.precision, () => formatInputValue());
@@ -25737,7 +25743,6 @@ const VNumberInput = genericComponent()({
25737
25743
  const el = e.currentTarget;
25738
25744
  el?.releasePointerCapture(e.pointerId);
25739
25745
  e.preventDefault();
25740
- e.stopPropagation();
25741
25746
  holdStop();
25742
25747
  }
25743
25748
  function onUpControlMousedown(e) {
@@ -25754,11 +25759,6 @@ const VNumberInput = genericComponent()({
25754
25759
  e.stopPropagation();
25755
25760
  holdStart('down');
25756
25761
  }
25757
- function onControlPointerCancel(e) {
25758
- const el = e.currentTarget;
25759
- el?.releasePointerCapture(e.pointerId);
25760
- holdStop();
25761
- }
25762
25762
  function clampModel() {
25763
25763
  if (controlsDisabled.value) return;
25764
25764
  if (!vTextFieldRef.value) return;
@@ -25805,7 +25805,7 @@ const VNumberInput = genericComponent()({
25805
25805
  "onClick": onControlClick,
25806
25806
  "onPointerdown": onUpControlMousedown,
25807
25807
  "onPointerup": onControlMouseup,
25808
- "onPointercancel": onControlPointerCancel,
25808
+ "onPointercancel": onControlMouseup,
25809
25809
  "size": controlNodeSize.value,
25810
25810
  "tabindex": "-1"
25811
25811
  }, null) : createVNode(VDefaultsProvider, {
@@ -25835,7 +25835,7 @@ const VNumberInput = genericComponent()({
25835
25835
  "onClick": onControlClick,
25836
25836
  "onPointerdown": onDownControlMousedown,
25837
25837
  "onPointerup": onControlMouseup,
25838
- "onPointercancel": onControlPointerCancel,
25838
+ "onPointercancel": onControlMouseup,
25839
25839
  "size": controlNodeSize.value,
25840
25840
  "tabindex": "-1"
25841
25841
  }, null) : createVNode(VDefaultsProvider, {
@@ -30056,7 +30056,7 @@ const VTreeviewItem = genericComponent()({
30056
30056
  ...slots,
30057
30057
  prepend: hasPrepend ? slotProps => {
30058
30058
  return createElementVNode(Fragment, null, [createVNode(VListItemAction, {
30059
- "start": false
30059
+ "start": true
30060
30060
  }, {
30061
30061
  default: () => [props.toggleIcon ? createVNode(VBtn, {
30062
30062
  "density": "compact",
@@ -30065,13 +30065,11 @@ const VTreeviewItem = genericComponent()({
30065
30065
  "variant": "text",
30066
30066
  "onClick": onClickAction
30067
30067
  }, {
30068
- loader() {
30069
- return createVNode(VProgressCircular, {
30070
- "indeterminate": "disable-shrink",
30071
- "size": "20",
30072
- "width": "2"
30073
- }, null);
30074
- }
30068
+ loader: () => createVNode(VProgressCircular, {
30069
+ "indeterminate": "disable-shrink",
30070
+ "size": "20",
30071
+ "width": "2"
30072
+ }, null)
30075
30073
  }) : createElementVNode("div", {
30076
30074
  "class": "v-treeview-item__level"
30077
30075
  }, null)]
@@ -30079,7 +30077,7 @@ const VTreeviewItem = genericComponent()({
30079
30077
  } : undefined
30080
30078
  });
30081
30079
  });
30082
- return {};
30080
+ return forwardRefs({}, vListItemRef);
30083
30081
  }
30084
30082
  });
30085
30083
 
@@ -30122,6 +30120,7 @@ const VTreeviewChildren = genericComponent()({
30122
30120
  slots
30123
30121
  } = _ref;
30124
30122
  const isLoading = reactive(new Set());
30123
+ const activatorItems = ref([]);
30125
30124
  const isClickOnOpen = computed(() => !props.disabled && (props.openOnClick != null ? props.openOnClick : props.selectable));
30126
30125
  async function checkChildren(item) {
30127
30126
  try {
@@ -30136,7 +30135,7 @@ const VTreeviewChildren = genericComponent()({
30136
30135
  }
30137
30136
  function selectItem(select, isSelected) {
30138
30137
  if (props.selectable) {
30139
- select(!isSelected);
30138
+ select(isSelected);
30140
30139
  }
30141
30140
  }
30142
30141
  return () => slots.default?.() ?? props.items?.map((item, index) => {
@@ -30164,7 +30163,8 @@ const VTreeviewChildren = genericComponent()({
30164
30163
  "indeterminateIcon": props.indeterminateIcon,
30165
30164
  "falseIcon": props.falseIcon,
30166
30165
  "trueIcon": props.trueIcon,
30167
- "onClick": withModifiers(() => selectItem(slotProps.select, slotProps.isSelected), ['stop']),
30166
+ "onUpdate:modelValue": v => selectItem(slotProps.select, v),
30167
+ "onClick": e => e.stopPropagation(),
30168
30168
  "onKeydown": e => {
30169
30169
  if (!['Enter', 'Space'].includes(e.key)) return;
30170
30170
  e.stopPropagation();
@@ -30211,9 +30211,11 @@ const VTreeviewChildren = genericComponent()({
30211
30211
  ...activatorProps,
30212
30212
  value: itemProps?.value,
30213
30213
  onToggleExpand: [() => checkChildren(item), activatorProps.onClick],
30214
- onClick: isClickOnOpen.value ? [() => checkChildren(item), activatorProps.onClick] : undefined
30214
+ onClick: isClickOnOpen.value ? [() => checkChildren(item), activatorProps.onClick] : () => selectItem(activatorItems.value[index]?.select, !activatorItems.value[index]?.isSelected)
30215
30215
  };
30216
- return createVNode(VTreeviewItem, mergeProps(listItemProps, {
30216
+ return createVNode(VTreeviewItem, mergeProps({
30217
+ "ref": el => activatorItems.value[index] = el
30218
+ }, listItemProps, {
30217
30219
  "value": props.returnObject ? item.raw : itemProps.value,
30218
30220
  "loading": loading
30219
30221
  }), slotsWithItem);
@@ -30890,7 +30892,7 @@ function createVuetify$1() {
30890
30892
  };
30891
30893
  });
30892
30894
  }
30893
- const version$1 = "3.9.0-beta.0-dev.2025-06-20";
30895
+ const version$1 = "3.9.0-beta.0-dev.2025-06-24";
30894
30896
  createVuetify$1.version = version$1;
30895
30897
 
30896
30898
  // Vue's inject() can only be used in setup
@@ -30915,7 +30917,7 @@ const createVuetify = function () {
30915
30917
  ...options
30916
30918
  });
30917
30919
  };
30918
- const version = "3.9.0-beta.0-dev.2025-06-20";
30920
+ const version = "3.9.0-beta.0-dev.2025-06-24";
30919
30921
  createVuetify.version = version;
30920
30922
 
30921
30923
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };