@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
package/dist/vuetify.js CHANGED
@@ -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
  */
@@ -15870,7 +15870,7 @@
15870
15870
  'v-window--vertical-arrows': !!props.verticalArrows,
15871
15871
  'v-window--crossfade': !!props.crossfade
15872
15872
  }, themeClasses.value, props.class]),
15873
- "style": vue.normalizeStyle([props.style, props.transitionDuration ? {
15873
+ "style": vue.normalizeStyle([props.style, props.transitionDuration && !PREFERS_REDUCED_MOTION ? {
15874
15874
  '--v-window-transition-duration': convertToUnit(props.transitionDuration, 'ms')
15875
15875
  } : undefined])
15876
15876
  }, {
@@ -18368,16 +18368,35 @@
18368
18368
  function getMonth(date) {
18369
18369
  return date.getMonth();
18370
18370
  }
18371
- function getWeek(date, locale, firstDayOfWeek, firstWeekMinSize) {
18371
+ function getWeek(date, locale, firstDayOfWeek, firstDayOfYear) {
18372
18372
  const weekInfoFromLocale = weekInfo(locale);
18373
18373
  const weekStart = firstDayOfWeek ?? weekInfoFromLocale?.firstDay ?? 0;
18374
- const minWeekSize = firstWeekMinSize ?? weekInfoFromLocale?.firstWeekSize ?? 1;
18374
+ const minWeekSize = weekInfoFromLocale?.firstWeekSize ?? 1;
18375
+ return firstDayOfYear !== undefined ? calculateWeekWithFirstDayOfYear(date, locale, weekStart, firstDayOfYear) : calculateWeekWithMinWeekSize(date, locale, weekStart, minWeekSize);
18376
+ }
18377
+ function calculateWeekWithFirstDayOfYear(date, locale, weekStart, firstDayOfYear) {
18378
+ const firstDayOfYearOffset = (7 + firstDayOfYear - weekStart) % 7;
18379
+ const currentWeekStart = startOfWeek(date, locale, weekStart);
18380
+ const currentWeekEnd = addDays(currentWeekStart, 6);
18381
+ function yearStartWeekdayOffset(year) {
18382
+ return (7 + new Date(year, 0, 1).getDay() - weekStart) % 7;
18383
+ }
18384
+ let year = getYear(date);
18385
+ if (year < getYear(currentWeekEnd) && yearStartWeekdayOffset(year + 1) <= firstDayOfYearOffset) {
18386
+ year++;
18387
+ }
18388
+ const yearStart = new Date(year, 0, 1);
18389
+ const offset = yearStartWeekdayOffset(year);
18390
+ const d1w1 = offset <= firstDayOfYearOffset ? addDays(yearStart, -offset) : addDays(yearStart, 7 - offset);
18391
+ return 1 + getDiff(endOfDay(date), startOfDay(d1w1), 'weeks');
18392
+ }
18393
+ function calculateWeekWithMinWeekSize(date, locale, weekStart, minWeekSize) {
18394
+ const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6);
18375
18395
  function firstWeekSize(year) {
18376
18396
  const yearStart = new Date(year, 0, 1);
18377
18397
  return 7 - getDiff(yearStart, startOfWeek(yearStart, locale, weekStart), 'days');
18378
18398
  }
18379
18399
  let year = getYear(date);
18380
- const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6);
18381
18400
  if (year < getYear(currentWeekEnd) && firstWeekSize(year + 1) >= minWeekSize) {
18382
18401
  year++;
18383
18402
  }
@@ -18599,9 +18618,10 @@
18599
18618
  getMonth(date) {
18600
18619
  return getMonth(date);
18601
18620
  }
18602
- getWeek(date, firstDayOfWeek, firstWeekMinSize) {
18621
+ getWeek(date, firstDayOfWeek, firstDayOfYear) {
18603
18622
  const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
18604
- return getWeek(date, this.locale, firstDay, firstWeekMinSize);
18623
+ const firstWeekStart = firstDayOfYear !== undefined ? Number(firstDayOfYear) : undefined;
18624
+ return getWeek(date, this.locale, firstDay, firstWeekStart);
18605
18625
  }
18606
18626
  getDate(date) {
18607
18627
  return getDate(date);
@@ -19973,7 +19993,7 @@
19973
19993
  });
19974
19994
  return groups;
19975
19995
  }
19976
- function flattenItems(items, opened) {
19996
+ function flattenItems(items, opened, hasSummary) {
19977
19997
  const flatItems = [];
19978
19998
  for (const item of items) {
19979
19999
  // TODO: make this better
@@ -19982,7 +20002,13 @@
19982
20002
  flatItems.push(item);
19983
20003
  }
19984
20004
  if (opened.has(item.id) || item.value == null) {
19985
- flatItems.push(...flattenItems(item.items, opened));
20005
+ flatItems.push(...flattenItems(item.items, opened, hasSummary));
20006
+ if (hasSummary) {
20007
+ flatItems.push({
20008
+ ...item,
20009
+ type: 'group-summary'
20010
+ });
20011
+ }
19986
20012
  }
19987
20013
  } else {
19988
20014
  flatItems.push(item);
@@ -19990,11 +20016,11 @@
19990
20016
  }
19991
20017
  return flatItems;
19992
20018
  }
19993
- function useGroupedItems(items, groupBy, opened) {
20019
+ function useGroupedItems(items, groupBy, opened, hasSummary) {
19994
20020
  const flatItems = vue.computed(() => {
19995
20021
  if (!groupBy.value.length) return items.value;
19996
20022
  const groupedItems = groupItems(items.value, groupBy.value.map(item => item.key));
19997
- return flattenItems(groupedItems, opened.value);
20023
+ return flattenItems(groupedItems, opened.value, vue.toValue(hasSummary));
19998
20024
  });
19999
20025
  return {
20000
20026
  flatItems
@@ -20612,7 +20638,7 @@
20612
20638
  });
20613
20639
  const {
20614
20640
  flatItems
20615
- } = useGroupedItems(sortedItems, groupBy, opened);
20641
+ } = useGroupedItems(sortedItems, groupBy, opened, false);
20616
20642
  const itemsLength = vue.toRef(() => flatItems.value.length);
20617
20643
  const {
20618
20644
  startIndex,
@@ -20675,6 +20701,7 @@
20675
20701
  isGroupOpen,
20676
20702
  toggleGroup,
20677
20703
  items: paginatedItemsWithoutGroups.value,
20704
+ itemsCount: filteredItems.value.length,
20678
20705
  groupedItems: paginatedItems.value
20679
20706
  }));
20680
20707
  useRender(() => vue.createVNode(props.tag, {
@@ -22099,6 +22126,15 @@
22099
22126
  "item": item
22100
22127
  }, getPrefixedEventHandlers(attrs, ':group-header', () => slotProps), groupHeaderRowProps), slots);
22101
22128
  }
22129
+ if (item.type === 'group-summary') {
22130
+ const slotProps = {
22131
+ index,
22132
+ item,
22133
+ columns: columns.value,
22134
+ toggleGroup
22135
+ };
22136
+ return slots['group-summary']?.(slotProps) ?? '';
22137
+ }
22102
22138
  const slotProps = {
22103
22139
  index,
22104
22140
  item: item.raw,
@@ -22350,7 +22386,7 @@
22350
22386
  });
22351
22387
  const {
22352
22388
  flatItems
22353
- } = useGroupedItems(sortedItems, groupBy, opened);
22389
+ } = useGroupedItems(sortedItems, groupBy, opened, () => !!slots['group-summary']);
22354
22390
  const itemsLength = vue.computed(() => flatItems.value.length);
22355
22391
  const {
22356
22392
  startIndex,
@@ -22538,7 +22574,7 @@
22538
22574
  });
22539
22575
  const {
22540
22576
  flatItems
22541
- } = useGroupedItems(sortedItems, groupBy, opened);
22577
+ } = useGroupedItems(sortedItems, groupBy, opened, () => !!slots['group-summary']);
22542
22578
  const allItems = vue.computed(() => extractRows(flatItems.value));
22543
22579
  const {
22544
22580
  isSelected,
@@ -22767,7 +22803,7 @@
22767
22803
  });
22768
22804
  const {
22769
22805
  flatItems
22770
- } = useGroupedItems(items, groupBy, opened);
22806
+ } = useGroupedItems(items, groupBy, opened, () => !!slots['group-summary']);
22771
22807
  const {
22772
22808
  isSelected,
22773
22809
  select,
@@ -23359,6 +23395,10 @@
23359
23395
  type: [Number, String],
23360
23396
  default: undefined
23361
23397
  },
23398
+ firstDayOfYear: {
23399
+ type: [Number, String],
23400
+ default: undefined
23401
+ },
23362
23402
  weekdayFormat: String
23363
23403
  }, 'calendar');
23364
23404
  function useCalendar(props) {
@@ -23450,7 +23490,7 @@
23450
23490
  });
23451
23491
  const weekNumbers = vue.computed(() => {
23452
23492
  return weeksInMonth.value.map(week => {
23453
- return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek) : null;
23493
+ return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek, props.firstDayOfYear) : null;
23454
23494
  });
23455
23495
  });
23456
23496
  function isDisabled(value) {
@@ -27744,9 +27784,11 @@
27744
27784
  }, 'VSkeletonLoader');
27745
27785
  const VSkeletonLoader = genericComponent()({
27746
27786
  name: 'VSkeletonLoader',
27787
+ inheritAttrs: false,
27747
27788
  props: makeVSkeletonLoaderProps(),
27748
27789
  setup(props, _ref) {
27749
27790
  let {
27791
+ attrs,
27750
27792
  slots
27751
27793
  } = _ref;
27752
27794
  const {
@@ -27773,12 +27815,12 @@
27773
27815
  ariaLabel: t(props.loadingText),
27774
27816
  role: 'alert'
27775
27817
  };
27776
- return vue.createElementVNode("div", vue.mergeProps({
27818
+ return vue.createElementVNode(vue.Fragment, null, [isLoading ? vue.createElementVNode("div", vue.mergeProps({
27777
27819
  "class": ['v-skeleton-loader', {
27778
27820
  'v-skeleton-loader--boilerplate': props.boilerplate
27779
27821
  }, themeClasses.value, backgroundColorClasses.value, elevationClasses.value],
27780
- "style": [backgroundColorStyles.value, isLoading ? dimensionStyles.value : {}]
27781
- }, loadingProps), [isLoading ? items.value : slots.default?.()]);
27822
+ "style": [backgroundColorStyles.value, dimensionStyles.value]
27823
+ }, loadingProps, attrs), [items.value]) : slots.default?.()]);
27782
27824
  });
27783
27825
  return {};
27784
27826
  }
@@ -31898,7 +31940,7 @@
31898
31940
  };
31899
31941
  });
31900
31942
  }
31901
- const version$1 = "3.9.3-dev.2025-08-01";
31943
+ const version$1 = "3.9.3-dev.2025-08-05";
31902
31944
  createVuetify$1.version = version$1;
31903
31945
 
31904
31946
  // Vue's inject() can only be used in setup
@@ -31923,7 +31965,7 @@
31923
31965
  ...options
31924
31966
  });
31925
31967
  };
31926
- const version = "3.9.3-dev.2025-08-01";
31968
+ const version = "3.9.3-dev.2025-08-05";
31927
31969
  createVuetify.version = version;
31928
31970
 
31929
31971
  exports.blueprints = index;