@vuetify/nightly 3.8.2-dev.2025-04-17 → 3.8.2-master.2025-04-19
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 +7 -16
- package/dist/json/attributes.json +3562 -3562
- package/dist/json/importMap-labs.json +24 -24
- package/dist/json/importMap.json +164 -164
- package/dist/json/web-types.json +6668 -6669
- package/dist/vuetify-labs.cjs +36 -112
- package/dist/vuetify-labs.css +3302 -3302
- package/dist/vuetify-labs.d.ts +62 -76
- package/dist/vuetify-labs.esm.js +37 -113
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +36 -112
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +29 -103
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +5737 -5737
- package/dist/vuetify.d.ts +57 -62
- package/dist/vuetify.esm.js +30 -104
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +29 -103
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +1165 -1171
- package/dist/vuetify.min.js.map +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 +57 -62
- package/lib/framework.js +1 -1
- package/lib/framework.js.map +1 -1
- package/lib/labs/VIconBtn/VIconBtn.d.ts +6 -21
- package/lib/labs/VIconBtn/VIconBtn.js +7 -9
- package/lib/labs/VIconBtn/VIconBtn.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.cjs
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.8.2-
|
2
|
+
* Vuetify v3.8.2-master.2025-04-19
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -14,7 +14,6 @@
|
|
14
14
|
const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
|
15
15
|
const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0);
|
16
16
|
const SUPPORTS_EYE_DROPPER = IN_BROWSER && 'EyeDropper' in window;
|
17
|
-
const SUPPORTS_MATCH_MEDIA = IN_BROWSER && 'matchMedia' in window && typeof window.matchMedia === 'function';
|
18
17
|
|
19
18
|
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
20
19
|
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
@@ -2772,7 +2771,6 @@
|
|
2772
2771
|
function genDefaults$1() {
|
2773
2772
|
return {
|
2774
2773
|
defaultTheme: 'light',
|
2775
|
-
prefix: 'v-',
|
2776
2774
|
variations: {
|
2777
2775
|
colors: [],
|
2778
2776
|
lighten: 0,
|
@@ -2854,10 +2852,7 @@
|
|
2854
2852
|
}
|
2855
2853
|
}
|
2856
2854
|
},
|
2857
|
-
stylesheetId: 'vuetify-theme-stylesheet'
|
2858
|
-
scoped: false,
|
2859
|
-
unimportant: false,
|
2860
|
-
utilities: true
|
2855
|
+
stylesheetId: 'vuetify-theme-stylesheet'
|
2861
2856
|
};
|
2862
2857
|
}
|
2863
2858
|
function parseThemeOptions() {
|
@@ -2880,21 +2875,21 @@
|
|
2880
2875
|
function createCssClass(lines, selector, content, scope) {
|
2881
2876
|
lines.push(`${getScopedSelector(selector, scope)} {\n`, ...content.map(line => ` ${line};\n`), '}\n');
|
2882
2877
|
}
|
2883
|
-
function genCssVariables(theme
|
2878
|
+
function genCssVariables(theme) {
|
2884
2879
|
const lightOverlay = theme.dark ? 2 : 1;
|
2885
2880
|
const darkOverlay = theme.dark ? 1 : 2;
|
2886
2881
|
const variables = [];
|
2887
2882
|
for (const [key, value] of Object.entries(theme.colors)) {
|
2888
2883
|
const rgb = parseColor(value);
|
2889
|
-
variables.push(
|
2884
|
+
variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
|
2890
2885
|
if (!key.startsWith('on-')) {
|
2891
|
-
variables.push(
|
2886
|
+
variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
|
2892
2887
|
}
|
2893
2888
|
}
|
2894
2889
|
for (const [key, value] of Object.entries(theme.variables)) {
|
2895
2890
|
const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;
|
2896
2891
|
const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
|
2897
|
-
variables.push(
|
2892
|
+
variables.push(`--v-${key}: ${rgb ?? value}`);
|
2898
2893
|
}
|
2899
2894
|
return variables;
|
2900
2895
|
}
|
@@ -2938,8 +2933,7 @@
|
|
2938
2933
|
const scopeSelector = `:where(${scope})`;
|
2939
2934
|
return selector === ':root' ? scopeSelector : `${scopeSelector} ${selector}`;
|
2940
2935
|
}
|
2941
|
-
function upsertStyles(
|
2942
|
-
const styleEl = getOrCreateStyleElement(id, cspNonce);
|
2936
|
+
function upsertStyles(styleEl, styles) {
|
2943
2937
|
if (!styleEl) return;
|
2944
2938
|
styleEl.innerHTML = styles;
|
2945
2939
|
}
|
@@ -2959,17 +2953,8 @@
|
|
2959
2953
|
// Composables
|
2960
2954
|
function createTheme(options) {
|
2961
2955
|
const parsedOptions = parseThemeOptions(options);
|
2962
|
-
const
|
2956
|
+
const name = vue.shallowRef(parsedOptions.defaultTheme);
|
2963
2957
|
const themes = vue.ref(parsedOptions.themes);
|
2964
|
-
const systemName = vue.shallowRef('light');
|
2965
|
-
const name = vue.computed({
|
2966
|
-
get() {
|
2967
|
-
return _name.value === 'system' ? systemName.value : _name.value;
|
2968
|
-
},
|
2969
|
-
set(val) {
|
2970
|
-
_name.value = val;
|
2971
|
-
}
|
2972
|
-
});
|
2973
2958
|
const computedThemes = vue.computed(() => {
|
2974
2959
|
const acc = {};
|
2975
2960
|
for (const [name, original] of Object.entries(themes.value)) {
|
@@ -2990,49 +2975,28 @@
|
|
2990
2975
|
const current = vue.computed(() => computedThemes.value[name.value]);
|
2991
2976
|
const styles = vue.computed(() => {
|
2992
2977
|
const lines = [];
|
2993
|
-
const important = parsedOptions.unimportant ? '' : ' !important';
|
2994
|
-
const scoped = parsedOptions.scoped ? parsedOptions.prefix : '';
|
2995
2978
|
if (current.value?.dark) {
|
2996
2979
|
createCssClass(lines, ':root', ['color-scheme: dark'], parsedOptions.scope);
|
2997
2980
|
}
|
2998
|
-
createCssClass(lines, ':root', genCssVariables(current.value
|
2981
|
+
createCssClass(lines, ':root', genCssVariables(current.value), parsedOptions.scope);
|
2999
2982
|
for (const [themeName, theme] of Object.entries(computedThemes.value)) {
|
3000
|
-
createCssClass(lines,
|
3001
|
-
}
|
3002
|
-
|
3003
|
-
|
3004
|
-
|
3005
|
-
|
3006
|
-
|
3007
|
-
|
3008
|
-
|
3009
|
-
}
|
3010
|
-
|
3011
|
-
|
3012
|
-
createCssClass(fgLines, `.${scoped}border-${key}`, [`--${parsedOptions.prefix}border-color: var(--${parsedOptions.prefix}theme-${key})`], parsedOptions.scope);
|
3013
|
-
}
|
2983
|
+
createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme)], parsedOptions.scope);
|
2984
|
+
}
|
2985
|
+
const bgLines = [];
|
2986
|
+
const fgLines = [];
|
2987
|
+
const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));
|
2988
|
+
for (const key of colors) {
|
2989
|
+
if (key.startsWith('on-')) {
|
2990
|
+
createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`], parsedOptions.scope);
|
2991
|
+
} else {
|
2992
|
+
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);
|
2993
|
+
createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`], parsedOptions.scope);
|
2994
|
+
createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`], parsedOptions.scope);
|
3014
2995
|
}
|
3015
|
-
lines.push(...bgLines, ...fgLines);
|
3016
2996
|
}
|
2997
|
+
lines.push(...bgLines, ...fgLines);
|
3017
2998
|
return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
|
3018
2999
|
});
|
3019
|
-
const themeClasses = vue.computed(() => parsedOptions.isDisabled ? undefined : `${parsedOptions.prefix}theme--${name.value}`);
|
3020
|
-
const themeNames = vue.computed(() => Object.keys(computedThemes.value));
|
3021
|
-
if (SUPPORTS_MATCH_MEDIA) {
|
3022
|
-
const media = window.matchMedia('(prefers-color-scheme: dark)');
|
3023
|
-
function updateSystemName() {
|
3024
|
-
systemName.value = media.matches ? 'dark' : 'light';
|
3025
|
-
}
|
3026
|
-
updateSystemName();
|
3027
|
-
media.addEventListener('change', updateSystemName, {
|
3028
|
-
passive: true
|
3029
|
-
});
|
3030
|
-
if (vue.getCurrentScope()) {
|
3031
|
-
vue.onScopeDispose(() => {
|
3032
|
-
media.removeEventListener('change', updateSystemName);
|
3033
|
-
});
|
3034
|
-
}
|
3035
|
-
}
|
3036
3000
|
function install(app) {
|
3037
3001
|
if (parsedOptions.isDisabled) return;
|
3038
3002
|
const head = app._context.provides.usehead;
|
@@ -3070,55 +3034,22 @@
|
|
3070
3034
|
updateStyles();
|
3071
3035
|
}
|
3072
3036
|
function updateStyles() {
|
3073
|
-
upsertStyles(parsedOptions.stylesheetId, parsedOptions.cspNonce, styles.value);
|
3037
|
+
upsertStyles(getOrCreateStyleElement(parsedOptions.stylesheetId, parsedOptions.cspNonce), styles.value);
|
3074
3038
|
}
|
3075
3039
|
}
|
3076
3040
|
}
|
3077
|
-
|
3078
|
-
if (!themeNames.value.includes(themeName)) {
|
3079
|
-
consoleWarn(`Theme "${themeName}" not found on the Vuetify theme instance`);
|
3080
|
-
return;
|
3081
|
-
}
|
3082
|
-
name.value = themeName;
|
3083
|
-
}
|
3084
|
-
function cycle() {
|
3085
|
-
let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : themeNames.value;
|
3086
|
-
const currentIndex = themeArray.indexOf(name.value);
|
3087
|
-
const nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % themeArray.length;
|
3088
|
-
change(themeArray[nextIndex]);
|
3089
|
-
}
|
3090
|
-
function toggle() {
|
3091
|
-
let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['light', 'dark'];
|
3092
|
-
cycle(themeArray);
|
3093
|
-
}
|
3094
|
-
const globalName = new Proxy(name, {
|
3095
|
-
get(target, prop) {
|
3096
|
-
return target[prop];
|
3097
|
-
},
|
3098
|
-
set(target, prop, val) {
|
3099
|
-
if (prop === 'value') {
|
3100
|
-
deprecate(`theme.global.name.value = ${val}`, `theme.change('${val}')`);
|
3101
|
-
}
|
3102
|
-
// @ts-expect-error
|
3103
|
-
target[prop] = val;
|
3104
|
-
return true;
|
3105
|
-
}
|
3106
|
-
});
|
3041
|
+
const themeClasses = vue.computed(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`);
|
3107
3042
|
return {
|
3108
3043
|
install,
|
3109
|
-
change,
|
3110
|
-
cycle,
|
3111
|
-
toggle,
|
3112
3044
|
isDisabled: parsedOptions.isDisabled,
|
3113
3045
|
name,
|
3114
3046
|
themes,
|
3115
3047
|
current,
|
3116
3048
|
computedThemes,
|
3117
|
-
prefix: parsedOptions.prefix,
|
3118
3049
|
themeClasses,
|
3119
3050
|
styles,
|
3120
3051
|
global: {
|
3121
|
-
name
|
3052
|
+
name,
|
3122
3053
|
current
|
3123
3054
|
}
|
3124
3055
|
};
|
@@ -3129,7 +3060,7 @@
|
|
3129
3060
|
if (!theme) throw new Error('Could not find Vuetify theme injection');
|
3130
3061
|
const name = vue.computed(() => props.theme ?? theme.name.value);
|
3131
3062
|
const current = vue.computed(() => theme.themes.value[name.value]);
|
3132
|
-
const themeClasses = vue.computed(() => theme.isDisabled ? undefined :
|
3063
|
+
const themeClasses = vue.computed(() => theme.isDisabled ? undefined : `v-theme--${name.value}`);
|
3133
3064
|
const newTheme = {
|
3134
3065
|
...theme,
|
3135
3066
|
name,
|
@@ -12659,12 +12590,7 @@
|
|
12659
12590
|
}
|
12660
12591
|
function calculateOffset(index) {
|
12661
12592
|
index = clamp(index, 0, items.value.length - 1);
|
12662
|
-
|
12663
|
-
const fraction = index % 1;
|
12664
|
-
const next = whole + 1;
|
12665
|
-
const wholeOffset = offsets[whole] || 0;
|
12666
|
-
const nextOffset = offsets[next] || wholeOffset;
|
12667
|
-
return wholeOffset + (nextOffset - wholeOffset) * fraction;
|
12593
|
+
return offsets[index] || 0;
|
12668
12594
|
}
|
12669
12595
|
function calculateIndex(scrollTop) {
|
12670
12596
|
return binaryClosest(offsets, scrollTop);
|
@@ -29252,7 +29178,7 @@
|
|
29252
29178
|
};
|
29253
29179
|
});
|
29254
29180
|
}
|
29255
|
-
const version$1 = "3.8.2-
|
29181
|
+
const version$1 = "3.8.2-master.2025-04-19";
|
29256
29182
|
createVuetify$1.version = version$1;
|
29257
29183
|
|
29258
29184
|
// Vue's inject() can only be used in setup
|
@@ -29277,7 +29203,7 @@
|
|
29277
29203
|
...options
|
29278
29204
|
});
|
29279
29205
|
};
|
29280
|
-
const version = "3.8.2-
|
29206
|
+
const version = "3.8.2-master.2025-04-19";
|
29281
29207
|
createVuetify.version = version;
|
29282
29208
|
|
29283
29209
|
exports.blueprints = index;
|