@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-labs.esm.js
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.8.8-
|
2
|
+
* Vuetify v3.8.8-master.2025-06-06
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
6
6
|
|
7
|
-
import { shallowRef, reactive, watchEffect, toRef, capitalize, camelize, unref, Fragment, isVNode, Comment, warn, getCurrentInstance as getCurrentInstance$1, ref, computed, provide, inject as inject$1, defineComponent as defineComponent$1, h, onBeforeUnmount, watch, readonly, onMounted, useId, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw,
|
7
|
+
import { shallowRef, reactive, watchEffect, toRef, capitalize, camelize, unref, Fragment, isVNode, Comment, warn, getCurrentInstance as getCurrentInstance$1, ref, computed, provide, inject as inject$1, defineComponent as defineComponent$1, h, onBeforeUnmount, watch, readonly, onMounted, useId, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, 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,7 +81,6 @@ 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';
|
85
84
|
|
86
85
|
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
87
86
|
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
@@ -2346,7 +2345,6 @@ const makeThemeProps = propsFactory({
|
|
2346
2345
|
function genDefaults$2() {
|
2347
2346
|
return {
|
2348
2347
|
defaultTheme: 'light',
|
2349
|
-
prefix: 'v-',
|
2350
2348
|
variations: {
|
2351
2349
|
colors: [],
|
2352
2350
|
lighten: 0,
|
@@ -2428,10 +2426,7 @@ function genDefaults$2() {
|
|
2428
2426
|
}
|
2429
2427
|
}
|
2430
2428
|
},
|
2431
|
-
stylesheetId: 'vuetify-theme-stylesheet'
|
2432
|
-
scoped: false,
|
2433
|
-
unimportant: false,
|
2434
|
-
utilities: true
|
2429
|
+
stylesheetId: 'vuetify-theme-stylesheet'
|
2435
2430
|
};
|
2436
2431
|
}
|
2437
2432
|
function parseThemeOptions() {
|
@@ -2454,21 +2449,21 @@ function parseThemeOptions() {
|
|
2454
2449
|
function createCssClass(lines, selector, content, scope) {
|
2455
2450
|
lines.push(`${getScopedSelector(selector, scope)} {\n`, ...content.map(line => ` ${line};\n`), '}\n');
|
2456
2451
|
}
|
2457
|
-
function genCssVariables(theme
|
2452
|
+
function genCssVariables(theme) {
|
2458
2453
|
const lightOverlay = theme.dark ? 2 : 1;
|
2459
2454
|
const darkOverlay = theme.dark ? 1 : 2;
|
2460
2455
|
const variables = [];
|
2461
2456
|
for (const [key, value] of Object.entries(theme.colors)) {
|
2462
2457
|
const rgb = parseColor(value);
|
2463
|
-
variables.push(
|
2458
|
+
variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
|
2464
2459
|
if (!key.startsWith('on-')) {
|
2465
|
-
variables.push(
|
2460
|
+
variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
|
2466
2461
|
}
|
2467
2462
|
}
|
2468
2463
|
for (const [key, value] of Object.entries(theme.variables)) {
|
2469
2464
|
const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;
|
2470
2465
|
const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
|
2471
|
-
variables.push(
|
2466
|
+
variables.push(`--v-${key}: ${rgb ?? value}`);
|
2472
2467
|
}
|
2473
2468
|
return variables;
|
2474
2469
|
}
|
@@ -2512,8 +2507,7 @@ function getScopedSelector(selector, scope) {
|
|
2512
2507
|
const scopeSelector = `:where(${scope})`;
|
2513
2508
|
return selector === ':root' ? scopeSelector : `${scopeSelector} ${selector}`;
|
2514
2509
|
}
|
2515
|
-
function upsertStyles(
|
2516
|
-
const styleEl = getOrCreateStyleElement(id, cspNonce);
|
2510
|
+
function upsertStyles(styleEl, styles) {
|
2517
2511
|
if (!styleEl) return;
|
2518
2512
|
styleEl.innerHTML = styles;
|
2519
2513
|
}
|
@@ -2533,17 +2527,8 @@ function getOrCreateStyleElement(id, cspNonce) {
|
|
2533
2527
|
// Composables
|
2534
2528
|
function createTheme(options) {
|
2535
2529
|
const parsedOptions = parseThemeOptions(options);
|
2536
|
-
const
|
2530
|
+
const name = shallowRef(parsedOptions.defaultTheme);
|
2537
2531
|
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
|
-
});
|
2547
2532
|
const computedThemes = computed(() => {
|
2548
2533
|
const acc = {};
|
2549
2534
|
for (const [name, original] of Object.entries(themes.value)) {
|
@@ -2564,49 +2549,28 @@ function createTheme(options) {
|
|
2564
2549
|
const current = toRef(() => computedThemes.value[name.value]);
|
2565
2550
|
const styles = computed(() => {
|
2566
2551
|
const lines = [];
|
2567
|
-
const important = parsedOptions.unimportant ? '' : ' !important';
|
2568
|
-
const scoped = parsedOptions.scoped ? parsedOptions.prefix : '';
|
2569
2552
|
if (current.value?.dark) {
|
2570
2553
|
createCssClass(lines, ':root', ['color-scheme: dark'], parsedOptions.scope);
|
2571
2554
|
}
|
2572
|
-
createCssClass(lines, ':root', genCssVariables(current.value
|
2555
|
+
createCssClass(lines, ':root', genCssVariables(current.value), parsedOptions.scope);
|
2573
2556
|
for (const [themeName, theme] of Object.entries(computedThemes.value)) {
|
2574
|
-
createCssClass(lines,
|
2575
|
-
}
|
2576
|
-
|
2577
|
-
|
2578
|
-
|
2579
|
-
|
2580
|
-
|
2581
|
-
|
2582
|
-
|
2583
|
-
}
|
2584
|
-
|
2585
|
-
|
2586
|
-
createCssClass(fgLines, `.${scoped}border-${key}`, [`--${parsedOptions.prefix}border-color: var(--${parsedOptions.prefix}theme-${key})`], parsedOptions.scope);
|
2587
|
-
}
|
2557
|
+
createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme)], parsedOptions.scope);
|
2558
|
+
}
|
2559
|
+
const bgLines = [];
|
2560
|
+
const fgLines = [];
|
2561
|
+
const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));
|
2562
|
+
for (const key of colors) {
|
2563
|
+
if (key.startsWith('on-')) {
|
2564
|
+
createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`], parsedOptions.scope);
|
2565
|
+
} else {
|
2566
|
+
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);
|
2567
|
+
createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`], parsedOptions.scope);
|
2568
|
+
createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`], parsedOptions.scope);
|
2588
2569
|
}
|
2589
|
-
lines.push(...bgLines, ...fgLines);
|
2590
2570
|
}
|
2571
|
+
lines.push(...bgLines, ...fgLines);
|
2591
2572
|
return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
|
2592
2573
|
});
|
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
|
-
}
|
2610
2574
|
function install(app) {
|
2611
2575
|
if (parsedOptions.isDisabled) return;
|
2612
2576
|
const head = app._context.provides.usehead;
|
@@ -2644,55 +2608,22 @@ function createTheme(options) {
|
|
2644
2608
|
updateStyles();
|
2645
2609
|
}
|
2646
2610
|
function updateStyles() {
|
2647
|
-
upsertStyles(parsedOptions.stylesheetId, parsedOptions.cspNonce, styles.value);
|
2611
|
+
upsertStyles(getOrCreateStyleElement(parsedOptions.stylesheetId, parsedOptions.cspNonce), styles.value);
|
2648
2612
|
}
|
2649
2613
|
}
|
2650
2614
|
}
|
2651
|
-
|
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
|
-
});
|
2615
|
+
const themeClasses = toRef(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`);
|
2681
2616
|
return {
|
2682
2617
|
install,
|
2683
|
-
change,
|
2684
|
-
cycle,
|
2685
|
-
toggle,
|
2686
2618
|
isDisabled: parsedOptions.isDisabled,
|
2687
2619
|
name,
|
2688
2620
|
themes,
|
2689
2621
|
current,
|
2690
2622
|
computedThemes,
|
2691
|
-
prefix: parsedOptions.prefix,
|
2692
2623
|
themeClasses,
|
2693
2624
|
styles,
|
2694
2625
|
global: {
|
2695
|
-
name
|
2626
|
+
name,
|
2696
2627
|
current
|
2697
2628
|
}
|
2698
2629
|
};
|
@@ -2703,7 +2634,7 @@ function provideTheme(props) {
|
|
2703
2634
|
if (!theme) throw new Error('Could not find Vuetify theme injection');
|
2704
2635
|
const name = toRef(() => props.theme ?? theme.name.value);
|
2705
2636
|
const current = toRef(() => theme.themes.value[name.value]);
|
2706
|
-
const themeClasses = toRef(() => theme.isDisabled ? undefined :
|
2637
|
+
const themeClasses = toRef(() => theme.isDisabled ? undefined : `v-theme--${name.value}`);
|
2707
2638
|
const newTheme = {
|
2708
2639
|
...theme,
|
2709
2640
|
name,
|
@@ -3807,10 +3738,7 @@ const makeVToolbarProps = propsFactory({
|
|
3807
3738
|
default: 'default',
|
3808
3739
|
validator: v => allowedDensities$1.includes(v)
|
3809
3740
|
},
|
3810
|
-
extended:
|
3811
|
-
type: Boolean,
|
3812
|
-
default: null
|
3813
|
-
},
|
3741
|
+
extended: Boolean,
|
3814
3742
|
extensionHeight: {
|
3815
3743
|
type: [Number, String],
|
3816
3744
|
default: 48
|
@@ -3858,7 +3786,7 @@ const VToolbar = genericComponent()({
|
|
3858
3786
|
const {
|
3859
3787
|
rtlClasses
|
3860
3788
|
} = useRtl();
|
3861
|
-
const isExtended = shallowRef(props.extended
|
3789
|
+
const isExtended = shallowRef(!!(props.extended || slots.extension?.()));
|
3862
3790
|
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));
|
3863
3791
|
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);
|
3864
3792
|
provideDefaults({
|
@@ -3870,7 +3798,7 @@ const VToolbar = genericComponent()({
|
|
3870
3798
|
const hasTitle = !!(props.title || slots.title);
|
3871
3799
|
const hasImage = !!(slots.image || props.image);
|
3872
3800
|
const extension = slots.extension?.();
|
3873
|
-
isExtended.value = props.extended
|
3801
|
+
isExtended.value = !!(props.extended || extension);
|
3874
3802
|
return createVNode(props.tag, {
|
3875
3803
|
"class": normalizeClass(['v-toolbar', {
|
3876
3804
|
'v-toolbar--absolute': props.absolute,
|
@@ -4253,15 +4181,9 @@ function useVariant(props) {
|
|
4253
4181
|
};
|
4254
4182
|
}
|
4255
4183
|
|
4256
|
-
// Types
|
4257
|
-
|
4258
4184
|
const makeVBtnGroupProps = propsFactory({
|
4259
4185
|
baseColor: String,
|
4260
4186
|
divided: Boolean,
|
4261
|
-
direction: {
|
4262
|
-
type: String,
|
4263
|
-
default: 'horizontal'
|
4264
|
-
},
|
4265
4187
|
...makeBorderProps(),
|
4266
4188
|
...makeComponentProps(),
|
4267
4189
|
...makeDensityProps(),
|
@@ -4295,7 +4217,7 @@ const VBtnGroup = genericComponent()({
|
|
4295
4217
|
} = useRounded(props);
|
4296
4218
|
provideDefaults({
|
4297
4219
|
VBtn: {
|
4298
|
-
height:
|
4220
|
+
height: 'auto',
|
4299
4221
|
baseColor: toRef(() => props.baseColor),
|
4300
4222
|
color: toRef(() => props.color),
|
4301
4223
|
density: toRef(() => props.density),
|
@@ -4305,7 +4227,7 @@ const VBtnGroup = genericComponent()({
|
|
4305
4227
|
});
|
4306
4228
|
useRender(() => {
|
4307
4229
|
return createVNode(props.tag, {
|
4308
|
-
"class": normalizeClass(['v-btn-group',
|
4230
|
+
"class": normalizeClass(['v-btn-group', {
|
4309
4231
|
'v-btn-group--divided': props.divided
|
4310
4232
|
}, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class]),
|
4311
4233
|
"style": normalizeStyle(props.style)
|
@@ -5637,8 +5559,8 @@ function rippleCancelShow(e) {
|
|
5637
5559
|
window.clearTimeout(element._ripple.showTimer);
|
5638
5560
|
}
|
5639
5561
|
let keyboardRipple = false;
|
5640
|
-
function keyboardRippleShow(e
|
5641
|
-
if (!keyboardRipple &&
|
5562
|
+
function keyboardRippleShow(e) {
|
5563
|
+
if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {
|
5642
5564
|
keyboardRipple = true;
|
5643
5565
|
rippleShow(e);
|
5644
5566
|
}
|
@@ -5666,12 +5588,9 @@ function updateRipple(el, binding, wasEnabled) {
|
|
5666
5588
|
el._ripple.enabled = enabled;
|
5667
5589
|
el._ripple.centered = modifiers.center;
|
5668
5590
|
el._ripple.circle = modifiers.circle;
|
5669
|
-
|
5670
|
-
|
5671
|
-
el._ripple.class = bindingValue.class;
|
5591
|
+
if (isObject(value) && value.class) {
|
5592
|
+
el._ripple.class = value.class;
|
5672
5593
|
}
|
5673
|
-
const allowedKeys = bindingValue.keys ?? [keyCodes.enter, keyCodes.space];
|
5674
|
-
el._ripple.keyDownHandler = e => keyboardRippleShow(e, allowedKeys);
|
5675
5594
|
if (enabled && !wasEnabled) {
|
5676
5595
|
if (modifiers.stop) {
|
5677
5596
|
el.addEventListener('touchstart', rippleStop, {
|
@@ -5693,7 +5612,7 @@ function updateRipple(el, binding, wasEnabled) {
|
|
5693
5612
|
el.addEventListener('mousedown', rippleShow);
|
5694
5613
|
el.addEventListener('mouseup', rippleHide);
|
5695
5614
|
el.addEventListener('mouseleave', rippleHide);
|
5696
|
-
el.addEventListener('keydown',
|
5615
|
+
el.addEventListener('keydown', keyboardRippleShow);
|
5697
5616
|
el.addEventListener('keyup', keyboardRippleHide);
|
5698
5617
|
el.addEventListener('blur', focusRippleHide);
|
5699
5618
|
|
@@ -5713,9 +5632,7 @@ function removeListeners(el) {
|
|
5713
5632
|
el.removeEventListener('touchcancel', rippleHide);
|
5714
5633
|
el.removeEventListener('mouseup', rippleHide);
|
5715
5634
|
el.removeEventListener('mouseleave', rippleHide);
|
5716
|
-
|
5717
|
-
el.removeEventListener('keydown', el._ripple.keyDownHandler);
|
5718
|
-
}
|
5635
|
+
el.removeEventListener('keydown', keyboardRippleShow);
|
5719
5636
|
el.removeEventListener('keyup', keyboardRippleHide);
|
5720
5637
|
el.removeEventListener('dragstart', rippleHide);
|
5721
5638
|
el.removeEventListener('blur', focusRippleHide);
|
@@ -5724,8 +5641,8 @@ function mounted$4(el, binding) {
|
|
5724
5641
|
updateRipple(el, binding, false);
|
5725
5642
|
}
|
5726
5643
|
function unmounted$4(el) {
|
5727
|
-
removeListeners(el);
|
5728
5644
|
delete el._ripple;
|
5645
|
+
removeListeners(el);
|
5729
5646
|
}
|
5730
5647
|
function updated$1(el, binding) {
|
5731
5648
|
if (binding.value === binding.oldValue) {
|
@@ -5998,31 +5915,6 @@ const VAppBarTitle = genericComponent()({
|
|
5998
5915
|
// Utilities
|
5999
5916
|
const VAlertTitle = createSimpleFunctional('v-alert-title');
|
6000
5917
|
|
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
|
-
|
6026
5918
|
// Types
|
6027
5919
|
|
6028
5920
|
const allowedTypes = ['success', 'info', 'warning', 'error'];
|
@@ -6062,7 +5954,6 @@ const makeVAlertProps = propsFactory({
|
|
6062
5954
|
...makeDensityProps(),
|
6063
5955
|
...makeDimensionProps(),
|
6064
5956
|
...makeElevationProps(),
|
6065
|
-
...makeIconSizeProps(),
|
6066
5957
|
...makeLocationProps(),
|
6067
5958
|
...makePositionProps(),
|
6068
5959
|
...makeRoundedProps(),
|
@@ -6090,9 +5981,6 @@ const VAlert = genericComponent()({
|
|
6090
5981
|
if (!props.type) return props.icon;
|
6091
5982
|
return props.icon ?? `$${props.type}`;
|
6092
5983
|
});
|
6093
|
-
const {
|
6094
|
-
iconSize
|
6095
|
-
} = useIconSizes(props, () => props.prominent ? 44 : 28);
|
6096
5984
|
const {
|
6097
5985
|
themeClasses
|
6098
5986
|
} = provideTheme(props);
|
@@ -6140,11 +6028,6 @@ const VAlert = genericComponent()({
|
|
6140
6028
|
const hasPrepend = !!(slots.prepend || icon.value);
|
6141
6029
|
const hasTitle = !!(slots.title || props.title);
|
6142
6030
|
const hasClose = !!(slots.close || props.closable);
|
6143
|
-
const iconProps = {
|
6144
|
-
density: props.density,
|
6145
|
-
icon: icon.value,
|
6146
|
-
size: iconSize.value
|
6147
|
-
};
|
6148
6031
|
return isActive.value && createVNode(props.tag, {
|
6149
6032
|
"class": normalizeClass(['v-alert', props.border && {
|
6150
6033
|
'v-alert--border': !!props.border,
|
@@ -6162,14 +6045,19 @@ const VAlert = genericComponent()({
|
|
6162
6045
|
}, null), hasPrepend && createElementVNode("div", {
|
6163
6046
|
"key": "prepend",
|
6164
6047
|
"class": "v-alert__prepend"
|
6165
|
-
}, [!slots.prepend ? createVNode(VIcon,
|
6166
|
-
"key": "prepend-icon"
|
6167
|
-
|
6048
|
+
}, [!slots.prepend ? createVNode(VIcon, {
|
6049
|
+
"key": "prepend-icon",
|
6050
|
+
"density": props.density,
|
6051
|
+
"icon": icon.value,
|
6052
|
+
"size": props.prominent ? 44 : 28
|
6053
|
+
}, null) : createVNode(VDefaultsProvider, {
|
6168
6054
|
"key": "prepend-defaults",
|
6169
6055
|
"disabled": !icon.value,
|
6170
6056
|
"defaults": {
|
6171
6057
|
VIcon: {
|
6172
|
-
|
6058
|
+
density: props.density,
|
6059
|
+
icon: icon.value,
|
6060
|
+
size: props.prominent ? 44 : 28
|
6173
6061
|
}
|
6174
6062
|
}
|
6175
6063
|
}, slots.prepend)]), createElementVNode("div", {
|
@@ -7694,7 +7582,6 @@ function getOffsetPosition(isHorizontal, element) {
|
|
7694
7582
|
const VSlideGroupSymbol = Symbol.for('vuetify:v-slide-group');
|
7695
7583
|
const makeVSlideGroupProps = propsFactory({
|
7696
7584
|
centerActive: Boolean,
|
7697
|
-
contentClass: null,
|
7698
7585
|
direction: {
|
7699
7586
|
type: String,
|
7700
7587
|
default: 'horizontal'
|
@@ -8007,7 +7894,7 @@ const VSlideGroup = genericComponent()({
|
|
8007
7894
|
})]), createElementVNode("div", {
|
8008
7895
|
"key": "container",
|
8009
7896
|
"ref": containerRef,
|
8010
|
-
"class":
|
7897
|
+
"class": "v-slide-group__container",
|
8011
7898
|
"onScroll": onScroll
|
8012
7899
|
}, [createElementVNode("div", {
|
8013
7900
|
"ref": contentRef,
|
@@ -8370,85 +8257,16 @@ const VChip = genericComponent()({
|
|
8370
8257
|
}
|
8371
8258
|
});
|
8372
8259
|
|
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
|
-
|
8435
8260
|
// Utilities
|
8436
8261
|
|
8437
8262
|
// List
|
8438
8263
|
const ListKey = Symbol.for('vuetify:list');
|
8439
8264
|
function createList() {
|
8440
|
-
let {
|
8441
|
-
filterable
|
8442
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
8443
|
-
filterable: false
|
8444
|
-
};
|
8445
8265
|
const parent = inject$1(ListKey, {
|
8446
|
-
filterable: false,
|
8447
8266
|
hasPrepend: shallowRef(false),
|
8448
8267
|
updateHasPrepend: () => null
|
8449
8268
|
});
|
8450
8269
|
const data = {
|
8451
|
-
filterable: parent.filterable || filterable,
|
8452
8270
|
hasPrepend: shallowRef(false),
|
8453
8271
|
updateHasPrepend: value => {
|
8454
8272
|
if (value) data.hasPrepend.value = value;
|
@@ -9400,9 +9218,6 @@ const VListItem = genericComponent()({
|
|
9400
9218
|
roundedClasses
|
9401
9219
|
} = useRounded(roundedProps);
|
9402
9220
|
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);
|
9406
9221
|
const slotProps = computed(() => ({
|
9407
9222
|
isActive: isActive.value,
|
9408
9223
|
select,
|
@@ -9427,9 +9242,8 @@ const VListItem = genericComponent()({
|
|
9427
9242
|
function onKeyDown(e) {
|
9428
9243
|
const target = e.target;
|
9429
9244
|
if (['INPUT', 'TEXTAREA'].includes(target.tagName)) return;
|
9430
|
-
if (e.key === 'Enter' || e.key === ' '
|
9245
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
9431
9246
|
e.preventDefault();
|
9432
|
-
e.stopPropagation();
|
9433
9247
|
e.target.dispatchEvent(new MouseEvent('click', e));
|
9434
9248
|
}
|
9435
9249
|
}
|
@@ -9539,7 +9353,7 @@ const VListItem = genericComponent()({
|
|
9539
9353
|
}), createElementVNode("div", {
|
9540
9354
|
"class": "v-list-item__spacer"
|
9541
9355
|
}, null)])]
|
9542
|
-
}), [[Ripple, isClickable.value &&
|
9356
|
+
}), [[Ripple, isClickable.value && props.ripple]]);
|
9543
9357
|
});
|
9544
9358
|
return {
|
9545
9359
|
activate,
|
@@ -9594,6 +9408,68 @@ const VListSubheader = genericComponent()({
|
|
9594
9408
|
}
|
9595
9409
|
});
|
9596
9410
|
|
9411
|
+
const makeVDividerProps = propsFactory({
|
9412
|
+
color: String,
|
9413
|
+
inset: Boolean,
|
9414
|
+
length: [Number, String],
|
9415
|
+
opacity: [Number, String],
|
9416
|
+
thickness: [Number, String],
|
9417
|
+
vertical: Boolean,
|
9418
|
+
...makeComponentProps(),
|
9419
|
+
...makeThemeProps()
|
9420
|
+
}, 'VDivider');
|
9421
|
+
const VDivider = genericComponent()({
|
9422
|
+
name: 'VDivider',
|
9423
|
+
props: makeVDividerProps(),
|
9424
|
+
setup(props, _ref) {
|
9425
|
+
let {
|
9426
|
+
attrs,
|
9427
|
+
slots
|
9428
|
+
} = _ref;
|
9429
|
+
const {
|
9430
|
+
themeClasses
|
9431
|
+
} = provideTheme(props);
|
9432
|
+
const {
|
9433
|
+
textColorClasses,
|
9434
|
+
textColorStyles
|
9435
|
+
} = useTextColor(() => props.color);
|
9436
|
+
const dividerStyles = computed(() => {
|
9437
|
+
const styles = {};
|
9438
|
+
if (props.length) {
|
9439
|
+
styles[props.vertical ? 'height' : 'width'] = convertToUnit(props.length);
|
9440
|
+
}
|
9441
|
+
if (props.thickness) {
|
9442
|
+
styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness);
|
9443
|
+
}
|
9444
|
+
return styles;
|
9445
|
+
});
|
9446
|
+
useRender(() => {
|
9447
|
+
const divider = createElementVNode("hr", {
|
9448
|
+
"class": normalizeClass([{
|
9449
|
+
'v-divider': true,
|
9450
|
+
'v-divider--inset': props.inset,
|
9451
|
+
'v-divider--vertical': props.vertical
|
9452
|
+
}, themeClasses.value, textColorClasses.value, props.class]),
|
9453
|
+
"style": normalizeStyle([dividerStyles.value, textColorStyles.value, {
|
9454
|
+
'--v-border-opacity': props.opacity
|
9455
|
+
}, props.style]),
|
9456
|
+
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
9457
|
+
"role": `${attrs.role || 'separator'}`
|
9458
|
+
}, null);
|
9459
|
+
if (!slots.default) return divider;
|
9460
|
+
return createElementVNode("div", {
|
9461
|
+
"class": normalizeClass(['v-divider__wrapper', {
|
9462
|
+
'v-divider__wrapper--vertical': props.vertical,
|
9463
|
+
'v-divider__wrapper--inset': props.inset
|
9464
|
+
}])
|
9465
|
+
}, [divider, createElementVNode("div", {
|
9466
|
+
"class": "v-divider__content"
|
9467
|
+
}, [slots.default()]), divider]);
|
9468
|
+
});
|
9469
|
+
return {};
|
9470
|
+
}
|
9471
|
+
});
|
9472
|
+
|
9597
9473
|
// Types
|
9598
9474
|
|
9599
9475
|
const makeVListChildrenProps = propsFactory({
|
@@ -9862,7 +9738,6 @@ const makeVListProps = propsFactory({
|
|
9862
9738
|
activeClass: String,
|
9863
9739
|
bgColor: String,
|
9864
9740
|
disabled: Boolean,
|
9865
|
-
filterable: Boolean,
|
9866
9741
|
expandIcon: IconValue,
|
9867
9742
|
collapseIcon: IconValue,
|
9868
9743
|
lines: {
|
@@ -9946,9 +9821,7 @@ const VList = genericComponent()({
|
|
9946
9821
|
const activeColor = toRef(() => props.activeColor);
|
9947
9822
|
const baseColor = toRef(() => props.baseColor);
|
9948
9823
|
const color = toRef(() => props.color);
|
9949
|
-
createList(
|
9950
|
-
filterable: props.filterable
|
9951
|
-
});
|
9824
|
+
createList();
|
9952
9825
|
provideDefaults({
|
9953
9826
|
VListGroup: {
|
9954
9827
|
activeColor,
|
@@ -12524,12 +12397,7 @@ function useVirtual(props, items) {
|
|
12524
12397
|
}
|
12525
12398
|
function calculateOffset(index) {
|
12526
12399
|
index = clamp(index, 0, items.value.length - 1);
|
12527
|
-
|
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;
|
12400
|
+
return offsets[index] || 0;
|
12533
12401
|
}
|
12534
12402
|
function calculateIndex(scrollTop) {
|
12535
12403
|
return binaryClosest(offsets, scrollTop);
|
@@ -12883,7 +12751,6 @@ const makeSelectProps = propsFactory({
|
|
12883
12751
|
},
|
12884
12752
|
openOnClear: Boolean,
|
12885
12753
|
itemColor: String,
|
12886
|
-
noAutoScroll: Boolean,
|
12887
12754
|
...makeItemsProps({
|
12888
12755
|
itemChildren: false
|
12889
12756
|
})
|
@@ -13098,7 +12965,7 @@ const VSelect = genericComponent()({
|
|
13098
12965
|
watch(menu, () => {
|
13099
12966
|
if (!props.hideSelected && menu.value && model.value.length) {
|
13100
12967
|
const index = displayItems.value.findIndex(item => model.value.some(s => (props.valueComparator || deepEqual)(s.value, item.value)));
|
13101
|
-
IN_BROWSER &&
|
12968
|
+
IN_BROWSER && window.requestAnimationFrame(() => {
|
13102
12969
|
index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
|
13103
12970
|
});
|
13104
12971
|
}
|
@@ -13190,22 +13057,6 @@ const VSelect = genericComponent()({
|
|
13190
13057
|
key: item.value,
|
13191
13058
|
onClick: () => select(item, null)
|
13192
13059
|
});
|
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
|
-
}
|
13209
13060
|
return slots.item?.({
|
13210
13061
|
item,
|
13211
13062
|
index,
|
@@ -13366,9 +13217,6 @@ function filterItems(items, query, options) {
|
|
13366
13217
|
let match = -1;
|
13367
13218
|
if ((query || customFiltersLength > 0) && !options?.noFilter) {
|
13368
13219
|
if (typeof item === 'object') {
|
13369
|
-
if (['divider', 'subheader'].includes(item.raw?.type)) {
|
13370
|
-
continue;
|
13371
|
-
}
|
13372
13220
|
const filterKeys = keys || Object.keys(transformed);
|
13373
13221
|
for (const key of filterKeys) {
|
13374
13222
|
const value = getPropertyFromItem(transformed, key);
|
@@ -13571,7 +13419,7 @@ const VAutocomplete = genericComponent()({
|
|
13571
13419
|
menu.value = !menu.value;
|
13572
13420
|
}
|
13573
13421
|
function onListKeydown(e) {
|
13574
|
-
if (
|
13422
|
+
if (e.key !== ' ' && checkPrintable(e)) {
|
13575
13423
|
vTextFieldRef.value?.focus();
|
13576
13424
|
}
|
13577
13425
|
}
|
@@ -13776,7 +13624,6 @@ const VAutocomplete = genericComponent()({
|
|
13776
13624
|
}, props.menuProps), {
|
13777
13625
|
default: () => [hasList && createVNode(VList, mergeProps({
|
13778
13626
|
"ref": listRef,
|
13779
|
-
"filterable": true,
|
13780
13627
|
"selected": selectedValues.value,
|
13781
13628
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
13782
13629
|
"onMousedown": e => e.preventDefault(),
|
@@ -13808,22 +13655,6 @@ const VAutocomplete = genericComponent()({
|
|
13808
13655
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
13809
13656
|
onClick: () => select(item, null)
|
13810
13657
|
});
|
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
|
-
}
|
13827
13658
|
return slots.item?.({
|
13828
13659
|
item,
|
13829
13660
|
index,
|
@@ -17428,13 +17259,13 @@ function date(value) {
|
|
17428
17259
|
return null;
|
17429
17260
|
}
|
17430
17261
|
const sundayJanuarySecond2000 = new Date(2000, 0, 2);
|
17431
|
-
function getWeekdays(locale, firstDayOfWeek
|
17262
|
+
function getWeekdays(locale, firstDayOfWeek) {
|
17432
17263
|
const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
|
17433
17264
|
return createRange(7).map(i => {
|
17434
17265
|
const weekday = new Date(sundayJanuarySecond2000);
|
17435
17266
|
weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
|
17436
17267
|
return new Intl.DateTimeFormat(locale, {
|
17437
|
-
weekday:
|
17268
|
+
weekday: 'narrow'
|
17438
17269
|
}).format(weekday);
|
17439
17270
|
});
|
17440
17271
|
}
|
@@ -17898,9 +17729,9 @@ class VuetifyDateAdapter {
|
|
17898
17729
|
getDiff(date, comparing, unit) {
|
17899
17730
|
return getDiff(date, comparing, unit);
|
17900
17731
|
}
|
17901
|
-
getWeekdays(firstDayOfWeek
|
17732
|
+
getWeekdays(firstDayOfWeek) {
|
17902
17733
|
const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
|
17903
|
-
return getWeekdays(this.locale, firstDay
|
17734
|
+
return getWeekdays(this.locale, firstDay);
|
17904
17735
|
}
|
17905
17736
|
getYear(date) {
|
17906
17737
|
return getYear(date);
|
@@ -18256,7 +18087,6 @@ const VCombobox = genericComponent()({
|
|
18256
18087
|
_search.value = val ?? '';
|
18257
18088
|
if (!props.multiple && !hasSelectionSlot.value) {
|
18258
18089
|
model.value = [transformItem$3(props, val)];
|
18259
|
-
nextTick(() => vVirtualScrollRef.value?.scrollToIndex(0));
|
18260
18090
|
}
|
18261
18091
|
if (val && props.multiple && props.delimiters?.length) {
|
18262
18092
|
const values = val.split(new RegExp(`(?:${props.delimiters.join('|')})+`));
|
@@ -18337,7 +18167,7 @@ const VCombobox = genericComponent()({
|
|
18337
18167
|
menu.value = !menu.value;
|
18338
18168
|
}
|
18339
18169
|
function onListKeydown(e) {
|
18340
|
-
if (
|
18170
|
+
if (e.key !== ' ' && checkPrintable(e)) {
|
18341
18171
|
vTextFieldRef.value?.focus();
|
18342
18172
|
}
|
18343
18173
|
}
|
@@ -18542,7 +18372,6 @@ const VCombobox = genericComponent()({
|
|
18542
18372
|
}, props.menuProps), {
|
18543
18373
|
default: () => [hasList && createVNode(VList, mergeProps({
|
18544
18374
|
"ref": listRef,
|
18545
|
-
"filterable": true,
|
18546
18375
|
"selected": selectedValues.value,
|
18547
18376
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
18548
18377
|
"onMousedown": e => e.preventDefault(),
|
@@ -18574,22 +18403,6 @@ const VCombobox = genericComponent()({
|
|
18574
18403
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
18575
18404
|
onClick: () => select(item, null)
|
18576
18405
|
});
|
18577
|
-
if (item.raw.type === 'divider') {
|
18578
|
-
return slots.divider?.({
|
18579
|
-
props: item.raw,
|
18580
|
-
index
|
18581
|
-
}) ?? createVNode(VDivider, mergeProps(item.props, {
|
18582
|
-
"key": `divider-${index}`
|
18583
|
-
}), null);
|
18584
|
-
}
|
18585
|
-
if (item.raw.type === 'subheader') {
|
18586
|
-
return slots.subheader?.({
|
18587
|
-
props: item.raw,
|
18588
|
-
index
|
18589
|
-
}) ?? createVNode(VListSubheader, mergeProps(item.props, {
|
18590
|
-
"key": `subheader-${index}`
|
18591
|
-
}), null);
|
18592
|
-
}
|
18593
18406
|
return slots.item?.({
|
18594
18407
|
item,
|
18595
18408
|
index,
|
@@ -20469,7 +20282,6 @@ const makeVDataTableHeadersProps = propsFactory({
|
|
20469
20282
|
color: String,
|
20470
20283
|
disableSort: Boolean,
|
20471
20284
|
fixedHeader: Boolean,
|
20472
|
-
lastFixed: Boolean,
|
20473
20285
|
multiSort: Boolean,
|
20474
20286
|
sortAscIcon: {
|
20475
20287
|
type: IconValue,
|
@@ -20516,11 +20328,10 @@ const VDataTableHeaders = genericComponent()({
|
|
20516
20328
|
loaderClasses
|
20517
20329
|
} = useLoader(props);
|
20518
20330
|
function getFixedStyles(column, y) {
|
20519
|
-
if (!(props.sticky || props.fixedHeader) && !
|
20331
|
+
if (!(props.sticky || props.fixedHeader) && !column.fixed) return undefined;
|
20520
20332
|
return {
|
20521
20333
|
position: 'sticky',
|
20522
|
-
left: column.fixed
|
20523
|
-
right: column.lastFixed ? convertToUnit(column.fixedOffset ?? 0) : undefined,
|
20334
|
+
left: column.fixed ? convertToUnit(column.fixedOffset) : undefined,
|
20524
20335
|
top: props.sticky || props.fixedHeader ? `calc(var(--v-table-header-height) * ${y})` : undefined
|
20525
20336
|
};
|
20526
20337
|
}
|
@@ -21029,18 +20840,11 @@ const VDataTableRows = genericComponent()({
|
|
21029
20840
|
}
|
21030
20841
|
});
|
21031
20842
|
|
21032
|
-
// Types
|
21033
|
-
|
21034
20843
|
const makeVTableProps = propsFactory({
|
21035
20844
|
fixedHeader: Boolean,
|
21036
20845
|
fixedFooter: Boolean,
|
21037
20846
|
height: [Number, String],
|
21038
20847
|
hover: Boolean,
|
21039
|
-
striped: {
|
21040
|
-
type: String,
|
21041
|
-
default: null,
|
21042
|
-
validator: v => ['even', 'odd'].includes(v)
|
21043
|
-
},
|
21044
20848
|
...makeComponentProps(),
|
21045
20849
|
...makeDensityProps(),
|
21046
20850
|
...makeTagProps(),
|
@@ -21067,9 +20871,7 @@ const VTable = genericComponent()({
|
|
21067
20871
|
'v-table--fixed-footer': props.fixedFooter,
|
21068
20872
|
'v-table--has-top': !!slots.top,
|
21069
20873
|
'v-table--has-bottom': !!slots.bottom,
|
21070
|
-
'v-table--hover': props.hover
|
21071
|
-
'v-table--striped-even': props.striped === 'even',
|
21072
|
-
'v-table--striped-odd': props.striped === 'odd'
|
20874
|
+
'v-table--hover': props.hover
|
21073
20875
|
}, themeClasses.value, densityClasses.value, props.class]),
|
21074
20876
|
"style": normalizeStyle(props.style)
|
21075
20877
|
}, {
|
@@ -22244,8 +22046,7 @@ const makeCalendarProps = propsFactory({
|
|
22244
22046
|
firstDayOfWeek: {
|
22245
22047
|
type: [Number, String],
|
22246
22048
|
default: undefined
|
22247
|
-
}
|
22248
|
-
weekdayFormat: String
|
22049
|
+
}
|
22249
22050
|
}, 'calendar');
|
22250
22051
|
function useCalendar(props) {
|
22251
22052
|
const adapter = useDate();
|
@@ -22486,7 +22287,7 @@ const VDatePickerMonth = genericComponent()({
|
|
22486
22287
|
"ref": daysRef,
|
22487
22288
|
"key": daysInMonth.value[0].date?.toString(),
|
22488
22289
|
"class": "v-date-picker-month__days"
|
22489
|
-
}, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek
|
22290
|
+
}, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => createElementVNode("div", {
|
22490
22291
|
"class": normalizeClass(['v-date-picker-month__day', 'v-date-picker-month__weekday'])
|
22491
22292
|
}, [weekDay])), daysInMonth.value.map((item, i) => {
|
22492
22293
|
const slotProps = {
|
@@ -25076,10 +24877,6 @@ const makeVNumberInputProps = propsFactory({
|
|
25076
24877
|
type: Number,
|
25077
24878
|
default: 0
|
25078
24879
|
},
|
25079
|
-
minFractionDigits: {
|
25080
|
-
type: Number,
|
25081
|
-
default: null
|
25082
|
-
},
|
25083
24880
|
...omit(makeVTextFieldProps(), ['modelValue', 'validationValue'])
|
25084
24881
|
}, 'VNumberInput');
|
25085
24882
|
const VNumberInput = genericComponent()({
|
@@ -25110,19 +24907,9 @@ const VNumberInput = genericComponent()({
|
|
25110
24907
|
} = useFocus(props);
|
25111
24908
|
function correctPrecision(val) {
|
25112
24909
|
let precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.precision;
|
25113
|
-
|
25114
|
-
|
25115
|
-
|
25116
|
-
let fixed = val.toFixed(precision);
|
25117
|
-
if (isFocused.value) {
|
25118
|
-
return Number(fixed).toString(); // trim zeros
|
25119
|
-
}
|
25120
|
-
if ((props.minFractionDigits ?? precision) < precision) {
|
25121
|
-
const trimLimit = precision - props.minFractionDigits;
|
25122
|
-
const [baseDigits, fractionDigits] = fixed.split('.');
|
25123
|
-
fixed = [baseDigits, fractionDigits.replace(new RegExp(`0{1,${trimLimit}}$`), '')].filter(Boolean).join('.');
|
25124
|
-
}
|
25125
|
-
return fixed;
|
24910
|
+
const fixed = precision == null ? String(val) : val.toFixed(precision);
|
24911
|
+
return isFocused.value ? Number(fixed).toString() // trim zeros
|
24912
|
+
: fixed;
|
25126
24913
|
}
|
25127
24914
|
const model = useProxiedModel(props, 'modelValue', null, val => val ?? null, val => val == null ? val ?? null : clamp(Number(val), props.min, props.max));
|
25128
24915
|
const _inputText = shallowRef(null);
|
@@ -25177,7 +24964,6 @@ const VNumberInput = genericComponent()({
|
|
25177
24964
|
}
|
25178
24965
|
};
|
25179
24966
|
watch(() => props.precision, () => formatInputValue());
|
25180
|
-
watch(() => props.minFractionDigits, () => formatInputValue());
|
25181
24967
|
onMounted(() => {
|
25182
24968
|
clampModel();
|
25183
24969
|
});
|
@@ -25292,7 +25078,7 @@ const VNumberInput = genericComponent()({
|
|
25292
25078
|
inputText.value = null;
|
25293
25079
|
return;
|
25294
25080
|
}
|
25295
|
-
inputText.value =
|
25081
|
+
inputText.value = props.precision == null ? String(model.value) : model.value.toFixed(props.precision);
|
25296
25082
|
}
|
25297
25083
|
function trimDecimalZeros() {
|
25298
25084
|
if (controlsDisabled.value) return;
|
@@ -25552,10 +25338,9 @@ const VOtpInput = genericComponent()({
|
|
25552
25338
|
e.preventDefault();
|
25553
25339
|
e.stopPropagation();
|
25554
25340
|
const clipboardText = e?.clipboardData?.getData('Text').slice(0, length.value) ?? '';
|
25555
|
-
const finalIndex = clipboardText.length - 1 === -1 ? index : clipboardText.length - 1;
|
25556
25341
|
if (isValidNumber(clipboardText)) return;
|
25557
25342
|
model.value = clipboardText.split('');
|
25558
|
-
inputRef.value?.[
|
25343
|
+
inputRef.value?.[index].blur();
|
25559
25344
|
}
|
25560
25345
|
function reset() {
|
25561
25346
|
model.value = [];
|
@@ -30258,6 +30043,11 @@ const makeVIconBtnProps = propsFactory({
|
|
30258
30043
|
hideOverlay: Boolean,
|
30259
30044
|
icon: [String, Function, Object],
|
30260
30045
|
iconColor: String,
|
30046
|
+
iconSize: [Number, String],
|
30047
|
+
iconSizes: {
|
30048
|
+
type: Array,
|
30049
|
+
default: () => [['x-small', 10], ['small', 16], ['default', 24], ['large', 28], ['x-large', 32]]
|
30050
|
+
},
|
30261
30051
|
loading: Boolean,
|
30262
30052
|
opacity: [Number, String],
|
30263
30053
|
readonly: Boolean,
|
@@ -30277,7 +30067,6 @@ const makeVIconBtnProps = propsFactory({
|
|
30277
30067
|
...makeBorderProps(),
|
30278
30068
|
...makeComponentProps(),
|
30279
30069
|
...makeElevationProps(),
|
30280
|
-
...makeIconSizeProps(),
|
30281
30070
|
...makeRoundedProps(),
|
30282
30071
|
...makeTagProps({
|
30283
30072
|
tag: 'button'
|
@@ -30332,6 +30121,7 @@ const VIconBtn = genericComponent()({
|
|
30332
30121
|
})()
|
30333
30122
|
}));
|
30334
30123
|
const btnSizeMap = new Map(props.sizes);
|
30124
|
+
const iconSizeMap = new Map(props.iconSizes);
|
30335
30125
|
function onClick() {
|
30336
30126
|
if (props.disabled || props.readonly || isActive.value === undefined || props.tag === 'a' && attrs.href) return;
|
30337
30127
|
isActive.value = !isActive.value;
|
@@ -30343,12 +30133,12 @@ const VIconBtn = genericComponent()({
|
|
30343
30133
|
const btnSize = hasNamedSize ? btnSizeMap.get(_btnSize) : _btnSize;
|
30344
30134
|
const btnHeight = props.height ?? btnSize;
|
30345
30135
|
const btnWidth = props.width ?? btnSize;
|
30346
|
-
const
|
30347
|
-
|
30348
|
-
|
30136
|
+
const _iconSize = props.iconSize;
|
30137
|
+
const hasNamedIconSize = iconSizeMap.has(_iconSize);
|
30138
|
+
const iconSize = !_iconSize ? hasNamedSize ? iconSizeMap.get(_btnSize) : iconSizeMap.get('default') : hasNamedIconSize ? iconSizeMap.get(_iconSize) : _iconSize;
|
30349
30139
|
const iconProps = {
|
30350
30140
|
icon,
|
30351
|
-
size: iconSize
|
30141
|
+
size: iconSize,
|
30352
30142
|
iconColor: props.iconColor,
|
30353
30143
|
opacity: props.opacity
|
30354
30144
|
};
|
@@ -30391,7 +30181,7 @@ const VIconBtn = genericComponent()({
|
|
30391
30181
|
"color": typeof props.loading === 'boolean' ? undefined : props.loading,
|
30392
30182
|
"indeterminate": "disable-shrink",
|
30393
30183
|
"width": "2",
|
30394
|
-
"size": iconSize
|
30184
|
+
"size": iconSize
|
30395
30185
|
}, null)])]
|
30396
30186
|
});
|
30397
30187
|
});
|
@@ -32301,7 +32091,7 @@ function createVuetify$1() {
|
|
32301
32091
|
};
|
32302
32092
|
});
|
32303
32093
|
}
|
32304
|
-
const version$1 = "3.8.8-
|
32094
|
+
const version$1 = "3.8.8-master.2025-06-06";
|
32305
32095
|
createVuetify$1.version = version$1;
|
32306
32096
|
|
32307
32097
|
// Vue's inject() can only be used in setup
|
@@ -32599,7 +32389,7 @@ var index = /*#__PURE__*/Object.freeze({
|
|
32599
32389
|
|
32600
32390
|
/* eslint-disable local-rules/sort-imports */
|
32601
32391
|
|
32602
|
-
const version = "3.8.8-
|
32392
|
+
const version = "3.8.8-master.2025-06-06";
|
32603
32393
|
|
32604
32394
|
/* eslint-disable local-rules/sort-imports */
|
32605
32395
|
|