vuetify 3.4.4 → 3.4.6

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 (49) hide show
  1. package/dist/json/attributes.json +1402 -1402
  2. package/dist/json/importMap.json +120 -120
  3. package/dist/json/web-types.json +2609 -2609
  4. package/dist/vuetify-labs.css +2824 -2813
  5. package/dist/vuetify-labs.esm.js +106 -98
  6. package/dist/vuetify-labs.esm.js.map +1 -1
  7. package/dist/vuetify-labs.js +106 -98
  8. package/dist/vuetify-labs.min.css +2 -2
  9. package/dist/vuetify.css +1196 -1185
  10. package/dist/vuetify.d.ts +34 -34
  11. package/dist/vuetify.esm.js +106 -98
  12. package/dist/vuetify.esm.js.map +1 -1
  13. package/dist/vuetify.js +106 -98
  14. package/dist/vuetify.js.map +1 -1
  15. package/dist/vuetify.min.css +2 -2
  16. package/dist/vuetify.min.js +707 -706
  17. package/dist/vuetify.min.js.map +1 -1
  18. package/lib/components/VAutocomplete/VAutocomplete.mjs +1 -1
  19. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  20. package/lib/components/VDataTable/VDataTable.css +4 -0
  21. package/lib/components/VDataTable/VDataTable.sass +3 -0
  22. package/lib/components/VDataTable/VDataTableHeaders.mjs +1 -0
  23. package/lib/components/VDataTable/VDataTableHeaders.mjs.map +1 -1
  24. package/lib/components/VDataTable/VDataTableRows.mjs +1 -1
  25. package/lib/components/VDataTable/VDataTableRows.mjs.map +1 -1
  26. package/lib/components/VDatePicker/VDatePicker.mjs +6 -1
  27. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  28. package/lib/components/VDatePicker/VDatePickerHeader.css +3 -6
  29. package/lib/components/VDatePicker/VDatePickerHeader.sass +2 -6
  30. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +3 -0
  31. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  32. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +1 -3
  33. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  34. package/lib/components/VField/VField.css +7 -0
  35. package/lib/components/VField/VField.sass +5 -0
  36. package/lib/components/VFileInput/VFileInput.css +3 -0
  37. package/lib/components/VFileInput/VFileInput.sass +3 -0
  38. package/lib/components/VOverlay/locationStrategies.mjs +4 -7
  39. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  40. package/lib/composables/loader.mjs +1 -0
  41. package/lib/composables/loader.mjs.map +1 -1
  42. package/lib/composables/theme.mjs +85 -82
  43. package/lib/composables/theme.mjs.map +1 -1
  44. package/lib/entry-bundler.mjs +1 -1
  45. package/lib/framework.mjs +1 -1
  46. package/lib/index.d.mts +34 -34
  47. package/lib/locale/ru.mjs +23 -23
  48. package/lib/locale/ru.mjs.map +1 -1
  49. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.4.4
2
+ * Vuetify v3.4.6
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -2219,100 +2219,103 @@ const ThemeSymbol = Symbol.for('vuetify:theme');
2219
2219
  const makeThemeProps = propsFactory({
2220
2220
  theme: String
2221
2221
  }, 'theme');
2222
- const defaultThemeOptions = {
2223
- defaultTheme: 'light',
2224
- variations: {
2225
- colors: [],
2226
- lighten: 0,
2227
- darken: 0
2228
- },
2229
- themes: {
2230
- light: {
2231
- dark: false,
2232
- colors: {
2233
- background: '#FFFFFF',
2234
- surface: '#FFFFFF',
2235
- 'surface-bright': '#FFFFFF',
2236
- 'surface-variant': '#424242',
2237
- 'on-surface-variant': '#EEEEEE',
2238
- primary: '#1867C0',
2239
- 'primary-darken-1': '#1F5592',
2240
- secondary: '#48A9A6',
2241
- 'secondary-darken-1': '#018786',
2242
- error: '#B00020',
2243
- info: '#2196F3',
2244
- success: '#4CAF50',
2245
- warning: '#FB8C00'
2246
- },
2247
- variables: {
2248
- 'border-color': '#000000',
2249
- 'border-opacity': 0.12,
2250
- 'high-emphasis-opacity': 0.87,
2251
- 'medium-emphasis-opacity': 0.60,
2252
- 'disabled-opacity': 0.38,
2253
- 'idle-opacity': 0.04,
2254
- 'hover-opacity': 0.04,
2255
- 'focus-opacity': 0.12,
2256
- 'selected-opacity': 0.08,
2257
- 'activated-opacity': 0.12,
2258
- 'pressed-opacity': 0.12,
2259
- 'dragged-opacity': 0.08,
2260
- 'theme-kbd': '#212529',
2261
- 'theme-on-kbd': '#FFFFFF',
2262
- 'theme-code': '#F5F5F5',
2263
- 'theme-on-code': '#000000'
2264
- }
2222
+ function genDefaults() {
2223
+ return {
2224
+ defaultTheme: 'light',
2225
+ variations: {
2226
+ colors: [],
2227
+ lighten: 0,
2228
+ darken: 0
2265
2229
  },
2266
- dark: {
2267
- dark: true,
2268
- colors: {
2269
- background: '#121212',
2270
- surface: '#212121',
2271
- 'surface-bright': '#ccbfd6',
2272
- 'surface-variant': '#a3a3a3',
2273
- 'on-surface-variant': '#424242',
2274
- primary: '#2196F3',
2275
- 'primary-darken-1': '#277CC1',
2276
- secondary: '#54B6B2',
2277
- 'secondary-darken-1': '#48A9A6',
2278
- error: '#CF6679',
2279
- info: '#2196F3',
2280
- success: '#4CAF50',
2281
- warning: '#FB8C00'
2230
+ themes: {
2231
+ light: {
2232
+ dark: false,
2233
+ colors: {
2234
+ background: '#FFFFFF',
2235
+ surface: '#FFFFFF',
2236
+ 'surface-bright': '#FFFFFF',
2237
+ 'surface-variant': '#424242',
2238
+ 'on-surface-variant': '#EEEEEE',
2239
+ primary: '#1867C0',
2240
+ 'primary-darken-1': '#1F5592',
2241
+ secondary: '#48A9A6',
2242
+ 'secondary-darken-1': '#018786',
2243
+ error: '#B00020',
2244
+ info: '#2196F3',
2245
+ success: '#4CAF50',
2246
+ warning: '#FB8C00'
2247
+ },
2248
+ variables: {
2249
+ 'border-color': '#000000',
2250
+ 'border-opacity': 0.12,
2251
+ 'high-emphasis-opacity': 0.87,
2252
+ 'medium-emphasis-opacity': 0.60,
2253
+ 'disabled-opacity': 0.38,
2254
+ 'idle-opacity': 0.04,
2255
+ 'hover-opacity': 0.04,
2256
+ 'focus-opacity': 0.12,
2257
+ 'selected-opacity': 0.08,
2258
+ 'activated-opacity': 0.12,
2259
+ 'pressed-opacity': 0.12,
2260
+ 'dragged-opacity': 0.08,
2261
+ 'theme-kbd': '#212529',
2262
+ 'theme-on-kbd': '#FFFFFF',
2263
+ 'theme-code': '#F5F5F5',
2264
+ 'theme-on-code': '#000000'
2265
+ }
2282
2266
  },
2283
- variables: {
2284
- 'border-color': '#FFFFFF',
2285
- 'border-opacity': 0.12,
2286
- 'high-emphasis-opacity': 1,
2287
- 'medium-emphasis-opacity': 0.70,
2288
- 'disabled-opacity': 0.50,
2289
- 'idle-opacity': 0.10,
2290
- 'hover-opacity': 0.04,
2291
- 'focus-opacity': 0.12,
2292
- 'selected-opacity': 0.08,
2293
- 'activated-opacity': 0.12,
2294
- 'pressed-opacity': 0.16,
2295
- 'dragged-opacity': 0.08,
2296
- 'theme-kbd': '#212529',
2297
- 'theme-on-kbd': '#FFFFFF',
2298
- 'theme-code': '#343434',
2299
- 'theme-on-code': '#CCCCCC'
2267
+ dark: {
2268
+ dark: true,
2269
+ colors: {
2270
+ background: '#121212',
2271
+ surface: '#212121',
2272
+ 'surface-bright': '#ccbfd6',
2273
+ 'surface-variant': '#a3a3a3',
2274
+ 'on-surface-variant': '#424242',
2275
+ primary: '#2196F3',
2276
+ 'primary-darken-1': '#277CC1',
2277
+ secondary: '#54B6B2',
2278
+ 'secondary-darken-1': '#48A9A6',
2279
+ error: '#CF6679',
2280
+ info: '#2196F3',
2281
+ success: '#4CAF50',
2282
+ warning: '#FB8C00'
2283
+ },
2284
+ variables: {
2285
+ 'border-color': '#FFFFFF',
2286
+ 'border-opacity': 0.12,
2287
+ 'high-emphasis-opacity': 1,
2288
+ 'medium-emphasis-opacity': 0.70,
2289
+ 'disabled-opacity': 0.50,
2290
+ 'idle-opacity': 0.10,
2291
+ 'hover-opacity': 0.04,
2292
+ 'focus-opacity': 0.12,
2293
+ 'selected-opacity': 0.08,
2294
+ 'activated-opacity': 0.12,
2295
+ 'pressed-opacity': 0.16,
2296
+ 'dragged-opacity': 0.08,
2297
+ 'theme-kbd': '#212529',
2298
+ 'theme-on-kbd': '#FFFFFF',
2299
+ 'theme-code': '#343434',
2300
+ 'theme-on-code': '#CCCCCC'
2301
+ }
2300
2302
  }
2301
2303
  }
2302
- }
2303
- };
2304
+ };
2305
+ }
2304
2306
  function parseThemeOptions() {
2305
- let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaultThemeOptions;
2307
+ let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : genDefaults();
2308
+ const defaults = genDefaults();
2306
2309
  if (!options) return {
2307
- ...defaultThemeOptions,
2310
+ ...defaults,
2308
2311
  isDisabled: true
2309
2312
  };
2310
2313
  const themes = {};
2311
2314
  for (const [key, theme] of Object.entries(options.themes ?? {})) {
2312
- const defaultTheme = theme.dark || key === 'dark' ? defaultThemeOptions.themes?.dark : defaultThemeOptions.themes?.light;
2315
+ const defaultTheme = theme.dark || key === 'dark' ? defaults.themes?.dark : defaults.themes?.light;
2313
2316
  themes[key] = mergeDeep(defaultTheme, theme);
2314
2317
  }
2315
- return mergeDeep(defaultThemeOptions, {
2318
+ return mergeDeep(defaults, {
2316
2319
  ...options,
2317
2320
  themes
2318
2321
  });
@@ -4967,6 +4970,7 @@ function LoaderSlot(props, _ref) {
4967
4970
  color: props.color,
4968
4971
  isActive: props.active
4969
4972
  }) || createVNode(VProgressLinear, {
4973
+ "absolute": props.absolute,
4970
4974
  "active": props.active,
4971
4975
  "color": props.color,
4972
4976
  "height": "2",
@@ -8558,21 +8562,18 @@ function useLocationStrategies(props, data) {
8558
8562
  useToggleScope(() => !!(data.isActive.value && props.locationStrategy), reset => {
8559
8563
  watch(() => props.locationStrategy, reset);
8560
8564
  onScopeDispose(() => {
8565
+ window.removeEventListener('resize', onResize);
8561
8566
  updateLocation.value = undefined;
8562
8567
  });
8568
+ window.addEventListener('resize', onResize, {
8569
+ passive: true
8570
+ });
8563
8571
  if (typeof props.locationStrategy === 'function') {
8564
8572
  updateLocation.value = props.locationStrategy(data, props, contentStyles)?.updateLocation;
8565
8573
  } else {
8566
8574
  updateLocation.value = locationStrategies[props.locationStrategy](data, props, contentStyles)?.updateLocation;
8567
8575
  }
8568
8576
  });
8569
- window.addEventListener('resize', onResize, {
8570
- passive: true
8571
- });
8572
- onScopeDispose(() => {
8573
- window.removeEventListener('resize', onResize);
8574
- updateLocation.value = undefined;
8575
- });
8576
8577
  }
8577
8578
  function onResize(e) {
8578
8579
  updateLocation.value?.(e);
@@ -11930,7 +11931,7 @@ const VAutocomplete = genericComponent()({
11930
11931
  isPristine.value = true;
11931
11932
  nextTick(() => isSelecting.value = false);
11932
11933
  } else {
11933
- if (!props.multiple && !search.value) model.value = [];else if (highlightFirst.value && !listHasFocus.value && !model.value.some(_ref2 => {
11934
+ if (!props.multiple && search.value == null) model.value = [];else if (highlightFirst.value && !listHasFocus.value && !model.value.some(_ref2 => {
11934
11935
  let {
11935
11936
  value
11936
11937
  } = _ref2;
@@ -18185,6 +18186,7 @@ const VDataTableHeaders = genericComponent()({
18185
18186
  "colspan": columns.value.length
18186
18187
  }, [createVNode(LoaderSlot, {
18187
18188
  "name": "v-data-table-progress",
18189
+ "absolute": true,
18188
18190
  "active": true,
18189
18191
  "color": typeof props.loading === 'boolean' ? undefined : props.loading,
18190
18192
  "indeterminate": true
@@ -18417,7 +18419,7 @@ const VDataTableRows = genericComponent()({
18417
18419
  t
18418
18420
  } = useLocale();
18419
18421
  useRender(() => {
18420
- if (props.loading) {
18422
+ if (props.loading && (!props.items.length || slots.loading)) {
18421
18423
  return createVNode("tr", {
18422
18424
  "class": "v-data-table-rows-loading",
18423
18425
  "key": "loading"
@@ -20122,6 +20124,9 @@ const VDatePicker = genericComponent()({
20122
20124
  month.value = 11;
20123
20125
  }
20124
20126
  }
20127
+ function onClickDate() {
20128
+ viewMode.value = 'month';
20129
+ }
20125
20130
  function onClickMonth() {
20126
20131
  viewMode.value = viewMode.value === 'months' ? 'month' : 'months';
20127
20132
  }
@@ -20171,7 +20176,9 @@ const VDatePicker = genericComponent()({
20171
20176
  default: () => [slots.header?.(headerProps)]
20172
20177
  }) : createVNode(VDatePickerHeader, mergeProps({
20173
20178
  "key": "header"
20174
- }, datePickerHeaderProps, headerProps), slots),
20179
+ }, datePickerHeaderProps, headerProps, {
20180
+ "onClick": viewMode.value !== 'month' ? onClickDate : undefined
20181
+ }), slots),
20175
20182
  default: () => createVNode(Fragment, null, [createVNode(VDatePickerControls, mergeProps(datePickerControlsProps, {
20176
20183
  "disabled": disabled.value,
20177
20184
  "text": text.value,
@@ -20251,9 +20258,7 @@ const VExpansionPanels = genericComponent()({
20251
20258
  const variantClass = computed(() => props.variant && `v-expansion-panels--variant-${props.variant}`);
20252
20259
  provideDefaults({
20253
20260
  VExpansionPanel: {
20254
- color: toRef(props, 'color')
20255
- },
20256
- VExpansionPanelTitle: {
20261
+ color: toRef(props, 'color'),
20257
20262
  readonly: toRef(props, 'readonly'),
20258
20263
  static: toRef(props, 'static')
20259
20264
  }
@@ -20413,6 +20418,9 @@ const VExpansionPanel = genericComponent()({
20413
20418
  provideDefaults({
20414
20419
  VExpansionPanelText: {
20415
20420
  eager: toRef(props, 'eager')
20421
+ },
20422
+ VExpansionPanelTitle: {
20423
+ readonly: toRef(props, 'readonly')
20416
20424
  }
20417
20425
  });
20418
20426
  useRender(() => {
@@ -25259,7 +25267,7 @@ function createVuetify$1() {
25259
25267
  date
25260
25268
  };
25261
25269
  }
25262
- const version$1 = "3.4.4";
25270
+ const version$1 = "3.4.6";
25263
25271
  createVuetify$1.version = version$1;
25264
25272
 
25265
25273
  // Vue's inject() can only be used in setup
@@ -25273,7 +25281,7 @@ function inject(key) {
25273
25281
 
25274
25282
  /* eslint-disable local-rules/sort-imports */
25275
25283
 
25276
- const version = "3.4.4";
25284
+ const version = "3.4.6";
25277
25285
 
25278
25286
  /* eslint-disable local-rules/sort-imports */
25279
25287