vuetify 3.3.16 → 3.3.18

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 (120) hide show
  1. package/dist/json/attributes.json +1274 -1266
  2. package/dist/json/importMap.json +12 -12
  3. package/dist/json/tags.json +14 -7
  4. package/dist/json/web-types.json +2041 -2437
  5. package/dist/vuetify-labs.css +59 -30
  6. package/dist/vuetify-labs.d.ts +1717 -3099
  7. package/dist/vuetify-labs.esm.js +157 -100
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +156 -99
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +221 -227
  12. package/dist/vuetify.d.ts +53 -53
  13. package/dist/vuetify.esm.js +63 -41
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +63 -41
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +36 -32
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/blueprints/md3.mjs +3 -0
  21. package/lib/blueprints/md3.mjs.map +1 -1
  22. package/lib/components/VApp/VApp.mjs +1 -2
  23. package/lib/components/VApp/VApp.mjs.map +1 -1
  24. package/lib/components/VAutocomplete/VAutocomplete.mjs +4 -2
  25. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  26. package/lib/components/VAutocomplete/index.d.mts +12 -12
  27. package/lib/components/VCombobox/VCombobox.mjs +4 -2
  28. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  29. package/lib/components/VCombobox/index.d.mts +12 -12
  30. package/lib/components/VList/VList.mjs +2 -1
  31. package/lib/components/VList/VList.mjs.map +1 -1
  32. package/lib/components/VList/VListChildren.mjs +10 -3
  33. package/lib/components/VList/VListChildren.mjs.map +1 -1
  34. package/lib/components/VList/index.d.mts +10 -10
  35. package/lib/components/VRangeSlider/VRangeSlider.mjs +2 -2
  36. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  37. package/lib/components/VSelect/VSelect.mjs +3 -1
  38. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  39. package/lib/components/VSelect/index.d.mts +12 -12
  40. package/lib/components/VSelectionControl/VSelectionControl.css +0 -1
  41. package/lib/components/VSelectionControl/VSelectionControl.sass +0 -1
  42. package/lib/components/VSlider/VSlider.mjs +2 -2
  43. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  44. package/lib/components/VTable/VTable.css +4 -2
  45. package/lib/components/VTable/VTable.sass +3 -1
  46. package/lib/components/VTable/_variables.scss +1 -1
  47. package/lib/components/VTabs/VTabs.mjs +4 -4
  48. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  49. package/lib/components/VTabs/index.d.mts +1 -1
  50. package/lib/components/VTextField/VTextField.mjs +2 -2
  51. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  52. package/lib/components/VTextField/index.d.mts +6 -6
  53. package/lib/components/VTimeline/VTimeline.css +15 -22
  54. package/lib/components/VTimeline/VTimeline.sass +15 -25
  55. package/lib/components/index.d.mts +50 -50
  56. package/lib/composables/color.mjs +7 -4
  57. package/lib/composables/color.mjs.map +1 -1
  58. package/lib/composables/layout.mjs +1 -1
  59. package/lib/composables/layout.mjs.map +1 -1
  60. package/lib/composables/theme.mjs +0 -11
  61. package/lib/composables/theme.mjs.map +1 -1
  62. package/lib/entry-bundler.mjs +1 -1
  63. package/lib/framework.mjs +1 -1
  64. package/lib/index.d.mts +3 -3
  65. package/lib/labs/VBottomSheet/VBottomSheet.mjs +3 -2
  66. package/lib/labs/VBottomSheet/VBottomSheet.mjs.map +1 -1
  67. package/lib/labs/VBottomSheet/index.d.mts +3 -11
  68. package/lib/labs/VDataIterator/index.d.mts +66 -48
  69. package/lib/labs/VDataTable/VDataTableRow.mjs +8 -6
  70. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
  71. package/lib/labs/VDataTable/VDataTableRows.mjs +4 -2
  72. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  73. package/lib/labs/VDataTable/VDataTableServer.mjs +1 -2
  74. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  75. package/lib/labs/VDataTable/VDataTableVirtual.mjs +1 -2
  76. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  77. package/lib/labs/VDataTable/composables/headers.mjs +5 -7
  78. package/lib/labs/VDataTable/composables/headers.mjs.map +1 -1
  79. package/lib/labs/VDataTable/composables/items.mjs +1 -1
  80. package/lib/labs/VDataTable/composables/items.mjs.map +1 -1
  81. package/lib/labs/VDataTable/composables/select.mjs +15 -9
  82. package/lib/labs/VDataTable/composables/select.mjs.map +1 -1
  83. package/lib/labs/VDataTable/composables/sort.mjs +1 -0
  84. package/lib/labs/VDataTable/composables/sort.mjs.map +1 -1
  85. package/lib/labs/VDataTable/index.d.mts +1135 -2614
  86. package/lib/labs/VDataTable/types.mjs.map +1 -1
  87. package/lib/labs/VDateInput/index.d.mts +6 -6
  88. package/lib/labs/VDatePicker/VDatePicker.mjs +17 -7
  89. package/lib/labs/VDatePicker/VDatePicker.mjs.map +1 -1
  90. package/lib/labs/VDatePicker/VDatePickerControls.css +29 -2
  91. package/lib/labs/VDatePicker/VDatePickerControls.mjs +18 -17
  92. package/lib/labs/VDatePicker/VDatePickerControls.mjs.map +1 -1
  93. package/lib/labs/VDatePicker/VDatePickerControls.sass +30 -2
  94. package/lib/labs/VDatePicker/VDatePickerHeader.css +10 -1
  95. package/lib/labs/VDatePicker/VDatePickerHeader.mjs +12 -4
  96. package/lib/labs/VDatePicker/VDatePickerHeader.mjs.map +1 -1
  97. package/lib/labs/VDatePicker/VDatePickerHeader.sass +11 -1
  98. package/lib/labs/VDatePicker/VDatePickerMonth.mjs +1 -2
  99. package/lib/labs/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  100. package/lib/labs/VDatePicker/VDatePickerYears.mjs +1 -1
  101. package/lib/labs/VDatePicker/VDatePickerYears.mjs.map +1 -1
  102. package/lib/labs/VDatePicker/index.d.mts +184 -101
  103. package/lib/labs/VDateRangePicker/index.d.mts +67 -61
  104. package/lib/labs/VOtpInput/VOtpInput.mjs +1 -1
  105. package/lib/labs/VOtpInput/VOtpInput.mjs.map +1 -1
  106. package/lib/labs/VPicker/VPicker.css +0 -1
  107. package/lib/labs/VPicker/VPicker.mjs +16 -5
  108. package/lib/labs/VPicker/VPicker.mjs.map +1 -1
  109. package/lib/labs/VPicker/VPicker.sass +1 -1
  110. package/lib/labs/VPicker/index.d.mts +47 -35
  111. package/lib/labs/components.d.mts +3460 -4841
  112. package/lib/labs/date/adapters/vuetify.mjs +7 -2
  113. package/lib/labs/date/adapters/vuetify.mjs.map +1 -1
  114. package/lib/locale/pl.mjs +14 -14
  115. package/lib/locale/pl.mjs.map +1 -1
  116. package/lib/util/colorUtils.mjs +11 -0
  117. package/lib/util/colorUtils.mjs.map +1 -1
  118. package/lib/util/helpers.mjs +2 -1
  119. package/lib/util/helpers.mjs.map +1 -1
  120. package/package.json +2 -2
package/dist/vuetify.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.3.16
2
+ * Vuetify v3.3.18
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -127,7 +127,8 @@
127
127
  return getNestedValue(obj, path.split('.'), fallback);
128
128
  }
129
129
  function getPropertyFromItem(item, property, fallback) {
130
- if (property == null) return item === undefined ? fallback : item;
130
+ if (property === true) return item === undefined ? fallback : item;
131
+ if (property == null || typeof property === 'boolean') return fallback;
131
132
  if (item !== Object(item)) {
132
133
  if (typeof property !== 'function') return fallback;
133
134
  const value = property(item, fallback);
@@ -1109,6 +1110,17 @@
1109
1110
  function getForeground(color) {
1110
1111
  const blackContrast = Math.abs(APCAcontrast(parseColor(0), parseColor(color)));
1111
1112
  const whiteContrast = Math.abs(APCAcontrast(parseColor(0xffffff), parseColor(color)));
1113
+
1114
+ // TODO: warn about poor color selections
1115
+ // const contrastAsText = Math.abs(APCAcontrast(colorVal, colorToInt(theme.colors.background)))
1116
+ // const minContrast = Math.max(blackContrast, whiteContrast)
1117
+ // if (minContrast < 60) {
1118
+ // consoleInfo(`${key} theme color ${color} has poor contrast (${minContrast.toFixed()}%)`)
1119
+ // } else if (contrastAsText < 60 && !['background', 'surface'].includes(color)) {
1120
+ // consoleInfo(`${key} theme color ${color} has poor contrast as text (${contrastAsText.toFixed()}%)`)
1121
+ // }
1122
+
1123
+ // Prefer white text if both have an acceptable contrast ratio
1112
1124
  return whiteContrast > Math.min(blackContrast, 50) ? '#fff' : '#000';
1113
1125
  }
1114
1126
 
@@ -1702,7 +1714,7 @@
1702
1714
  'v-layout--full-height': props.fullHeight
1703
1715
  }]);
1704
1716
  const layoutStyles = vue.computed(() => ({
1705
- zIndex: rootZIndex.value,
1717
+ zIndex: parentLayout ? rootZIndex.value : undefined,
1706
1718
  position: parentLayout ? 'relative' : undefined,
1707
1719
  overflow: parentLayout ? 'hidden' : undefined
1708
1720
  }));
@@ -2223,17 +2235,6 @@
2223
2235
  if (/^on-[a-z]/.test(color) || theme.colors[`on-${color}`]) continue;
2224
2236
  const onColor = `on-${color}`;
2225
2237
  const colorVal = parseColor(theme.colors[color]);
2226
-
2227
- // TODO: warn about poor color selections
2228
- // const contrastAsText = Math.abs(APCAcontrast(colorVal, colorToInt(theme.colors.background)))
2229
- // const minContrast = Math.max(blackContrast, whiteContrast)
2230
- // if (minContrast < 60) {
2231
- // consoleInfo(`${key} theme color ${color} has poor contrast (${minContrast.toFixed()}%)`)
2232
- // } else if (contrastAsText < 60 && !['background', 'surface'].includes(color)) {
2233
- // consoleInfo(`${key} theme color ${color} has poor contrast as text (${contrastAsText.toFixed()}%)`)
2234
- // }
2235
-
2236
- // Prefer white text if both have an acceptable contrast ratio
2237
2238
  theme.colors[onColor] = getForeground(colorVal);
2238
2239
  }
2239
2240
  }
@@ -2393,7 +2394,6 @@
2393
2394
  const theme = provideTheme(props);
2394
2395
  const {
2395
2396
  layoutClasses,
2396
- layoutStyles,
2397
2397
  getLayoutItem,
2398
2398
  items,
2399
2399
  layoutRef
@@ -2404,7 +2404,7 @@
2404
2404
  useRender(() => vue.createVNode("div", {
2405
2405
  "ref": layoutRef,
2406
2406
  "class": ['v-application', theme.themeClasses.value, layoutClasses.value, rtlClasses.value, props.class],
2407
- "style": [layoutStyles.value, props.style]
2407
+ "style": [props.style]
2408
2408
  }, [vue.createVNode("div", {
2409
2409
  "class": "v-application__wrap"
2410
2410
  }, [slots.default?.()])]));
@@ -3266,9 +3266,12 @@
3266
3266
  if (isCssColor(colors.value.background)) {
3267
3267
  styles.backgroundColor = colors.value.background;
3268
3268
  if (!colors.value.text) {
3269
- const textColor = getForeground(styles.backgroundColor);
3270
- styles.color = textColor;
3271
- styles.caretColor = textColor;
3269
+ const backgroundColor = parseColor(colors.value.background);
3270
+ if (backgroundColor.a == null || backgroundColor.a === 1) {
3271
+ const textColor = getForeground(backgroundColor);
3272
+ styles.color = textColor;
3273
+ styles.caretColor = textColor;
3274
+ }
3272
3275
  }
3273
3276
  } else {
3274
3277
  classes.push(`bg-${colors.value.background}`);
@@ -7877,7 +7880,8 @@
7877
7880
  // Types
7878
7881
 
7879
7882
  const makeVListChildrenProps = propsFactory({
7880
- items: Array
7883
+ items: Array,
7884
+ returnObject: Boolean
7881
7885
  }, 'VListChildren');
7882
7886
  const VListChildren = genericComponent()({
7883
7887
  name: 'VListChildren',
@@ -7935,14 +7939,20 @@
7935
7939
  ...itemProps,
7936
7940
  ...activatorProps
7937
7941
  }
7938
- }) : vue.createVNode(VListItem, vue.mergeProps(itemProps, activatorProps), slotsWithItem);
7942
+ }) : vue.createVNode(VListItem, vue.mergeProps({
7943
+ "title": itemProps.title,
7944
+ "value": props.returnObject ? item : itemProps.value
7945
+ }, activatorProps), slotsWithItem);
7939
7946
  },
7940
7947
  default: () => vue.createVNode(VListChildren, {
7941
7948
  "items": children
7942
7949
  }, slots)
7943
7950
  }) : slots.item ? slots.item({
7944
7951
  props: itemProps
7945
- }) : vue.createVNode(VListItem, itemProps, slotsWithItem);
7952
+ }) : vue.createVNode(VListItem, {
7953
+ "title": itemProps.title,
7954
+ "value": props.returnObject ? item : itemProps.value
7955
+ }, slotsWithItem);
7946
7956
  });
7947
7957
  }
7948
7958
  });
@@ -8226,7 +8236,8 @@
8226
8236
  "onKeydown": onKeydown
8227
8237
  }, {
8228
8238
  default: () => [vue.createVNode(VListChildren, {
8229
- "items": items.value
8239
+ "items": items.value,
8240
+ "returnObject": props.returnObject
8230
8241
  }, slots)]
8231
8242
  });
8232
8243
  });
@@ -10343,7 +10354,7 @@
10343
10354
  const makeVTextFieldProps = propsFactory({
10344
10355
  autofocus: Boolean,
10345
10356
  counter: [Boolean, Number, String],
10346
- counterValue: Function,
10357
+ counterValue: [Number, Function],
10347
10358
  prefix: String,
10348
10359
  placeholder: String,
10349
10360
  persistentPlaceholder: Boolean,
@@ -10384,7 +10395,7 @@
10384
10395
  blur
10385
10396
  } = useFocus(props);
10386
10397
  const counterValue = vue.computed(() => {
10387
- return typeof props.counterValue === 'function' ? props.counterValue(model.value) : (model.value ?? '').toString().length;
10398
+ return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : (model.value ?? '').toString().length;
10388
10399
  });
10389
10400
  const max = vue.computed(() => {
10390
10401
  if (attrs.maxlength) return attrs.maxlength;
@@ -11038,6 +11049,7 @@
11038
11049
  "focused": isFocused.value,
11039
11050
  "onUpdate:focused": $event => isFocused.value = $event,
11040
11051
  "validationValue": model.externalValue,
11052
+ "counterValue": model.value.length,
11041
11053
  "dirty": isDirty,
11042
11054
  "class": ['v-select', {
11043
11055
  'v-select--active-menu': menu.value,
@@ -11144,7 +11156,8 @@
11144
11156
  "key": "chip",
11145
11157
  "closable": props.closableChips,
11146
11158
  "size": "small",
11147
- "text": item.title
11159
+ "text": item.title,
11160
+ "disabled": item.props.disabled
11148
11161
  }, slotProps), null) : vue.createVNode(VDefaultsProvider, {
11149
11162
  "key": "chip-defaults",
11150
11163
  "defaults": {
@@ -11441,7 +11454,7 @@
11441
11454
  }
11442
11455
  const originalSelectionIndex = selectionIndex.value;
11443
11456
  const selectedItem = model.value[selectionIndex.value];
11444
- if (selectedItem) select(selectedItem);
11457
+ if (selectedItem && !selectedItem.props.disabled) select(selectedItem);
11445
11458
  selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;
11446
11459
  }
11447
11460
  if (e.key === 'ArrowLeft') {
@@ -11561,6 +11574,7 @@
11561
11574
  "focused": isFocused.value,
11562
11575
  "onUpdate:focused": $event => isFocused.value = $event,
11563
11576
  "validationValue": model.externalValue,
11577
+ "counterValue": model.value.length,
11564
11578
  "dirty": isDirty,
11565
11579
  "onInput": onInput,
11566
11580
  "onChange": onChange,
@@ -11671,7 +11685,8 @@
11671
11685
  "key": "chip",
11672
11686
  "closable": props.closableChips,
11673
11687
  "size": "small",
11674
- "text": item.title
11688
+ "text": item.title,
11689
+ "disabled": item.props.disabled
11675
11690
  }, slotProps), null) : vue.createVNode(VDefaultsProvider, {
11676
11691
  "key": "chip-defaults",
11677
11692
  "defaults": {
@@ -14132,11 +14147,11 @@
14132
14147
  "focused": isFocused.value
14133
14148
  }), {
14134
14149
  ...slots,
14135
- prepend: hasPrepend ? slotProps => vue.createVNode(vue.Fragment, null, [slots.label?.(slotProps) ?? props.label ? vue.createVNode(VLabel, {
14150
+ prepend: hasPrepend ? slotProps => vue.createVNode(vue.Fragment, null, [slots.label?.(slotProps) ?? (props.label ? vue.createVNode(VLabel, {
14136
14151
  "id": slotProps.id.value,
14137
14152
  "class": "v-slider__label",
14138
14153
  "text": props.label
14139
- }, null) : undefined, slots.prepend?.(slotProps)]) : undefined,
14154
+ }, null) : undefined), slots.prepend?.(slotProps)]) : undefined,
14140
14155
  default: _ref4 => {
14141
14156
  let {
14142
14157
  id,
@@ -15010,7 +15025,7 @@
15010
15025
  }
15011
15026
  const originalSelectionIndex = selectionIndex.value;
15012
15027
  const selectedItem = model.value[selectionIndex.value];
15013
- if (selectedItem) select(selectedItem);
15028
+ if (selectedItem && !selectedItem.props.disabled) select(selectedItem);
15014
15029
  selectionIndex.value = originalSelectionIndex >= length - 1 ? length - 2 : originalSelectionIndex;
15015
15030
  }
15016
15031
  if (e.key === 'ArrowLeft') {
@@ -15118,6 +15133,7 @@
15118
15133
  "focused": isFocused.value,
15119
15134
  "onUpdate:focused": $event => isFocused.value = $event,
15120
15135
  "validationValue": model.externalValue,
15136
+ "counterValue": props.multiple ? model.value.length : search.value.length,
15121
15137
  "dirty": isDirty,
15122
15138
  "class": ['v-combobox', {
15123
15139
  'v-combobox--active-menu': menu.value,
@@ -15227,7 +15243,8 @@
15227
15243
  "key": "chip",
15228
15244
  "closable": props.closableChips,
15229
15245
  "size": "small",
15230
- "text": item.title
15246
+ "text": item.title,
15247
+ "disabled": item.props.disabled
15231
15248
  }, slotProps), null) : vue.createVNode(VDefaultsProvider, {
15232
15249
  "key": "chip-defaults",
15233
15250
  "defaults": {
@@ -17717,10 +17734,10 @@
17717
17734
  "focused": isFocused.value
17718
17735
  }), {
17719
17736
  ...slots,
17720
- prepend: hasPrepend ? slotProps => vue.createVNode(vue.Fragment, null, [slots.label?.(slotProps) ?? props.label ? vue.createVNode(VLabel, {
17737
+ prepend: hasPrepend ? slotProps => vue.createVNode(vue.Fragment, null, [slots.label?.(slotProps) ?? (props.label ? vue.createVNode(VLabel, {
17721
17738
  "class": "v-slider__label",
17722
17739
  "text": props.label
17723
- }, null) : undefined, slots.prepend?.(slotProps)]) : undefined,
17740
+ }, null) : undefined), slots.prepend?.(slotProps)]) : undefined,
17724
17741
  default: _ref4 => {
17725
17742
  let {
17726
17743
  id,
@@ -18805,8 +18822,8 @@
18805
18822
  function parseItems(items) {
18806
18823
  if (!items) return [];
18807
18824
  return items.map(item => {
18808
- if (typeof item === 'string') return {
18809
- title: item,
18825
+ if (!isObject(item)) return {
18826
+ text: item,
18810
18827
  value: item
18811
18828
  };
18812
18829
  return item;
@@ -18884,7 +18901,7 @@
18884
18901
  "symbol": VTabsSymbol
18885
18902
  }), {
18886
18903
  default: () => [slots.default ? slots.default() : parsedItems.value.map(item => vue.createVNode(VTab, vue.mergeProps(item, {
18887
- "key": item.title
18904
+ "key": item.text
18888
18905
  }), null))]
18889
18906
  });
18890
18907
  });
@@ -20002,8 +20019,8 @@
20002
20019
  let currentWeek = [];
20003
20020
  const firstDayOfMonth = startOfMonth(date);
20004
20021
  const lastDayOfMonth = endOfMonth(date);
20005
- const firstDayWeekIndex = firstDayOfMonth.getDay() - firstDay[locale.slice(-2).toUpperCase()];
20006
- const lastDayWeekIndex = lastDayOfMonth.getDay() - firstDay[locale.slice(-2).toUpperCase()];
20022
+ const firstDayWeekIndex = (firstDayOfMonth.getDay() - firstDay[locale.slice(-2).toUpperCase()] + 7) % 7;
20023
+ const lastDayWeekIndex = (lastDayOfMonth.getDay() - firstDay[locale.slice(-2).toUpperCase()] + 7) % 7;
20007
20024
  for (let i = 0; i < firstDayWeekIndex; i++) {
20008
20025
  const adjacentDay = new Date(firstDayOfMonth);
20009
20026
  adjacentDay.setDate(adjacentDay.getDate() - (firstDayWeekIndex - i));
@@ -20106,6 +20123,11 @@
20106
20123
  day: 'numeric'
20107
20124
  };
20108
20125
  break;
20126
+ case 'shortDate':
20127
+ options = {
20128
+ year: 'numeric'
20129
+ };
20130
+ break;
20109
20131
  default:
20110
20132
  options = {
20111
20133
  timeZone: 'UTC',
@@ -20395,7 +20417,7 @@
20395
20417
  date
20396
20418
  };
20397
20419
  }
20398
- const version$1 = "3.3.16";
20420
+ const version$1 = "3.3.18";
20399
20421
  createVuetify$1.version = version$1;
20400
20422
 
20401
20423
  // Vue's inject() can only be used in setup
@@ -20420,7 +20442,7 @@
20420
20442
  ...options
20421
20443
  });
20422
20444
  };
20423
- const version = "3.3.16";
20445
+ const version = "3.3.18";
20424
20446
  createVuetify.version = version;
20425
20447
 
20426
20448
  exports.components = components;