@vuetify/nightly 3.8.6-master.2025-05-26 → 3.8.7-dev.2025-05-27
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 +24 -24
- package/dist/json/attributes.json +3294 -3218
- package/dist/json/importMap-labs.json +26 -26
- package/dist/json/importMap.json +192 -192
- package/dist/json/tags.json +19 -0
- package/dist/json/web-types.json +5776 -5504
- package/dist/vuetify-labs.cjs +305 -128
- package/dist/vuetify-labs.css +5202 -5174
- package/dist/vuetify-labs.d.ts +1580 -1351
- package/dist/vuetify-labs.esm.js +306 -129
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +305 -128
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +299 -117
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +4512 -4484
- package/dist/vuetify.d.ts +739 -518
- package/dist/vuetify.esm.js +300 -118
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +299 -117
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +1194 -1184
- 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 +15 -10
- package/lib/components/VAlert/VAlert.js.map +1 -1
- package/lib/components/VAlert/VAlert.sass +7 -1
- package/lib/components/VAutocomplete/VAutocomplete.d.ts +133 -96
- package/lib/components/VAutocomplete/VAutocomplete.js +19 -2
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- 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/VChipGroup/VChipGroup.d.ts +10 -0
- package/lib/components/VCombobox/VCombobox.d.ts +133 -96
- package/lib/components/VCombobox/VCombobox.js +20 -2
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.d.ts +18 -0
- package/lib/components/VDataTable/VDataTableHeaders.d.ts +13 -0
- package/lib/components/VDataTable/VDataTableHeaders.js +4 -2
- package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
- package/lib/components/VDataTable/VDataTableServer.d.ts +13 -0
- package/lib/components/VDataTable/VDataTableVirtual.d.ts +13 -0
- package/lib/components/VDatePicker/VDatePicker.d.ts +10 -0
- package/lib/components/VDatePicker/VDatePickerMonth.d.ts +10 -0
- package/lib/components/VDatePicker/VDatePickerMonth.js +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
- 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/VList/VListChildren.js.map +1 -1
- package/lib/components/VNumberInput/VNumberInput.d.ts +103 -89
- package/lib/components/VNumberInput/VNumberInput.js +19 -4
- package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.js +2 -1
- package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
- 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 +138 -96
- package/lib/components/VSelect/VSelect.js +21 -3
- package/lib/components/VSelect/VSelect.js.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.d.ts +10 -0
- package/lib/components/VSlideGroup/VSlideGroup.js +2 -1
- package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
- package/lib/components/VSlider/VSlider.d.ts +3 -3
- package/lib/components/VSwitch/VSwitch.d.ts +3 -3
- package/lib/components/VTabs/VTabs.d.ts +10 -0
- package/lib/components/VTextField/VTextField.d.ts +27 -27
- package/lib/components/VTextarea/VTextarea.d.ts +15 -15
- package/lib/composables/calendar.d.ts +6 -0
- package/lib/composables/calendar.js +2 -1
- package/lib/composables/calendar.js.map +1 -1
- package/lib/composables/date/DateAdapter.d.ts +1 -1
- package/lib/composables/date/DateAdapter.js.map +1 -1
- package/lib/composables/date/adapters/vuetify.d.ts +1 -1
- package/lib/composables/date/adapters/vuetify.js +4 -4
- package/lib/composables/date/adapters/vuetify.js.map +1 -1
- package/lib/composables/date/date.d.ts +1 -1
- package/lib/composables/date/index.d.ts +1 -0
- package/lib/composables/date/index.js +1 -0
- package/lib/composables/date/index.js.map +1 -1
- package/lib/composables/filter.js +3 -0
- package/lib/composables/filter.js.map +1 -1
- 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.d.ts +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/entry-bundler.js.map +1 -1
- package/lib/framework.d.ts +73 -68
- package/lib/framework.js +1 -1
- package/lib/framework.js.map +1 -1
- package/lib/labs/VCalendar/VCalendar.d.ts +10 -0
- package/lib/labs/VColorInput/VColorInput.d.ts +3 -3
- package/lib/labs/VDateInput/VDateInput.d.ts +97 -87
- package/lib/labs/VFileUpload/VFileUpload.d.ts +3 -3
- 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/entry-bundler.d.ts +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 +3 -1
package/dist/vuetify.cjs
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.8.
|
2
|
+
* Vuetify v3.8.7-dev.2025-05-27
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -14,6 +14,7 @@
|
|
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';
|
17
18
|
|
18
19
|
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
19
20
|
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
@@ -2828,6 +2829,7 @@
|
|
2828
2829
|
function genDefaults$1() {
|
2829
2830
|
return {
|
2830
2831
|
defaultTheme: 'light',
|
2832
|
+
prefix: 'v-',
|
2831
2833
|
variations: {
|
2832
2834
|
colors: [],
|
2833
2835
|
lighten: 0,
|
@@ -2909,7 +2911,10 @@
|
|
2909
2911
|
}
|
2910
2912
|
}
|
2911
2913
|
},
|
2912
|
-
stylesheetId: 'vuetify-theme-stylesheet'
|
2914
|
+
stylesheetId: 'vuetify-theme-stylesheet',
|
2915
|
+
scoped: false,
|
2916
|
+
unimportant: false,
|
2917
|
+
utilities: true
|
2913
2918
|
};
|
2914
2919
|
}
|
2915
2920
|
function parseThemeOptions() {
|
@@ -2932,21 +2937,21 @@
|
|
2932
2937
|
function createCssClass(lines, selector, content, scope) {
|
2933
2938
|
lines.push(`${getScopedSelector(selector, scope)} {\n`, ...content.map(line => ` ${line};\n`), '}\n');
|
2934
2939
|
}
|
2935
|
-
function genCssVariables(theme) {
|
2940
|
+
function genCssVariables(theme, prefix) {
|
2936
2941
|
const lightOverlay = theme.dark ? 2 : 1;
|
2937
2942
|
const darkOverlay = theme.dark ? 1 : 2;
|
2938
2943
|
const variables = [];
|
2939
2944
|
for (const [key, value] of Object.entries(theme.colors)) {
|
2940
2945
|
const rgb = parseColor(value);
|
2941
|
-
variables.push(
|
2946
|
+
variables.push(`--${prefix}theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
|
2942
2947
|
if (!key.startsWith('on-')) {
|
2943
|
-
variables.push(
|
2948
|
+
variables.push(`--${prefix}theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
|
2944
2949
|
}
|
2945
2950
|
}
|
2946
2951
|
for (const [key, value] of Object.entries(theme.variables)) {
|
2947
2952
|
const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;
|
2948
2953
|
const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
|
2949
|
-
variables.push(
|
2954
|
+
variables.push(`--${prefix}${key}: ${rgb ?? value}`);
|
2950
2955
|
}
|
2951
2956
|
return variables;
|
2952
2957
|
}
|
@@ -2990,7 +2995,8 @@
|
|
2990
2995
|
const scopeSelector = `:where(${scope})`;
|
2991
2996
|
return selector === ':root' ? scopeSelector : `${scopeSelector} ${selector}`;
|
2992
2997
|
}
|
2993
|
-
function upsertStyles(
|
2998
|
+
function upsertStyles(id, cspNonce, styles) {
|
2999
|
+
const styleEl = getOrCreateStyleElement(id, cspNonce);
|
2994
3000
|
if (!styleEl) return;
|
2995
3001
|
styleEl.innerHTML = styles;
|
2996
3002
|
}
|
@@ -3010,8 +3016,17 @@
|
|
3010
3016
|
// Composables
|
3011
3017
|
function createTheme(options) {
|
3012
3018
|
const parsedOptions = parseThemeOptions(options);
|
3013
|
-
const
|
3019
|
+
const _name = vue.shallowRef(parsedOptions.defaultTheme);
|
3014
3020
|
const themes = vue.ref(parsedOptions.themes);
|
3021
|
+
const systemName = vue.shallowRef('light');
|
3022
|
+
const name = vue.computed({
|
3023
|
+
get() {
|
3024
|
+
return _name.value === 'system' ? systemName.value : _name.value;
|
3025
|
+
},
|
3026
|
+
set(val) {
|
3027
|
+
_name.value = val;
|
3028
|
+
}
|
3029
|
+
});
|
3015
3030
|
const computedThemes = vue.computed(() => {
|
3016
3031
|
const acc = {};
|
3017
3032
|
for (const [name, original] of Object.entries(themes.value)) {
|
@@ -3032,28 +3047,49 @@
|
|
3032
3047
|
const current = vue.toRef(() => computedThemes.value[name.value]);
|
3033
3048
|
const styles = vue.computed(() => {
|
3034
3049
|
const lines = [];
|
3050
|
+
const important = parsedOptions.unimportant ? '' : ' !important';
|
3051
|
+
const scoped = parsedOptions.scoped ? parsedOptions.prefix : '';
|
3035
3052
|
if (current.value?.dark) {
|
3036
3053
|
createCssClass(lines, ':root', ['color-scheme: dark'], parsedOptions.scope);
|
3037
3054
|
}
|
3038
|
-
createCssClass(lines, ':root', genCssVariables(current.value), parsedOptions.scope);
|
3055
|
+
createCssClass(lines, ':root', genCssVariables(current.value, parsedOptions.prefix), parsedOptions.scope);
|
3039
3056
|
for (const [themeName, theme] of Object.entries(computedThemes.value)) {
|
3040
|
-
createCssClass(lines,
|
3041
|
-
}
|
3042
|
-
|
3043
|
-
|
3044
|
-
|
3045
|
-
|
3046
|
-
|
3047
|
-
|
3048
|
-
|
3049
|
-
|
3050
|
-
|
3051
|
-
|
3057
|
+
createCssClass(lines, `.${parsedOptions.prefix}theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme, parsedOptions.prefix)], parsedOptions.scope);
|
3058
|
+
}
|
3059
|
+
if (parsedOptions.utilities) {
|
3060
|
+
const bgLines = [];
|
3061
|
+
const fgLines = [];
|
3062
|
+
const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));
|
3063
|
+
for (const key of colors) {
|
3064
|
+
if (key.startsWith('on-')) {
|
3065
|
+
createCssClass(fgLines, `.${key}`, [`color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`], parsedOptions.scope);
|
3066
|
+
} else {
|
3067
|
+
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);
|
3068
|
+
createCssClass(fgLines, `.${scoped}text-${key}`, [`color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`], parsedOptions.scope);
|
3069
|
+
createCssClass(fgLines, `.${scoped}border-${key}`, [`--${parsedOptions.prefix}border-color: var(--${parsedOptions.prefix}theme-${key})`], parsedOptions.scope);
|
3070
|
+
}
|
3052
3071
|
}
|
3072
|
+
lines.push(...bgLines, ...fgLines);
|
3053
3073
|
}
|
3054
|
-
lines.push(...bgLines, ...fgLines);
|
3055
3074
|
return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
|
3056
3075
|
});
|
3076
|
+
const themeClasses = vue.toRef(() => parsedOptions.isDisabled ? undefined : `${parsedOptions.prefix}theme--${name.value}`);
|
3077
|
+
const themeNames = vue.toRef(() => Object.keys(computedThemes.value));
|
3078
|
+
if (SUPPORTS_MATCH_MEDIA) {
|
3079
|
+
const media = window.matchMedia('(prefers-color-scheme: dark)');
|
3080
|
+
function updateSystemName() {
|
3081
|
+
systemName.value = media.matches ? 'dark' : 'light';
|
3082
|
+
}
|
3083
|
+
updateSystemName();
|
3084
|
+
media.addEventListener('change', updateSystemName, {
|
3085
|
+
passive: true
|
3086
|
+
});
|
3087
|
+
if (vue.getCurrentScope()) {
|
3088
|
+
vue.onScopeDispose(() => {
|
3089
|
+
media.removeEventListener('change', updateSystemName);
|
3090
|
+
});
|
3091
|
+
}
|
3092
|
+
}
|
3057
3093
|
function install(app) {
|
3058
3094
|
if (parsedOptions.isDisabled) return;
|
3059
3095
|
const head = app._context.provides.usehead;
|
@@ -3091,22 +3127,55 @@
|
|
3091
3127
|
updateStyles();
|
3092
3128
|
}
|
3093
3129
|
function updateStyles() {
|
3094
|
-
upsertStyles(
|
3130
|
+
upsertStyles(parsedOptions.stylesheetId, parsedOptions.cspNonce, styles.value);
|
3095
3131
|
}
|
3096
3132
|
}
|
3097
3133
|
}
|
3098
|
-
|
3134
|
+
function change(themeName) {
|
3135
|
+
if (!themeNames.value.includes(themeName)) {
|
3136
|
+
consoleWarn(`Theme "${themeName}" not found on the Vuetify theme instance`);
|
3137
|
+
return;
|
3138
|
+
}
|
3139
|
+
name.value = themeName;
|
3140
|
+
}
|
3141
|
+
function cycle() {
|
3142
|
+
let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : themeNames.value;
|
3143
|
+
const currentIndex = themeArray.indexOf(name.value);
|
3144
|
+
const nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % themeArray.length;
|
3145
|
+
change(themeArray[nextIndex]);
|
3146
|
+
}
|
3147
|
+
function toggle() {
|
3148
|
+
let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['light', 'dark'];
|
3149
|
+
cycle(themeArray);
|
3150
|
+
}
|
3151
|
+
const globalName = new Proxy(name, {
|
3152
|
+
get(target, prop) {
|
3153
|
+
return target[prop];
|
3154
|
+
},
|
3155
|
+
set(target, prop, val) {
|
3156
|
+
if (prop === 'value') {
|
3157
|
+
deprecate(`theme.global.name.value = ${val}`, `theme.change('${val}')`);
|
3158
|
+
}
|
3159
|
+
// @ts-expect-error
|
3160
|
+
target[prop] = val;
|
3161
|
+
return true;
|
3162
|
+
}
|
3163
|
+
});
|
3099
3164
|
return {
|
3100
3165
|
install,
|
3166
|
+
change,
|
3167
|
+
cycle,
|
3168
|
+
toggle,
|
3101
3169
|
isDisabled: parsedOptions.isDisabled,
|
3102
3170
|
name,
|
3103
3171
|
themes,
|
3104
3172
|
current,
|
3105
3173
|
computedThemes,
|
3174
|
+
prefix: parsedOptions.prefix,
|
3106
3175
|
themeClasses,
|
3107
3176
|
styles,
|
3108
3177
|
global: {
|
3109
|
-
name,
|
3178
|
+
name: globalName,
|
3110
3179
|
current
|
3111
3180
|
}
|
3112
3181
|
};
|
@@ -3117,7 +3186,7 @@
|
|
3117
3186
|
if (!theme) throw new Error('Could not find Vuetify theme injection');
|
3118
3187
|
const name = vue.toRef(() => props.theme ?? theme.name.value);
|
3119
3188
|
const current = vue.toRef(() => theme.themes.value[name.value]);
|
3120
|
-
const themeClasses = vue.toRef(() => theme.isDisabled ? undefined :
|
3189
|
+
const themeClasses = vue.toRef(() => theme.isDisabled ? undefined : `${theme.prefix}theme--${name.value}`);
|
3121
3190
|
const newTheme = {
|
3122
3191
|
...theme,
|
3123
3192
|
name,
|
@@ -4664,9 +4733,15 @@
|
|
4664
4733
|
};
|
4665
4734
|
}
|
4666
4735
|
|
4736
|
+
// Types
|
4737
|
+
|
4667
4738
|
const makeVBtnGroupProps = propsFactory({
|
4668
4739
|
baseColor: String,
|
4669
4740
|
divided: Boolean,
|
4741
|
+
direction: {
|
4742
|
+
type: String,
|
4743
|
+
default: 'horizontal'
|
4744
|
+
},
|
4670
4745
|
...makeBorderProps(),
|
4671
4746
|
...makeComponentProps(),
|
4672
4747
|
...makeDensityProps(),
|
@@ -4700,7 +4775,7 @@
|
|
4700
4775
|
} = useRounded(props);
|
4701
4776
|
provideDefaults({
|
4702
4777
|
VBtn: {
|
4703
|
-
height: 'auto',
|
4778
|
+
height: vue.toRef(() => props.direction === 'horizontal' ? 'auto' : null),
|
4704
4779
|
baseColor: vue.toRef(() => props.baseColor),
|
4705
4780
|
color: vue.toRef(() => props.color),
|
4706
4781
|
density: vue.toRef(() => props.density),
|
@@ -4710,7 +4785,7 @@
|
|
4710
4785
|
});
|
4711
4786
|
useRender(() => {
|
4712
4787
|
return vue.createVNode(props.tag, {
|
4713
|
-
"class": vue.normalizeClass(['v-btn-group', {
|
4788
|
+
"class": vue.normalizeClass(['v-btn-group', `v-btn-group--${props.direction}`, {
|
4714
4789
|
'v-btn-group--divided': props.divided
|
4715
4790
|
}, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class]),
|
4716
4791
|
"style": vue.normalizeStyle(props.style)
|
@@ -6189,6 +6264,31 @@
|
|
6189
6264
|
// Utilities
|
6190
6265
|
const VAlertTitle = createSimpleFunctional('v-alert-title');
|
6191
6266
|
|
6267
|
+
// Utilities
|
6268
|
+
|
6269
|
+
// Types
|
6270
|
+
|
6271
|
+
// Types
|
6272
|
+
|
6273
|
+
// Composables
|
6274
|
+
const makeIconSizeProps = propsFactory({
|
6275
|
+
iconSize: [Number, String],
|
6276
|
+
iconSizes: {
|
6277
|
+
type: Array,
|
6278
|
+
default: () => [['x-small', 10], ['small', 16], ['default', 24], ['large', 28], ['x-large', 32]]
|
6279
|
+
}
|
6280
|
+
}, 'iconSize');
|
6281
|
+
function useIconSizes(props, fallback) {
|
6282
|
+
const iconSize = vue.computed(() => {
|
6283
|
+
const iconSizeMap = new Map(props.iconSizes);
|
6284
|
+
const _iconSize = props.iconSize ?? fallback() ?? 'default';
|
6285
|
+
return iconSizeMap.has(_iconSize) ? iconSizeMap.get(_iconSize) : _iconSize;
|
6286
|
+
});
|
6287
|
+
return {
|
6288
|
+
iconSize
|
6289
|
+
};
|
6290
|
+
}
|
6291
|
+
|
6192
6292
|
// Types
|
6193
6293
|
|
6194
6294
|
const allowedTypes = ['success', 'info', 'warning', 'error'];
|
@@ -6228,6 +6328,7 @@
|
|
6228
6328
|
...makeDensityProps(),
|
6229
6329
|
...makeDimensionProps(),
|
6230
6330
|
...makeElevationProps(),
|
6331
|
+
...makeIconSizeProps(),
|
6231
6332
|
...makeLocationProps(),
|
6232
6333
|
...makePositionProps(),
|
6233
6334
|
...makeRoundedProps(),
|
@@ -6255,6 +6356,9 @@
|
|
6255
6356
|
if (!props.type) return props.icon;
|
6256
6357
|
return props.icon ?? `$${props.type}`;
|
6257
6358
|
});
|
6359
|
+
const {
|
6360
|
+
iconSize
|
6361
|
+
} = useIconSizes(props, () => props.prominent ? 44 : 28);
|
6258
6362
|
const {
|
6259
6363
|
themeClasses
|
6260
6364
|
} = provideTheme(props);
|
@@ -6302,6 +6406,11 @@
|
|
6302
6406
|
const hasPrepend = !!(slots.prepend || icon.value);
|
6303
6407
|
const hasTitle = !!(slots.title || props.title);
|
6304
6408
|
const hasClose = !!(slots.close || props.closable);
|
6409
|
+
const iconProps = {
|
6410
|
+
density: props.density,
|
6411
|
+
icon: icon.value,
|
6412
|
+
size: iconSize.value
|
6413
|
+
};
|
6305
6414
|
return isActive.value && vue.createVNode(props.tag, {
|
6306
6415
|
"class": vue.normalizeClass(['v-alert', props.border && {
|
6307
6416
|
'v-alert--border': !!props.border,
|
@@ -6319,19 +6428,14 @@
|
|
6319
6428
|
}, null), hasPrepend && vue.createElementVNode("div", {
|
6320
6429
|
"key": "prepend",
|
6321
6430
|
"class": "v-alert__prepend"
|
6322
|
-
}, [!slots.prepend ? vue.createVNode(VIcon, {
|
6323
|
-
"key": "prepend-icon"
|
6324
|
-
|
6325
|
-
"icon": icon.value,
|
6326
|
-
"size": props.prominent ? 44 : 28
|
6327
|
-
}, null) : vue.createVNode(VDefaultsProvider, {
|
6431
|
+
}, [!slots.prepend ? vue.createVNode(VIcon, vue.mergeProps({
|
6432
|
+
"key": "prepend-icon"
|
6433
|
+
}, iconProps), null) : vue.createVNode(VDefaultsProvider, {
|
6328
6434
|
"key": "prepend-defaults",
|
6329
6435
|
"disabled": !icon.value,
|
6330
6436
|
"defaults": {
|
6331
6437
|
VIcon: {
|
6332
|
-
|
6333
|
-
icon: icon.value,
|
6334
|
-
size: props.prominent ? 44 : 28
|
6438
|
+
...iconProps
|
6335
6439
|
}
|
6336
6440
|
}
|
6337
6441
|
}, slots.prepend)]), vue.createElementVNode("div", {
|
@@ -7856,6 +7960,7 @@
|
|
7856
7960
|
const VSlideGroupSymbol = Symbol.for('vuetify:v-slide-group');
|
7857
7961
|
const makeVSlideGroupProps = propsFactory({
|
7858
7962
|
centerActive: Boolean,
|
7963
|
+
contentClass: null,
|
7859
7964
|
direction: {
|
7860
7965
|
type: String,
|
7861
7966
|
default: 'horizontal'
|
@@ -8168,7 +8273,7 @@
|
|
8168
8273
|
})]), vue.createElementVNode("div", {
|
8169
8274
|
"key": "container",
|
8170
8275
|
"ref": containerRef,
|
8171
|
-
"class":
|
8276
|
+
"class": vue.normalizeClass(['v-slide-group__container', props.contentClass]),
|
8172
8277
|
"onScroll": onScroll
|
8173
8278
|
}, [vue.createElementVNode("div", {
|
8174
8279
|
"ref": contentRef,
|
@@ -8530,6 +8635,68 @@
|
|
8530
8635
|
}
|
8531
8636
|
});
|
8532
8637
|
|
8638
|
+
const makeVDividerProps = propsFactory({
|
8639
|
+
color: String,
|
8640
|
+
inset: Boolean,
|
8641
|
+
length: [Number, String],
|
8642
|
+
opacity: [Number, String],
|
8643
|
+
thickness: [Number, String],
|
8644
|
+
vertical: Boolean,
|
8645
|
+
...makeComponentProps(),
|
8646
|
+
...makeThemeProps()
|
8647
|
+
}, 'VDivider');
|
8648
|
+
const VDivider = genericComponent()({
|
8649
|
+
name: 'VDivider',
|
8650
|
+
props: makeVDividerProps(),
|
8651
|
+
setup(props, _ref) {
|
8652
|
+
let {
|
8653
|
+
attrs,
|
8654
|
+
slots
|
8655
|
+
} = _ref;
|
8656
|
+
const {
|
8657
|
+
themeClasses
|
8658
|
+
} = provideTheme(props);
|
8659
|
+
const {
|
8660
|
+
textColorClasses,
|
8661
|
+
textColorStyles
|
8662
|
+
} = useTextColor(() => props.color);
|
8663
|
+
const dividerStyles = vue.computed(() => {
|
8664
|
+
const styles = {};
|
8665
|
+
if (props.length) {
|
8666
|
+
styles[props.vertical ? 'height' : 'width'] = convertToUnit(props.length);
|
8667
|
+
}
|
8668
|
+
if (props.thickness) {
|
8669
|
+
styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness);
|
8670
|
+
}
|
8671
|
+
return styles;
|
8672
|
+
});
|
8673
|
+
useRender(() => {
|
8674
|
+
const divider = vue.createElementVNode("hr", {
|
8675
|
+
"class": vue.normalizeClass([{
|
8676
|
+
'v-divider': true,
|
8677
|
+
'v-divider--inset': props.inset,
|
8678
|
+
'v-divider--vertical': props.vertical
|
8679
|
+
}, themeClasses.value, textColorClasses.value, props.class]),
|
8680
|
+
"style": vue.normalizeStyle([dividerStyles.value, textColorStyles.value, {
|
8681
|
+
'--v-border-opacity': props.opacity
|
8682
|
+
}, props.style]),
|
8683
|
+
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
8684
|
+
"role": `${attrs.role || 'separator'}`
|
8685
|
+
}, null);
|
8686
|
+
if (!slots.default) return divider;
|
8687
|
+
return vue.createElementVNode("div", {
|
8688
|
+
"class": vue.normalizeClass(['v-divider__wrapper', {
|
8689
|
+
'v-divider__wrapper--vertical': props.vertical,
|
8690
|
+
'v-divider__wrapper--inset': props.inset
|
8691
|
+
}])
|
8692
|
+
}, [divider, vue.createElementVNode("div", {
|
8693
|
+
"class": "v-divider__content"
|
8694
|
+
}, [slots.default()]), divider]);
|
8695
|
+
});
|
8696
|
+
return {};
|
8697
|
+
}
|
8698
|
+
});
|
8699
|
+
|
8533
8700
|
// Utilities
|
8534
8701
|
|
8535
8702
|
// List
|
@@ -9681,68 +9848,6 @@
|
|
9681
9848
|
}
|
9682
9849
|
});
|
9683
9850
|
|
9684
|
-
const makeVDividerProps = propsFactory({
|
9685
|
-
color: String,
|
9686
|
-
inset: Boolean,
|
9687
|
-
length: [Number, String],
|
9688
|
-
opacity: [Number, String],
|
9689
|
-
thickness: [Number, String],
|
9690
|
-
vertical: Boolean,
|
9691
|
-
...makeComponentProps(),
|
9692
|
-
...makeThemeProps()
|
9693
|
-
}, 'VDivider');
|
9694
|
-
const VDivider = genericComponent()({
|
9695
|
-
name: 'VDivider',
|
9696
|
-
props: makeVDividerProps(),
|
9697
|
-
setup(props, _ref) {
|
9698
|
-
let {
|
9699
|
-
attrs,
|
9700
|
-
slots
|
9701
|
-
} = _ref;
|
9702
|
-
const {
|
9703
|
-
themeClasses
|
9704
|
-
} = provideTheme(props);
|
9705
|
-
const {
|
9706
|
-
textColorClasses,
|
9707
|
-
textColorStyles
|
9708
|
-
} = useTextColor(() => props.color);
|
9709
|
-
const dividerStyles = vue.computed(() => {
|
9710
|
-
const styles = {};
|
9711
|
-
if (props.length) {
|
9712
|
-
styles[props.vertical ? 'height' : 'width'] = convertToUnit(props.length);
|
9713
|
-
}
|
9714
|
-
if (props.thickness) {
|
9715
|
-
styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness);
|
9716
|
-
}
|
9717
|
-
return styles;
|
9718
|
-
});
|
9719
|
-
useRender(() => {
|
9720
|
-
const divider = vue.createElementVNode("hr", {
|
9721
|
-
"class": vue.normalizeClass([{
|
9722
|
-
'v-divider': true,
|
9723
|
-
'v-divider--inset': props.inset,
|
9724
|
-
'v-divider--vertical': props.vertical
|
9725
|
-
}, themeClasses.value, textColorClasses.value, props.class]),
|
9726
|
-
"style": vue.normalizeStyle([dividerStyles.value, textColorStyles.value, {
|
9727
|
-
'--v-border-opacity': props.opacity
|
9728
|
-
}, props.style]),
|
9729
|
-
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
9730
|
-
"role": `${attrs.role || 'separator'}`
|
9731
|
-
}, null);
|
9732
|
-
if (!slots.default) return divider;
|
9733
|
-
return vue.createElementVNode("div", {
|
9734
|
-
"class": vue.normalizeClass(['v-divider__wrapper', {
|
9735
|
-
'v-divider__wrapper--vertical': props.vertical,
|
9736
|
-
'v-divider__wrapper--inset': props.inset
|
9737
|
-
}])
|
9738
|
-
}, [divider, vue.createElementVNode("div", {
|
9739
|
-
"class": "v-divider__content"
|
9740
|
-
}, [slots.default()]), divider]);
|
9741
|
-
});
|
9742
|
-
return {};
|
9743
|
-
}
|
9744
|
-
});
|
9745
|
-
|
9746
9851
|
// Types
|
9747
9852
|
|
9748
9853
|
const makeVListChildrenProps = propsFactory({
|
@@ -12670,7 +12775,12 @@
|
|
12670
12775
|
}
|
12671
12776
|
function calculateOffset(index) {
|
12672
12777
|
index = clamp(index, 0, items.value.length - 1);
|
12673
|
-
|
12778
|
+
const whole = Math.floor(index);
|
12779
|
+
const fraction = index % 1;
|
12780
|
+
const next = whole + 1;
|
12781
|
+
const wholeOffset = offsets[whole] || 0;
|
12782
|
+
const nextOffset = offsets[next] || wholeOffset;
|
12783
|
+
return wholeOffset + (nextOffset - wholeOffset) * fraction;
|
12674
12784
|
}
|
12675
12785
|
function calculateIndex(scrollTop) {
|
12676
12786
|
return binaryClosest(offsets, scrollTop);
|
@@ -13024,6 +13134,7 @@
|
|
13024
13134
|
},
|
13025
13135
|
openOnClear: Boolean,
|
13026
13136
|
itemColor: String,
|
13137
|
+
noAutoScroll: Boolean,
|
13027
13138
|
...makeItemsProps({
|
13028
13139
|
itemChildren: false
|
13029
13140
|
})
|
@@ -13238,7 +13349,7 @@
|
|
13238
13349
|
vue.watch(menu, () => {
|
13239
13350
|
if (!props.hideSelected && menu.value && model.value.length) {
|
13240
13351
|
const index = displayItems.value.findIndex(item => model.value.some(s => (props.valueComparator || deepEqual)(s.value, item.value)));
|
13241
|
-
IN_BROWSER && window.requestAnimationFrame(() => {
|
13352
|
+
IN_BROWSER && !props.noAutoScroll && window.requestAnimationFrame(() => {
|
13242
13353
|
index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
|
13243
13354
|
});
|
13244
13355
|
}
|
@@ -13330,6 +13441,22 @@
|
|
13330
13441
|
key: item.value,
|
13331
13442
|
onClick: () => select(item, null)
|
13332
13443
|
});
|
13444
|
+
if (item.raw.type === 'divider') {
|
13445
|
+
return slots.divider?.({
|
13446
|
+
props: item.raw,
|
13447
|
+
index
|
13448
|
+
}) ?? vue.createVNode(VDivider, vue.mergeProps(item.props, {
|
13449
|
+
"key": `divider-${index}`
|
13450
|
+
}), null);
|
13451
|
+
}
|
13452
|
+
if (item.raw.type === 'subheader') {
|
13453
|
+
return slots.subheader?.({
|
13454
|
+
props: item.raw,
|
13455
|
+
index
|
13456
|
+
}) ?? vue.createVNode(VListSubheader, vue.mergeProps(item.props, {
|
13457
|
+
"key": `subheader-${index}`
|
13458
|
+
}), null);
|
13459
|
+
}
|
13333
13460
|
return slots.item?.({
|
13334
13461
|
item,
|
13335
13462
|
index,
|
@@ -13490,6 +13617,9 @@
|
|
13490
13617
|
let match = -1;
|
13491
13618
|
if ((query || customFiltersLength > 0) && !options?.noFilter) {
|
13492
13619
|
if (typeof item === 'object') {
|
13620
|
+
if (['divider', 'subheader'].includes(item.raw?.type)) {
|
13621
|
+
continue;
|
13622
|
+
}
|
13493
13623
|
const filterKeys = keys || Object.keys(transformed);
|
13494
13624
|
for (const key of filterKeys) {
|
13495
13625
|
const value = getPropertyFromItem(transformed, key);
|
@@ -13928,6 +14058,22 @@
|
|
13928
14058
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
13929
14059
|
onClick: () => select(item, null)
|
13930
14060
|
});
|
14061
|
+
if (item.raw.type === 'divider') {
|
14062
|
+
return slots.divider?.({
|
14063
|
+
props: item.raw,
|
14064
|
+
index
|
14065
|
+
}) ?? vue.createVNode(VDivider, vue.mergeProps(item.props, {
|
14066
|
+
"key": `divider-${index}`
|
14067
|
+
}), null);
|
14068
|
+
}
|
14069
|
+
if (item.raw.type === 'subheader') {
|
14070
|
+
return slots.subheader?.({
|
14071
|
+
props: item.raw,
|
14072
|
+
index
|
14073
|
+
}) ?? vue.createVNode(VListSubheader, vue.mergeProps(item.props, {
|
14074
|
+
"key": `subheader-${index}`
|
14075
|
+
}), null);
|
14076
|
+
}
|
13931
14077
|
return slots.item?.({
|
13932
14078
|
item,
|
13933
14079
|
index,
|
@@ -17523,13 +17669,13 @@
|
|
17523
17669
|
return null;
|
17524
17670
|
}
|
17525
17671
|
const sundayJanuarySecond2000 = new Date(2000, 0, 2);
|
17526
|
-
function getWeekdays(locale, firstDayOfWeek) {
|
17672
|
+
function getWeekdays(locale, firstDayOfWeek, weekdayFormat) {
|
17527
17673
|
const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
|
17528
17674
|
return createRange(7).map(i => {
|
17529
17675
|
const weekday = new Date(sundayJanuarySecond2000);
|
17530
17676
|
weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
|
17531
17677
|
return new Intl.DateTimeFormat(locale, {
|
17532
|
-
weekday: 'narrow'
|
17678
|
+
weekday: weekdayFormat ?? 'narrow'
|
17533
17679
|
}).format(weekday);
|
17534
17680
|
});
|
17535
17681
|
}
|
@@ -17993,9 +18139,9 @@
|
|
17993
18139
|
getDiff(date, comparing, unit) {
|
17994
18140
|
return getDiff(date, comparing, unit);
|
17995
18141
|
}
|
17996
|
-
getWeekdays(firstDayOfWeek) {
|
18142
|
+
getWeekdays(firstDayOfWeek, weekdayFormat) {
|
17997
18143
|
const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
|
17998
|
-
return getWeekdays(this.locale, firstDay);
|
18144
|
+
return getWeekdays(this.locale, firstDay, weekdayFormat);
|
17999
18145
|
}
|
18000
18146
|
getYear(date) {
|
18001
18147
|
return getYear(date);
|
@@ -18338,6 +18484,7 @@
|
|
18338
18484
|
_search.value = val ?? '';
|
18339
18485
|
if (!props.multiple && !hasSelectionSlot.value) {
|
18340
18486
|
model.value = [transformItem$3(props, val)];
|
18487
|
+
vue.nextTick(() => vVirtualScrollRef.value?.scrollToIndex(0));
|
18341
18488
|
}
|
18342
18489
|
if (val && props.multiple && props.delimiters?.length) {
|
18343
18490
|
const values = val.split(new RegExp(`(?:${props.delimiters.join('|')})+`));
|
@@ -18654,6 +18801,22 @@
|
|
18654
18801
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
18655
18802
|
onClick: () => select(item, null)
|
18656
18803
|
});
|
18804
|
+
if (item.raw.type === 'divider') {
|
18805
|
+
return slots.divider?.({
|
18806
|
+
props: item.raw,
|
18807
|
+
index
|
18808
|
+
}) ?? vue.createVNode(VDivider, vue.mergeProps(item.props, {
|
18809
|
+
"key": `divider-${index}`
|
18810
|
+
}), null);
|
18811
|
+
}
|
18812
|
+
if (item.raw.type === 'subheader') {
|
18813
|
+
return slots.subheader?.({
|
18814
|
+
props: item.raw,
|
18815
|
+
index
|
18816
|
+
}) ?? vue.createVNode(VListSubheader, vue.mergeProps(item.props, {
|
18817
|
+
"key": `subheader-${index}`
|
18818
|
+
}), null);
|
18819
|
+
}
|
18657
18820
|
return slots.item?.({
|
18658
18821
|
item,
|
18659
18822
|
index,
|
@@ -20533,6 +20696,7 @@
|
|
20533
20696
|
color: String,
|
20534
20697
|
disableSort: Boolean,
|
20535
20698
|
fixedHeader: Boolean,
|
20699
|
+
lastFixed: Boolean,
|
20536
20700
|
multiSort: Boolean,
|
20537
20701
|
sortAscIcon: {
|
20538
20702
|
type: IconValue,
|
@@ -20579,10 +20743,11 @@
|
|
20579
20743
|
loaderClasses
|
20580
20744
|
} = useLoader(props);
|
20581
20745
|
function getFixedStyles(column, y) {
|
20582
|
-
if (!(props.sticky || props.fixedHeader) && !column.fixed) return undefined;
|
20746
|
+
if (!(props.sticky || props.fixedHeader) && !(column.fixed || column.lastFixed)) return undefined;
|
20583
20747
|
return {
|
20584
20748
|
position: 'sticky',
|
20585
|
-
left: column.fixed ? convertToUnit(column.fixedOffset) : undefined,
|
20749
|
+
left: column.fixed || column.lastFixed ? convertToUnit(column.fixedOffset) : undefined,
|
20750
|
+
right: column.lastFixed ? convertToUnit(column.fixedOffset ?? 0) : undefined,
|
20586
20751
|
top: props.sticky || props.fixedHeader ? `calc(var(--v-table-header-height) * ${y})` : undefined
|
20587
20752
|
};
|
20588
20753
|
}
|
@@ -22297,7 +22462,8 @@
|
|
22297
22462
|
firstDayOfWeek: {
|
22298
22463
|
type: [Number, String],
|
22299
22464
|
default: undefined
|
22300
|
-
}
|
22465
|
+
},
|
22466
|
+
weekdayFormat: String
|
22301
22467
|
}, 'calendar');
|
22302
22468
|
function useCalendar(props) {
|
22303
22469
|
const adapter = useDate();
|
@@ -22545,7 +22711,7 @@
|
|
22545
22711
|
"ref": daysRef,
|
22546
22712
|
"key": daysInMonth.value[0].date?.toString(),
|
22547
22713
|
"class": "v-date-picker-month__days"
|
22548
|
-
}, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => vue.createElementVNode("div", {
|
22714
|
+
}, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek, props.weekdayFormat).map(weekDay => vue.createElementVNode("div", {
|
22549
22715
|
"class": ['v-date-picker-month__day', 'v-date-picker-month__weekday']
|
22550
22716
|
}, [weekDay])), daysInMonth.value.map((item, i) => {
|
22551
22717
|
const slotProps = {
|
@@ -25076,6 +25242,10 @@
|
|
25076
25242
|
type: Number,
|
25077
25243
|
default: 0
|
25078
25244
|
},
|
25245
|
+
minFractionDigits: {
|
25246
|
+
type: Number,
|
25247
|
+
default: null
|
25248
|
+
},
|
25079
25249
|
...omit(makeVTextFieldProps(), ['modelValue', 'validationValue'])
|
25080
25250
|
}, 'VNumberInput');
|
25081
25251
|
const VNumberInput = genericComponent()({
|
@@ -25106,9 +25276,19 @@
|
|
25106
25276
|
} = useFocus(props);
|
25107
25277
|
function correctPrecision(val) {
|
25108
25278
|
let precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.precision;
|
25109
|
-
|
25110
|
-
|
25111
|
-
|
25279
|
+
if (precision == null) {
|
25280
|
+
return String(val);
|
25281
|
+
}
|
25282
|
+
let fixed = val.toFixed(precision);
|
25283
|
+
if (isFocused.value) {
|
25284
|
+
return Number(fixed).toString(); // trim zeros
|
25285
|
+
}
|
25286
|
+
if ((props.minFractionDigits ?? precision) < precision) {
|
25287
|
+
const trimLimit = precision - props.minFractionDigits;
|
25288
|
+
const [baseDigits, fractionDigits] = fixed.split('.');
|
25289
|
+
fixed = [baseDigits, fractionDigits.replace(new RegExp(`0{1,${trimLimit}}$`), '')].filter(Boolean).join('.');
|
25290
|
+
}
|
25291
|
+
return fixed;
|
25112
25292
|
}
|
25113
25293
|
const model = useProxiedModel(props, 'modelValue', null, val => val ?? null, val => val == null ? val ?? null : clamp(Number(val), props.min, props.max));
|
25114
25294
|
const _inputText = vue.shallowRef(null);
|
@@ -25167,6 +25347,7 @@
|
|
25167
25347
|
}
|
25168
25348
|
};
|
25169
25349
|
vue.watch(() => props.precision, () => formatInputValue());
|
25350
|
+
vue.watch(() => props.minFractionDigits, () => formatInputValue());
|
25170
25351
|
vue.onMounted(() => {
|
25171
25352
|
clampModel();
|
25172
25353
|
});
|
@@ -25276,7 +25457,7 @@
|
|
25276
25457
|
inputText.value = null;
|
25277
25458
|
return;
|
25278
25459
|
}
|
25279
|
-
inputText.value =
|
25460
|
+
inputText.value = correctPrecision(model.value);
|
25280
25461
|
}
|
25281
25462
|
function trimDecimalZeros() {
|
25282
25463
|
if (controlsDisabled.value) return;
|
@@ -25536,9 +25717,10 @@
|
|
25536
25717
|
e.preventDefault();
|
25537
25718
|
e.stopPropagation();
|
25538
25719
|
const clipboardText = e?.clipboardData?.getData('Text').slice(0, length.value) ?? '';
|
25720
|
+
const finalIndex = clipboardText.length - 1 === -1 ? index : clipboardText.length - 1;
|
25539
25721
|
if (isValidNumber(clipboardText)) return;
|
25540
25722
|
model.value = clipboardText.split('');
|
25541
|
-
inputRef.value?.[
|
25723
|
+
inputRef.value?.[finalIndex].focus();
|
25542
25724
|
}
|
25543
25725
|
function reset() {
|
25544
25726
|
model.value = [];
|
@@ -29320,7 +29502,7 @@
|
|
29320
29502
|
};
|
29321
29503
|
});
|
29322
29504
|
}
|
29323
|
-
const version$1 = "3.8.
|
29505
|
+
const version$1 = "3.8.7-dev.2025-05-27";
|
29324
29506
|
createVuetify$1.version = version$1;
|
29325
29507
|
|
29326
29508
|
// Vue's inject() can only be used in setup
|
@@ -29345,7 +29527,7 @@
|
|
29345
29527
|
...options
|
29346
29528
|
});
|
29347
29529
|
};
|
29348
|
-
const version = "3.8.
|
29530
|
+
const version = "3.8.7-dev.2025-05-27";
|
29349
29531
|
createVuetify.version = version;
|
29350
29532
|
|
29351
29533
|
exports.blueprints = index;
|