@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
package/dist/vuetify.js CHANGED
@@ -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
  */
@@ -318,6 +318,8 @@
318
318
  if (!vnode || typeof vnode !== 'object') return [];
319
319
  if (Array.isArray(vnode)) {
320
320
  return vnode.map(child => findChildrenWithProvide(key, child)).flat(1);
321
+ } else if (vnode.suspense) {
322
+ return findChildrenWithProvide(key, vnode.ssContent);
321
323
  } else if (Array.isArray(vnode.children)) {
322
324
  return vnode.children.map(child => findChildrenWithProvide(key, child)).flat(1);
323
325
  } else if (vnode.component) {
@@ -1315,7 +1317,7 @@
1315
1317
  if (prop === 'class' || prop === 'style') {
1316
1318
  return [componentDefaults.value?.[prop], propValue].filter(v => v != null);
1317
1319
  } else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {
1318
- return componentDefaults.value?.[prop] ?? defaults.value?.global?.[prop] ?? propValue;
1320
+ return componentDefaults.value?.[prop] !== undefined ? componentDefaults.value?.[prop] : defaults.value?.global?.[prop] !== undefined ? defaults.value?.global?.[prop] : propValue;
1319
1321
  }
1320
1322
  return propValue;
1321
1323
  }
@@ -3436,14 +3438,22 @@
3436
3438
  width: [Number, String]
3437
3439
  }, 'dimension');
3438
3440
  function useDimension(props) {
3439
- const dimensionStyles = vue.computed(() => ({
3440
- height: convertToUnit(props.height),
3441
- maxHeight: convertToUnit(props.maxHeight),
3442
- maxWidth: convertToUnit(props.maxWidth),
3443
- minHeight: convertToUnit(props.minHeight),
3444
- minWidth: convertToUnit(props.minWidth),
3445
- width: convertToUnit(props.width)
3446
- }));
3441
+ const dimensionStyles = vue.computed(() => {
3442
+ const styles = {};
3443
+ const height = convertToUnit(props.height);
3444
+ const maxHeight = convertToUnit(props.maxHeight);
3445
+ const maxWidth = convertToUnit(props.maxWidth);
3446
+ const minHeight = convertToUnit(props.minHeight);
3447
+ const minWidth = convertToUnit(props.minWidth);
3448
+ const width = convertToUnit(props.width);
3449
+ if (height != null) styles.height = height;
3450
+ if (maxHeight != null) styles.maxHeight = maxHeight;
3451
+ if (maxWidth != null) styles.maxWidth = maxWidth;
3452
+ if (minHeight != null) styles.minHeight = minHeight;
3453
+ if (minWidth != null) styles.minWidth = minWidth;
3454
+ if (width != null) styles.width = width;
3455
+ return styles;
3456
+ });
3447
3457
  return {
3448
3458
  dimensionStyles
3449
3459
  };
@@ -9438,7 +9448,8 @@
9438
9448
  }) : vue.createVNode(VListItem, listItemProps, slotsWithItem);
9439
9449
  },
9440
9450
  default: () => vue.createVNode(VListChildren, {
9441
- "items": children
9451
+ "items": children,
9452
+ "returnObject": props.returnObject
9442
9453
  }, slots)
9443
9454
  }) : slots.item ? slots.item({
9444
9455
  props: itemProps
@@ -13121,7 +13132,7 @@
13121
13132
  if (['Escape'].includes(e.key)) {
13122
13133
  menu.value = false;
13123
13134
  }
13124
- if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key)) {
13135
+ if (highlightFirst.value && e.key === 'Enter') {
13125
13136
  select(displayItems.value[0]);
13126
13137
  }
13127
13138
  if (e.key === 'ArrowDown' && highlightFirst.value) {
@@ -13428,7 +13439,8 @@
13428
13439
  "onMousedown": onMousedownMenuIcon,
13429
13440
  "onClick": noop,
13430
13441
  "aria-label": t(label.value),
13431
- "title": t(label.value)
13442
+ "title": t(label.value),
13443
+ "tabindex": "-1"
13432
13444
  }, null) : undefined]);
13433
13445
  }
13434
13446
  });
@@ -16987,8 +16999,8 @@
16987
16999
  if (['Escape'].includes(e.key)) {
16988
17000
  menu.value = false;
16989
17001
  }
16990
- if (['Enter', 'Escape', 'Tab'].includes(e.key)) {
16991
- if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key)) {
17002
+ if (['Enter', 'Escape'].includes(e.key)) {
17003
+ if (highlightFirst.value && e.key === 'Enter') {
16992
17004
  select(filteredItems.value[0]);
16993
17005
  }
16994
17006
  isPristine.value = true;
@@ -17296,7 +17308,8 @@
17296
17308
  "onMousedown": onMousedownMenuIcon,
17297
17309
  "onClick": noop,
17298
17310
  "aria-label": t(label.value),
17299
- "title": t(label.value)
17311
+ "title": t(label.value),
17312
+ "tabindex": "-1"
17300
17313
  }, null) : undefined]);
17301
17314
  }
17302
17315
  });
@@ -18808,7 +18821,7 @@
18808
18821
  function useSortedItems(props, items, sortBy, options) {
18809
18822
  const locale = useLocale();
18810
18823
  const sortedItems = vue.computed(() => {
18811
- if (!sortBy.value.length) return items.value;
18824
+ if (!sortBy.value.length || props.disableSort) return items.value;
18812
18825
  return sortItems(items.value, sortBy.value, locale.current.value, {
18813
18826
  transform: options?.transform,
18814
18827
  sortFunctions: {
@@ -19868,6 +19881,7 @@
19868
19881
  const makeVDataTableHeadersProps = propsFactory({
19869
19882
  color: String,
19870
19883
  sticky: Boolean,
19884
+ disableSort: Boolean,
19871
19885
  multiSort: Boolean,
19872
19886
  sortAscIcon: {
19873
19887
  type: IconValue,
@@ -19958,7 +19972,7 @@
19958
19972
  "tag": "th",
19959
19973
  "align": column.align,
19960
19974
  "class": [{
19961
- 'v-data-table__th--sortable': column.sortable,
19975
+ 'v-data-table__th--sortable': column.sortable && !props.disableSort,
19962
19976
  'v-data-table__th--sorted': isSorted(column),
19963
19977
  'v-data-table__th--fixed': column.fixed
19964
19978
  }, ...headerCellClasses.value],
@@ -19998,7 +20012,7 @@
19998
20012
  }
19999
20013
  return vue.createVNode("div", {
20000
20014
  "class": "v-data-table-header__content"
20001
- }, [vue.createVNode("span", null, [column.title]), column.sortable && vue.createVNode(VIcon, {
20015
+ }, [vue.createVNode("span", null, [column.title]), column.sortable && !props.disableSort && vue.createVNode(VIcon, {
20002
20016
  "key": "icon",
20003
20017
  "class": "v-data-table-header__sort-icon",
20004
20018
  "icon": getSortIcon(column)
@@ -20013,7 +20027,7 @@
20013
20027
  const VDataTableMobileHeaderCell = () => {
20014
20028
  const headerProps = vue.mergeProps(props.headerProps ?? {} ?? {});
20015
20029
  const displayItems = vue.computed(() => {
20016
- return columns.value.filter(column => column?.sortable);
20030
+ return columns.value.filter(column => column?.sortable && !props.disableSort);
20017
20031
  });
20018
20032
  const appendIcon = vue.computed(() => {
20019
20033
  const showSelectColumn = columns.value.find(column => column.key === 'data-table-select');
@@ -20509,6 +20523,7 @@
20509
20523
 
20510
20524
  const makeDataTableProps = propsFactory({
20511
20525
  ...makeVDataTableRowsProps(),
20526
+ hideDefaultBody: Boolean,
20512
20527
  hideDefaultFooter: Boolean,
20513
20528
  hideDefaultHeader: Boolean,
20514
20529
  width: [String, Number],
@@ -20695,7 +20710,7 @@
20695
20710
  top: () => slots.top?.(slotProps.value),
20696
20711
  default: () => slots.default ? slots.default(slotProps.value) : vue.createVNode(vue.Fragment, null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && vue.createVNode("thead", {
20697
20712
  "key": "thead"
20698
- }, [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, {
20713
+ }, [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, {
20699
20714
  "items": paginatedItems.value
20700
20715
  }), slots), slots['body.append']?.(slotProps.value)]), slots.tbody?.(slotProps.value), slots.tfoot?.(slotProps.value)]),
20701
20716
  bottom: () => slots.bottom ? slots.bottom(slotProps.value) : !props.hideDefaultFooter && vue.createVNode(vue.Fragment, null, [vue.createVNode(VDivider, null, null), vue.createVNode(VDataTableFooter, dataTableFooterProps, {
@@ -20870,7 +20885,7 @@
20870
20885
  "key": "thead"
20871
20886
  }, [vue.createVNode(VDataTableHeaders, vue.mergeProps(dataTableHeadersProps, {
20872
20887
  "sticky": props.fixedHeader
20873
- }), slots)]), vue.createVNode("tbody", null, [vue.createVNode("tr", {
20888
+ }), slots)]), !props.hideDefaultBody && vue.createVNode("tbody", null, [vue.createVNode("tr", {
20874
20889
  "ref": markerRef,
20875
20890
  "style": {
20876
20891
  height: convertToUnit(paddingTop.value),
@@ -21079,7 +21094,7 @@
21079
21094
  "role": "rowgroup"
21080
21095
  }, [vue.createVNode(VDataTableHeaders, vue.mergeProps(dataTableHeadersProps, {
21081
21096
  "sticky": props.fixedHeader
21082
- }), slots)]), slots.thead?.(slotProps.value), vue.createVNode("tbody", {
21097
+ }), slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && vue.createVNode("tbody", {
21083
21098
  "class": "v-data-table__tbody",
21084
21099
  "role": "rowgroup"
21085
21100
  }, [slots['body.prepend']?.(slotProps.value), slots.body ? slots.body(slotProps.value) : vue.createVNode(VDataTableRows, vue.mergeProps(attrs, dataTableRowsProps, {
@@ -21854,7 +21869,10 @@
21854
21869
  const makeVDatePickerMonthsProps = propsFactory({
21855
21870
  color: String,
21856
21871
  height: [String, Number],
21857
- modelValue: Number
21872
+ min: null,
21873
+ max: null,
21874
+ modelValue: Number,
21875
+ year: Number
21858
21876
  }, 'VDatePickerMonths');
21859
21877
  const VDatePickerMonths = genericComponent()({
21860
21878
  name: 'VDatePickerMonths',
@@ -21871,10 +21889,15 @@
21871
21889
  const model = useProxiedModel(props, 'modelValue');
21872
21890
  const months = vue.computed(() => {
21873
21891
  let date = adapter.startOfYear(adapter.date());
21892
+ if (props.year) {
21893
+ date = adapter.setYear(date, props.year);
21894
+ }
21874
21895
  return createRange(12).map(i => {
21875
21896
  const text = adapter.format(date, 'monthShort');
21897
+ const isDisabled = !!(props.min && adapter.isAfter(adapter.startOfMonth(adapter.date(props.min)), date) || props.max && adapter.isAfter(date, adapter.startOfMonth(adapter.date(props.max))));
21876
21898
  date = adapter.getNextMonth(date);
21877
21899
  return {
21900
+ isDisabled,
21878
21901
  text,
21879
21902
  value: i
21880
21903
  };
@@ -21894,6 +21917,7 @@
21894
21917
  const btnProps = {
21895
21918
  active: model.value === i,
21896
21919
  color: model.value === i ? props.color : undefined,
21920
+ disabled: month.isDisabled,
21897
21921
  rounded: true,
21898
21922
  text: month.text,
21899
21923
  variant: model.value === month.value ? 'flat' : 'text',
@@ -22294,7 +22318,8 @@
22294
22318
  "modelValue": month.value,
22295
22319
  "onUpdate:modelValue": [$event => month.value = $event, onUpdateMonth],
22296
22320
  "min": minDate.value,
22297
- "max": maxDate.value
22321
+ "max": maxDate.value,
22322
+ "year": year.value
22298
22323
  }), null) : viewMode.value === 'year' ? vue.createVNode(VDatePickerYears, vue.mergeProps({
22299
22324
  "key": "date-picker-years"
22300
22325
  }, datePickerYearsProps, {
@@ -28012,7 +28037,7 @@
28012
28037
  goTo
28013
28038
  };
28014
28039
  }
28015
- const version$1 = "3.6.6-master.2024-05-17";
28040
+ const version$1 = "3.6.7-master.2024-05-22";
28016
28041
  createVuetify$1.version = version$1;
28017
28042
 
28018
28043
  // Vue's inject() can only be used in setup
@@ -28037,7 +28062,7 @@
28037
28062
  ...options
28038
28063
  });
28039
28064
  };
28040
- const version = "3.6.6-master.2024-05-17";
28065
+ const version = "3.6.7-master.2024-05-22";
28041
28066
  createVuetify.version = version;
28042
28067
 
28043
28068
  exports.blueprints = index;