@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
  */
@@ -15630,7 +15630,7 @@
15630
15630
  'v-window--vertical-arrows': !!props.verticalArrows,
15631
15631
  'v-window--crossfade': !!props.crossfade
15632
15632
  }, themeClasses.value, props.class]),
15633
- "style": vue.normalizeStyle([props.style, props.transitionDuration ? {
15633
+ "style": vue.normalizeStyle([props.style, props.transitionDuration && !PREFERS_REDUCED_MOTION ? {
15634
15634
  '--v-window-transition-duration': convertToUnit(props.transitionDuration, 'ms')
15635
15635
  } : undefined])
15636
15636
  }, {
@@ -18128,16 +18128,35 @@
18128
18128
  function getMonth(date) {
18129
18129
  return date.getMonth();
18130
18130
  }
18131
- function getWeek(date, locale, firstDayOfWeek, firstWeekMinSize) {
18131
+ function getWeek(date, locale, firstDayOfWeek, firstDayOfYear) {
18132
18132
  const weekInfoFromLocale = weekInfo(locale);
18133
18133
  const weekStart = firstDayOfWeek ?? weekInfoFromLocale?.firstDay ?? 0;
18134
- const minWeekSize = firstWeekMinSize ?? weekInfoFromLocale?.firstWeekSize ?? 1;
18134
+ const minWeekSize = weekInfoFromLocale?.firstWeekSize ?? 1;
18135
+ return firstDayOfYear !== undefined ? calculateWeekWithFirstDayOfYear(date, locale, weekStart, firstDayOfYear) : calculateWeekWithMinWeekSize(date, locale, weekStart, minWeekSize);
18136
+ }
18137
+ function calculateWeekWithFirstDayOfYear(date, locale, weekStart, firstDayOfYear) {
18138
+ const firstDayOfYearOffset = (7 + firstDayOfYear - weekStart) % 7;
18139
+ const currentWeekStart = startOfWeek(date, locale, weekStart);
18140
+ const currentWeekEnd = addDays(currentWeekStart, 6);
18141
+ function yearStartWeekdayOffset(year) {
18142
+ return (7 + new Date(year, 0, 1).getDay() - weekStart) % 7;
18143
+ }
18144
+ let year = getYear(date);
18145
+ if (year < getYear(currentWeekEnd) && yearStartWeekdayOffset(year + 1) <= firstDayOfYearOffset) {
18146
+ year++;
18147
+ }
18148
+ const yearStart = new Date(year, 0, 1);
18149
+ const offset = yearStartWeekdayOffset(year);
18150
+ const d1w1 = offset <= firstDayOfYearOffset ? addDays(yearStart, -offset) : addDays(yearStart, 7 - offset);
18151
+ return 1 + getDiff(endOfDay(date), startOfDay(d1w1), 'weeks');
18152
+ }
18153
+ function calculateWeekWithMinWeekSize(date, locale, weekStart, minWeekSize) {
18154
+ const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6);
18135
18155
  function firstWeekSize(year) {
18136
18156
  const yearStart = new Date(year, 0, 1);
18137
18157
  return 7 - getDiff(yearStart, startOfWeek(yearStart, locale, weekStart), 'days');
18138
18158
  }
18139
18159
  let year = getYear(date);
18140
- const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6);
18141
18160
  if (year < getYear(currentWeekEnd) && firstWeekSize(year + 1) >= minWeekSize) {
18142
18161
  year++;
18143
18162
  }
@@ -18359,9 +18378,10 @@
18359
18378
  getMonth(date) {
18360
18379
  return getMonth(date);
18361
18380
  }
18362
- getWeek(date, firstDayOfWeek, firstWeekMinSize) {
18381
+ getWeek(date, firstDayOfWeek, firstDayOfYear) {
18363
18382
  const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
18364
- return getWeek(date, this.locale, firstDay, firstWeekMinSize);
18383
+ const firstWeekStart = firstDayOfYear !== undefined ? Number(firstDayOfYear) : undefined;
18384
+ return getWeek(date, this.locale, firstDay, firstWeekStart);
18365
18385
  }
18366
18386
  getDate(date) {
18367
18387
  return getDate(date);
@@ -19733,7 +19753,7 @@
19733
19753
  });
19734
19754
  return groups;
19735
19755
  }
19736
- function flattenItems(items, opened) {
19756
+ function flattenItems(items, opened, hasSummary) {
19737
19757
  const flatItems = [];
19738
19758
  for (const item of items) {
19739
19759
  // TODO: make this better
@@ -19742,7 +19762,13 @@
19742
19762
  flatItems.push(item);
19743
19763
  }
19744
19764
  if (opened.has(item.id) || item.value == null) {
19745
- flatItems.push(...flattenItems(item.items, opened));
19765
+ flatItems.push(...flattenItems(item.items, opened, hasSummary));
19766
+ if (hasSummary) {
19767
+ flatItems.push({
19768
+ ...item,
19769
+ type: 'group-summary'
19770
+ });
19771
+ }
19746
19772
  }
19747
19773
  } else {
19748
19774
  flatItems.push(item);
@@ -19750,11 +19776,11 @@
19750
19776
  }
19751
19777
  return flatItems;
19752
19778
  }
19753
- function useGroupedItems(items, groupBy, opened) {
19779
+ function useGroupedItems(items, groupBy, opened, hasSummary) {
19754
19780
  const flatItems = vue.computed(() => {
19755
19781
  if (!groupBy.value.length) return items.value;
19756
19782
  const groupedItems = groupItems(items.value, groupBy.value.map(item => item.key));
19757
- return flattenItems(groupedItems, opened.value);
19783
+ return flattenItems(groupedItems, opened.value, vue.toValue(hasSummary));
19758
19784
  });
19759
19785
  return {
19760
19786
  flatItems
@@ -20372,7 +20398,7 @@
20372
20398
  });
20373
20399
  const {
20374
20400
  flatItems
20375
- } = useGroupedItems(sortedItems, groupBy, opened);
20401
+ } = useGroupedItems(sortedItems, groupBy, opened, false);
20376
20402
  const itemsLength = vue.toRef(() => flatItems.value.length);
20377
20403
  const {
20378
20404
  startIndex,
@@ -20435,6 +20461,7 @@
20435
20461
  isGroupOpen,
20436
20462
  toggleGroup,
20437
20463
  items: paginatedItemsWithoutGroups.value,
20464
+ itemsCount: filteredItems.value.length,
20438
20465
  groupedItems: paginatedItems.value
20439
20466
  }));
20440
20467
  useRender(() => vue.createVNode(props.tag, {
@@ -21859,6 +21886,15 @@
21859
21886
  "item": item
21860
21887
  }, getPrefixedEventHandlers(attrs, ':group-header', () => slotProps), groupHeaderRowProps), slots);
21861
21888
  }
21889
+ if (item.type === 'group-summary') {
21890
+ const slotProps = {
21891
+ index,
21892
+ item,
21893
+ columns: columns.value,
21894
+ toggleGroup
21895
+ };
21896
+ return slots['group-summary']?.(slotProps) ?? '';
21897
+ }
21862
21898
  const slotProps = {
21863
21899
  index,
21864
21900
  item: item.raw,
@@ -22110,7 +22146,7 @@
22110
22146
  });
22111
22147
  const {
22112
22148
  flatItems
22113
- } = useGroupedItems(sortedItems, groupBy, opened);
22149
+ } = useGroupedItems(sortedItems, groupBy, opened, () => !!slots['group-summary']);
22114
22150
  const itemsLength = vue.computed(() => flatItems.value.length);
22115
22151
  const {
22116
22152
  startIndex,
@@ -22298,7 +22334,7 @@
22298
22334
  });
22299
22335
  const {
22300
22336
  flatItems
22301
- } = useGroupedItems(sortedItems, groupBy, opened);
22337
+ } = useGroupedItems(sortedItems, groupBy, opened, () => !!slots['group-summary']);
22302
22338
  const allItems = vue.computed(() => extractRows(flatItems.value));
22303
22339
  const {
22304
22340
  isSelected,
@@ -22527,7 +22563,7 @@
22527
22563
  });
22528
22564
  const {
22529
22565
  flatItems
22530
- } = useGroupedItems(items, groupBy, opened);
22566
+ } = useGroupedItems(items, groupBy, opened, () => !!slots['group-summary']);
22531
22567
  const {
22532
22568
  isSelected,
22533
22569
  select,
@@ -23119,6 +23155,10 @@
23119
23155
  type: [Number, String],
23120
23156
  default: undefined
23121
23157
  },
23158
+ firstDayOfYear: {
23159
+ type: [Number, String],
23160
+ default: undefined
23161
+ },
23122
23162
  weekdayFormat: String
23123
23163
  }, 'calendar');
23124
23164
  function useCalendar(props) {
@@ -23210,7 +23250,7 @@
23210
23250
  });
23211
23251
  const weekNumbers = vue.computed(() => {
23212
23252
  return weeksInMonth.value.map(week => {
23213
- return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek) : null;
23253
+ return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek, props.firstDayOfYear) : null;
23214
23254
  });
23215
23255
  });
23216
23256
  function isDisabled(value) {
@@ -27504,9 +27544,11 @@
27504
27544
  }, 'VSkeletonLoader');
27505
27545
  const VSkeletonLoader = genericComponent()({
27506
27546
  name: 'VSkeletonLoader',
27547
+ inheritAttrs: false,
27507
27548
  props: makeVSkeletonLoaderProps(),
27508
27549
  setup(props, _ref) {
27509
27550
  let {
27551
+ attrs,
27510
27552
  slots
27511
27553
  } = _ref;
27512
27554
  const {
@@ -27533,12 +27575,12 @@
27533
27575
  ariaLabel: t(props.loadingText),
27534
27576
  role: 'alert'
27535
27577
  };
27536
- return vue.createElementVNode("div", vue.mergeProps({
27578
+ return vue.createElementVNode(vue.Fragment, null, [isLoading ? vue.createElementVNode("div", vue.mergeProps({
27537
27579
  "class": ['v-skeleton-loader', {
27538
27580
  'v-skeleton-loader--boilerplate': props.boilerplate
27539
27581
  }, themeClasses.value, backgroundColorClasses.value, elevationClasses.value],
27540
- "style": [backgroundColorStyles.value, isLoading ? dimensionStyles.value : {}]
27541
- }, loadingProps), [isLoading ? items.value : slots.default?.()]);
27582
+ "style": [backgroundColorStyles.value, dimensionStyles.value]
27583
+ }, loadingProps, attrs), [items.value]) : slots.default?.()]);
27542
27584
  });
27543
27585
  return {};
27544
27586
  }
@@ -35627,7 +35669,7 @@
35627
35669
  };
35628
35670
  });
35629
35671
  }
35630
- const version$1 = "3.9.3-dev.2025-08-01";
35672
+ const version$1 = "3.9.3-dev.2025-08-05";
35631
35673
  createVuetify$1.version = version$1;
35632
35674
 
35633
35675
  // Vue's inject() can only be used in setup
@@ -35925,7 +35967,7 @@
35925
35967
 
35926
35968
  /* eslint-disable local-rules/sort-imports */
35927
35969
 
35928
- const version = "3.9.3-dev.2025-08-01";
35970
+ const version = "3.9.3-dev.2025-08-05";
35929
35971
 
35930
35972
  /* eslint-disable local-rules/sort-imports */
35931
35973