@vuetify/nightly 3.8.1-master.2025-04-15 → 3.8.1-next.2025-04-15
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 +33 -32
- package/dist/json/attributes.json +3374 -3374
- package/dist/json/importMap-labs.json +20 -20
- package/dist/json/importMap.json +218 -218
- package/dist/json/web-types.json +5962 -5922
- package/dist/vuetify-labs.cjs +341 -179
- package/dist/vuetify-labs.css +26033 -27763
- package/dist/vuetify-labs.d.ts +253 -656
- package/dist/vuetify-labs.esm.js +342 -180
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +341 -179
- package/dist/vuetify-labs.min.css +3 -4
- package/dist/vuetify.cjs +323 -155
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +22790 -24516
- package/dist/vuetify.d.ts +278 -681
- package/dist/vuetify.esm.js +324 -156
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +323 -155
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +3 -4
- package/dist/vuetify.min.js +1152 -1161
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.css +207 -215
- package/lib/components/VApp/VApp.css +16 -15
- package/lib/components/VAppBar/VAppBar.css +14 -12
- package/lib/components/VAutocomplete/VAutocomplete.css +85 -84
- package/lib/components/VAutocomplete/VAutocomplete.d.ts +18 -9
- package/lib/components/VAutocomplete/VAutocomplete.js +6 -3
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VAvatar/VAvatar.css +108 -106
- package/lib/components/VBadge/VBadge.css +77 -77
- package/lib/components/VBanner/VBanner.css +161 -166
- package/lib/components/VBottomNavigation/VBottomNavigation.css +65 -64
- package/lib/components/VBottomSheet/VBottomSheet.css +34 -31
- package/lib/components/VBreadcrumbs/VBreadcrumbs.css +54 -57
- package/lib/components/VBtn/VBtn.css +385 -408
- package/lib/components/VBtn/VBtn.sass +4 -4
- package/lib/components/VBtnGroup/VBtnGroup.css +63 -64
- package/lib/components/VBtnToggle/VBtnToggle.css +16 -14
- package/lib/components/VCard/VCard.css +294 -302
- package/lib/components/VCarousel/VCarousel.css +63 -65
- package/lib/components/VCarousel/VCarousel.sass +1 -1
- package/lib/components/VCheckbox/VCheckbox.css +7 -5
- package/lib/components/VChip/VChip.css +378 -411
- package/lib/components/VChipGroup/VChipGroup.css +19 -18
- package/lib/components/VCode/VCode.css +10 -11
- package/lib/components/VCode/VCode.sass +0 -3
- package/lib/components/VColorPicker/VColorPicker.css +23 -23
- package/lib/components/VColorPicker/VColorPickerCanvas.css +24 -22
- package/lib/components/VColorPicker/VColorPickerEdit.css +29 -28
- package/lib/components/VColorPicker/VColorPickerPreview.css +69 -67
- package/lib/components/VColorPicker/VColorPickerPreview.sass +4 -2
- package/lib/components/VColorPicker/VColorPickerSwatches.css +34 -34
- package/lib/components/VCombobox/VCombobox.css +85 -84
- package/lib/components/VCombobox/VCombobox.d.ts +18 -9
- package/lib/components/VCombobox/VCombobox.js +6 -3
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VCounter/VCounter.css +7 -5
- package/lib/components/VDataTable/VDataTable.css +189 -186
- package/lib/components/VDataTable/VDataTable.sass +21 -11
- package/lib/components/VDataTable/VDataTableFooter.css +33 -31
- package/lib/components/VDatePicker/VDatePicker.css +8 -6
- package/lib/components/VDatePicker/VDatePicker.d.ts +7 -7
- package/lib/components/VDatePicker/VDatePickerControls.css +55 -57
- package/lib/components/VDatePicker/VDatePickerHeader.css +56 -60
- package/lib/components/VDatePicker/VDatePickerMonth.css +51 -55
- package/lib/components/VDatePicker/VDatePickerMonth.d.ts +7 -7
- package/lib/components/VDatePicker/VDatePickerMonths.css +20 -19
- package/lib/components/VDatePicker/VDatePickerYears.css +16 -15
- package/lib/components/VDialog/VDialog.css +98 -98
- package/lib/components/VDivider/VDivider.css +52 -52
- package/lib/components/VEmptyState/VEmptyState.css +62 -67
- package/lib/components/VExpansionPanel/VExpansionPanel.css +203 -209
- package/lib/components/VExpansionPanel/VExpansionPanel.sass +27 -25
- package/lib/components/VFab/VFab.css +78 -73
- package/lib/components/VFab/VFab.sass +5 -4
- package/lib/components/VField/VField.css +548 -589
- package/lib/components/VFileInput/VFileInput.css +30 -28
- package/lib/components/VFooter/VFooter.css +38 -36
- package/lib/components/VForm/VForm.d.ts +111 -531
- package/lib/components/VForm/VForm.js +11 -1
- package/lib/components/VForm/VForm.js.map +1 -1
- package/lib/components/VGrid/VGrid.css +565 -592
- package/lib/components/VIcon/VIcon.css +52 -53
- package/lib/components/VImg/VImg.css +50 -51
- package/lib/components/VInfiniteScroll/VInfiniteScroll.css +36 -37
- package/lib/components/VInput/VInput.css +136 -147
- package/lib/components/VItemGroup/VItemGroup.css +7 -5
- package/lib/components/VKbd/VKbd.css +13 -11
- package/lib/components/VLabel/VLabel.css +16 -15
- package/lib/components/VLayout/VLayout.css +10 -8
- package/lib/components/VLayout/VLayoutItem.css +8 -7
- package/lib/components/VList/VList.css +104 -108
- package/lib/components/VList/VList.sass +1 -1
- package/lib/components/VList/VListItem.css +440 -452
- package/lib/components/VList/VListItem.sass +2 -1
- package/lib/components/VLocaleProvider/VLocaleProvider.css +4 -2
- package/lib/components/VMain/VMain.css +32 -30
- package/lib/components/VMenu/VMenu.css +21 -19
- package/lib/components/VMessages/VMessages.css +17 -15
- package/lib/components/VNavigationDrawer/VNavigationDrawer.css +102 -104
- package/lib/components/VNumberInput/VNumberInput.css +48 -46
- package/lib/components/VOtpInput/VOtpInput.css +56 -58
- package/lib/components/VOverlay/VOverlay.css +61 -64
- package/lib/components/VOverlay/VOverlay.sass +14 -13
- package/lib/components/VPagination/VPagination.css +10 -8
- package/lib/components/VParallax/VParallax.css +8 -6
- package/lib/components/VProgressCircular/VProgressCircular.css +95 -101
- package/lib/components/VProgressLinear/VProgressLinear.css +209 -222
- package/lib/components/VRadioGroup/VRadioGroup.css +14 -12
- package/lib/components/VRating/VRating.css +52 -53
- package/lib/components/VResponsive/VResponsive.css +25 -26
- package/lib/components/VSelect/VSelect.css +53 -51
- package/lib/components/VSelect/VSelect.d.ts +18 -9
- package/lib/components/VSelect/VSelect.js +6 -3
- package/lib/components/VSelect/VSelect.js.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.css +98 -100
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.css +10 -8
- package/lib/components/VSheet/VSheet.css +38 -36
- package/lib/components/VSkeletonLoader/VSkeletonLoader.css +225 -224
- package/lib/components/VSlideGroup/VSlideGroup.css +53 -55
- package/lib/components/VSlider/VSlider.css +53 -57
- package/lib/components/VSlider/VSliderThumb.css +142 -153
- package/lib/components/VSlider/VSliderTrack.css +155 -174
- package/lib/components/VSnackbar/VSnackbar.css +140 -140
- package/lib/components/VSpeedDial/VSpeedDial.css +43 -41
- package/lib/components/VStepper/VStepper.css +55 -56
- package/lib/components/VStepper/VStepperItem.css +112 -115
- package/lib/components/VSwitch/VSwitch.css +129 -139
- package/lib/components/VSystemBar/VSystemBar.css +45 -43
- package/lib/components/VTable/VTable.css +140 -141
- package/lib/components/VTable/VTable.sass +4 -2
- package/lib/components/VTabs/VTab.css +30 -29
- package/lib/components/VTabs/VTabs.css +59 -65
- package/lib/components/VTextField/VTextField.css +77 -85
- package/lib/components/VTextarea/VTextarea.css +48 -40
- package/lib/components/VTextarea/VTextarea.sass +4 -2
- package/lib/components/VThemeProvider/VThemeProvider.css +5 -3
- package/lib/components/VTimeline/VTimeline.css +388 -427
- package/lib/components/VToolbar/VToolbar.css +137 -144
- package/lib/components/VTooltip/VTooltip.css +27 -23
- package/lib/components/VTooltip/VTooltip.sass +8 -6
- package/lib/components/VVirtualScroll/VVirtualScroll.css +11 -9
- package/lib/components/VWindow/VWindow.css +73 -70
- package/lib/composables/calendar.d.ts +2 -3
- package/lib/composables/calendar.js +7 -5
- package/lib/composables/calendar.js.map +1 -1
- package/lib/composables/date/DateAdapter.d.ts +0 -1
- package/lib/composables/date/DateAdapter.js.map +1 -1
- package/lib/composables/date/adapters/vuetify.d.ts +0 -1
- package/lib/composables/date/adapters/vuetify.js +160 -101
- package/lib/composables/date/adapters/vuetify.js.map +1 -1
- package/lib/composables/date/date.d.ts +1 -1
- package/lib/composables/date/date.js +20 -0
- package/lib/composables/date/date.js.map +1 -1
- package/lib/composables/filter.js +1 -2
- package/lib/composables/filter.js.map +1 -1
- package/lib/composables/theme.d.ts +6 -1
- package/lib/composables/theme.js +98 -30
- package/lib/composables/theme.js.map +1 -1
- package/lib/composables/validation.js +0 -5
- package/lib/composables/validation.js.map +1 -1
- package/lib/composables/virtual.js +6 -1
- package/lib/composables/virtual.js.map +1 -1
- package/lib/directives/ripple/VRipple.css +38 -36
- package/lib/entry-bundler.d.ts +0 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/entry-bundler.js.map +1 -1
- package/lib/framework.d.ts +80 -78
- package/lib/framework.js +1 -1
- package/lib/framework.js.map +1 -1
- package/lib/labs/VCalendar/VCalendar.css +219 -225
- package/lib/labs/VCalendar/VCalendar.d.ts +7 -7
- package/lib/labs/VCalendar/VCalendarDay.css +33 -32
- package/lib/labs/VCalendar/VCalendarHeader.css +13 -13
- package/lib/labs/VCalendar/VCalendarInterval.css +43 -42
- package/lib/labs/VCalendar/VCalendarInterval.js +19 -25
- package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
- package/lib/labs/VCalendar/VCalendarIntervalEvent.css +7 -5
- package/lib/labs/VCalendar/VCalendarMonthDay.css +61 -58
- package/lib/labs/VCalendar/VCalendarMonthDay.sass +3 -2
- package/lib/labs/VDateInput/VDateInput.d.ts +7 -7
- package/lib/labs/VFileUpload/VFileUpload.css +74 -77
- package/lib/labs/VIconBtn/VIconBtn.css +162 -164
- package/lib/labs/VPicker/VPicker.css +58 -63
- package/lib/labs/VTimePicker/VTimePicker.css +9 -7
- package/lib/labs/VTimePicker/VTimePickerClock.css +126 -129
- package/lib/labs/VTimePicker/VTimePickerControls.css +102 -103
- package/lib/labs/VTreeview/VTreeviewItem.css +30 -28
- package/lib/labs/VTreeview/VTreeviewItem.sass +3 -2
- package/lib/labs/entry-bundler.d.ts +0 -1
- package/lib/styles/elements/_global.sass +1 -1
- package/lib/styles/generic/_colors.scss +3 -3
- package/lib/styles/generic/_layers.scss +13 -1
- package/lib/styles/generic/_reset.scss +0 -1
- package/lib/styles/generic/_transitions.scss +32 -32
- package/lib/styles/main.css +14668 -16143
- package/lib/styles/settings/_utilities.scss +0 -5
- package/lib/styles/settings/_variables.scss +1 -2
- package/lib/styles/tools/_border.sass +4 -4
- package/lib/styles/tools/_display.sass +0 -10
- package/lib/styles/tools/_elevation.sass +2 -2
- package/lib/styles/tools/_index.sass +0 -2
- package/lib/styles/tools/_layer.scss +4 -2
- package/lib/styles/tools/_position.sass +2 -2
- package/lib/styles/tools/_rounded.sass +2 -2
- package/lib/styles/tools/_utilities.sass +1 -5
- package/lib/styles/utilities/_elevation.scss +1 -1
- package/lib/util/globals.d.ts +1 -0
- package/lib/util/globals.js +1 -0
- package/lib/util/globals.js.map +1 -1
- package/package.json +45 -46
- package/lib/styles/tools/_bootable.sass +0 -3
- package/lib/styles/tools/_radius.sass +0 -10
package/dist/vuetify.esm.js
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.8.1-
|
2
|
+
* Vuetify v3.8.1-next.2025-04-15
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
6
6
|
|
7
|
-
import { shallowRef, reactive, computed, watchEffect, toRefs, capitalize, unref, Fragment, isVNode, Comment, warn, getCurrentInstance as getCurrentInstance$1, ref, provide, inject as inject$1, defineComponent as defineComponent$1, h, camelize, createVNode, mergeProps, onBeforeUnmount, watch, readonly, onMounted, useId, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, TransitionGroup, Transition, isRef, toRef, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, onUpdated, Text, resolveDynamicComponent, toDisplayString, markRaw, Teleport, cloneVNode, createTextVNode, onUnmounted, onBeforeUpdate, withModifiers, vModelText, resolveComponent, render } from 'vue';
|
7
|
+
import { shallowRef, reactive, computed, watchEffect, toRefs, capitalize, unref, Fragment, isVNode, Comment, warn, getCurrentInstance as getCurrentInstance$1, ref, provide, inject as inject$1, defineComponent as defineComponent$1, h, camelize, createVNode, mergeProps, onBeforeUnmount, watch, readonly, onMounted, useId, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, getCurrentScope, TransitionGroup, Transition, isRef, toRef, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, onUpdated, Text, resolveDynamicComponent, toDisplayString, markRaw, Teleport, cloneVNode, createTextVNode, onUnmounted, onBeforeUpdate, withModifiers, vModelText, resolveComponent, render } from 'vue';
|
8
8
|
|
9
9
|
const IN_BROWSER = typeof window !== 'undefined';
|
10
10
|
const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
|
11
11
|
const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0);
|
12
12
|
const SUPPORTS_EYE_DROPPER = IN_BROWSER && 'EyeDropper' in window;
|
13
|
+
const SUPPORTS_MATCH_MEDIA = IN_BROWSER && 'matchMedia' in window && typeof window.matchMedia === 'function';
|
13
14
|
|
14
15
|
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
15
16
|
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
@@ -2753,7 +2754,8 @@ const makeThemeProps = propsFactory({
|
|
2753
2754
|
}, 'theme');
|
2754
2755
|
function genDefaults$1() {
|
2755
2756
|
return {
|
2756
|
-
defaultTheme: '
|
2757
|
+
defaultTheme: 'system',
|
2758
|
+
prefix: 'v-',
|
2757
2759
|
variations: {
|
2758
2760
|
colors: [],
|
2759
2761
|
lighten: 0,
|
@@ -2804,8 +2806,8 @@ function genDefaults$1() {
|
|
2804
2806
|
surface: '#212121',
|
2805
2807
|
'surface-bright': '#ccbfd6',
|
2806
2808
|
'surface-light': '#424242',
|
2807
|
-
'surface-variant': '#
|
2808
|
-
'on-surface-variant': '#
|
2809
|
+
'surface-variant': '#a3a3a3',
|
2810
|
+
'on-surface-variant': '#424242',
|
2809
2811
|
primary: '#2196F3',
|
2810
2812
|
'primary-darken-1': '#277CC1',
|
2811
2813
|
secondary: '#54B6B2',
|
@@ -2835,7 +2837,10 @@ function genDefaults$1() {
|
|
2835
2837
|
}
|
2836
2838
|
}
|
2837
2839
|
},
|
2838
|
-
stylesheetId: 'vuetify-theme-stylesheet'
|
2840
|
+
stylesheetId: 'vuetify-theme-stylesheet',
|
2841
|
+
scoped: false,
|
2842
|
+
unimportant: true,
|
2843
|
+
utilities: true
|
2839
2844
|
};
|
2840
2845
|
}
|
2841
2846
|
function parseThemeOptions() {
|
@@ -2858,21 +2863,21 @@ function parseThemeOptions() {
|
|
2858
2863
|
function createCssClass(lines, selector, content, scope) {
|
2859
2864
|
lines.push(`${getScopedSelector(selector, scope)} {\n`, ...content.map(line => ` ${line};\n`), '}\n');
|
2860
2865
|
}
|
2861
|
-
function genCssVariables(theme) {
|
2866
|
+
function genCssVariables(theme, prefix) {
|
2862
2867
|
const lightOverlay = theme.dark ? 2 : 1;
|
2863
2868
|
const darkOverlay = theme.dark ? 1 : 2;
|
2864
2869
|
const variables = [];
|
2865
2870
|
for (const [key, value] of Object.entries(theme.colors)) {
|
2866
2871
|
const rgb = parseColor(value);
|
2867
|
-
variables.push(
|
2872
|
+
variables.push(`--${prefix}theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
|
2868
2873
|
if (!key.startsWith('on-')) {
|
2869
|
-
variables.push(
|
2874
|
+
variables.push(`--${prefix}theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
|
2870
2875
|
}
|
2871
2876
|
}
|
2872
2877
|
for (const [key, value] of Object.entries(theme.variables)) {
|
2873
2878
|
const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;
|
2874
2879
|
const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
|
2875
|
-
variables.push(
|
2880
|
+
variables.push(`--${prefix}${key}: ${rgb ?? value}`);
|
2876
2881
|
}
|
2877
2882
|
return variables;
|
2878
2883
|
}
|
@@ -2916,7 +2921,8 @@ function getScopedSelector(selector, scope) {
|
|
2916
2921
|
const scopeSelector = `:where(${scope})`;
|
2917
2922
|
return selector === ':root' ? scopeSelector : `${scopeSelector} ${selector}`;
|
2918
2923
|
}
|
2919
|
-
function upsertStyles(
|
2924
|
+
function upsertStyles(id, cspNonce, styles) {
|
2925
|
+
const styleEl = getOrCreateStyleElement(id, cspNonce);
|
2920
2926
|
if (!styleEl) return;
|
2921
2927
|
styleEl.innerHTML = styles;
|
2922
2928
|
}
|
@@ -2936,8 +2942,17 @@ function getOrCreateStyleElement(id, cspNonce) {
|
|
2936
2942
|
// Composables
|
2937
2943
|
function createTheme(options) {
|
2938
2944
|
const parsedOptions = parseThemeOptions(options);
|
2939
|
-
const
|
2945
|
+
const _name = shallowRef(parsedOptions.defaultTheme);
|
2940
2946
|
const themes = ref(parsedOptions.themes);
|
2947
|
+
const systemName = shallowRef('light');
|
2948
|
+
const name = computed({
|
2949
|
+
get() {
|
2950
|
+
return _name.value === 'system' ? systemName.value : _name.value;
|
2951
|
+
},
|
2952
|
+
set(val) {
|
2953
|
+
_name.value = val;
|
2954
|
+
}
|
2955
|
+
});
|
2941
2956
|
const computedThemes = computed(() => {
|
2942
2957
|
const acc = {};
|
2943
2958
|
for (const [name, original] of Object.entries(themes.value)) {
|
@@ -2958,28 +2973,49 @@ function createTheme(options) {
|
|
2958
2973
|
const current = computed(() => computedThemes.value[name.value]);
|
2959
2974
|
const styles = computed(() => {
|
2960
2975
|
const lines = [];
|
2976
|
+
const important = parsedOptions.unimportant ? '' : ' !important';
|
2977
|
+
const scoped = parsedOptions.scoped ? parsedOptions.prefix : '';
|
2961
2978
|
if (current.value?.dark) {
|
2962
2979
|
createCssClass(lines, ':root', ['color-scheme: dark'], parsedOptions.scope);
|
2963
2980
|
}
|
2964
|
-
createCssClass(lines, ':root', genCssVariables(current.value), parsedOptions.scope);
|
2981
|
+
createCssClass(lines, ':root', genCssVariables(current.value, parsedOptions.prefix), parsedOptions.scope);
|
2965
2982
|
for (const [themeName, theme] of Object.entries(computedThemes.value)) {
|
2966
|
-
createCssClass(lines,
|
2967
|
-
}
|
2968
|
-
|
2969
|
-
|
2970
|
-
|
2971
|
-
|
2972
|
-
|
2973
|
-
|
2974
|
-
|
2975
|
-
|
2976
|
-
|
2977
|
-
|
2983
|
+
createCssClass(lines, `.${parsedOptions.prefix}theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme, parsedOptions.prefix)], parsedOptions.scope);
|
2984
|
+
}
|
2985
|
+
if (parsedOptions.utilities) {
|
2986
|
+
const bgLines = [];
|
2987
|
+
const fgLines = [];
|
2988
|
+
const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));
|
2989
|
+
for (const key of colors) {
|
2990
|
+
if (key.startsWith('on-')) {
|
2991
|
+
createCssClass(fgLines, `.${key}`, [`color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`], parsedOptions.scope);
|
2992
|
+
} else {
|
2993
|
+
createCssClass(bgLines, `.${scoped}bg-${key}`, [`--${parsedOptions.prefix}theme-overlay-multiplier: var(--${parsedOptions.prefix}theme-${key}-overlay-multiplier)`, `background-color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`, `color: rgb(var(--${parsedOptions.prefix}theme-on-${key}))${important}`], parsedOptions.scope);
|
2994
|
+
createCssClass(fgLines, `.${scoped}text-${key}`, [`color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`], parsedOptions.scope);
|
2995
|
+
createCssClass(fgLines, `.${scoped}border-${key}`, [`--${parsedOptions.prefix}border-color: var(--${parsedOptions.prefix}theme-${key})`], parsedOptions.scope);
|
2996
|
+
}
|
2978
2997
|
}
|
2998
|
+
lines.push(...bgLines, ...fgLines);
|
2979
2999
|
}
|
2980
|
-
lines.
|
2981
|
-
return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
|
3000
|
+
return '@layer vuetify.theme {\n' + lines.map(v => ` ${v}`).join('') + '\n}';
|
2982
3001
|
});
|
3002
|
+
const themeClasses = computed(() => parsedOptions.isDisabled ? undefined : `${parsedOptions.prefix}theme--${name.value}`);
|
3003
|
+
const themeNames = computed(() => Object.keys(computedThemes.value));
|
3004
|
+
if (SUPPORTS_MATCH_MEDIA) {
|
3005
|
+
const media = window.matchMedia('(prefers-color-scheme: dark)');
|
3006
|
+
function updateSystemName() {
|
3007
|
+
systemName.value = media.matches ? 'dark' : 'light';
|
3008
|
+
}
|
3009
|
+
updateSystemName();
|
3010
|
+
media.addEventListener('change', updateSystemName, {
|
3011
|
+
passive: true
|
3012
|
+
});
|
3013
|
+
if (getCurrentScope()) {
|
3014
|
+
onScopeDispose(() => {
|
3015
|
+
media.removeEventListener('change', updateSystemName);
|
3016
|
+
});
|
3017
|
+
}
|
3018
|
+
}
|
2983
3019
|
function install(app) {
|
2984
3020
|
if (parsedOptions.isDisabled) return;
|
2985
3021
|
const head = app._context.provides.usehead;
|
@@ -3017,22 +3053,55 @@ function createTheme(options) {
|
|
3017
3053
|
updateStyles();
|
3018
3054
|
}
|
3019
3055
|
function updateStyles() {
|
3020
|
-
upsertStyles(
|
3056
|
+
upsertStyles(parsedOptions.stylesheetId, parsedOptions.cspNonce, styles.value);
|
3021
3057
|
}
|
3022
3058
|
}
|
3023
3059
|
}
|
3024
|
-
|
3060
|
+
function change(themeName) {
|
3061
|
+
if (!themeNames.value.includes(themeName)) {
|
3062
|
+
consoleWarn(`Theme "${themeName}" not found on the Vuetify theme instance`);
|
3063
|
+
return;
|
3064
|
+
}
|
3065
|
+
name.value = themeName;
|
3066
|
+
}
|
3067
|
+
function cycle() {
|
3068
|
+
let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : themeNames.value;
|
3069
|
+
const currentIndex = themeArray.indexOf(name.value);
|
3070
|
+
const nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % themeArray.length;
|
3071
|
+
change(themeArray[nextIndex]);
|
3072
|
+
}
|
3073
|
+
function toggle() {
|
3074
|
+
let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['light', 'dark'];
|
3075
|
+
cycle(themeArray);
|
3076
|
+
}
|
3077
|
+
const globalName = new Proxy(name, {
|
3078
|
+
get(target, prop) {
|
3079
|
+
return target[prop];
|
3080
|
+
},
|
3081
|
+
set(target, prop, val) {
|
3082
|
+
if (prop === 'value') {
|
3083
|
+
deprecate(`theme.global.name.value = ${val}`, `theme.change('${val}')`);
|
3084
|
+
}
|
3085
|
+
// @ts-expect-error
|
3086
|
+
target[prop] = val;
|
3087
|
+
return true;
|
3088
|
+
}
|
3089
|
+
});
|
3025
3090
|
return {
|
3026
3091
|
install,
|
3092
|
+
change,
|
3093
|
+
cycle,
|
3094
|
+
toggle,
|
3027
3095
|
isDisabled: parsedOptions.isDisabled,
|
3028
3096
|
name,
|
3029
3097
|
themes,
|
3030
3098
|
current,
|
3031
3099
|
computedThemes,
|
3100
|
+
prefix: parsedOptions.prefix,
|
3032
3101
|
themeClasses,
|
3033
3102
|
styles,
|
3034
3103
|
global: {
|
3035
|
-
name,
|
3104
|
+
name: globalName,
|
3036
3105
|
current
|
3037
3106
|
}
|
3038
3107
|
};
|
@@ -3043,7 +3112,7 @@ function provideTheme(props) {
|
|
3043
3112
|
if (!theme) throw new Error('Could not find Vuetify theme injection');
|
3044
3113
|
const name = computed(() => props.theme ?? theme.name.value);
|
3045
3114
|
const current = computed(() => theme.themes.value[name.value]);
|
3046
|
-
const themeClasses = computed(() => theme.isDisabled ? undefined :
|
3115
|
+
const themeClasses = computed(() => theme.isDisabled ? undefined : `${theme.prefix}theme--${name.value}`);
|
3047
3116
|
const newTheme = {
|
3048
3117
|
...theme,
|
3049
3118
|
name,
|
@@ -7159,11 +7228,6 @@ function useValidation(props) {
|
|
7159
7228
|
}
|
7160
7229
|
async function validate() {
|
7161
7230
|
let silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
7162
|
-
if (props.disabled || props.readonly) {
|
7163
|
-
internalErrorMessages.value = [];
|
7164
|
-
isValidating.value = false;
|
7165
|
-
return internalErrorMessages.value;
|
7166
|
-
}
|
7167
7231
|
const results = [];
|
7168
7232
|
isValidating.value = true;
|
7169
7233
|
for (const rule of props.rules) {
|
@@ -12573,7 +12637,12 @@ function useVirtual(props, items) {
|
|
12573
12637
|
}
|
12574
12638
|
function calculateOffset(index) {
|
12575
12639
|
index = clamp(index, 0, items.value.length - 1);
|
12576
|
-
|
12640
|
+
const whole = Math.floor(index);
|
12641
|
+
const fraction = index % 1;
|
12642
|
+
const next = whole + 1;
|
12643
|
+
const wholeOffset = offsets[whole] || 0;
|
12644
|
+
const nextOffset = offsets[next] || wholeOffset;
|
12645
|
+
return wholeOffset + (nextOffset - wholeOffset) * fraction;
|
12577
12646
|
}
|
12578
12647
|
function calculateIndex(scrollTop) {
|
12579
12648
|
return binaryClosest(offsets, scrollTop);
|
@@ -13202,7 +13271,8 @@ const VSelect = genericComponent()({
|
|
13202
13271
|
onClick: () => select(item, null)
|
13203
13272
|
});
|
13204
13273
|
return slots.item?.({
|
13205
|
-
item,
|
13274
|
+
item: item.raw,
|
13275
|
+
internalItem: item,
|
13206
13276
|
index,
|
13207
13277
|
props: itemProps
|
13208
13278
|
}) ?? createVNode(VListItem, mergeProps(itemProps, {
|
@@ -13250,11 +13320,13 @@ const VSelect = genericComponent()({
|
|
13250
13320
|
};
|
13251
13321
|
const hasSlot = hasChips ? !!slots.chip : !!slots.selection;
|
13252
13322
|
const slotContent = hasSlot ? ensureValidVNode(hasChips ? slots.chip({
|
13253
|
-
item,
|
13323
|
+
item: item.raw,
|
13324
|
+
internalItem: item,
|
13254
13325
|
index,
|
13255
13326
|
props: slotProps
|
13256
13327
|
}) : slots.selection({
|
13257
|
-
item,
|
13328
|
+
item: item.raw,
|
13329
|
+
internalItem: item,
|
13258
13330
|
index
|
13259
13331
|
})) : undefined;
|
13260
13332
|
if (hasSlot && !slotContent) return undefined;
|
@@ -13320,7 +13392,6 @@ const VSelect = genericComponent()({
|
|
13320
13392
|
// Composables
|
13321
13393
|
const defaultFilter = (value, query, item) => {
|
13322
13394
|
if (value == null || query == null) return -1;
|
13323
|
-
if (!query.length) return 0;
|
13324
13395
|
value = value.toString().toLocaleLowerCase();
|
13325
13396
|
query = query.toString().toLocaleLowerCase();
|
13326
13397
|
const result = [];
|
@@ -13333,7 +13404,7 @@ const defaultFilter = (value, query, item) => {
|
|
13333
13404
|
};
|
13334
13405
|
function normaliseMatch(match, query) {
|
13335
13406
|
if (match == null || typeof match === 'boolean' || match === -1) return;
|
13336
|
-
if (typeof match === 'number') return [[match,
|
13407
|
+
if (typeof match === 'number') return [[match, query.length]];
|
13337
13408
|
if (Array.isArray(match[0])) return match;
|
13338
13409
|
return [match];
|
13339
13410
|
}
|
@@ -13801,7 +13872,8 @@ const VAutocomplete = genericComponent()({
|
|
13801
13872
|
onClick: () => select(item, null)
|
13802
13873
|
});
|
13803
13874
|
return slots.item?.({
|
13804
|
-
item,
|
13875
|
+
item: item.raw,
|
13876
|
+
internalItem: item,
|
13805
13877
|
index,
|
13806
13878
|
props: itemProps
|
13807
13879
|
}) ?? createVNode(VListItem, mergeProps(itemProps, {
|
@@ -13852,11 +13924,13 @@ const VAutocomplete = genericComponent()({
|
|
13852
13924
|
};
|
13853
13925
|
const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
|
13854
13926
|
const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
|
13855
|
-
item,
|
13927
|
+
item: item.raw,
|
13928
|
+
internalItem: item,
|
13856
13929
|
index,
|
13857
13930
|
props: slotProps
|
13858
13931
|
}) : slots.selection({
|
13859
|
-
item,
|
13932
|
+
item: item.raw,
|
13933
|
+
internalItem: item,
|
13860
13934
|
index
|
13861
13935
|
})) : undefined;
|
13862
13936
|
if (hasSlot && !slotContent) return undefined;
|
@@ -17248,81 +17322,165 @@ const VPicker = genericComponent()({
|
|
17248
17322
|
|
17249
17323
|
// Types
|
17250
17324
|
|
17251
|
-
|
17252
|
-
|
17253
|
-
|
17254
|
-
|
17255
|
-
|
17256
|
-
|
17257
|
-
|
17258
|
-
|
17259
|
-
|
17260
|
-
|
17261
|
-
|
17262
|
-
|
17263
|
-
|
17264
|
-
|
17265
|
-
|
17266
|
-
|
17267
|
-
|
17268
|
-
|
17269
|
-
|
17270
|
-
|
17271
|
-
|
17272
|
-
|
17273
|
-
|
17274
|
-
|
17275
|
-
|
17276
|
-
|
17277
|
-
|
17278
|
-
|
17279
|
-
|
17280
|
-
|
17281
|
-
|
17282
|
-
|
17283
|
-
|
17284
|
-
|
17285
|
-
|
17286
|
-
|
17287
|
-
|
17288
|
-
|
17289
|
-
|
17290
|
-
|
17291
|
-
|
17292
|
-
|
17293
|
-
|
17294
|
-
|
17295
|
-
|
17296
|
-
|
17297
|
-
|
17298
|
-
|
17299
|
-
|
17300
|
-
|
17301
|
-
|
17302
|
-
|
17303
|
-
|
17304
|
-
|
17305
|
-
|
17306
|
-
|
17307
|
-
|
17308
|
-
|
17309
|
-
|
17310
|
-
|
17311
|
-
|
17312
|
-
|
17313
|
-
|
17314
|
-
|
17315
|
-
|
17316
|
-
|
17317
|
-
|
17318
|
-
|
17319
|
-
|
17325
|
+
const firstDay = {
|
17326
|
+
'001': 1,
|
17327
|
+
AD: 1,
|
17328
|
+
AE: 6,
|
17329
|
+
AF: 6,
|
17330
|
+
AG: 0,
|
17331
|
+
AI: 1,
|
17332
|
+
AL: 1,
|
17333
|
+
AM: 1,
|
17334
|
+
AN: 1,
|
17335
|
+
AR: 1,
|
17336
|
+
AS: 0,
|
17337
|
+
AT: 1,
|
17338
|
+
AU: 1,
|
17339
|
+
AX: 1,
|
17340
|
+
AZ: 1,
|
17341
|
+
BA: 1,
|
17342
|
+
BD: 0,
|
17343
|
+
BE: 1,
|
17344
|
+
BG: 1,
|
17345
|
+
BH: 6,
|
17346
|
+
BM: 1,
|
17347
|
+
BN: 1,
|
17348
|
+
BR: 0,
|
17349
|
+
BS: 0,
|
17350
|
+
BT: 0,
|
17351
|
+
BW: 0,
|
17352
|
+
BY: 1,
|
17353
|
+
BZ: 0,
|
17354
|
+
CA: 0,
|
17355
|
+
CH: 1,
|
17356
|
+
CL: 1,
|
17357
|
+
CM: 1,
|
17358
|
+
CN: 1,
|
17359
|
+
CO: 0,
|
17360
|
+
CR: 1,
|
17361
|
+
CY: 1,
|
17362
|
+
CZ: 1,
|
17363
|
+
DE: 1,
|
17364
|
+
DJ: 6,
|
17365
|
+
DK: 1,
|
17366
|
+
DM: 0,
|
17367
|
+
DO: 0,
|
17368
|
+
DZ: 6,
|
17369
|
+
EC: 1,
|
17370
|
+
EE: 1,
|
17371
|
+
EG: 6,
|
17372
|
+
ES: 1,
|
17373
|
+
ET: 0,
|
17374
|
+
FI: 1,
|
17375
|
+
FJ: 1,
|
17376
|
+
FO: 1,
|
17377
|
+
FR: 1,
|
17378
|
+
GB: 1,
|
17379
|
+
'GB-alt-variant': 0,
|
17380
|
+
GE: 1,
|
17381
|
+
GF: 1,
|
17382
|
+
GP: 1,
|
17383
|
+
GR: 1,
|
17384
|
+
GT: 0,
|
17385
|
+
GU: 0,
|
17386
|
+
HK: 0,
|
17387
|
+
HN: 0,
|
17388
|
+
HR: 1,
|
17389
|
+
HU: 1,
|
17390
|
+
ID: 0,
|
17391
|
+
IE: 1,
|
17392
|
+
IL: 0,
|
17393
|
+
IN: 0,
|
17394
|
+
IQ: 6,
|
17395
|
+
IR: 6,
|
17396
|
+
IS: 1,
|
17397
|
+
IT: 1,
|
17398
|
+
JM: 0,
|
17399
|
+
JO: 6,
|
17400
|
+
JP: 0,
|
17401
|
+
KE: 0,
|
17402
|
+
KG: 1,
|
17403
|
+
KH: 0,
|
17404
|
+
KR: 0,
|
17405
|
+
KW: 6,
|
17406
|
+
KZ: 1,
|
17407
|
+
LA: 0,
|
17408
|
+
LB: 1,
|
17409
|
+
LI: 1,
|
17410
|
+
LK: 1,
|
17411
|
+
LT: 1,
|
17412
|
+
LU: 1,
|
17413
|
+
LV: 1,
|
17414
|
+
LY: 6,
|
17415
|
+
MC: 1,
|
17416
|
+
MD: 1,
|
17417
|
+
ME: 1,
|
17418
|
+
MH: 0,
|
17419
|
+
MK: 1,
|
17420
|
+
MM: 0,
|
17421
|
+
MN: 1,
|
17422
|
+
MO: 0,
|
17423
|
+
MQ: 1,
|
17424
|
+
MT: 0,
|
17425
|
+
MV: 5,
|
17426
|
+
MX: 0,
|
17427
|
+
MY: 1,
|
17428
|
+
MZ: 0,
|
17429
|
+
NI: 0,
|
17430
|
+
NL: 1,
|
17431
|
+
NO: 1,
|
17432
|
+
NP: 0,
|
17433
|
+
NZ: 1,
|
17434
|
+
OM: 6,
|
17435
|
+
PA: 0,
|
17436
|
+
PE: 0,
|
17437
|
+
PH: 0,
|
17438
|
+
PK: 0,
|
17439
|
+
PL: 1,
|
17440
|
+
PR: 0,
|
17441
|
+
PT: 0,
|
17442
|
+
PY: 0,
|
17443
|
+
QA: 6,
|
17444
|
+
RE: 1,
|
17445
|
+
RO: 1,
|
17446
|
+
RS: 1,
|
17447
|
+
RU: 1,
|
17448
|
+
SA: 0,
|
17449
|
+
SD: 6,
|
17450
|
+
SE: 1,
|
17451
|
+
SG: 0,
|
17452
|
+
SI: 1,
|
17453
|
+
SK: 1,
|
17454
|
+
SM: 1,
|
17455
|
+
SV: 0,
|
17456
|
+
SY: 6,
|
17457
|
+
TH: 0,
|
17458
|
+
TJ: 1,
|
17459
|
+
TM: 1,
|
17460
|
+
TR: 1,
|
17461
|
+
TT: 0,
|
17462
|
+
TW: 0,
|
17463
|
+
UA: 1,
|
17464
|
+
UM: 0,
|
17465
|
+
US: 0,
|
17466
|
+
UY: 1,
|
17467
|
+
UZ: 1,
|
17468
|
+
VA: 1,
|
17469
|
+
VE: 0,
|
17470
|
+
VI: 0,
|
17471
|
+
VN: 1,
|
17472
|
+
WS: 0,
|
17473
|
+
XK: 1,
|
17474
|
+
YE: 0,
|
17475
|
+
ZA: 0,
|
17476
|
+
ZW: 0
|
17477
|
+
};
|
17320
17478
|
function getWeekArray(date, locale, firstDayOfWeek) {
|
17321
17479
|
const weeks = [];
|
17322
17480
|
let currentWeek = [];
|
17323
17481
|
const firstDayOfMonth = startOfMonth(date);
|
17324
17482
|
const lastDayOfMonth = endOfMonth(date);
|
17325
|
-
const first = firstDayOfWeek ??
|
17483
|
+
const first = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
|
17326
17484
|
const firstDayWeekIndex = (firstDayOfMonth.getDay() - first + 7) % 7;
|
17327
17485
|
const lastDayWeekIndex = (lastDayOfMonth.getDay() - first + 7) % 7;
|
17328
17486
|
for (let i = 0; i < firstDayWeekIndex; i++) {
|
@@ -17353,7 +17511,7 @@ function getWeekArray(date, locale, firstDayOfWeek) {
|
|
17353
17511
|
return weeks;
|
17354
17512
|
}
|
17355
17513
|
function startOfWeek(date, locale, firstDayOfWeek) {
|
17356
|
-
const day = firstDayOfWeek ??
|
17514
|
+
const day = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
|
17357
17515
|
const d = new Date(date);
|
17358
17516
|
while (d.getDay() !== day) {
|
17359
17517
|
d.setDate(d.getDate() - 1);
|
@@ -17362,7 +17520,7 @@ function startOfWeek(date, locale, firstDayOfWeek) {
|
|
17362
17520
|
}
|
17363
17521
|
function endOfWeek(date, locale) {
|
17364
17522
|
const d = new Date(date);
|
17365
|
-
const lastDay = ((
|
17523
|
+
const lastDay = ((firstDay[locale.slice(-2).toUpperCase()] ?? 0) + 6) % 7;
|
17366
17524
|
while (d.getDay() !== lastDay) {
|
17367
17525
|
d.setDate(d.getDate() + 1);
|
17368
17526
|
}
|
@@ -17397,7 +17555,7 @@ function date(value) {
|
|
17397
17555
|
}
|
17398
17556
|
const sundayJanuarySecond2000 = new Date(2000, 0, 2);
|
17399
17557
|
function getWeekdays(locale, firstDayOfWeek) {
|
17400
|
-
const daysFromSunday = firstDayOfWeek ??
|
17558
|
+
const daysFromSunday = firstDayOfWeek ?? firstDay[locale.slice(-2).toUpperCase()] ?? 0;
|
17401
17559
|
return createRange(7).map(i => {
|
17402
17560
|
const weekday = new Date(sundayJanuarySecond2000);
|
17403
17561
|
weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
|
@@ -17645,24 +17803,6 @@ function getYear(date) {
|
|
17645
17803
|
function getMonth(date) {
|
17646
17804
|
return date.getMonth();
|
17647
17805
|
}
|
17648
|
-
function getWeek(date, locale, firstDayOfWeek, firstWeekMinSize) {
|
17649
|
-
const weekInfoFromLocale = weekInfo(locale);
|
17650
|
-
const weekStart = firstDayOfWeek ?? weekInfoFromLocale?.firstDay ?? 0;
|
17651
|
-
const minWeekSize = firstWeekMinSize ?? weekInfoFromLocale?.firstWeekSize ?? 1;
|
17652
|
-
function firstWeekSize(year) {
|
17653
|
-
const yearStart = new Date(year, 0, 1);
|
17654
|
-
return 7 - getDiff(yearStart, startOfWeek(yearStart, locale, weekStart), 'days');
|
17655
|
-
}
|
17656
|
-
let year = getYear(date);
|
17657
|
-
const currentWeekEnd = addDays(startOfWeek(date, locale, weekStart), 6);
|
17658
|
-
if (year < getYear(currentWeekEnd) && firstWeekSize(year + 1) >= minWeekSize) {
|
17659
|
-
year++;
|
17660
|
-
}
|
17661
|
-
const yearStart = new Date(year, 0, 1);
|
17662
|
-
const size = firstWeekSize(year);
|
17663
|
-
const d1w1 = size >= minWeekSize ? addDays(yearStart, size - 7) : addDays(yearStart, size);
|
17664
|
-
return 1 + getDiff(date, d1w1, 'weeks');
|
17665
|
-
}
|
17666
17806
|
function getDate(date) {
|
17667
17807
|
return date.getDate();
|
17668
17808
|
}
|
@@ -17802,12 +17942,10 @@ class VuetifyDateAdapter {
|
|
17802
17942
|
return addMonths(date, amount);
|
17803
17943
|
}
|
17804
17944
|
getWeekArray(date, firstDayOfWeek) {
|
17805
|
-
|
17806
|
-
return getWeekArray(date, this.locale, firstDay);
|
17945
|
+
return getWeekArray(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
|
17807
17946
|
}
|
17808
17947
|
startOfWeek(date, firstDayOfWeek) {
|
17809
|
-
|
17810
|
-
return startOfWeek(date, this.locale, firstDay);
|
17948
|
+
return startOfWeek(date, this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
|
17811
17949
|
}
|
17812
17950
|
endOfWeek(date) {
|
17813
17951
|
return endOfWeek(date, this.locale);
|
@@ -17867,8 +18005,7 @@ class VuetifyDateAdapter {
|
|
17867
18005
|
return getDiff(date, comparing, unit);
|
17868
18006
|
}
|
17869
18007
|
getWeekdays(firstDayOfWeek) {
|
17870
|
-
|
17871
|
-
return getWeekdays(this.locale, firstDay);
|
18008
|
+
return getWeekdays(this.locale, firstDayOfWeek ? Number(firstDayOfWeek) : undefined);
|
17872
18009
|
}
|
17873
18010
|
getYear(date) {
|
17874
18011
|
return getYear(date);
|
@@ -17876,10 +18013,6 @@ class VuetifyDateAdapter {
|
|
17876
18013
|
getMonth(date) {
|
17877
18014
|
return getMonth(date);
|
17878
18015
|
}
|
17879
|
-
getWeek(date, firstDayOfWeek, firstWeekMinSize) {
|
17880
|
-
const firstDay = firstDayOfWeek !== undefined ? Number(firstDayOfWeek) : undefined;
|
17881
|
-
return getWeek(date, this.locale, firstDay, firstWeekMinSize);
|
17882
|
-
}
|
17883
18016
|
getDate(date) {
|
17884
18017
|
return getDate(date);
|
17885
18018
|
}
|
@@ -17983,6 +18116,26 @@ function useDate() {
|
|
17983
18116
|
return createInstance(options, locale);
|
17984
18117
|
}
|
17985
18118
|
|
18119
|
+
// https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
|
18120
|
+
function getWeek(adapter, value) {
|
18121
|
+
const date = adapter.toJsDate(value);
|
18122
|
+
let year = date.getFullYear();
|
18123
|
+
let d1w1 = new Date(year, 0, 1);
|
18124
|
+
if (date < d1w1) {
|
18125
|
+
year = year - 1;
|
18126
|
+
d1w1 = new Date(year, 0, 1);
|
18127
|
+
} else {
|
18128
|
+
const tv = new Date(year + 1, 0, 1);
|
18129
|
+
if (date >= tv) {
|
18130
|
+
year = year + 1;
|
18131
|
+
d1w1 = tv;
|
18132
|
+
}
|
18133
|
+
}
|
18134
|
+
const diffTime = Math.abs(date.getTime() - d1w1.getTime());
|
18135
|
+
const diffDays = Math.ceil(diffTime / (1000 * 60 * 60 * 24));
|
18136
|
+
return Math.floor(diffDays / 7) + 1;
|
18137
|
+
}
|
18138
|
+
|
17986
18139
|
// Types
|
17987
18140
|
|
17988
18141
|
const makeVColorPickerProps = propsFactory({
|
@@ -18529,7 +18682,8 @@ const VCombobox = genericComponent()({
|
|
18529
18682
|
onClick: () => select(item, null)
|
18530
18683
|
});
|
18531
18684
|
return slots.item?.({
|
18532
|
-
item,
|
18685
|
+
item: item.raw,
|
18686
|
+
internalItem: item,
|
18533
18687
|
index,
|
18534
18688
|
props: itemProps
|
18535
18689
|
}) ?? createVNode(VListItem, mergeProps(itemProps, {
|
@@ -18580,11 +18734,13 @@ const VCombobox = genericComponent()({
|
|
18580
18734
|
};
|
18581
18735
|
const hasSlot = hasChips.value ? !!slots.chip : !!slots.selection;
|
18582
18736
|
const slotContent = hasSlot ? ensureValidVNode(hasChips.value ? slots.chip({
|
18583
|
-
item,
|
18737
|
+
item: item.raw,
|
18738
|
+
internalItem: item,
|
18584
18739
|
index,
|
18585
18740
|
props: slotProps
|
18586
18741
|
}) : slots.selection({
|
18587
|
-
item,
|
18742
|
+
item: item.raw,
|
18743
|
+
internalItem: item,
|
18588
18744
|
index
|
18589
18745
|
})) : undefined;
|
18590
18746
|
if (hasSlot && !slotContent) return undefined;
|
@@ -22171,7 +22327,7 @@ const makeCalendarProps = propsFactory({
|
|
22171
22327
|
},
|
22172
22328
|
firstDayOfWeek: {
|
22173
22329
|
type: [Number, String],
|
22174
|
-
default:
|
22330
|
+
default: 0
|
22175
22331
|
}
|
22176
22332
|
}, 'calendar');
|
22177
22333
|
function useCalendar(props) {
|
@@ -22194,12 +22350,14 @@ function useCalendar(props) {
|
|
22194
22350
|
return adapter.setMonth(date, value);
|
22195
22351
|
}, v => adapter.getMonth(v));
|
22196
22352
|
const weekDays = computed(() => {
|
22197
|
-
const firstDayOfWeek =
|
22353
|
+
const firstDayOfWeek = Number(props.firstDayOfWeek);
|
22354
|
+
|
22198
22355
|
// Always generate all days, regardless of props.weekdays
|
22199
22356
|
return [0, 1, 2, 3, 4, 5, 6].map(day => (day + firstDayOfWeek) % 7);
|
22200
22357
|
});
|
22201
22358
|
const weeksInMonth = computed(() => {
|
22202
|
-
const
|
22359
|
+
const firstDayOfWeek = Number(props.firstDayOfWeek);
|
22360
|
+
const weeks = adapter.getWeekArray(month.value, firstDayOfWeek);
|
22203
22361
|
const days = weeks.flat();
|
22204
22362
|
|
22205
22363
|
// Make sure there's always 6 weeks in month (6 * 7 days)
|
@@ -22263,7 +22421,7 @@ function useCalendar(props) {
|
|
22263
22421
|
});
|
22264
22422
|
const weekNumbers = computed(() => {
|
22265
22423
|
return weeksInMonth.value.map(week => {
|
22266
|
-
return week.length ?
|
22424
|
+
return week.length ? getWeek(adapter, week[0]) : null;
|
22267
22425
|
});
|
22268
22426
|
});
|
22269
22427
|
function isDisabled(value) {
|
@@ -23752,7 +23910,17 @@ const VForm = genericComponent()({
|
|
23752
23910
|
"novalidate": true,
|
23753
23911
|
"onReset": onReset,
|
23754
23912
|
"onSubmit": onSubmit
|
23755
|
-
}, [slots.default?.(
|
23913
|
+
}, [slots.default?.({
|
23914
|
+
errors: form.errors.value,
|
23915
|
+
isDisabled: form.isDisabled.value,
|
23916
|
+
isReadonly: form.isReadonly.value,
|
23917
|
+
isValidating: form.isValidating.value,
|
23918
|
+
isValid: form.isValid.value,
|
23919
|
+
items: form.items.value,
|
23920
|
+
validate: form.validate,
|
23921
|
+
reset: form.reset,
|
23922
|
+
resetValidation: form.resetValidation
|
23923
|
+
})]));
|
23756
23924
|
return forwardRefs(form, formRef);
|
23757
23925
|
}
|
23758
23926
|
});
|
@@ -29161,7 +29329,7 @@ function createVuetify$1() {
|
|
29161
29329
|
};
|
29162
29330
|
});
|
29163
29331
|
}
|
29164
|
-
const version$1 = "3.8.1-
|
29332
|
+
const version$1 = "3.8.1-next.2025-04-15";
|
29165
29333
|
createVuetify$1.version = version$1;
|
29166
29334
|
|
29167
29335
|
// Vue's inject() can only be used in setup
|
@@ -29186,7 +29354,7 @@ const createVuetify = function () {
|
|
29186
29354
|
...options
|
29187
29355
|
});
|
29188
29356
|
};
|
29189
|
-
const version = "3.8.1-
|
29357
|
+
const version = "3.8.1-next.2025-04-15";
|
29190
29358
|
createVuetify.version = version;
|
29191
29359
|
|
29192
29360
|
export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };
|