@vuetify/nightly 3.6.6-master.2024-05-17 → 3.6.7-master.2024-05-22

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 (66) hide show
  1. package/CHANGELOG.md +2 -13
  2. package/dist/json/attributes.json +42 -2
  3. package/dist/json/importMap-labs.json +8 -8
  4. package/dist/json/importMap.json +148 -148
  5. package/dist/json/tags.json +11 -1
  6. package/dist/json/web-types.json +107 -10
  7. package/dist/vuetify-labs.css +2242 -2236
  8. package/dist/vuetify-labs.d.ts +93 -12
  9. package/dist/vuetify-labs.esm.js +54 -29
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +54 -29
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +669 -663
  14. package/dist/vuetify.d.ts +133 -52
  15. package/dist/vuetify.esm.js +52 -27
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +52 -27
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +103 -101
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/components/VAutocomplete/VAutocomplete.mjs +3 -2
  23. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  24. package/lib/components/VCombobox/VCombobox.mjs +4 -3
  25. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  26. package/lib/components/VDataTable/VDataTable.css +4 -0
  27. package/lib/components/VDataTable/VDataTable.mjs +2 -1
  28. package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
  29. package/lib/components/VDataTable/VDataTable.sass +4 -0
  30. package/lib/components/VDataTable/VDataTableHeaders.mjs +4 -3
  31. package/lib/components/VDataTable/VDataTableHeaders.mjs.map +1 -1
  32. package/lib/components/VDataTable/VDataTableServer.mjs +1 -1
  33. package/lib/components/VDataTable/VDataTableServer.mjs.map +1 -1
  34. package/lib/components/VDataTable/VDataTableVirtual.mjs +1 -1
  35. package/lib/components/VDataTable/VDataTableVirtual.mjs.map +1 -1
  36. package/lib/components/VDataTable/composables/sort.mjs +1 -1
  37. package/lib/components/VDataTable/composables/sort.mjs.map +1 -1
  38. package/lib/components/VDataTable/index.d.mts +63 -0
  39. package/lib/components/VDatePicker/VDatePicker.mjs +2 -1
  40. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  41. package/lib/components/VDatePicker/VDatePickerMonths.mjs +10 -1
  42. package/lib/components/VDatePicker/VDatePickerMonths.mjs.map +1 -1
  43. package/lib/components/VDatePicker/index.d.mts +24 -6
  44. package/lib/components/VDivider/VDivider.css +1 -1
  45. package/lib/components/VDivider/VDivider.sass +1 -1
  46. package/lib/components/VField/VField.css +1 -0
  47. package/lib/components/VField/VField.sass +2 -0
  48. package/lib/components/VList/VListChildren.mjs +2 -1
  49. package/lib/components/VList/VListChildren.mjs.map +1 -1
  50. package/lib/components/index.d.mts +87 -6
  51. package/lib/composables/defaults.mjs +1 -1
  52. package/lib/composables/defaults.mjs.map +1 -1
  53. package/lib/composables/dimensions.mjs +16 -8
  54. package/lib/composables/dimensions.mjs.map +1 -1
  55. package/lib/entry-bundler.mjs +1 -1
  56. package/lib/framework.mjs +1 -1
  57. package/lib/index.d.mts +46 -46
  58. package/lib/labs/VCalendar/VCalendar.mjs +2 -2
  59. package/lib/labs/VCalendar/VCalendar.mjs.map +1 -1
  60. package/lib/labs/VDateInput/index.d.mts +6 -6
  61. package/lib/labs/components.d.mts +6 -6
  62. package/lib/locale/fa.mjs +10 -10
  63. package/lib/locale/fa.mjs.map +1 -1
  64. package/lib/util/helpers.mjs +2 -0
  65. package/lib/util/helpers.mjs.map +1 -1
  66. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.6.6-master.2024-05-17
2
+ * Vuetify v3.6.7-master.2024-05-22
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -395,6 +395,8 @@
395
395
  if (!vnode || typeof vnode !== 'object') return [];
396
396
  if (Array.isArray(vnode)) {
397
397
  return vnode.map(child => findChildrenWithProvide(key, child)).flat(1);
398
+ } else if (vnode.suspense) {
399
+ return findChildrenWithProvide(key, vnode.ssContent);
398
400
  } else if (Array.isArray(vnode.children)) {
399
401
  return vnode.children.map(child => findChildrenWithProvide(key, child)).flat(1);
400
402
  } else if (vnode.component) {
@@ -1321,7 +1323,7 @@
1321
1323
  if (prop === 'class' || prop === 'style') {
1322
1324
  return [componentDefaults.value?.[prop], propValue].filter(v => v != null);
1323
1325
  } else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {
1324
- return componentDefaults.value?.[prop] ?? defaults.value?.global?.[prop] ?? propValue;
1326
+ return componentDefaults.value?.[prop] !== undefined ? componentDefaults.value?.[prop] : defaults.value?.global?.[prop] !== undefined ? defaults.value?.global?.[prop] : propValue;
1325
1327
  }
1326
1328
  return propValue;
1327
1329
  }
@@ -2996,14 +2998,22 @@
2996
2998
  width: [Number, String]
2997
2999
  }, 'dimension');
2998
3000
  function useDimension(props) {
2999
- const dimensionStyles = vue.computed(() => ({
3000
- height: convertToUnit(props.height),
3001
- maxHeight: convertToUnit(props.maxHeight),
3002
- maxWidth: convertToUnit(props.maxWidth),
3003
- minHeight: convertToUnit(props.minHeight),
3004
- minWidth: convertToUnit(props.minWidth),
3005
- width: convertToUnit(props.width)
3006
- }));
3001
+ const dimensionStyles = vue.computed(() => {
3002
+ const styles = {};
3003
+ const height = convertToUnit(props.height);
3004
+ const maxHeight = convertToUnit(props.maxHeight);
3005
+ const maxWidth = convertToUnit(props.maxWidth);
3006
+ const minHeight = convertToUnit(props.minHeight);
3007
+ const minWidth = convertToUnit(props.minWidth);
3008
+ const width = convertToUnit(props.width);
3009
+ if (height != null) styles.height = height;
3010
+ if (maxHeight != null) styles.maxHeight = maxHeight;
3011
+ if (maxWidth != null) styles.maxWidth = maxWidth;
3012
+ if (minHeight != null) styles.minHeight = minHeight;
3013
+ if (minWidth != null) styles.minWidth = minWidth;
3014
+ if (width != null) styles.width = width;
3015
+ return styles;
3016
+ });
3007
3017
  return {
3008
3018
  dimensionStyles
3009
3019
  };
@@ -9205,7 +9215,8 @@
9205
9215
  }) : vue.createVNode(VListItem, listItemProps, slotsWithItem);
9206
9216
  },
9207
9217
  default: () => vue.createVNode(VListChildren, {
9208
- "items": children
9218
+ "items": children,
9219
+ "returnObject": props.returnObject
9209
9220
  }, slots)
9210
9221
  }) : slots.item ? slots.item({
9211
9222
  props: itemProps
@@ -12888,7 +12899,7 @@
12888
12899
  if (['Escape'].includes(e.key)) {
12889
12900
  menu.value = false;
12890
12901
  }
12891
- if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key)) {
12902
+ if (highlightFirst.value && e.key === 'Enter') {
12892
12903
  select(displayItems.value[0]);
12893
12904
  }
12894
12905
  if (e.key === 'ArrowDown' && highlightFirst.value) {
@@ -13195,7 +13206,8 @@
13195
13206
  "onMousedown": onMousedownMenuIcon,
13196
13207
  "onClick": noop,
13197
13208
  "aria-label": t(label.value),
13198
- "title": t(label.value)
13209
+ "title": t(label.value),
13210
+ "tabindex": "-1"
13199
13211
  }, null) : undefined]);
13200
13212
  }
13201
13213
  });
@@ -16754,8 +16766,8 @@
16754
16766
  if (['Escape'].includes(e.key)) {
16755
16767
  menu.value = false;
16756
16768
  }
16757
- if (['Enter', 'Escape', 'Tab'].includes(e.key)) {
16758
- if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key)) {
16769
+ if (['Enter', 'Escape'].includes(e.key)) {
16770
+ if (highlightFirst.value && e.key === 'Enter') {
16759
16771
  select(filteredItems.value[0]);
16760
16772
  }
16761
16773
  isPristine.value = true;
@@ -17063,7 +17075,8 @@
17063
17075
  "onMousedown": onMousedownMenuIcon,
17064
17076
  "onClick": noop,
17065
17077
  "aria-label": t(label.value),
17066
- "title": t(label.value)
17078
+ "title": t(label.value),
17079
+ "tabindex": "-1"
17067
17080
  }, null) : undefined]);
17068
17081
  }
17069
17082
  });
@@ -18575,7 +18588,7 @@
18575
18588
  function useSortedItems(props, items, sortBy, options) {
18576
18589
  const locale = useLocale();
18577
18590
  const sortedItems = vue.computed(() => {
18578
- if (!sortBy.value.length) return items.value;
18591
+ if (!sortBy.value.length || props.disableSort) return items.value;
18579
18592
  return sortItems(items.value, sortBy.value, locale.current.value, {
18580
18593
  transform: options?.transform,
18581
18594
  sortFunctions: {
@@ -19635,6 +19648,7 @@
19635
19648
  const makeVDataTableHeadersProps = propsFactory({
19636
19649
  color: String,
19637
19650
  sticky: Boolean,
19651
+ disableSort: Boolean,
19638
19652
  multiSort: Boolean,
19639
19653
  sortAscIcon: {
19640
19654
  type: IconValue,
@@ -19725,7 +19739,7 @@
19725
19739
  "tag": "th",
19726
19740
  "align": column.align,
19727
19741
  "class": [{
19728
- 'v-data-table__th--sortable': column.sortable,
19742
+ 'v-data-table__th--sortable': column.sortable && !props.disableSort,
19729
19743
  'v-data-table__th--sorted': isSorted(column),
19730
19744
  'v-data-table__th--fixed': column.fixed
19731
19745
  }, ...headerCellClasses.value],
@@ -19765,7 +19779,7 @@
19765
19779
  }
19766
19780
  return vue.createVNode("div", {
19767
19781
  "class": "v-data-table-header__content"
19768
- }, [vue.createVNode("span", null, [column.title]), column.sortable && vue.createVNode(VIcon, {
19782
+ }, [vue.createVNode("span", null, [column.title]), column.sortable && !props.disableSort && vue.createVNode(VIcon, {
19769
19783
  "key": "icon",
19770
19784
  "class": "v-data-table-header__sort-icon",
19771
19785
  "icon": getSortIcon(column)
@@ -19780,7 +19794,7 @@
19780
19794
  const VDataTableMobileHeaderCell = () => {
19781
19795
  const headerProps = vue.mergeProps(props.headerProps ?? {} ?? {});
19782
19796
  const displayItems = vue.computed(() => {
19783
- return columns.value.filter(column => column?.sortable);
19797
+ return columns.value.filter(column => column?.sortable && !props.disableSort);
19784
19798
  });
19785
19799
  const appendIcon = vue.computed(() => {
19786
19800
  const showSelectColumn = columns.value.find(column => column.key === 'data-table-select');
@@ -20276,6 +20290,7 @@
20276
20290
 
20277
20291
  const makeDataTableProps = propsFactory({
20278
20292
  ...makeVDataTableRowsProps(),
20293
+ hideDefaultBody: Boolean,
20279
20294
  hideDefaultFooter: Boolean,
20280
20295
  hideDefaultHeader: Boolean,
20281
20296
  width: [String, Number],
@@ -20462,7 +20477,7 @@
20462
20477
  top: () => slots.top?.(slotProps.value),
20463
20478
  default: () => slots.default ? slots.default(slotProps.value) : vue.createVNode(vue.Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && vue.createVNode("thead", {
20464
20479
  "key": "thead"
20465
- }, [vue.createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), vue.createVNode("tbody", null, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : vue.createVNode(VDataTableRows, vue.mergeProps(attrs, dataTableRowsProps, {
20480
+ }, [vue.createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && vue.createVNode("tbody", null, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : vue.createVNode(VDataTableRows, vue.mergeProps(attrs, dataTableRowsProps, {
20466
20481
  "items": paginatedItems.value
20467
20482
  }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),
20468
20483
  bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && vue.createVNode(vue.Fragment, null, [vue.createVNode(VDivider, null, null), vue.createVNode(VDataTableFooter, dataTableFooterProps, {
@@ -20637,7 +20652,7 @@
20637
20652
  "key": "thead"
20638
20653
  }, [vue.createVNode(VDataTableHeaders, vue.mergeProps(dataTableHeadersProps, {
20639
20654
  "sticky": props.fixedHeader
20640
- }), slots)]), vue.createVNode("tbody", null, [vue.createVNode("tr", {
20655
+ }), slots)]), !props.hideDefaultBody && vue.createVNode("tbody", null, [vue.createVNode("tr", {
20641
20656
  "ref": markerRef,
20642
20657
  "style": {
20643
20658
  height: convertToUnit(paddingTop.value),
@@ -20846,7 +20861,7 @@
20846
20861
  "role": "rowgroup"
20847
20862
  }, [vue.createVNode(VDataTableHeaders, vue.mergeProps(dataTableHeadersProps, {
20848
20863
  "sticky": props.fixedHeader
20849
- }), slots)]), slots.thead?.(slotProps.value), vue.createVNode("tbody", {
20864
+ }), slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && vue.createVNode("tbody", {
20850
20865
  "class": "v-data-table__tbody",
20851
20866
  "role": "rowgroup"
20852
20867
  }, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : vue.createVNode(VDataTableRows, vue.mergeProps(attrs, dataTableRowsProps, {
@@ -21621,7 +21636,10 @@
21621
21636
  const makeVDatePickerMonthsProps = propsFactory({
21622
21637
  color: String,
21623
21638
  height: [String, Number],
21624
- modelValue: Number
21639
+ min: null,
21640
+ max: null,
21641
+ modelValue: Number,
21642
+ year: Number
21625
21643
  }, 'VDatePickerMonths');
21626
21644
  const VDatePickerMonths = genericComponent()({
21627
21645
  name: 'VDatePickerMonths',
@@ -21638,10 +21656,15 @@
21638
21656
  const model = useProxiedModel(props, 'modelValue');
21639
21657
  const months = vue.computed(() => {
21640
21658
  let date = adapter.startOfYear(adapter.date());
21659
+ if (props.year) {
21660
+ date = adapter.setYear(date, props.year);
21661
+ }
21641
21662
  return createRange(12).map(i => {
21642
21663
  const text = adapter.format(date, 'monthShort');
21664
+ const isDisabled = !!(props.min && adapter.isAfter(adapter.startOfMonth(adapter.date(props.min)), date) || props.max && adapter.isAfter(date, adapter.startOfMonth(adapter.date(props.max))));
21643
21665
  date = adapter.getNextMonth(date);
21644
21666
  return {
21667
+ isDisabled,
21645
21668
  text,
21646
21669
  value: i
21647
21670
  };
@@ -21661,6 +21684,7 @@
21661
21684
  const btnProps = {
21662
21685
  active: model.value === i,
21663
21686
  color: model.value === i ? props.color : undefined,
21687
+ disabled: month.isDisabled,
21664
21688
  rounded: true,
21665
21689
  text: month.text,
21666
21690
  variant: model.value === month.value ? 'flat' : 'text',
@@ -22061,7 +22085,8 @@
22061
22085
  "modelValue": month.value,
22062
22086
  "onUpdate:modelValue": [$event => month.value = $event, onUpdateMonth],
22063
22087
  "min": minDate.value,
22064
- "max": maxDate.value
22088
+ "max": maxDate.value,
22089
+ "year": year.value
22065
22090
  }), null) : viewMode.value === 'year' ? vue.createVNode(VDatePickerYears, vue.mergeProps({
22066
22091
  "key": "date-picker-years"
22067
22092
  }, datePickerYearsProps, {
@@ -27725,7 +27750,7 @@
27725
27750
  }
27726
27751
  }
27727
27752
  function onClickToday() {
27728
- model.value = [new Date()];
27753
+ model.value = [adapter.date()];
27729
27754
  }
27730
27755
  const title = vue.computed(() => {
27731
27756
  return adapter.format(displayValue.value, 'monthAndYear');
@@ -27764,7 +27789,7 @@
27764
27789
  }, [chunkArray(daysInMonth.value, props.weekdays.length).map((week, wi) => [!props.hideWeekNumber ? vue.createVNode("div", {
27765
27790
  "class": "v-calendar-month__weeknumber"
27766
27791
  }, [weekNumbers.value[wi]]) : '', week.map(day => vue.createVNode(VCalendarMonthDay, {
27767
- "color": adapter.isSameDay(new Date(), day.date) ? 'primary' : undefined,
27792
+ "color": adapter.isSameDay(adapter.date(), day.date) ? 'primary' : undefined,
27768
27793
  "day": day,
27769
27794
  "title": day ? adapter.format(day.date, 'dayOfMonth') : 'NaN',
27770
27795
  "events": props.events?.filter(e => adapter.isSameDay(day.date, e.start) || adapter.isSameDay(day.date, e.end))
@@ -30102,7 +30127,7 @@
30102
30127
  goTo
30103
30128
  };
30104
30129
  }
30105
- const version$1 = "3.6.6-master.2024-05-17";
30130
+ const version$1 = "3.6.7-master.2024-05-22";
30106
30131
  createVuetify$1.version = version$1;
30107
30132
 
30108
30133
  // Vue's inject() can only be used in setup
@@ -30355,7 +30380,7 @@
30355
30380
 
30356
30381
  /* eslint-disable local-rules/sort-imports */
30357
30382
 
30358
- const version = "3.6.6-master.2024-05-17";
30383
+ const version = "3.6.7-master.2024-05-22";
30359
30384
 
30360
30385
  /* eslint-disable local-rules/sort-imports */
30361
30386