@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
  */
@@ -15626,7 +15626,7 @@ const VWindow = genericComponent()({
15626
15626
  'v-window--vertical-arrows': !!props.verticalArrows,
15627
15627
  'v-window--crossfade': !!props.crossfade
15628
15628
  }, themeClasses.value, props.class]),
15629
- "style": normalizeStyle([props.style, props.transitionDuration ? {
15629
+ "style": normalizeStyle([props.style, props.transitionDuration && !PREFERS_REDUCED_MOTION ? {
15630
15630
  '--v-window-transition-duration': convertToUnit(props.transitionDuration, 'ms')
15631
15631
  } : undefined])
15632
15632
  }, {
@@ -18124,16 +18124,35 @@ function getYear(date) {
18124
18124
  function getMonth(date) {
18125
18125
  return date.getMonth();
18126
18126
  }
18127
- function getWeek(date, locale, firstDayOfWeek, firstWeekMinSize) {
18127
+ function getWeek(date, locale, firstDayOfWeek, firstDayOfYear) {
18128
18128
  const weekInfoFromLocale = weekInfo(locale);
18129
18129
  const weekStart = firstDayOfWeek ?? weekInfoFromLocale?.firstDay ?? 0;
18130
- const minWeekSize = firstWeekMinSize ?? weekInfoFromLocale?.firstWeekSize ?? 1;
18130
+ const minWeekSize = weekInfoFromLocale?.firstWeekSize ?? 1;
18131
+ return firstDayOfYear !== undefined ? calculateWeekWithFirstDayOfYear(date, locale, weekStart, firstDayOfYear) : calculateWeekWithMinWeekSize(date, locale, weekStart, minWeekSize);
18132
+ }
18133
+ function calculateWeekWithFirstDayOfYear(date, locale, weekStart, firstDayOfYear) {
18134
+ const firstDayOfYearOffset = (7 + firstDayOfYear - weekStart) % 7;
18135
+ const currentWeekStart = startOfWeek(date, locale, weekStart);
18136
+ const currentWeekEnd = addDays(currentWeekStart, 6);
18137
+ function yearStartWeekdayOffset(year) {
18138
+ return (7 + new Date(year, 0, 1).getDay() - weekStart) % 7;
18139
+ }
18140
+ let year = getYear(date);
18141
+ if (year < getYear(currentWeekEnd) && yearStartWeekdayOffset(year + 1) <= firstDayOfYearOffset) {
18142
+ year++;
18143
+ }
18144
+ const yearStart = new Date(year, 0, 1);
18145
+ const offset = yearStartWeekdayOffset(year);
18146
+ const d1w1 = offset <= firstDayOfYearOffset ? addDays(yearStart, -offset) : addDays(yearStart, 7 - offset);
18147
+ return 1 + getDiff(endOfDay(date), startOfDay(d1w1), 'weeks');
18148
+ }
18149
+ function calculateWeekWithMinWeekSize(date, locale, weekStart, minWeekSize) {
18150
+ const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6);
18131
18151
  function firstWeekSize(year) {
18132
18152
  const yearStart = new Date(year, 0, 1);
18133
18153
  return 7 - getDiff(yearStart, startOfWeek(yearStart, locale, weekStart), 'days');
18134
18154
  }
18135
18155
  let year = getYear(date);
18136
- const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6);
18137
18156
  if (year < getYear(currentWeekEnd) && firstWeekSize(year + 1) >= minWeekSize) {
18138
18157
  year++;
18139
18158
  }
@@ -18355,9 +18374,10 @@ class VuetifyDateAdapter {
18355
18374
  getMonth(date) {
18356
18375
  return getMonth(date);
18357
18376
  }
18358
- getWeek(date, firstDayOfWeek, firstWeekMinSize) {
18377
+ getWeek(date, firstDayOfWeek, firstDayOfYear) {
18359
18378
  const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
18360
- return getWeek(date, this.locale, firstDay, firstWeekMinSize);
18379
+ const firstWeekStart = firstDayOfYear !== undefined ? Number(firstDayOfYear) : undefined;
18380
+ return getWeek(date, this.locale, firstDay, firstWeekStart);
18361
18381
  }
18362
18382
  getDate(date) {
18363
18383
  return getDate(date);
@@ -19729,7 +19749,7 @@ function groupItems(items, groupBy) {
19729
19749
  });
19730
19750
  return groups;
19731
19751
  }
19732
- function flattenItems(items, opened) {
19752
+ function flattenItems(items, opened, hasSummary) {
19733
19753
  const flatItems = [];
19734
19754
  for (const item of items) {
19735
19755
  // TODO: make this better
@@ -19738,7 +19758,13 @@ function flattenItems(items, opened) {
19738
19758
  flatItems.push(item);
19739
19759
  }
19740
19760
  if (opened.has(item.id) || item.value == null) {
19741
- flatItems.push(...flattenItems(item.items, opened));
19761
+ flatItems.push(...flattenItems(item.items, opened, hasSummary));
19762
+ if (hasSummary) {
19763
+ flatItems.push({
19764
+ ...item,
19765
+ type: 'group-summary'
19766
+ });
19767
+ }
19742
19768
  }
19743
19769
  } else {
19744
19770
  flatItems.push(item);
@@ -19746,11 +19772,11 @@ function flattenItems(items, opened) {
19746
19772
  }
19747
19773
  return flatItems;
19748
19774
  }
19749
- function useGroupedItems(items, groupBy, opened) {
19775
+ function useGroupedItems(items, groupBy, opened, hasSummary) {
19750
19776
  const flatItems = computed(() => {
19751
19777
  if (!groupBy.value.length) return items.value;
19752
19778
  const groupedItems = groupItems(items.value, groupBy.value.map(item => item.key));
19753
- return flattenItems(groupedItems, opened.value);
19779
+ return flattenItems(groupedItems, opened.value, toValue(hasSummary));
19754
19780
  });
19755
19781
  return {
19756
19782
  flatItems
@@ -20368,7 +20394,7 @@ const VDataIterator = genericComponent()({
20368
20394
  });
20369
20395
  const {
20370
20396
  flatItems
20371
- } = useGroupedItems(sortedItems, groupBy, opened);
20397
+ } = useGroupedItems(sortedItems, groupBy, opened, false);
20372
20398
  const itemsLength = toRef(() => flatItems.value.length);
20373
20399
  const {
20374
20400
  startIndex,
@@ -20431,6 +20457,7 @@ const VDataIterator = genericComponent()({
20431
20457
  isGroupOpen,
20432
20458
  toggleGroup,
20433
20459
  items: paginatedItemsWithoutGroups.value,
20460
+ itemsCount: filteredItems.value.length,
20434
20461
  groupedItems: paginatedItems.value
20435
20462
  }));
20436
20463
  useRender(() => createVNode(props.tag, {
@@ -21855,6 +21882,15 @@ const VDataTableRows = genericComponent()({
21855
21882
  "item": item
21856
21883
  }, getPrefixedEventHandlers(attrs, ':group-header', () => slotProps), groupHeaderRowProps), slots);
21857
21884
  }
21885
+ if (item.type === 'group-summary') {
21886
+ const slotProps = {
21887
+ index,
21888
+ item,
21889
+ columns: columns.value,
21890
+ toggleGroup
21891
+ };
21892
+ return slots['group-summary']?.(slotProps) ?? '';
21893
+ }
21858
21894
  const slotProps = {
21859
21895
  index,
21860
21896
  item: item.raw,
@@ -22106,7 +22142,7 @@ const VDataTable = genericComponent()({
22106
22142
  });
22107
22143
  const {
22108
22144
  flatItems
22109
- } = useGroupedItems(sortedItems, groupBy, opened);
22145
+ } = useGroupedItems(sortedItems, groupBy, opened, () => !!slots['group-summary']);
22110
22146
  const itemsLength = computed(() => flatItems.value.length);
22111
22147
  const {
22112
22148
  startIndex,
@@ -22294,7 +22330,7 @@ const VDataTableVirtual = genericComponent()({
22294
22330
  });
22295
22331
  const {
22296
22332
  flatItems
22297
- } = useGroupedItems(sortedItems, groupBy, opened);
22333
+ } = useGroupedItems(sortedItems, groupBy, opened, () => !!slots['group-summary']);
22298
22334
  const allItems = computed(() => extractRows(flatItems.value));
22299
22335
  const {
22300
22336
  isSelected,
@@ -22523,7 +22559,7 @@ const VDataTableServer = genericComponent()({
22523
22559
  });
22524
22560
  const {
22525
22561
  flatItems
22526
- } = useGroupedItems(items, groupBy, opened);
22562
+ } = useGroupedItems(items, groupBy, opened, () => !!slots['group-summary']);
22527
22563
  const {
22528
22564
  isSelected,
22529
22565
  select,
@@ -23115,6 +23151,10 @@ const makeCalendarProps = propsFactory({
23115
23151
  type: [Number, String],
23116
23152
  default: undefined
23117
23153
  },
23154
+ firstDayOfYear: {
23155
+ type: [Number, String],
23156
+ default: undefined
23157
+ },
23118
23158
  weekdayFormat: String
23119
23159
  }, 'calendar');
23120
23160
  function useCalendar(props) {
@@ -23206,7 +23246,7 @@ function useCalendar(props) {
23206
23246
  });
23207
23247
  const weekNumbers = computed(() => {
23208
23248
  return weeksInMonth.value.map(week => {
23209
- return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek) : null;
23249
+ return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek, props.firstDayOfYear) : null;
23210
23250
  });
23211
23251
  });
23212
23252
  function isDisabled(value) {
@@ -27500,9 +27540,11 @@ const makeVSkeletonLoaderProps = propsFactory({
27500
27540
  }, 'VSkeletonLoader');
27501
27541
  const VSkeletonLoader = genericComponent()({
27502
27542
  name: 'VSkeletonLoader',
27543
+ inheritAttrs: false,
27503
27544
  props: makeVSkeletonLoaderProps(),
27504
27545
  setup(props, _ref) {
27505
27546
  let {
27547
+ attrs,
27506
27548
  slots
27507
27549
  } = _ref;
27508
27550
  const {
@@ -27529,12 +27571,12 @@ const VSkeletonLoader = genericComponent()({
27529
27571
  ariaLabel: t(props.loadingText),
27530
27572
  role: 'alert'
27531
27573
  };
27532
- return createElementVNode("div", mergeProps({
27574
+ return createElementVNode(Fragment, null, [isLoading ? createElementVNode("div", mergeProps({
27533
27575
  "class": ['v-skeleton-loader', {
27534
27576
  'v-skeleton-loader--boilerplate': props.boilerplate
27535
27577
  }, themeClasses.value, backgroundColorClasses.value, elevationClasses.value],
27536
- "style": [backgroundColorStyles.value, isLoading ? dimensionStyles.value : {}]
27537
- }, loadingProps), [isLoading ? items.value : slots.default?.()]);
27578
+ "style": [backgroundColorStyles.value, dimensionStyles.value]
27579
+ }, loadingProps, attrs), [items.value]) : slots.default?.()]);
27538
27580
  });
27539
27581
  return {};
27540
27582
  }
@@ -35623,7 +35665,7 @@ function createVuetify$1() {
35623
35665
  };
35624
35666
  });
35625
35667
  }
35626
- const version$1 = "3.9.3-dev.2025-08-01";
35668
+ const version$1 = "3.9.3-dev.2025-08-05";
35627
35669
  createVuetify$1.version = version$1;
35628
35670
 
35629
35671
  // Vue's inject() can only be used in setup
@@ -35921,7 +35963,7 @@ var index = /*#__PURE__*/Object.freeze({
35921
35963
 
35922
35964
  /* eslint-disable local-rules/sort-imports */
35923
35965
 
35924
- const version = "3.9.3-dev.2025-08-01";
35966
+ const version = "3.9.3-dev.2025-08-05";
35925
35967
 
35926
35968
  /* eslint-disable local-rules/sort-imports */
35927
35969