@vuetify/nightly 3.5.7-master.2024-03-05 → 3.5.8-dev.2024-03-13

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 (101) hide show
  1. package/CHANGELOG.md +11 -7
  2. package/dist/json/attributes.json +229 -77
  3. package/dist/json/importMap-labs.json +4 -0
  4. package/dist/json/importMap.json +136 -136
  5. package/dist/json/tags.json +43 -0
  6. package/dist/json/web-types.json +539 -144
  7. package/dist/vuetify-labs.css +4771 -4747
  8. package/dist/vuetify-labs.d.ts +787 -147
  9. package/dist/vuetify-labs.esm.js +168 -76
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +167 -75
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +586 -570
  14. package/dist/vuetify.d.ts +264 -186
  15. package/dist/vuetify.esm.js +119 -74
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +118 -73
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +931 -927
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/blueprints/index.d.mts +5 -2
  23. package/lib/blueprints/md1.d.mts +5 -2
  24. package/lib/blueprints/md2.d.mts +5 -2
  25. package/lib/blueprints/md3.d.mts +5 -2
  26. package/lib/components/VApp/VApp.mjs +5 -2
  27. package/lib/components/VApp/VApp.mjs.map +1 -1
  28. package/lib/components/VApp/index.d.mts +6 -6
  29. package/lib/components/VAppBar/VAppBar.mjs +5 -5
  30. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  31. package/lib/components/VAppBar/index.d.mts +2 -2
  32. package/lib/components/VBottomNavigation/VBottomNavigation.mjs +5 -3
  33. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  34. package/lib/components/VBottomNavigation/index.d.mts +2 -2
  35. package/lib/components/VDatePicker/VDatePickerMonth.mjs +1 -1
  36. package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  37. package/lib/components/VFooter/VFooter.mjs +3 -2
  38. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  39. package/lib/components/VForm/index.d.mts +21 -0
  40. package/lib/components/VInput/VInput.sass +1 -1
  41. package/lib/components/VInput/_variables.scss +1 -0
  42. package/lib/components/VLabel/VLabel.sass +1 -1
  43. package/lib/components/VLabel/_variables.scss +1 -0
  44. package/lib/components/VLayout/VLayout.mjs +5 -2
  45. package/lib/components/VLayout/VLayout.mjs.map +1 -1
  46. package/lib/components/VLayout/VLayoutItem.mjs +6 -4
  47. package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
  48. package/lib/components/VLayout/index.d.mts +9 -9
  49. package/lib/components/VMain/VMain.mjs +3 -2
  50. package/lib/components/VMain/VMain.mjs.map +1 -1
  51. package/lib/components/VMain/index.d.mts +2 -2
  52. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +7 -7
  53. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  54. package/lib/components/VSnackbar/VSnackbar.mjs +4 -2
  55. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  56. package/lib/components/VSnackbar/index.d.mts +147 -119
  57. package/lib/components/index.d.mts +207 -140
  58. package/lib/components/transitions/createTransition.mjs +4 -2
  59. package/lib/components/transitions/createTransition.mjs.map +1 -1
  60. package/lib/components/transitions/index.d.mts +18 -0
  61. package/lib/composables/date/DateAdapter.mjs.map +1 -1
  62. package/lib/composables/date/adapters/vuetify.mjs +39 -3
  63. package/lib/composables/date/adapters/vuetify.mjs.map +1 -1
  64. package/lib/composables/form.mjs +3 -1
  65. package/lib/composables/form.mjs.map +1 -1
  66. package/lib/composables/icons.mjs +2 -1
  67. package/lib/composables/icons.mjs.map +1 -1
  68. package/lib/composables/layout.mjs +14 -37
  69. package/lib/composables/layout.mjs.map +1 -1
  70. package/lib/composables/transition.mjs +7 -5
  71. package/lib/composables/transition.mjs.map +1 -1
  72. package/lib/composables/validation.mjs +3 -1
  73. package/lib/composables/validation.mjs.map +1 -1
  74. package/lib/entry-bundler.mjs +1 -1
  75. package/lib/entry-bundler.mjs.map +1 -1
  76. package/lib/framework.mjs +1 -1
  77. package/lib/framework.mjs.map +1 -1
  78. package/lib/index.d.mts +57 -46
  79. package/lib/labs/VCalendar/VCalendarInterval.css +1 -0
  80. package/lib/labs/VCalendar/VCalendarInterval.sass +1 -0
  81. package/lib/labs/VCalendar/VCalendarIntervalEvent.css +6 -0
  82. package/lib/labs/VCalendar/VCalendarIntervalEvent.mjs +5 -2
  83. package/lib/labs/VCalendar/VCalendarIntervalEvent.mjs.map +1 -1
  84. package/lib/labs/VCalendar/VCalendarIntervalEvent.sass +6 -0
  85. package/lib/labs/VFab/VFab.css +1 -1
  86. package/lib/labs/VFab/VFab.sass +1 -1
  87. package/lib/labs/VSpeedDial/VSpeedDial.css +3 -0
  88. package/lib/labs/VSpeedDial/VSpeedDial.mjs +56 -0
  89. package/lib/labs/VSpeedDial/VSpeedDial.mjs.map +1 -0
  90. package/lib/labs/VSpeedDial/VSpeedDial.sass +2 -0
  91. package/lib/labs/VSpeedDial/index.d.mts +649 -0
  92. package/lib/labs/VSpeedDial/index.mjs +2 -0
  93. package/lib/labs/VSpeedDial/index.mjs.map +1 -0
  94. package/lib/labs/components.d.mts +637 -2
  95. package/lib/labs/components.mjs +1 -0
  96. package/lib/labs/components.mjs.map +1 -1
  97. package/lib/styles/main.css +16 -0
  98. package/lib/styles/settings/_utilities.scss +20 -0
  99. package/lib/util/helpers.mjs +11 -1
  100. package/lib/util/helpers.mjs.map +1 -1
  101. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.5.7-master.2024-03-05
2
+ * Vuetify v3.5.8-dev.2024-03-13
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -549,6 +549,16 @@
549
549
  const timeoutId = window.setTimeout(cb, timeout);
550
550
  return () => window.clearTimeout(timeoutId);
551
551
  }
552
+ function eagerComputed(fn, options) {
553
+ const result = vue.shallowRef();
554
+ vue.watchEffect(() => {
555
+ result.value = fn();
556
+ }, {
557
+ flush: 'sync',
558
+ ...options
559
+ });
560
+ return vue.readonly(result);
561
+ }
552
562
  function isClickInsideElement(event, targetDiv) {
553
563
  const mouseX = event.clientX;
554
564
  const mouseY = event.clientY;
@@ -1623,7 +1633,9 @@
1623
1633
  function useLayout() {
1624
1634
  const layout = vue.inject(VuetifyLayoutKey);
1625
1635
  if (!layout) throw new Error('[Vuetify] Could not find injected layout');
1636
+ const layoutIsReady = vue.nextTick();
1626
1637
  return {
1638
+ layoutIsReady,
1627
1639
  getLayoutItem: layout.getLayoutItem,
1628
1640
  mainRect: layout.mainRect,
1629
1641
  mainStyles: layout.mainStyles
@@ -1640,6 +1652,7 @@
1640
1652
  const isKeptAlive = vue.shallowRef(false);
1641
1653
  vue.onDeactivated(() => isKeptAlive.value = true);
1642
1654
  vue.onActivated(() => isKeptAlive.value = false);
1655
+ const layoutIsReady = vue.nextTick();
1643
1656
  const {
1644
1657
  layoutItemStyles,
1645
1658
  layoutItemScrimStyles
@@ -1652,7 +1665,8 @@
1652
1665
  return {
1653
1666
  layoutItemStyles,
1654
1667
  layoutRect: layout.layoutRect,
1655
- layoutItemScrimStyles
1668
+ layoutItemScrimStyles,
1669
+ layoutIsReady
1656
1670
  };
1657
1671
  }
1658
1672
  const generateLayers = (layout, positions, layoutSizes, activeItems) => {
@@ -1698,29 +1712,7 @@
1698
1712
  resizeRef,
1699
1713
  contentRect: layoutRect
1700
1714
  } = useResizeObserver();
1701
- const computedOverlaps = vue.computed(() => {
1702
- const map = new Map();
1703
- const overlaps = props.overlaps ?? [];
1704
- for (const overlap of overlaps.filter(item => item.includes(':'))) {
1705
- const [top, bottom] = overlap.split(':');
1706
- if (!registered.value.includes(top) || !registered.value.includes(bottom)) continue;
1707
- const topPosition = positions.get(top);
1708
- const bottomPosition = positions.get(bottom);
1709
- const topAmount = layoutSizes.get(top);
1710
- const bottomAmount = layoutSizes.get(bottom);
1711
- if (!topPosition || !bottomPosition || !topAmount || !bottomAmount) continue;
1712
- map.set(bottom, {
1713
- position: topPosition.value,
1714
- amount: parseInt(topAmount.value, 10)
1715
- });
1716
- map.set(top, {
1717
- position: bottomPosition.value,
1718
- amount: -parseInt(bottomAmount.value, 10)
1719
- });
1720
- }
1721
- return map;
1722
- });
1723
- const layers = vue.computed(() => {
1715
+ const layers = eagerComputed(() => {
1724
1716
  const uniquePriorities = [...new Set([...priorities.values()].map(p => p.value))].sort((a, b) => a - b);
1725
1717
  const layout = [];
1726
1718
  for (const p of uniquePriorities) {
@@ -1746,7 +1738,7 @@
1746
1738
  })
1747
1739
  };
1748
1740
  });
1749
- const items = vue.computed(() => {
1741
+ const items = eagerComputed(() => {
1750
1742
  return layers.value.slice(1).map((_ref, index) => {
1751
1743
  let {
1752
1744
  id
@@ -1768,10 +1760,7 @@
1768
1760
  return items.value.find(item => item.id === id);
1769
1761
  };
1770
1762
  const rootVm = getCurrentInstance('createLayout');
1771
- const isMounted = vue.shallowRef(false);
1772
- vue.onMounted(() => {
1773
- isMounted.value = true;
1774
- });
1763
+ const layoutIsReady = vue.nextTick();
1775
1764
  vue.provide(VuetifyLayoutKey, {
1776
1765
  register: (vm, _ref2) => {
1777
1766
  let {
@@ -1807,13 +1796,9 @@
1807
1796
  transition: 'none'
1808
1797
  })
1809
1798
  };
1810
- if (!isMounted.value) return styles;
1799
+ if (index.value < 0) throw new Error(`Layout item "${id}" is missing`);
1811
1800
  const item = items.value[index.value];
1812
1801
  if (!item) throw new Error(`[Vuetify] Could not find layout item "${id}"`);
1813
- const overlap = computedOverlaps.value.get(id);
1814
- if (overlap) {
1815
- item[overlap.position] += overlap.amount;
1816
- }
1817
1802
  return {
1818
1803
  ...styles,
1819
1804
  height: isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)` : elementSize.value ? `${elementSize.value}px` : undefined,
@@ -1846,7 +1831,8 @@
1846
1831
  getLayoutItem,
1847
1832
  items,
1848
1833
  layoutRect,
1849
- rootZIndex
1834
+ rootZIndex,
1835
+ layoutIsReady
1850
1836
  });
1851
1837
  const layoutClasses = vue.computed(() => ['v-layout', {
1852
1838
  'v-layout--full-height': props.fullHeight
@@ -1862,6 +1848,7 @@
1862
1848
  getLayoutItem,
1863
1849
  items,
1864
1850
  layoutRect,
1851
+ layoutIsReady,
1865
1852
  layoutRef: resizeRef
1866
1853
  };
1867
1854
  }
@@ -2556,7 +2543,9 @@
2556
2543
  "style": [props.style]
2557
2544
  }, [vue.createVNode("div", {
2558
2545
  "class": "v-application__wrap"
2559
- }, [slots.default?.()])]));
2546
+ }, [vue.createVNode(vue.Suspense, null, {
2547
+ default: () => [vue.createVNode(vue.Fragment, null, [slots.default?.()])]
2548
+ })])]));
2560
2549
  return {
2561
2550
  getLayoutItem,
2562
2551
  items,
@@ -2699,14 +2688,16 @@
2699
2688
  type: String,
2700
2689
  default: mode
2701
2690
  },
2702
- disabled: Boolean
2691
+ disabled: Boolean,
2692
+ group: Boolean
2703
2693
  },
2704
2694
  setup(props, _ref2) {
2705
2695
  let {
2706
2696
  slots
2707
2697
  } = _ref2;
2698
+ const tag = props.group ? vue.TransitionGroup : vue.Transition;
2708
2699
  return () => {
2709
- return vue.h(vue.Transition, {
2700
+ return vue.h(tag, {
2710
2701
  name: props.disabled ? '' : name,
2711
2702
  css: !props.disabled,
2712
2703
  // mode: props.mode, // TODO: vuejs/vue-next#3104
@@ -3164,17 +3155,19 @@
3164
3155
  const {
3165
3156
  transition,
3166
3157
  disabled,
3158
+ group,
3167
3159
  ...rest
3168
3160
  } = props;
3169
3161
  const {
3170
- component = vue.Transition,
3162
+ component = group ? vue.TransitionGroup : vue.Transition,
3171
3163
  ...customProps
3172
3164
  } = typeof transition === 'object' ? transition : {};
3173
3165
  return vue.h(component, vue.mergeProps(typeof transition === 'string' ? {
3174
3166
  name: disabled ? '' : transition
3175
- } : customProps, rest, {
3176
- disabled
3177
- }), slots);
3167
+ } : customProps, typeof transition === 'string' ? {} : {
3168
+ disabled,
3169
+ group
3170
+ }, rest), slots);
3178
3171
  };
3179
3172
 
3180
3173
  // Utilities
@@ -3893,9 +3886,8 @@
3893
3886
  const isFlat = vue.computed(() => props.flat || scrollBehavior.value.elevate && (scrollBehavior.value.inverted ? currentScroll.value > 0 : currentScroll.value === 0));
3894
3887
  const opacity = vue.computed(() => scrollBehavior.value.fadeImage ? scrollBehavior.value.inverted ? 1 - scrollRatio.value : scrollRatio.value : undefined);
3895
3888
  const height = vue.computed(() => {
3896
- if (scrollBehavior.value.hide && scrollBehavior.value.inverted) return 0;
3897
- const height = vToolbarRef.value?.contentHeight ?? 0;
3898
- const extensionHeight = vToolbarRef.value?.extensionHeight ?? 0;
3889
+ const height = Number(vToolbarRef.value?.contentHeight ?? props.height);
3890
+ const extensionHeight = Number(vToolbarRef.value?.extensionHeight ?? 0);
3899
3891
  return height + extensionHeight;
3900
3892
  });
3901
3893
  useToggleScope(vue.computed(() => !!props.scrollBehavior), () => {
@@ -3915,7 +3907,8 @@
3915
3907
  ssrBootStyles
3916
3908
  } = useSsrBoot();
3917
3909
  const {
3918
- layoutItemStyles
3910
+ layoutItemStyles,
3911
+ layoutIsReady
3919
3912
  } = useLayoutItem({
3920
3913
  id: props.name,
3921
3914
  order: vue.computed(() => parseInt(props.order, 10)),
@@ -3943,7 +3936,7 @@
3943
3936
  "flat": isFlat.value
3944
3937
  }), slots);
3945
3938
  });
3946
- return {};
3939
+ return layoutIsReady;
3947
3940
  }
3948
3941
  });
3949
3942
 
@@ -4490,7 +4483,8 @@
4490
4483
  ...aliases,
4491
4484
  /* eslint-disable max-len */
4492
4485
  vuetify: ['M8.2241 14.2009L12 21L22 3H14.4459L8.2241 14.2009Z', ['M7.26303 12.4733L7.00113 12L2 3H12.5261C12.5261 3 12.5261 3 12.5261 3L7.26303 12.4733Z', 0.6]],
4493
- 'vuetify-outline': 'svg:M7.26 12.47 12.53 3H2L7.26 12.47ZM14.45 3 8.22 14.2 12 21 22 3H14.45ZM18.6 5 12 16.88 10.51 14.2 15.62 5ZM7.26 8.35 5.4 5H9.13L7.26 8.35Z'
4486
+ 'vuetify-outline': 'svg:M7.26 12.47 12.53 3H2L7.26 12.47ZM14.45 3 8.22 14.2 12 21 22 3H14.45ZM18.6 5 12 16.88 10.51 14.2 15.62 5ZM7.26 8.35 5.4 5H9.13L7.26 8.35Z',
4487
+ 'vuetify-play': ['m6.376 13.184-4.11-7.192C1.505 4.66 2.467 3 4.003 3h8.532l-.953 1.576-.006.01-.396.677c-.429.732-.214 1.507.194 2.015.404.503 1.092.878 1.869.806a3.72 3.72 0 0 1 1.005.022c.276.053.434.143.523.237.138.146.38.635-.25 2.09-.893 1.63-1.553 1.722-1.847 1.677-.213-.033-.468-.158-.756-.406a4.95 4.95 0 0 1-.8-.927c-.39-.564-1.04-.84-1.66-.846-.625-.006-1.316.27-1.693.921l-.478.826-.911 1.506Z', ['M9.093 11.552c.046-.079.144-.15.32-.148a.53.53 0 0 1 .43.207c.285.414.636.847 1.046 1.2.405.35.914.662 1.516.754 1.334.205 2.502-.698 3.48-2.495l.014-.028.013-.03c.687-1.574.774-2.852-.005-3.675-.37-.391-.861-.586-1.333-.676a5.243 5.243 0 0 0-1.447-.044c-.173.016-.393-.073-.54-.257-.145-.18-.127-.316-.082-.392l.393-.672L14.287 3h5.71c1.536 0 2.499 1.659 1.737 2.992l-7.997 13.996c-.768 1.344-2.706 1.344-3.473 0l-3.037-5.314 1.377-2.278.004-.006.004-.007.481-.831Z', 0.6]]
4494
4488
  /* eslint-enable max-len */
4495
4489
  }
4496
4490
  }, options);
@@ -6496,6 +6490,7 @@
6496
6490
  register: _ref => {
6497
6491
  let {
6498
6492
  id,
6493
+ vm,
6499
6494
  validate,
6500
6495
  reset,
6501
6496
  resetValidation
@@ -6508,6 +6503,7 @@
6508
6503
  validate,
6509
6504
  reset,
6510
6505
  resetValidation,
6506
+ vm: vue.markRaw(vm),
6511
6507
  isValid: null,
6512
6508
  errorMessages: []
6513
6509
  });
@@ -6622,10 +6618,12 @@
6622
6618
  [`${name}--readonly`]: isReadonly.value
6623
6619
  };
6624
6620
  });
6621
+ const vm = getCurrentInstance('validation');
6625
6622
  const uid = vue.computed(() => props.name ?? vue.unref(id));
6626
6623
  vue.onBeforeMount(() => {
6627
6624
  form?.register({
6628
6625
  id: uid.value,
6626
+ vm,
6629
6627
  validate,
6630
6628
  reset,
6631
6629
  resetValidation
@@ -12963,9 +12961,10 @@
12963
12961
  ssrBootStyles
12964
12962
  } = useSsrBoot();
12965
12963
  const height = vue.computed(() => Number(props.height) - (props.density === 'comfortable' ? 8 : 0) - (props.density === 'compact' ? 16 : 0));
12966
- const isActive = vue.toRef(props, 'active');
12964
+ const isActive = useProxiedModel(props, 'modelValue', props.modelValue);
12967
12965
  const {
12968
- layoutItemStyles
12966
+ layoutItemStyles,
12967
+ layoutIsReady
12969
12968
  } = useLayoutItem({
12970
12969
  id: props.name,
12971
12970
  order: vue.computed(() => parseInt(props.order, 10)),
@@ -13003,7 +13002,7 @@
13003
13002
  }, [slots.default()])]
13004
13003
  });
13005
13004
  });
13006
- return {};
13005
+ return layoutIsReady;
13007
13006
  }
13008
13007
  });
13009
13008
 
@@ -17339,6 +17338,9 @@
17339
17338
  function getNextMonth(date) {
17340
17339
  return new Date(date.getFullYear(), date.getMonth() + 1, 1);
17341
17340
  }
17341
+ function getPreviousMonth(date) {
17342
+ return new Date(date.getFullYear(), date.getMonth() - 1, 1);
17343
+ }
17342
17344
  function getHours(date) {
17343
17345
  return date.getHours();
17344
17346
  }
@@ -17361,6 +17363,9 @@
17361
17363
  function isAfter(date, comparing) {
17362
17364
  return date.getTime() > comparing.getTime();
17363
17365
  }
17366
+ function isAfterDay(date, comparing) {
17367
+ return isAfter(startOfDay(date), startOfDay(comparing));
17368
+ }
17364
17369
  function isBefore(date, comparing) {
17365
17370
  return date.getTime() < comparing.getTime();
17366
17371
  }
@@ -17373,13 +17378,34 @@
17373
17378
  function isSameMonth(date, comparing) {
17374
17379
  return date.getMonth() === comparing.getMonth() && date.getFullYear() === comparing.getFullYear();
17375
17380
  }
17381
+ function isSameYear(date, comparing) {
17382
+ return date.getFullYear() === comparing.getFullYear();
17383
+ }
17376
17384
  function getDiff(date, comparing, unit) {
17377
17385
  const d = new Date(date);
17378
17386
  const c = new Date(comparing);
17379
- if (unit === 'month') {
17380
- return d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12;
17387
+ switch (unit) {
17388
+ case 'years':
17389
+ return d.getFullYear() - c.getFullYear();
17390
+ case 'quarters':
17391
+ return Math.floor((d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12) / 4);
17392
+ case 'months':
17393
+ return d.getMonth() - c.getMonth() + (d.getFullYear() - c.getFullYear()) * 12;
17394
+ case 'weeks':
17395
+ return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24 * 7));
17396
+ case 'days':
17397
+ return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24));
17398
+ case 'hours':
17399
+ return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60));
17400
+ case 'minutes':
17401
+ return Math.floor((d.getTime() - c.getTime()) / (1000 * 60));
17402
+ case 'seconds':
17403
+ return Math.floor((d.getTime() - c.getTime()) / 1000);
17404
+ default:
17405
+ {
17406
+ return d.getTime() - c.getTime();
17407
+ }
17381
17408
  }
17382
- return Math.floor((d.getTime() - c.getTime()) / (1000 * 60 * 60 * 24));
17383
17409
  }
17384
17410
  function setHours(date, count) {
17385
17411
  const d = new Date(date);
@@ -17469,6 +17495,9 @@
17469
17495
  isAfter(date, comparing) {
17470
17496
  return isAfter(date, comparing);
17471
17497
  }
17498
+ isAfterDay(date, comparing) {
17499
+ return isAfterDay(date, comparing);
17500
+ }
17472
17501
  isBefore(date, comparing) {
17473
17502
  return !isAfter(date, comparing) && !isEqual(date, comparing);
17474
17503
  }
@@ -17478,6 +17507,9 @@
17478
17507
  isSameMonth(date, comparing) {
17479
17508
  return isSameMonth(date, comparing);
17480
17509
  }
17510
+ isSameYear(date, comparing) {
17511
+ return isSameYear(date, comparing);
17512
+ }
17481
17513
  setMinutes(date, count) {
17482
17514
  return setMinutes(date, count);
17483
17515
  }
@@ -17505,6 +17537,9 @@
17505
17537
  getNextMonth(date) {
17506
17538
  return getNextMonth(date);
17507
17539
  }
17540
+ getPreviousMonth(date) {
17541
+ return getPreviousMonth(date);
17542
+ }
17508
17543
  getHours(date) {
17509
17544
  return getHours(date);
17510
17545
  }
@@ -20574,7 +20609,7 @@
20574
20609
  } else {
20575
20610
  rangeStop.value = _value;
20576
20611
  }
20577
- const diff = adapter.getDiff(rangeStop.value, rangeStart.value);
20612
+ const diff = adapter.getDiff(rangeStop.value, rangeStart.value, 'days');
20578
20613
  const datesInRange = [rangeStart.value];
20579
20614
  for (let i = 1; i < diff; i++) {
20580
20615
  const nextDate = adapter.addDays(rangeStart.value, i);
@@ -21625,7 +21660,8 @@
21625
21660
  });
21626
21661
  const height = vue.computed(() => props.height === 'auto' ? autoHeight.value : parseInt(props.height, 10));
21627
21662
  const {
21628
- layoutItemStyles
21663
+ layoutItemStyles,
21664
+ layoutIsReady
21629
21665
  } = useLayoutItem({
21630
21666
  id: props.name,
21631
21667
  order: vue.computed(() => parseInt(props.order, 10)),
@@ -21642,7 +21678,7 @@
21642
21678
  height: convertToUnit(props.height)
21643
21679
  }, props.style]
21644
21680
  }, slots));
21645
- return {};
21681
+ return props.app ? layoutIsReady : {};
21646
21682
  }
21647
21683
  });
21648
21684
 
@@ -22065,7 +22101,9 @@
22065
22101
  "ref": layoutRef,
22066
22102
  "class": [layoutClasses.value, props.class],
22067
22103
  "style": [layoutStyles.value, props.style]
22068
- }, [slots.default?.()]));
22104
+ }, [vue.createVNode(vue.Suspense, null, {
22105
+ default: () => [vue.createVNode(vue.Fragment, null, [slots.default?.()])]
22106
+ })]));
22069
22107
  return {
22070
22108
  getLayoutItem,
22071
22109
  items
@@ -22096,7 +22134,8 @@
22096
22134
  slots
22097
22135
  } = _ref;
22098
22136
  const {
22099
- layoutItemStyles
22137
+ layoutItemStyles,
22138
+ layoutIsReady
22100
22139
  } = useLayoutItem({
22101
22140
  id: props.name,
22102
22141
  order: vue.computed(() => parseInt(props.order, 10)),
@@ -22106,10 +22145,11 @@
22106
22145
  active: vue.toRef(props, 'modelValue'),
22107
22146
  absolute: vue.toRef(props, 'absolute')
22108
22147
  });
22109
- return () => vue.createVNode("div", {
22148
+ useRender(() => vue.createVNode("div", {
22110
22149
  "class": ['v-layout-item', props.class],
22111
22150
  "style": [layoutItemStyles.value, props.style]
22112
- }, [slots.default?.()]);
22151
+ }, [slots.default?.()]));
22152
+ return layoutIsReady;
22113
22153
  }
22114
22154
  });
22115
22155
 
@@ -22216,7 +22256,8 @@
22216
22256
  slots
22217
22257
  } = _ref;
22218
22258
  const {
22219
- mainStyles
22259
+ mainStyles,
22260
+ layoutIsReady
22220
22261
  } = useLayout();
22221
22262
  const {
22222
22263
  ssrBootStyles
@@ -22231,7 +22272,7 @@
22231
22272
  "class": "v-main__scroller"
22232
22273
  }, [slots.default?.()]) : slots.default?.()]
22233
22274
  }));
22234
- return {};
22275
+ return layoutIsReady;
22235
22276
  }
22236
22277
  });
22237
22278
 
@@ -22656,10 +22697,9 @@
22656
22697
  vue.watch(() => props.permanent, val => {
22657
22698
  if (val) isActive.value = true;
22658
22699
  });
22659
- vue.onBeforeMount(() => {
22660
- if (props.modelValue != null || isTemporary.value) return;
22700
+ if (props.modelValue == null && !isTemporary.value) {
22661
22701
  isActive.value = props.permanent || !mobile.value;
22662
- });
22702
+ }
22663
22703
  const {
22664
22704
  isDragging,
22665
22705
  dragProgress,
@@ -22677,7 +22717,8 @@
22677
22717
  });
22678
22718
  const {
22679
22719
  layoutItemStyles,
22680
- layoutItemScrimStyles
22720
+ layoutItemScrimStyles,
22721
+ layoutIsReady
22681
22722
  } = useLayoutItem({
22682
22723
  id: props.name,
22683
22724
  order: vue.computed(() => parseInt(props.order, 10)),
@@ -22761,9 +22802,9 @@
22761
22802
  }, scopeId), null)]
22762
22803
  })]);
22763
22804
  });
22764
- return {
22805
+ return layoutIsReady.then(() => ({
22765
22806
  isStuck
22766
- };
22807
+ }));
22767
22808
  }
22768
22809
  });
22769
22810
 
@@ -23763,6 +23804,8 @@
23763
23804
  }
23764
23805
  });
23765
23806
 
23807
+ // Types
23808
+
23766
23809
  function useCountdown(milliseconds) {
23767
23810
  const time = vue.shallowRef(milliseconds);
23768
23811
  let timer = -1;
@@ -23930,7 +23973,9 @@
23930
23973
  }, {
23931
23974
  default: () => [vue.createVNode("div", {
23932
23975
  "class": "v-snackbar__actions"
23933
- }, [slots.actions()])]
23976
+ }, [slots.actions({
23977
+ isActive
23978
+ })])]
23934
23979
  })],
23935
23980
  activator: slots.activator
23936
23981
  });
@@ -25513,8 +25558,8 @@
25513
25558
  return vue.createVNode(VSheet, {
25514
25559
  "height": calcHeight().height,
25515
25560
  "density": "comfortable",
25516
- "style": `width: 100%; margin-top: ${calcHeight().margin}`,
25517
- "class": "align-center pa-1",
25561
+ "style": `margin-top: ${calcHeight().margin}`,
25562
+ "class": "v-calendar-internal-event",
25518
25563
  "color": props.event?.color ?? undefined,
25519
25564
  "rounded": props.event?.first && props.event?.last ? true : props.event?.first ? 't' : props.event?.last ? 'b' : false
25520
25565
  }, {
@@ -26472,6 +26517,52 @@
26472
26517
  }
26473
26518
  });
26474
26519
 
26520
+ const makeVSpeedDialProps = propsFactory({
26521
+ ...makeComponentProps(),
26522
+ ...makeVMenuProps({
26523
+ offset: 8,
26524
+ minWidth: 0,
26525
+ location: 'top center'
26526
+ }),
26527
+ ...makeTransitionProps({
26528
+ transition: 'fade-transition'
26529
+ })
26530
+ }, 'VSpeedDial');
26531
+ const VSpeedDial = genericComponent()({
26532
+ name: 'VSpeedDial',
26533
+ props: makeVSpeedDialProps(),
26534
+ setup(props, _ref) {
26535
+ let {
26536
+ slots
26537
+ } = _ref;
26538
+ useRender(() => {
26539
+ const menuProps = VMenu.filterProps(props);
26540
+ return vue.createVNode(VMenu, vue.mergeProps(menuProps, {
26541
+ "class": props.class,
26542
+ "style": props.style,
26543
+ "contentClass": "v-speed-dial__content"
26544
+ }), {
26545
+ default: () => [vue.createVNode(VDefaultsProvider, {
26546
+ "defaults": {
26547
+ VBtn: {
26548
+ size: 'small'
26549
+ }
26550
+ }
26551
+ }, {
26552
+ default: () => [vue.createVNode(MaybeTransition, {
26553
+ "appear": true,
26554
+ "group": true,
26555
+ "transition": props.transition
26556
+ }, {
26557
+ default: () => [slots.default?.()]
26558
+ })]
26559
+ })]
26560
+ });
26561
+ });
26562
+ return {};
26563
+ }
26564
+ });
26565
+
26475
26566
  // Types
26476
26567
 
26477
26568
  // Types
@@ -26749,6 +26840,7 @@
26749
26840
  VSnackbar: VSnackbar,
26750
26841
  VSpacer: VSpacer,
26751
26842
  VSparkline: VSparkline,
26843
+ VSpeedDial: VSpeedDial,
26752
26844
  VStepper: VStepper,
26753
26845
  VStepperActions: VStepperActions,
26754
26846
  VStepperHeader: VStepperHeader,
@@ -26996,7 +27088,7 @@
26996
27088
  goTo
26997
27089
  };
26998
27090
  }
26999
- const version$1 = "3.5.7-master.2024-03-05";
27091
+ const version$1 = "3.5.8-dev.2024-03-13";
27000
27092
  createVuetify$1.version = version$1;
27001
27093
 
27002
27094
  // Vue's inject() can only be used in setup
@@ -27010,7 +27102,7 @@
27010
27102
 
27011
27103
  /* eslint-disable local-rules/sort-imports */
27012
27104
 
27013
- const version = "3.5.7-master.2024-03-05";
27105
+ const version = "3.5.8-dev.2024-03-13";
27014
27106
 
27015
27107
  /* eslint-disable local-rules/sort-imports */
27016
27108