@vuetify/nightly 3.6.6-master.2024-05-21 → 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 (62) hide show
  1. package/CHANGELOG.md +2 -15
  2. package/dist/json/attributes.json +42 -2
  3. package/dist/json/importMap-labs.json +16 -16
  4. package/dist/json/importMap.json +142 -142
  5. package/dist/json/tags.json +11 -1
  6. package/dist/json/web-types.json +101 -4
  7. package/dist/vuetify-labs.css +2143 -2138
  8. package/dist/vuetify-labs.d.ts +93 -12
  9. package/dist/vuetify-labs.esm.js +52 -29
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +52 -29
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +873 -868
  14. package/dist/vuetify.d.ts +132 -51
  15. package/dist/vuetify.esm.js +50 -27
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +50 -27
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +103 -102
  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/VList/VListChildren.mjs +2 -1
  47. package/lib/components/VList/VListChildren.mjs.map +1 -1
  48. package/lib/components/index.d.mts +87 -6
  49. package/lib/composables/defaults.mjs +1 -1
  50. package/lib/composables/defaults.mjs.map +1 -1
  51. package/lib/composables/dimensions.mjs +16 -8
  52. package/lib/composables/dimensions.mjs.map +1 -1
  53. package/lib/entry-bundler.mjs +1 -1
  54. package/lib/framework.mjs +1 -1
  55. package/lib/index.d.mts +45 -45
  56. package/lib/labs/VCalendar/VCalendar.mjs +2 -2
  57. package/lib/labs/VCalendar/VCalendar.mjs.map +1 -1
  58. package/lib/labs/VDateInput/index.d.mts +6 -6
  59. package/lib/labs/components.d.mts +6 -6
  60. package/lib/locale/fa.mjs +10 -10
  61. package/lib/locale/fa.mjs.map +1 -1
  62. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.6.6-master.2024-05-21
2
+ * Vuetify v3.6.7-master.2024-05-22
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -1323,7 +1323,7 @@
1323
1323
  if (prop === 'class' || prop === 'style') {
1324
1324
  return [componentDefaults.value?.[prop], propValue].filter(v => v != null);
1325
1325
  } else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {
1326
- 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;
1327
1327
  }
1328
1328
  return propValue;
1329
1329
  }
@@ -2998,14 +2998,22 @@
2998
2998
  width: [Number, String]
2999
2999
  }, 'dimension');
3000
3000
  function useDimension(props) {
3001
- const dimensionStyles = vue.computed(() => ({
3002
- height: convertToUnit(props.height),
3003
- maxHeight: convertToUnit(props.maxHeight),
3004
- maxWidth: convertToUnit(props.maxWidth),
3005
- minHeight: convertToUnit(props.minHeight),
3006
- minWidth: convertToUnit(props.minWidth),
3007
- width: convertToUnit(props.width)
3008
- }));
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
+ });
3009
3017
  return {
3010
3018
  dimensionStyles
3011
3019
  };
@@ -9207,7 +9215,8 @@
9207
9215
  }) : vue.createVNode(VListItem, listItemProps, slotsWithItem);
9208
9216
  },
9209
9217
  default: () => vue.createVNode(VListChildren, {
9210
- "items": children
9218
+ "items": children,
9219
+ "returnObject": props.returnObject
9211
9220
  }, slots)
9212
9221
  }) : slots.item ? slots.item({
9213
9222
  props: itemProps
@@ -12890,7 +12899,7 @@
12890
12899
  if (['Escape'].includes(e.key)) {
12891
12900
  menu.value = false;
12892
12901
  }
12893
- if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key)) {
12902
+ if (highlightFirst.value && e.key === 'Enter') {
12894
12903
  select(displayItems.value[0]);
12895
12904
  }
12896
12905
  if (e.key === 'ArrowDown' && highlightFirst.value) {
@@ -13197,7 +13206,8 @@
13197
13206
  "onMousedown": onMousedownMenuIcon,
13198
13207
  "onClick": noop,
13199
13208
  "aria-label": t(label.value),
13200
- "title": t(label.value)
13209
+ "title": t(label.value),
13210
+ "tabindex": "-1"
13201
13211
  }, null) : undefined]);
13202
13212
  }
13203
13213
  });
@@ -16756,8 +16766,8 @@
16756
16766
  if (['Escape'].includes(e.key)) {
16757
16767
  menu.value = false;
16758
16768
  }
16759
- if (['Enter', 'Escape', 'Tab'].includes(e.key)) {
16760
- if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key)) {
16769
+ if (['Enter', 'Escape'].includes(e.key)) {
16770
+ if (highlightFirst.value && e.key === 'Enter') {
16761
16771
  select(filteredItems.value[0]);
16762
16772
  }
16763
16773
  isPristine.value = true;
@@ -17065,7 +17075,8 @@
17065
17075
  "onMousedown": onMousedownMenuIcon,
17066
17076
  "onClick": noop,
17067
17077
  "aria-label": t(label.value),
17068
- "title": t(label.value)
17078
+ "title": t(label.value),
17079
+ "tabindex": "-1"
17069
17080
  }, null) : undefined]);
17070
17081
  }
17071
17082
  });
@@ -18577,7 +18588,7 @@
18577
18588
  function useSortedItems(props, items, sortBy, options) {
18578
18589
  const locale = useLocale();
18579
18590
  const sortedItems = vue.computed(() => {
18580
- if (!sortBy.value.length) return items.value;
18591
+ if (!sortBy.value.length || props.disableSort) return items.value;
18581
18592
  return sortItems(items.value, sortBy.value, locale.current.value, {
18582
18593
  transform: options?.transform,
18583
18594
  sortFunctions: {
@@ -19637,6 +19648,7 @@
19637
19648
  const makeVDataTableHeadersProps = propsFactory({
19638
19649
  color: String,
19639
19650
  sticky: Boolean,
19651
+ disableSort: Boolean,
19640
19652
  multiSort: Boolean,
19641
19653
  sortAscIcon: {
19642
19654
  type: IconValue,
@@ -19727,7 +19739,7 @@
19727
19739
  "tag": "th",
19728
19740
  "align": column.align,
19729
19741
  "class": [{
19730
- 'v-data-table__th--sortable': column.sortable,
19742
+ 'v-data-table__th--sortable': column.sortable && !props.disableSort,
19731
19743
  'v-data-table__th--sorted': isSorted(column),
19732
19744
  'v-data-table__th--fixed': column.fixed
19733
19745
  }, ...headerCellClasses.value],
@@ -19767,7 +19779,7 @@
19767
19779
  }
19768
19780
  return vue.createVNode("div", {
19769
19781
  "class": "v-data-table-header__content"
19770
- }, [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, {
19771
19783
  "key": "icon",
19772
19784
  "class": "v-data-table-header__sort-icon",
19773
19785
  "icon": getSortIcon(column)
@@ -19782,7 +19794,7 @@
19782
19794
  const VDataTableMobileHeaderCell = () => {
19783
19795
  const headerProps = vue.mergeProps(props.headerProps ?? {} ?? {});
19784
19796
  const displayItems = vue.computed(() => {
19785
- return columns.value.filter(column => column?.sortable);
19797
+ return columns.value.filter(column => column?.sortable && !props.disableSort);
19786
19798
  });
19787
19799
  const appendIcon = vue.computed(() => {
19788
19800
  const showSelectColumn = columns.value.find(column => column.key === 'data-table-select');
@@ -20278,6 +20290,7 @@
20278
20290
 
20279
20291
  const makeDataTableProps = propsFactory({
20280
20292
  ...makeVDataTableRowsProps(),
20293
+ hideDefaultBody: Boolean,
20281
20294
  hideDefaultFooter: Boolean,
20282
20295
  hideDefaultHeader: Boolean,
20283
20296
  width: [String, Number],
@@ -20464,7 +20477,7 @@
20464
20477
  top: () => slots.top?.(slotProps.value),
20465
20478
  default: () => slots.default ? slots.default(slotProps.value) : vue.createVNode(vue.Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && vue.createVNode("thead", {
20466
20479
  "key": "thead"
20467
- }, [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, {
20468
20481
  "items": paginatedItems.value
20469
20482
  }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),
20470
20483
  bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && vue.createVNode(vue.Fragment, null, [vue.createVNode(VDivider, null, null), vue.createVNode(VDataTableFooter, dataTableFooterProps, {
@@ -20639,7 +20652,7 @@
20639
20652
  "key": "thead"
20640
20653
  }, [vue.createVNode(VDataTableHeaders, vue.mergeProps(dataTableHeadersProps, {
20641
20654
  "sticky": props.fixedHeader
20642
- }), slots)]), vue.createVNode("tbody", null, [vue.createVNode("tr", {
20655
+ }), slots)]), !props.hideDefaultBody && vue.createVNode("tbody", null, [vue.createVNode("tr", {
20643
20656
  "ref": markerRef,
20644
20657
  "style": {
20645
20658
  height: convertToUnit(paddingTop.value),
@@ -20848,7 +20861,7 @@
20848
20861
  "role": "rowgroup"
20849
20862
  }, [vue.createVNode(VDataTableHeaders, vue.mergeProps(dataTableHeadersProps, {
20850
20863
  "sticky": props.fixedHeader
20851
- }), slots)]), slots.thead?.(slotProps.value), vue.createVNode("tbody", {
20864
+ }), slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && vue.createVNode("tbody", {
20852
20865
  "class": "v-data-table__tbody",
20853
20866
  "role": "rowgroup"
20854
20867
  }, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : vue.createVNode(VDataTableRows, vue.mergeProps(attrs, dataTableRowsProps, {
@@ -21623,7 +21636,10 @@
21623
21636
  const makeVDatePickerMonthsProps = propsFactory({
21624
21637
  color: String,
21625
21638
  height: [String, Number],
21626
- modelValue: Number
21639
+ min: null,
21640
+ max: null,
21641
+ modelValue: Number,
21642
+ year: Number
21627
21643
  }, 'VDatePickerMonths');
21628
21644
  const VDatePickerMonths = genericComponent()({
21629
21645
  name: 'VDatePickerMonths',
@@ -21640,10 +21656,15 @@
21640
21656
  const model = useProxiedModel(props, 'modelValue');
21641
21657
  const months = vue.computed(() => {
21642
21658
  let date = adapter.startOfYear(adapter.date());
21659
+ if (props.year) {
21660
+ date = adapter.setYear(date, props.year);
21661
+ }
21643
21662
  return createRange(12).map(i => {
21644
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))));
21645
21665
  date = adapter.getNextMonth(date);
21646
21666
  return {
21667
+ isDisabled,
21647
21668
  text,
21648
21669
  value: i
21649
21670
  };
@@ -21663,6 +21684,7 @@
21663
21684
  const btnProps = {
21664
21685
  active: model.value === i,
21665
21686
  color: model.value === i ? props.color : undefined,
21687
+ disabled: month.isDisabled,
21666
21688
  rounded: true,
21667
21689
  text: month.text,
21668
21690
  variant: model.value === month.value ? 'flat' : 'text',
@@ -22063,7 +22085,8 @@
22063
22085
  "modelValue": month.value,
22064
22086
  "onUpdate:modelValue": [$event => month.value = $event, onUpdateMonth],
22065
22087
  "min": minDate.value,
22066
- "max": maxDate.value
22088
+ "max": maxDate.value,
22089
+ "year": year.value
22067
22090
  }), null) : viewMode.value === 'year' ? vue.createVNode(VDatePickerYears, vue.mergeProps({
22068
22091
  "key": "date-picker-years"
22069
22092
  }, datePickerYearsProps, {
@@ -27727,7 +27750,7 @@
27727
27750
  }
27728
27751
  }
27729
27752
  function onClickToday() {
27730
- model.value = [new Date()];
27753
+ model.value = [adapter.date()];
27731
27754
  }
27732
27755
  const title = vue.computed(() => {
27733
27756
  return adapter.format(displayValue.value, 'monthAndYear');
@@ -27766,7 +27789,7 @@
27766
27789
  }, [chunkArray(daysInMonth.value, props.weekdays.length).map((week, wi) => [!props.hideWeekNumber ? vue.createVNode("div", {
27767
27790
  "class": "v-calendar-month__weeknumber"
27768
27791
  }, [weekNumbers.value[wi]]) : '', week.map(day => vue.createVNode(VCalendarMonthDay, {
27769
- "color": adapter.isSameDay(new Date(), day.date) ? 'primary' : undefined,
27792
+ "color": adapter.isSameDay(adapter.date(), day.date) ? 'primary' : undefined,
27770
27793
  "day": day,
27771
27794
  "title": day ? adapter.format(day.date, 'dayOfMonth') : 'NaN',
27772
27795
  "events": props.events?.filter(e => adapter.isSameDay(day.date, e.start) || adapter.isSameDay(day.date, e.end))
@@ -30104,7 +30127,7 @@
30104
30127
  goTo
30105
30128
  };
30106
30129
  }
30107
- const version$1 = "3.6.6-master.2024-05-21";
30130
+ const version$1 = "3.6.7-master.2024-05-22";
30108
30131
  createVuetify$1.version = version$1;
30109
30132
 
30110
30133
  // Vue's inject() can only be used in setup
@@ -30357,7 +30380,7 @@
30357
30380
 
30358
30381
  /* eslint-disable local-rules/sort-imports */
30359
30382
 
30360
- const version = "3.6.6-master.2024-05-21";
30383
+ const version = "3.6.7-master.2024-05-22";
30361
30384
 
30362
30385
  /* eslint-disable local-rules/sort-imports */
30363
30386