@vuetify/nightly 3.8.4-master.2025-05-12 → 3.8.5-dev.2025-05-14
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 +20 -12
- package/dist/_component-variables-labs.sass +1 -0
- package/dist/json/attributes.json +2152 -1792
- package/dist/json/importMap-labs.json +40 -36
- package/dist/json/importMap.json +106 -106
- package/dist/json/tags.json +95 -0
- package/dist/json/web-types.json +5016 -3760
- package/dist/vuetify-labs.cjs +429 -61
- package/dist/vuetify-labs.css +4205 -4149
- package/dist/vuetify-labs.d.ts +2274 -1142
- package/dist/vuetify-labs.esm.js +430 -62
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +429 -61
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +151 -41
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +4725 -4672
- package/dist/vuetify.d.ts +544 -487
- package/dist/vuetify.esm.js +152 -42
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +151 -41
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +1181 -1173
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.css +6 -1
- package/lib/components/VAlert/VAlert.d.ts +35 -0
- package/lib/components/VAlert/VAlert.js +14 -9
- package/lib/components/VAlert/VAlert.js.map +1 -1
- package/lib/components/VAlert/VAlert.sass +7 -1
- package/lib/components/VAutocomplete/VAutocomplete.d.ts +94 -94
- package/lib/components/VBottomSheet/VBottomSheet.css +1 -1
- package/lib/components/VBottomSheet/VBottomSheet.sass +1 -1
- package/lib/components/VBtn/VBtn.css +25 -0
- package/lib/components/VBtn/VBtn.sass +9 -0
- package/lib/components/VBtn/_variables.scss +1 -0
- package/lib/components/VBtnGroup/VBtnGroup.css +30 -7
- package/lib/components/VBtnGroup/VBtnGroup.d.ts +58 -32
- package/lib/components/VBtnGroup/VBtnGroup.js +7 -3
- package/lib/components/VBtnGroup/VBtnGroup.js.map +1 -1
- package/lib/components/VBtnGroup/VBtnGroup.sass +44 -17
- package/lib/components/VBtnToggle/VBtnToggle.d.ts +25 -0
- package/lib/components/VCheckbox/VCheckbox.d.ts +3 -3
- package/lib/components/VCombobox/VCombobox.d.ts +94 -94
- package/lib/components/VField/VField.d.ts +3 -3
- package/lib/components/VFileInput/VFileInput.d.ts +15 -15
- package/lib/components/VInput/VInput.d.ts +4 -4
- package/lib/components/VNumberInput/VNumberInput.d.ts +89 -89
- package/lib/components/VOverlay/VOverlay.css +1 -1
- package/lib/components/VOverlay/_variables.scss +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.d.ts +3 -3
- package/lib/components/VRangeSlider/VRangeSlider.d.ts +3 -3
- package/lib/components/VSelect/VSelect.d.ts +94 -94
- package/lib/components/VSlider/VSlider.d.ts +3 -3
- package/lib/components/VSnackbarQueue/VSnackbarQueue.d.ts +3 -1
- package/lib/components/VSnackbarQueue/VSnackbarQueue.js.map +1 -1
- package/lib/components/VSwitch/VSwitch.d.ts +3 -3
- package/lib/components/VTextField/VTextField.d.ts +27 -27
- package/lib/components/VTextarea/VTextarea.d.ts +15 -15
- package/lib/composables/calendar.d.ts +1 -0
- package/lib/composables/calendar.js.map +1 -1
- package/lib/composables/dateFormat.d.ts +24 -0
- package/lib/composables/dateFormat.js +112 -0
- package/lib/composables/dateFormat.js.map +1 -0
- package/lib/composables/iconSizes.d.ts +28 -0
- package/lib/composables/iconSizes.js +23 -0
- package/lib/composables/iconSizes.js.map +1 -0
- package/lib/composables/theme.d.ts +6 -1
- package/lib/composables/theme.js +94 -26
- package/lib/composables/theme.js.map +1 -1
- package/lib/composables/virtual.js +6 -1
- 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 +51 -43
- package/lib/framework.js +1 -1
- package/lib/framework.js.map +1 -1
- package/lib/iconsets/mdi.js +2 -1
- package/lib/iconsets/mdi.js.map +1 -1
- package/lib/labs/VColorInput/VColorInput.css +4 -0
- package/lib/labs/VColorInput/VColorInput.d.ts +1767 -0
- package/lib/labs/VColorInput/VColorInput.js +129 -0
- package/lib/labs/VColorInput/VColorInput.js.map +1 -0
- package/lib/labs/VColorInput/VColorInput.sass +7 -0
- package/lib/labs/VColorInput/_variables.scss +2 -0
- package/lib/labs/VColorInput/index.d.ts +1 -0
- package/lib/labs/VColorInput/index.js +2 -0
- package/lib/labs/VColorInput/index.js.map +1 -0
- package/lib/labs/VDateInput/VDateInput.d.ts +133 -108
- package/lib/labs/VDateInput/VDateInput.js +43 -10
- package/lib/labs/VDateInput/VDateInput.js.map +1 -1
- package/lib/labs/VIconBtn/VIconBtn.d.ts +29 -29
- package/lib/labs/VIconBtn/VIconBtn.js +7 -11
- package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
- package/lib/labs/components.d.ts +1 -0
- package/lib/labs/components.js +1 -0
- package/lib/labs/components.js.map +1 -1
- package/lib/util/globals.d.ts +1 -0
- package/lib/util/globals.js +1 -0
- package/lib/util/globals.js.map +1 -1
- package/package.json +2 -1
package/dist/vuetify.esm.js
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.8.
|
2
|
+
* Vuetify v3.8.5-dev.2025-05-14
|
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, 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';
|
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, getCurrentScope, 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';
|
13
14
|
|
14
15
|
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
15
16
|
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
@@ -1769,7 +1770,8 @@ const aliases = {
|
|
1769
1770
|
treeviewCollapse: 'mdi-menu-down',
|
1770
1771
|
treeviewExpand: 'mdi-menu-right',
|
1771
1772
|
eyeDropper: 'mdi-eyedropper',
|
1772
|
-
upload: 'mdi-cloud-upload'
|
1773
|
+
upload: 'mdi-cloud-upload',
|
1774
|
+
color: 'mdi-palette'
|
1773
1775
|
};
|
1774
1776
|
const mdi = {
|
1775
1777
|
// Not using mergeProps here, functional components merge props by default (?)
|
@@ -2781,6 +2783,7 @@ const makeThemeProps = propsFactory({
|
|
2781
2783
|
function genDefaults$1() {
|
2782
2784
|
return {
|
2783
2785
|
defaultTheme: 'light',
|
2786
|
+
prefix: 'v-',
|
2784
2787
|
variations: {
|
2785
2788
|
colors: [],
|
2786
2789
|
lighten: 0,
|
@@ -2862,7 +2865,10 @@ function genDefaults$1() {
|
|
2862
2865
|
}
|
2863
2866
|
}
|
2864
2867
|
},
|
2865
|
-
stylesheetId: 'vuetify-theme-stylesheet'
|
2868
|
+
stylesheetId: 'vuetify-theme-stylesheet',
|
2869
|
+
scoped: false,
|
2870
|
+
unimportant: false,
|
2871
|
+
utilities: true
|
2866
2872
|
};
|
2867
2873
|
}
|
2868
2874
|
function parseThemeOptions() {
|
@@ -2885,21 +2891,21 @@ function parseThemeOptions() {
|
|
2885
2891
|
function createCssClass(lines, selector, content, scope) {
|
2886
2892
|
lines.push(`${getScopedSelector(selector, scope)} {\n`, ...content.map(line => ` ${line};\n`), '}\n');
|
2887
2893
|
}
|
2888
|
-
function genCssVariables(theme) {
|
2894
|
+
function genCssVariables(theme, prefix) {
|
2889
2895
|
const lightOverlay = theme.dark ? 2 : 1;
|
2890
2896
|
const darkOverlay = theme.dark ? 1 : 2;
|
2891
2897
|
const variables = [];
|
2892
2898
|
for (const [key, value] of Object.entries(theme.colors)) {
|
2893
2899
|
const rgb = parseColor(value);
|
2894
|
-
variables.push(
|
2900
|
+
variables.push(`--${prefix}theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
|
2895
2901
|
if (!key.startsWith('on-')) {
|
2896
|
-
variables.push(
|
2902
|
+
variables.push(`--${prefix}theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
|
2897
2903
|
}
|
2898
2904
|
}
|
2899
2905
|
for (const [key, value] of Object.entries(theme.variables)) {
|
2900
2906
|
const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;
|
2901
2907
|
const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
|
2902
|
-
variables.push(
|
2908
|
+
variables.push(`--${prefix}${key}: ${rgb ?? value}`);
|
2903
2909
|
}
|
2904
2910
|
return variables;
|
2905
2911
|
}
|
@@ -2943,7 +2949,8 @@ function getScopedSelector(selector, scope) {
|
|
2943
2949
|
const scopeSelector = `:where(${scope})`;
|
2944
2950
|
return selector === ':root' ? scopeSelector : `${scopeSelector} ${selector}`;
|
2945
2951
|
}
|
2946
|
-
function upsertStyles(
|
2952
|
+
function upsertStyles(id, cspNonce, styles) {
|
2953
|
+
const styleEl = getOrCreateStyleElement(id, cspNonce);
|
2947
2954
|
if (!styleEl) return;
|
2948
2955
|
styleEl.innerHTML = styles;
|
2949
2956
|
}
|
@@ -2963,8 +2970,17 @@ function getOrCreateStyleElement(id, cspNonce) {
|
|
2963
2970
|
// Composables
|
2964
2971
|
function createTheme(options) {
|
2965
2972
|
const parsedOptions = parseThemeOptions(options);
|
2966
|
-
const
|
2973
|
+
const _name = shallowRef(parsedOptions.defaultTheme);
|
2967
2974
|
const themes = ref(parsedOptions.themes);
|
2975
|
+
const systemName = shallowRef('light');
|
2976
|
+
const name = computed({
|
2977
|
+
get() {
|
2978
|
+
return _name.value === 'system' ? systemName.value : _name.value;
|
2979
|
+
},
|
2980
|
+
set(val) {
|
2981
|
+
_name.value = val;
|
2982
|
+
}
|
2983
|
+
});
|
2968
2984
|
const computedThemes = computed(() => {
|
2969
2985
|
const acc = {};
|
2970
2986
|
for (const [name, original] of Object.entries(themes.value)) {
|
@@ -2985,28 +3001,49 @@ function createTheme(options) {
|
|
2985
3001
|
const current = toRef(() => computedThemes.value[name.value]);
|
2986
3002
|
const styles = computed(() => {
|
2987
3003
|
const lines = [];
|
3004
|
+
const important = parsedOptions.unimportant ? '' : ' !important';
|
3005
|
+
const scoped = parsedOptions.scoped ? parsedOptions.prefix : '';
|
2988
3006
|
if (current.value?.dark) {
|
2989
3007
|
createCssClass(lines, ':root', ['color-scheme: dark'], parsedOptions.scope);
|
2990
3008
|
}
|
2991
|
-
createCssClass(lines, ':root', genCssVariables(current.value), parsedOptions.scope);
|
3009
|
+
createCssClass(lines, ':root', genCssVariables(current.value, parsedOptions.prefix), parsedOptions.scope);
|
2992
3010
|
for (const [themeName, theme] of Object.entries(computedThemes.value)) {
|
2993
|
-
createCssClass(lines,
|
2994
|
-
}
|
2995
|
-
|
2996
|
-
|
2997
|
-
|
2998
|
-
|
2999
|
-
|
3000
|
-
|
3001
|
-
|
3002
|
-
|
3003
|
-
|
3004
|
-
|
3011
|
+
createCssClass(lines, `.${parsedOptions.prefix}theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme, parsedOptions.prefix)], parsedOptions.scope);
|
3012
|
+
}
|
3013
|
+
if (parsedOptions.utilities) {
|
3014
|
+
const bgLines = [];
|
3015
|
+
const fgLines = [];
|
3016
|
+
const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));
|
3017
|
+
for (const key of colors) {
|
3018
|
+
if (key.startsWith('on-')) {
|
3019
|
+
createCssClass(fgLines, `.${key}`, [`color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`], parsedOptions.scope);
|
3020
|
+
} else {
|
3021
|
+
createCssClass(bgLines, `.${scoped}bg-${key}`, [`--${parsedOptions.prefix}theme-overlay-multiplier: var(--${parsedOptions.prefix}theme-${key}-overlay-multiplier)`, `background-color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`, `color: rgb(var(--${parsedOptions.prefix}theme-on-${key}))${important}`], parsedOptions.scope);
|
3022
|
+
createCssClass(fgLines, `.${scoped}text-${key}`, [`color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`], parsedOptions.scope);
|
3023
|
+
createCssClass(fgLines, `.${scoped}border-${key}`, [`--${parsedOptions.prefix}border-color: var(--${parsedOptions.prefix}theme-${key})`], parsedOptions.scope);
|
3024
|
+
}
|
3005
3025
|
}
|
3026
|
+
lines.push(...bgLines, ...fgLines);
|
3006
3027
|
}
|
3007
|
-
lines.push(...bgLines, ...fgLines);
|
3008
3028
|
return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
|
3009
3029
|
});
|
3030
|
+
const themeClasses = toRef(() => parsedOptions.isDisabled ? undefined : `${parsedOptions.prefix}theme--${name.value}`);
|
3031
|
+
const themeNames = toRef(() => Object.keys(computedThemes.value));
|
3032
|
+
if (SUPPORTS_MATCH_MEDIA) {
|
3033
|
+
const media = window.matchMedia('(prefers-color-scheme: dark)');
|
3034
|
+
function updateSystemName() {
|
3035
|
+
systemName.value = media.matches ? 'dark' : 'light';
|
3036
|
+
}
|
3037
|
+
updateSystemName();
|
3038
|
+
media.addEventListener('change', updateSystemName, {
|
3039
|
+
passive: true
|
3040
|
+
});
|
3041
|
+
if (getCurrentScope()) {
|
3042
|
+
onScopeDispose(() => {
|
3043
|
+
media.removeEventListener('change', updateSystemName);
|
3044
|
+
});
|
3045
|
+
}
|
3046
|
+
}
|
3010
3047
|
function install(app) {
|
3011
3048
|
if (parsedOptions.isDisabled) return;
|
3012
3049
|
const head = app._context.provides.usehead;
|
@@ -3044,22 +3081,55 @@ function createTheme(options) {
|
|
3044
3081
|
updateStyles();
|
3045
3082
|
}
|
3046
3083
|
function updateStyles() {
|
3047
|
-
upsertStyles(
|
3084
|
+
upsertStyles(parsedOptions.stylesheetId, parsedOptions.cspNonce, styles.value);
|
3048
3085
|
}
|
3049
3086
|
}
|
3050
3087
|
}
|
3051
|
-
|
3088
|
+
function change(themeName) {
|
3089
|
+
if (!themeNames.value.includes(themeName)) {
|
3090
|
+
consoleWarn(`Theme "${themeName}" not found on the Vuetify theme instance`);
|
3091
|
+
return;
|
3092
|
+
}
|
3093
|
+
name.value = themeName;
|
3094
|
+
}
|
3095
|
+
function cycle() {
|
3096
|
+
let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : themeNames.value;
|
3097
|
+
const currentIndex = themeArray.indexOf(name.value);
|
3098
|
+
const nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % themeArray.length;
|
3099
|
+
change(themeArray[nextIndex]);
|
3100
|
+
}
|
3101
|
+
function toggle() {
|
3102
|
+
let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['light', 'dark'];
|
3103
|
+
cycle(themeArray);
|
3104
|
+
}
|
3105
|
+
const globalName = new Proxy(name, {
|
3106
|
+
get(target, prop) {
|
3107
|
+
return target[prop];
|
3108
|
+
},
|
3109
|
+
set(target, prop, val) {
|
3110
|
+
if (prop === 'value') {
|
3111
|
+
deprecate(`theme.global.name.value = ${val}`, `theme.change('${val}')`);
|
3112
|
+
}
|
3113
|
+
// @ts-expect-error
|
3114
|
+
target[prop] = val;
|
3115
|
+
return true;
|
3116
|
+
}
|
3117
|
+
});
|
3052
3118
|
return {
|
3053
3119
|
install,
|
3120
|
+
change,
|
3121
|
+
cycle,
|
3122
|
+
toggle,
|
3054
3123
|
isDisabled: parsedOptions.isDisabled,
|
3055
3124
|
name,
|
3056
3125
|
themes,
|
3057
3126
|
current,
|
3058
3127
|
computedThemes,
|
3128
|
+
prefix: parsedOptions.prefix,
|
3059
3129
|
themeClasses,
|
3060
3130
|
styles,
|
3061
3131
|
global: {
|
3062
|
-
name,
|
3132
|
+
name: globalName,
|
3063
3133
|
current
|
3064
3134
|
}
|
3065
3135
|
};
|
@@ -3070,7 +3140,7 @@ function provideTheme(props) {
|
|
3070
3140
|
if (!theme) throw new Error('Could not find Vuetify theme injection');
|
3071
3141
|
const name = toRef(() => props.theme ?? theme.name.value);
|
3072
3142
|
const current = toRef(() => theme.themes.value[name.value]);
|
3073
|
-
const themeClasses = toRef(() => theme.isDisabled ? undefined :
|
3143
|
+
const themeClasses = toRef(() => theme.isDisabled ? undefined : `${theme.prefix}theme--${name.value}`);
|
3074
3144
|
const newTheme = {
|
3075
3145
|
...theme,
|
3076
3146
|
name,
|
@@ -4617,9 +4687,15 @@ function useVariant(props) {
|
|
4617
4687
|
};
|
4618
4688
|
}
|
4619
4689
|
|
4690
|
+
// Types
|
4691
|
+
|
4620
4692
|
const makeVBtnGroupProps = propsFactory({
|
4621
4693
|
baseColor: String,
|
4622
4694
|
divided: Boolean,
|
4695
|
+
direction: {
|
4696
|
+
type: String,
|
4697
|
+
default: 'horizontal'
|
4698
|
+
},
|
4623
4699
|
...makeBorderProps(),
|
4624
4700
|
...makeComponentProps(),
|
4625
4701
|
...makeDensityProps(),
|
@@ -4653,7 +4729,7 @@ const VBtnGroup = genericComponent()({
|
|
4653
4729
|
} = useRounded(props);
|
4654
4730
|
provideDefaults({
|
4655
4731
|
VBtn: {
|
4656
|
-
height: 'auto',
|
4732
|
+
height: toRef(() => props.direction === 'horizontal' ? 'auto' : null),
|
4657
4733
|
baseColor: toRef(() => props.baseColor),
|
4658
4734
|
color: toRef(() => props.color),
|
4659
4735
|
density: toRef(() => props.density),
|
@@ -4663,7 +4739,7 @@ const VBtnGroup = genericComponent()({
|
|
4663
4739
|
});
|
4664
4740
|
useRender(() => {
|
4665
4741
|
return createVNode(props.tag, {
|
4666
|
-
"class": ['v-btn-group', {
|
4742
|
+
"class": ['v-btn-group', `v-btn-group--${props.direction}`, {
|
4667
4743
|
'v-btn-group--divided': props.divided
|
4668
4744
|
}, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class],
|
4669
4745
|
"style": props.style
|
@@ -6142,6 +6218,31 @@ const VAppBarTitle = genericComponent()({
|
|
6142
6218
|
// Utilities
|
6143
6219
|
const VAlertTitle = createSimpleFunctional('v-alert-title');
|
6144
6220
|
|
6221
|
+
// Utilities
|
6222
|
+
|
6223
|
+
// Types
|
6224
|
+
|
6225
|
+
// Types
|
6226
|
+
|
6227
|
+
// Composables
|
6228
|
+
const makeIconSizeProps = propsFactory({
|
6229
|
+
iconSize: [Number, String],
|
6230
|
+
iconSizes: {
|
6231
|
+
type: Array,
|
6232
|
+
default: () => [['x-small', 10], ['small', 16], ['default', 24], ['large', 28], ['x-large', 32]]
|
6233
|
+
}
|
6234
|
+
}, 'iconSize');
|
6235
|
+
function useIconSizes(props, fallback) {
|
6236
|
+
const iconSize = computed(() => {
|
6237
|
+
const iconSizeMap = new Map(props.iconSizes);
|
6238
|
+
const _iconSize = props.iconSize ?? fallback() ?? 'default';
|
6239
|
+
return iconSizeMap.has(_iconSize) ? iconSizeMap.get(_iconSize) : _iconSize;
|
6240
|
+
});
|
6241
|
+
return {
|
6242
|
+
iconSize
|
6243
|
+
};
|
6244
|
+
}
|
6245
|
+
|
6145
6246
|
// Types
|
6146
6247
|
|
6147
6248
|
const allowedTypes = ['success', 'info', 'warning', 'error'];
|
@@ -6181,6 +6282,7 @@ const makeVAlertProps = propsFactory({
|
|
6181
6282
|
...makeDensityProps(),
|
6182
6283
|
...makeDimensionProps(),
|
6183
6284
|
...makeElevationProps(),
|
6285
|
+
...makeIconSizeProps(),
|
6184
6286
|
...makeLocationProps(),
|
6185
6287
|
...makePositionProps(),
|
6186
6288
|
...makeRoundedProps(),
|
@@ -6208,6 +6310,9 @@ const VAlert = genericComponent()({
|
|
6208
6310
|
if (!props.type) return props.icon;
|
6209
6311
|
return props.icon ?? `$${props.type}`;
|
6210
6312
|
});
|
6313
|
+
const {
|
6314
|
+
iconSize
|
6315
|
+
} = useIconSizes(props, () => props.prominent ? 44 : 28);
|
6211
6316
|
const {
|
6212
6317
|
themeClasses
|
6213
6318
|
} = provideTheme(props);
|
@@ -6255,6 +6360,11 @@ const VAlert = genericComponent()({
|
|
6255
6360
|
const hasPrepend = !!(slots.prepend || icon.value);
|
6256
6361
|
const hasTitle = !!(slots.title || props.title);
|
6257
6362
|
const hasClose = !!(slots.close || props.closable);
|
6363
|
+
const iconProps = {
|
6364
|
+
density: props.density,
|
6365
|
+
icon: icon.value,
|
6366
|
+
size: iconSize.value
|
6367
|
+
};
|
6258
6368
|
return isActive.value && createVNode(props.tag, {
|
6259
6369
|
"class": ['v-alert', props.border && {
|
6260
6370
|
'v-alert--border': !!props.border,
|
@@ -6272,19 +6382,14 @@ const VAlert = genericComponent()({
|
|
6272
6382
|
}, null), hasPrepend && createVNode("div", {
|
6273
6383
|
"key": "prepend",
|
6274
6384
|
"class": "v-alert__prepend"
|
6275
|
-
}, [!slots.prepend ? createVNode(VIcon, {
|
6276
|
-
"key": "prepend-icon"
|
6277
|
-
|
6278
|
-
"icon": icon.value,
|
6279
|
-
"size": props.prominent ? 44 : 28
|
6280
|
-
}, null) : createVNode(VDefaultsProvider, {
|
6385
|
+
}, [!slots.prepend ? createVNode(VIcon, mergeProps({
|
6386
|
+
"key": "prepend-icon"
|
6387
|
+
}, iconProps), null) : createVNode(VDefaultsProvider, {
|
6281
6388
|
"key": "prepend-defaults",
|
6282
6389
|
"disabled": !icon.value,
|
6283
6390
|
"defaults": {
|
6284
6391
|
VIcon: {
|
6285
|
-
|
6286
|
-
icon: icon.value,
|
6287
|
-
size: props.prominent ? 44 : 28
|
6392
|
+
...iconProps
|
6288
6393
|
}
|
6289
6394
|
}
|
6290
6395
|
}, slots.prepend)]), createVNode("div", {
|
@@ -12630,7 +12735,12 @@ function useVirtual(props, items) {
|
|
12630
12735
|
}
|
12631
12736
|
function calculateOffset(index) {
|
12632
12737
|
index = clamp(index, 0, items.value.length - 1);
|
12633
|
-
|
12738
|
+
const whole = Math.floor(index);
|
12739
|
+
const fraction = index % 1;
|
12740
|
+
const next = whole + 1;
|
12741
|
+
const wholeOffset = offsets[whole] || 0;
|
12742
|
+
const nextOffset = offsets[next] || wholeOffset;
|
12743
|
+
return wholeOffset + (nextOffset - wholeOffset) * fraction;
|
12634
12744
|
}
|
12635
12745
|
function calculateIndex(scrollTop) {
|
12636
12746
|
return binaryClosest(offsets, scrollTop);
|
@@ -29233,7 +29343,7 @@ function createVuetify$1() {
|
|
29233
29343
|
};
|
29234
29344
|
});
|
29235
29345
|
}
|
29236
|
-
const version$1 = "3.8.
|
29346
|
+
const version$1 = "3.8.5-dev.2025-05-14";
|
29237
29347
|
createVuetify$1.version = version$1;
|
29238
29348
|
|
29239
29349
|
// Vue's inject() can only be used in setup
|
@@ -29258,7 +29368,7 @@ const createVuetify = function () {
|
|
29258
29368
|
...options
|
29259
29369
|
});
|
29260
29370
|
};
|
29261
|
-
const version = "3.8.
|
29371
|
+
const version = "3.8.5-dev.2025-05-14";
|
29262
29372
|
createVuetify.version = version;
|
29263
29373
|
|
29264
29374
|
export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };
|