@vuetify/nightly 3.8.4-dev.2025-05-07 → 3.8.4-master.2025-05-07
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/CHANGELOG.md +3 -20
- package/dist/json/attributes.json +2498 -2506
- package/dist/json/importMap-labs.json +28 -28
- package/dist/json/importMap.json +138 -138
- package/dist/json/tags.json +0 -2
- package/dist/json/web-types.json +4444 -4464
- package/dist/vuetify-labs.cjs +31 -111
- package/dist/vuetify-labs.css +5389 -5412
- package/dist/vuetify-labs.d.ts +60 -93
- package/dist/vuetify-labs.esm.js +32 -112
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +31 -111
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +31 -111
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +5755 -5778
- package/dist/vuetify.d.ts +60 -93
- package/dist/vuetify.esm.js +32 -112
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +31 -111
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +1172 -1178
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VBtnGroup/VBtnGroup.css +7 -30
- package/lib/components/VBtnGroup/VBtnGroup.d.ts +32 -58
- package/lib/components/VBtnGroup/VBtnGroup.js +3 -7
- package/lib/components/VBtnGroup/VBtnGroup.js.map +1 -1
- package/lib/components/VBtnGroup/VBtnGroup.sass +17 -44
- package/lib/components/VBtnToggle/VBtnToggle.d.ts +0 -25
- package/lib/components/VInput/VInput.d.ts +1 -1
- package/lib/components/VOverlay/VOverlay.css +1 -1
- package/lib/components/VOverlay/_variables.scss +1 -1
- package/lib/composables/calendar.d.ts +0 -1
- package/lib/composables/calendar.js.map +1 -1
- package/lib/composables/theme.d.ts +1 -6
- package/lib/composables/theme.js +26 -94
- package/lib/composables/theme.js.map +1 -1
- package/lib/composables/virtual.js +1 -6
- package/lib/composables/virtual.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/entry-bundler.js.map +1 -1
- package/lib/framework.d.ts +50 -55
- package/lib/framework.js +1 -1
- package/lib/framework.js.map +1 -1
- package/lib/util/globals.d.ts +0 -1
- package/lib/util/globals.js +0 -1
- package/lib/util/globals.js.map +1 -1
- package/package.json +1 -1
package/dist/vuetify.esm.js
CHANGED
@@ -1,16 +1,15 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.8.4-
|
2
|
+
* Vuetify v3.8.4-master.2025-05-07
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
6
6
|
|
7
|
-
import { shallowRef, reactive, watchEffect, toRef, capitalize, unref, Fragment, isVNode, Comment, warn, getCurrentInstance as getCurrentInstance$1, ref, computed, provide, inject as inject$1, defineComponent as defineComponent$1, h, camelize, createVNode, mergeProps, toValue, onBeforeUnmount, watch, readonly, onMounted, useId, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw,
|
7
|
+
import { shallowRef, reactive, watchEffect, toRef, capitalize, unref, Fragment, isVNode, Comment, warn, getCurrentInstance as getCurrentInstance$1, ref, computed, provide, inject as inject$1, defineComponent as defineComponent$1, h, camelize, createVNode, mergeProps, toValue, onBeforeUnmount, watch, readonly, onMounted, useId, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, TransitionGroup, Transition, toRefs, isRef, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, onUpdated, Text, resolveDynamicComponent, toDisplayString, markRaw, Teleport, cloneVNode, createTextVNode, onUnmounted, onBeforeUpdate, withModifiers, vModelText, resolveComponent, render } from 'vue';
|
8
8
|
|
9
9
|
const IN_BROWSER = typeof window !== 'undefined';
|
10
10
|
const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
|
11
11
|
const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0);
|
12
12
|
const SUPPORTS_EYE_DROPPER = IN_BROWSER && 'EyeDropper' in window;
|
13
|
-
const SUPPORTS_MATCH_MEDIA = IN_BROWSER && 'matchMedia' in window && typeof window.matchMedia === 'function';
|
14
13
|
|
15
14
|
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
16
15
|
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
@@ -2782,7 +2781,6 @@ const makeThemeProps = propsFactory({
|
|
2782
2781
|
function genDefaults$1() {
|
2783
2782
|
return {
|
2784
2783
|
defaultTheme: 'light',
|
2785
|
-
prefix: 'v-',
|
2786
2784
|
variations: {
|
2787
2785
|
colors: [],
|
2788
2786
|
lighten: 0,
|
@@ -2864,10 +2862,7 @@ function genDefaults$1() {
|
|
2864
2862
|
}
|
2865
2863
|
}
|
2866
2864
|
},
|
2867
|
-
stylesheetId: 'vuetify-theme-stylesheet'
|
2868
|
-
scoped: false,
|
2869
|
-
unimportant: false,
|
2870
|
-
utilities: true
|
2865
|
+
stylesheetId: 'vuetify-theme-stylesheet'
|
2871
2866
|
};
|
2872
2867
|
}
|
2873
2868
|
function parseThemeOptions() {
|
@@ -2890,21 +2885,21 @@ function parseThemeOptions() {
|
|
2890
2885
|
function createCssClass(lines, selector, content, scope) {
|
2891
2886
|
lines.push(`${getScopedSelector(selector, scope)} {\n`, ...content.map(line => ` ${line};\n`), '}\n');
|
2892
2887
|
}
|
2893
|
-
function genCssVariables(theme
|
2888
|
+
function genCssVariables(theme) {
|
2894
2889
|
const lightOverlay = theme.dark ? 2 : 1;
|
2895
2890
|
const darkOverlay = theme.dark ? 1 : 2;
|
2896
2891
|
const variables = [];
|
2897
2892
|
for (const [key, value] of Object.entries(theme.colors)) {
|
2898
2893
|
const rgb = parseColor(value);
|
2899
|
-
variables.push(
|
2894
|
+
variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
|
2900
2895
|
if (!key.startsWith('on-')) {
|
2901
|
-
variables.push(
|
2896
|
+
variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
|
2902
2897
|
}
|
2903
2898
|
}
|
2904
2899
|
for (const [key, value] of Object.entries(theme.variables)) {
|
2905
2900
|
const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;
|
2906
2901
|
const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
|
2907
|
-
variables.push(
|
2902
|
+
variables.push(`--v-${key}: ${rgb ?? value}`);
|
2908
2903
|
}
|
2909
2904
|
return variables;
|
2910
2905
|
}
|
@@ -2948,8 +2943,7 @@ function getScopedSelector(selector, scope) {
|
|
2948
2943
|
const scopeSelector = `:where(${scope})`;
|
2949
2944
|
return selector === ':root' ? scopeSelector : `${scopeSelector} ${selector}`;
|
2950
2945
|
}
|
2951
|
-
function upsertStyles(
|
2952
|
-
const styleEl = getOrCreateStyleElement(id, cspNonce);
|
2946
|
+
function upsertStyles(styleEl, styles) {
|
2953
2947
|
if (!styleEl) return;
|
2954
2948
|
styleEl.innerHTML = styles;
|
2955
2949
|
}
|
@@ -2969,17 +2963,8 @@ function getOrCreateStyleElement(id, cspNonce) {
|
|
2969
2963
|
// Composables
|
2970
2964
|
function createTheme(options) {
|
2971
2965
|
const parsedOptions = parseThemeOptions(options);
|
2972
|
-
const
|
2966
|
+
const name = shallowRef(parsedOptions.defaultTheme);
|
2973
2967
|
const themes = ref(parsedOptions.themes);
|
2974
|
-
const systemName = shallowRef('light');
|
2975
|
-
const name = computed({
|
2976
|
-
get() {
|
2977
|
-
return _name.value === 'system' ? systemName.value : _name.value;
|
2978
|
-
},
|
2979
|
-
set(val) {
|
2980
|
-
_name.value = val;
|
2981
|
-
}
|
2982
|
-
});
|
2983
2968
|
const computedThemes = computed(() => {
|
2984
2969
|
const acc = {};
|
2985
2970
|
for (const [name, original] of Object.entries(themes.value)) {
|
@@ -3000,49 +2985,28 @@ function createTheme(options) {
|
|
3000
2985
|
const current = toRef(() => computedThemes.value[name.value]);
|
3001
2986
|
const styles = computed(() => {
|
3002
2987
|
const lines = [];
|
3003
|
-
const important = parsedOptions.unimportant ? '' : ' !important';
|
3004
|
-
const scoped = parsedOptions.scoped ? parsedOptions.prefix : '';
|
3005
2988
|
if (current.value?.dark) {
|
3006
2989
|
createCssClass(lines, ':root', ['color-scheme: dark'], parsedOptions.scope);
|
3007
2990
|
}
|
3008
|
-
createCssClass(lines, ':root', genCssVariables(current.value
|
2991
|
+
createCssClass(lines, ':root', genCssVariables(current.value), parsedOptions.scope);
|
3009
2992
|
for (const [themeName, theme] of Object.entries(computedThemes.value)) {
|
3010
|
-
createCssClass(lines,
|
3011
|
-
}
|
3012
|
-
|
3013
|
-
|
3014
|
-
|
3015
|
-
|
3016
|
-
|
3017
|
-
|
3018
|
-
|
3019
|
-
}
|
3020
|
-
|
3021
|
-
|
3022
|
-
createCssClass(fgLines, `.${scoped}border-${key}`, [`--${parsedOptions.prefix}border-color: var(--${parsedOptions.prefix}theme-${key})`], parsedOptions.scope);
|
3023
|
-
}
|
2993
|
+
createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme)], parsedOptions.scope);
|
2994
|
+
}
|
2995
|
+
const bgLines = [];
|
2996
|
+
const fgLines = [];
|
2997
|
+
const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));
|
2998
|
+
for (const key of colors) {
|
2999
|
+
if (key.startsWith('on-')) {
|
3000
|
+
createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`], parsedOptions.scope);
|
3001
|
+
} else {
|
3002
|
+
createCssClass(bgLines, `.bg-${key}`, [`--v-theme-overlay-multiplier: var(--v-theme-${key}-overlay-multiplier)`, `background-color: rgb(var(--v-theme-${key})) !important`, `color: rgb(var(--v-theme-on-${key})) !important`], parsedOptions.scope);
|
3003
|
+
createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`], parsedOptions.scope);
|
3004
|
+
createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`], parsedOptions.scope);
|
3024
3005
|
}
|
3025
|
-
lines.push(...bgLines, ...fgLines);
|
3026
3006
|
}
|
3007
|
+
lines.push(...bgLines, ...fgLines);
|
3027
3008
|
return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
|
3028
3009
|
});
|
3029
|
-
const themeClasses = toRef(() => parsedOptions.isDisabled ? undefined : `${parsedOptions.prefix}theme--${name.value}`);
|
3030
|
-
const themeNames = toRef(() => Object.keys(computedThemes.value));
|
3031
|
-
if (SUPPORTS_MATCH_MEDIA) {
|
3032
|
-
const media = window.matchMedia('(prefers-color-scheme: dark)');
|
3033
|
-
function updateSystemName() {
|
3034
|
-
systemName.value = media.matches ? 'dark' : 'light';
|
3035
|
-
}
|
3036
|
-
updateSystemName();
|
3037
|
-
media.addEventListener('change', updateSystemName, {
|
3038
|
-
passive: true
|
3039
|
-
});
|
3040
|
-
if (getCurrentScope()) {
|
3041
|
-
onScopeDispose(() => {
|
3042
|
-
media.removeEventListener('change', updateSystemName);
|
3043
|
-
});
|
3044
|
-
}
|
3045
|
-
}
|
3046
3010
|
function install(app) {
|
3047
3011
|
if (parsedOptions.isDisabled) return;
|
3048
3012
|
const head = app._context.provides.usehead;
|
@@ -3080,55 +3044,22 @@ function createTheme(options) {
|
|
3080
3044
|
updateStyles();
|
3081
3045
|
}
|
3082
3046
|
function updateStyles() {
|
3083
|
-
upsertStyles(parsedOptions.stylesheetId, parsedOptions.cspNonce, styles.value);
|
3047
|
+
upsertStyles(getOrCreateStyleElement(parsedOptions.stylesheetId, parsedOptions.cspNonce), styles.value);
|
3084
3048
|
}
|
3085
3049
|
}
|
3086
3050
|
}
|
3087
|
-
|
3088
|
-
if (!themeNames.value.includes(themeName)) {
|
3089
|
-
consoleWarn(`Theme "${themeName}" not found on the Vuetify theme instance`);
|
3090
|
-
return;
|
3091
|
-
}
|
3092
|
-
name.value = themeName;
|
3093
|
-
}
|
3094
|
-
function cycle() {
|
3095
|
-
let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : themeNames.value;
|
3096
|
-
const currentIndex = themeArray.indexOf(name.value);
|
3097
|
-
const nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % themeArray.length;
|
3098
|
-
change(themeArray[nextIndex]);
|
3099
|
-
}
|
3100
|
-
function toggle() {
|
3101
|
-
let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['light', 'dark'];
|
3102
|
-
cycle(themeArray);
|
3103
|
-
}
|
3104
|
-
const globalName = new Proxy(name, {
|
3105
|
-
get(target, prop) {
|
3106
|
-
return target[prop];
|
3107
|
-
},
|
3108
|
-
set(target, prop, val) {
|
3109
|
-
if (prop === 'value') {
|
3110
|
-
deprecate(`theme.global.name.value = ${val}`, `theme.change('${val}')`);
|
3111
|
-
}
|
3112
|
-
// @ts-expect-error
|
3113
|
-
target[prop] = val;
|
3114
|
-
return true;
|
3115
|
-
}
|
3116
|
-
});
|
3051
|
+
const themeClasses = toRef(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`);
|
3117
3052
|
return {
|
3118
3053
|
install,
|
3119
|
-
change,
|
3120
|
-
cycle,
|
3121
|
-
toggle,
|
3122
3054
|
isDisabled: parsedOptions.isDisabled,
|
3123
3055
|
name,
|
3124
3056
|
themes,
|
3125
3057
|
current,
|
3126
3058
|
computedThemes,
|
3127
|
-
prefix: parsedOptions.prefix,
|
3128
3059
|
themeClasses,
|
3129
3060
|
styles,
|
3130
3061
|
global: {
|
3131
|
-
name
|
3062
|
+
name,
|
3132
3063
|
current
|
3133
3064
|
}
|
3134
3065
|
};
|
@@ -3139,7 +3070,7 @@ function provideTheme(props) {
|
|
3139
3070
|
if (!theme) throw new Error('Could not find Vuetify theme injection');
|
3140
3071
|
const name = toRef(() => props.theme ?? theme.name.value);
|
3141
3072
|
const current = toRef(() => theme.themes.value[name.value]);
|
3142
|
-
const themeClasses = toRef(() => theme.isDisabled ? undefined :
|
3073
|
+
const themeClasses = toRef(() => theme.isDisabled ? undefined : `v-theme--${name.value}`);
|
3143
3074
|
const newTheme = {
|
3144
3075
|
...theme,
|
3145
3076
|
name,
|
@@ -4686,15 +4617,9 @@ function useVariant(props) {
|
|
4686
4617
|
};
|
4687
4618
|
}
|
4688
4619
|
|
4689
|
-
// Types
|
4690
|
-
|
4691
4620
|
const makeVBtnGroupProps = propsFactory({
|
4692
4621
|
baseColor: String,
|
4693
4622
|
divided: Boolean,
|
4694
|
-
direction: {
|
4695
|
-
type: String,
|
4696
|
-
default: 'horizontal'
|
4697
|
-
},
|
4698
4623
|
...makeBorderProps(),
|
4699
4624
|
...makeComponentProps(),
|
4700
4625
|
...makeDensityProps(),
|
@@ -4728,7 +4653,7 @@ const VBtnGroup = genericComponent()({
|
|
4728
4653
|
} = useRounded(props);
|
4729
4654
|
provideDefaults({
|
4730
4655
|
VBtn: {
|
4731
|
-
height:
|
4656
|
+
height: 'auto',
|
4732
4657
|
baseColor: toRef(() => props.baseColor),
|
4733
4658
|
color: toRef(() => props.color),
|
4734
4659
|
density: toRef(() => props.density),
|
@@ -4738,7 +4663,7 @@ const VBtnGroup = genericComponent()({
|
|
4738
4663
|
});
|
4739
4664
|
useRender(() => {
|
4740
4665
|
return createVNode(props.tag, {
|
4741
|
-
"class": ['v-btn-group',
|
4666
|
+
"class": ['v-btn-group', {
|
4742
4667
|
'v-btn-group--divided': props.divided
|
4743
4668
|
}, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
4744
4669
|
"style": props.style
|
@@ -12705,12 +12630,7 @@ function useVirtual(props, items) {
|
|
12705
12630
|
}
|
12706
12631
|
function calculateOffset(index) {
|
12707
12632
|
index = clamp(index, 0, items.value.length - 1);
|
12708
|
-
|
12709
|
-
const fraction = index % 1;
|
12710
|
-
const next = whole + 1;
|
12711
|
-
const wholeOffset = offsets[whole] || 0;
|
12712
|
-
const nextOffset = offsets[next] || wholeOffset;
|
12713
|
-
return wholeOffset + (nextOffset - wholeOffset) * fraction;
|
12633
|
+
return offsets[index] || 0;
|
12714
12634
|
}
|
12715
12635
|
function calculateIndex(scrollTop) {
|
12716
12636
|
return binaryClosest(offsets, scrollTop);
|
@@ -29318,7 +29238,7 @@ function createVuetify$1() {
|
|
29318
29238
|
};
|
29319
29239
|
});
|
29320
29240
|
}
|
29321
|
-
const version$1 = "3.8.4-
|
29241
|
+
const version$1 = "3.8.4-master.2025-05-07";
|
29322
29242
|
createVuetify$1.version = version$1;
|
29323
29243
|
|
29324
29244
|
// Vue's inject() can only be used in setup
|
@@ -29343,7 +29263,7 @@ const createVuetify = function () {
|
|
29343
29263
|
...options
|
29344
29264
|
});
|
29345
29265
|
};
|
29346
|
-
const version = "3.8.4-
|
29266
|
+
const version = "3.8.4-master.2025-05-07";
|
29347
29267
|
createVuetify.version = version;
|
29348
29268
|
|
29349
29269
|
export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };
|