@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.cjs
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.8.8-
|
2
|
+
* Vuetify v3.8.8-master.2025-06-06
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -85,7 +85,6 @@
|
|
85
85
|
const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
|
86
86
|
const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0);
|
87
87
|
const SUPPORTS_EYE_DROPPER = IN_BROWSER && 'EyeDropper' in window;
|
88
|
-
const SUPPORTS_MATCH_MEDIA = IN_BROWSER && 'matchMedia' in window && typeof window.matchMedia === 'function';
|
89
88
|
|
90
89
|
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
91
90
|
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
@@ -2350,7 +2349,6 @@
|
|
2350
2349
|
function genDefaults$2() {
|
2351
2350
|
return {
|
2352
2351
|
defaultTheme: 'light',
|
2353
|
-
prefix: 'v-',
|
2354
2352
|
variations: {
|
2355
2353
|
colors: [],
|
2356
2354
|
lighten: 0,
|
@@ -2432,10 +2430,7 @@
|
|
2432
2430
|
}
|
2433
2431
|
}
|
2434
2432
|
},
|
2435
|
-
stylesheetId: 'vuetify-theme-stylesheet'
|
2436
|
-
scoped: false,
|
2437
|
-
unimportant: false,
|
2438
|
-
utilities: true
|
2433
|
+
stylesheetId: 'vuetify-theme-stylesheet'
|
2439
2434
|
};
|
2440
2435
|
}
|
2441
2436
|
function parseThemeOptions() {
|
@@ -2458,21 +2453,21 @@
|
|
2458
2453
|
function createCssClass(lines, selector, content, scope) {
|
2459
2454
|
lines.push(`${getScopedSelector(selector, scope)} {\n`, ...content.map(line => ` ${line};\n`), '}\n');
|
2460
2455
|
}
|
2461
|
-
function genCssVariables(theme
|
2456
|
+
function genCssVariables(theme) {
|
2462
2457
|
const lightOverlay = theme.dark ? 2 : 1;
|
2463
2458
|
const darkOverlay = theme.dark ? 1 : 2;
|
2464
2459
|
const variables = [];
|
2465
2460
|
for (const [key, value] of Object.entries(theme.colors)) {
|
2466
2461
|
const rgb = parseColor(value);
|
2467
|
-
variables.push(
|
2462
|
+
variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
|
2468
2463
|
if (!key.startsWith('on-')) {
|
2469
|
-
variables.push(
|
2464
|
+
variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
|
2470
2465
|
}
|
2471
2466
|
}
|
2472
2467
|
for (const [key, value] of Object.entries(theme.variables)) {
|
2473
2468
|
const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;
|
2474
2469
|
const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
|
2475
|
-
variables.push(
|
2470
|
+
variables.push(`--v-${key}: ${rgb ?? value}`);
|
2476
2471
|
}
|
2477
2472
|
return variables;
|
2478
2473
|
}
|
@@ -2516,8 +2511,7 @@
|
|
2516
2511
|
const scopeSelector = `:where(${scope})`;
|
2517
2512
|
return selector === ':root' ? scopeSelector : `${scopeSelector} ${selector}`;
|
2518
2513
|
}
|
2519
|
-
function upsertStyles(
|
2520
|
-
const styleEl = getOrCreateStyleElement(id, cspNonce);
|
2514
|
+
function upsertStyles(styleEl, styles) {
|
2521
2515
|
if (!styleEl) return;
|
2522
2516
|
styleEl.innerHTML = styles;
|
2523
2517
|
}
|
@@ -2537,17 +2531,8 @@
|
|
2537
2531
|
// Composables
|
2538
2532
|
function createTheme(options) {
|
2539
2533
|
const parsedOptions = parseThemeOptions(options);
|
2540
|
-
const
|
2534
|
+
const name = vue.shallowRef(parsedOptions.defaultTheme);
|
2541
2535
|
const themes = vue.ref(parsedOptions.themes);
|
2542
|
-
const systemName = vue.shallowRef('light');
|
2543
|
-
const name = vue.computed({
|
2544
|
-
get() {
|
2545
|
-
return _name.value === 'system' ? systemName.value : _name.value;
|
2546
|
-
},
|
2547
|
-
set(val) {
|
2548
|
-
_name.value = val;
|
2549
|
-
}
|
2550
|
-
});
|
2551
2536
|
const computedThemes = vue.computed(() => {
|
2552
2537
|
const acc = {};
|
2553
2538
|
for (const [name, original] of Object.entries(themes.value)) {
|
@@ -2568,49 +2553,28 @@
|
|
2568
2553
|
const current = vue.toRef(() => computedThemes.value[name.value]);
|
2569
2554
|
const styles = vue.computed(() => {
|
2570
2555
|
const lines = [];
|
2571
|
-
const important = parsedOptions.unimportant ? '' : ' !important';
|
2572
|
-
const scoped = parsedOptions.scoped ? parsedOptions.prefix : '';
|
2573
2556
|
if (current.value?.dark) {
|
2574
2557
|
createCssClass(lines, ':root', ['color-scheme: dark'], parsedOptions.scope);
|
2575
2558
|
}
|
2576
|
-
createCssClass(lines, ':root', genCssVariables(current.value
|
2559
|
+
createCssClass(lines, ':root', genCssVariables(current.value), parsedOptions.scope);
|
2577
2560
|
for (const [themeName, theme] of Object.entries(computedThemes.value)) {
|
2578
|
-
createCssClass(lines,
|
2579
|
-
}
|
2580
|
-
|
2581
|
-
|
2582
|
-
|
2583
|
-
|
2584
|
-
|
2585
|
-
|
2586
|
-
|
2587
|
-
}
|
2588
|
-
|
2589
|
-
|
2590
|
-
createCssClass(fgLines, `.${scoped}border-${key}`, [`--${parsedOptions.prefix}border-color: var(--${parsedOptions.prefix}theme-${key})`], parsedOptions.scope);
|
2591
|
-
}
|
2561
|
+
createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme)], parsedOptions.scope);
|
2562
|
+
}
|
2563
|
+
const bgLines = [];
|
2564
|
+
const fgLines = [];
|
2565
|
+
const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));
|
2566
|
+
for (const key of colors) {
|
2567
|
+
if (key.startsWith('on-')) {
|
2568
|
+
createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`], parsedOptions.scope);
|
2569
|
+
} else {
|
2570
|
+
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);
|
2571
|
+
createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`], parsedOptions.scope);
|
2572
|
+
createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`], parsedOptions.scope);
|
2592
2573
|
}
|
2593
|
-
lines.push(...bgLines, ...fgLines);
|
2594
2574
|
}
|
2575
|
+
lines.push(...bgLines, ...fgLines);
|
2595
2576
|
return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
|
2596
2577
|
});
|
2597
|
-
const themeClasses = vue.toRef(() => parsedOptions.isDisabled ? undefined : `${parsedOptions.prefix}theme--${name.value}`);
|
2598
|
-
const themeNames = vue.toRef(() => Object.keys(computedThemes.value));
|
2599
|
-
if (SUPPORTS_MATCH_MEDIA) {
|
2600
|
-
const media = window.matchMedia('(prefers-color-scheme: dark)');
|
2601
|
-
function updateSystemName() {
|
2602
|
-
systemName.value = media.matches ? 'dark' : 'light';
|
2603
|
-
}
|
2604
|
-
updateSystemName();
|
2605
|
-
media.addEventListener('change', updateSystemName, {
|
2606
|
-
passive: true
|
2607
|
-
});
|
2608
|
-
if (vue.getCurrentScope()) {
|
2609
|
-
vue.onScopeDispose(() => {
|
2610
|
-
media.removeEventListener('change', updateSystemName);
|
2611
|
-
});
|
2612
|
-
}
|
2613
|
-
}
|
2614
2578
|
function install(app) {
|
2615
2579
|
if (parsedOptions.isDisabled) return;
|
2616
2580
|
const head = app._context.provides.usehead;
|
@@ -2648,55 +2612,22 @@
|
|
2648
2612
|
updateStyles();
|
2649
2613
|
}
|
2650
2614
|
function updateStyles() {
|
2651
|
-
upsertStyles(parsedOptions.stylesheetId, parsedOptions.cspNonce, styles.value);
|
2615
|
+
upsertStyles(getOrCreateStyleElement(parsedOptions.stylesheetId, parsedOptions.cspNonce), styles.value);
|
2652
2616
|
}
|
2653
2617
|
}
|
2654
2618
|
}
|
2655
|
-
|
2656
|
-
if (!themeNames.value.includes(themeName)) {
|
2657
|
-
consoleWarn(`Theme "${themeName}" not found on the Vuetify theme instance`);
|
2658
|
-
return;
|
2659
|
-
}
|
2660
|
-
name.value = themeName;
|
2661
|
-
}
|
2662
|
-
function cycle() {
|
2663
|
-
let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : themeNames.value;
|
2664
|
-
const currentIndex = themeArray.indexOf(name.value);
|
2665
|
-
const nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % themeArray.length;
|
2666
|
-
change(themeArray[nextIndex]);
|
2667
|
-
}
|
2668
|
-
function toggle() {
|
2669
|
-
let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['light', 'dark'];
|
2670
|
-
cycle(themeArray);
|
2671
|
-
}
|
2672
|
-
const globalName = new Proxy(name, {
|
2673
|
-
get(target, prop) {
|
2674
|
-
return target[prop];
|
2675
|
-
},
|
2676
|
-
set(target, prop, val) {
|
2677
|
-
if (prop === 'value') {
|
2678
|
-
deprecate(`theme.global.name.value = ${val}`, `theme.change('${val}')`);
|
2679
|
-
}
|
2680
|
-
// @ts-expect-error
|
2681
|
-
target[prop] = val;
|
2682
|
-
return true;
|
2683
|
-
}
|
2684
|
-
});
|
2619
|
+
const themeClasses = vue.toRef(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`);
|
2685
2620
|
return {
|
2686
2621
|
install,
|
2687
|
-
change,
|
2688
|
-
cycle,
|
2689
|
-
toggle,
|
2690
2622
|
isDisabled: parsedOptions.isDisabled,
|
2691
2623
|
name,
|
2692
2624
|
themes,
|
2693
2625
|
current,
|
2694
2626
|
computedThemes,
|
2695
|
-
prefix: parsedOptions.prefix,
|
2696
2627
|
themeClasses,
|
2697
2628
|
styles,
|
2698
2629
|
global: {
|
2699
|
-
name
|
2630
|
+
name,
|
2700
2631
|
current
|
2701
2632
|
}
|
2702
2633
|
};
|
@@ -2707,7 +2638,7 @@
|
|
2707
2638
|
if (!theme) throw new Error('Could not find Vuetify theme injection');
|
2708
2639
|
const name = vue.toRef(() => props.theme ?? theme.name.value);
|
2709
2640
|
const current = vue.toRef(() => theme.themes.value[name.value]);
|
2710
|
-
const themeClasses = vue.toRef(() => theme.isDisabled ? undefined :
|
2641
|
+
const themeClasses = vue.toRef(() => theme.isDisabled ? undefined : `v-theme--${name.value}`);
|
2711
2642
|
const newTheme = {
|
2712
2643
|
...theme,
|
2713
2644
|
name,
|
@@ -3811,10 +3742,7 @@
|
|
3811
3742
|
default: 'default',
|
3812
3743
|
validator: v => allowedDensities$1.includes(v)
|
3813
3744
|
},
|
3814
|
-
extended:
|
3815
|
-
type: Boolean,
|
3816
|
-
default: null
|
3817
|
-
},
|
3745
|
+
extended: Boolean,
|
3818
3746
|
extensionHeight: {
|
3819
3747
|
type: [Number, String],
|
3820
3748
|
default: 48
|
@@ -3862,7 +3790,7 @@
|
|
3862
3790
|
const {
|
3863
3791
|
rtlClasses
|
3864
3792
|
} = useRtl();
|
3865
|
-
const isExtended = vue.shallowRef(props.extended
|
3793
|
+
const isExtended = vue.shallowRef(!!(props.extended || slots.extension?.()));
|
3866
3794
|
const contentHeight = vue.computed(() => parseInt(Number(props.height) + (props.density === 'prominent' ? Number(props.height) : 0) - (props.density === 'comfortable' ? 8 : 0) - (props.density === 'compact' ? 16 : 0), 10));
|
3867
3795
|
const extensionHeight = vue.computed(() => isExtended.value ? parseInt(Number(props.extensionHeight) + (props.density === 'prominent' ? Number(props.extensionHeight) : 0) - (props.density === 'comfortable' ? 4 : 0) - (props.density === 'compact' ? 8 : 0), 10) : 0);
|
3868
3796
|
provideDefaults({
|
@@ -3874,7 +3802,7 @@
|
|
3874
3802
|
const hasTitle = !!(props.title || slots.title);
|
3875
3803
|
const hasImage = !!(slots.image || props.image);
|
3876
3804
|
const extension = slots.extension?.();
|
3877
|
-
isExtended.value = props.extended
|
3805
|
+
isExtended.value = !!(props.extended || extension);
|
3878
3806
|
return vue.createVNode(props.tag, {
|
3879
3807
|
"class": vue.normalizeClass(['v-toolbar', {
|
3880
3808
|
'v-toolbar--absolute': props.absolute,
|
@@ -4257,15 +4185,9 @@
|
|
4257
4185
|
};
|
4258
4186
|
}
|
4259
4187
|
|
4260
|
-
// Types
|
4261
|
-
|
4262
4188
|
const makeVBtnGroupProps = propsFactory({
|
4263
4189
|
baseColor: String,
|
4264
4190
|
divided: Boolean,
|
4265
|
-
direction: {
|
4266
|
-
type: String,
|
4267
|
-
default: 'horizontal'
|
4268
|
-
},
|
4269
4191
|
...makeBorderProps(),
|
4270
4192
|
...makeComponentProps(),
|
4271
4193
|
...makeDensityProps(),
|
@@ -4299,7 +4221,7 @@
|
|
4299
4221
|
} = useRounded(props);
|
4300
4222
|
provideDefaults({
|
4301
4223
|
VBtn: {
|
4302
|
-
height:
|
4224
|
+
height: 'auto',
|
4303
4225
|
baseColor: vue.toRef(() => props.baseColor),
|
4304
4226
|
color: vue.toRef(() => props.color),
|
4305
4227
|
density: vue.toRef(() => props.density),
|
@@ -4309,7 +4231,7 @@
|
|
4309
4231
|
});
|
4310
4232
|
useRender(() => {
|
4311
4233
|
return vue.createVNode(props.tag, {
|
4312
|
-
"class": vue.normalizeClass(['v-btn-group',
|
4234
|
+
"class": vue.normalizeClass(['v-btn-group', {
|
4313
4235
|
'v-btn-group--divided': props.divided
|
4314
4236
|
}, themeClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value, props.class]),
|
4315
4237
|
"style": vue.normalizeStyle(props.style)
|
@@ -5641,8 +5563,8 @@
|
|
5641
5563
|
window.clearTimeout(element._ripple.showTimer);
|
5642
5564
|
}
|
5643
5565
|
let keyboardRipple = false;
|
5644
|
-
function keyboardRippleShow(e
|
5645
|
-
if (!keyboardRipple &&
|
5566
|
+
function keyboardRippleShow(e) {
|
5567
|
+
if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {
|
5646
5568
|
keyboardRipple = true;
|
5647
5569
|
rippleShow(e);
|
5648
5570
|
}
|
@@ -5670,12 +5592,9 @@
|
|
5670
5592
|
el._ripple.enabled = enabled;
|
5671
5593
|
el._ripple.centered = modifiers.center;
|
5672
5594
|
el._ripple.circle = modifiers.circle;
|
5673
|
-
|
5674
|
-
|
5675
|
-
el._ripple.class = bindingValue.class;
|
5595
|
+
if (isObject(value) && value.class) {
|
5596
|
+
el._ripple.class = value.class;
|
5676
5597
|
}
|
5677
|
-
const allowedKeys = bindingValue.keys ?? [keyCodes.enter, keyCodes.space];
|
5678
|
-
el._ripple.keyDownHandler = e => keyboardRippleShow(e, allowedKeys);
|
5679
5598
|
if (enabled && !wasEnabled) {
|
5680
5599
|
if (modifiers.stop) {
|
5681
5600
|
el.addEventListener('touchstart', rippleStop, {
|
@@ -5697,7 +5616,7 @@
|
|
5697
5616
|
el.addEventListener('mousedown', rippleShow);
|
5698
5617
|
el.addEventListener('mouseup', rippleHide);
|
5699
5618
|
el.addEventListener('mouseleave', rippleHide);
|
5700
|
-
el.addEventListener('keydown',
|
5619
|
+
el.addEventListener('keydown', keyboardRippleShow);
|
5701
5620
|
el.addEventListener('keyup', keyboardRippleHide);
|
5702
5621
|
el.addEventListener('blur', focusRippleHide);
|
5703
5622
|
|
@@ -5717,9 +5636,7 @@
|
|
5717
5636
|
el.removeEventListener('touchcancel', rippleHide);
|
5718
5637
|
el.removeEventListener('mouseup', rippleHide);
|
5719
5638
|
el.removeEventListener('mouseleave', rippleHide);
|
5720
|
-
|
5721
|
-
el.removeEventListener('keydown', el._ripple.keyDownHandler);
|
5722
|
-
}
|
5639
|
+
el.removeEventListener('keydown', keyboardRippleShow);
|
5723
5640
|
el.removeEventListener('keyup', keyboardRippleHide);
|
5724
5641
|
el.removeEventListener('dragstart', rippleHide);
|
5725
5642
|
el.removeEventListener('blur', focusRippleHide);
|
@@ -5728,8 +5645,8 @@
|
|
5728
5645
|
updateRipple(el, binding, false);
|
5729
5646
|
}
|
5730
5647
|
function unmounted$4(el) {
|
5731
|
-
removeListeners(el);
|
5732
5648
|
delete el._ripple;
|
5649
|
+
removeListeners(el);
|
5733
5650
|
}
|
5734
5651
|
function updated$1(el, binding) {
|
5735
5652
|
if (binding.value === binding.oldValue) {
|
@@ -6002,31 +5919,6 @@
|
|
6002
5919
|
// Utilities
|
6003
5920
|
const VAlertTitle = createSimpleFunctional('v-alert-title');
|
6004
5921
|
|
6005
|
-
// Utilities
|
6006
|
-
|
6007
|
-
// Types
|
6008
|
-
|
6009
|
-
// Types
|
6010
|
-
|
6011
|
-
// Composables
|
6012
|
-
const makeIconSizeProps = propsFactory({
|
6013
|
-
iconSize: [Number, String],
|
6014
|
-
iconSizes: {
|
6015
|
-
type: Array,
|
6016
|
-
default: () => [['x-small', 10], ['small', 16], ['default', 24], ['large', 28], ['x-large', 32]]
|
6017
|
-
}
|
6018
|
-
}, 'iconSize');
|
6019
|
-
function useIconSizes(props, fallback) {
|
6020
|
-
const iconSize = vue.computed(() => {
|
6021
|
-
const iconSizeMap = new Map(props.iconSizes);
|
6022
|
-
const _iconSize = props.iconSize ?? fallback() ?? 'default';
|
6023
|
-
return iconSizeMap.has(_iconSize) ? iconSizeMap.get(_iconSize) : _iconSize;
|
6024
|
-
});
|
6025
|
-
return {
|
6026
|
-
iconSize
|
6027
|
-
};
|
6028
|
-
}
|
6029
|
-
|
6030
5922
|
// Types
|
6031
5923
|
|
6032
5924
|
const allowedTypes = ['success', 'info', 'warning', 'error'];
|
@@ -6066,7 +5958,6 @@
|
|
6066
5958
|
...makeDensityProps(),
|
6067
5959
|
...makeDimensionProps(),
|
6068
5960
|
...makeElevationProps(),
|
6069
|
-
...makeIconSizeProps(),
|
6070
5961
|
...makeLocationProps(),
|
6071
5962
|
...makePositionProps(),
|
6072
5963
|
...makeRoundedProps(),
|
@@ -6094,9 +5985,6 @@
|
|
6094
5985
|
if (!props.type) return props.icon;
|
6095
5986
|
return props.icon ?? `$${props.type}`;
|
6096
5987
|
});
|
6097
|
-
const {
|
6098
|
-
iconSize
|
6099
|
-
} = useIconSizes(props, () => props.prominent ? 44 : 28);
|
6100
5988
|
const {
|
6101
5989
|
themeClasses
|
6102
5990
|
} = provideTheme(props);
|
@@ -6144,11 +6032,6 @@
|
|
6144
6032
|
const hasPrepend = !!(slots.prepend || icon.value);
|
6145
6033
|
const hasTitle = !!(slots.title || props.title);
|
6146
6034
|
const hasClose = !!(slots.close || props.closable);
|
6147
|
-
const iconProps = {
|
6148
|
-
density: props.density,
|
6149
|
-
icon: icon.value,
|
6150
|
-
size: iconSize.value
|
6151
|
-
};
|
6152
6035
|
return isActive.value && vue.createVNode(props.tag, {
|
6153
6036
|
"class": vue.normalizeClass(['v-alert', props.border && {
|
6154
6037
|
'v-alert--border': !!props.border,
|
@@ -6166,14 +6049,19 @@
|
|
6166
6049
|
}, null), hasPrepend && vue.createElementVNode("div", {
|
6167
6050
|
"key": "prepend",
|
6168
6051
|
"class": "v-alert__prepend"
|
6169
|
-
}, [!slots.prepend ? vue.createVNode(VIcon,
|
6170
|
-
"key": "prepend-icon"
|
6171
|
-
|
6052
|
+
}, [!slots.prepend ? vue.createVNode(VIcon, {
|
6053
|
+
"key": "prepend-icon",
|
6054
|
+
"density": props.density,
|
6055
|
+
"icon": icon.value,
|
6056
|
+
"size": props.prominent ? 44 : 28
|
6057
|
+
}, null) : vue.createVNode(VDefaultsProvider, {
|
6172
6058
|
"key": "prepend-defaults",
|
6173
6059
|
"disabled": !icon.value,
|
6174
6060
|
"defaults": {
|
6175
6061
|
VIcon: {
|
6176
|
-
|
6062
|
+
density: props.density,
|
6063
|
+
icon: icon.value,
|
6064
|
+
size: props.prominent ? 44 : 28
|
6177
6065
|
}
|
6178
6066
|
}
|
6179
6067
|
}, slots.prepend)]), vue.createElementVNode("div", {
|
@@ -7698,7 +7586,6 @@
|
|
7698
7586
|
const VSlideGroupSymbol = Symbol.for('vuetify:v-slide-group');
|
7699
7587
|
const makeVSlideGroupProps = propsFactory({
|
7700
7588
|
centerActive: Boolean,
|
7701
|
-
contentClass: null,
|
7702
7589
|
direction: {
|
7703
7590
|
type: String,
|
7704
7591
|
default: 'horizontal'
|
@@ -8011,7 +7898,7 @@
|
|
8011
7898
|
})]), vue.createElementVNode("div", {
|
8012
7899
|
"key": "container",
|
8013
7900
|
"ref": containerRef,
|
8014
|
-
"class":
|
7901
|
+
"class": "v-slide-group__container",
|
8015
7902
|
"onScroll": onScroll
|
8016
7903
|
}, [vue.createElementVNode("div", {
|
8017
7904
|
"ref": contentRef,
|
@@ -8374,85 +8261,16 @@
|
|
8374
8261
|
}
|
8375
8262
|
});
|
8376
8263
|
|
8377
|
-
const makeVDividerProps = propsFactory({
|
8378
|
-
color: String,
|
8379
|
-
inset: Boolean,
|
8380
|
-
length: [Number, String],
|
8381
|
-
opacity: [Number, String],
|
8382
|
-
thickness: [Number, String],
|
8383
|
-
vertical: Boolean,
|
8384
|
-
...makeComponentProps(),
|
8385
|
-
...makeThemeProps()
|
8386
|
-
}, 'VDivider');
|
8387
|
-
const VDivider = genericComponent()({
|
8388
|
-
name: 'VDivider',
|
8389
|
-
props: makeVDividerProps(),
|
8390
|
-
setup(props, _ref) {
|
8391
|
-
let {
|
8392
|
-
attrs,
|
8393
|
-
slots
|
8394
|
-
} = _ref;
|
8395
|
-
const {
|
8396
|
-
themeClasses
|
8397
|
-
} = provideTheme(props);
|
8398
|
-
const {
|
8399
|
-
textColorClasses,
|
8400
|
-
textColorStyles
|
8401
|
-
} = useTextColor(() => props.color);
|
8402
|
-
const dividerStyles = vue.computed(() => {
|
8403
|
-
const styles = {};
|
8404
|
-
if (props.length) {
|
8405
|
-
styles[props.vertical ? 'height' : 'width'] = convertToUnit(props.length);
|
8406
|
-
}
|
8407
|
-
if (props.thickness) {
|
8408
|
-
styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness);
|
8409
|
-
}
|
8410
|
-
return styles;
|
8411
|
-
});
|
8412
|
-
useRender(() => {
|
8413
|
-
const divider = vue.createElementVNode("hr", {
|
8414
|
-
"class": vue.normalizeClass([{
|
8415
|
-
'v-divider': true,
|
8416
|
-
'v-divider--inset': props.inset,
|
8417
|
-
'v-divider--vertical': props.vertical
|
8418
|
-
}, themeClasses.value, textColorClasses.value, props.class]),
|
8419
|
-
"style": vue.normalizeStyle([dividerStyles.value, textColorStyles.value, {
|
8420
|
-
'--v-border-opacity': props.opacity
|
8421
|
-
}, props.style]),
|
8422
|
-
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
8423
|
-
"role": `${attrs.role || 'separator'}`
|
8424
|
-
}, null);
|
8425
|
-
if (!slots.default) return divider;
|
8426
|
-
return vue.createElementVNode("div", {
|
8427
|
-
"class": vue.normalizeClass(['v-divider__wrapper', {
|
8428
|
-
'v-divider__wrapper--vertical': props.vertical,
|
8429
|
-
'v-divider__wrapper--inset': props.inset
|
8430
|
-
}])
|
8431
|
-
}, [divider, vue.createElementVNode("div", {
|
8432
|
-
"class": "v-divider__content"
|
8433
|
-
}, [slots.default()]), divider]);
|
8434
|
-
});
|
8435
|
-
return {};
|
8436
|
-
}
|
8437
|
-
});
|
8438
|
-
|
8439
8264
|
// Utilities
|
8440
8265
|
|
8441
8266
|
// List
|
8442
8267
|
const ListKey = Symbol.for('vuetify:list');
|
8443
8268
|
function createList() {
|
8444
|
-
let {
|
8445
|
-
filterable
|
8446
|
-
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
8447
|
-
filterable: false
|
8448
|
-
};
|
8449
8269
|
const parent = vue.inject(ListKey, {
|
8450
|
-
filterable: false,
|
8451
8270
|
hasPrepend: vue.shallowRef(false),
|
8452
8271
|
updateHasPrepend: () => null
|
8453
8272
|
});
|
8454
8273
|
const data = {
|
8455
|
-
filterable: parent.filterable || filterable,
|
8456
8274
|
hasPrepend: vue.shallowRef(false),
|
8457
8275
|
updateHasPrepend: value => {
|
8458
8276
|
if (value) data.hasPrepend.value = value;
|
@@ -9404,9 +9222,6 @@
|
|
9404
9222
|
roundedClasses
|
9405
9223
|
} = useRounded(roundedProps);
|
9406
9224
|
const lineClasses = vue.toRef(() => props.lines ? `v-list-item--${props.lines}-line` : undefined);
|
9407
|
-
const rippleOptions = vue.toRef(() => props.ripple !== undefined && !!props.ripple && list?.filterable ? {
|
9408
|
-
keys: [keyCodes.enter]
|
9409
|
-
} : props.ripple);
|
9410
9225
|
const slotProps = vue.computed(() => ({
|
9411
9226
|
isActive: isActive.value,
|
9412
9227
|
select,
|
@@ -9431,9 +9246,8 @@
|
|
9431
9246
|
function onKeyDown(e) {
|
9432
9247
|
const target = e.target;
|
9433
9248
|
if (['INPUT', 'TEXTAREA'].includes(target.tagName)) return;
|
9434
|
-
if (e.key === 'Enter' || e.key === ' '
|
9249
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
9435
9250
|
e.preventDefault();
|
9436
|
-
e.stopPropagation();
|
9437
9251
|
e.target.dispatchEvent(new MouseEvent('click', e));
|
9438
9252
|
}
|
9439
9253
|
}
|
@@ -9543,7 +9357,7 @@
|
|
9543
9357
|
}), vue.createElementVNode("div", {
|
9544
9358
|
"class": "v-list-item__spacer"
|
9545
9359
|
}, null)])]
|
9546
|
-
}), [[Ripple, isClickable.value &&
|
9360
|
+
}), [[Ripple, isClickable.value && props.ripple]]);
|
9547
9361
|
});
|
9548
9362
|
return {
|
9549
9363
|
activate,
|
@@ -9598,6 +9412,68 @@
|
|
9598
9412
|
}
|
9599
9413
|
});
|
9600
9414
|
|
9415
|
+
const makeVDividerProps = propsFactory({
|
9416
|
+
color: String,
|
9417
|
+
inset: Boolean,
|
9418
|
+
length: [Number, String],
|
9419
|
+
opacity: [Number, String],
|
9420
|
+
thickness: [Number, String],
|
9421
|
+
vertical: Boolean,
|
9422
|
+
...makeComponentProps(),
|
9423
|
+
...makeThemeProps()
|
9424
|
+
}, 'VDivider');
|
9425
|
+
const VDivider = genericComponent()({
|
9426
|
+
name: 'VDivider',
|
9427
|
+
props: makeVDividerProps(),
|
9428
|
+
setup(props, _ref) {
|
9429
|
+
let {
|
9430
|
+
attrs,
|
9431
|
+
slots
|
9432
|
+
} = _ref;
|
9433
|
+
const {
|
9434
|
+
themeClasses
|
9435
|
+
} = provideTheme(props);
|
9436
|
+
const {
|
9437
|
+
textColorClasses,
|
9438
|
+
textColorStyles
|
9439
|
+
} = useTextColor(() => props.color);
|
9440
|
+
const dividerStyles = vue.computed(() => {
|
9441
|
+
const styles = {};
|
9442
|
+
if (props.length) {
|
9443
|
+
styles[props.vertical ? 'height' : 'width'] = convertToUnit(props.length);
|
9444
|
+
}
|
9445
|
+
if (props.thickness) {
|
9446
|
+
styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness);
|
9447
|
+
}
|
9448
|
+
return styles;
|
9449
|
+
});
|
9450
|
+
useRender(() => {
|
9451
|
+
const divider = vue.createElementVNode("hr", {
|
9452
|
+
"class": vue.normalizeClass([{
|
9453
|
+
'v-divider': true,
|
9454
|
+
'v-divider--inset': props.inset,
|
9455
|
+
'v-divider--vertical': props.vertical
|
9456
|
+
}, themeClasses.value, textColorClasses.value, props.class]),
|
9457
|
+
"style": vue.normalizeStyle([dividerStyles.value, textColorStyles.value, {
|
9458
|
+
'--v-border-opacity': props.opacity
|
9459
|
+
}, props.style]),
|
9460
|
+
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
9461
|
+
"role": `${attrs.role || 'separator'}`
|
9462
|
+
}, null);
|
9463
|
+
if (!slots.default) return divider;
|
9464
|
+
return vue.createElementVNode("div", {
|
9465
|
+
"class": vue.normalizeClass(['v-divider__wrapper', {
|
9466
|
+
'v-divider__wrapper--vertical': props.vertical,
|
9467
|
+
'v-divider__wrapper--inset': props.inset
|
9468
|
+
}])
|
9469
|
+
}, [divider, vue.createElementVNode("div", {
|
9470
|
+
"class": "v-divider__content"
|
9471
|
+
}, [slots.default()]), divider]);
|
9472
|
+
});
|
9473
|
+
return {};
|
9474
|
+
}
|
9475
|
+
});
|
9476
|
+
|
9601
9477
|
// Types
|
9602
9478
|
|
9603
9479
|
const makeVListChildrenProps = propsFactory({
|
@@ -9866,7 +9742,6 @@
|
|
9866
9742
|
activeClass: String,
|
9867
9743
|
bgColor: String,
|
9868
9744
|
disabled: Boolean,
|
9869
|
-
filterable: Boolean,
|
9870
9745
|
expandIcon: IconValue,
|
9871
9746
|
collapseIcon: IconValue,
|
9872
9747
|
lines: {
|
@@ -9950,9 +9825,7 @@
|
|
9950
9825
|
const activeColor = vue.toRef(() => props.activeColor);
|
9951
9826
|
const baseColor = vue.toRef(() => props.baseColor);
|
9952
9827
|
const color = vue.toRef(() => props.color);
|
9953
|
-
createList(
|
9954
|
-
filterable: props.filterable
|
9955
|
-
});
|
9828
|
+
createList();
|
9956
9829
|
provideDefaults({
|
9957
9830
|
VListGroup: {
|
9958
9831
|
activeColor,
|
@@ -12528,12 +12401,7 @@
|
|
12528
12401
|
}
|
12529
12402
|
function calculateOffset(index) {
|
12530
12403
|
index = clamp(index, 0, items.value.length - 1);
|
12531
|
-
|
12532
|
-
const fraction = index % 1;
|
12533
|
-
const next = whole + 1;
|
12534
|
-
const wholeOffset = offsets[whole] || 0;
|
12535
|
-
const nextOffset = offsets[next] || wholeOffset;
|
12536
|
-
return wholeOffset + (nextOffset - wholeOffset) * fraction;
|
12404
|
+
return offsets[index] || 0;
|
12537
12405
|
}
|
12538
12406
|
function calculateIndex(scrollTop) {
|
12539
12407
|
return binaryClosest(offsets, scrollTop);
|
@@ -12887,7 +12755,6 @@
|
|
12887
12755
|
},
|
12888
12756
|
openOnClear: Boolean,
|
12889
12757
|
itemColor: String,
|
12890
|
-
noAutoScroll: Boolean,
|
12891
12758
|
...makeItemsProps({
|
12892
12759
|
itemChildren: false
|
12893
12760
|
})
|
@@ -13102,7 +12969,7 @@
|
|
13102
12969
|
vue.watch(menu, () => {
|
13103
12970
|
if (!props.hideSelected && menu.value && model.value.length) {
|
13104
12971
|
const index = displayItems.value.findIndex(item => model.value.some(s => (props.valueComparator || deepEqual)(s.value, item.value)));
|
13105
|
-
IN_BROWSER &&
|
12972
|
+
IN_BROWSER && window.requestAnimationFrame(() => {
|
13106
12973
|
index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
|
13107
12974
|
});
|
13108
12975
|
}
|
@@ -13194,22 +13061,6 @@
|
|
13194
13061
|
key: item.value,
|
13195
13062
|
onClick: () => select(item, null)
|
13196
13063
|
});
|
13197
|
-
if (item.raw.type === 'divider') {
|
13198
|
-
return slots.divider?.({
|
13199
|
-
props: item.raw,
|
13200
|
-
index
|
13201
|
-
}) ?? vue.createVNode(VDivider, vue.mergeProps(item.props, {
|
13202
|
-
"key": `divider-${index}`
|
13203
|
-
}), null);
|
13204
|
-
}
|
13205
|
-
if (item.raw.type === 'subheader') {
|
13206
|
-
return slots.subheader?.({
|
13207
|
-
props: item.raw,
|
13208
|
-
index
|
13209
|
-
}) ?? vue.createVNode(VListSubheader, vue.mergeProps(item.props, {
|
13210
|
-
"key": `subheader-${index}`
|
13211
|
-
}), null);
|
13212
|
-
}
|
13213
13064
|
return slots.item?.({
|
13214
13065
|
item,
|
13215
13066
|
index,
|
@@ -13370,9 +13221,6 @@
|
|
13370
13221
|
let match = -1;
|
13371
13222
|
if ((query || customFiltersLength > 0) && !options?.noFilter) {
|
13372
13223
|
if (typeof item === 'object') {
|
13373
|
-
if (['divider', 'subheader'].includes(item.raw?.type)) {
|
13374
|
-
continue;
|
13375
|
-
}
|
13376
13224
|
const filterKeys = keys || Object.keys(transformed);
|
13377
13225
|
for (const key of filterKeys) {
|
13378
13226
|
const value = getPropertyFromItem(transformed, key);
|
@@ -13575,7 +13423,7 @@
|
|
13575
13423
|
menu.value = !menu.value;
|
13576
13424
|
}
|
13577
13425
|
function onListKeydown(e) {
|
13578
|
-
if (
|
13426
|
+
if (e.key !== ' ' && checkPrintable(e)) {
|
13579
13427
|
vTextFieldRef.value?.focus();
|
13580
13428
|
}
|
13581
13429
|
}
|
@@ -13780,7 +13628,6 @@
|
|
13780
13628
|
}, props.menuProps), {
|
13781
13629
|
default: () => [hasList && vue.createVNode(VList, vue.mergeProps({
|
13782
13630
|
"ref": listRef,
|
13783
|
-
"filterable": true,
|
13784
13631
|
"selected": selectedValues.value,
|
13785
13632
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
13786
13633
|
"onMousedown": e => e.preventDefault(),
|
@@ -13812,22 +13659,6 @@
|
|
13812
13659
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
13813
13660
|
onClick: () => select(item, null)
|
13814
13661
|
});
|
13815
|
-
if (item.raw.type === 'divider') {
|
13816
|
-
return slots.divider?.({
|
13817
|
-
props: item.raw,
|
13818
|
-
index
|
13819
|
-
}) ?? vue.createVNode(VDivider, vue.mergeProps(item.props, {
|
13820
|
-
"key": `divider-${index}`
|
13821
|
-
}), null);
|
13822
|
-
}
|
13823
|
-
if (item.raw.type === 'subheader') {
|
13824
|
-
return slots.subheader?.({
|
13825
|
-
props: item.raw,
|
13826
|
-
index
|
13827
|
-
}) ?? vue.createVNode(VListSubheader, vue.mergeProps(item.props, {
|
13828
|
-
"key": `subheader-${index}`
|
13829
|
-
}), null);
|
13830
|
-
}
|
13831
13662
|
return slots.item?.({
|
13832
13663
|
item,
|
13833
13664
|
index,
|
@@ -17432,13 +17263,13 @@
|
|
17432
17263
|
return null;
|
17433
17264
|
}
|
17434
17265
|
const sundayJanuarySecond2000 = new Date(2000, 0, 2);
|
17435
|
-
function getWeekdays(locale, firstDayOfWeek
|
17266
|
+
function getWeekdays(locale, firstDayOfWeek) {
|
17436
17267
|
const daysFromSunday = firstDayOfWeek ?? weekInfo(locale)?.firstDay ?? 0;
|
17437
17268
|
return createRange(7).map(i => {
|
17438
17269
|
const weekday = new Date(sundayJanuarySecond2000);
|
17439
17270
|
weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
|
17440
17271
|
return new Intl.DateTimeFormat(locale, {
|
17441
|
-
weekday:
|
17272
|
+
weekday: 'narrow'
|
17442
17273
|
}).format(weekday);
|
17443
17274
|
});
|
17444
17275
|
}
|
@@ -17902,9 +17733,9 @@
|
|
17902
17733
|
getDiff(date, comparing, unit) {
|
17903
17734
|
return getDiff(date, comparing, unit);
|
17904
17735
|
}
|
17905
|
-
getWeekdays(firstDayOfWeek
|
17736
|
+
getWeekdays(firstDayOfWeek) {
|
17906
17737
|
const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
|
17907
|
-
return getWeekdays(this.locale, firstDay
|
17738
|
+
return getWeekdays(this.locale, firstDay);
|
17908
17739
|
}
|
17909
17740
|
getYear(date) {
|
17910
17741
|
return getYear(date);
|
@@ -18260,7 +18091,6 @@
|
|
18260
18091
|
_search.value = val ?? '';
|
18261
18092
|
if (!props.multiple && !hasSelectionSlot.value) {
|
18262
18093
|
model.value = [transformItem$3(props, val)];
|
18263
|
-
vue.nextTick(() => vVirtualScrollRef.value?.scrollToIndex(0));
|
18264
18094
|
}
|
18265
18095
|
if (val && props.multiple && props.delimiters?.length) {
|
18266
18096
|
const values = val.split(new RegExp(`(?:${props.delimiters.join('|')})+`));
|
@@ -18341,7 +18171,7 @@
|
|
18341
18171
|
menu.value = !menu.value;
|
18342
18172
|
}
|
18343
18173
|
function onListKeydown(e) {
|
18344
|
-
if (
|
18174
|
+
if (e.key !== ' ' && checkPrintable(e)) {
|
18345
18175
|
vTextFieldRef.value?.focus();
|
18346
18176
|
}
|
18347
18177
|
}
|
@@ -18546,7 +18376,6 @@
|
|
18546
18376
|
}, props.menuProps), {
|
18547
18377
|
default: () => [hasList && vue.createVNode(VList, vue.mergeProps({
|
18548
18378
|
"ref": listRef,
|
18549
|
-
"filterable": true,
|
18550
18379
|
"selected": selectedValues.value,
|
18551
18380
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
18552
18381
|
"onMousedown": e => e.preventDefault(),
|
@@ -18578,22 +18407,6 @@
|
|
18578
18407
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
18579
18408
|
onClick: () => select(item, null)
|
18580
18409
|
});
|
18581
|
-
if (item.raw.type === 'divider') {
|
18582
|
-
return slots.divider?.({
|
18583
|
-
props: item.raw,
|
18584
|
-
index
|
18585
|
-
}) ?? vue.createVNode(VDivider, vue.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
|
-
}) ?? vue.createVNode(VListSubheader, vue.mergeProps(item.props, {
|
18594
|
-
"key": `subheader-${index}`
|
18595
|
-
}), null);
|
18596
|
-
}
|
18597
18410
|
return slots.item?.({
|
18598
18411
|
item,
|
18599
18412
|
index,
|
@@ -20473,7 +20286,6 @@
|
|
20473
20286
|
color: String,
|
20474
20287
|
disableSort: Boolean,
|
20475
20288
|
fixedHeader: Boolean,
|
20476
|
-
lastFixed: Boolean,
|
20477
20289
|
multiSort: Boolean,
|
20478
20290
|
sortAscIcon: {
|
20479
20291
|
type: IconValue,
|
@@ -20520,11 +20332,10 @@
|
|
20520
20332
|
loaderClasses
|
20521
20333
|
} = useLoader(props);
|
20522
20334
|
function getFixedStyles(column, y) {
|
20523
|
-
if (!(props.sticky || props.fixedHeader) && !
|
20335
|
+
if (!(props.sticky || props.fixedHeader) && !column.fixed) return undefined;
|
20524
20336
|
return {
|
20525
20337
|
position: 'sticky',
|
20526
|
-
left: column.fixed
|
20527
|
-
right: column.lastFixed ? convertToUnit(column.fixedOffset ?? 0) : undefined,
|
20338
|
+
left: column.fixed ? convertToUnit(column.fixedOffset) : undefined,
|
20528
20339
|
top: props.sticky || props.fixedHeader ? `calc(var(--v-table-header-height) * ${y})` : undefined
|
20529
20340
|
};
|
20530
20341
|
}
|
@@ -21033,18 +20844,11 @@
|
|
21033
20844
|
}
|
21034
20845
|
});
|
21035
20846
|
|
21036
|
-
// Types
|
21037
|
-
|
21038
20847
|
const makeVTableProps = propsFactory({
|
21039
20848
|
fixedHeader: Boolean,
|
21040
20849
|
fixedFooter: Boolean,
|
21041
20850
|
height: [Number, String],
|
21042
20851
|
hover: Boolean,
|
21043
|
-
striped: {
|
21044
|
-
type: String,
|
21045
|
-
default: null,
|
21046
|
-
validator: v => ['even', 'odd'].includes(v)
|
21047
|
-
},
|
21048
20852
|
...makeComponentProps(),
|
21049
20853
|
...makeDensityProps(),
|
21050
20854
|
...makeTagProps(),
|
@@ -21071,9 +20875,7 @@
|
|
21071
20875
|
'v-table--fixed-footer': props.fixedFooter,
|
21072
20876
|
'v-table--has-top': !!slots.top,
|
21073
20877
|
'v-table--has-bottom': !!slots.bottom,
|
21074
|
-
'v-table--hover': props.hover
|
21075
|
-
'v-table--striped-even': props.striped === 'even',
|
21076
|
-
'v-table--striped-odd': props.striped === 'odd'
|
20878
|
+
'v-table--hover': props.hover
|
21077
20879
|
}, themeClasses.value, densityClasses.value, props.class]),
|
21078
20880
|
"style": vue.normalizeStyle(props.style)
|
21079
20881
|
}, {
|
@@ -22248,8 +22050,7 @@
|
|
22248
22050
|
firstDayOfWeek: {
|
22249
22051
|
type: [Number, String],
|
22250
22052
|
default: undefined
|
22251
|
-
}
|
22252
|
-
weekdayFormat: String
|
22053
|
+
}
|
22253
22054
|
}, 'calendar');
|
22254
22055
|
function useCalendar(props) {
|
22255
22056
|
const adapter = useDate();
|
@@ -22490,7 +22291,7 @@
|
|
22490
22291
|
"ref": daysRef,
|
22491
22292
|
"key": daysInMonth.value[0].date?.toString(),
|
22492
22293
|
"class": "v-date-picker-month__days"
|
22493
|
-
}, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek
|
22294
|
+
}, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => vue.createElementVNode("div", {
|
22494
22295
|
"class": vue.normalizeClass(['v-date-picker-month__day', 'v-date-picker-month__weekday'])
|
22495
22296
|
}, [weekDay])), daysInMonth.value.map((item, i) => {
|
22496
22297
|
const slotProps = {
|
@@ -25080,10 +24881,6 @@
|
|
25080
24881
|
type: Number,
|
25081
24882
|
default: 0
|
25082
24883
|
},
|
25083
|
-
minFractionDigits: {
|
25084
|
-
type: Number,
|
25085
|
-
default: null
|
25086
|
-
},
|
25087
24884
|
...omit(makeVTextFieldProps(), ['modelValue', 'validationValue'])
|
25088
24885
|
}, 'VNumberInput');
|
25089
24886
|
const VNumberInput = genericComponent()({
|
@@ -25114,19 +24911,9 @@
|
|
25114
24911
|
} = useFocus(props);
|
25115
24912
|
function correctPrecision(val) {
|
25116
24913
|
let precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.precision;
|
25117
|
-
|
25118
|
-
|
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;
|
24914
|
+
const fixed = precision == null ? String(val) : val.toFixed(precision);
|
24915
|
+
return isFocused.value ? Number(fixed).toString() // trim zeros
|
24916
|
+
: fixed;
|
25130
24917
|
}
|
25131
24918
|
const model = useProxiedModel(props, 'modelValue', null, val => val ?? null, val => val == null ? val ?? null : clamp(Number(val), props.min, props.max));
|
25132
24919
|
const _inputText = vue.shallowRef(null);
|
@@ -25181,7 +24968,6 @@
|
|
25181
24968
|
}
|
25182
24969
|
};
|
25183
24970
|
vue.watch(() => props.precision, () => formatInputValue());
|
25184
|
-
vue.watch(() => props.minFractionDigits, () => formatInputValue());
|
25185
24971
|
vue.onMounted(() => {
|
25186
24972
|
clampModel();
|
25187
24973
|
});
|
@@ -25296,7 +25082,7 @@
|
|
25296
25082
|
inputText.value = null;
|
25297
25083
|
return;
|
25298
25084
|
}
|
25299
|
-
inputText.value =
|
25085
|
+
inputText.value = props.precision == null ? String(model.value) : model.value.toFixed(props.precision);
|
25300
25086
|
}
|
25301
25087
|
function trimDecimalZeros() {
|
25302
25088
|
if (controlsDisabled.value) return;
|
@@ -25556,10 +25342,9 @@
|
|
25556
25342
|
e.preventDefault();
|
25557
25343
|
e.stopPropagation();
|
25558
25344
|
const clipboardText = e?.clipboardData?.getData('Text').slice(0, length.value) ?? '';
|
25559
|
-
const finalIndex = clipboardText.length - 1 === -1 ? index : clipboardText.length - 1;
|
25560
25345
|
if (isValidNumber(clipboardText)) return;
|
25561
25346
|
model.value = clipboardText.split('');
|
25562
|
-
inputRef.value?.[
|
25347
|
+
inputRef.value?.[index].blur();
|
25563
25348
|
}
|
25564
25349
|
function reset() {
|
25565
25350
|
model.value = [];
|
@@ -30262,6 +30047,11 @@
|
|
30262
30047
|
hideOverlay: Boolean,
|
30263
30048
|
icon: [String, Function, Object],
|
30264
30049
|
iconColor: String,
|
30050
|
+
iconSize: [Number, String],
|
30051
|
+
iconSizes: {
|
30052
|
+
type: Array,
|
30053
|
+
default: () => [['x-small', 10], ['small', 16], ['default', 24], ['large', 28], ['x-large', 32]]
|
30054
|
+
},
|
30265
30055
|
loading: Boolean,
|
30266
30056
|
opacity: [Number, String],
|
30267
30057
|
readonly: Boolean,
|
@@ -30281,7 +30071,6 @@
|
|
30281
30071
|
...makeBorderProps(),
|
30282
30072
|
...makeComponentProps(),
|
30283
30073
|
...makeElevationProps(),
|
30284
|
-
...makeIconSizeProps(),
|
30285
30074
|
...makeRoundedProps(),
|
30286
30075
|
...makeTagProps({
|
30287
30076
|
tag: 'button'
|
@@ -30336,6 +30125,7 @@
|
|
30336
30125
|
})()
|
30337
30126
|
}));
|
30338
30127
|
const btnSizeMap = new Map(props.sizes);
|
30128
|
+
const iconSizeMap = new Map(props.iconSizes);
|
30339
30129
|
function onClick() {
|
30340
30130
|
if (props.disabled || props.readonly || isActive.value === undefined || props.tag === 'a' && attrs.href) return;
|
30341
30131
|
isActive.value = !isActive.value;
|
@@ -30347,12 +30137,12 @@
|
|
30347
30137
|
const btnSize = hasNamedSize ? btnSizeMap.get(_btnSize) : _btnSize;
|
30348
30138
|
const btnHeight = props.height ?? btnSize;
|
30349
30139
|
const btnWidth = props.width ?? btnSize;
|
30350
|
-
const
|
30351
|
-
|
30352
|
-
|
30140
|
+
const _iconSize = props.iconSize;
|
30141
|
+
const hasNamedIconSize = iconSizeMap.has(_iconSize);
|
30142
|
+
const iconSize = !_iconSize ? hasNamedSize ? iconSizeMap.get(_btnSize) : iconSizeMap.get('default') : hasNamedIconSize ? iconSizeMap.get(_iconSize) : _iconSize;
|
30353
30143
|
const iconProps = {
|
30354
30144
|
icon,
|
30355
|
-
size: iconSize
|
30145
|
+
size: iconSize,
|
30356
30146
|
iconColor: props.iconColor,
|
30357
30147
|
opacity: props.opacity
|
30358
30148
|
};
|
@@ -30395,7 +30185,7 @@
|
|
30395
30185
|
"color": typeof props.loading === 'boolean' ? undefined : props.loading,
|
30396
30186
|
"indeterminate": "disable-shrink",
|
30397
30187
|
"width": "2",
|
30398
|
-
"size": iconSize
|
30188
|
+
"size": iconSize
|
30399
30189
|
}, null)])]
|
30400
30190
|
});
|
30401
30191
|
});
|
@@ -32305,7 +32095,7 @@
|
|
32305
32095
|
};
|
32306
32096
|
});
|
32307
32097
|
}
|
32308
|
-
const version$1 = "3.8.8-
|
32098
|
+
const version$1 = "3.8.8-master.2025-06-06";
|
32309
32099
|
createVuetify$1.version = version$1;
|
32310
32100
|
|
32311
32101
|
// Vue's inject() can only be used in setup
|
@@ -32603,7 +32393,7 @@
|
|
32603
32393
|
|
32604
32394
|
/* eslint-disable local-rules/sort-imports */
|
32605
32395
|
|
32606
|
-
const version = "3.8.8-
|
32396
|
+
const version = "3.8.8-master.2025-06-06";
|
32607
32397
|
|
32608
32398
|
/* eslint-disable local-rules/sort-imports */
|
32609
32399
|
|