@vuetify/nightly 3.9.3-dev.2025-08-02 → 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 (68) hide show
  1. package/CHANGELOG.md +5 -3
  2. package/dist/json/attributes.json +3040 -3024
  3. package/dist/json/importMap-labs.json +18 -18
  4. package/dist/json/importMap.json +130 -130
  5. package/dist/json/tags.json +4 -0
  6. package/dist/json/web-types.json +5954 -5826
  7. package/dist/vuetify-labs.cjs +56 -17
  8. package/dist/vuetify-labs.css +3273 -3273
  9. package/dist/vuetify-labs.d.ts +145 -66
  10. package/dist/vuetify-labs.esm.js +56 -17
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +56 -17
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.cjs +56 -17
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +4298 -4298
  17. package/dist/vuetify.d.ts +117 -66
  18. package/dist/vuetify.esm.js +56 -17
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +56 -17
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +2 -2
  23. package/dist/vuetify.min.js +285 -279
  24. package/dist/vuetify.min.js.map +1 -1
  25. package/lib/components/VDataIterator/VDataIterator.d.ts +2 -2
  26. package/lib/components/VDataIterator/VDataIterator.js +1 -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/composables/calendar.d.ts +12 -0
  50. package/lib/composables/calendar.js +5 -1
  51. package/lib/composables/calendar.js.map +1 -1
  52. package/lib/composables/date/DateAdapter.d.ts +1 -1
  53. package/lib/composables/date/DateAdapter.js.map +1 -1
  54. package/lib/composables/date/adapters/string.d.ts +1 -1
  55. package/lib/composables/date/adapters/string.js +2 -2
  56. package/lib/composables/date/adapters/string.js.map +1 -1
  57. package/lib/composables/date/adapters/vuetify.d.ts +1 -1
  58. package/lib/composables/date/adapters/vuetify.js +25 -5
  59. package/lib/composables/date/adapters/vuetify.js.map +1 -1
  60. package/lib/composables/date/date.d.ts +1 -1
  61. package/lib/entry-bundler.d.ts +1 -1
  62. package/lib/entry-bundler.js +1 -1
  63. package/lib/framework.d.ts +51 -51
  64. package/lib/framework.js +1 -1
  65. package/lib/labs/VCalendar/VCalendar.d.ts +25 -0
  66. package/lib/labs/VDateInput/VDateInput.d.ts +25 -0
  67. package/lib/labs/entry-bundler.d.ts +1 -1
  68. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.9.3-dev.2025-08-02
2
+ * Vuetify v3.9.3-dev.2025-08-05
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -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,
@@ -22096,6 +22122,15 @@ const VDataTableRows = genericComponent()({
22096
22122
  "item": item
22097
22123
  }, getPrefixedEventHandlers(attrs, ':group-header', () => slotProps), groupHeaderRowProps), slots);
22098
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
+ }
22099
22134
  const slotProps = {
22100
22135
  index,
22101
22136
  item: item.raw,
@@ -22347,7 +22382,7 @@ const VDataTable = genericComponent()({
22347
22382
  });
22348
22383
  const {
22349
22384
  flatItems
22350
- } = useGroupedItems(sortedItems, groupBy, opened);
22385
+ } = useGroupedItems(sortedItems, groupBy, opened, () => !!slots['group-summary']);
22351
22386
  const itemsLength = computed(() => flatItems.value.length);
22352
22387
  const {
22353
22388
  startIndex,
@@ -22535,7 +22570,7 @@ const VDataTableVirtual = genericComponent()({
22535
22570
  });
22536
22571
  const {
22537
22572
  flatItems
22538
- } = useGroupedItems(sortedItems, groupBy, opened);
22573
+ } = useGroupedItems(sortedItems, groupBy, opened, () => !!slots['group-summary']);
22539
22574
  const allItems = computed(() => extractRows(flatItems.value));
22540
22575
  const {
22541
22576
  isSelected,
@@ -22764,7 +22799,7 @@ const VDataTableServer = genericComponent()({
22764
22799
  });
22765
22800
  const {
22766
22801
  flatItems
22767
- } = useGroupedItems(items, groupBy, opened);
22802
+ } = useGroupedItems(items, groupBy, opened, () => !!slots['group-summary']);
22768
22803
  const {
22769
22804
  isSelected,
22770
22805
  select,
@@ -23356,6 +23391,10 @@ const makeCalendarProps = propsFactory({
23356
23391
  type: [Number, String],
23357
23392
  default: undefined
23358
23393
  },
23394
+ firstDayOfYear: {
23395
+ type: [Number, String],
23396
+ default: undefined
23397
+ },
23359
23398
  weekdayFormat: String
23360
23399
  }, 'calendar');
23361
23400
  function useCalendar(props) {
@@ -23447,7 +23486,7 @@ function useCalendar(props) {
23447
23486
  });
23448
23487
  const weekNumbers = computed(() => {
23449
23488
  return weeksInMonth.value.map(week => {
23450
- return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek) : null;
23489
+ return week.length ? adapter.getWeek(week[0], props.firstDayOfWeek, props.firstDayOfYear) : null;
23451
23490
  });
23452
23491
  });
23453
23492
  function isDisabled(value) {
@@ -31897,7 +31936,7 @@ function createVuetify$1() {
31897
31936
  };
31898
31937
  });
31899
31938
  }
31900
- const version$1 = "3.9.3-dev.2025-08-02";
31939
+ const version$1 = "3.9.3-dev.2025-08-05";
31901
31940
  createVuetify$1.version = version$1;
31902
31941
 
31903
31942
  // Vue's inject() can only be used in setup
@@ -31922,7 +31961,7 @@ const createVuetify = function () {
31922
31961
  ...options
31923
31962
  });
31924
31963
  };
31925
- const version = "3.9.3-dev.2025-08-02";
31964
+ const version = "3.9.3-dev.2025-08-05";
31926
31965
  createVuetify.version = version;
31927
31966
 
31928
31967
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useHotkey, useLayout, useLocale, useRtl, useTheme, version };