vuetify 3.6.5 → 3.6.7

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 (97) hide show
  1. package/dist/json/attributes.json +42 -2
  2. package/dist/json/importMap-labs.json +20 -20
  3. package/dist/json/importMap.json +144 -144
  4. package/dist/json/tags.json +11 -1
  5. package/dist/json/web-types.json +125 -16
  6. package/dist/vuetify-labs.css +2509 -2712
  7. package/dist/vuetify-labs.d.ts +178 -52
  8. package/dist/vuetify-labs.esm.js +102 -51
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +102 -51
  11. package/dist/vuetify-labs.min.css +3 -3
  12. package/dist/vuetify.css +783 -986
  13. package/dist/vuetify.d.ts +221 -95
  14. package/dist/vuetify.esm.js +72 -33
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +72 -33
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +3 -3
  19. package/dist/vuetify.min.js +118 -115
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAutocomplete/VAutocomplete.mjs +3 -2
  22. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  23. package/lib/components/VBanner/VBanner.mjs +3 -1
  24. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  25. package/lib/components/VBanner/index.d.mts +15 -9
  26. package/lib/components/VBtn/VBtn.css +6 -0
  27. package/lib/components/VBtn/VBtn.sass +6 -0
  28. package/lib/components/VChipGroup/index.d.mts +15 -9
  29. package/lib/components/VCombobox/VCombobox.mjs +4 -3
  30. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  31. package/lib/components/VConfirmEdit/VConfirmEdit.mjs +8 -0
  32. package/lib/components/VConfirmEdit/VConfirmEdit.mjs.map +1 -1
  33. package/lib/components/VConfirmEdit/index.d.mts +24 -3
  34. package/lib/components/VDataTable/VDataTable.css +4 -0
  35. package/lib/components/VDataTable/VDataTable.mjs +2 -1
  36. package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
  37. package/lib/components/VDataTable/VDataTable.sass +4 -0
  38. package/lib/components/VDataTable/VDataTableHeaders.mjs +4 -3
  39. package/lib/components/VDataTable/VDataTableHeaders.mjs.map +1 -1
  40. package/lib/components/VDataTable/VDataTableServer.mjs +1 -1
  41. package/lib/components/VDataTable/VDataTableServer.mjs.map +1 -1
  42. package/lib/components/VDataTable/VDataTableVirtual.mjs +1 -1
  43. package/lib/components/VDataTable/VDataTableVirtual.mjs.map +1 -1
  44. package/lib/components/VDataTable/composables/sort.mjs +1 -1
  45. package/lib/components/VDataTable/composables/sort.mjs.map +1 -1
  46. package/lib/components/VDataTable/index.d.mts +63 -0
  47. package/lib/components/VDatePicker/VDatePicker.mjs +2 -1
  48. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  49. package/lib/components/VDatePicker/VDatePickerMonths.mjs +10 -1
  50. package/lib/components/VDatePicker/VDatePickerMonths.mjs.map +1 -1
  51. package/lib/components/VDatePicker/index.d.mts +24 -6
  52. package/lib/components/VDivider/VDivider.css +2 -1
  53. package/lib/components/VDivider/VDivider.sass +2 -1
  54. package/lib/components/VField/VField.css +1 -0
  55. package/lib/components/VField/VField.sass +2 -0
  56. package/lib/components/VList/VListChildren.mjs +2 -1
  57. package/lib/components/VList/VListChildren.mjs.map +1 -1
  58. package/lib/components/VMenu/VMenu.mjs +2 -1
  59. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  60. package/lib/components/VSelect/VSelect.mjs +1 -1
  61. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  62. package/lib/components/VSlideGroup/VSlideGroup.mjs +3 -1
  63. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  64. package/lib/components/VSlideGroup/index.d.mts +15 -9
  65. package/lib/components/VSwitch/VSwitch.css +44 -0
  66. package/lib/components/VSwitch/VSwitch.mjs +4 -3
  67. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  68. package/lib/components/VSwitch/VSwitch.sass +55 -0
  69. package/lib/components/VTabs/index.d.mts +15 -9
  70. package/lib/components/index.d.mts +171 -45
  71. package/lib/composables/defaults.mjs +1 -1
  72. package/lib/composables/defaults.mjs.map +1 -1
  73. package/lib/composables/dimensions.mjs +16 -8
  74. package/lib/composables/dimensions.mjs.map +1 -1
  75. package/lib/entry-bundler.mjs +1 -1
  76. package/lib/framework.mjs +1 -1
  77. package/lib/index.d.mts +50 -50
  78. package/lib/labs/VCalendar/VCalendar.mjs +2 -2
  79. package/lib/labs/VCalendar/VCalendar.mjs.map +1 -1
  80. package/lib/labs/VDateInput/index.d.mts +6 -6
  81. package/lib/labs/VNumberInput/VNumberInput.mjs +16 -6
  82. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  83. package/lib/labs/VNumberInput/index.d.mts +1 -1
  84. package/lib/labs/VTreeview/VTreeviewChildren.mjs +12 -10
  85. package/lib/labs/VTreeview/VTreeviewChildren.mjs.map +1 -1
  86. package/lib/labs/components.d.mts +7 -7
  87. package/lib/locale/de.mjs +4 -4
  88. package/lib/locale/de.mjs.map +1 -1
  89. package/lib/locale/fa.mjs +10 -10
  90. package/lib/locale/fa.mjs.map +1 -1
  91. package/lib/locale/hu.mjs +18 -18
  92. package/lib/locale/hu.mjs.map +1 -1
  93. package/lib/styles/generic/_colors.scss +0 -1
  94. package/lib/styles/main.css +0 -260
  95. package/lib/util/helpers.mjs +2 -0
  96. package/lib/util/helpers.mjs.map +1 -1
  97. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.6.5
2
+ * Vuetify v3.6.7
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -391,6 +391,8 @@ function findChildrenWithProvide(key, vnode) {
391
391
  if (!vnode || typeof vnode !== 'object') return [];
392
392
  if (Array.isArray(vnode)) {
393
393
  return vnode.map(child => findChildrenWithProvide(key, child)).flat(1);
394
+ } else if (vnode.suspense) {
395
+ return findChildrenWithProvide(key, vnode.ssContent);
394
396
  } else if (Array.isArray(vnode.children)) {
395
397
  return vnode.children.map(child => findChildrenWithProvide(key, child)).flat(1);
396
398
  } else if (vnode.component) {
@@ -1317,7 +1319,7 @@ function internalUseDefaults() {
1317
1319
  if (prop === 'class' || prop === 'style') {
1318
1320
  return [componentDefaults.value?.[prop], propValue].filter(v => v != null);
1319
1321
  } else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {
1320
- return componentDefaults.value?.[prop] ?? defaults.value?.global?.[prop] ?? propValue;
1322
+ return componentDefaults.value?.[prop] !== undefined ? componentDefaults.value?.[prop] : defaults.value?.global?.[prop] !== undefined ? defaults.value?.global?.[prop] : propValue;
1321
1323
  }
1322
1324
  return propValue;
1323
1325
  }
@@ -2992,14 +2994,22 @@ const makeDimensionProps = propsFactory({
2992
2994
  width: [Number, String]
2993
2995
  }, 'dimension');
2994
2996
  function useDimension(props) {
2995
- const dimensionStyles = computed(() => ({
2996
- height: convertToUnit(props.height),
2997
- maxHeight: convertToUnit(props.maxHeight),
2998
- maxWidth: convertToUnit(props.maxWidth),
2999
- minHeight: convertToUnit(props.minHeight),
3000
- minWidth: convertToUnit(props.minWidth),
3001
- width: convertToUnit(props.width)
3002
- }));
2997
+ const dimensionStyles = computed(() => {
2998
+ const styles = {};
2999
+ const height = convertToUnit(props.height);
3000
+ const maxHeight = convertToUnit(props.maxHeight);
3001
+ const maxWidth = convertToUnit(props.maxWidth);
3002
+ const minHeight = convertToUnit(props.minHeight);
3003
+ const minWidth = convertToUnit(props.minWidth);
3004
+ const width = convertToUnit(props.width);
3005
+ if (height != null) styles.height = height;
3006
+ if (maxHeight != null) styles.maxHeight = maxHeight;
3007
+ if (maxWidth != null) styles.maxWidth = maxWidth;
3008
+ if (minHeight != null) styles.minHeight = minHeight;
3009
+ if (minWidth != null) styles.minWidth = minWidth;
3010
+ if (width != null) styles.width = width;
3011
+ return styles;
3012
+ });
3003
3013
  return {
3004
3014
  dimensionStyles
3005
3015
  };
@@ -7368,7 +7378,9 @@ const makeVSlideGroupProps = propsFactory({
7368
7378
  validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)
7369
7379
  },
7370
7380
  ...makeComponentProps(),
7371
- ...makeDisplayProps(),
7381
+ ...makeDisplayProps({
7382
+ mobile: null
7383
+ }),
7372
7384
  ...makeTagProps(),
7373
7385
  ...makeGroupProps({
7374
7386
  selectedClass: 'v-slide-group-item--active'
@@ -9199,7 +9211,8 @@ const VListChildren = genericComponent()({
9199
9211
  }) : createVNode(VListItem, listItemProps, slotsWithItem);
9200
9212
  },
9201
9213
  default: () => createVNode(VListChildren, {
9202
- "items": children
9214
+ "items": children,
9215
+ "returnObject": props.returnObject
9203
9216
  }, slots)
9204
9217
  }) : slots.item ? slots.item({
9205
9218
  props: itemProps
@@ -11099,7 +11112,7 @@ const VMenu = genericComponent()({
11099
11112
  },
11100
11113
  closeParents(e) {
11101
11114
  setTimeout(() => {
11102
- if (!openChildren.value && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
11115
+ if (!openChildren.value && !props.persistent && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
11103
11116
  isActive.value = false;
11104
11117
  parent?.closeParents();
11105
11118
  }
@@ -11138,6 +11151,7 @@ const VMenu = genericComponent()({
11138
11151
  function onKeydown(e) {
11139
11152
  if (props.disabled) return;
11140
11153
  if (e.key === 'Tab' || e.key === 'Enter' && !props.closeOnContentClick) {
11154
+ if (e.key === 'Enter' && e.target instanceof HTMLTextAreaElement) return;
11141
11155
  if (e.key === 'Enter') e.preventDefault();
11142
11156
  const nextElement = getNextElement(focusableChildren(overlay.value?.contentEl, false), e.shiftKey ? 'prev' : 'next', el => el.tabIndex >= 0);
11143
11157
  if (!nextElement) {
@@ -12319,7 +12333,7 @@ const VSelect = genericComponent()({
12319
12333
  let keyboardLookupLastTime;
12320
12334
  const displayItems = computed(() => {
12321
12335
  if (props.hideSelected) {
12322
- return items.value.filter(item => !model.value.some(s => s === item));
12336
+ return items.value.filter(item => !model.value.some(s => props.valueComparator(s, item)));
12323
12337
  }
12324
12338
  return items.value;
12325
12339
  });
@@ -12881,7 +12895,7 @@ const VAutocomplete = genericComponent()({
12881
12895
  if (['Escape'].includes(e.key)) {
12882
12896
  menu.value = false;
12883
12897
  }
12884
- if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key)) {
12898
+ if (highlightFirst.value && e.key === 'Enter') {
12885
12899
  select(displayItems.value[0]);
12886
12900
  }
12887
12901
  if (e.key === 'ArrowDown' && highlightFirst.value) {
@@ -13188,7 +13202,8 @@ const VAutocomplete = genericComponent()({
13188
13202
  "onMousedown": onMousedownMenuIcon,
13189
13203
  "onClick": noop,
13190
13204
  "aria-label": t(label.value),
13191
- "title": t(label.value)
13205
+ "title": t(label.value),
13206
+ "tabindex": "-1"
13192
13207
  }, null) : undefined]);
13193
13208
  }
13194
13209
  });
@@ -13345,7 +13360,9 @@ const makeVBannerProps = propsFactory({
13345
13360
  ...makeComponentProps(),
13346
13361
  ...makeDensityProps(),
13347
13362
  ...makeDimensionProps(),
13348
- ...makeDisplayProps(),
13363
+ ...makeDisplayProps({
13364
+ mobile: null
13365
+ }),
13349
13366
  ...makeElevationProps(),
13350
13367
  ...makeLocationProps(),
13351
13368
  ...makePositionProps(),
@@ -16745,8 +16762,8 @@ const VCombobox = genericComponent()({
16745
16762
  if (['Escape'].includes(e.key)) {
16746
16763
  menu.value = false;
16747
16764
  }
16748
- if (['Enter', 'Escape', 'Tab'].includes(e.key)) {
16749
- if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key)) {
16765
+ if (['Enter', 'Escape'].includes(e.key)) {
16766
+ if (highlightFirst.value && e.key === 'Enter') {
16750
16767
  select(filteredItems.value[0]);
16751
16768
  }
16752
16769
  isPristine.value = true;
@@ -17054,7 +17071,8 @@ const VCombobox = genericComponent()({
17054
17071
  "onMousedown": onMousedownMenuIcon,
17055
17072
  "onClick": noop,
17056
17073
  "aria-label": t(label.value),
17057
- "title": t(label.value)
17074
+ "title": t(label.value),
17075
+ "tabindex": "-1"
17058
17076
  }, null) : undefined]);
17059
17077
  }
17060
17078
  });
@@ -17962,12 +17980,20 @@ const VConfirmEdit = genericComponent()({
17962
17980
  }, null)]);
17963
17981
  return createVNode(Fragment, null, [slots.default?.({
17964
17982
  model: internalModel,
17983
+ save,
17984
+ cancel,
17985
+ isPristine: isPristine.value,
17965
17986
  get actions() {
17966
17987
  actionsUsed = true;
17967
17988
  return actions;
17968
17989
  }
17969
17990
  }), !actionsUsed && actions]);
17970
17991
  });
17992
+ return {
17993
+ save,
17994
+ cancel,
17995
+ isPristine
17996
+ };
17971
17997
  }
17972
17998
  });
17973
17999
 
@@ -18558,7 +18584,7 @@ function useSort() {
18558
18584
  function useSortedItems(props, items, sortBy, options) {
18559
18585
  const locale = useLocale();
18560
18586
  const sortedItems = computed(() => {
18561
- if (!sortBy.value.length) return items.value;
18587
+ if (!sortBy.value.length || props.disableSort) return items.value;
18562
18588
  return sortItems(items.value, sortBy.value, locale.current.value, {
18563
18589
  transform: options?.transform,
18564
18590
  sortFunctions: {
@@ -19618,6 +19644,7 @@ function useHeaders() {
19618
19644
  const makeVDataTableHeadersProps = propsFactory({
19619
19645
  color: String,
19620
19646
  sticky: Boolean,
19647
+ disableSort: Boolean,
19621
19648
  multiSort: Boolean,
19622
19649
  sortAscIcon: {
19623
19650
  type: IconValue,
@@ -19708,7 +19735,7 @@ const VDataTableHeaders = genericComponent()({
19708
19735
  "tag": "th",
19709
19736
  "align": column.align,
19710
19737
  "class": [{
19711
- 'v-data-table__th--sortable': column.sortable,
19738
+ 'v-data-table__th--sortable': column.sortable && !props.disableSort,
19712
19739
  'v-data-table__th--sorted': isSorted(column),
19713
19740
  'v-data-table__th--fixed': column.fixed
19714
19741
  }, ...headerCellClasses.value],
@@ -19748,7 +19775,7 @@ const VDataTableHeaders = genericComponent()({
19748
19775
  }
19749
19776
  return createVNode("div", {
19750
19777
  "class": "v-data-table-header__content"
19751
- }, [createVNode("span", null, [column.title]), column.sortable && createVNode(VIcon, {
19778
+ }, [createVNode("span", null, [column.title]), column.sortable && !props.disableSort && createVNode(VIcon, {
19752
19779
  "key": "icon",
19753
19780
  "class": "v-data-table-header__sort-icon",
19754
19781
  "icon": getSortIcon(column)
@@ -19763,7 +19790,7 @@ const VDataTableHeaders = genericComponent()({
19763
19790
  const VDataTableMobileHeaderCell = () => {
19764
19791
  const headerProps = mergeProps(props.headerProps ?? {} ?? {});
19765
19792
  const displayItems = computed(() => {
19766
- return columns.value.filter(column => column?.sortable);
19793
+ return columns.value.filter(column => column?.sortable && !props.disableSort);
19767
19794
  });
19768
19795
  const appendIcon = computed(() => {
19769
19796
  const showSelectColumn = columns.value.find(column => column.key === 'data-table-select');
@@ -20259,6 +20286,7 @@ function useDataTableItems(props, columns) {
20259
20286
 
20260
20287
  const makeDataTableProps = propsFactory({
20261
20288
  ...makeVDataTableRowsProps(),
20289
+ hideDefaultBody: Boolean,
20262
20290
  hideDefaultFooter: Boolean,
20263
20291
  hideDefaultHeader: Boolean,
20264
20292
  width: [String, Number],
@@ -20445,7 +20473,7 @@ const VDataTable = genericComponent()({
20445
20473
  top: () => slots.top?.(slotProps.value),
20446
20474
  default: () => slots.default ? slots.default(slotProps.value) : createVNode(Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && createVNode("thead", {
20447
20475
  "key": "thead"
20448
- }, [createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), createVNode("tbody", null, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : createVNode(VDataTableRows, mergeProps(attrs, dataTableRowsProps, {
20476
+ }, [createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && createVNode("tbody", null, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : createVNode(VDataTableRows, mergeProps(attrs, dataTableRowsProps, {
20449
20477
  "items": paginatedItems.value
20450
20478
  }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),
20451
20479
  bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && createVNode(Fragment, null, [createVNode(VDivider, null, null), createVNode(VDataTableFooter, dataTableFooterProps, {
@@ -20620,7 +20648,7 @@ const VDataTableVirtual = genericComponent()({
20620
20648
  "key": "thead"
20621
20649
  }, [createVNode(VDataTableHeaders, mergeProps(dataTableHeadersProps, {
20622
20650
  "sticky": props.fixedHeader
20623
- }), slots)]), createVNode("tbody", null, [createVNode("tr", {
20651
+ }), slots)]), !props.hideDefaultBody && createVNode("tbody", null, [createVNode("tr", {
20624
20652
  "ref": markerRef,
20625
20653
  "style": {
20626
20654
  height: convertToUnit(paddingTop.value),
@@ -20829,7 +20857,7 @@ const VDataTableServer = genericComponent()({
20829
20857
  "role": "rowgroup"
20830
20858
  }, [createVNode(VDataTableHeaders, mergeProps(dataTableHeadersProps, {
20831
20859
  "sticky": props.fixedHeader
20832
- }), slots)]), slots.thead?.(slotProps.value), createVNode("tbody", {
20860
+ }), slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && createVNode("tbody", {
20833
20861
  "class": "v-data-table__tbody",
20834
20862
  "role": "rowgroup"
20835
20863
  }, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : createVNode(VDataTableRows, mergeProps(attrs, dataTableRowsProps, {
@@ -21604,7 +21632,10 @@ const VDatePickerMonth = genericComponent()({
21604
21632
  const makeVDatePickerMonthsProps = propsFactory({
21605
21633
  color: String,
21606
21634
  height: [String, Number],
21607
- modelValue: Number
21635
+ min: null,
21636
+ max: null,
21637
+ modelValue: Number,
21638
+ year: Number
21608
21639
  }, 'VDatePickerMonths');
21609
21640
  const VDatePickerMonths = genericComponent()({
21610
21641
  name: 'VDatePickerMonths',
@@ -21621,10 +21652,15 @@ const VDatePickerMonths = genericComponent()({
21621
21652
  const model = useProxiedModel(props, 'modelValue');
21622
21653
  const months = computed(() => {
21623
21654
  let date = adapter.startOfYear(adapter.date());
21655
+ if (props.year) {
21656
+ date = adapter.setYear(date, props.year);
21657
+ }
21624
21658
  return createRange(12).map(i => {
21625
21659
  const text = adapter.format(date, 'monthShort');
21660
+ const isDisabled = !!(props.min && adapter.isAfter(adapter.startOfMonth(adapter.date(props.min)), date) || props.max && adapter.isAfter(date, adapter.startOfMonth(adapter.date(props.max))));
21626
21661
  date = adapter.getNextMonth(date);
21627
21662
  return {
21663
+ isDisabled,
21628
21664
  text,
21629
21665
  value: i
21630
21666
  };
@@ -21644,6 +21680,7 @@ const VDatePickerMonths = genericComponent()({
21644
21680
  const btnProps = {
21645
21681
  active: model.value === i,
21646
21682
  color: model.value === i ? props.color : undefined,
21683
+ disabled: month.isDisabled,
21647
21684
  rounded: true,
21648
21685
  text: month.text,
21649
21686
  variant: model.value === month.value ? 'flat' : 'text',
@@ -22044,7 +22081,8 @@ const VDatePicker = genericComponent()({
22044
22081
  "modelValue": month.value,
22045
22082
  "onUpdate:modelValue": [$event => month.value = $event, onUpdateMonth],
22046
22083
  "min": minDate.value,
22047
- "max": maxDate.value
22084
+ "max": maxDate.value,
22085
+ "year": year.value
22048
22086
  }), null) : viewMode.value === 'year' ? createVNode(VDatePickerYears, mergeProps({
22049
22087
  "key": "date-picker-years"
22050
22088
  }, datePickerYearsProps, {
@@ -26172,6 +26210,7 @@ const VSwitch = genericComponent()({
26172
26210
  blur
26173
26211
  } = useFocus(props);
26174
26212
  const control = ref();
26213
+ const isForcedColorsModeActive = IN_BROWSER && window.matchMedia('(forced-colors: active)').matches;
26175
26214
  const loaderColor = computed(() => {
26176
26215
  return typeof props.loading === 'string' && props.loading !== '' ? props.loading : props.color;
26177
26216
  });
@@ -26240,7 +26279,7 @@ const VSwitch = genericComponent()({
26240
26279
  backgroundColorStyles
26241
26280
  } = _ref3;
26242
26281
  return createVNode("div", {
26243
- "class": ['v-switch__track', ...backgroundColorClasses.value],
26282
+ "class": ['v-switch__track', !isForcedColorsModeActive ? backgroundColorClasses.value : undefined],
26244
26283
  "style": backgroundColorStyles.value,
26245
26284
  "onClick": onTrackClick
26246
26285
  }, [slots['track-true'] && createVNode("div", {
@@ -26261,7 +26300,7 @@ const VSwitch = genericComponent()({
26261
26300
  return createVNode(Fragment, null, [inputNode, createVNode("div", {
26262
26301
  "class": ['v-switch__thumb', {
26263
26302
  'v-switch__thumb--filled': icon || props.loading
26264
- }, props.inset ? undefined : backgroundColorClasses.value],
26303
+ }, props.inset || isForcedColorsModeActive ? undefined : backgroundColorClasses.value],
26265
26304
  "style": props.inset ? undefined : backgroundColorStyles.value
26266
26305
  }, [slots.thumb ? createVNode(VDefaultsProvider, {
26267
26306
  "defaults": {
@@ -27707,7 +27746,7 @@ const VCalendar = genericComponent()({
27707
27746
  }
27708
27747
  }
27709
27748
  function onClickToday() {
27710
- model.value = [new Date()];
27749
+ model.value = [adapter.date()];
27711
27750
  }
27712
27751
  const title = computed(() => {
27713
27752
  return adapter.format(displayValue.value, 'monthAndYear');
@@ -27746,7 +27785,7 @@ const VCalendar = genericComponent()({
27746
27785
  }, [chunkArray(daysInMonth.value, props.weekdays.length).map((week, wi) => [!props.hideWeekNumber ? createVNode("div", {
27747
27786
  "class": "v-calendar-month__weeknumber"
27748
27787
  }, [weekNumbers.value[wi]]) : '', week.map(day => createVNode(VCalendarMonthDay, {
27749
- "color": adapter.isSameDay(new Date(), day.date) ? 'primary' : undefined,
27788
+ "color": adapter.isSameDay(adapter.date(), day.date) ? 'primary' : undefined,
27750
27789
  "day": day,
27751
27790
  "title": day ? adapter.format(day.date, 'dayOfMonth') : 'NaN',
27752
27791
  "events": props.events?.filter(e => adapter.isSameDay(day.date, e.start) || adapter.isSameDay(day.date, e.end))
@@ -27965,10 +28004,12 @@ const VNumberInput = genericComponent()({
27965
28004
  if (canDecrease.value) model.value = +(model.value - props.step).toFixed(decimals);
27966
28005
  }
27967
28006
  }
27968
- function onClickUp() {
28007
+ function onClickUp(e) {
28008
+ e.stopPropagation();
27969
28009
  toggleUpDown();
27970
28010
  }
27971
- function onClickDown() {
28011
+ function onClickDown(e) {
28012
+ e.stopPropagation();
27972
28013
  toggleUpDown(false);
27973
28014
  }
27974
28015
  function onKeydown(e) {
@@ -27992,6 +28033,9 @@ const VNumberInput = genericComponent()({
27992
28033
  function onModelUpdate(v) {
27993
28034
  model.value = v ? +v : undefined;
27994
28035
  }
28036
+ function onControlMousedown(e) {
28037
+ e.stopPropagation();
28038
+ }
27995
28039
  useRender(() => {
27996
28040
  const {
27997
28041
  modelValue: _,
@@ -28010,7 +28054,8 @@ const VNumberInput = genericComponent()({
28010
28054
  "icon": "$expand",
28011
28055
  "size": "small",
28012
28056
  "tabindex": "-1",
28013
- "onClick": onClickDown
28057
+ "onClick": onClickDown,
28058
+ "onMousedown": onControlMousedown
28014
28059
  }, null) : createVNode(VDefaultsProvider, {
28015
28060
  "key": "decrement-defaults",
28016
28061
  "defaults": {
@@ -28034,6 +28079,7 @@ const VNumberInput = genericComponent()({
28034
28079
  "name": "increment-btn",
28035
28080
  "icon": "$collapse",
28036
28081
  "onClick": onClickUp,
28082
+ "onMousedown": onControlMousedown,
28037
28083
  "size": "small",
28038
28084
  "tabindex": "-1"
28039
28085
  }, null) : createVNode(VDefaultsProvider, {
@@ -28066,7 +28112,8 @@ const VNumberInput = genericComponent()({
28066
28112
  "icon": "$plus",
28067
28113
  "tile": true,
28068
28114
  "tabindex": "-1",
28069
- "onClick": onClickUp
28115
+ "onClick": onClickUp,
28116
+ "onMousedown": onControlMousedown
28070
28117
  }, null)]) : !props.reverse ? createVNode(Fragment, null, [dividerNode(), controlNode()]) : undefined;
28071
28118
  const hasAppendInner = slots['append-inner'] || appendInnerControl;
28072
28119
  const prependInnerControl = controlVariant.value === 'split' ? createVNode("div", {
@@ -28077,7 +28124,8 @@ const VNumberInput = genericComponent()({
28077
28124
  "icon": "$minus",
28078
28125
  "tile": true,
28079
28126
  "tabindex": "-1",
28080
- "onClick": onClickDown
28127
+ "onClick": onClickDown,
28128
+ "onMousedown": onControlMousedown
28081
28129
  }, null), createVNode(VDivider, {
28082
28130
  "vertical": true
28083
28131
  }, null)]) : props.reverse ? createVNode(Fragment, null, [controlNode(), dividerNode()]) : undefined;
@@ -28095,7 +28143,8 @@ const VNumberInput = genericComponent()({
28095
28143
  'v-number-input--stacked': controlVariant.value === 'stacked'
28096
28144
  }, props.class]
28097
28145
  }, textFieldProps, {
28098
- "style": props.style
28146
+ "style": props.style,
28147
+ "inputmode": "decimal"
28099
28148
  }), {
28100
28149
  ...slots,
28101
28150
  'append-inner': hasAppendInner ? function () {
@@ -29359,17 +29408,18 @@ const VTreeviewChildren = genericComponent()({
29359
29408
  emit,
29360
29409
  slots
29361
29410
  } = _ref;
29362
- const isLoading = shallowRef(false);
29363
- const hasLoaded = shallowRef(false);
29411
+ const isLoading = shallowRef(null);
29364
29412
  function checkChildren(item) {
29365
29413
  return new Promise(resolve => {
29366
- if (!props.items?.length || !props.loadChildren || hasLoaded.value) return resolve();
29367
- isLoading.value = true;
29368
- props.loadChildren(item).then(resolve);
29369
- }).then(() => {
29370
- hasLoaded.value = true;
29414
+ if (!props.items?.length || !props.loadChildren) return resolve();
29415
+ if (item?.children?.length === 0) {
29416
+ isLoading.value = item.value;
29417
+ props.loadChildren(item).then(resolve);
29418
+ return;
29419
+ }
29420
+ resolve();
29371
29421
  }).finally(() => {
29372
- isLoading.value = false;
29422
+ isLoading.value = null;
29373
29423
  });
29374
29424
  }
29375
29425
  function onClick(e, item) {
@@ -29382,6 +29432,7 @@ const VTreeviewChildren = genericComponent()({
29382
29432
  props: itemProps,
29383
29433
  raw: item
29384
29434
  } = _ref2;
29435
+ const loading = isLoading.value === item.value;
29385
29436
  const slotsWithItem = {
29386
29437
  prepend: slots.prepend ? slotProps => slots.prepend?.({
29387
29438
  ...slotProps,
@@ -29395,7 +29446,7 @@ const VTreeviewChildren = genericComponent()({
29395
29446
  "key": item.value,
29396
29447
  "tabindex": "-1",
29397
29448
  "modelValue": isSelected,
29398
- "loading": isLoading.value,
29449
+ "loading": loading,
29399
29450
  "indeterminate": isIndeterminate,
29400
29451
  "onClick": e => onClick(e, item)
29401
29452
  }, null);
@@ -29419,7 +29470,7 @@ const VTreeviewChildren = genericComponent()({
29419
29470
  props: activatorProps
29420
29471
  } = _ref4;
29421
29472
  return createVNode(VTreeviewItem, mergeProps(itemProps, activatorProps, {
29422
- "loading": isLoading.value,
29473
+ "loading": loading,
29423
29474
  "onClick": e => onClick(e, item)
29424
29475
  }), slotsWithItem);
29425
29476
  },
@@ -30072,7 +30123,7 @@ function createVuetify$1() {
30072
30123
  goTo
30073
30124
  };
30074
30125
  }
30075
- const version$1 = "3.6.5";
30126
+ const version$1 = "3.6.7";
30076
30127
  createVuetify$1.version = version$1;
30077
30128
 
30078
30129
  // Vue's inject() can only be used in setup
@@ -30325,7 +30376,7 @@ var index = /*#__PURE__*/Object.freeze({
30325
30376
 
30326
30377
  /* eslint-disable local-rules/sort-imports */
30327
30378
 
30328
- const version = "3.6.5";
30379
+ const version = "3.6.7";
30329
30380
 
30330
30381
  /* eslint-disable local-rules/sort-imports */
30331
30382