@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.
@@ -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
  */
@@ -7178,6 +7178,9 @@
7178
7178
  window.addEventListener('resize', updateSize, {
7179
7179
  passive: true
7180
7180
  });
7181
+ vue.onScopeDispose(() => {
7182
+ window.removeEventListener('resize', updateSize);
7183
+ }, true);
7181
7184
  }
7182
7185
  return {
7183
7186
  ...vue.toRefs(state),
@@ -8498,6 +8501,27 @@
8498
8501
  };
8499
8502
  return strategy;
8500
8503
  };
8504
+ const trunkSelectStrategy = mandatory => {
8505
+ const parentStrategy = classicSelectStrategy(mandatory);
8506
+ const strategy = {
8507
+ select: parentStrategy.select,
8508
+ in: parentStrategy.in,
8509
+ out: (v, children, parents) => {
8510
+ const arr = [];
8511
+ for (const [key, value] of v.entries()) {
8512
+ if (value === 'on') {
8513
+ if (parents.has(key)) {
8514
+ const parent = parents.get(key);
8515
+ if (v.get(parent) === 'on') continue;
8516
+ }
8517
+ arr.push(key);
8518
+ }
8519
+ }
8520
+ return arr;
8521
+ }
8522
+ };
8523
+ return strategy;
8524
+ };
8501
8525
 
8502
8526
  // Composables
8503
8527
 
@@ -8567,6 +8591,8 @@
8567
8591
  return independentSelectStrategy(props.mandatory);
8568
8592
  case 'single-independent':
8569
8593
  return independentSingleSelectStrategy(props.mandatory);
8594
+ case 'trunk':
8595
+ return trunkSelectStrategy(props.mandatory);
8570
8596
  case 'classic':
8571
8597
  default:
8572
8598
  return classicSelectStrategy(props.mandatory);
@@ -30736,82 +30762,93 @@
30736
30762
  components = {},
30737
30763
  directives = {}
30738
30764
  } = options;
30739
- const defaults = createDefaults(options.defaults);
30740
- const display = createDisplay(options.display, options.ssr);
30741
- const theme = createTheme(options.theme);
30742
- const icons = createIcons(options.icons);
30743
- const locale = createLocale(options.locale);
30744
- const date = createDate(options.date, locale);
30745
- const goTo = createGoTo(options.goTo, locale);
30746
- const install = app => {
30747
- for (const key in directives) {
30748
- app.directive(key, directives[key]);
30749
- }
30750
- for (const key in components) {
30751
- app.component(key, components[key]);
30752
- }
30753
- for (const key in aliases) {
30754
- app.component(key, defineComponent({
30755
- ...aliases[key],
30756
- name: key,
30757
- aliasName: aliases[key].name
30758
- }));
30759
- }
30760
- theme.install(app);
30761
- app.provide(DefaultsSymbol, defaults);
30762
- app.provide(DisplaySymbol, display);
30763
- app.provide(ThemeSymbol, theme);
30764
- app.provide(IconSymbol, icons);
30765
- app.provide(LocaleSymbol, locale);
30766
- app.provide(DateOptionsSymbol, date.options);
30767
- app.provide(DateAdapterSymbol, date.instance);
30768
- app.provide(GoToSymbol, goTo);
30769
- if (IN_BROWSER && options.ssr) {
30770
- if (app.$nuxt) {
30771
- app.$nuxt.hook('app:suspense:resolve', () => {
30772
- display.update();
30765
+ const scope = vue.effectScope();
30766
+ return scope.run(() => {
30767
+ const defaults = createDefaults(options.defaults);
30768
+ const display = createDisplay(options.display, options.ssr);
30769
+ const theme = createTheme(options.theme);
30770
+ const icons = createIcons(options.icons);
30771
+ const locale = createLocale(options.locale);
30772
+ const date = createDate(options.date, locale);
30773
+ const goTo = createGoTo(options.goTo, locale);
30774
+ function install(app) {
30775
+ for (const key in directives) {
30776
+ app.directive(key, directives[key]);
30777
+ }
30778
+ for (const key in components) {
30779
+ app.component(key, components[key]);
30780
+ }
30781
+ for (const key in aliases) {
30782
+ app.component(key, defineComponent({
30783
+ ...aliases[key],
30784
+ name: key,
30785
+ aliasName: aliases[key].name
30786
+ }));
30787
+ }
30788
+ const appScope = vue.effectScope();
30789
+ appScope.run(() => {
30790
+ theme.install(app);
30791
+ });
30792
+ app.onUnmount(() => appScope.stop());
30793
+ app.provide(DefaultsSymbol, defaults);
30794
+ app.provide(DisplaySymbol, display);
30795
+ app.provide(ThemeSymbol, theme);
30796
+ app.provide(IconSymbol, icons);
30797
+ app.provide(LocaleSymbol, locale);
30798
+ app.provide(DateOptionsSymbol, date.options);
30799
+ app.provide(DateAdapterSymbol, date.instance);
30800
+ app.provide(GoToSymbol, goTo);
30801
+ if (IN_BROWSER && options.ssr) {
30802
+ if (app.$nuxt) {
30803
+ app.$nuxt.hook('app:suspense:resolve', () => {
30804
+ display.update();
30805
+ });
30806
+ } else {
30807
+ const {
30808
+ mount
30809
+ } = app;
30810
+ app.mount = function () {
30811
+ const vm = mount(...arguments);
30812
+ vue.nextTick(() => display.update());
30813
+ app.mount = mount;
30814
+ return vm;
30815
+ };
30816
+ }
30817
+ }
30818
+ if (typeof __VUE_OPTIONS_API__ !== 'boolean' || __VUE_OPTIONS_API__) {
30819
+ app.mixin({
30820
+ computed: {
30821
+ $vuetify() {
30822
+ return vue.reactive({
30823
+ defaults: inject.call(this, DefaultsSymbol),
30824
+ display: inject.call(this, DisplaySymbol),
30825
+ theme: inject.call(this, ThemeSymbol),
30826
+ icons: inject.call(this, IconSymbol),
30827
+ locale: inject.call(this, LocaleSymbol),
30828
+ date: inject.call(this, DateAdapterSymbol)
30829
+ });
30830
+ }
30831
+ }
30773
30832
  });
30774
- } else {
30775
- const {
30776
- mount
30777
- } = app;
30778
- app.mount = function () {
30779
- const vm = mount(...arguments);
30780
- vue.nextTick(() => display.update());
30781
- app.mount = mount;
30782
- return vm;
30783
- };
30784
30833
  }
30785
30834
  }
30786
- if (typeof __VUE_OPTIONS_API__ !== 'boolean' || __VUE_OPTIONS_API__) {
30787
- app.mixin({
30788
- computed: {
30789
- $vuetify() {
30790
- return vue.reactive({
30791
- defaults: inject.call(this, DefaultsSymbol),
30792
- display: inject.call(this, DisplaySymbol),
30793
- theme: inject.call(this, ThemeSymbol),
30794
- icons: inject.call(this, IconSymbol),
30795
- locale: inject.call(this, LocaleSymbol),
30796
- date: inject.call(this, DateAdapterSymbol)
30797
- });
30798
- }
30799
- }
30800
- });
30835
+ function unmount() {
30836
+ scope.stop();
30801
30837
  }
30802
- };
30803
- return {
30804
- install,
30805
- defaults,
30806
- display,
30807
- theme,
30808
- icons,
30809
- locale,
30810
- date,
30811
- goTo
30812
- };
30838
+ return {
30839
+ install,
30840
+ unmount,
30841
+ defaults,
30842
+ display,
30843
+ theme,
30844
+ icons,
30845
+ locale,
30846
+ date,
30847
+ goTo
30848
+ };
30849
+ });
30813
30850
  }
30814
- const version$1 = "3.7.7-dev.2025-01-20";
30851
+ const version$1 = "3.7.7-dev.2025-01-22";
30815
30852
  createVuetify$1.version = version$1;
30816
30853
 
30817
30854
  // Vue's inject() can only be used in setup
@@ -31064,7 +31101,7 @@
31064
31101
 
31065
31102
  /* eslint-disable local-rules/sort-imports */
31066
31103
 
31067
- const version = "3.7.7-dev.2025-01-20";
31104
+ const version = "3.7.7-dev.2025-01-22";
31068
31105
 
31069
31106
  /* eslint-disable local-rules/sort-imports */
31070
31107