@vuetify/nightly 3.7.7-dev.2025-01-20 → 3.7.7-dev.2025-01-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.
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-22
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);
@@ -28259,82 +28285,93 @@
28259
28285
  components = {},
28260
28286
  directives = {}
28261
28287
  } = 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();
28288
+ const scope = vue.effectScope();
28289
+ return scope.run(() => {
28290
+ const defaults = createDefaults(options.defaults);
28291
+ const display = createDisplay(options.display, options.ssr);
28292
+ const theme = createTheme(options.theme);
28293
+ const icons = createIcons(options.icons);
28294
+ const locale = createLocale(options.locale);
28295
+ const date = createDate(options.date, locale);
28296
+ const goTo = createGoTo(options.goTo, locale);
28297
+ function install(app) {
28298
+ for (const key in directives) {
28299
+ app.directive(key, directives[key]);
28300
+ }
28301
+ for (const key in components) {
28302
+ app.component(key, components[key]);
28303
+ }
28304
+ for (const key in aliases) {
28305
+ app.component(key, defineComponent({
28306
+ ...aliases[key],
28307
+ name: key,
28308
+ aliasName: aliases[key].name
28309
+ }));
28310
+ }
28311
+ const appScope = vue.effectScope();
28312
+ appScope.run(() => {
28313
+ theme.install(app);
28314
+ });
28315
+ app.onUnmount(() => appScope.stop());
28316
+ app.provide(DefaultsSymbol, defaults);
28317
+ app.provide(DisplaySymbol, display);
28318
+ app.provide(ThemeSymbol, theme);
28319
+ app.provide(IconSymbol, icons);
28320
+ app.provide(LocaleSymbol, locale);
28321
+ app.provide(DateOptionsSymbol, date.options);
28322
+ app.provide(DateAdapterSymbol, date.instance);
28323
+ app.provide(GoToSymbol, goTo);
28324
+ if (IN_BROWSER && options.ssr) {
28325
+ if (app.$nuxt) {
28326
+ app.$nuxt.hook('app:suspense:resolve', () => {
28327
+ display.update();
28328
+ });
28329
+ } else {
28330
+ const {
28331
+ mount
28332
+ } = app;
28333
+ app.mount = function () {
28334
+ const vm = mount(...arguments);
28335
+ vue.nextTick(() => display.update());
28336
+ app.mount = mount;
28337
+ return vm;
28338
+ };
28339
+ }
28340
+ }
28341
+ if (typeof __VUE_OPTIONS_API__ !== 'boolean' || __VUE_OPTIONS_API__) {
28342
+ app.mixin({
28343
+ computed: {
28344
+ $vuetify() {
28345
+ return vue.reactive({
28346
+ defaults: inject.call(this, DefaultsSymbol),
28347
+ display: inject.call(this, DisplaySymbol),
28348
+ theme: inject.call(this, ThemeSymbol),
28349
+ icons: inject.call(this, IconSymbol),
28350
+ locale: inject.call(this, LocaleSymbol),
28351
+ date: inject.call(this, DateAdapterSymbol)
28352
+ });
28353
+ }
28354
+ }
28296
28355
  });
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
28356
  }
28308
28357
  }
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
- });
28358
+ function unmount() {
28359
+ scope.stop();
28324
28360
  }
28325
- };
28326
- return {
28327
- install,
28328
- defaults,
28329
- display,
28330
- theme,
28331
- icons,
28332
- locale,
28333
- date,
28334
- goTo
28335
- };
28361
+ return {
28362
+ install,
28363
+ unmount,
28364
+ defaults,
28365
+ display,
28366
+ theme,
28367
+ icons,
28368
+ locale,
28369
+ date,
28370
+ goTo
28371
+ };
28372
+ });
28336
28373
  }
28337
- const version$1 = "3.7.7-dev.2025-01-20";
28374
+ const version$1 = "3.7.7-dev.2025-01-22";
28338
28375
  createVuetify$1.version = version$1;
28339
28376
 
28340
28377
  // Vue's inject() can only be used in setup
@@ -28359,7 +28396,7 @@
28359
28396
  ...options
28360
28397
  });
28361
28398
  };
28362
- const version = "3.7.7-dev.2025-01-20";
28399
+ const version = "3.7.7-dev.2025-01-22";
28363
28400
  createVuetify.version = version;
28364
28401
 
28365
28402
  exports.blueprints = index;