@vuetify/nightly 3.9.3-dev.2025-08-01 → 3.9.3-dev.2025-08-05

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 (72) hide show
  1. package/CHANGELOG.md +8 -3
  2. package/dist/json/attributes.json +3131 -3115
  3. package/dist/json/importMap-labs.json +24 -24
  4. package/dist/json/importMap.json +176 -176
  5. package/dist/json/tags.json +4 -0
  6. package/dist/json/web-types.json +5775 -5635
  7. package/dist/vuetify-labs.cjs +63 -21
  8. package/dist/vuetify-labs.css +4060 -4060
  9. package/dist/vuetify-labs.d.ts +156 -76
  10. package/dist/vuetify-labs.esm.js +63 -21
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +63 -21
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.cjs +63 -21
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +3717 -3717
  17. package/dist/vuetify.d.ts +128 -76
  18. package/dist/vuetify.esm.js +63 -21
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +63 -21
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +2 -2
  23. package/dist/vuetify.min.js +298 -292
  24. package/dist/vuetify.min.js.map +1 -1
  25. package/lib/components/VDataIterator/VDataIterator.d.ts +3 -2
  26. package/lib/components/VDataIterator/VDataIterator.js +2 -1
  27. package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
  28. package/lib/components/VDataTable/VDataTable.d.ts +6 -4
  29. package/lib/components/VDataTable/VDataTable.js +1 -1
  30. package/lib/components/VDataTable/VDataTable.js.map +1 -1
  31. package/lib/components/VDataTable/VDataTableRows.d.ts +14 -11
  32. package/lib/components/VDataTable/VDataTableRows.js +9 -0
  33. package/lib/components/VDataTable/VDataTableRows.js.map +1 -1
  34. package/lib/components/VDataTable/VDataTableServer.d.ts +4 -2
  35. package/lib/components/VDataTable/VDataTableServer.js +1 -1
  36. package/lib/components/VDataTable/VDataTableServer.js.map +1 -1
  37. package/lib/components/VDataTable/VDataTableVirtual.d.ts +4 -2
  38. package/lib/components/VDataTable/VDataTableVirtual.js +1 -1
  39. package/lib/components/VDataTable/VDataTableVirtual.js.map +1 -1
  40. package/lib/components/VDataTable/composables/group.d.ts +13 -5
  41. package/lib/components/VDataTable/composables/group.js +11 -5
  42. package/lib/components/VDataTable/composables/group.js.map +1 -1
  43. package/lib/components/VDataTable/composables/paginate.d.ts +3 -3
  44. package/lib/components/VDataTable/composables/paginate.js.map +1 -1
  45. package/lib/components/VDataTable/types.d.ts +7 -1
  46. package/lib/components/VDataTable/types.js.map +1 -1
  47. package/lib/components/VDatePicker/VDatePicker.d.ts +25 -0
  48. package/lib/components/VDatePicker/VDatePickerMonth.d.ts +25 -0
  49. package/lib/components/VSkeletonLoader/VSkeletonLoader.js +6 -4
  50. package/lib/components/VSkeletonLoader/VSkeletonLoader.js.map +1 -1
  51. package/lib/components/VWindow/VWindow.js +2 -2
  52. package/lib/components/VWindow/VWindow.js.map +1 -1
  53. package/lib/composables/calendar.d.ts +12 -0
  54. package/lib/composables/calendar.js +5 -1
  55. package/lib/composables/calendar.js.map +1 -1
  56. package/lib/composables/date/DateAdapter.d.ts +1 -1
  57. package/lib/composables/date/DateAdapter.js.map +1 -1
  58. package/lib/composables/date/adapters/string.d.ts +1 -1
  59. package/lib/composables/date/adapters/string.js +2 -2
  60. package/lib/composables/date/adapters/string.js.map +1 -1
  61. package/lib/composables/date/adapters/vuetify.d.ts +1 -1
  62. package/lib/composables/date/adapters/vuetify.js +25 -5
  63. package/lib/composables/date/adapters/vuetify.js.map +1 -1
  64. package/lib/composables/date/date.d.ts +1 -1
  65. package/lib/entry-bundler.d.ts +1 -1
  66. package/lib/entry-bundler.js +1 -1
  67. package/lib/framework.d.ts +61 -61
  68. package/lib/framework.js +1 -1
  69. package/lib/labs/VCalendar/VCalendar.d.ts +25 -0
  70. package/lib/labs/VDateInput/VDateInput.d.ts +25 -0
  71. package/lib/labs/entry-bundler.d.ts +1 -1
  72. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.9.3-dev.2025-08-01
2
+ * Vuetify v3.9.3-dev.2025-08-05
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -15866,7 +15866,7 @@ const VWindow = genericComponent()({
15866
15866
  'v-window--vertical-arrows': !!props.verticalArrows,
15867
15867
  'v-window--crossfade': !!props.crossfade
15868
15868
  }, themeClasses.value, props.class]),
15869
- "style": normalizeStyle([props.style, props.transitionDuration ? {
15869
+ "style": normalizeStyle([props.style, props.transitionDuration && !PREFERS_REDUCED_MOTION ? {
15870
15870
  '--v-window-transition-duration': convertToUnit(props.transitionDuration, 'ms')
15871
15871
  } : undefined])
15872
15872
  }, {
@@ -18364,16 +18364,35 @@ function getYear(date) {
18364
18364
  function getMonth(date) {
18365
18365
  return date.getMonth();
18366
18366
  }
18367
- function getWeek(date, locale, firstDayOfWeek, firstWeekMinSize) {
18367
+ function getWeek(date, locale, firstDayOfWeek, firstDayOfYear) {
18368
18368
  const weekInfoFromLocale = weekInfo(locale);
18369
18369
  const weekStart = firstDayOfWeek ?? weekInfoFromLocale?.firstDay ?? 0;
18370
- const minWeekSize = firstWeekMinSize ?? weekInfoFromLocale?.firstWeekSize ?? 1;
18370
+ const minWeekSize = weekInfoFromLocale?.firstWeekSize ?? 1;
18371
+ return firstDayOfYear !== undefined ? calculateWeekWithFirstDayOfYear(date, locale, weekStart, firstDayOfYear) : calculateWeekWithMinWeekSize(date, locale, weekStart, minWeekSize);
18372
+ }
18373
+ function calculateWeekWithFirstDayOfYear(date, locale, weekStart, firstDayOfYear) {
18374
+ const firstDayOfYearOffset = (7 + firstDayOfYear - weekStart) % 7;
18375
+ const currentWeekStart = startOfWeek(date, locale, weekStart);
18376
+ const currentWeekEnd = addDays(currentWeekStart, 6);
18377
+ function yearStartWeekdayOffset(year) {
18378
+ return (7 + new Date(year, 0, 1).getDay() - weekStart) % 7;
18379
+ }
18380
+ let year = getYear(date);
18381
+ if (year < getYear(currentWeekEnd) && yearStartWeekdayOffset(year + 1) <= firstDayOfYearOffset) {
18382
+ year++;
18383
+ }
18384
+ const yearStart = new Date(year, 0, 1);
18385
+ const offset = yearStartWeekdayOffset(year);
18386
+ const d1w1 = offset <= firstDayOfYearOffset ? addDays(yearStart, -offset) : addDays(yearStart, 7 - offset);
18387
+ return 1 + getDiff(endOfDay(date), startOfDay(d1w1), 'weeks');
18388
+ }
18389
+ function calculateWeekWithMinWeekSize(date, locale, weekStart, minWeekSize) {
18390
+ const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6);
18371
18391
  function firstWeekSize(year) {
18372
18392
  const yearStart = new Date(year, 0, 1);
18373
18393
  return 7 - getDiff(yearStart, startOfWeek(yearStart, locale, weekStart), 'days');
18374
18394
  }
18375
18395
  let year = getYear(date);
18376
- const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6);
18377
18396
  if (year < getYear(currentWeekEnd) && firstWeekSize(year + 1) >= minWeekSize) {
18378
18397
  year++;
18379
18398
  }
@@ -18595,9 +18614,10 @@ class VuetifyDateAdapter {
18595
18614
  getMonth(date) {
18596
18615
  return getMonth(date);
18597
18616
  }
18598
- getWeek(date, firstDayOfWeek, firstWeekMinSize) {
18617
+ getWeek(date, firstDayOfWeek, firstDayOfYear) {
18599
18618
  const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
18600
- return getWeek(date, this.locale, firstDay, firstWeekMinSize);
18619
+ const firstWeekStart = firstDayOfYear !== undefined ? Number(firstDayOfYear) : undefined;
18620
+ return getWeek(date, this.locale, firstDay, firstWeekStart);
18601
18621
  }
18602
18622
  getDate(date) {
18603
18623
  return getDate(date);
@@ -19969,7 +19989,7 @@ function groupItems(items, groupBy) {
19969
19989
  });
19970
19990
  return groups;
19971
19991
  }
19972
- function flattenItems(items, opened) {
19992
+ function flattenItems(items, opened, hasSummary) {
19973
19993
  const flatItems = [];
19974
19994
  for (const item of items) {
19975
19995
  // TODO: make this better
@@ -19978,7 +19998,13 @@ function flattenItems(items, opened) {
19978
19998
  flatItems.push(item);
19979
19999
  }
19980
20000
  if (opened.has(item.id) || item.value == null) {
19981
- flatItems.push(...flattenItems(item.items, opened));
20001
+ flatItems.push(...flattenItems(item.items, opened, hasSummary));
20002
+ if (hasSummary) {
20003
+ flatItems.push({
20004
+ ...item,
20005
+ type: 'group-summary'
20006
+ });
20007
+ }
19982
20008
  }
19983
20009
  } else {
19984
20010
  flatItems.push(item);
@@ -19986,11 +20012,11 @@ function flattenItems(items, opened) {
19986
20012
  }
19987
20013
  return flatItems;
19988
20014
  }
19989
- function useGroupedItems(items, groupBy, opened) {
20015
+ function useGroupedItems(items, groupBy, opened, hasSummary) {
19990
20016
  const flatItems = computed(() => {
19991
20017
  if (!groupBy.value.length) return items.value;
19992
20018
  const groupedItems = groupItems(items.value, groupBy.value.map(item => item.key));
19993
- return flattenItems(groupedItems, opened.value);
20019
+ return flattenItems(groupedItems, opened.value, toValue(hasSummary));
19994
20020
  });
19995
20021
  return {
19996
20022
  flatItems
@@ -20608,7 +20634,7 @@ const VDataIterator = genericComponent()({
20608
20634
  });
20609
20635
  const {
20610
20636
  flatItems
20611
- } = useGroupedItems(sortedItems, groupBy, opened);
20637
+ } = useGroupedItems(sortedItems, groupBy, opened, false);
20612
20638
  const itemsLength = toRef(() => flatItems.value.length);
20613
20639
  const {
20614
20640
  startIndex,
@@ -20671,6 +20697,7 @@ const VDataIterator = genericComponent()({
20671
20697
  isGroupOpen,
20672
20698
  toggleGroup,
20673
20699
  items: paginatedItemsWithoutGroups.value,
20700
+ itemsCount: filteredItems.value.length,
20674
20701
  groupedItems: paginatedItems.value
20675
20702
  }));
20676
20703
  useRender(() => createVNode(props.tag, {
@@ -22095,6 +22122,15 @@ const VDataTableRows = genericComponent()({
22095
22122
  "item": item
22096
22123
  }, getPrefixedEventHandlers(attrs, ':group-header', () => slotProps), groupHeaderRowProps), slots);
22097
22124
  }
22125
+ if (item.type === 'group-summary') {
22126
+ const slotProps = {
22127
+ index,
22128
+ item,
22129
+ columns: columns.value,
22130
+ toggleGroup
22131
+ };
22132
+ return slots['group-summary']?.(slotProps) ?? '';
22133
+ }
22098
22134
  const slotProps = {
22099
22135
  index,
22100
22136
  item: item.raw,
@@ -22346,7 +22382,7 @@ const VDataTable = genericComponent()({
22346
22382
  });
22347
22383
  const {
22348
22384
  flatItems
22349
- } = useGroupedItems(sortedItems, groupBy, opened);
22385
+ } = useGroupedItems(sortedItems, groupBy, opened, () => !!slots['group-summary']);
22350
22386
  const itemsLength = computed(() => flatItems.value.length);
22351
22387
  const {
22352
22388
  startIndex,
@@ -22534,7 +22570,7 @@ const VDataTableVirtual = genericComponent()({
22534
22570
  });
22535
22571
  const {
22536
22572
  flatItems
22537
- } = useGroupedItems(sortedItems, groupBy, opened);
22573
+ } = useGroupedItems(sortedItems, groupBy, opened, () => !!slots['group-summary']);
22538
22574
  const allItems = computed(() => extractRows(flatItems.value));
22539
22575
  const {
22540
22576
  isSelected,
@@ -22763,7 +22799,7 @@ const VDataTableServer = genericComponent()({
22763
22799
  });
22764
22800
  const {
22765
22801
  flatItems
22766
- } = useGroupedItems(items, groupBy, opened);
22802
+ } = useGroupedItems(items, groupBy, opened, () => !!slots['group-summary']);
22767
22803
  const {
22768
22804
  isSelected,
22769
22805
  select,
@@ -23355,6 +23391,10 @@ const makeCalendarProps = propsFactory({
23355
23391
  type: [Number, String],
23356
23392
  default: undefined
23357
23393
  },
23394
+ firstDayOfYear: {
23395
+ type: [Number, String],
23396
+ default: undefined
23397
+ },
23358
23398
  weekdayFormat: String
23359
23399
  }, 'calendar');
23360
23400
  function useCalendar(props) {
@@ -23446,7 +23486,7 @@ function useCalendar(props) {
23446
23486
  });
23447
23487
  const weekNumbers = computed(() => {
23448
23488
  return weeksInMonth.value.map(week => {
23449
- return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek) : null;
23489
+ return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek, props.firstDayOfYear) : null;
23450
23490
  });
23451
23491
  });
23452
23492
  function isDisabled(value) {
@@ -27740,9 +27780,11 @@ const makeVSkeletonLoaderProps = propsFactory({
27740
27780
  }, 'VSkeletonLoader');
27741
27781
  const VSkeletonLoader = genericComponent()({
27742
27782
  name: 'VSkeletonLoader',
27783
+ inheritAttrs: false,
27743
27784
  props: makeVSkeletonLoaderProps(),
27744
27785
  setup(props, _ref) {
27745
27786
  let {
27787
+ attrs,
27746
27788
  slots
27747
27789
  } = _ref;
27748
27790
  const {
@@ -27769,12 +27811,12 @@ const VSkeletonLoader = genericComponent()({
27769
27811
  ariaLabel: t(props.loadingText),
27770
27812
  role: 'alert'
27771
27813
  };
27772
- return createElementVNode("div", mergeProps({
27814
+ return createElementVNode(Fragment, null, [isLoading ? createElementVNode("div", mergeProps({
27773
27815
  "class": ['v-skeleton-loader', {
27774
27816
  'v-skeleton-loader--boilerplate': props.boilerplate
27775
27817
  }, themeClasses.value, backgroundColorClasses.value, elevationClasses.value],
27776
- "style": [backgroundColorStyles.value, isLoading ? dimensionStyles.value : {}]
27777
- }, loadingProps), [isLoading ? items.value : slots.default?.()]);
27818
+ "style": [backgroundColorStyles.value, dimensionStyles.value]
27819
+ }, loadingProps, attrs), [items.value]) : slots.default?.()]);
27778
27820
  });
27779
27821
  return {};
27780
27822
  }
@@ -31894,7 +31936,7 @@ function createVuetify$1() {
31894
31936
  };
31895
31937
  });
31896
31938
  }
31897
- const version$1 = "3.9.3-dev.2025-08-01";
31939
+ const version$1 = "3.9.3-dev.2025-08-05";
31898
31940
  createVuetify$1.version = version$1;
31899
31941
 
31900
31942
  // Vue's inject() can only be used in setup
@@ -31919,7 +31961,7 @@ const createVuetify = function () {
31919
31961
  ...options
31920
31962
  });
31921
31963
  };
31922
- const version = "3.9.3-dev.2025-08-01";
31964
+ const version = "3.9.3-dev.2025-08-05";
31923
31965
  createVuetify.version = version;
31924
31966
 
31925
31967
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useHotkey, useLayout, useLocale, useRtl, useTheme, version };