@vuetify/nightly 3.11.4-dev.2025-12-21 → 3.11.4-dev.2025-12-22

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 (61) hide show
  1. package/CHANGELOG.md +25 -3
  2. package/dist/json/attributes.json +1109 -1109
  3. package/dist/json/importMap-labs.json +24 -24
  4. package/dist/json/importMap.json +196 -196
  5. package/dist/json/web-types.json +2247 -2247
  6. package/dist/vuetify-labs.cjs +40 -15
  7. package/dist/vuetify-labs.css +4805 -4809
  8. package/dist/vuetify-labs.d.ts +83 -70
  9. package/dist/vuetify-labs.esm.js +40 -15
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +40 -15
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +35 -11
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +3454 -3458
  16. package/dist/vuetify.d.ts +83 -70
  17. package/dist/vuetify.esm.js +35 -11
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +35 -11
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +17 -17
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VDataTable/VDataTableRows.js +1 -1
  25. package/lib/components/VDataTable/VDataTableRows.js.map +1 -1
  26. package/lib/components/VDataTable/VDataTableVirtual.js +5 -2
  27. package/lib/components/VDataTable/VDataTableVirtual.js.map +1 -1
  28. package/lib/components/VDataTable/types.d.ts +1 -0
  29. package/lib/components/VDataTable/types.js.map +1 -1
  30. package/lib/components/VDatePicker/VDatePickerYears.js +7 -3
  31. package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
  32. package/lib/components/VGrid/VContainer.css +34 -0
  33. package/lib/components/VGrid/VContainer.js +1 -1
  34. package/lib/components/VGrid/VContainer.js.map +1 -1
  35. package/lib/components/VGrid/VContainer.sass +15 -0
  36. package/lib/components/VGrid/VGrid.css +0 -39
  37. package/lib/components/VGrid/VGrid.sass +0 -15
  38. package/lib/components/VGrid/VSpacer.css +3 -0
  39. package/lib/components/VGrid/VSpacer.js +1 -1
  40. package/lib/components/VGrid/VSpacer.js.map +1 -1
  41. package/lib/components/VGrid/VSpacer.sass +5 -0
  42. package/lib/components/VList/VListItem.d.ts +3 -0
  43. package/lib/components/VNumberInput/VNumberInput.js +1 -1
  44. package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
  45. package/lib/components/VTreeview/VTreeviewChildren.js +2 -2
  46. package/lib/components/VTreeview/VTreeviewChildren.js.map +1 -1
  47. package/lib/components/VTreeview/VTreeviewItem.d.ts +9 -0
  48. package/lib/composables/nested/nested.d.ts +3 -0
  49. package/lib/composables/nested/nested.js +17 -0
  50. package/lib/composables/nested/nested.js.map +1 -1
  51. package/lib/entry-bundler.js +1 -1
  52. package/lib/framework.d.ts +71 -70
  53. package/lib/framework.js +1 -1
  54. package/lib/labs/VDateInput/VDateInput.js +5 -4
  55. package/lib/labs/VDateInput/VDateInput.js.map +1 -1
  56. package/lib/styles/settings/_variables.scss +11 -0
  57. package/lib/styles/utilities/_display.sass +2 -1
  58. package/lib/styles/utilities/_elevation.scss +2 -1
  59. package/lib/styles/utilities/_pointer-events.sass +2 -1
  60. package/lib/styles/utilities/_screenreaders.sass +2 -1
  61. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.11.4-dev.2025-12-21
2
+ * Vuetify v3.11.4-dev.2025-12-22
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -9497,6 +9497,7 @@
9497
9497
  itemsRegistration: vue.ref('render'),
9498
9498
  register: () => null,
9499
9499
  unregister: () => null,
9500
+ updateDisabled: () => null,
9500
9501
  children: vue.ref(new Map()),
9501
9502
  parents: vue.ref(new Map()),
9502
9503
  disabled: vue.ref(new Set()),
@@ -9692,6 +9693,19 @@
9692
9693
  parents.value.delete(id);
9693
9694
  itemsUpdatePropagation();
9694
9695
  },
9696
+ updateDisabled: (id, isDisabled) => {
9697
+ if (isDisabled) {
9698
+ disabled.value.add(id);
9699
+ } else {
9700
+ disabled.value.delete(id);
9701
+ }
9702
+ // classic selection requires refresh to re-evaluate on/off/indeterminate but
9703
+ // currently it is only run for selection interactions, so it will set new disabled
9704
+ // to "off" and the visual state becomes out of sync
9705
+ // -- selected.value = new Map(selected.value)
9706
+ // it is not clear if the framework should un-select when disabled changed to true
9707
+ // more discussion is needed
9708
+ },
9695
9709
  open: (id, value, event) => {
9696
9710
  vm.emit('click:open', {
9697
9711
  id,
@@ -9824,6 +9838,9 @@
9824
9838
  parent.root.register(val, parent.id.value, vue.toValue(isDisabled), isGroup);
9825
9839
  });
9826
9840
  });
9841
+ vue.watch(() => vue.toValue(isDisabled), val => {
9842
+ parent.root.updateDisabled(computedId.value, val);
9843
+ });
9827
9844
  isGroup && vue.provide(VNestedSymbol, item);
9828
9845
  return item;
9829
9846
  };
@@ -25680,7 +25697,7 @@
25680
25697
  return slots['group-summary']?.(slotProps) ?? '';
25681
25698
  }
25682
25699
  const slotProps = {
25683
- index,
25700
+ index: item.virtualIndex ?? index,
25684
25701
  item: item.raw,
25685
25702
  internalItem: item,
25686
25703
  columns: columns.value,
@@ -26155,7 +26172,10 @@
26155
26172
  calculateVisibleItems,
26156
26173
  scrollToIndex
26157
26174
  } = useVirtual(props, flatItems);
26158
- const displayItems = vue.computed(() => computedItems.value.map(item => item.raw));
26175
+ const displayItems = vue.computed(() => computedItems.value.map(item => ({
26176
+ ...item.raw,
26177
+ virtualIndex: item.index
26178
+ })));
26159
26179
  useOptions({
26160
26180
  sortBy,
26161
26181
  page: vue.shallowRef(1),
@@ -26248,7 +26268,7 @@
26248
26268
  }) ?? vue.createVNode(VDataTableRow, vue.mergeProps(itemSlotProps.props, {
26249
26269
  "ref": itemRef,
26250
26270
  "key": itemSlotProps.internalItem.index,
26251
- "index": itemSlotProps.internalItem.index
26271
+ "index": itemSlotProps.index
26252
26272
  }), slots);
26253
26273
  }
26254
26274
  })
@@ -27549,6 +27569,7 @@
27549
27569
  } = _ref;
27550
27570
  const adapter = useDate();
27551
27571
  const model = useProxiedModel(props, 'modelValue');
27572
+ const hasFocusedItem = vue.shallowRef(false);
27552
27573
  const years = vue.computed(() => {
27553
27574
  const year = adapter.getYear(adapter.date());
27554
27575
  let min = year - 100;
@@ -27576,7 +27597,6 @@
27576
27597
  });
27577
27598
  const yearRef = templateRef();
27578
27599
  function focusSelectedYear() {
27579
- yearRef.el?.focus();
27580
27600
  yearRef.el?.scrollIntoView({
27581
27601
  block: 'center'
27582
27602
  });
@@ -27596,7 +27616,11 @@
27596
27616
  height: convertToUnit(props.height)
27597
27617
  }
27598
27618
  }, [vue.createElementVNode("div", {
27599
- "class": "v-date-picker-years__content"
27619
+ "class": "v-date-picker-years__content",
27620
+ "onFocus": () => yearRef.el?.focus(),
27621
+ "onFocusin": () => hasFocusedItem.value = true,
27622
+ "onFocusout": () => hasFocusedItem.value = false,
27623
+ "tabindex": hasFocusedItem.value ? -1 : 0
27600
27624
  }, [years.value.map((year, i) => {
27601
27625
  const btnProps = {
27602
27626
  ref: model.value === year.value ? yearRef : undefined,
@@ -30971,7 +30995,7 @@
30971
30995
  "focused": isFocused.value,
30972
30996
  "onUpdate:focused": $event => isFocused.value = $event,
30973
30997
  "validationValue": model.value,
30974
- "error": isOutOfRange.value || undefined,
30998
+ "error": props.error || isOutOfRange.value || undefined,
30975
30999
  "onBeforeinput": onBeforeinput,
30976
31000
  "onFocus": onFocus,
30977
31001
  "onBlur": onBlur,
@@ -35766,7 +35790,7 @@
35766
35790
  default: () => [vue.createVNode(VCheckboxBtn, {
35767
35791
  "key": item.value,
35768
35792
  "modelValue": slotProps.isSelected,
35769
- "disabled": props.disabled,
35793
+ "disabled": props.disabled || itemProps.disabled,
35770
35794
  "loading": loading,
35771
35795
  "color": props.selectedColor,
35772
35796
  "density": props.density,
@@ -35829,7 +35853,7 @@
35829
35853
  hideActions: props.hideActions,
35830
35854
  indentLines: indentLines.node,
35831
35855
  onToggleExpand: [() => checkChildren(item), activatorProps.onClick],
35832
- onClick: isClickOnOpen.value ? [() => checkChildren(item), activatorProps.onClick] : () => selectItem(activatorItems.value[index]?.select, !activatorItems.value[index]?.isSelected)
35856
+ onClick: props.disabled || itemProps.disabled ? undefined : isClickOnOpen.value ? [() => checkChildren(item), activatorProps.onClick] : () => selectItem(activatorItems.value[index]?.select, !activatorItems.value[index]?.isSelected)
35833
35857
  };
35834
35858
  return renderSlot(slots.header, {
35835
35859
  props: listItemProps,
@@ -36490,6 +36514,7 @@
36490
36514
  }
36491
36515
  }
36492
36516
  useRender(() => {
36517
+ const hasPrepend = !!(props.prependIcon || slots.prepend);
36493
36518
  const confirmEditProps = VConfirmEdit.filterProps(props);
36494
36519
  const datePickerProps = {
36495
36520
  ...VDatePicker.filterProps(omit(props, ['active', 'bgColor', 'color', 'location', 'rounded', 'maxWidth', 'minWidth', 'width'])),
@@ -36567,12 +36592,12 @@
36567
36592
  }
36568
36593
  })]
36569
36594
  }), slots.default?.()]),
36570
- prepend: prependSlotProps => slots.prepend ? slots.prepend(prependSlotProps) : props.prependIcon && vue.createVNode(InputIcon, {
36595
+ prepend: hasPrepend ? prependSlotProps => slots.prepend ? slots.prepend(prependSlotProps) : props.prependIcon && vue.createVNode(InputIcon, {
36571
36596
  "key": "prepend-icon",
36572
36597
  "name": "prepend",
36573
- "tabindex": -1,
36574
- "onClick": onClick
36575
- }, null)
36598
+ "tabindex": props['onClick:prepend'] ? undefined : -1,
36599
+ "onClick": isInteractive.value ? onClick : undefined
36600
+ }, null) : undefined
36576
36601
  });
36577
36602
  });
36578
36603
  return forwardRefs({}, vTextFieldRef);
@@ -39422,7 +39447,7 @@
39422
39447
  };
39423
39448
  });
39424
39449
  }
39425
- const version$1 = "3.11.4-dev.2025-12-21";
39450
+ const version$1 = "3.11.4-dev.2025-12-22";
39426
39451
  createVuetify$1.version = version$1;
39427
39452
 
39428
39453
  // Vue's inject() can only be used in setup
@@ -39725,7 +39750,7 @@
39725
39750
 
39726
39751
  /* eslint-disable local-rules/sort-imports */
39727
39752
 
39728
- const version = "3.11.4-dev.2025-12-21";
39753
+ const version = "3.11.4-dev.2025-12-22";
39729
39754
 
39730
39755
  /* eslint-disable local-rules/sort-imports */
39731
39756