@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.cjs
CHANGED
@@ -1,5 +1,5 @@
|
|
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
|
*/
|
@@ -14,7 +14,6 @@
|
|
14
14
|
const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
|
15
15
|
const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0);
|
16
16
|
const SUPPORTS_EYE_DROPPER = IN_BROWSER && 'EyeDropper' in window;
|
17
|
-
const SUPPORTS_MATCH_MEDIA = IN_BROWSER && 'matchMedia' in window && typeof window.matchMedia === 'function';
|
18
17
|
|
19
18
|
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
20
19
|
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
@@ -2837,7 +2836,6 @@
|
|
2837
2836
|
function genDefaults$1() {
|
2838
2837
|
return {
|
2839
2838
|
defaultTheme: 'light',
|
2840
|
-
prefix: 'v-',
|
2841
2839
|
variations: {
|
2842
2840
|
colors: [],
|
2843
2841
|
lighten: 0,
|
@@ -2919,10 +2917,7 @@
|
|
2919
2917
|
}
|
2920
2918
|
}
|
2921
2919
|
},
|
2922
|
-
stylesheetId: 'vuetify-theme-stylesheet'
|
2923
|
-
scoped: false,
|
2924
|
-
unimportant: false,
|
2925
|
-
utilities: true
|
2920
|
+
stylesheetId: 'vuetify-theme-stylesheet'
|
2926
2921
|
};
|
2927
2922
|
}
|
2928
2923
|
function parseThemeOptions() {
|
@@ -2945,21 +2940,21 @@
|
|
2945
2940
|
function createCssClass(lines, selector, content, scope) {
|
2946
2941
|
lines.push(`${getScopedSelector(selector, scope)} {\n`, ...content.map(line => ` ${line};\n`), '}\n');
|
2947
2942
|
}
|
2948
|
-
function genCssVariables(theme
|
2943
|
+
function genCssVariables(theme) {
|
2949
2944
|
const lightOverlay = theme.dark ? 2 : 1;
|
2950
2945
|
const darkOverlay = theme.dark ? 1 : 2;
|
2951
2946
|
const variables = [];
|
2952
2947
|
for (const [key, value] of Object.entries(theme.colors)) {
|
2953
2948
|
const rgb = parseColor(value);
|
2954
|
-
variables.push(
|
2949
|
+
variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
|
2955
2950
|
if (!key.startsWith('on-')) {
|
2956
|
-
variables.push(
|
2951
|
+
variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
|
2957
2952
|
}
|
2958
2953
|
}
|
2959
2954
|
for (const [key, value] of Object.entries(theme.variables)) {
|
2960
2955
|
const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;
|
2961
2956
|
const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
|
2962
|
-
variables.push(
|
2957
|
+
variables.push(`--v-${key}: ${rgb ?? value}`);
|
2963
2958
|
}
|
2964
2959
|
return variables;
|
2965
2960
|
}
|
@@ -3003,8 +2998,7 @@
|
|
3003
2998
|
const scopeSelector = `:where(${scope})`;
|
3004
2999
|
return selector === ':root' ? scopeSelector : `${scopeSelector} ${selector}`;
|
3005
3000
|
}
|
3006
|
-
function upsertStyles(
|
3007
|
-
const styleEl = getOrCreateStyleElement(id, cspNonce);
|
3001
|
+
function upsertStyles(styleEl, styles) {
|
3008
3002
|
if (!styleEl) return;
|
3009
3003
|
styleEl.innerHTML = styles;
|
3010
3004
|
}
|
@@ -3024,17 +3018,8 @@
|
|
3024
3018
|
// Composables
|
3025
3019
|
function createTheme(options) {
|
3026
3020
|
const parsedOptions = parseThemeOptions(options);
|
3027
|
-
const
|
3021
|
+
const name = vue.shallowRef(parsedOptions.defaultTheme);
|
3028
3022
|
const themes = vue.ref(parsedOptions.themes);
|
3029
|
-
const systemName = vue.shallowRef('light');
|
3030
|
-
const name = vue.computed({
|
3031
|
-
get() {
|
3032
|
-
return _name.value === 'system' ? systemName.value : _name.value;
|
3033
|
-
},
|
3034
|
-
set(val) {
|
3035
|
-
_name.value = val;
|
3036
|
-
}
|
3037
|
-
});
|
3038
3023
|
const computedThemes = vue.computed(() => {
|
3039
3024
|
const acc = {};
|
3040
3025
|
for (const [name, original] of Object.entries(themes.value)) {
|
@@ -3055,49 +3040,28 @@
|
|
3055
3040
|
const current = vue.toRef(() => computedThemes.value[name.value]);
|
3056
3041
|
const styles = vue.computed(() => {
|
3057
3042
|
const lines = [];
|
3058
|
-
const important = parsedOptions.unimportant ? '' : ' !important';
|
3059
|
-
const scoped = parsedOptions.scoped ? parsedOptions.prefix : '';
|
3060
3043
|
if (current.value?.dark) {
|
3061
3044
|
createCssClass(lines, ':root', ['color-scheme: dark'], parsedOptions.scope);
|
3062
3045
|
}
|
3063
|
-
createCssClass(lines, ':root', genCssVariables(current.value
|
3046
|
+
createCssClass(lines, ':root', genCssVariables(current.value), parsedOptions.scope);
|
3064
3047
|
for (const [themeName, theme] of Object.entries(computedThemes.value)) {
|
3065
|
-
createCssClass(lines,
|
3066
|
-
}
|
3067
|
-
|
3068
|
-
|
3069
|
-
|
3070
|
-
|
3071
|
-
|
3072
|
-
|
3073
|
-
|
3074
|
-
}
|
3075
|
-
|
3076
|
-
|
3077
|
-
createCssClass(fgLines, `.${scoped}border-${key}`, [`--${parsedOptions.prefix}border-color: var(--${parsedOptions.prefix}theme-${key})`], parsedOptions.scope);
|
3078
|
-
}
|
3048
|
+
createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme)], parsedOptions.scope);
|
3049
|
+
}
|
3050
|
+
const bgLines = [];
|
3051
|
+
const fgLines = [];
|
3052
|
+
const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));
|
3053
|
+
for (const key of colors) {
|
3054
|
+
if (key.startsWith('on-')) {
|
3055
|
+
createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`], parsedOptions.scope);
|
3056
|
+
} else {
|
3057
|
+
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);
|
3058
|
+
createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`], parsedOptions.scope);
|
3059
|
+
createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`], parsedOptions.scope);
|
3079
3060
|
}
|
3080
|
-
lines.push(...bgLines, ...fgLines);
|
3081
3061
|
}
|
3062
|
+
lines.push(...bgLines, ...fgLines);
|
3082
3063
|
return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
|
3083
3064
|
});
|
3084
|
-
const themeClasses = vue.toRef(() => parsedOptions.isDisabled ? undefined : `${parsedOptions.prefix}theme--${name.value}`);
|
3085
|
-
const themeNames = vue.toRef(() => Object.keys(computedThemes.value));
|
3086
|
-
if (SUPPORTS_MATCH_MEDIA) {
|
3087
|
-
const media = window.matchMedia('(prefers-color-scheme: dark)');
|
3088
|
-
function updateSystemName() {
|
3089
|
-
systemName.value = media.matches ? 'dark' : 'light';
|
3090
|
-
}
|
3091
|
-
updateSystemName();
|
3092
|
-
media.addEventListener('change', updateSystemName, {
|
3093
|
-
passive: true
|
3094
|
-
});
|
3095
|
-
if (vue.getCurrentScope()) {
|
3096
|
-
vue.onScopeDispose(() => {
|
3097
|
-
media.removeEventListener('change', updateSystemName);
|
3098
|
-
});
|
3099
|
-
}
|
3100
|
-
}
|
3101
3065
|
function install(app) {
|
3102
3066
|
if (parsedOptions.isDisabled) return;
|
3103
3067
|
const head = app._context.provides.usehead;
|
@@ -3135,55 +3099,22 @@
|
|
3135
3099
|
updateStyles();
|
3136
3100
|
}
|
3137
3101
|
function updateStyles() {
|
3138
|
-
upsertStyles(parsedOptions.stylesheetId, parsedOptions.cspNonce, styles.value);
|
3102
|
+
upsertStyles(getOrCreateStyleElement(parsedOptions.stylesheetId, parsedOptions.cspNonce), styles.value);
|
3139
3103
|
}
|
3140
3104
|
}
|
3141
3105
|
}
|
3142
|
-
|
3143
|
-
if (!themeNames.value.includes(themeName)) {
|
3144
|
-
consoleWarn(`Theme "${themeName}" not found on the Vuetify theme instance`);
|
3145
|
-
return;
|
3146
|
-
}
|
3147
|
-
name.value = themeName;
|
3148
|
-
}
|
3149
|
-
function cycle() {
|
3150
|
-
let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : themeNames.value;
|
3151
|
-
const currentIndex = themeArray.indexOf(name.value);
|
3152
|
-
const nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % themeArray.length;
|
3153
|
-
change(themeArray[nextIndex]);
|
3154
|
-
}
|
3155
|
-
function toggle() {
|
3156
|
-
let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['light', 'dark'];
|
3157
|
-
cycle(themeArray);
|
3158
|
-
}
|
3159
|
-
const globalName = new Proxy(name, {
|
3160
|
-
get(target, prop) {
|
3161
|
-
return target[prop];
|
3162
|
-
},
|
3163
|
-
set(target, prop, val) {
|
3164
|
-
if (prop === 'value') {
|
3165
|
-
deprecate(`theme.global.name.value = ${val}`, `theme.change('${val}')`);
|
3166
|
-
}
|
3167
|
-
// @ts-expect-error
|
3168
|
-
target[prop] = val;
|
3169
|
-
return true;
|
3170
|
-
}
|
3171
|
-
});
|
3106
|
+
const themeClasses = vue.toRef(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`);
|
3172
3107
|
return {
|
3173
3108
|
install,
|
3174
|
-
change,
|
3175
|
-
cycle,
|
3176
|
-
toggle,
|
3177
3109
|
isDisabled: parsedOptions.isDisabled,
|
3178
3110
|
name,
|
3179
3111
|
themes,
|
3180
3112
|
current,
|
3181
3113
|
computedThemes,
|
3182
|
-
prefix: parsedOptions.prefix,
|
3183
3114
|
themeClasses,
|
3184
3115
|
styles,
|
3185
3116
|
global: {
|
3186
|
-
name
|
3117
|
+
name,
|
3187
3118
|
current
|
3188
3119
|
}
|
3189
3120
|
};
|
@@ -3194,7 +3125,7 @@
|
|
3194
3125
|
if (!theme) throw new Error('Could not find Vuetify theme injection');
|
3195
3126
|
const name = vue.toRef(() => props.theme ?? theme.name.value);
|
3196
3127
|
const current = vue.toRef(() => theme.themes.value[name.value]);
|
3197
|
-
const themeClasses = vue.toRef(() => theme.isDisabled ? undefined :
|
3128
|
+
const themeClasses = vue.toRef(() => theme.isDisabled ? undefined : `v-theme--${name.value}`);
|
3198
3129
|
const newTheme = {
|
3199
3130
|
...theme,
|
3200
3131
|
name,
|
@@ -4298,10 +4229,7 @@
|
|
4298
4229
|
default: 'default',
|
4299
4230
|
validator: v => allowedDensities$1.includes(v)
|
4300
4231
|
},
|
4301
|
-
extended:
|
4302
|
-
type: Boolean,
|
4303
|
-
default: null
|
4304
|
-
},
|
4232
|
+
extended: Boolean,
|
4305
4233
|
extensionHeight: {
|
4306
4234
|
type: [Number, String],
|
4307
4235
|
default: 48
|
@@ -4349,7 +4277,7 @@
|
|
4349
4277
|
const {
|
4350
4278
|
rtlClasses
|
4351
4279
|
} = useRtl();
|
4352
|
-
const isExtended = vue.shallowRef(props.extended
|
4280
|
+
const isExtended = vue.shallowRef(!!(props.extended || slots.extension?.()));
|
4353
4281
|
const contentHeight = vue.computed(() => parseInt(Number(props.height) + (props.density === 'prominent' ? Number(props.height) : 0) - (props.density === 'comfortable' ? 8 : 0) - (props.density === 'compact' ? 16 : 0), 10));
|
4354
4282
|
const extensionHeight = vue.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);
|
4355
4283
|
provideDefaults({
|
@@ -4361,7 +4289,7 @@
|
|
4361
4289
|
const hasTitle = !!(props.title || slots.title);
|
4362
4290
|
const hasImage = !!(slots.image || props.image);
|
4363
4291
|
const extension = slots.extension?.();
|
4364
|
-
isExtended.value = props.extended
|
4292
|
+
isExtended.value = !!(props.extended || extension);
|
4365
4293
|
return vue.createVNode(props.tag, {
|
4366
4294
|
"class": vue.normalizeClass(['v-toolbar', {
|
4367
4295
|
'v-toolbar--absolute': props.absolute,
|
@@ -4744,15 +4672,9 @@
|
|
4744
4672
|
};
|
4745
4673
|
}
|
4746
4674
|
|
4747
|
-
// Types
|
4748
|
-
|
4749
4675
|
const makeVBtnGroupProps = propsFactory({
|
4750
4676
|
baseColor: String,
|
4751
4677
|
divided: Boolean,
|
4752
|
-
direction: {
|
4753
|
-
type: String,
|
4754
|
-
default: 'horizontal'
|
4755
|
-
},
|
4756
4678
|
...makeBorderProps(),
|
4757
4679
|
...makeComponentProps(),
|
4758
4680
|
...makeDensityProps(),
|
@@ -4786,7 +4708,7 @@
|
|
4786
4708
|
} = useRounded(props);
|
4787
4709
|
provideDefaults({
|
4788
4710
|
VBtn: {
|
4789
|
-
height:
|
4711
|
+
height: 'auto',
|
4790
4712
|
baseColor: vue.toRef(() => props.baseColor),
|
4791
4713
|
color: vue.toRef(() => props.color),
|
4792
4714
|
density: vue.toRef(() => props.density),
|
@@ -4796,7 +4718,7 @@
|
|
4796
4718
|
});
|
4797
4719
|
useRender(() => {
|
4798
4720
|
return vue.createVNode(props.tag, {
|
4799
|
-
"class": vue.normalizeClass(['v-btn-group',
|
4721
|
+
"class": vue.normalizeClass(['v-btn-group', {
|
4800
4722
|
'v-btn-group--divided': props.divided
|
4801
4723
|
}, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class]),
|
4802
4724
|
"style": vue.normalizeStyle(props.style)
|
@@ -5919,8 +5841,8 @@
|
|
5919
5841
|
window.clearTimeout(element._ripple.showTimer);
|
5920
5842
|
}
|
5921
5843
|
let keyboardRipple = false;
|
5922
|
-
function keyboardRippleShow(e
|
5923
|
-
if (!keyboardRipple &&
|
5844
|
+
function keyboardRippleShow(e) {
|
5845
|
+
if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {
|
5924
5846
|
keyboardRipple = true;
|
5925
5847
|
rippleShow(e);
|
5926
5848
|
}
|
@@ -5948,12 +5870,9 @@
|
|
5948
5870
|
el._ripple.enabled = enabled;
|
5949
5871
|
el._ripple.centered = modifiers.center;
|
5950
5872
|
el._ripple.circle = modifiers.circle;
|
5951
|
-
|
5952
|
-
|
5953
|
-
el._ripple.class = bindingValue.class;
|
5873
|
+
if (isObject(value) && value.class) {
|
5874
|
+
el._ripple.class = value.class;
|
5954
5875
|
}
|
5955
|
-
const allowedKeys = bindingValue.keys ?? [keyCodes.enter, keyCodes.space];
|
5956
|
-
el._ripple.keyDownHandler = e => keyboardRippleShow(e, allowedKeys);
|
5957
5876
|
if (enabled && !wasEnabled) {
|
5958
5877
|
if (modifiers.stop) {
|
5959
5878
|
el.addEventListener('touchstart', rippleStop, {
|
@@ -5975,7 +5894,7 @@
|
|
5975
5894
|
el.addEventListener('mousedown', rippleShow);
|
5976
5895
|
el.addEventListener('mouseup', rippleHide);
|
5977
5896
|
el.addEventListener('mouseleave', rippleHide);
|
5978
|
-
el.addEventListener('keydown',
|
5897
|
+
el.addEventListener('keydown', keyboardRippleShow);
|
5979
5898
|
el.addEventListener('keyup', keyboardRippleHide);
|
5980
5899
|
el.addEventListener('blur', focusRippleHide);
|
5981
5900
|
|
@@ -5995,9 +5914,7 @@
|
|
5995
5914
|
el.removeEventListener('touchcancel', rippleHide);
|
5996
5915
|
el.removeEventListener('mouseup', rippleHide);
|
5997
5916
|
el.removeEventListener('mouseleave', rippleHide);
|
5998
|
-
|
5999
|
-
el.removeEventListener('keydown', el._ripple.keyDownHandler);
|
6000
|
-
}
|
5917
|
+
el.removeEventListener('keydown', keyboardRippleShow);
|
6001
5918
|
el.removeEventListener('keyup', keyboardRippleHide);
|
6002
5919
|
el.removeEventListener('dragstart', rippleHide);
|
6003
5920
|
el.removeEventListener('blur', focusRippleHide);
|
@@ -6006,8 +5923,8 @@
|
|
6006
5923
|
updateRipple(el, binding, false);
|
6007
5924
|
}
|
6008
5925
|
function unmounted$4(el) {
|
6009
|
-
removeListeners(el);
|
6010
5926
|
delete el._ripple;
|
5927
|
+
removeListeners(el);
|
6011
5928
|
}
|
6012
5929
|
function updated$1(el, binding) {
|
6013
5930
|
if (binding.value === binding.oldValue) {
|
@@ -6280,31 +6197,6 @@
|
|
6280
6197
|
// Utilities
|
6281
6198
|
const VAlertTitle = createSimpleFunctional('v-alert-title');
|
6282
6199
|
|
6283
|
-
// Utilities
|
6284
|
-
|
6285
|
-
// Types
|
6286
|
-
|
6287
|
-
// Types
|
6288
|
-
|
6289
|
-
// Composables
|
6290
|
-
const makeIconSizeProps = propsFactory({
|
6291
|
-
iconSize: [Number, String],
|
6292
|
-
iconSizes: {
|
6293
|
-
type: Array,
|
6294
|
-
default: () => [['x-small', 10], ['small', 16], ['default', 24], ['large', 28], ['x-large', 32]]
|
6295
|
-
}
|
6296
|
-
}, 'iconSize');
|
6297
|
-
function useIconSizes(props, fallback) {
|
6298
|
-
const iconSize = vue.computed(() => {
|
6299
|
-
const iconSizeMap = new Map(props.iconSizes);
|
6300
|
-
const _iconSize = props.iconSize ?? fallback() ?? 'default';
|
6301
|
-
return iconSizeMap.has(_iconSize) ? iconSizeMap.get(_iconSize) : _iconSize;
|
6302
|
-
});
|
6303
|
-
return {
|
6304
|
-
iconSize
|
6305
|
-
};
|
6306
|
-
}
|
6307
|
-
|
6308
6200
|
// Types
|
6309
6201
|
|
6310
6202
|
const allowedTypes = ['success', 'info', 'warning', 'error'];
|
@@ -6344,7 +6236,6 @@
|
|
6344
6236
|
...makeDensityProps(),
|
6345
6237
|
...makeDimensionProps(),
|
6346
6238
|
...makeElevationProps(),
|
6347
|
-
...makeIconSizeProps(),
|
6348
6239
|
...makeLocationProps(),
|
6349
6240
|
...makePositionProps(),
|
6350
6241
|
...makeRoundedProps(),
|
@@ -6372,9 +6263,6 @@
|
|
6372
6263
|
if (!props.type) return props.icon;
|
6373
6264
|
return props.icon ?? `$${props.type}`;
|
6374
6265
|
});
|
6375
|
-
const {
|
6376
|
-
iconSize
|
6377
|
-
} = useIconSizes(props, () => props.prominent ? 44 : 28);
|
6378
6266
|
const {
|
6379
6267
|
themeClasses
|
6380
6268
|
} = provideTheme(props);
|
@@ -6422,11 +6310,6 @@
|
|
6422
6310
|
const hasPrepend = !!(slots.prepend || icon.value);
|
6423
6311
|
const hasTitle = !!(slots.title || props.title);
|
6424
6312
|
const hasClose = !!(slots.close || props.closable);
|
6425
|
-
const iconProps = {
|
6426
|
-
density: props.density,
|
6427
|
-
icon: icon.value,
|
6428
|
-
size: iconSize.value
|
6429
|
-
};
|
6430
6313
|
return isActive.value && vue.createVNode(props.tag, {
|
6431
6314
|
"class": vue.normalizeClass(['v-alert', props.border && {
|
6432
6315
|
'v-alert--border': !!props.border,
|
@@ -6444,14 +6327,19 @@
|
|
6444
6327
|
}, null), hasPrepend && vue.createElementVNode("div", {
|
6445
6328
|
"key": "prepend",
|
6446
6329
|
"class": "v-alert__prepend"
|
6447
|
-
}, [!slots.prepend ? vue.createVNode(VIcon,
|
6448
|
-
"key": "prepend-icon"
|
6449
|
-
|
6330
|
+
}, [!slots.prepend ? vue.createVNode(VIcon, {
|
6331
|
+
"key": "prepend-icon",
|
6332
|
+
"density": props.density,
|
6333
|
+
"icon": icon.value,
|
6334
|
+
"size": props.prominent ? 44 : 28
|
6335
|
+
}, null) : vue.createVNode(VDefaultsProvider, {
|
6450
6336
|
"key": "prepend-defaults",
|
6451
6337
|
"disabled": !icon.value,
|
6452
6338
|
"defaults": {
|
6453
6339
|
VIcon: {
|
6454
|
-
|
6340
|
+
density: props.density,
|
6341
|
+
icon: icon.value,
|
6342
|
+
size: props.prominent ? 44 : 28
|
6455
6343
|
}
|
6456
6344
|
}
|
6457
6345
|
}, slots.prepend)]), vue.createElementVNode("div", {
|
@@ -7976,7 +7864,6 @@
|
|
7976
7864
|
const VSlideGroupSymbol = Symbol.for('vuetify:v-slide-group');
|
7977
7865
|
const makeVSlideGroupProps = propsFactory({
|
7978
7866
|
centerActive: Boolean,
|
7979
|
-
contentClass: null,
|
7980
7867
|
direction: {
|
7981
7868
|
type: String,
|
7982
7869
|
default: 'horizontal'
|
@@ -8289,7 +8176,7 @@
|
|
8289
8176
|
})]), vue.createElementVNode("div", {
|
8290
8177
|
"key": "container",
|
8291
8178
|
"ref": containerRef,
|
8292
|
-
"class":
|
8179
|
+
"class": "v-slide-group__container",
|
8293
8180
|
"onScroll": onScroll
|
8294
8181
|
}, [vue.createElementVNode("div", {
|
8295
8182
|
"ref": contentRef,
|
@@ -8652,85 +8539,16 @@
|
|
8652
8539
|
}
|
8653
8540
|
});
|
8654
8541
|
|
8655
|
-
const makeVDividerProps = propsFactory({
|
8656
|
-
color: String,
|
8657
|
-
inset: Boolean,
|
8658
|
-
length: [Number, String],
|
8659
|
-
opacity: [Number, String],
|
8660
|
-
thickness: [Number, String],
|
8661
|
-
vertical: Boolean,
|
8662
|
-
...makeComponentProps(),
|
8663
|
-
...makeThemeProps()
|
8664
|
-
}, 'VDivider');
|
8665
|
-
const VDivider = genericComponent()({
|
8666
|
-
name: 'VDivider',
|
8667
|
-
props: makeVDividerProps(),
|
8668
|
-
setup(props, _ref) {
|
8669
|
-
let {
|
8670
|
-
attrs,
|
8671
|
-
slots
|
8672
|
-
} = _ref;
|
8673
|
-
const {
|
8674
|
-
themeClasses
|
8675
|
-
} = provideTheme(props);
|
8676
|
-
const {
|
8677
|
-
textColorClasses,
|
8678
|
-
textColorStyles
|
8679
|
-
} = useTextColor(() => props.color);
|
8680
|
-
const dividerStyles = vue.computed(() => {
|
8681
|
-
const styles = {};
|
8682
|
-
if (props.length) {
|
8683
|
-
styles[props.vertical ? 'height' : 'width'] = convertToUnit(props.length);
|
8684
|
-
}
|
8685
|
-
if (props.thickness) {
|
8686
|
-
styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness);
|
8687
|
-
}
|
8688
|
-
return styles;
|
8689
|
-
});
|
8690
|
-
useRender(() => {
|
8691
|
-
const divider = vue.createElementVNode("hr", {
|
8692
|
-
"class": vue.normalizeClass([{
|
8693
|
-
'v-divider': true,
|
8694
|
-
'v-divider--inset': props.inset,
|
8695
|
-
'v-divider--vertical': props.vertical
|
8696
|
-
}, themeClasses.value, textColorClasses.value, props.class]),
|
8697
|
-
"style": vue.normalizeStyle([dividerStyles.value, textColorStyles.value, {
|
8698
|
-
'--v-border-opacity': props.opacity
|
8699
|
-
}, props.style]),
|
8700
|
-
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
8701
|
-
"role": `${attrs.role || 'separator'}`
|
8702
|
-
}, null);
|
8703
|
-
if (!slots.default) return divider;
|
8704
|
-
return vue.createElementVNode("div", {
|
8705
|
-
"class": vue.normalizeClass(['v-divider__wrapper', {
|
8706
|
-
'v-divider__wrapper--vertical': props.vertical,
|
8707
|
-
'v-divider__wrapper--inset': props.inset
|
8708
|
-
}])
|
8709
|
-
}, [divider, vue.createElementVNode("div", {
|
8710
|
-
"class": "v-divider__content"
|
8711
|
-
}, [slots.default()]), divider]);
|
8712
|
-
});
|
8713
|
-
return {};
|
8714
|
-
}
|
8715
|
-
});
|
8716
|
-
|
8717
8542
|
// Utilities
|
8718
8543
|
|
8719
8544
|
// List
|
8720
8545
|
const ListKey = Symbol.for('vuetify:list');
|
8721
8546
|
function createList() {
|
8722
|
-
let {
|
8723
|
-
filterable
|
8724
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
8725
|
-
filterable: false
|
8726
|
-
};
|
8727
8547
|
const parent = vue.inject(ListKey, {
|
8728
|
-
filterable: false,
|
8729
8548
|
hasPrepend: vue.shallowRef(false),
|
8730
8549
|
updateHasPrepend: () => null
|
8731
8550
|
});
|
8732
8551
|
const data = {
|
8733
|
-
filterable: parent.filterable || filterable,
|
8734
8552
|
hasPrepend: vue.shallowRef(false),
|
8735
8553
|
updateHasPrepend: value => {
|
8736
8554
|
if (value) data.hasPrepend.value = value;
|
@@ -9682,9 +9500,6 @@
|
|
9682
9500
|
roundedClasses
|
9683
9501
|
} = useRounded(roundedProps);
|
9684
9502
|
const lineClasses = vue.toRef(() => props.lines ? `v-list-item--${props.lines}-line` : undefined);
|
9685
|
-
const rippleOptions = vue.toRef(() => props.ripple !== undefined && !!props.ripple && list?.filterable ? {
|
9686
|
-
keys: [keyCodes.enter]
|
9687
|
-
} : props.ripple);
|
9688
9503
|
const slotProps = vue.computed(() => ({
|
9689
9504
|
isActive: isActive.value,
|
9690
9505
|
select,
|
@@ -9709,9 +9524,8 @@
|
|
9709
9524
|
function onKeyDown(e) {
|
9710
9525
|
const target = e.target;
|
9711
9526
|
if (['INPUT', 'TEXTAREA'].includes(target.tagName)) return;
|
9712
|
-
if (e.key === 'Enter' || e.key === ' '
|
9527
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
9713
9528
|
e.preventDefault();
|
9714
|
-
e.stopPropagation();
|
9715
9529
|
e.target.dispatchEvent(new MouseEvent('click', e));
|
9716
9530
|
}
|
9717
9531
|
}
|
@@ -9821,7 +9635,7 @@
|
|
9821
9635
|
}), vue.createElementVNode("div", {
|
9822
9636
|
"class": "v-list-item__spacer"
|
9823
9637
|
}, null)])]
|
9824
|
-
}), [[Ripple, isClickable.value &&
|
9638
|
+
}), [[Ripple, isClickable.value && props.ripple]]);
|
9825
9639
|
});
|
9826
9640
|
return {
|
9827
9641
|
activate,
|
@@ -9876,6 +9690,68 @@
|
|
9876
9690
|
}
|
9877
9691
|
});
|
9878
9692
|
|
9693
|
+
const makeVDividerProps = propsFactory({
|
9694
|
+
color: String,
|
9695
|
+
inset: Boolean,
|
9696
|
+
length: [Number, String],
|
9697
|
+
opacity: [Number, String],
|
9698
|
+
thickness: [Number, String],
|
9699
|
+
vertical: Boolean,
|
9700
|
+
...makeComponentProps(),
|
9701
|
+
...makeThemeProps()
|
9702
|
+
}, 'VDivider');
|
9703
|
+
const VDivider = genericComponent()({
|
9704
|
+
name: 'VDivider',
|
9705
|
+
props: makeVDividerProps(),
|
9706
|
+
setup(props, _ref) {
|
9707
|
+
let {
|
9708
|
+
attrs,
|
9709
|
+
slots
|
9710
|
+
} = _ref;
|
9711
|
+
const {
|
9712
|
+
themeClasses
|
9713
|
+
} = provideTheme(props);
|
9714
|
+
const {
|
9715
|
+
textColorClasses,
|
9716
|
+
textColorStyles
|
9717
|
+
} = useTextColor(() => props.color);
|
9718
|
+
const dividerStyles = vue.computed(() => {
|
9719
|
+
const styles = {};
|
9720
|
+
if (props.length) {
|
9721
|
+
styles[props.vertical ? 'height' : 'width'] = convertToUnit(props.length);
|
9722
|
+
}
|
9723
|
+
if (props.thickness) {
|
9724
|
+
styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness);
|
9725
|
+
}
|
9726
|
+
return styles;
|
9727
|
+
});
|
9728
|
+
useRender(() => {
|
9729
|
+
const divider = vue.createElementVNode("hr", {
|
9730
|
+
"class": vue.normalizeClass([{
|
9731
|
+
'v-divider': true,
|
9732
|
+
'v-divider--inset': props.inset,
|
9733
|
+
'v-divider--vertical': props.vertical
|
9734
|
+
}, themeClasses.value, textColorClasses.value, props.class]),
|
9735
|
+
"style": vue.normalizeStyle([dividerStyles.value, textColorStyles.value, {
|
9736
|
+
'--v-border-opacity': props.opacity
|
9737
|
+
}, props.style]),
|
9738
|
+
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
9739
|
+
"role": `${attrs.role || 'separator'}`
|
9740
|
+
}, null);
|
9741
|
+
if (!slots.default) return divider;
|
9742
|
+
return vue.createElementVNode("div", {
|
9743
|
+
"class": vue.normalizeClass(['v-divider__wrapper', {
|
9744
|
+
'v-divider__wrapper--vertical': props.vertical,
|
9745
|
+
'v-divider__wrapper--inset': props.inset
|
9746
|
+
}])
|
9747
|
+
}, [divider, vue.createElementVNode("div", {
|
9748
|
+
"class": "v-divider__content"
|
9749
|
+
}, [slots.default()]), divider]);
|
9750
|
+
});
|
9751
|
+
return {};
|
9752
|
+
}
|
9753
|
+
});
|
9754
|
+
|
9879
9755
|
// Types
|
9880
9756
|
|
9881
9757
|
const makeVListChildrenProps = propsFactory({
|
@@ -10144,7 +10020,6 @@
|
|
10144
10020
|
activeClass: String,
|
10145
10021
|
bgColor: String,
|
10146
10022
|
disabled: Boolean,
|
10147
|
-
filterable: Boolean,
|
10148
10023
|
expandIcon: IconValue,
|
10149
10024
|
collapseIcon: IconValue,
|
10150
10025
|
lines: {
|
@@ -10228,9 +10103,7 @@
|
|
10228
10103
|
const activeColor = vue.toRef(() => props.activeColor);
|
10229
10104
|
const baseColor = vue.toRef(() => props.baseColor);
|
10230
10105
|
const color = vue.toRef(() => props.color);
|
10231
|
-
createList(
|
10232
|
-
filterable: props.filterable
|
10233
|
-
});
|
10106
|
+
createList();
|
10234
10107
|
provideDefaults({
|
10235
10108
|
VListGroup: {
|
10236
10109
|
activeColor,
|
@@ -12806,12 +12679,7 @@
|
|
12806
12679
|
}
|
12807
12680
|
function calculateOffset(index) {
|
12808
12681
|
index = clamp(index, 0, items.value.length - 1);
|
12809
|
-
|
12810
|
-
const fraction = index % 1;
|
12811
|
-
const next = whole + 1;
|
12812
|
-
const wholeOffset = offsets[whole] || 0;
|
12813
|
-
const nextOffset = offsets[next] || wholeOffset;
|
12814
|
-
return wholeOffset + (nextOffset - wholeOffset) * fraction;
|
12682
|
+
return offsets[index] || 0;
|
12815
12683
|
}
|
12816
12684
|
function calculateIndex(scrollTop) {
|
12817
12685
|
return binaryClosest(offsets, scrollTop);
|
@@ -13165,7 +13033,6 @@
|
|
13165
13033
|
},
|
13166
13034
|
openOnClear: Boolean,
|
13167
13035
|
itemColor: String,
|
13168
|
-
noAutoScroll: Boolean,
|
13169
13036
|
...makeItemsProps({
|
13170
13037
|
itemChildren: false
|
13171
13038
|
})
|
@@ -13380,7 +13247,7 @@
|
|
13380
13247
|
vue.watch(menu, () => {
|
13381
13248
|
if (!props.hideSelected && menu.value && model.value.length) {
|
13382
13249
|
const index = displayItems.value.findIndex(item => model.value.some(s => (props.valueComparator || deepEqual)(s.value, item.value)));
|
13383
|
-
IN_BROWSER &&
|
13250
|
+
IN_BROWSER && window.requestAnimationFrame(() => {
|
13384
13251
|
index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
|
13385
13252
|
});
|
13386
13253
|
}
|
@@ -13472,22 +13339,6 @@
|
|
13472
13339
|
key: item.value,
|
13473
13340
|
onClick: () => select(item, null)
|
13474
13341
|
});
|
13475
|
-
if (item.raw.type === 'divider') {
|
13476
|
-
return slots.divider?.({
|
13477
|
-
props: item.raw,
|
13478
|
-
index
|
13479
|
-
}) ?? vue.createVNode(VDivider, vue.mergeProps(item.props, {
|
13480
|
-
"key": `divider-${index}`
|
13481
|
-
}), null);
|
13482
|
-
}
|
13483
|
-
if (item.raw.type === 'subheader') {
|
13484
|
-
return slots.subheader?.({
|
13485
|
-
props: item.raw,
|
13486
|
-
index
|
13487
|
-
}) ?? vue.createVNode(VListSubheader, vue.mergeProps(item.props, {
|
13488
|
-
"key": `subheader-${index}`
|
13489
|
-
}), null);
|
13490
|
-
}
|
13491
13342
|
return slots.item?.({
|
13492
13343
|
item,
|
13493
13344
|
index,
|
@@ -13648,9 +13499,6 @@
|
|
13648
13499
|
let match = -1;
|
13649
13500
|
if ((query || customFiltersLength > 0) && !options?.noFilter) {
|
13650
13501
|
if (typeof item === 'object') {
|
13651
|
-
if (['divider', 'subheader'].includes(item.raw?.type)) {
|
13652
|
-
continue;
|
13653
|
-
}
|
13654
13502
|
const filterKeys = keys || Object.keys(transformed);
|
13655
13503
|
for (const key of filterKeys) {
|
13656
13504
|
const value = getPropertyFromItem(transformed, key);
|
@@ -13853,7 +13701,7 @@
|
|
13853
13701
|
menu.value = !menu.value;
|
13854
13702
|
}
|
13855
13703
|
function onListKeydown(e) {
|
13856
|
-
if (
|
13704
|
+
if (e.key !== ' ' && checkPrintable(e)) {
|
13857
13705
|
vTextFieldRef.value?.focus();
|
13858
13706
|
}
|
13859
13707
|
}
|
@@ -14058,7 +13906,6 @@
|
|
14058
13906
|
}, props.menuProps), {
|
14059
13907
|
default: () => [hasList && vue.createVNode(VList, vue.mergeProps({
|
14060
13908
|
"ref": listRef,
|
14061
|
-
"filterable": true,
|
14062
13909
|
"selected": selectedValues.value,
|
14063
13910
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
14064
13911
|
"onMousedown": e => e.preventDefault(),
|
@@ -14090,22 +13937,6 @@
|
|
14090
13937
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
14091
13938
|
onClick: () => select(item, null)
|
14092
13939
|
});
|
14093
|
-
if (item.raw.type === 'divider') {
|
14094
|
-
return slots.divider?.({
|
14095
|
-
props: item.raw,
|
14096
|
-
index
|
14097
|
-
}) ?? vue.createVNode(VDivider, vue.mergeProps(item.props, {
|
14098
|
-
"key": `divider-${index}`
|
14099
|
-
}), null);
|
14100
|
-
}
|
14101
|
-
if (item.raw.type === 'subheader') {
|
14102
|
-
return slots.subheader?.({
|
14103
|
-
props: item.raw,
|
14104
|
-
index
|
14105
|
-
}) ?? vue.createVNode(VListSubheader, vue.mergeProps(item.props, {
|
14106
|
-
"key": `subheader-${index}`
|
14107
|
-
}), null);
|
14108
|
-
}
|
14109
13940
|
return slots.item?.({
|
14110
13941
|
item,
|
14111
13942
|
index,
|
@@ -17710,13 +17541,13 @@
|
|
17710
17541
|
return null;
|
17711
17542
|
}
|
17712
17543
|
const sundayJanuarySecond2000 = new Date(2000, 0, 2);
|
17713
|
-
function getWeekdays(locale, firstDayOfWeek
|
17544
|
+
function getWeekdays(locale, firstDayOfWeek) {
|
17714
17545
|
const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
|
17715
17546
|
return createRange(7).map(i => {
|
17716
17547
|
const weekday = new Date(sundayJanuarySecond2000);
|
17717
17548
|
weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
|
17718
17549
|
return new Intl.DateTimeFormat(locale, {
|
17719
|
-
weekday:
|
17550
|
+
weekday: 'narrow'
|
17720
17551
|
}).format(weekday);
|
17721
17552
|
});
|
17722
17553
|
}
|
@@ -18180,9 +18011,9 @@
|
|
18180
18011
|
getDiff(date, comparing, unit) {
|
18181
18012
|
return getDiff(date, comparing, unit);
|
18182
18013
|
}
|
18183
|
-
getWeekdays(firstDayOfWeek
|
18014
|
+
getWeekdays(firstDayOfWeek) {
|
18184
18015
|
const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
|
18185
|
-
return getWeekdays(this.locale, firstDay
|
18016
|
+
return getWeekdays(this.locale, firstDay);
|
18186
18017
|
}
|
18187
18018
|
getYear(date) {
|
18188
18019
|
return getYear(date);
|
@@ -18538,7 +18369,6 @@
|
|
18538
18369
|
_search.value = val ?? '';
|
18539
18370
|
if (!props.multiple && !hasSelectionSlot.value) {
|
18540
18371
|
model.value = [transformItem$3(props, val)];
|
18541
|
-
vue.nextTick(() => vVirtualScrollRef.value?.scrollToIndex(0));
|
18542
18372
|
}
|
18543
18373
|
if (val && props.multiple && props.delimiters?.length) {
|
18544
18374
|
const values = val.split(new RegExp(`(?:${props.delimiters.join('|')})+`));
|
@@ -18619,7 +18449,7 @@
|
|
18619
18449
|
menu.value = !menu.value;
|
18620
18450
|
}
|
18621
18451
|
function onListKeydown(e) {
|
18622
|
-
if (
|
18452
|
+
if (e.key !== ' ' && checkPrintable(e)) {
|
18623
18453
|
vTextFieldRef.value?.focus();
|
18624
18454
|
}
|
18625
18455
|
}
|
@@ -18824,7 +18654,6 @@
|
|
18824
18654
|
}, props.menuProps), {
|
18825
18655
|
default: () => [hasList && vue.createVNode(VList, vue.mergeProps({
|
18826
18656
|
"ref": listRef,
|
18827
|
-
"filterable": true,
|
18828
18657
|
"selected": selectedValues.value,
|
18829
18658
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
18830
18659
|
"onMousedown": e => e.preventDefault(),
|
@@ -18856,22 +18685,6 @@
|
|
18856
18685
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
18857
18686
|
onClick: () => select(item, null)
|
18858
18687
|
});
|
18859
|
-
if (item.raw.type === 'divider') {
|
18860
|
-
return slots.divider?.({
|
18861
|
-
props: item.raw,
|
18862
|
-
index
|
18863
|
-
}) ?? vue.createVNode(VDivider, vue.mergeProps(item.props, {
|
18864
|
-
"key": `divider-${index}`
|
18865
|
-
}), null);
|
18866
|
-
}
|
18867
|
-
if (item.raw.type === 'subheader') {
|
18868
|
-
return slots.subheader?.({
|
18869
|
-
props: item.raw,
|
18870
|
-
index
|
18871
|
-
}) ?? vue.createVNode(VListSubheader, vue.mergeProps(item.props, {
|
18872
|
-
"key": `subheader-${index}`
|
18873
|
-
}), null);
|
18874
|
-
}
|
18875
18688
|
return slots.item?.({
|
18876
18689
|
item,
|
18877
18690
|
index,
|
@@ -20751,7 +20564,6 @@
|
|
20751
20564
|
color: String,
|
20752
20565
|
disableSort: Boolean,
|
20753
20566
|
fixedHeader: Boolean,
|
20754
|
-
lastFixed: Boolean,
|
20755
20567
|
multiSort: Boolean,
|
20756
20568
|
sortAscIcon: {
|
20757
20569
|
type: IconValue,
|
@@ -20798,11 +20610,10 @@
|
|
20798
20610
|
loaderClasses
|
20799
20611
|
} = useLoader(props);
|
20800
20612
|
function getFixedStyles(column, y) {
|
20801
|
-
if (!(props.sticky || props.fixedHeader) && !
|
20613
|
+
if (!(props.sticky || props.fixedHeader) && !column.fixed) return undefined;
|
20802
20614
|
return {
|
20803
20615
|
position: 'sticky',
|
20804
|
-
left: column.fixed
|
20805
|
-
right: column.lastFixed ? convertToUnit(column.fixedOffset ?? 0) : undefined,
|
20616
|
+
left: column.fixed ? convertToUnit(column.fixedOffset) : undefined,
|
20806
20617
|
top: props.sticky || props.fixedHeader ? `calc(var(--v-table-header-height) * ${y})` : undefined
|
20807
20618
|
};
|
20808
20619
|
}
|
@@ -21311,18 +21122,11 @@
|
|
21311
21122
|
}
|
21312
21123
|
});
|
21313
21124
|
|
21314
|
-
// Types
|
21315
|
-
|
21316
21125
|
const makeVTableProps = propsFactory({
|
21317
21126
|
fixedHeader: Boolean,
|
21318
21127
|
fixedFooter: Boolean,
|
21319
21128
|
height: [Number, String],
|
21320
21129
|
hover: Boolean,
|
21321
|
-
striped: {
|
21322
|
-
type: String,
|
21323
|
-
default: null,
|
21324
|
-
validator: v => ['even', 'odd'].includes(v)
|
21325
|
-
},
|
21326
21130
|
...makeComponentProps(),
|
21327
21131
|
...makeDensityProps(),
|
21328
21132
|
...makeTagProps(),
|
@@ -21349,9 +21153,7 @@
|
|
21349
21153
|
'v-table--fixed-footer': props.fixedFooter,
|
21350
21154
|
'v-table--has-top': !!slots.top,
|
21351
21155
|
'v-table--has-bottom': !!slots.bottom,
|
21352
|
-
'v-table--hover': props.hover
|
21353
|
-
'v-table--striped-even': props.striped === 'even',
|
21354
|
-
'v-table--striped-odd': props.striped === 'odd'
|
21156
|
+
'v-table--hover': props.hover
|
21355
21157
|
}, themeClasses.value, densityClasses.value, props.class]),
|
21356
21158
|
"style": vue.normalizeStyle(props.style)
|
21357
21159
|
}, {
|
@@ -22526,8 +22328,7 @@
|
|
22526
22328
|
firstDayOfWeek: {
|
22527
22329
|
type: [Number, String],
|
22528
22330
|
default: undefined
|
22529
|
-
}
|
22530
|
-
weekdayFormat: String
|
22331
|
+
}
|
22531
22332
|
}, 'calendar');
|
22532
22333
|
function useCalendar(props) {
|
22533
22334
|
const adapter = useDate();
|
@@ -22768,7 +22569,7 @@
|
|
22768
22569
|
"ref": daysRef,
|
22769
22570
|
"key": daysInMonth.value[0].date?.toString(),
|
22770
22571
|
"class": "v-date-picker-month__days"
|
22771
|
-
}, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek
|
22572
|
+
}, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => vue.createElementVNode("div", {
|
22772
22573
|
"class": vue.normalizeClass(['v-date-picker-month__day', 'v-date-picker-month__weekday'])
|
22773
22574
|
}, [weekDay])), daysInMonth.value.map((item, i) => {
|
22774
22575
|
const slotProps = {
|
@@ -25358,10 +25159,6 @@
|
|
25358
25159
|
type: Number,
|
25359
25160
|
default: 0
|
25360
25161
|
},
|
25361
|
-
minFractionDigits: {
|
25362
|
-
type: Number,
|
25363
|
-
default: null
|
25364
|
-
},
|
25365
25162
|
...omit(makeVTextFieldProps(), ['modelValue', 'validationValue'])
|
25366
25163
|
}, 'VNumberInput');
|
25367
25164
|
const VNumberInput = genericComponent()({
|
@@ -25392,19 +25189,9 @@
|
|
25392
25189
|
} = useFocus(props);
|
25393
25190
|
function correctPrecision(val) {
|
25394
25191
|
let precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.precision;
|
25395
|
-
|
25396
|
-
|
25397
|
-
|
25398
|
-
let fixed = val.toFixed(precision);
|
25399
|
-
if (isFocused.value) {
|
25400
|
-
return Number(fixed).toString(); // trim zeros
|
25401
|
-
}
|
25402
|
-
if ((props.minFractionDigits ?? precision) < precision) {
|
25403
|
-
const trimLimit = precision - props.minFractionDigits;
|
25404
|
-
const [baseDigits, fractionDigits] = fixed.split('.');
|
25405
|
-
fixed = [baseDigits, fractionDigits.replace(new RegExp(`0{1,${trimLimit}}$`), '')].filter(Boolean).join('.');
|
25406
|
-
}
|
25407
|
-
return fixed;
|
25192
|
+
const fixed = precision == null ? String(val) : val.toFixed(precision);
|
25193
|
+
return isFocused.value ? Number(fixed).toString() // trim zeros
|
25194
|
+
: fixed;
|
25408
25195
|
}
|
25409
25196
|
const model = useProxiedModel(props, 'modelValue', null, val => val ?? null, val => val == null ? val ?? null : clamp(Number(val), props.min, props.max));
|
25410
25197
|
const _inputText = vue.shallowRef(null);
|
@@ -25459,7 +25246,6 @@
|
|
25459
25246
|
}
|
25460
25247
|
};
|
25461
25248
|
vue.watch(() => props.precision, () => formatInputValue());
|
25462
|
-
vue.watch(() => props.minFractionDigits, () => formatInputValue());
|
25463
25249
|
vue.onMounted(() => {
|
25464
25250
|
clampModel();
|
25465
25251
|
});
|
@@ -25574,7 +25360,7 @@
|
|
25574
25360
|
inputText.value = null;
|
25575
25361
|
return;
|
25576
25362
|
}
|
25577
|
-
inputText.value =
|
25363
|
+
inputText.value = props.precision == null ? String(model.value) : model.value.toFixed(props.precision);
|
25578
25364
|
}
|
25579
25365
|
function trimDecimalZeros() {
|
25580
25366
|
if (controlsDisabled.value) return;
|
@@ -25834,10 +25620,9 @@
|
|
25834
25620
|
e.preventDefault();
|
25835
25621
|
e.stopPropagation();
|
25836
25622
|
const clipboardText = e?.clipboardData?.getData('Text').slice(0, length.value) ?? '';
|
25837
|
-
const finalIndex = clipboardText.length - 1 === -1 ? index : clipboardText.length - 1;
|
25838
25623
|
if (isValidNumber(clipboardText)) return;
|
25839
25624
|
model.value = clipboardText.split('');
|
25840
|
-
inputRef.value?.[
|
25625
|
+
inputRef.value?.[index].blur();
|
25841
25626
|
}
|
25842
25627
|
function reset() {
|
25843
25628
|
model.value = [];
|
@@ -29619,7 +29404,7 @@
|
|
29619
29404
|
};
|
29620
29405
|
});
|
29621
29406
|
}
|
29622
|
-
const version$1 = "3.8.8-
|
29407
|
+
const version$1 = "3.8.8-master.2025-06-06";
|
29623
29408
|
createVuetify$1.version = version$1;
|
29624
29409
|
|
29625
29410
|
// Vue's inject() can only be used in setup
|
@@ -29644,7 +29429,7 @@
|
|
29644
29429
|
...options
|
29645
29430
|
});
|
29646
29431
|
};
|
29647
|
-
const version = "3.8.8-
|
29432
|
+
const version = "3.8.8-master.2025-06-06";
|
29648
29433
|
createVuetify.version = version;
|
29649
29434
|
|
29650
29435
|
exports.blueprints = index;
|