@vuetify/nightly 3.8.8-dev.2025-06-04 → 3.8.8-master.2025-06-06
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 +5 -37
- package/dist/json/attributes.json +3519 -3619
- package/dist/json/importMap-labs.json +20 -20
- package/dist/json/importMap.json +148 -148
- package/dist/json/tags.json +0 -25
- package/dist/json/web-types.json +6117 -6449
- package/dist/vuetify-labs.cjs +144 -354
- package/dist/vuetify-labs.css +5834 -5868
- package/dist/vuetify-labs.d.ts +1899 -2397
- package/dist/vuetify-labs.esm.js +145 -355
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +144 -354
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +133 -348
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +4252 -4286
- package/dist/vuetify.d.ts +1094 -1552
- package/dist/vuetify.esm.js +134 -349
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +133 -348
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +1207 -1222
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.css +1 -6
- package/lib/components/VAlert/VAlert.d.ts +0 -35
- package/lib/components/VAlert/VAlert.js +10 -15
- package/lib/components/VAlert/VAlert.js.map +1 -1
- package/lib/components/VAlert/VAlert.sass +1 -7
- package/lib/components/VAppBar/VAppBar.d.ts +3 -15
- package/lib/components/VAppBar/VAppBarNavIcon.d.ts +10 -20
- package/lib/components/VAutocomplete/VAutocomplete.d.ts +103 -154
- package/lib/components/VAutocomplete/VAutocomplete.js +3 -21
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VBtn/VBtn.d.ts +10 -20
- 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/VCard/VCard.d.ts +10 -20
- package/lib/components/VCheckbox/VCheckbox.d.ts +13 -23
- package/lib/components/VCheckbox/VCheckboxBtn.d.ts +10 -20
- package/lib/components/VChip/VChip.d.ts +10 -20
- package/lib/components/VChipGroup/VChipGroup.d.ts +0 -10
- package/lib/components/VCombobox/VCombobox.d.ts +103 -154
- package/lib/components/VCombobox/VCombobox.js +3 -22
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.d.ts +0 -60
- package/lib/components/VDataTable/VDataTableHeaders.d.ts +0 -13
- package/lib/components/VDataTable/VDataTableHeaders.js +2 -4
- package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
- package/lib/components/VDataTable/VDataTableServer.d.ts +0 -42
- package/lib/components/VDataTable/VDataTableVirtual.d.ts +0 -42
- package/lib/components/VDatePicker/VDatePicker.d.ts +0 -10
- package/lib/components/VDatePicker/VDatePickerMonth.d.ts +0 -10
- package/lib/components/VDatePicker/VDatePickerMonth.js +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.d.ts +10 -20
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.d.ts +10 -20
- package/lib/components/VExpansionPanel/VExpansionPanels.d.ts +10 -20
- package/lib/components/VFab/VFab.d.ts +10 -20
- 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/VList.d.ts +0 -13
- package/lib/components/VList/VList.js +1 -4
- package/lib/components/VList/VList.js.map +1 -1
- package/lib/components/VList/VListChildren.js.map +1 -1
- package/lib/components/VList/VListItem.d.ts +10 -23
- package/lib/components/VList/VListItem.js +3 -7
- package/lib/components/VList/VListItem.js.map +1 -1
- package/lib/components/VList/list.d.ts +2 -9
- package/lib/components/VList/list.js +0 -7
- package/lib/components/VList/list.js.map +1 -1
- package/lib/components/VNumberInput/VNumberInput.d.ts +89 -103
- package/lib/components/VNumberInput/VNumberInput.js +4 -19
- package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.js +1 -2
- 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/VRadio/VRadio.d.ts +10 -20
- package/lib/components/VRadioGroup/VRadioGroup.d.ts +13 -23
- package/lib/components/VRangeSlider/VRangeSlider.d.ts +3 -3
- package/lib/components/VSelect/VSelect.d.ts +107 -171
- package/lib/components/VSelect/VSelect.js +3 -21
- package/lib/components/VSelect/VSelect.js.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.d.ts +10 -20
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.d.ts +14 -28
- package/lib/components/VSlideGroup/VSlideGroup.d.ts +0 -10
- package/lib/components/VSlideGroup/VSlideGroup.js +1 -2
- package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
- package/lib/components/VSlider/VSlider.d.ts +3 -3
- package/lib/components/VSlider/VSliderThumb.d.ts +10 -20
- package/lib/components/VStepper/VStepperItem.d.ts +14 -28
- package/lib/components/VSwitch/VSwitch.d.ts +13 -23
- package/lib/components/VTable/VTable.css +0 -6
- package/lib/components/VTable/VTable.d.ts +24 -55
- package/lib/components/VTable/VTable.js +2 -9
- package/lib/components/VTable/VTable.js.map +1 -1
- package/lib/components/VTable/VTable.sass +0 -14
- package/lib/components/VTable/_variables.scss +0 -1
- package/lib/components/VTabs/VTab.d.ts +28 -56
- package/lib/components/VTabs/VTabs.d.ts +0 -10
- package/lib/components/VTextField/VTextField.d.ts +27 -27
- package/lib/components/VTextarea/VTextarea.d.ts +15 -15
- package/lib/components/VToolbar/VToolbar.d.ts +3 -15
- package/lib/components/VToolbar/VToolbar.js +3 -6
- package/lib/components/VToolbar/VToolbar.js.map +1 -1
- package/lib/composables/calendar.d.ts +0 -6
- package/lib/composables/calendar.js +1 -2
- package/lib/composables/calendar.js.map +1 -1
- package/lib/composables/date/DateAdapter.d.ts +3 -3
- 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 +3 -3
- package/lib/composables/date/index.d.ts +0 -1
- package/lib/composables/date/index.js +0 -1
- package/lib/composables/date/index.js.map +1 -1
- package/lib/composables/filter.js +0 -3
- package/lib/composables/filter.js.map +1 -1
- package/lib/composables/icons.d.ts +6 -0
- package/lib/composables/icons.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/directives/ripple/index.d.ts +1 -2
- package/lib/directives/ripple/index.js +7 -12
- package/lib/directives/ripple/index.js.map +1 -1
- package/lib/entry-bundler.d.ts +3 -3
- package/lib/entry-bundler.js +1 -1
- package/lib/entry-bundler.js.map +1 -1
- package/lib/framework.d.ts +68 -77
- package/lib/framework.js +1 -1
- package/lib/framework.js.map +1 -1
- package/lib/iconsets/fa.js +3 -1
- package/lib/iconsets/fa.js.map +1 -1
- package/lib/iconsets/fa4.js +3 -1
- package/lib/iconsets/fa4.js.map +1 -1
- package/lib/iconsets/md.js +3 -1
- package/lib/iconsets/md.js.map +1 -1
- package/lib/iconsets/mdi-svg.js +3 -1
- package/lib/iconsets/mdi-svg.js.map +1 -1
- package/lib/labs/VCalendar/VCalendar.d.ts +0 -10
- package/lib/labs/VColorInput/VColorInput.d.ts +3 -3
- package/lib/labs/VDateInput/VDateInput.d.ts +87 -97
- package/lib/labs/VFileUpload/VFileUpload.d.ts +3 -3
- package/lib/labs/VFileUpload/VFileUploadItem.d.ts +10 -20
- package/lib/labs/VIconBtn/VIconBtn.d.ts +29 -29
- package/lib/labs/VIconBtn/VIconBtn.js +11 -7
- package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
- package/lib/labs/VStepperVertical/VStepperVertical.d.ts +10 -20
- package/lib/labs/VStepperVertical/VStepperVerticalItem.d.ts +10 -20
- package/lib/labs/VTreeview/VTreeview.d.ts +0 -13
- package/lib/labs/VTreeview/VTreeviewItem.d.ts +10 -20
- package/lib/labs/entry-bundler.d.ts +3 -3
- 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 -3
- package/lib/composables/date/adapters/string.d.ts +0 -54
- package/lib/composables/date/adapters/string.js +0 -153
- package/lib/composables/date/adapters/string.js.map +0 -1
- package/lib/composables/iconSizes.d.ts +0 -28
- package/lib/composables/iconSizes.js +0 -23
- package/lib/composables/iconSizes.js.map +0 -1
package/dist/vuetify.esm.js
CHANGED
@@ -1,16 +1,15 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.8.8-
|
2
|
+
* Vuetify v3.8.8-master.2025-06-06
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
6
6
|
|
7
|
-
import { shallowRef, reactive, watchEffect, toRef, capitalize, camelize, unref, Fragment, isVNode, Comment, warn, getCurrentInstance as getCurrentInstance$1, ref, computed, provide, inject as inject$1, defineComponent as defineComponent$1, h, createVNode, mergeProps, createElementVNode, normalizeClass, toValue, onBeforeUnmount, watch, readonly, onMounted, useId, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw,
|
7
|
+
import { shallowRef, reactive, watchEffect, toRef, capitalize, camelize, unref, Fragment, isVNode, Comment, warn, getCurrentInstance as getCurrentInstance$1, ref, computed, provide, inject as inject$1, defineComponent as defineComponent$1, h, createVNode, mergeProps, createElementVNode, normalizeClass, toValue, onBeforeUnmount, watch, readonly, onMounted, useId, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, normalizeStyle, TransitionGroup, Transition, toRefs, isRef, onBeforeMount, nextTick, withDirectives, vShow, onUpdated, Text, resolveDynamicComponent, toDisplayString, markRaw, Teleport, cloneVNode, createTextVNode, normalizeProps, guardReactiveProps, 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"); }
|
@@ -2833,7 +2832,6 @@ const makeThemeProps = propsFactory({
|
|
2833
2832
|
function genDefaults$1() {
|
2834
2833
|
return {
|
2835
2834
|
defaultTheme: 'light',
|
2836
|
-
prefix: 'v-',
|
2837
2835
|
variations: {
|
2838
2836
|
colors: [],
|
2839
2837
|
lighten: 0,
|
@@ -2915,10 +2913,7 @@ function genDefaults$1() {
|
|
2915
2913
|
}
|
2916
2914
|
}
|
2917
2915
|
},
|
2918
|
-
stylesheetId: 'vuetify-theme-stylesheet'
|
2919
|
-
scoped: false,
|
2920
|
-
unimportant: false,
|
2921
|
-
utilities: true
|
2916
|
+
stylesheetId: 'vuetify-theme-stylesheet'
|
2922
2917
|
};
|
2923
2918
|
}
|
2924
2919
|
function parseThemeOptions() {
|
@@ -2941,21 +2936,21 @@ function parseThemeOptions() {
|
|
2941
2936
|
function createCssClass(lines, selector, content, scope) {
|
2942
2937
|
lines.push(`${getScopedSelector(selector, scope)} {\n`, ...content.map(line => ` ${line};\n`), '}\n');
|
2943
2938
|
}
|
2944
|
-
function genCssVariables(theme
|
2939
|
+
function genCssVariables(theme) {
|
2945
2940
|
const lightOverlay = theme.dark ? 2 : 1;
|
2946
2941
|
const darkOverlay = theme.dark ? 1 : 2;
|
2947
2942
|
const variables = [];
|
2948
2943
|
for (const [key, value] of Object.entries(theme.colors)) {
|
2949
2944
|
const rgb = parseColor(value);
|
2950
|
-
variables.push(
|
2945
|
+
variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
|
2951
2946
|
if (!key.startsWith('on-')) {
|
2952
|
-
variables.push(
|
2947
|
+
variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
|
2953
2948
|
}
|
2954
2949
|
}
|
2955
2950
|
for (const [key, value] of Object.entries(theme.variables)) {
|
2956
2951
|
const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;
|
2957
2952
|
const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
|
2958
|
-
variables.push(
|
2953
|
+
variables.push(`--v-${key}: ${rgb ?? value}`);
|
2959
2954
|
}
|
2960
2955
|
return variables;
|
2961
2956
|
}
|
@@ -2999,8 +2994,7 @@ function getScopedSelector(selector, scope) {
|
|
2999
2994
|
const scopeSelector = `:where(${scope})`;
|
3000
2995
|
return selector === ':root' ? scopeSelector : `${scopeSelector} ${selector}`;
|
3001
2996
|
}
|
3002
|
-
function upsertStyles(
|
3003
|
-
const styleEl = getOrCreateStyleElement(id, cspNonce);
|
2997
|
+
function upsertStyles(styleEl, styles) {
|
3004
2998
|
if (!styleEl) return;
|
3005
2999
|
styleEl.innerHTML = styles;
|
3006
3000
|
}
|
@@ -3020,17 +3014,8 @@ function getOrCreateStyleElement(id, cspNonce) {
|
|
3020
3014
|
// Composables
|
3021
3015
|
function createTheme(options) {
|
3022
3016
|
const parsedOptions = parseThemeOptions(options);
|
3023
|
-
const
|
3017
|
+
const name = shallowRef(parsedOptions.defaultTheme);
|
3024
3018
|
const themes = ref(parsedOptions.themes);
|
3025
|
-
const systemName = shallowRef('light');
|
3026
|
-
const name = computed({
|
3027
|
-
get() {
|
3028
|
-
return _name.value === 'system' ? systemName.value : _name.value;
|
3029
|
-
},
|
3030
|
-
set(val) {
|
3031
|
-
_name.value = val;
|
3032
|
-
}
|
3033
|
-
});
|
3034
3019
|
const computedThemes = computed(() => {
|
3035
3020
|
const acc = {};
|
3036
3021
|
for (const [name, original] of Object.entries(themes.value)) {
|
@@ -3051,49 +3036,28 @@ function createTheme(options) {
|
|
3051
3036
|
const current = toRef(() => computedThemes.value[name.value]);
|
3052
3037
|
const styles = computed(() => {
|
3053
3038
|
const lines = [];
|
3054
|
-
const important = parsedOptions.unimportant ? '' : ' !important';
|
3055
|
-
const scoped = parsedOptions.scoped ? parsedOptions.prefix : '';
|
3056
3039
|
if (current.value?.dark) {
|
3057
3040
|
createCssClass(lines, ':root', ['color-scheme: dark'], parsedOptions.scope);
|
3058
3041
|
}
|
3059
|
-
createCssClass(lines, ':root', genCssVariables(current.value
|
3042
|
+
createCssClass(lines, ':root', genCssVariables(current.value), parsedOptions.scope);
|
3060
3043
|
for (const [themeName, theme] of Object.entries(computedThemes.value)) {
|
3061
|
-
createCssClass(lines,
|
3062
|
-
}
|
3063
|
-
|
3064
|
-
|
3065
|
-
|
3066
|
-
|
3067
|
-
|
3068
|
-
|
3069
|
-
|
3070
|
-
}
|
3071
|
-
|
3072
|
-
|
3073
|
-
createCssClass(fgLines, `.${scoped}border-${key}`, [`--${parsedOptions.prefix}border-color: var(--${parsedOptions.prefix}theme-${key})`], parsedOptions.scope);
|
3074
|
-
}
|
3044
|
+
createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme)], parsedOptions.scope);
|
3045
|
+
}
|
3046
|
+
const bgLines = [];
|
3047
|
+
const fgLines = [];
|
3048
|
+
const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));
|
3049
|
+
for (const key of colors) {
|
3050
|
+
if (key.startsWith('on-')) {
|
3051
|
+
createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`], parsedOptions.scope);
|
3052
|
+
} else {
|
3053
|
+
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);
|
3054
|
+
createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`], parsedOptions.scope);
|
3055
|
+
createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`], parsedOptions.scope);
|
3075
3056
|
}
|
3076
|
-
lines.push(...bgLines, ...fgLines);
|
3077
3057
|
}
|
3058
|
+
lines.push(...bgLines, ...fgLines);
|
3078
3059
|
return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
|
3079
3060
|
});
|
3080
|
-
const themeClasses = toRef(() => parsedOptions.isDisabled ? undefined : `${parsedOptions.prefix}theme--${name.value}`);
|
3081
|
-
const themeNames = toRef(() => Object.keys(computedThemes.value));
|
3082
|
-
if (SUPPORTS_MATCH_MEDIA) {
|
3083
|
-
const media = window.matchMedia('(prefers-color-scheme: dark)');
|
3084
|
-
function updateSystemName() {
|
3085
|
-
systemName.value = media.matches ? 'dark' : 'light';
|
3086
|
-
}
|
3087
|
-
updateSystemName();
|
3088
|
-
media.addEventListener('change', updateSystemName, {
|
3089
|
-
passive: true
|
3090
|
-
});
|
3091
|
-
if (getCurrentScope()) {
|
3092
|
-
onScopeDispose(() => {
|
3093
|
-
media.removeEventListener('change', updateSystemName);
|
3094
|
-
});
|
3095
|
-
}
|
3096
|
-
}
|
3097
3061
|
function install(app) {
|
3098
3062
|
if (parsedOptions.isDisabled) return;
|
3099
3063
|
const head = app._context.provides.usehead;
|
@@ -3131,55 +3095,22 @@ function createTheme(options) {
|
|
3131
3095
|
updateStyles();
|
3132
3096
|
}
|
3133
3097
|
function updateStyles() {
|
3134
|
-
upsertStyles(parsedOptions.stylesheetId, parsedOptions.cspNonce, styles.value);
|
3098
|
+
upsertStyles(getOrCreateStyleElement(parsedOptions.stylesheetId, parsedOptions.cspNonce), styles.value);
|
3135
3099
|
}
|
3136
3100
|
}
|
3137
3101
|
}
|
3138
|
-
|
3139
|
-
if (!themeNames.value.includes(themeName)) {
|
3140
|
-
consoleWarn(`Theme "${themeName}" not found on the Vuetify theme instance`);
|
3141
|
-
return;
|
3142
|
-
}
|
3143
|
-
name.value = themeName;
|
3144
|
-
}
|
3145
|
-
function cycle() {
|
3146
|
-
let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : themeNames.value;
|
3147
|
-
const currentIndex = themeArray.indexOf(name.value);
|
3148
|
-
const nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % themeArray.length;
|
3149
|
-
change(themeArray[nextIndex]);
|
3150
|
-
}
|
3151
|
-
function toggle() {
|
3152
|
-
let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['light', 'dark'];
|
3153
|
-
cycle(themeArray);
|
3154
|
-
}
|
3155
|
-
const globalName = new Proxy(name, {
|
3156
|
-
get(target, prop) {
|
3157
|
-
return target[prop];
|
3158
|
-
},
|
3159
|
-
set(target, prop, val) {
|
3160
|
-
if (prop === 'value') {
|
3161
|
-
deprecate(`theme.global.name.value = ${val}`, `theme.change('${val}')`);
|
3162
|
-
}
|
3163
|
-
// @ts-expect-error
|
3164
|
-
target[prop] = val;
|
3165
|
-
return true;
|
3166
|
-
}
|
3167
|
-
});
|
3102
|
+
const themeClasses = toRef(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`);
|
3168
3103
|
return {
|
3169
3104
|
install,
|
3170
|
-
change,
|
3171
|
-
cycle,
|
3172
|
-
toggle,
|
3173
3105
|
isDisabled: parsedOptions.isDisabled,
|
3174
3106
|
name,
|
3175
3107
|
themes,
|
3176
3108
|
current,
|
3177
3109
|
computedThemes,
|
3178
|
-
prefix: parsedOptions.prefix,
|
3179
3110
|
themeClasses,
|
3180
3111
|
styles,
|
3181
3112
|
global: {
|
3182
|
-
name
|
3113
|
+
name,
|
3183
3114
|
current
|
3184
3115
|
}
|
3185
3116
|
};
|
@@ -3190,7 +3121,7 @@ function provideTheme(props) {
|
|
3190
3121
|
if (!theme) throw new Error('Could not find Vuetify theme injection');
|
3191
3122
|
const name = toRef(() => props.theme ?? theme.name.value);
|
3192
3123
|
const current = toRef(() => theme.themes.value[name.value]);
|
3193
|
-
const themeClasses = toRef(() => theme.isDisabled ? undefined :
|
3124
|
+
const themeClasses = toRef(() => theme.isDisabled ? undefined : `v-theme--${name.value}`);
|
3194
3125
|
const newTheme = {
|
3195
3126
|
...theme,
|
3196
3127
|
name,
|
@@ -4294,10 +4225,7 @@ const makeVToolbarProps = propsFactory({
|
|
4294
4225
|
default: 'default',
|
4295
4226
|
validator: v => allowedDensities$1.includes(v)
|
4296
4227
|
},
|
4297
|
-
extended:
|
4298
|
-
type: Boolean,
|
4299
|
-
default: null
|
4300
|
-
},
|
4228
|
+
extended: Boolean,
|
4301
4229
|
extensionHeight: {
|
4302
4230
|
type: [Number, String],
|
4303
4231
|
default: 48
|
@@ -4345,7 +4273,7 @@ const VToolbar = genericComponent()({
|
|
4345
4273
|
const {
|
4346
4274
|
rtlClasses
|
4347
4275
|
} = useRtl();
|
4348
|
-
const isExtended = shallowRef(props.extended
|
4276
|
+
const isExtended = shallowRef(!!(props.extended || slots.extension?.()));
|
4349
4277
|
const contentHeight = computed(() => parseInt(Number(props.height) + (props.density === 'prominent' ? Number(props.height) : 0) - (props.density === 'comfortable' ? 8 : 0) - (props.density === 'compact' ? 16 : 0), 10));
|
4350
4278
|
const extensionHeight = computed(() => isExtended.value ? parseInt(Number(props.extensionHeight) + (props.density === 'prominent' ? Number(props.extensionHeight) : 0) - (props.density === 'comfortable' ? 4 : 0) - (props.density === 'compact' ? 8 : 0), 10) : 0);
|
4351
4279
|
provideDefaults({
|
@@ -4357,7 +4285,7 @@ const VToolbar = genericComponent()({
|
|
4357
4285
|
const hasTitle = !!(props.title || slots.title);
|
4358
4286
|
const hasImage = !!(slots.image || props.image);
|
4359
4287
|
const extension = slots.extension?.();
|
4360
|
-
isExtended.value = props.extended
|
4288
|
+
isExtended.value = !!(props.extended || extension);
|
4361
4289
|
return createVNode(props.tag, {
|
4362
4290
|
"class": normalizeClass(['v-toolbar', {
|
4363
4291
|
'v-toolbar--absolute': props.absolute,
|
@@ -4740,15 +4668,9 @@ function useVariant(props) {
|
|
4740
4668
|
};
|
4741
4669
|
}
|
4742
4670
|
|
4743
|
-
// Types
|
4744
|
-
|
4745
4671
|
const makeVBtnGroupProps = propsFactory({
|
4746
4672
|
baseColor: String,
|
4747
4673
|
divided: Boolean,
|
4748
|
-
direction: {
|
4749
|
-
type: String,
|
4750
|
-
default: 'horizontal'
|
4751
|
-
},
|
4752
4674
|
...makeBorderProps(),
|
4753
4675
|
...makeComponentProps(),
|
4754
4676
|
...makeDensityProps(),
|
@@ -4782,7 +4704,7 @@ const VBtnGroup = genericComponent()({
|
|
4782
4704
|
} = useRounded(props);
|
4783
4705
|
provideDefaults({
|
4784
4706
|
VBtn: {
|
4785
|
-
height:
|
4707
|
+
height: 'auto',
|
4786
4708
|
baseColor: toRef(() => props.baseColor),
|
4787
4709
|
color: toRef(() => props.color),
|
4788
4710
|
density: toRef(() => props.density),
|
@@ -4792,7 +4714,7 @@ const VBtnGroup = genericComponent()({
|
|
4792
4714
|
});
|
4793
4715
|
useRender(() => {
|
4794
4716
|
return createVNode(props.tag, {
|
4795
|
-
"class": normalizeClass(['v-btn-group',
|
4717
|
+
"class": normalizeClass(['v-btn-group', {
|
4796
4718
|
'v-btn-group--divided': props.divided
|
4797
4719
|
}, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class]),
|
4798
4720
|
"style": normalizeStyle(props.style)
|
@@ -5915,8 +5837,8 @@ function rippleCancelShow(e) {
|
|
5915
5837
|
window.clearTimeout(element._ripple.showTimer);
|
5916
5838
|
}
|
5917
5839
|
let keyboardRipple = false;
|
5918
|
-
function keyboardRippleShow(e
|
5919
|
-
if (!keyboardRipple &&
|
5840
|
+
function keyboardRippleShow(e) {
|
5841
|
+
if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {
|
5920
5842
|
keyboardRipple = true;
|
5921
5843
|
rippleShow(e);
|
5922
5844
|
}
|
@@ -5944,12 +5866,9 @@ function updateRipple(el, binding, wasEnabled) {
|
|
5944
5866
|
el._ripple.enabled = enabled;
|
5945
5867
|
el._ripple.centered = modifiers.center;
|
5946
5868
|
el._ripple.circle = modifiers.circle;
|
5947
|
-
|
5948
|
-
|
5949
|
-
el._ripple.class = bindingValue.class;
|
5869
|
+
if (isObject(value) && value.class) {
|
5870
|
+
el._ripple.class = value.class;
|
5950
5871
|
}
|
5951
|
-
const allowedKeys = bindingValue.keys ?? [keyCodes.enter, keyCodes.space];
|
5952
|
-
el._ripple.keyDownHandler = e => keyboardRippleShow(e, allowedKeys);
|
5953
5872
|
if (enabled && !wasEnabled) {
|
5954
5873
|
if (modifiers.stop) {
|
5955
5874
|
el.addEventListener('touchstart', rippleStop, {
|
@@ -5971,7 +5890,7 @@ function updateRipple(el, binding, wasEnabled) {
|
|
5971
5890
|
el.addEventListener('mousedown', rippleShow);
|
5972
5891
|
el.addEventListener('mouseup', rippleHide);
|
5973
5892
|
el.addEventListener('mouseleave', rippleHide);
|
5974
|
-
el.addEventListener('keydown',
|
5893
|
+
el.addEventListener('keydown', keyboardRippleShow);
|
5975
5894
|
el.addEventListener('keyup', keyboardRippleHide);
|
5976
5895
|
el.addEventListener('blur', focusRippleHide);
|
5977
5896
|
|
@@ -5991,9 +5910,7 @@ function removeListeners(el) {
|
|
5991
5910
|
el.removeEventListener('touchcancel', rippleHide);
|
5992
5911
|
el.removeEventListener('mouseup', rippleHide);
|
5993
5912
|
el.removeEventListener('mouseleave', rippleHide);
|
5994
|
-
|
5995
|
-
el.removeEventListener('keydown', el._ripple.keyDownHandler);
|
5996
|
-
}
|
5913
|
+
el.removeEventListener('keydown', keyboardRippleShow);
|
5997
5914
|
el.removeEventListener('keyup', keyboardRippleHide);
|
5998
5915
|
el.removeEventListener('dragstart', rippleHide);
|
5999
5916
|
el.removeEventListener('blur', focusRippleHide);
|
@@ -6002,8 +5919,8 @@ function mounted$4(el, binding) {
|
|
6002
5919
|
updateRipple(el, binding, false);
|
6003
5920
|
}
|
6004
5921
|
function unmounted$4(el) {
|
6005
|
-
removeListeners(el);
|
6006
5922
|
delete el._ripple;
|
5923
|
+
removeListeners(el);
|
6007
5924
|
}
|
6008
5925
|
function updated$1(el, binding) {
|
6009
5926
|
if (binding.value === binding.oldValue) {
|
@@ -6276,31 +6193,6 @@ const VAppBarTitle = genericComponent()({
|
|
6276
6193
|
// Utilities
|
6277
6194
|
const VAlertTitle = createSimpleFunctional('v-alert-title');
|
6278
6195
|
|
6279
|
-
// Utilities
|
6280
|
-
|
6281
|
-
// Types
|
6282
|
-
|
6283
|
-
// Types
|
6284
|
-
|
6285
|
-
// Composables
|
6286
|
-
const makeIconSizeProps = propsFactory({
|
6287
|
-
iconSize: [Number, String],
|
6288
|
-
iconSizes: {
|
6289
|
-
type: Array,
|
6290
|
-
default: () => [['x-small', 10], ['small', 16], ['default', 24], ['large', 28], ['x-large', 32]]
|
6291
|
-
}
|
6292
|
-
}, 'iconSize');
|
6293
|
-
function useIconSizes(props, fallback) {
|
6294
|
-
const iconSize = computed(() => {
|
6295
|
-
const iconSizeMap = new Map(props.iconSizes);
|
6296
|
-
const _iconSize = props.iconSize ?? fallback() ?? 'default';
|
6297
|
-
return iconSizeMap.has(_iconSize) ? iconSizeMap.get(_iconSize) : _iconSize;
|
6298
|
-
});
|
6299
|
-
return {
|
6300
|
-
iconSize
|
6301
|
-
};
|
6302
|
-
}
|
6303
|
-
|
6304
6196
|
// Types
|
6305
6197
|
|
6306
6198
|
const allowedTypes = ['success', 'info', 'warning', 'error'];
|
@@ -6340,7 +6232,6 @@ const makeVAlertProps = propsFactory({
|
|
6340
6232
|
...makeDensityProps(),
|
6341
6233
|
...makeDimensionProps(),
|
6342
6234
|
...makeElevationProps(),
|
6343
|
-
...makeIconSizeProps(),
|
6344
6235
|
...makeLocationProps(),
|
6345
6236
|
...makePositionProps(),
|
6346
6237
|
...makeRoundedProps(),
|
@@ -6368,9 +6259,6 @@ const VAlert = genericComponent()({
|
|
6368
6259
|
if (!props.type) return props.icon;
|
6369
6260
|
return props.icon ?? `$${props.type}`;
|
6370
6261
|
});
|
6371
|
-
const {
|
6372
|
-
iconSize
|
6373
|
-
} = useIconSizes(props, () => props.prominent ? 44 : 28);
|
6374
6262
|
const {
|
6375
6263
|
themeClasses
|
6376
6264
|
} = provideTheme(props);
|
@@ -6418,11 +6306,6 @@ const VAlert = genericComponent()({
|
|
6418
6306
|
const hasPrepend = !!(slots.prepend || icon.value);
|
6419
6307
|
const hasTitle = !!(slots.title || props.title);
|
6420
6308
|
const hasClose = !!(slots.close || props.closable);
|
6421
|
-
const iconProps = {
|
6422
|
-
density: props.density,
|
6423
|
-
icon: icon.value,
|
6424
|
-
size: iconSize.value
|
6425
|
-
};
|
6426
6309
|
return isActive.value && createVNode(props.tag, {
|
6427
6310
|
"class": normalizeClass(['v-alert', props.border && {
|
6428
6311
|
'v-alert--border': !!props.border,
|
@@ -6440,14 +6323,19 @@ const VAlert = genericComponent()({
|
|
6440
6323
|
}, null), hasPrepend && createElementVNode("div", {
|
6441
6324
|
"key": "prepend",
|
6442
6325
|
"class": "v-alert__prepend"
|
6443
|
-
}, [!slots.prepend ? createVNode(VIcon,
|
6444
|
-
"key": "prepend-icon"
|
6445
|
-
|
6326
|
+
}, [!slots.prepend ? createVNode(VIcon, {
|
6327
|
+
"key": "prepend-icon",
|
6328
|
+
"density": props.density,
|
6329
|
+
"icon": icon.value,
|
6330
|
+
"size": props.prominent ? 44 : 28
|
6331
|
+
}, null) : createVNode(VDefaultsProvider, {
|
6446
6332
|
"key": "prepend-defaults",
|
6447
6333
|
"disabled": !icon.value,
|
6448
6334
|
"defaults": {
|
6449
6335
|
VIcon: {
|
6450
|
-
|
6336
|
+
density: props.density,
|
6337
|
+
icon: icon.value,
|
6338
|
+
size: props.prominent ? 44 : 28
|
6451
6339
|
}
|
6452
6340
|
}
|
6453
6341
|
}, slots.prepend)]), createElementVNode("div", {
|
@@ -7972,7 +7860,6 @@ function getOffsetPosition(isHorizontal, element) {
|
|
7972
7860
|
const VSlideGroupSymbol = Symbol.for('vuetify:v-slide-group');
|
7973
7861
|
const makeVSlideGroupProps = propsFactory({
|
7974
7862
|
centerActive: Boolean,
|
7975
|
-
contentClass: null,
|
7976
7863
|
direction: {
|
7977
7864
|
type: String,
|
7978
7865
|
default: 'horizontal'
|
@@ -8285,7 +8172,7 @@ const VSlideGroup = genericComponent()({
|
|
8285
8172
|
})]), createElementVNode("div", {
|
8286
8173
|
"key": "container",
|
8287
8174
|
"ref": containerRef,
|
8288
|
-
"class":
|
8175
|
+
"class": "v-slide-group__container",
|
8289
8176
|
"onScroll": onScroll
|
8290
8177
|
}, [createElementVNode("div", {
|
8291
8178
|
"ref": contentRef,
|
@@ -8648,85 +8535,16 @@ const VChip = genericComponent()({
|
|
8648
8535
|
}
|
8649
8536
|
});
|
8650
8537
|
|
8651
|
-
const makeVDividerProps = propsFactory({
|
8652
|
-
color: String,
|
8653
|
-
inset: Boolean,
|
8654
|
-
length: [Number, String],
|
8655
|
-
opacity: [Number, String],
|
8656
|
-
thickness: [Number, String],
|
8657
|
-
vertical: Boolean,
|
8658
|
-
...makeComponentProps(),
|
8659
|
-
...makeThemeProps()
|
8660
|
-
}, 'VDivider');
|
8661
|
-
const VDivider = genericComponent()({
|
8662
|
-
name: 'VDivider',
|
8663
|
-
props: makeVDividerProps(),
|
8664
|
-
setup(props, _ref) {
|
8665
|
-
let {
|
8666
|
-
attrs,
|
8667
|
-
slots
|
8668
|
-
} = _ref;
|
8669
|
-
const {
|
8670
|
-
themeClasses
|
8671
|
-
} = provideTheme(props);
|
8672
|
-
const {
|
8673
|
-
textColorClasses,
|
8674
|
-
textColorStyles
|
8675
|
-
} = useTextColor(() => props.color);
|
8676
|
-
const dividerStyles = computed(() => {
|
8677
|
-
const styles = {};
|
8678
|
-
if (props.length) {
|
8679
|
-
styles[props.vertical ? 'height' : 'width'] = convertToUnit(props.length);
|
8680
|
-
}
|
8681
|
-
if (props.thickness) {
|
8682
|
-
styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness);
|
8683
|
-
}
|
8684
|
-
return styles;
|
8685
|
-
});
|
8686
|
-
useRender(() => {
|
8687
|
-
const divider = createElementVNode("hr", {
|
8688
|
-
"class": normalizeClass([{
|
8689
|
-
'v-divider': true,
|
8690
|
-
'v-divider--inset': props.inset,
|
8691
|
-
'v-divider--vertical': props.vertical
|
8692
|
-
}, themeClasses.value, textColorClasses.value, props.class]),
|
8693
|
-
"style": normalizeStyle([dividerStyles.value, textColorStyles.value, {
|
8694
|
-
'--v-border-opacity': props.opacity
|
8695
|
-
}, props.style]),
|
8696
|
-
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
8697
|
-
"role": `${attrs.role || 'separator'}`
|
8698
|
-
}, null);
|
8699
|
-
if (!slots.default) return divider;
|
8700
|
-
return createElementVNode("div", {
|
8701
|
-
"class": normalizeClass(['v-divider__wrapper', {
|
8702
|
-
'v-divider__wrapper--vertical': props.vertical,
|
8703
|
-
'v-divider__wrapper--inset': props.inset
|
8704
|
-
}])
|
8705
|
-
}, [divider, createElementVNode("div", {
|
8706
|
-
"class": "v-divider__content"
|
8707
|
-
}, [slots.default()]), divider]);
|
8708
|
-
});
|
8709
|
-
return {};
|
8710
|
-
}
|
8711
|
-
});
|
8712
|
-
|
8713
8538
|
// Utilities
|
8714
8539
|
|
8715
8540
|
// List
|
8716
8541
|
const ListKey = Symbol.for('vuetify:list');
|
8717
8542
|
function createList() {
|
8718
|
-
let {
|
8719
|
-
filterable
|
8720
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
8721
|
-
filterable: false
|
8722
|
-
};
|
8723
8543
|
const parent = inject$1(ListKey, {
|
8724
|
-
filterable: false,
|
8725
8544
|
hasPrepend: shallowRef(false),
|
8726
8545
|
updateHasPrepend: () => null
|
8727
8546
|
});
|
8728
8547
|
const data = {
|
8729
|
-
filterable: parent.filterable || filterable,
|
8730
8548
|
hasPrepend: shallowRef(false),
|
8731
8549
|
updateHasPrepend: value => {
|
8732
8550
|
if (value) data.hasPrepend.value = value;
|
@@ -9678,9 +9496,6 @@ const VListItem = genericComponent()({
|
|
9678
9496
|
roundedClasses
|
9679
9497
|
} = useRounded(roundedProps);
|
9680
9498
|
const lineClasses = toRef(() => props.lines ? `v-list-item--${props.lines}-line` : undefined);
|
9681
|
-
const rippleOptions = toRef(() => props.ripple !== undefined && !!props.ripple && list?.filterable ? {
|
9682
|
-
keys: [keyCodes.enter]
|
9683
|
-
} : props.ripple);
|
9684
9499
|
const slotProps = computed(() => ({
|
9685
9500
|
isActive: isActive.value,
|
9686
9501
|
select,
|
@@ -9705,9 +9520,8 @@ const VListItem = genericComponent()({
|
|
9705
9520
|
function onKeyDown(e) {
|
9706
9521
|
const target = e.target;
|
9707
9522
|
if (['INPUT', 'TEXTAREA'].includes(target.tagName)) return;
|
9708
|
-
if (e.key === 'Enter' || e.key === ' '
|
9523
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
9709
9524
|
e.preventDefault();
|
9710
|
-
e.stopPropagation();
|
9711
9525
|
e.target.dispatchEvent(new MouseEvent('click', e));
|
9712
9526
|
}
|
9713
9527
|
}
|
@@ -9817,7 +9631,7 @@ const VListItem = genericComponent()({
|
|
9817
9631
|
}), createElementVNode("div", {
|
9818
9632
|
"class": "v-list-item__spacer"
|
9819
9633
|
}, null)])]
|
9820
|
-
}), [[Ripple, isClickable.value &&
|
9634
|
+
}), [[Ripple, isClickable.value && props.ripple]]);
|
9821
9635
|
});
|
9822
9636
|
return {
|
9823
9637
|
activate,
|
@@ -9872,6 +9686,68 @@ const VListSubheader = genericComponent()({
|
|
9872
9686
|
}
|
9873
9687
|
});
|
9874
9688
|
|
9689
|
+
const makeVDividerProps = propsFactory({
|
9690
|
+
color: String,
|
9691
|
+
inset: Boolean,
|
9692
|
+
length: [Number, String],
|
9693
|
+
opacity: [Number, String],
|
9694
|
+
thickness: [Number, String],
|
9695
|
+
vertical: Boolean,
|
9696
|
+
...makeComponentProps(),
|
9697
|
+
...makeThemeProps()
|
9698
|
+
}, 'VDivider');
|
9699
|
+
const VDivider = genericComponent()({
|
9700
|
+
name: 'VDivider',
|
9701
|
+
props: makeVDividerProps(),
|
9702
|
+
setup(props, _ref) {
|
9703
|
+
let {
|
9704
|
+
attrs,
|
9705
|
+
slots
|
9706
|
+
} = _ref;
|
9707
|
+
const {
|
9708
|
+
themeClasses
|
9709
|
+
} = provideTheme(props);
|
9710
|
+
const {
|
9711
|
+
textColorClasses,
|
9712
|
+
textColorStyles
|
9713
|
+
} = useTextColor(() => props.color);
|
9714
|
+
const dividerStyles = computed(() => {
|
9715
|
+
const styles = {};
|
9716
|
+
if (props.length) {
|
9717
|
+
styles[props.vertical ? 'height' : 'width'] = convertToUnit(props.length);
|
9718
|
+
}
|
9719
|
+
if (props.thickness) {
|
9720
|
+
styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness);
|
9721
|
+
}
|
9722
|
+
return styles;
|
9723
|
+
});
|
9724
|
+
useRender(() => {
|
9725
|
+
const divider = createElementVNode("hr", {
|
9726
|
+
"class": normalizeClass([{
|
9727
|
+
'v-divider': true,
|
9728
|
+
'v-divider--inset': props.inset,
|
9729
|
+
'v-divider--vertical': props.vertical
|
9730
|
+
}, themeClasses.value, textColorClasses.value, props.class]),
|
9731
|
+
"style": normalizeStyle([dividerStyles.value, textColorStyles.value, {
|
9732
|
+
'--v-border-opacity': props.opacity
|
9733
|
+
}, props.style]),
|
9734
|
+
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
9735
|
+
"role": `${attrs.role || 'separator'}`
|
9736
|
+
}, null);
|
9737
|
+
if (!slots.default) return divider;
|
9738
|
+
return createElementVNode("div", {
|
9739
|
+
"class": normalizeClass(['v-divider__wrapper', {
|
9740
|
+
'v-divider__wrapper--vertical': props.vertical,
|
9741
|
+
'v-divider__wrapper--inset': props.inset
|
9742
|
+
}])
|
9743
|
+
}, [divider, createElementVNode("div", {
|
9744
|
+
"class": "v-divider__content"
|
9745
|
+
}, [slots.default()]), divider]);
|
9746
|
+
});
|
9747
|
+
return {};
|
9748
|
+
}
|
9749
|
+
});
|
9750
|
+
|
9875
9751
|
// Types
|
9876
9752
|
|
9877
9753
|
const makeVListChildrenProps = propsFactory({
|
@@ -10140,7 +10016,6 @@ const makeVListProps = propsFactory({
|
|
10140
10016
|
activeClass: String,
|
10141
10017
|
bgColor: String,
|
10142
10018
|
disabled: Boolean,
|
10143
|
-
filterable: Boolean,
|
10144
10019
|
expandIcon: IconValue,
|
10145
10020
|
collapseIcon: IconValue,
|
10146
10021
|
lines: {
|
@@ -10224,9 +10099,7 @@ const VList = genericComponent()({
|
|
10224
10099
|
const activeColor = toRef(() => props.activeColor);
|
10225
10100
|
const baseColor = toRef(() => props.baseColor);
|
10226
10101
|
const color = toRef(() => props.color);
|
10227
|
-
createList(
|
10228
|
-
filterable: props.filterable
|
10229
|
-
});
|
10102
|
+
createList();
|
10230
10103
|
provideDefaults({
|
10231
10104
|
VListGroup: {
|
10232
10105
|
activeColor,
|
@@ -12802,12 +12675,7 @@ function useVirtual(props, items) {
|
|
12802
12675
|
}
|
12803
12676
|
function calculateOffset(index) {
|
12804
12677
|
index = clamp(index, 0, items.value.length - 1);
|
12805
|
-
|
12806
|
-
const fraction = index % 1;
|
12807
|
-
const next = whole + 1;
|
12808
|
-
const wholeOffset = offsets[whole] || 0;
|
12809
|
-
const nextOffset = offsets[next] || wholeOffset;
|
12810
|
-
return wholeOffset + (nextOffset - wholeOffset) * fraction;
|
12678
|
+
return offsets[index] || 0;
|
12811
12679
|
}
|
12812
12680
|
function calculateIndex(scrollTop) {
|
12813
12681
|
return binaryClosest(offsets, scrollTop);
|
@@ -13161,7 +13029,6 @@ const makeSelectProps = propsFactory({
|
|
13161
13029
|
},
|
13162
13030
|
openOnClear: Boolean,
|
13163
13031
|
itemColor: String,
|
13164
|
-
noAutoScroll: Boolean,
|
13165
13032
|
...makeItemsProps({
|
13166
13033
|
itemChildren: false
|
13167
13034
|
})
|
@@ -13376,7 +13243,7 @@ const VSelect = genericComponent()({
|
|
13376
13243
|
watch(menu, () => {
|
13377
13244
|
if (!props.hideSelected && menu.value && model.value.length) {
|
13378
13245
|
const index = displayItems.value.findIndex(item => model.value.some(s => (props.valueComparator || deepEqual)(s.value, item.value)));
|
13379
|
-
IN_BROWSER &&
|
13246
|
+
IN_BROWSER && window.requestAnimationFrame(() => {
|
13380
13247
|
index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
|
13381
13248
|
});
|
13382
13249
|
}
|
@@ -13468,22 +13335,6 @@ const VSelect = genericComponent()({
|
|
13468
13335
|
key: item.value,
|
13469
13336
|
onClick: () => select(item, null)
|
13470
13337
|
});
|
13471
|
-
if (item.raw.type === 'divider') {
|
13472
|
-
return slots.divider?.({
|
13473
|
-
props: item.raw,
|
13474
|
-
index
|
13475
|
-
}) ?? createVNode(VDivider, mergeProps(item.props, {
|
13476
|
-
"key": `divider-${index}`
|
13477
|
-
}), null);
|
13478
|
-
}
|
13479
|
-
if (item.raw.type === 'subheader') {
|
13480
|
-
return slots.subheader?.({
|
13481
|
-
props: item.raw,
|
13482
|
-
index
|
13483
|
-
}) ?? createVNode(VListSubheader, mergeProps(item.props, {
|
13484
|
-
"key": `subheader-${index}`
|
13485
|
-
}), null);
|
13486
|
-
}
|
13487
13338
|
return slots.item?.({
|
13488
13339
|
item,
|
13489
13340
|
index,
|
@@ -13644,9 +13495,6 @@ function filterItems(items, query, options) {
|
|
13644
13495
|
let match = -1;
|
13645
13496
|
if ((query || customFiltersLength > 0) && !options?.noFilter) {
|
13646
13497
|
if (typeof item === 'object') {
|
13647
|
-
if (['divider', 'subheader'].includes(item.raw?.type)) {
|
13648
|
-
continue;
|
13649
|
-
}
|
13650
13498
|
const filterKeys = keys || Object.keys(transformed);
|
13651
13499
|
for (const key of filterKeys) {
|
13652
13500
|
const value = getPropertyFromItem(transformed, key);
|
@@ -13849,7 +13697,7 @@ const VAutocomplete = genericComponent()({
|
|
13849
13697
|
menu.value = !menu.value;
|
13850
13698
|
}
|
13851
13699
|
function onListKeydown(e) {
|
13852
|
-
if (
|
13700
|
+
if (e.key !== ' ' && checkPrintable(e)) {
|
13853
13701
|
vTextFieldRef.value?.focus();
|
13854
13702
|
}
|
13855
13703
|
}
|
@@ -14054,7 +13902,6 @@ const VAutocomplete = genericComponent()({
|
|
14054
13902
|
}, props.menuProps), {
|
14055
13903
|
default: () => [hasList && createVNode(VList, mergeProps({
|
14056
13904
|
"ref": listRef,
|
14057
|
-
"filterable": true,
|
14058
13905
|
"selected": selectedValues.value,
|
14059
13906
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
14060
13907
|
"onMousedown": e => e.preventDefault(),
|
@@ -14086,22 +13933,6 @@ const VAutocomplete = genericComponent()({
|
|
14086
13933
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
14087
13934
|
onClick: () => select(item, null)
|
14088
13935
|
});
|
14089
|
-
if (item.raw.type === 'divider') {
|
14090
|
-
return slots.divider?.({
|
14091
|
-
props: item.raw,
|
14092
|
-
index
|
14093
|
-
}) ?? createVNode(VDivider, mergeProps(item.props, {
|
14094
|
-
"key": `divider-${index}`
|
14095
|
-
}), null);
|
14096
|
-
}
|
14097
|
-
if (item.raw.type === 'subheader') {
|
14098
|
-
return slots.subheader?.({
|
14099
|
-
props: item.raw,
|
14100
|
-
index
|
14101
|
-
}) ?? createVNode(VListSubheader, mergeProps(item.props, {
|
14102
|
-
"key": `subheader-${index}`
|
14103
|
-
}), null);
|
14104
|
-
}
|
14105
13936
|
return slots.item?.({
|
14106
13937
|
item,
|
14107
13938
|
index,
|
@@ -17706,13 +17537,13 @@ function date(value) {
|
|
17706
17537
|
return null;
|
17707
17538
|
}
|
17708
17539
|
const sundayJanuarySecond2000 = new Date(2000, 0, 2);
|
17709
|
-
function getWeekdays(locale, firstDayOfWeek
|
17540
|
+
function getWeekdays(locale, firstDayOfWeek) {
|
17710
17541
|
const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
|
17711
17542
|
return createRange(7).map(i => {
|
17712
17543
|
const weekday = new Date(sundayJanuarySecond2000);
|
17713
17544
|
weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
|
17714
17545
|
return new Intl.DateTimeFormat(locale, {
|
17715
|
-
weekday:
|
17546
|
+
weekday: 'narrow'
|
17716
17547
|
}).format(weekday);
|
17717
17548
|
});
|
17718
17549
|
}
|
@@ -18176,9 +18007,9 @@ class VuetifyDateAdapter {
|
|
18176
18007
|
getDiff(date, comparing, unit) {
|
18177
18008
|
return getDiff(date, comparing, unit);
|
18178
18009
|
}
|
18179
|
-
getWeekdays(firstDayOfWeek
|
18010
|
+
getWeekdays(firstDayOfWeek) {
|
18180
18011
|
const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
|
18181
|
-
return getWeekdays(this.locale, firstDay
|
18012
|
+
return getWeekdays(this.locale, firstDay);
|
18182
18013
|
}
|
18183
18014
|
getYear(date) {
|
18184
18015
|
return getYear(date);
|
@@ -18534,7 +18365,6 @@ const VCombobox = genericComponent()({
|
|
18534
18365
|
_search.value = val ?? '';
|
18535
18366
|
if (!props.multiple && !hasSelectionSlot.value) {
|
18536
18367
|
model.value = [transformItem$3(props, val)];
|
18537
|
-
nextTick(() => vVirtualScrollRef.value?.scrollToIndex(0));
|
18538
18368
|
}
|
18539
18369
|
if (val && props.multiple && props.delimiters?.length) {
|
18540
18370
|
const values = val.split(new RegExp(`(?:${props.delimiters.join('|')})+`));
|
@@ -18615,7 +18445,7 @@ const VCombobox = genericComponent()({
|
|
18615
18445
|
menu.value = !menu.value;
|
18616
18446
|
}
|
18617
18447
|
function onListKeydown(e) {
|
18618
|
-
if (
|
18448
|
+
if (e.key !== ' ' && checkPrintable(e)) {
|
18619
18449
|
vTextFieldRef.value?.focus();
|
18620
18450
|
}
|
18621
18451
|
}
|
@@ -18820,7 +18650,6 @@ const VCombobox = genericComponent()({
|
|
18820
18650
|
}, props.menuProps), {
|
18821
18651
|
default: () => [hasList && createVNode(VList, mergeProps({
|
18822
18652
|
"ref": listRef,
|
18823
|
-
"filterable": true,
|
18824
18653
|
"selected": selectedValues.value,
|
18825
18654
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
18826
18655
|
"onMousedown": e => e.preventDefault(),
|
@@ -18852,22 +18681,6 @@ const VCombobox = genericComponent()({
|
|
18852
18681
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
18853
18682
|
onClick: () => select(item, null)
|
18854
18683
|
});
|
18855
|
-
if (item.raw.type === 'divider') {
|
18856
|
-
return slots.divider?.({
|
18857
|
-
props: item.raw,
|
18858
|
-
index
|
18859
|
-
}) ?? createVNode(VDivider, mergeProps(item.props, {
|
18860
|
-
"key": `divider-${index}`
|
18861
|
-
}), null);
|
18862
|
-
}
|
18863
|
-
if (item.raw.type === 'subheader') {
|
18864
|
-
return slots.subheader?.({
|
18865
|
-
props: item.raw,
|
18866
|
-
index
|
18867
|
-
}) ?? createVNode(VListSubheader, mergeProps(item.props, {
|
18868
|
-
"key": `subheader-${index}`
|
18869
|
-
}), null);
|
18870
|
-
}
|
18871
18684
|
return slots.item?.({
|
18872
18685
|
item,
|
18873
18686
|
index,
|
@@ -20747,7 +20560,6 @@ const makeVDataTableHeadersProps = propsFactory({
|
|
20747
20560
|
color: String,
|
20748
20561
|
disableSort: Boolean,
|
20749
20562
|
fixedHeader: Boolean,
|
20750
|
-
lastFixed: Boolean,
|
20751
20563
|
multiSort: Boolean,
|
20752
20564
|
sortAscIcon: {
|
20753
20565
|
type: IconValue,
|
@@ -20794,11 +20606,10 @@ const VDataTableHeaders = genericComponent()({
|
|
20794
20606
|
loaderClasses
|
20795
20607
|
} = useLoader(props);
|
20796
20608
|
function getFixedStyles(column, y) {
|
20797
|
-
if (!(props.sticky || props.fixedHeader) && !
|
20609
|
+
if (!(props.sticky || props.fixedHeader) && !column.fixed) return undefined;
|
20798
20610
|
return {
|
20799
20611
|
position: 'sticky',
|
20800
|
-
left: column.fixed
|
20801
|
-
right: column.lastFixed ? convertToUnit(column.fixedOffset ?? 0) : undefined,
|
20612
|
+
left: column.fixed ? convertToUnit(column.fixedOffset) : undefined,
|
20802
20613
|
top: props.sticky || props.fixedHeader ? `calc(var(--v-table-header-height) * ${y})` : undefined
|
20803
20614
|
};
|
20804
20615
|
}
|
@@ -21307,18 +21118,11 @@ const VDataTableRows = genericComponent()({
|
|
21307
21118
|
}
|
21308
21119
|
});
|
21309
21120
|
|
21310
|
-
// Types
|
21311
|
-
|
21312
21121
|
const makeVTableProps = propsFactory({
|
21313
21122
|
fixedHeader: Boolean,
|
21314
21123
|
fixedFooter: Boolean,
|
21315
21124
|
height: [Number, String],
|
21316
21125
|
hover: Boolean,
|
21317
|
-
striped: {
|
21318
|
-
type: String,
|
21319
|
-
default: null,
|
21320
|
-
validator: v => ['even', 'odd'].includes(v)
|
21321
|
-
},
|
21322
21126
|
...makeComponentProps(),
|
21323
21127
|
...makeDensityProps(),
|
21324
21128
|
...makeTagProps(),
|
@@ -21345,9 +21149,7 @@ const VTable = genericComponent()({
|
|
21345
21149
|
'v-table--fixed-footer': props.fixedFooter,
|
21346
21150
|
'v-table--has-top': !!slots.top,
|
21347
21151
|
'v-table--has-bottom': !!slots.bottom,
|
21348
|
-
'v-table--hover': props.hover
|
21349
|
-
'v-table--striped-even': props.striped === 'even',
|
21350
|
-
'v-table--striped-odd': props.striped === 'odd'
|
21152
|
+
'v-table--hover': props.hover
|
21351
21153
|
}, themeClasses.value, densityClasses.value, props.class]),
|
21352
21154
|
"style": normalizeStyle(props.style)
|
21353
21155
|
}, {
|
@@ -22522,8 +22324,7 @@ const makeCalendarProps = propsFactory({
|
|
22522
22324
|
firstDayOfWeek: {
|
22523
22325
|
type: [Number, String],
|
22524
22326
|
default: undefined
|
22525
|
-
}
|
22526
|
-
weekdayFormat: String
|
22327
|
+
}
|
22527
22328
|
}, 'calendar');
|
22528
22329
|
function useCalendar(props) {
|
22529
22330
|
const adapter = useDate();
|
@@ -22764,7 +22565,7 @@ const VDatePickerMonth = genericComponent()({
|
|
22764
22565
|
"ref": daysRef,
|
22765
22566
|
"key": daysInMonth.value[0].date?.toString(),
|
22766
22567
|
"class": "v-date-picker-month__days"
|
22767
|
-
}, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek
|
22568
|
+
}, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => createElementVNode("div", {
|
22768
22569
|
"class": normalizeClass(['v-date-picker-month__day', 'v-date-picker-month__weekday'])
|
22769
22570
|
}, [weekDay])), daysInMonth.value.map((item, i) => {
|
22770
22571
|
const slotProps = {
|
@@ -25354,10 +25155,6 @@ const makeVNumberInputProps = propsFactory({
|
|
25354
25155
|
type: Number,
|
25355
25156
|
default: 0
|
25356
25157
|
},
|
25357
|
-
minFractionDigits: {
|
25358
|
-
type: Number,
|
25359
|
-
default: null
|
25360
|
-
},
|
25361
25158
|
...omit(makeVTextFieldProps(), ['modelValue', 'validationValue'])
|
25362
25159
|
}, 'VNumberInput');
|
25363
25160
|
const VNumberInput = genericComponent()({
|
@@ -25388,19 +25185,9 @@ const VNumberInput = genericComponent()({
|
|
25388
25185
|
} = useFocus(props);
|
25389
25186
|
function correctPrecision(val) {
|
25390
25187
|
let precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.precision;
|
25391
|
-
|
25392
|
-
|
25393
|
-
|
25394
|
-
let fixed = val.toFixed(precision);
|
25395
|
-
if (isFocused.value) {
|
25396
|
-
return Number(fixed).toString(); // trim zeros
|
25397
|
-
}
|
25398
|
-
if ((props.minFractionDigits ?? precision) < precision) {
|
25399
|
-
const trimLimit = precision - props.minFractionDigits;
|
25400
|
-
const [baseDigits, fractionDigits] = fixed.split('.');
|
25401
|
-
fixed = [baseDigits, fractionDigits.replace(new RegExp(`0{1,${trimLimit}}$`), '')].filter(Boolean).join('.');
|
25402
|
-
}
|
25403
|
-
return fixed;
|
25188
|
+
const fixed = precision == null ? String(val) : val.toFixed(precision);
|
25189
|
+
return isFocused.value ? Number(fixed).toString() // trim zeros
|
25190
|
+
: fixed;
|
25404
25191
|
}
|
25405
25192
|
const model = useProxiedModel(props, 'modelValue', null, val => val ?? null, val => val == null ? val ?? null : clamp(Number(val), props.min, props.max));
|
25406
25193
|
const _inputText = shallowRef(null);
|
@@ -25455,7 +25242,6 @@ const VNumberInput = genericComponent()({
|
|
25455
25242
|
}
|
25456
25243
|
};
|
25457
25244
|
watch(() => props.precision, () => formatInputValue());
|
25458
|
-
watch(() => props.minFractionDigits, () => formatInputValue());
|
25459
25245
|
onMounted(() => {
|
25460
25246
|
clampModel();
|
25461
25247
|
});
|
@@ -25570,7 +25356,7 @@ const VNumberInput = genericComponent()({
|
|
25570
25356
|
inputText.value = null;
|
25571
25357
|
return;
|
25572
25358
|
}
|
25573
|
-
inputText.value =
|
25359
|
+
inputText.value = props.precision == null ? String(model.value) : model.value.toFixed(props.precision);
|
25574
25360
|
}
|
25575
25361
|
function trimDecimalZeros() {
|
25576
25362
|
if (controlsDisabled.value) return;
|
@@ -25830,10 +25616,9 @@ const VOtpInput = genericComponent()({
|
|
25830
25616
|
e.preventDefault();
|
25831
25617
|
e.stopPropagation();
|
25832
25618
|
const clipboardText = e?.clipboardData?.getData('Text').slice(0, length.value) ?? '';
|
25833
|
-
const finalIndex = clipboardText.length - 1 === -1 ? index : clipboardText.length - 1;
|
25834
25619
|
if (isValidNumber(clipboardText)) return;
|
25835
25620
|
model.value = clipboardText.split('');
|
25836
|
-
inputRef.value?.[
|
25621
|
+
inputRef.value?.[index].blur();
|
25837
25622
|
}
|
25838
25623
|
function reset() {
|
25839
25624
|
model.value = [];
|
@@ -29615,7 +29400,7 @@ function createVuetify$1() {
|
|
29615
29400
|
};
|
29616
29401
|
});
|
29617
29402
|
}
|
29618
|
-
const version$1 = "3.8.8-
|
29403
|
+
const version$1 = "3.8.8-master.2025-06-06";
|
29619
29404
|
createVuetify$1.version = version$1;
|
29620
29405
|
|
29621
29406
|
// Vue's inject() can only be used in setup
|
@@ -29640,7 +29425,7 @@ const createVuetify = function () {
|
|
29640
29425
|
...options
|
29641
29426
|
});
|
29642
29427
|
};
|
29643
|
-
const version = "3.8.8-
|
29428
|
+
const version = "3.8.8-master.2025-06-06";
|
29644
29429
|
createVuetify.version = version;
|
29645
29430
|
|
29646
29431
|
export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };
|