@vuetify/nightly 3.8.0-master.2025-04-04 → 3.8.1-dev.2025-04-07
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 -14
- package/dist/json/attributes.json +2907 -2907
- package/dist/json/importMap-labs.json +24 -24
- package/dist/json/importMap.json +148 -148
- package/dist/json/web-types.json +5685 -5685
- package/dist/vuetify-labs.cjs +113 -86
- package/dist/vuetify-labs.css +5929 -5929
- package/dist/vuetify-labs.d.ts +53 -53
- package/dist/vuetify-labs.esm.js +113 -86
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +113 -86
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +113 -86
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +5668 -5668
- package/dist/vuetify.d.ts +53 -53
- package/dist/vuetify.esm.js +113 -86
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +113 -86
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +794 -791
- package/dist/vuetify.min.js.map +1 -1
- package/lib/composables/theme.js +105 -83
- package/lib/composables/theme.js.map +1 -1
- package/lib/composables/virtual.js +6 -1
- package/lib/composables/virtual.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/entry-bundler.js.map +1 -1
- package/lib/framework.d.ts +53 -53
- package/lib/framework.js +1 -1
- package/lib/framework.js.map +1 -1
- package/package.json +2 -2
package/dist/vuetify.d.ts
CHANGED
@@ -82943,45 +82943,40 @@ declare module 'vue' {
|
|
82943
82943
|
$children?: VNodeChild
|
82944
82944
|
}
|
82945
82945
|
export interface GlobalComponents {
|
82946
|
-
|
82946
|
+
VApp: VApp
|
82947
82947
|
VAppBar: VAppBar
|
82948
82948
|
VAppBarNavIcon: VAppBarNavIcon
|
82949
82949
|
VAppBarTitle: VAppBarTitle
|
82950
82950
|
VAvatar: VAvatar
|
82951
|
-
|
82951
|
+
VAlert: VAlert
|
82952
|
+
VAlertTitle: VAlertTitle
|
82953
|
+
VAutocomplete: VAutocomplete
|
82952
82954
|
VBadge: VBadge
|
82953
82955
|
VBanner: VBanner
|
82954
82956
|
VBannerActions: VBannerActions
|
82955
82957
|
VBannerText: VBannerText
|
82956
|
-
VAlert: VAlert
|
82957
|
-
VAlertTitle: VAlertTitle
|
82958
|
-
VBtn: VBtn
|
82959
82958
|
VBreadcrumbs: VBreadcrumbs
|
82960
82959
|
VBreadcrumbsItem: VBreadcrumbsItem
|
82961
82960
|
VBreadcrumbsDivider: VBreadcrumbsDivider
|
82961
|
+
VBottomSheet: VBottomSheet
|
82962
|
+
VBottomNavigation: VBottomNavigation
|
82963
|
+
VBtnGroup: VBtnGroup
|
82964
|
+
VBtn: VBtn
|
82965
|
+
VCheckbox: VCheckbox
|
82966
|
+
VCheckboxBtn: VCheckboxBtn
|
82962
82967
|
VCard: VCard
|
82963
82968
|
VCardActions: VCardActions
|
82964
82969
|
VCardItem: VCardItem
|
82965
82970
|
VCardSubtitle: VCardSubtitle
|
82966
82971
|
VCardText: VCardText
|
82967
82972
|
VCardTitle: VCardTitle
|
82968
|
-
VCheckbox: VCheckbox
|
82969
|
-
VCheckboxBtn: VCheckboxBtn
|
82970
|
-
VBottomNavigation: VBottomNavigation
|
82971
82973
|
VBtnToggle: VBtnToggle
|
82974
|
+
VChipGroup: VChipGroup
|
82972
82975
|
VCarousel: VCarousel
|
82973
82976
|
VCarouselItem: VCarouselItem
|
82974
|
-
VBottomSheet: VBottomSheet
|
82975
|
-
VChip: VChip
|
82976
|
-
VBtnGroup: VBtnGroup
|
82977
|
-
VChipGroup: VChipGroup
|
82978
82977
|
VColorPicker: VColorPicker
|
82979
|
-
|
82980
|
-
|
82981
|
-
VDatePickerHeader: VDatePickerHeader
|
82982
|
-
VDatePickerMonth: VDatePickerMonth
|
82983
|
-
VDatePickerMonths: VDatePickerMonths
|
82984
|
-
VDatePickerYears: VDatePickerYears
|
82978
|
+
VCode: VCode
|
82979
|
+
VCombobox: VCombobox
|
82985
82980
|
VDataTable: VDataTable
|
82986
82981
|
VDataTableHeaders: VDataTableHeaders
|
82987
82982
|
VDataTableFooter: VDataTableFooter
|
@@ -82989,31 +82984,38 @@ declare module 'vue' {
|
|
82989
82984
|
VDataTableRow: VDataTableRow
|
82990
82985
|
VDataTableVirtual: VDataTableVirtual
|
82991
82986
|
VDataTableServer: VDataTableServer
|
82992
|
-
|
82987
|
+
VDatePicker: VDatePicker
|
82988
|
+
VDatePickerControls: VDatePickerControls
|
82989
|
+
VDatePickerHeader: VDatePickerHeader
|
82990
|
+
VDatePickerMonth: VDatePickerMonth
|
82991
|
+
VDatePickerMonths: VDatePickerMonths
|
82992
|
+
VDatePickerYears: VDatePickerYears
|
82993
82993
|
VCounter: VCounter
|
82994
|
-
|
82995
|
-
VCombobox: VCombobox
|
82996
|
-
VDivider: VDivider
|
82997
|
-
VFileInput: VFileInput
|
82998
|
-
VFab: VFab
|
82994
|
+
VChip: VChip
|
82999
82995
|
VEmptyState: VEmptyState
|
82996
|
+
VDivider: VDivider
|
83000
82997
|
VExpansionPanels: VExpansionPanels
|
83001
82998
|
VExpansionPanel: VExpansionPanel
|
83002
82999
|
VExpansionPanelText: VExpansionPanelText
|
83003
83000
|
VExpansionPanelTitle: VExpansionPanelTitle
|
83001
|
+
VDialog: VDialog
|
83002
|
+
VFab: VFab
|
83004
83003
|
VField: VField
|
83005
83004
|
VFieldLabel: VFieldLabel
|
83006
83005
|
VFooter: VFooter
|
83006
|
+
VFileInput: VFileInput
|
83007
83007
|
VIcon: VIcon
|
83008
83008
|
VComponentIcon: VComponentIcon
|
83009
83009
|
VSvgIcon: VSvgIcon
|
83010
83010
|
VLigatureIcon: VLigatureIcon
|
83011
83011
|
VClassIcon: VClassIcon
|
83012
|
-
|
83012
|
+
VInput: VInput
|
83013
|
+
VLabel: VLabel
|
83014
|
+
VInfiniteScroll: VInfiniteScroll
|
83013
83015
|
VItemGroup: VItemGroup
|
83014
83016
|
VItem: VItem
|
83015
|
-
VInput: VInput
|
83016
83017
|
VKbd: VKbd
|
83018
|
+
VImg: VImg
|
83017
83019
|
VList: VList
|
83018
83020
|
VListGroup: VListGroup
|
83019
83021
|
VListImg: VListImg
|
@@ -83023,35 +83025,33 @@ declare module 'vue' {
|
|
83023
83025
|
VListItemSubtitle: VListItemSubtitle
|
83024
83026
|
VListItemTitle: VListItemTitle
|
83025
83027
|
VListSubheader: VListSubheader
|
83026
|
-
VInfiniteScroll: VInfiniteScroll
|
83027
|
-
VLabel: VLabel
|
83028
|
-
VMenu: VMenu
|
83029
|
-
VNumberInput: VNumberInput
|
83030
83028
|
VMain: VMain
|
83031
83029
|
VNavigationDrawer: VNavigationDrawer
|
83032
|
-
|
83030
|
+
VMenu: VMenu
|
83033
83031
|
VOtpInput: VOtpInput
|
83034
83032
|
VOverlay: VOverlay
|
83035
|
-
VProgressCircular: VProgressCircular
|
83036
|
-
VProgressLinear: VProgressLinear
|
83037
83033
|
VMessages: VMessages
|
83034
|
+
VNumberInput: VNumberInput
|
83035
|
+
VPagination: VPagination
|
83036
|
+
VProgressLinear: VProgressLinear
|
83038
83037
|
VRadioGroup: VRadioGroup
|
83038
|
+
VProgressCircular: VProgressCircular
|
83039
|
+
VSelect: VSelect
|
83039
83040
|
VRating: VRating
|
83040
83041
|
VSelectionControl: VSelectionControl
|
83041
83042
|
VSelectionControlGroup: VSelectionControlGroup
|
83042
|
-
VSkeletonLoader: VSkeletonLoader
|
83043
|
-
VSelect: VSelect
|
83044
83043
|
VSlideGroup: VSlideGroup
|
83045
83044
|
VSlideGroupItem: VSlideGroupItem
|
83045
|
+
VSnackbar: VSnackbar
|
83046
83046
|
VSheet: VSheet
|
83047
|
+
VSkeletonLoader: VSkeletonLoader
|
83047
83048
|
VSlider: VSlider
|
83048
|
-
VSnackbar: VSnackbar
|
83049
83049
|
VSwitch: VSwitch
|
83050
|
-
VSystemBar: VSystemBar
|
83051
83050
|
VTab: VTab
|
83052
83051
|
VTabs: VTabs
|
83053
83052
|
VTabsWindow: VTabsWindow
|
83054
83053
|
VTabsWindowItem: VTabsWindowItem
|
83054
|
+
VSystemBar: VSystemBar
|
83055
83055
|
VStepper: VStepper
|
83056
83056
|
VStepperActions: VStepperActions
|
83057
83057
|
VStepperHeader: VStepperHeader
|
@@ -83059,34 +83059,34 @@ declare module 'vue' {
|
|
83059
83059
|
VStepperWindow: VStepperWindow
|
83060
83060
|
VStepperWindowItem: VStepperWindowItem
|
83061
83061
|
VTextarea: VTextarea
|
83062
|
+
VTable: VTable
|
83062
83063
|
VToolbar: VToolbar
|
83063
83064
|
VToolbarTitle: VToolbarTitle
|
83064
83065
|
VToolbarItems: VToolbarItems
|
83065
|
-
|
83066
|
+
VTextField: VTextField
|
83066
83067
|
VTimeline: VTimeline
|
83067
83068
|
VTimelineItem: VTimelineItem
|
83068
|
-
VTooltip: VTooltip
|
83069
83069
|
VWindow: VWindow
|
83070
83070
|
VWindowItem: VWindowItem
|
83071
|
-
|
83071
|
+
VTooltip: VTooltip
|
83072
83072
|
VConfirmEdit: VConfirmEdit
|
83073
83073
|
VDataIterator: VDataIterator
|
83074
|
-
VHover: VHover
|
83075
83074
|
VDefaultsProvider: VDefaultsProvider
|
83075
|
+
VForm: VForm
|
83076
|
+
VHover: VHover
|
83076
83077
|
VContainer: VContainer
|
83077
83078
|
VCol: VCol
|
83078
83079
|
VRow: VRow
|
83079
83080
|
VSpacer: VSpacer
|
83080
|
-
VForm: VForm
|
83081
|
-
VLazy: VLazy
|
83082
83081
|
VLayout: VLayout
|
83083
83082
|
VLayoutItem: VLayoutItem
|
83083
|
+
VLazy: VLazy
|
83084
83084
|
VLocaleProvider: VLocaleProvider
|
83085
83085
|
VNoSsr: VNoSsr
|
83086
83086
|
VParallax: VParallax
|
83087
83087
|
VRadio: VRadio
|
83088
|
-
VResponsive: VResponsive
|
83089
83088
|
VRangeSlider: VRangeSlider
|
83089
|
+
VResponsive: VResponsive
|
83090
83090
|
VSnackbarQueue: VSnackbarQueue
|
83091
83091
|
VSparkline: VSparkline
|
83092
83092
|
VSpeedDial: VSpeedDial
|
@@ -83111,6 +83111,9 @@ declare module 'vue' {
|
|
83111
83111
|
VDialogTransition: VDialogTransition
|
83112
83112
|
VFileUpload: VFileUpload
|
83113
83113
|
VFileUploadItem: VFileUploadItem
|
83114
|
+
VStepperVertical: VStepperVertical
|
83115
|
+
VStepperVerticalItem: VStepperVerticalItem
|
83116
|
+
VStepperVerticalActions: VStepperVerticalActions
|
83114
83117
|
VCalendar: VCalendar
|
83115
83118
|
VCalendarDay: VCalendarDay
|
83116
83119
|
VCalendarHeader: VCalendarHeader
|
@@ -83118,18 +83121,15 @@ declare module 'vue' {
|
|
83118
83121
|
VCalendarIntervalEvent: VCalendarIntervalEvent
|
83119
83122
|
VCalendarMonthDay: VCalendarMonthDay
|
83120
83123
|
VIconBtn: VIconBtn
|
83121
|
-
|
83122
|
-
|
83123
|
-
VTreeviewGroup: VTreeviewGroup
|
83124
|
+
VPicker: VPicker
|
83125
|
+
VPickerTitle: VPickerTitle
|
83124
83126
|
VTimePicker: VTimePicker
|
83125
83127
|
VTimePickerClock: VTimePickerClock
|
83126
83128
|
VTimePickerControls: VTimePickerControls
|
83127
|
-
|
83128
|
-
|
83129
|
-
|
83130
|
-
VStepperVerticalItem: VStepperVerticalItem
|
83131
|
-
VStepperVerticalActions: VStepperVerticalActions
|
83132
|
-
VPullToRefresh: VPullToRefresh
|
83129
|
+
VTreeview: VTreeview
|
83130
|
+
VTreeviewItem: VTreeviewItem
|
83131
|
+
VTreeviewGroup: VTreeviewGroup
|
83133
83132
|
VDateInput: VDateInput
|
83133
|
+
VPullToRefresh: VPullToRefresh
|
83134
83134
|
}
|
83135
83135
|
}
|
package/dist/vuetify.esm.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.8.
|
2
|
+
* Vuetify v3.8.1-dev.2025-04-07
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -2855,93 +2855,144 @@ function parseThemeOptions() {
|
|
2855
2855
|
themes
|
2856
2856
|
});
|
2857
2857
|
}
|
2858
|
+
function createCssClass(lines, selector, content, scope) {
|
2859
|
+
lines.push(`${getScopedSelector(selector, scope)} {\n`, ...content.map(line => ` ${line};\n`), '}\n');
|
2860
|
+
}
|
2861
|
+
function genCssVariables(theme) {
|
2862
|
+
const lightOverlay = theme.dark ? 2 : 1;
|
2863
|
+
const darkOverlay = theme.dark ? 1 : 2;
|
2864
|
+
const variables = [];
|
2865
|
+
for (const [key, value] of Object.entries(theme.colors)) {
|
2866
|
+
const rgb = parseColor(value);
|
2867
|
+
variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
|
2868
|
+
if (!key.startsWith('on-')) {
|
2869
|
+
variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
|
2870
|
+
}
|
2871
|
+
}
|
2872
|
+
for (const [key, value] of Object.entries(theme.variables)) {
|
2873
|
+
const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;
|
2874
|
+
const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
|
2875
|
+
variables.push(`--v-${key}: ${rgb ?? value}`);
|
2876
|
+
}
|
2877
|
+
return variables;
|
2878
|
+
}
|
2879
|
+
function genVariation(name, color, variations) {
|
2880
|
+
const object = {};
|
2881
|
+
if (variations) {
|
2882
|
+
for (const variation of ['lighten', 'darken']) {
|
2883
|
+
const fn = variation === 'lighten' ? lighten : darken;
|
2884
|
+
for (const amount of createRange(variations[variation], 1)) {
|
2885
|
+
object[`${name}-${variation}-${amount}`] = RGBtoHex(fn(parseColor(color), amount));
|
2886
|
+
}
|
2887
|
+
}
|
2888
|
+
}
|
2889
|
+
return object;
|
2890
|
+
}
|
2891
|
+
function genVariations(colors, variations) {
|
2892
|
+
if (!variations) return {};
|
2893
|
+
let variationColors = {};
|
2894
|
+
for (const name of variations.colors) {
|
2895
|
+
const color = colors[name];
|
2896
|
+
if (!color) continue;
|
2897
|
+
variationColors = {
|
2898
|
+
...variationColors,
|
2899
|
+
...genVariation(name, color, variations)
|
2900
|
+
};
|
2901
|
+
}
|
2902
|
+
return variationColors;
|
2903
|
+
}
|
2904
|
+
function genOnColors(colors) {
|
2905
|
+
const onColors = {};
|
2906
|
+
for (const color of Object.keys(colors)) {
|
2907
|
+
if (color.startsWith('on-') || colors[`on-${color}`]) continue;
|
2908
|
+
const onColor = `on-${color}`;
|
2909
|
+
const colorVal = parseColor(colors[color]);
|
2910
|
+
onColors[onColor] = getForeground(colorVal);
|
2911
|
+
}
|
2912
|
+
return onColors;
|
2913
|
+
}
|
2914
|
+
function getScopedSelector(selector, scope) {
|
2915
|
+
if (!scope) return selector;
|
2916
|
+
const scopeSelector = `:where(${scope})`;
|
2917
|
+
return selector === ':root' ? scopeSelector : `${scopeSelector} ${selector}`;
|
2918
|
+
}
|
2919
|
+
function upsertStyles(styleEl, styles) {
|
2920
|
+
if (!styleEl) return;
|
2921
|
+
styleEl.innerHTML = styles;
|
2922
|
+
}
|
2923
|
+
function getOrCreateStyleElement(id, cspNonce) {
|
2924
|
+
if (!IN_BROWSER) return null;
|
2925
|
+
let style = document.getElementById(id);
|
2926
|
+
if (!style) {
|
2927
|
+
style = document.createElement('style');
|
2928
|
+
style.id = id;
|
2929
|
+
style.type = 'text/css';
|
2930
|
+
if (cspNonce) style.setAttribute('nonce', cspNonce);
|
2931
|
+
document.head.appendChild(style);
|
2932
|
+
}
|
2933
|
+
return style;
|
2934
|
+
}
|
2858
2935
|
|
2859
2936
|
// Composables
|
2860
2937
|
function createTheme(options) {
|
2861
2938
|
const parsedOptions = parseThemeOptions(options);
|
2862
|
-
const name =
|
2939
|
+
const name = shallowRef(parsedOptions.defaultTheme);
|
2863
2940
|
const themes = ref(parsedOptions.themes);
|
2864
2941
|
const computedThemes = computed(() => {
|
2865
2942
|
const acc = {};
|
2866
2943
|
for (const [name, original] of Object.entries(themes.value)) {
|
2867
|
-
const
|
2944
|
+
const colors = {
|
2945
|
+
...original.colors,
|
2946
|
+
...genVariations(original.colors, parsedOptions.variations)
|
2947
|
+
};
|
2948
|
+
acc[name] = {
|
2868
2949
|
...original,
|
2869
2950
|
colors: {
|
2870
|
-
...
|
2951
|
+
...colors,
|
2952
|
+
...genOnColors(colors)
|
2871
2953
|
}
|
2872
2954
|
};
|
2873
|
-
if (parsedOptions.variations) {
|
2874
|
-
for (const name of parsedOptions.variations.colors) {
|
2875
|
-
const color = theme.colors[name];
|
2876
|
-
if (!color) continue;
|
2877
|
-
for (const variation of ['lighten', 'darken']) {
|
2878
|
-
const fn = variation === 'lighten' ? lighten : darken;
|
2879
|
-
for (const amount of createRange(parsedOptions.variations[variation], 1)) {
|
2880
|
-
theme.colors[`${name}-${variation}-${amount}`] = RGBtoHex(fn(parseColor(color), amount));
|
2881
|
-
}
|
2882
|
-
}
|
2883
|
-
}
|
2884
|
-
}
|
2885
|
-
for (const color of Object.keys(theme.colors)) {
|
2886
|
-
if (/^on-[a-z]/.test(color) || theme.colors[`on-${color}`]) continue;
|
2887
|
-
const onColor = `on-${color}`;
|
2888
|
-
const colorVal = parseColor(theme.colors[color]);
|
2889
|
-
theme.colors[onColor] = getForeground(colorVal);
|
2890
|
-
}
|
2891
2955
|
}
|
2892
2956
|
return acc;
|
2893
2957
|
});
|
2894
2958
|
const current = computed(() => computedThemes.value[name.value]);
|
2895
|
-
function createCssClass(lines, selector, content) {
|
2896
|
-
lines.push(`${getScopedSelector(selector)} {\n`, ...content.map(line => ` ${line};\n`), '}\n');
|
2897
|
-
}
|
2898
|
-
function getScopedSelector(selector) {
|
2899
|
-
if (!parsedOptions.scope) {
|
2900
|
-
return selector;
|
2901
|
-
}
|
2902
|
-
const scopeSelector = `:where(${parsedOptions.scope})`;
|
2903
|
-
if (selector === ':root') {
|
2904
|
-
return scopeSelector;
|
2905
|
-
}
|
2906
|
-
return `${scopeSelector} ${selector}`;
|
2907
|
-
}
|
2908
2959
|
const styles = computed(() => {
|
2909
2960
|
const lines = [];
|
2910
2961
|
if (current.value?.dark) {
|
2911
|
-
createCssClass(lines, ':root', ['color-scheme: dark']);
|
2962
|
+
createCssClass(lines, ':root', ['color-scheme: dark'], parsedOptions.scope);
|
2912
2963
|
}
|
2913
|
-
createCssClass(lines, ':root', genCssVariables(current.value));
|
2964
|
+
createCssClass(lines, ':root', genCssVariables(current.value), parsedOptions.scope);
|
2914
2965
|
for (const [themeName, theme] of Object.entries(computedThemes.value)) {
|
2915
|
-
createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme)]);
|
2966
|
+
createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme)], parsedOptions.scope);
|
2916
2967
|
}
|
2917
2968
|
const bgLines = [];
|
2918
2969
|
const fgLines = [];
|
2919
2970
|
const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));
|
2920
2971
|
for (const key of colors) {
|
2921
|
-
if (
|
2922
|
-
createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`]);
|
2972
|
+
if (key.startsWith('on-')) {
|
2973
|
+
createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`], parsedOptions.scope);
|
2923
2974
|
} else {
|
2924
|
-
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`]);
|
2925
|
-
createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`]);
|
2926
|
-
createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`]);
|
2975
|
+
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);
|
2976
|
+
createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`], parsedOptions.scope);
|
2977
|
+
createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`], parsedOptions.scope);
|
2927
2978
|
}
|
2928
2979
|
}
|
2929
2980
|
lines.push(...bgLines, ...fgLines);
|
2930
2981
|
return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
|
2931
2982
|
});
|
2932
|
-
function getHead() {
|
2933
|
-
return {
|
2934
|
-
style: [{
|
2935
|
-
textContent: styles.value,
|
2936
|
-
id: parsedOptions.stylesheetId,
|
2937
|
-
nonce: parsedOptions.cspNonce || false
|
2938
|
-
}]
|
2939
|
-
};
|
2940
|
-
}
|
2941
2983
|
function install(app) {
|
2942
2984
|
if (parsedOptions.isDisabled) return;
|
2943
2985
|
const head = app._context.provides.usehead;
|
2944
2986
|
if (head) {
|
2987
|
+
function getHead() {
|
2988
|
+
return {
|
2989
|
+
style: [{
|
2990
|
+
textContent: styles.value,
|
2991
|
+
id: parsedOptions.stylesheetId,
|
2992
|
+
nonce: parsedOptions.cspNonce || false
|
2993
|
+
}]
|
2994
|
+
};
|
2995
|
+
}
|
2945
2996
|
if (head.push) {
|
2946
2997
|
const entry = head.push(getHead);
|
2947
2998
|
if (IN_BROWSER) {
|
@@ -2958,7 +3009,6 @@ function createTheme(options) {
|
|
2958
3009
|
}
|
2959
3010
|
}
|
2960
3011
|
} else {
|
2961
|
-
let styleEl = IN_BROWSER ? document.getElementById(parsedOptions.stylesheetId) : null;
|
2962
3012
|
if (IN_BROWSER) {
|
2963
3013
|
watch(styles, updateStyles, {
|
2964
3014
|
immediate: true
|
@@ -2967,15 +3017,7 @@ function createTheme(options) {
|
|
2967
3017
|
updateStyles();
|
2968
3018
|
}
|
2969
3019
|
function updateStyles() {
|
2970
|
-
|
2971
|
-
const el = document.createElement('style');
|
2972
|
-
el.type = 'text/css';
|
2973
|
-
el.id = parsedOptions.stylesheetId;
|
2974
|
-
if (parsedOptions.cspNonce) el.setAttribute('nonce', parsedOptions.cspNonce);
|
2975
|
-
styleEl = el;
|
2976
|
-
document.head.appendChild(styleEl);
|
2977
|
-
}
|
2978
|
-
if (styleEl) styleEl.innerHTML = styles.value;
|
3020
|
+
upsertStyles(getOrCreateStyleElement(parsedOptions.stylesheetId, parsedOptions.cspNonce), styles.value);
|
2979
3021
|
}
|
2980
3022
|
}
|
2981
3023
|
}
|
@@ -2999,9 +3041,7 @@ function provideTheme(props) {
|
|
2999
3041
|
getCurrentInstance('provideTheme');
|
3000
3042
|
const theme = inject$1(ThemeSymbol, null);
|
3001
3043
|
if (!theme) throw new Error('Could not find Vuetify theme injection');
|
3002
|
-
const name = computed(() =>
|
3003
|
-
return props.theme ?? theme.name.value;
|
3004
|
-
});
|
3044
|
+
const name = computed(() => props.theme ?? theme.name.value);
|
3005
3045
|
const current = computed(() => theme.themes.value[name.value]);
|
3006
3046
|
const themeClasses = computed(() => theme.isDisabled ? undefined : `v-theme--${name.value}`);
|
3007
3047
|
const newTheme = {
|
@@ -3019,24 +3059,6 @@ function useTheme() {
|
|
3019
3059
|
if (!theme) throw new Error('Could not find Vuetify theme injection');
|
3020
3060
|
return theme;
|
3021
3061
|
}
|
3022
|
-
function genCssVariables(theme) {
|
3023
|
-
const lightOverlay = theme.dark ? 2 : 1;
|
3024
|
-
const darkOverlay = theme.dark ? 1 : 2;
|
3025
|
-
const variables = [];
|
3026
|
-
for (const [key, value] of Object.entries(theme.colors)) {
|
3027
|
-
const rgb = parseColor(value);
|
3028
|
-
variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
|
3029
|
-
if (!key.startsWith('on-')) {
|
3030
|
-
variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
|
3031
|
-
}
|
3032
|
-
}
|
3033
|
-
for (const [key, value] of Object.entries(theme.variables)) {
|
3034
|
-
const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;
|
3035
|
-
const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
|
3036
|
-
variables.push(`--v-${key}: ${rgb ?? value}`);
|
3037
|
-
}
|
3038
|
-
return variables;
|
3039
|
-
}
|
3040
3062
|
|
3041
3063
|
const makeVAppProps = propsFactory({
|
3042
3064
|
...makeComponentProps(),
|
@@ -12546,7 +12568,12 @@ function useVirtual(props, items) {
|
|
12546
12568
|
}
|
12547
12569
|
function calculateOffset(index) {
|
12548
12570
|
index = clamp(index, 0, items.value.length - 1);
|
12549
|
-
|
12571
|
+
const whole = Math.floor(index);
|
12572
|
+
const fraction = index % 1;
|
12573
|
+
const next = whole + 1;
|
12574
|
+
const wholeOffset = offsets[whole] || 0;
|
12575
|
+
const nextOffset = offsets[next] || wholeOffset;
|
12576
|
+
return wholeOffset + (nextOffset - wholeOffset) * fraction;
|
12550
12577
|
}
|
12551
12578
|
function calculateIndex(scrollTop) {
|
12552
12579
|
return binaryClosest(offsets, scrollTop);
|
@@ -29214,7 +29241,7 @@ function createVuetify$1() {
|
|
29214
29241
|
};
|
29215
29242
|
});
|
29216
29243
|
}
|
29217
|
-
const version$1 = "3.8.
|
29244
|
+
const version$1 = "3.8.1-dev.2025-04-07";
|
29218
29245
|
createVuetify$1.version = version$1;
|
29219
29246
|
|
29220
29247
|
// Vue's inject() can only be used in setup
|
@@ -29239,7 +29266,7 @@ const createVuetify = function () {
|
|
29239
29266
|
...options
|
29240
29267
|
});
|
29241
29268
|
};
|
29242
|
-
const version = "3.8.
|
29269
|
+
const version = "3.8.1-dev.2025-04-07";
|
29243
29270
|
createVuetify.version = version;
|
29244
29271
|
|
29245
29272
|
export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };
|