@vuetify/nightly 3.7.7-dev.2025-01-20 → 3.7.7-dev.2025-01-23

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 (39) hide show
  1. package/CHANGELOG.md +7 -3
  2. package/dist/json/attributes.json +1847 -1847
  3. package/dist/json/importMap-labs.json +24 -24
  4. package/dist/json/importMap.json +192 -192
  5. package/dist/json/web-types.json +3645 -3645
  6. package/dist/vuetify-labs.css +3069 -3069
  7. package/dist/vuetify-labs.d.ts +78 -77
  8. package/dist/vuetify-labs.esm.js +113 -73
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +113 -73
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +4776 -4776
  13. package/dist/vuetify.d.ts +78 -77
  14. package/dist/vuetify.esm.js +113 -73
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +113 -73
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +483 -477
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VList/VListGroup.js +1 -0
  22. package/lib/components/VList/VListGroup.js.map +1 -1
  23. package/lib/components/VList/VListItem.js +2 -0
  24. package/lib/components/VList/VListItem.js.map +1 -1
  25. package/lib/composables/display.js +4 -1
  26. package/lib/composables/display.js.map +1 -1
  27. package/lib/composables/nested/nested.d.ts +1 -1
  28. package/lib/composables/nested/nested.js +3 -1
  29. package/lib/composables/nested/nested.js.map +1 -1
  30. package/lib/composables/nested/selectStrategies.d.ts +1 -0
  31. package/lib/composables/nested/selectStrategies.js +21 -0
  32. package/lib/composables/nested/selectStrategies.js.map +1 -1
  33. package/lib/entry-bundler.d.ts +2 -1
  34. package/lib/entry-bundler.js +1 -1
  35. package/lib/framework.d.ts +77 -76
  36. package/lib/framework.js +83 -72
  37. package/lib/framework.js.map +1 -1
  38. package/lib/labs/entry-bundler.d.ts +2 -1
  39. package/package.json +1 -1
package/dist/vuetify.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.7.7-dev.2025-01-20
2
+ * Vuetify v3.7.7-dev.2025-01-23
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -7411,6 +7411,9 @@
7411
7411
  window.addEventListener('resize', updateSize, {
7412
7412
  passive: true
7413
7413
  });
7414
+ vue.onScopeDispose(() => {
7415
+ window.removeEventListener('resize', updateSize);
7416
+ }, true);
7414
7417
  }
7415
7418
  return {
7416
7419
  ...vue.toRefs(state),
@@ -8731,6 +8734,27 @@
8731
8734
  };
8732
8735
  return strategy;
8733
8736
  };
8737
+ const trunkSelectStrategy = mandatory => {
8738
+ const parentStrategy = classicSelectStrategy(mandatory);
8739
+ const strategy = {
8740
+ select: parentStrategy.select,
8741
+ in: parentStrategy.in,
8742
+ out: (v, children, parents) => {
8743
+ const arr = [];
8744
+ for (const [key, value] of v.entries()) {
8745
+ if (value === 'on') {
8746
+ if (parents.has(key)) {
8747
+ const parent = parents.get(key);
8748
+ if (v.get(parent) === 'on') continue;
8749
+ }
8750
+ arr.push(key);
8751
+ }
8752
+ }
8753
+ return arr;
8754
+ }
8755
+ };
8756
+ return strategy;
8757
+ };
8734
8758
 
8735
8759
  // Composables
8736
8760
 
@@ -8800,6 +8824,8 @@
8800
8824
  return independentSelectStrategy(props.mandatory);
8801
8825
  case 'single-independent':
8802
8826
  return independentSingleSelectStrategy(props.mandatory);
8827
+ case 'trunk':
8828
+ return trunkSelectStrategy(props.mandatory);
8803
8829
  case 'classic':
8804
8830
  default:
8805
8831
  return classicSelectStrategy(props.mandatory);
@@ -9036,6 +9062,7 @@
9036
9062
  } = useSsrBoot();
9037
9063
  function onClick(e) {
9038
9064
  e.stopPropagation();
9065
+ if (['INPUT', 'TEXTAREA'].includes(e.target?.tagName)) return;
9039
9066
  open(!isOpen.value, e);
9040
9067
  }
9041
9068
  const activatorProps = vue.computed(() => ({
@@ -9253,6 +9280,7 @@
9253
9280
  }));
9254
9281
  function onClick(e) {
9255
9282
  emit('click', e);
9283
+ if (['INPUT', 'TEXTAREA'].includes(e.target?.tagName)) return;
9256
9284
  if (!isClickable.value) return;
9257
9285
  link.navigate?.(e);
9258
9286
  if (isGroupActivator) return;
@@ -9265,6 +9293,7 @@
9265
9293
  }
9266
9294
  }
9267
9295
  function onKeyDown(e) {
9296
+ if (['INPUT', 'TEXTAREA'].includes(e.target?.tagName)) return;
9268
9297
  if (e.key === 'Enter' || e.key === ' ') {
9269
9298
  e.preventDefault();
9270
9299
  e.target.dispatchEvent(new MouseEvent('click', e));
@@ -28259,82 +28288,93 @@
28259
28288
  components = {},
28260
28289
  directives = {}
28261
28290
  } = options;
28262
- const defaults = createDefaults(options.defaults);
28263
- const display = createDisplay(options.display, options.ssr);
28264
- const theme = createTheme(options.theme);
28265
- const icons = createIcons(options.icons);
28266
- const locale = createLocale(options.locale);
28267
- const date = createDate(options.date, locale);
28268
- const goTo = createGoTo(options.goTo, locale);
28269
- const install = app => {
28270
- for (const key in directives) {
28271
- app.directive(key, directives[key]);
28272
- }
28273
- for (const key in components) {
28274
- app.component(key, components[key]);
28275
- }
28276
- for (const key in aliases) {
28277
- app.component(key, defineComponent({
28278
- ...aliases[key],
28279
- name: key,
28280
- aliasName: aliases[key].name
28281
- }));
28282
- }
28283
- theme.install(app);
28284
- app.provide(DefaultsSymbol, defaults);
28285
- app.provide(DisplaySymbol, display);
28286
- app.provide(ThemeSymbol, theme);
28287
- app.provide(IconSymbol, icons);
28288
- app.provide(LocaleSymbol, locale);
28289
- app.provide(DateOptionsSymbol, date.options);
28290
- app.provide(DateAdapterSymbol, date.instance);
28291
- app.provide(GoToSymbol, goTo);
28292
- if (IN_BROWSER && options.ssr) {
28293
- if (app.$nuxt) {
28294
- app.$nuxt.hook('app:suspense:resolve', () => {
28295
- display.update();
28291
+ const scope = vue.effectScope();
28292
+ return scope.run(() => {
28293
+ const defaults = createDefaults(options.defaults);
28294
+ const display = createDisplay(options.display, options.ssr);
28295
+ const theme = createTheme(options.theme);
28296
+ const icons = createIcons(options.icons);
28297
+ const locale = createLocale(options.locale);
28298
+ const date = createDate(options.date, locale);
28299
+ const goTo = createGoTo(options.goTo, locale);
28300
+ function install(app) {
28301
+ for (const key in directives) {
28302
+ app.directive(key, directives[key]);
28303
+ }
28304
+ for (const key in components) {
28305
+ app.component(key, components[key]);
28306
+ }
28307
+ for (const key in aliases) {
28308
+ app.component(key, defineComponent({
28309
+ ...aliases[key],
28310
+ name: key,
28311
+ aliasName: aliases[key].name
28312
+ }));
28313
+ }
28314
+ const appScope = vue.effectScope();
28315
+ appScope.run(() => {
28316
+ theme.install(app);
28317
+ });
28318
+ app.onUnmount(() => appScope.stop());
28319
+ app.provide(DefaultsSymbol, defaults);
28320
+ app.provide(DisplaySymbol, display);
28321
+ app.provide(ThemeSymbol, theme);
28322
+ app.provide(IconSymbol, icons);
28323
+ app.provide(LocaleSymbol, locale);
28324
+ app.provide(DateOptionsSymbol, date.options);
28325
+ app.provide(DateAdapterSymbol, date.instance);
28326
+ app.provide(GoToSymbol, goTo);
28327
+ if (IN_BROWSER && options.ssr) {
28328
+ if (app.$nuxt) {
28329
+ app.$nuxt.hook('app:suspense:resolve', () => {
28330
+ display.update();
28331
+ });
28332
+ } else {
28333
+ const {
28334
+ mount
28335
+ } = app;
28336
+ app.mount = function () {
28337
+ const vm = mount(...arguments);
28338
+ vue.nextTick(() => display.update());
28339
+ app.mount = mount;
28340
+ return vm;
28341
+ };
28342
+ }
28343
+ }
28344
+ if (typeof __VUE_OPTIONS_API__ !== 'boolean' || __VUE_OPTIONS_API__) {
28345
+ app.mixin({
28346
+ computed: {
28347
+ $vuetify() {
28348
+ return vue.reactive({
28349
+ defaults: inject.call(this, DefaultsSymbol),
28350
+ display: inject.call(this, DisplaySymbol),
28351
+ theme: inject.call(this, ThemeSymbol),
28352
+ icons: inject.call(this, IconSymbol),
28353
+ locale: inject.call(this, LocaleSymbol),
28354
+ date: inject.call(this, DateAdapterSymbol)
28355
+ });
28356
+ }
28357
+ }
28296
28358
  });
28297
- } else {
28298
- const {
28299
- mount
28300
- } = app;
28301
- app.mount = function () {
28302
- const vm = mount(...arguments);
28303
- vue.nextTick(() => display.update());
28304
- app.mount = mount;
28305
- return vm;
28306
- };
28307
28359
  }
28308
28360
  }
28309
- if (typeof __VUE_OPTIONS_API__ !== 'boolean' || __VUE_OPTIONS_API__) {
28310
- app.mixin({
28311
- computed: {
28312
- $vuetify() {
28313
- return vue.reactive({
28314
- defaults: inject.call(this, DefaultsSymbol),
28315
- display: inject.call(this, DisplaySymbol),
28316
- theme: inject.call(this, ThemeSymbol),
28317
- icons: inject.call(this, IconSymbol),
28318
- locale: inject.call(this, LocaleSymbol),
28319
- date: inject.call(this, DateAdapterSymbol)
28320
- });
28321
- }
28322
- }
28323
- });
28361
+ function unmount() {
28362
+ scope.stop();
28324
28363
  }
28325
- };
28326
- return {
28327
- install,
28328
- defaults,
28329
- display,
28330
- theme,
28331
- icons,
28332
- locale,
28333
- date,
28334
- goTo
28335
- };
28364
+ return {
28365
+ install,
28366
+ unmount,
28367
+ defaults,
28368
+ display,
28369
+ theme,
28370
+ icons,
28371
+ locale,
28372
+ date,
28373
+ goTo
28374
+ };
28375
+ });
28336
28376
  }
28337
- const version$1 = "3.7.7-dev.2025-01-20";
28377
+ const version$1 = "3.7.7-dev.2025-01-23";
28338
28378
  createVuetify$1.version = version$1;
28339
28379
 
28340
28380
  // Vue's inject() can only be used in setup
@@ -28359,7 +28399,7 @@
28359
28399
  ...options
28360
28400
  });
28361
28401
  };
28362
- const version = "3.7.7-dev.2025-01-20";
28402
+ const version = "3.7.7-dev.2025-01-23";
28363
28403
  createVuetify.version = version;
28364
28404
 
28365
28405
  exports.blueprints = index;