@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
package/dist/vuetify.cjs CHANGED
@@ -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
  */
@@ -9826,6 +9826,7 @@
9826
9826
  itemsRegistration: vue.ref('render'),
9827
9827
  register: () => null,
9828
9828
  unregister: () => null,
9829
+ updateDisabled: () => null,
9829
9830
  children: vue.ref(new Map()),
9830
9831
  parents: vue.ref(new Map()),
9831
9832
  disabled: vue.ref(new Set()),
@@ -10021,6 +10022,19 @@
10021
10022
  parents.value.delete(id);
10022
10023
  itemsUpdatePropagation();
10023
10024
  },
10025
+ updateDisabled: (id, isDisabled) => {
10026
+ if (isDisabled) {
10027
+ disabled.value.add(id);
10028
+ } else {
10029
+ disabled.value.delete(id);
10030
+ }
10031
+ // classic selection requires refresh to re-evaluate on/off/indeterminate but
10032
+ // currently it is only run for selection interactions, so it will set new disabled
10033
+ // to "off" and the visual state becomes out of sync
10034
+ // -- selected.value = new Map(selected.value)
10035
+ // it is not clear if the framework should un-select when disabled changed to true
10036
+ // more discussion is needed
10037
+ },
10024
10038
  open: (id, value, event) => {
10025
10039
  vm.emit('click:open', {
10026
10040
  id,
@@ -10153,6 +10167,9 @@
10153
10167
  parent.root.register(val, parent.id.value, vue.toValue(isDisabled), isGroup);
10154
10168
  });
10155
10169
  });
10170
+ vue.watch(() => vue.toValue(isDisabled), val => {
10171
+ parent.root.updateDisabled(computedId.value, val);
10172
+ });
10156
10173
  isGroup && vue.provide(VNestedSymbol, item);
10157
10174
  return item;
10158
10175
  };
@@ -26000,7 +26017,7 @@
26000
26017
  return slots['group-summary']?.(slotProps) ?? '';
26001
26018
  }
26002
26019
  const slotProps = {
26003
- index,
26020
+ index: item.virtualIndex ?? index,
26004
26021
  item: item.raw,
26005
26022
  internalItem: item,
26006
26023
  columns: columns.value,
@@ -26475,7 +26492,10 @@
26475
26492
  calculateVisibleItems,
26476
26493
  scrollToIndex
26477
26494
  } = useVirtual(props, flatItems);
26478
- const displayItems = vue.computed(() => computedItems.value.map(item => item.raw));
26495
+ const displayItems = vue.computed(() => computedItems.value.map(item => ({
26496
+ ...item.raw,
26497
+ virtualIndex: item.index
26498
+ })));
26479
26499
  useOptions({
26480
26500
  sortBy,
26481
26501
  page: vue.shallowRef(1),
@@ -26568,7 +26588,7 @@
26568
26588
  }) ?? vue.createVNode(VDataTableRow, vue.mergeProps(itemSlotProps.props, {
26569
26589
  "ref": itemRef,
26570
26590
  "key": itemSlotProps.internalItem.index,
26571
- "index": itemSlotProps.internalItem.index
26591
+ "index": itemSlotProps.index
26572
26592
  }), slots);
26573
26593
  }
26574
26594
  })
@@ -27869,6 +27889,7 @@
27869
27889
  } = _ref;
27870
27890
  const adapter = useDate();
27871
27891
  const model = useProxiedModel(props, 'modelValue');
27892
+ const hasFocusedItem = vue.shallowRef(false);
27872
27893
  const years = vue.computed(() => {
27873
27894
  const year = adapter.getYear(adapter.date());
27874
27895
  let min = year - 100;
@@ -27896,7 +27917,6 @@
27896
27917
  });
27897
27918
  const yearRef = templateRef();
27898
27919
  function focusSelectedYear() {
27899
- yearRef.el?.focus();
27900
27920
  yearRef.el?.scrollIntoView({
27901
27921
  block: 'center'
27902
27922
  });
@@ -27916,7 +27936,11 @@
27916
27936
  height: convertToUnit(props.height)
27917
27937
  }
27918
27938
  }, [vue.createElementVNode("div", {
27919
- "class": "v-date-picker-years__content"
27939
+ "class": "v-date-picker-years__content",
27940
+ "onFocus": () => yearRef.el?.focus(),
27941
+ "onFocusin": () => hasFocusedItem.value = true,
27942
+ "onFocusout": () => hasFocusedItem.value = false,
27943
+ "tabindex": hasFocusedItem.value ? -1 : 0
27920
27944
  }, [years.value.map((year, i) => {
27921
27945
  const btnProps = {
27922
27946
  ref: model.value === year.value ? yearRef : undefined,
@@ -31291,7 +31315,7 @@
31291
31315
  "focused": isFocused.value,
31292
31316
  "onUpdate:focused": $event => isFocused.value = $event,
31293
31317
  "validationValue": model.value,
31294
- "error": isOutOfRange.value || undefined,
31318
+ "error": props.error || isOutOfRange.value || undefined,
31295
31319
  "onBeforeinput": onBeforeinput,
31296
31320
  "onFocus": onFocus,
31297
31321
  "onBlur": onBlur,
@@ -36086,7 +36110,7 @@
36086
36110
  default: () => [vue.createVNode(VCheckboxBtn, {
36087
36111
  "key": item.value,
36088
36112
  "modelValue": slotProps.isSelected,
36089
- "disabled": props.disabled,
36113
+ "disabled": props.disabled || itemProps.disabled,
36090
36114
  "loading": loading,
36091
36115
  "color": props.selectedColor,
36092
36116
  "density": props.density,
@@ -36149,7 +36173,7 @@
36149
36173
  hideActions: props.hideActions,
36150
36174
  indentLines: indentLines.node,
36151
36175
  onToggleExpand: [() => checkChildren(item), activatorProps.onClick],
36152
- onClick: isClickOnOpen.value ? [() => checkChildren(item), activatorProps.onClick] : () => selectItem(activatorItems.value[index]?.select, !activatorItems.value[index]?.isSelected)
36176
+ onClick: props.disabled || itemProps.disabled ? undefined : isClickOnOpen.value ? [() => checkChildren(item), activatorProps.onClick] : () => selectItem(activatorItems.value[index]?.select, !activatorItems.value[index]?.isSelected)
36153
36177
  };
36154
36178
  return renderSlot(slots.header, {
36155
36179
  props: listItemProps,
@@ -36877,7 +36901,7 @@
36877
36901
  };
36878
36902
  });
36879
36903
  }
36880
- const version$1 = "3.11.4-dev.2025-12-21";
36904
+ const version$1 = "3.11.4-dev.2025-12-22";
36881
36905
  createVuetify$1.version = version$1;
36882
36906
 
36883
36907
  // Vue's inject() can only be used in setup
@@ -36902,7 +36926,7 @@
36902
36926
  ...options
36903
36927
  });
36904
36928
  };
36905
- const version = "3.11.4-dev.2025-12-21";
36929
+ const version = "3.11.4-dev.2025-12-22";
36906
36930
  createVuetify.version = version;
36907
36931
 
36908
36932
  exports.blueprints = index;