@vuetify/nightly 3.8.7-master.2025-06-03 → 3.8.8-dev.2025-06-08
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 +30 -15
- package/dist/json/attributes.json +3542 -3418
- package/dist/json/importMap-labs.json +18 -18
- package/dist/json/importMap.json +168 -168
- package/dist/json/tags.json +32 -1
- package/dist/json/web-types.json +6581 -6195
- package/dist/vuetify-labs.cjs +369 -147
- package/dist/vuetify-labs.css +3246 -3212
- package/dist/vuetify-labs.d.ts +2433 -1899
- package/dist/vuetify-labs.esm.js +370 -148
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +369 -147
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +363 -136
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3712 -3678
- package/dist/vuetify.d.ts +1588 -1094
- package/dist/vuetify.esm.js +364 -137
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +363 -136
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +1224 -1206
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.css +6 -1
- package/lib/components/VAlert/VAlert.d.ts +35 -0
- package/lib/components/VAlert/VAlert.js +15 -10
- package/lib/components/VAlert/VAlert.js.map +1 -1
- package/lib/components/VAlert/VAlert.sass +7 -1
- package/lib/components/VAppBar/VAppBar.d.ts +15 -3
- package/lib/components/VAppBar/VAppBarNavIcon.d.ts +20 -10
- package/lib/components/VAutocomplete/VAutocomplete.d.ts +154 -103
- package/lib/components/VAutocomplete/VAutocomplete.js +21 -3
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VBadge/VBadge.d.ts +60 -0
- package/lib/components/VBadge/VBadge.js +7 -2
- package/lib/components/VBadge/VBadge.js.map +1 -1
- package/lib/components/VBtn/VBtn.d.ts +20 -10
- package/lib/components/VBtnGroup/VBtnGroup.css +30 -7
- package/lib/components/VBtnGroup/VBtnGroup.d.ts +58 -32
- package/lib/components/VBtnGroup/VBtnGroup.js +7 -3
- package/lib/components/VBtnGroup/VBtnGroup.js.map +1 -1
- package/lib/components/VBtnGroup/VBtnGroup.sass +44 -17
- package/lib/components/VBtnToggle/VBtnToggle.d.ts +25 -0
- package/lib/components/VCard/VCard.d.ts +20 -10
- package/lib/components/VCheckbox/VCheckbox.d.ts +23 -13
- package/lib/components/VCheckbox/VCheckboxBtn.d.ts +20 -10
- package/lib/components/VChip/VChip.d.ts +20 -10
- package/lib/components/VChipGroup/VChipGroup.d.ts +10 -0
- package/lib/components/VCombobox/VCombobox.d.ts +154 -103
- package/lib/components/VCombobox/VCombobox.js +22 -3
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.d.ts +60 -0
- package/lib/components/VDataTable/VDataTableHeaders.d.ts +13 -0
- package/lib/components/VDataTable/VDataTableHeaders.js +4 -2
- package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
- package/lib/components/VDataTable/VDataTableServer.d.ts +42 -0
- package/lib/components/VDataTable/VDataTableVirtual.d.ts +42 -0
- package/lib/components/VDatePicker/VDatePicker.d.ts +10 -0
- package/lib/components/VDatePicker/VDatePickerMonth.d.ts +10 -0
- package/lib/components/VDatePicker/VDatePickerMonth.js +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.d.ts +20 -10
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.d.ts +20 -10
- package/lib/components/VExpansionPanel/VExpansionPanels.d.ts +20 -10
- package/lib/components/VFab/VFab.d.ts +20 -10
- 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 +13 -0
- package/lib/components/VList/VList.js +4 -1
- 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 +23 -10
- package/lib/components/VList/VListItem.js +7 -3
- package/lib/components/VList/VListItem.js.map +1 -1
- package/lib/components/VList/list.d.ts +9 -2
- package/lib/components/VList/list.js +7 -0
- package/lib/components/VList/list.js.map +1 -1
- package/lib/components/VNumberInput/VNumberInput.d.ts +103 -89
- package/lib/components/VNumberInput/VNumberInput.js +19 -4
- package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.js +2 -1
- package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
- package/lib/components/VOverlay/VOverlay.css +1 -1
- package/lib/components/VOverlay/_variables.scss +1 -1
- package/lib/components/VRadio/VRadio.d.ts +20 -10
- package/lib/components/VRadioGroup/VRadioGroup.d.ts +23 -13
- package/lib/components/VRangeSlider/VRangeSlider.d.ts +3 -3
- package/lib/components/VSelect/VSelect.d.ts +171 -107
- package/lib/components/VSelect/VSelect.js +21 -3
- package/lib/components/VSelect/VSelect.js.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.d.ts +20 -10
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.d.ts +28 -14
- package/lib/components/VSlideGroup/VSlideGroup.d.ts +10 -0
- package/lib/components/VSlideGroup/VSlideGroup.js +2 -1
- package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
- package/lib/components/VSlider/VSlider.d.ts +3 -3
- package/lib/components/VSlider/VSliderThumb.d.ts +20 -10
- package/lib/components/VStepper/VStepperItem.d.ts +28 -14
- package/lib/components/VSwitch/VSwitch.d.ts +23 -13
- package/lib/components/VTable/VTable.css +6 -0
- package/lib/components/VTable/VTable.d.ts +55 -24
- package/lib/components/VTable/VTable.js +9 -2
- package/lib/components/VTable/VTable.js.map +1 -1
- package/lib/components/VTable/VTable.sass +14 -0
- package/lib/components/VTable/_variables.scss +1 -0
- package/lib/components/VTabs/VTab.d.ts +56 -28
- package/lib/components/VTabs/VTabs.d.ts +10 -0
- package/lib/components/VTextField/VTextField.d.ts +27 -27
- package/lib/components/VTextarea/VTextarea.d.ts +15 -15
- package/lib/components/VToolbar/VToolbar.d.ts +15 -3
- package/lib/components/VToolbar/VToolbar.js +6 -3
- package/lib/components/VToolbar/VToolbar.js.map +1 -1
- package/lib/composables/calendar.d.ts +6 -0
- package/lib/composables/calendar.js +2 -1
- package/lib/composables/calendar.js.map +1 -1
- package/lib/composables/date/DateAdapter.d.ts +3 -3
- package/lib/composables/date/DateAdapter.js.map +1 -1
- package/lib/composables/date/adapters/string.d.ts +54 -0
- package/lib/composables/date/adapters/string.js +153 -0
- package/lib/composables/date/adapters/string.js.map +1 -0
- 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 +1 -0
- package/lib/composables/date/index.js +1 -0
- package/lib/composables/date/index.js.map +1 -1
- package/lib/composables/filter.js +3 -0
- package/lib/composables/filter.js.map +1 -1
- package/lib/composables/iconSizes.d.ts +28 -0
- package/lib/composables/iconSizes.js +23 -0
- package/lib/composables/iconSizes.js.map +1 -0
- package/lib/composables/list-items.js +2 -2
- package/lib/composables/list-items.js.map +1 -1
- package/lib/composables/theme.d.ts +6 -1
- package/lib/composables/theme.js +94 -26
- package/lib/composables/theme.js.map +1 -1
- package/lib/composables/virtual.js +6 -1
- package/lib/composables/virtual.js.map +1 -1
- package/lib/directives/ripple/index.d.ts +2 -1
- package/lib/directives/ripple/index.js +12 -7
- 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 +83 -68
- package/lib/framework.js +1 -1
- package/lib/framework.js.map +1 -1
- package/lib/labs/VCalendar/VCalendar.d.ts +10 -0
- package/lib/labs/VColorInput/VColorInput.d.ts +3 -3
- package/lib/labs/VDateInput/VDateInput.d.ts +97 -87
- package/lib/labs/VFileUpload/VFileUpload.d.ts +3 -3
- package/lib/labs/VFileUpload/VFileUploadItem.d.ts +20 -10
- package/lib/labs/VIconBtn/VIconBtn.d.ts +29 -29
- package/lib/labs/VIconBtn/VIconBtn.js +7 -11
- package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
- package/lib/labs/VStepperVertical/VStepperVertical.d.ts +20 -10
- package/lib/labs/VStepperVertical/VStepperVerticalItem.d.ts +20 -10
- package/lib/labs/VTreeview/VTreeview.d.ts +13 -0
- package/lib/labs/VTreeview/VTreeviewItem.d.ts +20 -10
- package/lib/labs/entry-bundler.d.ts +3 -3
- package/lib/util/globals.d.ts +1 -0
- package/lib/util/globals.js +1 -0
- package/lib/util/globals.js.map +1 -1
- package/lib/util/helpers.d.ts +1 -0
- package/lib/util/helpers.js +9 -1
- package/lib/util/helpers.js.map +1 -1
- package/package.json +3 -1
package/dist/vuetify-labs.esm.js
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.8.
|
2
|
+
* Vuetify v3.8.8-dev.2025-06-08
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
6
6
|
|
7
|
-
import { shallowRef, reactive, watchEffect, toRef, capitalize, unref, Fragment, isVNode, Comment, warn, getCurrentInstance as getCurrentInstance$1, ref, computed, provide, inject as inject$1, defineComponent as defineComponent$1, h,
|
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, onBeforeUnmount, watch, readonly, onMounted, useId, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, getCurrentScope, createElementVNode, normalizeStyle, normalizeClass, createVNode, TransitionGroup, Transition, mergeProps, toRefs, toValue, 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
|
// Types
|
10
10
|
// eslint-disable-line vue/prefer-import-from-vue
|
@@ -81,6 +81,7 @@ const IN_BROWSER = typeof window !== 'undefined';
|
|
81
81
|
const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
|
82
82
|
const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0);
|
83
83
|
const SUPPORTS_EYE_DROPPER = IN_BROWSER && 'EyeDropper' in window;
|
84
|
+
const SUPPORTS_MATCH_MEDIA = IN_BROWSER && 'matchMedia' in window && typeof window.matchMedia === 'function';
|
84
85
|
|
85
86
|
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
86
87
|
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
@@ -602,6 +603,14 @@ function extractNumber(text, decimalDigitsLimit) {
|
|
602
603
|
}
|
603
604
|
return cleanText;
|
604
605
|
}
|
606
|
+
function camelizeProps(props) {
|
607
|
+
if (!props) return;
|
608
|
+
const out = {};
|
609
|
+
for (const prop in props) {
|
610
|
+
out[camelize(prop)] = props[prop];
|
611
|
+
}
|
612
|
+
return out;
|
613
|
+
}
|
605
614
|
|
606
615
|
// Utilities
|
607
616
|
const block = ['top', 'bottom'];
|
@@ -2337,6 +2346,7 @@ const makeThemeProps = propsFactory({
|
|
2337
2346
|
function genDefaults$2() {
|
2338
2347
|
return {
|
2339
2348
|
defaultTheme: 'light',
|
2349
|
+
prefix: 'v-',
|
2340
2350
|
variations: {
|
2341
2351
|
colors: [],
|
2342
2352
|
lighten: 0,
|
@@ -2418,7 +2428,10 @@ function genDefaults$2() {
|
|
2418
2428
|
}
|
2419
2429
|
}
|
2420
2430
|
},
|
2421
|
-
stylesheetId: 'vuetify-theme-stylesheet'
|
2431
|
+
stylesheetId: 'vuetify-theme-stylesheet',
|
2432
|
+
scoped: false,
|
2433
|
+
unimportant: false,
|
2434
|
+
utilities: true
|
2422
2435
|
};
|
2423
2436
|
}
|
2424
2437
|
function parseThemeOptions() {
|
@@ -2441,21 +2454,21 @@ function parseThemeOptions() {
|
|
2441
2454
|
function createCssClass(lines, selector, content, scope) {
|
2442
2455
|
lines.push(`${getScopedSelector(selector, scope)} {\n`, ...content.map(line => ` ${line};\n`), '}\n');
|
2443
2456
|
}
|
2444
|
-
function genCssVariables(theme) {
|
2457
|
+
function genCssVariables(theme, prefix) {
|
2445
2458
|
const lightOverlay = theme.dark ? 2 : 1;
|
2446
2459
|
const darkOverlay = theme.dark ? 1 : 2;
|
2447
2460
|
const variables = [];
|
2448
2461
|
for (const [key, value] of Object.entries(theme.colors)) {
|
2449
2462
|
const rgb = parseColor(value);
|
2450
|
-
variables.push(
|
2463
|
+
variables.push(`--${prefix}theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
|
2451
2464
|
if (!key.startsWith('on-')) {
|
2452
|
-
variables.push(
|
2465
|
+
variables.push(`--${prefix}theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
|
2453
2466
|
}
|
2454
2467
|
}
|
2455
2468
|
for (const [key, value] of Object.entries(theme.variables)) {
|
2456
2469
|
const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;
|
2457
2470
|
const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
|
2458
|
-
variables.push(
|
2471
|
+
variables.push(`--${prefix}${key}: ${rgb ?? value}`);
|
2459
2472
|
}
|
2460
2473
|
return variables;
|
2461
2474
|
}
|
@@ -2499,7 +2512,8 @@ function getScopedSelector(selector, scope) {
|
|
2499
2512
|
const scopeSelector = `:where(${scope})`;
|
2500
2513
|
return selector === ':root' ? scopeSelector : `${scopeSelector} ${selector}`;
|
2501
2514
|
}
|
2502
|
-
function upsertStyles(
|
2515
|
+
function upsertStyles(id, cspNonce, styles) {
|
2516
|
+
const styleEl = getOrCreateStyleElement(id, cspNonce);
|
2503
2517
|
if (!styleEl) return;
|
2504
2518
|
styleEl.innerHTML = styles;
|
2505
2519
|
}
|
@@ -2519,8 +2533,17 @@ function getOrCreateStyleElement(id, cspNonce) {
|
|
2519
2533
|
// Composables
|
2520
2534
|
function createTheme(options) {
|
2521
2535
|
const parsedOptions = parseThemeOptions(options);
|
2522
|
-
const
|
2536
|
+
const _name = shallowRef(parsedOptions.defaultTheme);
|
2523
2537
|
const themes = ref(parsedOptions.themes);
|
2538
|
+
const systemName = shallowRef('light');
|
2539
|
+
const name = computed({
|
2540
|
+
get() {
|
2541
|
+
return _name.value === 'system' ? systemName.value : _name.value;
|
2542
|
+
},
|
2543
|
+
set(val) {
|
2544
|
+
_name.value = val;
|
2545
|
+
}
|
2546
|
+
});
|
2524
2547
|
const computedThemes = computed(() => {
|
2525
2548
|
const acc = {};
|
2526
2549
|
for (const [name, original] of Object.entries(themes.value)) {
|
@@ -2541,28 +2564,49 @@ function createTheme(options) {
|
|
2541
2564
|
const current = toRef(() => computedThemes.value[name.value]);
|
2542
2565
|
const styles = computed(() => {
|
2543
2566
|
const lines = [];
|
2567
|
+
const important = parsedOptions.unimportant ? '' : ' !important';
|
2568
|
+
const scoped = parsedOptions.scoped ? parsedOptions.prefix : '';
|
2544
2569
|
if (current.value?.dark) {
|
2545
2570
|
createCssClass(lines, ':root', ['color-scheme: dark'], parsedOptions.scope);
|
2546
2571
|
}
|
2547
|
-
createCssClass(lines, ':root', genCssVariables(current.value), parsedOptions.scope);
|
2572
|
+
createCssClass(lines, ':root', genCssVariables(current.value, parsedOptions.prefix), parsedOptions.scope);
|
2548
2573
|
for (const [themeName, theme] of Object.entries(computedThemes.value)) {
|
2549
|
-
createCssClass(lines,
|
2550
|
-
}
|
2551
|
-
|
2552
|
-
|
2553
|
-
|
2554
|
-
|
2555
|
-
|
2556
|
-
|
2557
|
-
|
2558
|
-
|
2559
|
-
|
2560
|
-
|
2574
|
+
createCssClass(lines, `.${parsedOptions.prefix}theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme, parsedOptions.prefix)], parsedOptions.scope);
|
2575
|
+
}
|
2576
|
+
if (parsedOptions.utilities) {
|
2577
|
+
const bgLines = [];
|
2578
|
+
const fgLines = [];
|
2579
|
+
const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));
|
2580
|
+
for (const key of colors) {
|
2581
|
+
if (key.startsWith('on-')) {
|
2582
|
+
createCssClass(fgLines, `.${key}`, [`color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`], parsedOptions.scope);
|
2583
|
+
} else {
|
2584
|
+
createCssClass(bgLines, `.${scoped}bg-${key}`, [`--${parsedOptions.prefix}theme-overlay-multiplier: var(--${parsedOptions.prefix}theme-${key}-overlay-multiplier)`, `background-color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`, `color: rgb(var(--${parsedOptions.prefix}theme-on-${key}))${important}`], parsedOptions.scope);
|
2585
|
+
createCssClass(fgLines, `.${scoped}text-${key}`, [`color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`], parsedOptions.scope);
|
2586
|
+
createCssClass(fgLines, `.${scoped}border-${key}`, [`--${parsedOptions.prefix}border-color: var(--${parsedOptions.prefix}theme-${key})`], parsedOptions.scope);
|
2587
|
+
}
|
2561
2588
|
}
|
2589
|
+
lines.push(...bgLines, ...fgLines);
|
2562
2590
|
}
|
2563
|
-
lines.push(...bgLines, ...fgLines);
|
2564
2591
|
return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
|
2565
2592
|
});
|
2593
|
+
const themeClasses = toRef(() => parsedOptions.isDisabled ? undefined : `${parsedOptions.prefix}theme--${name.value}`);
|
2594
|
+
const themeNames = toRef(() => Object.keys(computedThemes.value));
|
2595
|
+
if (SUPPORTS_MATCH_MEDIA) {
|
2596
|
+
const media = window.matchMedia('(prefers-color-scheme: dark)');
|
2597
|
+
function updateSystemName() {
|
2598
|
+
systemName.value = media.matches ? 'dark' : 'light';
|
2599
|
+
}
|
2600
|
+
updateSystemName();
|
2601
|
+
media.addEventListener('change', updateSystemName, {
|
2602
|
+
passive: true
|
2603
|
+
});
|
2604
|
+
if (getCurrentScope()) {
|
2605
|
+
onScopeDispose(() => {
|
2606
|
+
media.removeEventListener('change', updateSystemName);
|
2607
|
+
});
|
2608
|
+
}
|
2609
|
+
}
|
2566
2610
|
function install(app) {
|
2567
2611
|
if (parsedOptions.isDisabled) return;
|
2568
2612
|
const head = app._context.provides.usehead;
|
@@ -2600,22 +2644,55 @@ function createTheme(options) {
|
|
2600
2644
|
updateStyles();
|
2601
2645
|
}
|
2602
2646
|
function updateStyles() {
|
2603
|
-
upsertStyles(
|
2647
|
+
upsertStyles(parsedOptions.stylesheetId, parsedOptions.cspNonce, styles.value);
|
2604
2648
|
}
|
2605
2649
|
}
|
2606
2650
|
}
|
2607
|
-
|
2651
|
+
function change(themeName) {
|
2652
|
+
if (!themeNames.value.includes(themeName)) {
|
2653
|
+
consoleWarn(`Theme "${themeName}" not found on the Vuetify theme instance`);
|
2654
|
+
return;
|
2655
|
+
}
|
2656
|
+
name.value = themeName;
|
2657
|
+
}
|
2658
|
+
function cycle() {
|
2659
|
+
let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : themeNames.value;
|
2660
|
+
const currentIndex = themeArray.indexOf(name.value);
|
2661
|
+
const nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % themeArray.length;
|
2662
|
+
change(themeArray[nextIndex]);
|
2663
|
+
}
|
2664
|
+
function toggle() {
|
2665
|
+
let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['light', 'dark'];
|
2666
|
+
cycle(themeArray);
|
2667
|
+
}
|
2668
|
+
const globalName = new Proxy(name, {
|
2669
|
+
get(target, prop) {
|
2670
|
+
return target[prop];
|
2671
|
+
},
|
2672
|
+
set(target, prop, val) {
|
2673
|
+
if (prop === 'value') {
|
2674
|
+
deprecate(`theme.global.name.value = ${val}`, `theme.change('${val}')`);
|
2675
|
+
}
|
2676
|
+
// @ts-expect-error
|
2677
|
+
target[prop] = val;
|
2678
|
+
return true;
|
2679
|
+
}
|
2680
|
+
});
|
2608
2681
|
return {
|
2609
2682
|
install,
|
2683
|
+
change,
|
2684
|
+
cycle,
|
2685
|
+
toggle,
|
2610
2686
|
isDisabled: parsedOptions.isDisabled,
|
2611
2687
|
name,
|
2612
2688
|
themes,
|
2613
2689
|
current,
|
2614
2690
|
computedThemes,
|
2691
|
+
prefix: parsedOptions.prefix,
|
2615
2692
|
themeClasses,
|
2616
2693
|
styles,
|
2617
2694
|
global: {
|
2618
|
-
name,
|
2695
|
+
name: globalName,
|
2619
2696
|
current
|
2620
2697
|
}
|
2621
2698
|
};
|
@@ -2626,7 +2703,7 @@ function provideTheme(props) {
|
|
2626
2703
|
if (!theme) throw new Error('Could not find Vuetify theme injection');
|
2627
2704
|
const name = toRef(() => props.theme ?? theme.name.value);
|
2628
2705
|
const current = toRef(() => theme.themes.value[name.value]);
|
2629
|
-
const themeClasses = toRef(() => theme.isDisabled ? undefined :
|
2706
|
+
const themeClasses = toRef(() => theme.isDisabled ? undefined : `${theme.prefix}theme--${name.value}`);
|
2630
2707
|
const newTheme = {
|
2631
2708
|
...theme,
|
2632
2709
|
name,
|
@@ -3730,7 +3807,10 @@ const makeVToolbarProps = propsFactory({
|
|
3730
3807
|
default: 'default',
|
3731
3808
|
validator: v => allowedDensities$1.includes(v)
|
3732
3809
|
},
|
3733
|
-
extended:
|
3810
|
+
extended: {
|
3811
|
+
type: Boolean,
|
3812
|
+
default: null
|
3813
|
+
},
|
3734
3814
|
extensionHeight: {
|
3735
3815
|
type: [Number, String],
|
3736
3816
|
default: 48
|
@@ -3778,7 +3858,7 @@ const VToolbar = genericComponent()({
|
|
3778
3858
|
const {
|
3779
3859
|
rtlClasses
|
3780
3860
|
} = useRtl();
|
3781
|
-
const isExtended = shallowRef(
|
3861
|
+
const isExtended = shallowRef(props.extended === null ? !!slots.extension?.() : props.extended);
|
3782
3862
|
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));
|
3783
3863
|
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);
|
3784
3864
|
provideDefaults({
|
@@ -3790,7 +3870,7 @@ const VToolbar = genericComponent()({
|
|
3790
3870
|
const hasTitle = !!(props.title || slots.title);
|
3791
3871
|
const hasImage = !!(slots.image || props.image);
|
3792
3872
|
const extension = slots.extension?.();
|
3793
|
-
isExtended.value =
|
3873
|
+
isExtended.value = props.extended === null ? !!extension : props.extended;
|
3794
3874
|
return createVNode(props.tag, {
|
3795
3875
|
"class": normalizeClass(['v-toolbar', {
|
3796
3876
|
'v-toolbar--absolute': props.absolute,
|
@@ -4173,9 +4253,15 @@ function useVariant(props) {
|
|
4173
4253
|
};
|
4174
4254
|
}
|
4175
4255
|
|
4256
|
+
// Types
|
4257
|
+
|
4176
4258
|
const makeVBtnGroupProps = propsFactory({
|
4177
4259
|
baseColor: String,
|
4178
4260
|
divided: Boolean,
|
4261
|
+
direction: {
|
4262
|
+
type: String,
|
4263
|
+
default: 'horizontal'
|
4264
|
+
},
|
4179
4265
|
...makeBorderProps(),
|
4180
4266
|
...makeComponentProps(),
|
4181
4267
|
...makeDensityProps(),
|
@@ -4209,7 +4295,7 @@ const VBtnGroup = genericComponent()({
|
|
4209
4295
|
} = useRounded(props);
|
4210
4296
|
provideDefaults({
|
4211
4297
|
VBtn: {
|
4212
|
-
height: 'auto',
|
4298
|
+
height: toRef(() => props.direction === 'horizontal' ? 'auto' : null),
|
4213
4299
|
baseColor: toRef(() => props.baseColor),
|
4214
4300
|
color: toRef(() => props.color),
|
4215
4301
|
density: toRef(() => props.density),
|
@@ -4219,7 +4305,7 @@ const VBtnGroup = genericComponent()({
|
|
4219
4305
|
});
|
4220
4306
|
useRender(() => {
|
4221
4307
|
return createVNode(props.tag, {
|
4222
|
-
"class": normalizeClass(['v-btn-group', {
|
4308
|
+
"class": normalizeClass(['v-btn-group', `v-btn-group--${props.direction}`, {
|
4223
4309
|
'v-btn-group--divided': props.divided
|
4224
4310
|
}, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class]),
|
4225
4311
|
"style": normalizeStyle(props.style)
|
@@ -5551,8 +5637,8 @@ function rippleCancelShow(e) {
|
|
5551
5637
|
window.clearTimeout(element._ripple.showTimer);
|
5552
5638
|
}
|
5553
5639
|
let keyboardRipple = false;
|
5554
|
-
function keyboardRippleShow(e) {
|
5555
|
-
if (!keyboardRipple && (e.keyCode
|
5640
|
+
function keyboardRippleShow(e, keys) {
|
5641
|
+
if (!keyboardRipple && keys.includes(e.keyCode)) {
|
5556
5642
|
keyboardRipple = true;
|
5557
5643
|
rippleShow(e);
|
5558
5644
|
}
|
@@ -5580,9 +5666,12 @@ function updateRipple(el, binding, wasEnabled) {
|
|
5580
5666
|
el._ripple.enabled = enabled;
|
5581
5667
|
el._ripple.centered = modifiers.center;
|
5582
5668
|
el._ripple.circle = modifiers.circle;
|
5583
|
-
|
5584
|
-
|
5669
|
+
const bindingValue = isObject(value) ? value : {};
|
5670
|
+
if (bindingValue.class) {
|
5671
|
+
el._ripple.class = bindingValue.class;
|
5585
5672
|
}
|
5673
|
+
const allowedKeys = bindingValue.keys ?? [keyCodes.enter, keyCodes.space];
|
5674
|
+
el._ripple.keyDownHandler = e => keyboardRippleShow(e, allowedKeys);
|
5586
5675
|
if (enabled && !wasEnabled) {
|
5587
5676
|
if (modifiers.stop) {
|
5588
5677
|
el.addEventListener('touchstart', rippleStop, {
|
@@ -5604,7 +5693,7 @@ function updateRipple(el, binding, wasEnabled) {
|
|
5604
5693
|
el.addEventListener('mousedown', rippleShow);
|
5605
5694
|
el.addEventListener('mouseup', rippleHide);
|
5606
5695
|
el.addEventListener('mouseleave', rippleHide);
|
5607
|
-
el.addEventListener('keydown', keyboardRippleShow);
|
5696
|
+
el.addEventListener('keydown', e => keyboardRippleShow(e, allowedKeys));
|
5608
5697
|
el.addEventListener('keyup', keyboardRippleHide);
|
5609
5698
|
el.addEventListener('blur', focusRippleHide);
|
5610
5699
|
|
@@ -5624,7 +5713,9 @@ function removeListeners(el) {
|
|
5624
5713
|
el.removeEventListener('touchcancel', rippleHide);
|
5625
5714
|
el.removeEventListener('mouseup', rippleHide);
|
5626
5715
|
el.removeEventListener('mouseleave', rippleHide);
|
5627
|
-
el.
|
5716
|
+
if (el._ripple?.keyDownHandler) {
|
5717
|
+
el.removeEventListener('keydown', el._ripple.keyDownHandler);
|
5718
|
+
}
|
5628
5719
|
el.removeEventListener('keyup', keyboardRippleHide);
|
5629
5720
|
el.removeEventListener('dragstart', rippleHide);
|
5630
5721
|
el.removeEventListener('blur', focusRippleHide);
|
@@ -5633,8 +5724,8 @@ function mounted$4(el, binding) {
|
|
5633
5724
|
updateRipple(el, binding, false);
|
5634
5725
|
}
|
5635
5726
|
function unmounted$4(el) {
|
5636
|
-
delete el._ripple;
|
5637
5727
|
removeListeners(el);
|
5728
|
+
delete el._ripple;
|
5638
5729
|
}
|
5639
5730
|
function updated$1(el, binding) {
|
5640
5731
|
if (binding.value === binding.oldValue) {
|
@@ -5907,6 +5998,31 @@ const VAppBarTitle = genericComponent()({
|
|
5907
5998
|
// Utilities
|
5908
5999
|
const VAlertTitle = createSimpleFunctional('v-alert-title');
|
5909
6000
|
|
6001
|
+
// Utilities
|
6002
|
+
|
6003
|
+
// Types
|
6004
|
+
|
6005
|
+
// Types
|
6006
|
+
|
6007
|
+
// Composables
|
6008
|
+
const makeIconSizeProps = propsFactory({
|
6009
|
+
iconSize: [Number, String],
|
6010
|
+
iconSizes: {
|
6011
|
+
type: Array,
|
6012
|
+
default: () => [['x-small', 10], ['small', 16], ['default', 24], ['large', 28], ['x-large', 32]]
|
6013
|
+
}
|
6014
|
+
}, 'iconSize');
|
6015
|
+
function useIconSizes(props, fallback) {
|
6016
|
+
const iconSize = computed(() => {
|
6017
|
+
const iconSizeMap = new Map(props.iconSizes);
|
6018
|
+
const _iconSize = props.iconSize ?? fallback() ?? 'default';
|
6019
|
+
return iconSizeMap.has(_iconSize) ? iconSizeMap.get(_iconSize) : _iconSize;
|
6020
|
+
});
|
6021
|
+
return {
|
6022
|
+
iconSize
|
6023
|
+
};
|
6024
|
+
}
|
6025
|
+
|
5910
6026
|
// Types
|
5911
6027
|
|
5912
6028
|
const allowedTypes = ['success', 'info', 'warning', 'error'];
|
@@ -5946,6 +6062,7 @@ const makeVAlertProps = propsFactory({
|
|
5946
6062
|
...makeDensityProps(),
|
5947
6063
|
...makeDimensionProps(),
|
5948
6064
|
...makeElevationProps(),
|
6065
|
+
...makeIconSizeProps(),
|
5949
6066
|
...makeLocationProps(),
|
5950
6067
|
...makePositionProps(),
|
5951
6068
|
...makeRoundedProps(),
|
@@ -5973,6 +6090,9 @@ const VAlert = genericComponent()({
|
|
5973
6090
|
if (!props.type) return props.icon;
|
5974
6091
|
return props.icon ?? `$${props.type}`;
|
5975
6092
|
});
|
6093
|
+
const {
|
6094
|
+
iconSize
|
6095
|
+
} = useIconSizes(props, () => props.prominent ? 44 : 28);
|
5976
6096
|
const {
|
5977
6097
|
themeClasses
|
5978
6098
|
} = provideTheme(props);
|
@@ -6020,6 +6140,11 @@ const VAlert = genericComponent()({
|
|
6020
6140
|
const hasPrepend = !!(slots.prepend || icon.value);
|
6021
6141
|
const hasTitle = !!(slots.title || props.title);
|
6022
6142
|
const hasClose = !!(slots.close || props.closable);
|
6143
|
+
const iconProps = {
|
6144
|
+
density: props.density,
|
6145
|
+
icon: icon.value,
|
6146
|
+
size: iconSize.value
|
6147
|
+
};
|
6023
6148
|
return isActive.value && createVNode(props.tag, {
|
6024
6149
|
"class": normalizeClass(['v-alert', props.border && {
|
6025
6150
|
'v-alert--border': !!props.border,
|
@@ -6037,19 +6162,14 @@ const VAlert = genericComponent()({
|
|
6037
6162
|
}, null), hasPrepend && createElementVNode("div", {
|
6038
6163
|
"key": "prepend",
|
6039
6164
|
"class": "v-alert__prepend"
|
6040
|
-
}, [!slots.prepend ? createVNode(VIcon, {
|
6041
|
-
"key": "prepend-icon"
|
6042
|
-
|
6043
|
-
"icon": icon.value,
|
6044
|
-
"size": props.prominent ? 44 : 28
|
6045
|
-
}, null) : createVNode(VDefaultsProvider, {
|
6165
|
+
}, [!slots.prepend ? createVNode(VIcon, mergeProps({
|
6166
|
+
"key": "prepend-icon"
|
6167
|
+
}, iconProps), null) : createVNode(VDefaultsProvider, {
|
6046
6168
|
"key": "prepend-defaults",
|
6047
6169
|
"disabled": !icon.value,
|
6048
6170
|
"defaults": {
|
6049
6171
|
VIcon: {
|
6050
|
-
|
6051
|
-
icon: icon.value,
|
6052
|
-
size: props.prominent ? 44 : 28
|
6172
|
+
...iconProps
|
6053
6173
|
}
|
6054
6174
|
}
|
6055
6175
|
}, slots.prepend)]), createElementVNode("div", {
|
@@ -7574,6 +7694,7 @@ function getOffsetPosition(isHorizontal, element) {
|
|
7574
7694
|
const VSlideGroupSymbol = Symbol.for('vuetify:v-slide-group');
|
7575
7695
|
const makeVSlideGroupProps = propsFactory({
|
7576
7696
|
centerActive: Boolean,
|
7697
|
+
contentClass: null,
|
7577
7698
|
direction: {
|
7578
7699
|
type: String,
|
7579
7700
|
default: 'horizontal'
|
@@ -7886,7 +8007,7 @@ const VSlideGroup = genericComponent()({
|
|
7886
8007
|
})]), createElementVNode("div", {
|
7887
8008
|
"key": "container",
|
7888
8009
|
"ref": containerRef,
|
7889
|
-
"class":
|
8010
|
+
"class": normalizeClass(['v-slide-group__container', props.contentClass]),
|
7890
8011
|
"onScroll": onScroll
|
7891
8012
|
}, [createElementVNode("div", {
|
7892
8013
|
"ref": contentRef,
|
@@ -8249,16 +8370,85 @@ const VChip = genericComponent()({
|
|
8249
8370
|
}
|
8250
8371
|
});
|
8251
8372
|
|
8373
|
+
const makeVDividerProps = propsFactory({
|
8374
|
+
color: String,
|
8375
|
+
inset: Boolean,
|
8376
|
+
length: [Number, String],
|
8377
|
+
opacity: [Number, String],
|
8378
|
+
thickness: [Number, String],
|
8379
|
+
vertical: Boolean,
|
8380
|
+
...makeComponentProps(),
|
8381
|
+
...makeThemeProps()
|
8382
|
+
}, 'VDivider');
|
8383
|
+
const VDivider = genericComponent()({
|
8384
|
+
name: 'VDivider',
|
8385
|
+
props: makeVDividerProps(),
|
8386
|
+
setup(props, _ref) {
|
8387
|
+
let {
|
8388
|
+
attrs,
|
8389
|
+
slots
|
8390
|
+
} = _ref;
|
8391
|
+
const {
|
8392
|
+
themeClasses
|
8393
|
+
} = provideTheme(props);
|
8394
|
+
const {
|
8395
|
+
textColorClasses,
|
8396
|
+
textColorStyles
|
8397
|
+
} = useTextColor(() => props.color);
|
8398
|
+
const dividerStyles = computed(() => {
|
8399
|
+
const styles = {};
|
8400
|
+
if (props.length) {
|
8401
|
+
styles[props.vertical ? 'height' : 'width'] = convertToUnit(props.length);
|
8402
|
+
}
|
8403
|
+
if (props.thickness) {
|
8404
|
+
styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness);
|
8405
|
+
}
|
8406
|
+
return styles;
|
8407
|
+
});
|
8408
|
+
useRender(() => {
|
8409
|
+
const divider = createElementVNode("hr", {
|
8410
|
+
"class": normalizeClass([{
|
8411
|
+
'v-divider': true,
|
8412
|
+
'v-divider--inset': props.inset,
|
8413
|
+
'v-divider--vertical': props.vertical
|
8414
|
+
}, themeClasses.value, textColorClasses.value, props.class]),
|
8415
|
+
"style": normalizeStyle([dividerStyles.value, textColorStyles.value, {
|
8416
|
+
'--v-border-opacity': props.opacity
|
8417
|
+
}, props.style]),
|
8418
|
+
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
8419
|
+
"role": `${attrs.role || 'separator'}`
|
8420
|
+
}, null);
|
8421
|
+
if (!slots.default) return divider;
|
8422
|
+
return createElementVNode("div", {
|
8423
|
+
"class": normalizeClass(['v-divider__wrapper', {
|
8424
|
+
'v-divider__wrapper--vertical': props.vertical,
|
8425
|
+
'v-divider__wrapper--inset': props.inset
|
8426
|
+
}])
|
8427
|
+
}, [divider, createElementVNode("div", {
|
8428
|
+
"class": "v-divider__content"
|
8429
|
+
}, [slots.default()]), divider]);
|
8430
|
+
});
|
8431
|
+
return {};
|
8432
|
+
}
|
8433
|
+
});
|
8434
|
+
|
8252
8435
|
// Utilities
|
8253
8436
|
|
8254
8437
|
// List
|
8255
8438
|
const ListKey = Symbol.for('vuetify:list');
|
8256
8439
|
function createList() {
|
8440
|
+
let {
|
8441
|
+
filterable
|
8442
|
+
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
8443
|
+
filterable: false
|
8444
|
+
};
|
8257
8445
|
const parent = inject$1(ListKey, {
|
8446
|
+
filterable: false,
|
8258
8447
|
hasPrepend: shallowRef(false),
|
8259
8448
|
updateHasPrepend: () => null
|
8260
8449
|
});
|
8261
8450
|
const data = {
|
8451
|
+
filterable: parent.filterable || filterable,
|
8262
8452
|
hasPrepend: shallowRef(false),
|
8263
8453
|
updateHasPrepend: value => {
|
8264
8454
|
if (value) data.hasPrepend.value = value;
|
@@ -9210,6 +9400,9 @@ const VListItem = genericComponent()({
|
|
9210
9400
|
roundedClasses
|
9211
9401
|
} = useRounded(roundedProps);
|
9212
9402
|
const lineClasses = toRef(() => props.lines ? `v-list-item--${props.lines}-line` : undefined);
|
9403
|
+
const rippleOptions = toRef(() => props.ripple !== undefined && !!props.ripple && list?.filterable ? {
|
9404
|
+
keys: [keyCodes.enter]
|
9405
|
+
} : props.ripple);
|
9213
9406
|
const slotProps = computed(() => ({
|
9214
9407
|
isActive: isActive.value,
|
9215
9408
|
select,
|
@@ -9234,8 +9427,9 @@ const VListItem = genericComponent()({
|
|
9234
9427
|
function onKeyDown(e) {
|
9235
9428
|
const target = e.target;
|
9236
9429
|
if (['INPUT', 'TEXTAREA'].includes(target.tagName)) return;
|
9237
|
-
if (e.key === 'Enter' || e.key === ' ') {
|
9430
|
+
if (e.key === 'Enter' || e.key === ' ' && !list?.filterable) {
|
9238
9431
|
e.preventDefault();
|
9432
|
+
e.stopPropagation();
|
9239
9433
|
e.target.dispatchEvent(new MouseEvent('click', e));
|
9240
9434
|
}
|
9241
9435
|
}
|
@@ -9345,7 +9539,7 @@ const VListItem = genericComponent()({
|
|
9345
9539
|
}), createElementVNode("div", {
|
9346
9540
|
"class": "v-list-item__spacer"
|
9347
9541
|
}, null)])]
|
9348
|
-
}), [[Ripple, isClickable.value &&
|
9542
|
+
}), [[Ripple, isClickable.value && rippleOptions.value]]);
|
9349
9543
|
});
|
9350
9544
|
return {
|
9351
9545
|
activate,
|
@@ -9400,68 +9594,6 @@ const VListSubheader = genericComponent()({
|
|
9400
9594
|
}
|
9401
9595
|
});
|
9402
9596
|
|
9403
|
-
const makeVDividerProps = propsFactory({
|
9404
|
-
color: String,
|
9405
|
-
inset: Boolean,
|
9406
|
-
length: [Number, String],
|
9407
|
-
opacity: [Number, String],
|
9408
|
-
thickness: [Number, String],
|
9409
|
-
vertical: Boolean,
|
9410
|
-
...makeComponentProps(),
|
9411
|
-
...makeThemeProps()
|
9412
|
-
}, 'VDivider');
|
9413
|
-
const VDivider = genericComponent()({
|
9414
|
-
name: 'VDivider',
|
9415
|
-
props: makeVDividerProps(),
|
9416
|
-
setup(props, _ref) {
|
9417
|
-
let {
|
9418
|
-
attrs,
|
9419
|
-
slots
|
9420
|
-
} = _ref;
|
9421
|
-
const {
|
9422
|
-
themeClasses
|
9423
|
-
} = provideTheme(props);
|
9424
|
-
const {
|
9425
|
-
textColorClasses,
|
9426
|
-
textColorStyles
|
9427
|
-
} = useTextColor(() => props.color);
|
9428
|
-
const dividerStyles = computed(() => {
|
9429
|
-
const styles = {};
|
9430
|
-
if (props.length) {
|
9431
|
-
styles[props.vertical ? 'height' : 'width'] = convertToUnit(props.length);
|
9432
|
-
}
|
9433
|
-
if (props.thickness) {
|
9434
|
-
styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness);
|
9435
|
-
}
|
9436
|
-
return styles;
|
9437
|
-
});
|
9438
|
-
useRender(() => {
|
9439
|
-
const divider = createElementVNode("hr", {
|
9440
|
-
"class": normalizeClass([{
|
9441
|
-
'v-divider': true,
|
9442
|
-
'v-divider--inset': props.inset,
|
9443
|
-
'v-divider--vertical': props.vertical
|
9444
|
-
}, themeClasses.value, textColorClasses.value, props.class]),
|
9445
|
-
"style": normalizeStyle([dividerStyles.value, textColorStyles.value, {
|
9446
|
-
'--v-border-opacity': props.opacity
|
9447
|
-
}, props.style]),
|
9448
|
-
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
9449
|
-
"role": `${attrs.role || 'separator'}`
|
9450
|
-
}, null);
|
9451
|
-
if (!slots.default) return divider;
|
9452
|
-
return createElementVNode("div", {
|
9453
|
-
"class": normalizeClass(['v-divider__wrapper', {
|
9454
|
-
'v-divider__wrapper--vertical': props.vertical,
|
9455
|
-
'v-divider__wrapper--inset': props.inset
|
9456
|
-
}])
|
9457
|
-
}, [divider, createElementVNode("div", {
|
9458
|
-
"class": "v-divider__content"
|
9459
|
-
}, [slots.default()]), divider]);
|
9460
|
-
});
|
9461
|
-
return {};
|
9462
|
-
}
|
9463
|
-
});
|
9464
|
-
|
9465
9597
|
// Types
|
9466
9598
|
|
9467
9599
|
const makeVListChildrenProps = propsFactory({
|
@@ -9578,7 +9710,7 @@ function transformItem$3(props, item) {
|
|
9578
9710
|
const _props = {
|
9579
9711
|
title,
|
9580
9712
|
value,
|
9581
|
-
...itemProps
|
9713
|
+
...camelizeProps(itemProps)
|
9582
9714
|
};
|
9583
9715
|
return {
|
9584
9716
|
title: String(_props.title ?? ''),
|
@@ -9730,6 +9862,7 @@ const makeVListProps = propsFactory({
|
|
9730
9862
|
activeClass: String,
|
9731
9863
|
bgColor: String,
|
9732
9864
|
disabled: Boolean,
|
9865
|
+
filterable: Boolean,
|
9733
9866
|
expandIcon: IconValue,
|
9734
9867
|
collapseIcon: IconValue,
|
9735
9868
|
lines: {
|
@@ -9813,7 +9946,9 @@ const VList = genericComponent()({
|
|
9813
9946
|
const activeColor = toRef(() => props.activeColor);
|
9814
9947
|
const baseColor = toRef(() => props.baseColor);
|
9815
9948
|
const color = toRef(() => props.color);
|
9816
|
-
createList(
|
9949
|
+
createList({
|
9950
|
+
filterable: props.filterable
|
9951
|
+
});
|
9817
9952
|
provideDefaults({
|
9818
9953
|
VListGroup: {
|
9819
9954
|
activeColor,
|
@@ -12389,7 +12524,12 @@ function useVirtual(props, items) {
|
|
12389
12524
|
}
|
12390
12525
|
function calculateOffset(index) {
|
12391
12526
|
index = clamp(index, 0, items.value.length - 1);
|
12392
|
-
|
12527
|
+
const whole = Math.floor(index);
|
12528
|
+
const fraction = index % 1;
|
12529
|
+
const next = whole + 1;
|
12530
|
+
const wholeOffset = offsets[whole] || 0;
|
12531
|
+
const nextOffset = offsets[next] || wholeOffset;
|
12532
|
+
return wholeOffset + (nextOffset - wholeOffset) * fraction;
|
12393
12533
|
}
|
12394
12534
|
function calculateIndex(scrollTop) {
|
12395
12535
|
return binaryClosest(offsets, scrollTop);
|
@@ -12743,6 +12883,7 @@ const makeSelectProps = propsFactory({
|
|
12743
12883
|
},
|
12744
12884
|
openOnClear: Boolean,
|
12745
12885
|
itemColor: String,
|
12886
|
+
noAutoScroll: Boolean,
|
12746
12887
|
...makeItemsProps({
|
12747
12888
|
itemChildren: false
|
12748
12889
|
})
|
@@ -12957,7 +13098,7 @@ const VSelect = genericComponent()({
|
|
12957
13098
|
watch(menu, () => {
|
12958
13099
|
if (!props.hideSelected && menu.value && model.value.length) {
|
12959
13100
|
const index = displayItems.value.findIndex(item => model.value.some(s => (props.valueComparator || deepEqual)(s.value, item.value)));
|
12960
|
-
IN_BROWSER && window.requestAnimationFrame(() => {
|
13101
|
+
IN_BROWSER && !props.noAutoScroll && window.requestAnimationFrame(() => {
|
12961
13102
|
index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
|
12962
13103
|
});
|
12963
13104
|
}
|
@@ -13049,6 +13190,22 @@ const VSelect = genericComponent()({
|
|
13049
13190
|
key: item.value,
|
13050
13191
|
onClick: () => select(item, null)
|
13051
13192
|
});
|
13193
|
+
if (item.raw.type === 'divider') {
|
13194
|
+
return slots.divider?.({
|
13195
|
+
props: item.raw,
|
13196
|
+
index
|
13197
|
+
}) ?? createVNode(VDivider, mergeProps(item.props, {
|
13198
|
+
"key": `divider-${index}`
|
13199
|
+
}), null);
|
13200
|
+
}
|
13201
|
+
if (item.raw.type === 'subheader') {
|
13202
|
+
return slots.subheader?.({
|
13203
|
+
props: item.raw,
|
13204
|
+
index
|
13205
|
+
}) ?? createVNode(VListSubheader, mergeProps(item.props, {
|
13206
|
+
"key": `subheader-${index}`
|
13207
|
+
}), null);
|
13208
|
+
}
|
13052
13209
|
return slots.item?.({
|
13053
13210
|
item,
|
13054
13211
|
index,
|
@@ -13209,6 +13366,9 @@ function filterItems(items, query, options) {
|
|
13209
13366
|
let match = -1;
|
13210
13367
|
if ((query || customFiltersLength > 0) && !options?.noFilter) {
|
13211
13368
|
if (typeof item === 'object') {
|
13369
|
+
if (['divider', 'subheader'].includes(item.raw?.type)) {
|
13370
|
+
continue;
|
13371
|
+
}
|
13212
13372
|
const filterKeys = keys || Object.keys(transformed);
|
13213
13373
|
for (const key of filterKeys) {
|
13214
13374
|
const value = getPropertyFromItem(transformed, key);
|
@@ -13411,7 +13571,7 @@ const VAutocomplete = genericComponent()({
|
|
13411
13571
|
menu.value = !menu.value;
|
13412
13572
|
}
|
13413
13573
|
function onListKeydown(e) {
|
13414
|
-
if (e.key
|
13574
|
+
if (checkPrintable(e) || e.key === 'Backspace') {
|
13415
13575
|
vTextFieldRef.value?.focus();
|
13416
13576
|
}
|
13417
13577
|
}
|
@@ -13616,6 +13776,7 @@ const VAutocomplete = genericComponent()({
|
|
13616
13776
|
}, props.menuProps), {
|
13617
13777
|
default: () => [hasList && createVNode(VList, mergeProps({
|
13618
13778
|
"ref": listRef,
|
13779
|
+
"filterable": true,
|
13619
13780
|
"selected": selectedValues.value,
|
13620
13781
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
13621
13782
|
"onMousedown": e => e.preventDefault(),
|
@@ -13647,6 +13808,22 @@ const VAutocomplete = genericComponent()({
|
|
13647
13808
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
13648
13809
|
onClick: () => select(item, null)
|
13649
13810
|
});
|
13811
|
+
if (item.raw.type === 'divider') {
|
13812
|
+
return slots.divider?.({
|
13813
|
+
props: item.raw,
|
13814
|
+
index
|
13815
|
+
}) ?? createVNode(VDivider, mergeProps(item.props, {
|
13816
|
+
"key": `divider-${index}`
|
13817
|
+
}), null);
|
13818
|
+
}
|
13819
|
+
if (item.raw.type === 'subheader') {
|
13820
|
+
return slots.subheader?.({
|
13821
|
+
props: item.raw,
|
13822
|
+
index
|
13823
|
+
}) ?? createVNode(VListSubheader, mergeProps(item.props, {
|
13824
|
+
"key": `subheader-${index}`
|
13825
|
+
}), null);
|
13826
|
+
}
|
13650
13827
|
return slots.item?.({
|
13651
13828
|
item,
|
13652
13829
|
index,
|
@@ -13791,7 +13968,8 @@ const makeVBadgeProps = propsFactory({
|
|
13791
13968
|
...makeThemeProps(),
|
13792
13969
|
...makeTransitionProps({
|
13793
13970
|
transition: 'scale-rotate-transition'
|
13794
|
-
})
|
13971
|
+
}),
|
13972
|
+
...makeDimensionProps()
|
13795
13973
|
}, 'VBadge');
|
13796
13974
|
const VBadge = genericComponent()({
|
13797
13975
|
name: 'VBadge',
|
@@ -13821,6 +13999,9 @@ const VBadge = genericComponent()({
|
|
13821
13999
|
const base = props.floating ? props.dot ? 2 : 4 : props.dot ? 8 : 12;
|
13822
14000
|
return base + (['top', 'bottom'].includes(side) ? Number(props.offsetY ?? 0) : ['left', 'right'].includes(side) ? Number(props.offsetX ?? 0) : 0);
|
13823
14001
|
});
|
14002
|
+
const {
|
14003
|
+
dimensionStyles
|
14004
|
+
} = useDimension(props);
|
13824
14005
|
useRender(() => {
|
13825
14006
|
const value = Number(props.content);
|
13826
14007
|
const content = !props.max || isNaN(value) ? props.content : value <= Number(props.max) ? value : `${props.max}+`;
|
@@ -13842,7 +14023,7 @@ const VBadge = genericComponent()({
|
|
13842
14023
|
}, {
|
13843
14024
|
default: () => [withDirectives(createElementVNode("span", mergeProps({
|
13844
14025
|
"class": ['v-badge__badge', themeClasses.value, backgroundColorClasses.value, roundedClasses.value, textColorClasses.value],
|
13845
|
-
"style": [backgroundColorStyles.value, textColorStyles.value, props.inline ? {} : locationStyles.value],
|
14026
|
+
"style": [backgroundColorStyles.value, textColorStyles.value, dimensionStyles.value, props.inline ? {} : locationStyles.value],
|
13846
14027
|
"aria-atomic": "true",
|
13847
14028
|
"aria-label": t(props.label, value),
|
13848
14029
|
"aria-live": "polite",
|
@@ -17251,13 +17432,13 @@ function date(value) {
|
|
17251
17432
|
return null;
|
17252
17433
|
}
|
17253
17434
|
const sundayJanuarySecond2000 = new Date(2000, 0, 2);
|
17254
|
-
function getWeekdays(locale, firstDayOfWeek) {
|
17435
|
+
function getWeekdays(locale, firstDayOfWeek, weekdayFormat) {
|
17255
17436
|
const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
|
17256
17437
|
return createRange(7).map(i => {
|
17257
17438
|
const weekday = new Date(sundayJanuarySecond2000);
|
17258
17439
|
weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
|
17259
17440
|
return new Intl.DateTimeFormat(locale, {
|
17260
|
-
weekday: 'narrow'
|
17441
|
+
weekday: weekdayFormat ?? 'narrow'
|
17261
17442
|
}).format(weekday);
|
17262
17443
|
});
|
17263
17444
|
}
|
@@ -17721,9 +17902,9 @@ class VuetifyDateAdapter {
|
|
17721
17902
|
getDiff(date, comparing, unit) {
|
17722
17903
|
return getDiff(date, comparing, unit);
|
17723
17904
|
}
|
17724
|
-
getWeekdays(firstDayOfWeek) {
|
17905
|
+
getWeekdays(firstDayOfWeek, weekdayFormat) {
|
17725
17906
|
const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
|
17726
|
-
return getWeekdays(this.locale, firstDay);
|
17907
|
+
return getWeekdays(this.locale, firstDay, weekdayFormat);
|
17727
17908
|
}
|
17728
17909
|
getYear(date) {
|
17729
17910
|
return getYear(date);
|
@@ -18079,6 +18260,7 @@ const VCombobox = genericComponent()({
|
|
18079
18260
|
_search.value = val ?? '';
|
18080
18261
|
if (!props.multiple && !hasSelectionSlot.value) {
|
18081
18262
|
model.value = [transformItem$3(props, val)];
|
18263
|
+
nextTick(() => vVirtualScrollRef.value?.scrollToIndex(0));
|
18082
18264
|
}
|
18083
18265
|
if (val && props.multiple && props.delimiters?.length) {
|
18084
18266
|
const values = val.split(new RegExp(`(?:${props.delimiters.join('|')})+`));
|
@@ -18159,7 +18341,7 @@ const VCombobox = genericComponent()({
|
|
18159
18341
|
menu.value = !menu.value;
|
18160
18342
|
}
|
18161
18343
|
function onListKeydown(e) {
|
18162
|
-
if (e.key
|
18344
|
+
if (checkPrintable(e) || e.key === 'Backspace') {
|
18163
18345
|
vTextFieldRef.value?.focus();
|
18164
18346
|
}
|
18165
18347
|
}
|
@@ -18364,6 +18546,7 @@ const VCombobox = genericComponent()({
|
|
18364
18546
|
}, props.menuProps), {
|
18365
18547
|
default: () => [hasList && createVNode(VList, mergeProps({
|
18366
18548
|
"ref": listRef,
|
18549
|
+
"filterable": true,
|
18367
18550
|
"selected": selectedValues.value,
|
18368
18551
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
18369
18552
|
"onMousedown": e => e.preventDefault(),
|
@@ -18395,6 +18578,22 @@ const VCombobox = genericComponent()({
|
|
18395
18578
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
18396
18579
|
onClick: () => select(item, null)
|
18397
18580
|
});
|
18581
|
+
if (item.raw.type === 'divider') {
|
18582
|
+
return slots.divider?.({
|
18583
|
+
props: item.raw,
|
18584
|
+
index
|
18585
|
+
}) ?? createVNode(VDivider, mergeProps(item.props, {
|
18586
|
+
"key": `divider-${index}`
|
18587
|
+
}), null);
|
18588
|
+
}
|
18589
|
+
if (item.raw.type === 'subheader') {
|
18590
|
+
return slots.subheader?.({
|
18591
|
+
props: item.raw,
|
18592
|
+
index
|
18593
|
+
}) ?? createVNode(VListSubheader, mergeProps(item.props, {
|
18594
|
+
"key": `subheader-${index}`
|
18595
|
+
}), null);
|
18596
|
+
}
|
18398
18597
|
return slots.item?.({
|
18399
18598
|
item,
|
18400
18599
|
index,
|
@@ -20274,6 +20473,7 @@ const makeVDataTableHeadersProps = propsFactory({
|
|
20274
20473
|
color: String,
|
20275
20474
|
disableSort: Boolean,
|
20276
20475
|
fixedHeader: Boolean,
|
20476
|
+
lastFixed: Boolean,
|
20277
20477
|
multiSort: Boolean,
|
20278
20478
|
sortAscIcon: {
|
20279
20479
|
type: IconValue,
|
@@ -20320,10 +20520,11 @@ const VDataTableHeaders = genericComponent()({
|
|
20320
20520
|
loaderClasses
|
20321
20521
|
} = useLoader(props);
|
20322
20522
|
function getFixedStyles(column, y) {
|
20323
|
-
if (!(props.sticky || props.fixedHeader) && !column.fixed) return undefined;
|
20523
|
+
if (!(props.sticky || props.fixedHeader) && !(column.fixed || column.lastFixed)) return undefined;
|
20324
20524
|
return {
|
20325
20525
|
position: 'sticky',
|
20326
|
-
left: column.fixed ? convertToUnit(column.fixedOffset) : undefined,
|
20526
|
+
left: column.fixed || column.lastFixed ? convertToUnit(column.fixedOffset) : undefined,
|
20527
|
+
right: column.lastFixed ? convertToUnit(column.fixedOffset ?? 0) : undefined,
|
20327
20528
|
top: props.sticky || props.fixedHeader ? `calc(var(--v-table-header-height) * ${y})` : undefined
|
20328
20529
|
};
|
20329
20530
|
}
|
@@ -20832,11 +21033,18 @@ const VDataTableRows = genericComponent()({
|
|
20832
21033
|
}
|
20833
21034
|
});
|
20834
21035
|
|
21036
|
+
// Types
|
21037
|
+
|
20835
21038
|
const makeVTableProps = propsFactory({
|
20836
21039
|
fixedHeader: Boolean,
|
20837
21040
|
fixedFooter: Boolean,
|
20838
21041
|
height: [Number, String],
|
20839
21042
|
hover: Boolean,
|
21043
|
+
striped: {
|
21044
|
+
type: String,
|
21045
|
+
default: null,
|
21046
|
+
validator: v => ['even', 'odd'].includes(v)
|
21047
|
+
},
|
20840
21048
|
...makeComponentProps(),
|
20841
21049
|
...makeDensityProps(),
|
20842
21050
|
...makeTagProps(),
|
@@ -20863,7 +21071,9 @@ const VTable = genericComponent()({
|
|
20863
21071
|
'v-table--fixed-footer': props.fixedFooter,
|
20864
21072
|
'v-table--has-top': !!slots.top,
|
20865
21073
|
'v-table--has-bottom': !!slots.bottom,
|
20866
|
-
'v-table--hover': props.hover
|
21074
|
+
'v-table--hover': props.hover,
|
21075
|
+
'v-table--striped-even': props.striped === 'even',
|
21076
|
+
'v-table--striped-odd': props.striped === 'odd'
|
20867
21077
|
}, themeClasses.value, densityClasses.value, props.class]),
|
20868
21078
|
"style": normalizeStyle(props.style)
|
20869
21079
|
}, {
|
@@ -22038,7 +22248,8 @@ const makeCalendarProps = propsFactory({
|
|
22038
22248
|
firstDayOfWeek: {
|
22039
22249
|
type: [Number, String],
|
22040
22250
|
default: undefined
|
22041
|
-
}
|
22251
|
+
},
|
22252
|
+
weekdayFormat: String
|
22042
22253
|
}, 'calendar');
|
22043
22254
|
function useCalendar(props) {
|
22044
22255
|
const adapter = useDate();
|
@@ -22279,7 +22490,7 @@ const VDatePickerMonth = genericComponent()({
|
|
22279
22490
|
"ref": daysRef,
|
22280
22491
|
"key": daysInMonth.value[0].date?.toString(),
|
22281
22492
|
"class": "v-date-picker-month__days"
|
22282
|
-
}, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => createElementVNode("div", {
|
22493
|
+
}, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek, props.weekdayFormat).map(weekDay => createElementVNode("div", {
|
22283
22494
|
"class": normalizeClass(['v-date-picker-month__day', 'v-date-picker-month__weekday'])
|
22284
22495
|
}, [weekDay])), daysInMonth.value.map((item, i) => {
|
22285
22496
|
const slotProps = {
|
@@ -24869,6 +25080,10 @@ const makeVNumberInputProps = propsFactory({
|
|
24869
25080
|
type: Number,
|
24870
25081
|
default: 0
|
24871
25082
|
},
|
25083
|
+
minFractionDigits: {
|
25084
|
+
type: Number,
|
25085
|
+
default: null
|
25086
|
+
},
|
24872
25087
|
...omit(makeVTextFieldProps(), ['modelValue', 'validationValue'])
|
24873
25088
|
}, 'VNumberInput');
|
24874
25089
|
const VNumberInput = genericComponent()({
|
@@ -24899,9 +25114,19 @@ const VNumberInput = genericComponent()({
|
|
24899
25114
|
} = useFocus(props);
|
24900
25115
|
function correctPrecision(val) {
|
24901
25116
|
let precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.precision;
|
24902
|
-
|
24903
|
-
|
24904
|
-
|
25117
|
+
if (precision == null) {
|
25118
|
+
return String(val);
|
25119
|
+
}
|
25120
|
+
let fixed = val.toFixed(precision);
|
25121
|
+
if (isFocused.value) {
|
25122
|
+
return Number(fixed).toString(); // trim zeros
|
25123
|
+
}
|
25124
|
+
if ((props.minFractionDigits ?? precision) < precision) {
|
25125
|
+
const trimLimit = precision - props.minFractionDigits;
|
25126
|
+
const [baseDigits, fractionDigits] = fixed.split('.');
|
25127
|
+
fixed = [baseDigits, fractionDigits.replace(new RegExp(`0{1,${trimLimit}}$`), '')].filter(Boolean).join('.');
|
25128
|
+
}
|
25129
|
+
return fixed;
|
24905
25130
|
}
|
24906
25131
|
const model = useProxiedModel(props, 'modelValue', null, val => val ?? null, val => val == null ? val ?? null : clamp(Number(val), props.min, props.max));
|
24907
25132
|
const _inputText = shallowRef(null);
|
@@ -24956,6 +25181,7 @@ const VNumberInput = genericComponent()({
|
|
24956
25181
|
}
|
24957
25182
|
};
|
24958
25183
|
watch(() => props.precision, () => formatInputValue());
|
25184
|
+
watch(() => props.minFractionDigits, () => formatInputValue());
|
24959
25185
|
onMounted(() => {
|
24960
25186
|
clampModel();
|
24961
25187
|
});
|
@@ -25070,7 +25296,7 @@ const VNumberInput = genericComponent()({
|
|
25070
25296
|
inputText.value = null;
|
25071
25297
|
return;
|
25072
25298
|
}
|
25073
|
-
inputText.value =
|
25299
|
+
inputText.value = correctPrecision(model.value);
|
25074
25300
|
}
|
25075
25301
|
function trimDecimalZeros() {
|
25076
25302
|
if (controlsDisabled.value) return;
|
@@ -25330,9 +25556,10 @@ const VOtpInput = genericComponent()({
|
|
25330
25556
|
e.preventDefault();
|
25331
25557
|
e.stopPropagation();
|
25332
25558
|
const clipboardText = e?.clipboardData?.getData('Text').slice(0, length.value) ?? '';
|
25559
|
+
const finalIndex = clipboardText.length - 1 === -1 ? index : clipboardText.length - 1;
|
25333
25560
|
if (isValidNumber(clipboardText)) return;
|
25334
25561
|
model.value = clipboardText.split('');
|
25335
|
-
inputRef.value?.[
|
25562
|
+
inputRef.value?.[finalIndex].focus();
|
25336
25563
|
}
|
25337
25564
|
function reset() {
|
25338
25565
|
model.value = [];
|
@@ -30035,11 +30262,6 @@ const makeVIconBtnProps = propsFactory({
|
|
30035
30262
|
hideOverlay: Boolean,
|
30036
30263
|
icon: [String, Function, Object],
|
30037
30264
|
iconColor: String,
|
30038
|
-
iconSize: [Number, String],
|
30039
|
-
iconSizes: {
|
30040
|
-
type: Array,
|
30041
|
-
default: () => [['x-small', 10], ['small', 16], ['default', 24], ['large', 28], ['x-large', 32]]
|
30042
|
-
},
|
30043
30265
|
loading: Boolean,
|
30044
30266
|
opacity: [Number, String],
|
30045
30267
|
readonly: Boolean,
|
@@ -30059,6 +30281,7 @@ const makeVIconBtnProps = propsFactory({
|
|
30059
30281
|
...makeBorderProps(),
|
30060
30282
|
...makeComponentProps(),
|
30061
30283
|
...makeElevationProps(),
|
30284
|
+
...makeIconSizeProps(),
|
30062
30285
|
...makeRoundedProps(),
|
30063
30286
|
...makeTagProps({
|
30064
30287
|
tag: 'button'
|
@@ -30113,7 +30336,6 @@ const VIconBtn = genericComponent()({
|
|
30113
30336
|
})()
|
30114
30337
|
}));
|
30115
30338
|
const btnSizeMap = new Map(props.sizes);
|
30116
|
-
const iconSizeMap = new Map(props.iconSizes);
|
30117
30339
|
function onClick() {
|
30118
30340
|
if (props.disabled || props.readonly || isActive.value === undefined || props.tag === 'a' && attrs.href) return;
|
30119
30341
|
isActive.value = !isActive.value;
|
@@ -30125,12 +30347,12 @@ const VIconBtn = genericComponent()({
|
|
30125
30347
|
const btnSize = hasNamedSize ? btnSizeMap.get(_btnSize) : _btnSize;
|
30126
30348
|
const btnHeight = props.height ?? btnSize;
|
30127
30349
|
const btnWidth = props.width ?? btnSize;
|
30128
|
-
const
|
30129
|
-
|
30130
|
-
|
30350
|
+
const {
|
30351
|
+
iconSize
|
30352
|
+
} = useIconSizes(props, () => new Map(props.iconSizes).get(_btnSize));
|
30131
30353
|
const iconProps = {
|
30132
30354
|
icon,
|
30133
|
-
size: iconSize,
|
30355
|
+
size: iconSize.value,
|
30134
30356
|
iconColor: props.iconColor,
|
30135
30357
|
opacity: props.opacity
|
30136
30358
|
};
|
@@ -30173,7 +30395,7 @@ const VIconBtn = genericComponent()({
|
|
30173
30395
|
"color": typeof props.loading === 'boolean' ? undefined : props.loading,
|
30174
30396
|
"indeterminate": "disable-shrink",
|
30175
30397
|
"width": "2",
|
30176
|
-
"size": iconSize
|
30398
|
+
"size": iconSize.value
|
30177
30399
|
}, null)])]
|
30178
30400
|
});
|
30179
30401
|
});
|
@@ -32083,7 +32305,7 @@ function createVuetify$1() {
|
|
32083
32305
|
};
|
32084
32306
|
});
|
32085
32307
|
}
|
32086
|
-
const version$1 = "3.8.
|
32308
|
+
const version$1 = "3.8.8-dev.2025-06-08";
|
32087
32309
|
createVuetify$1.version = version$1;
|
32088
32310
|
|
32089
32311
|
// Vue's inject() can only be used in setup
|
@@ -32381,7 +32603,7 @@ var index = /*#__PURE__*/Object.freeze({
|
|
32381
32603
|
|
32382
32604
|
/* eslint-disable local-rules/sort-imports */
|
32383
32605
|
|
32384
|
-
const version = "3.8.
|
32606
|
+
const version = "3.8.8-dev.2025-06-08";
|
32385
32607
|
|
32386
32608
|
/* eslint-disable local-rules/sort-imports */
|
32387
32609
|
|