@vuetify/nightly 3.8.0-master.2025-04-06 → 3.8.1-master.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 +3 -18
- package/dist/json/attributes.json +375 -375
- package/dist/json/importMap-labs.json +30 -30
- package/dist/json/importMap.json +152 -152
- package/dist/json/web-types.json +820 -820
- package/dist/vuetify-labs.cjs +107 -85
- package/dist/vuetify-labs.css +5452 -5452
- package/dist/vuetify-labs.d.ts +57 -57
- package/dist/vuetify-labs.esm.js +107 -85
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +107 -85
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +107 -85
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3868 -3868
- package/dist/vuetify.d.ts +57 -57
- package/dist/vuetify.esm.js +107 -85
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +107 -85
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +791 -790
- 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/entry-bundler.js +1 -1
- package/lib/framework.d.ts +57 -57
- package/lib/framework.js +1 -1
- package/package.json +2 -2
package/dist/vuetify.d.ts
CHANGED
@@ -82944,41 +82944,38 @@ declare module 'vue' {
|
|
82944
82944
|
}
|
82945
82945
|
export interface GlobalComponents {
|
82946
82946
|
VApp: VApp
|
82947
|
-
VAlert: VAlert
|
82948
|
-
VAlertTitle: VAlertTitle
|
82949
|
-
VAutocomplete: VAutocomplete
|
82950
82947
|
VAppBar: VAppBar
|
82951
82948
|
VAppBarNavIcon: VAppBarNavIcon
|
82952
82949
|
VAppBarTitle: VAppBarTitle
|
82950
|
+
VAlert: VAlert
|
82951
|
+
VAlertTitle: VAlertTitle
|
82953
82952
|
VBadge: VBadge
|
82953
|
+
VAvatar: VAvatar
|
82954
82954
|
VBottomSheet: VBottomSheet
|
82955
|
-
VBottomNavigation: VBottomNavigation
|
82956
82955
|
VBanner: VBanner
|
82957
82956
|
VBannerActions: VBannerActions
|
82958
82957
|
VBannerText: VBannerText
|
82959
|
-
VAvatar: VAvatar
|
82960
|
-
VBtnGroup: VBtnGroup
|
82961
|
-
VBtnToggle: VBtnToggle
|
82962
|
-
VBtn: VBtn
|
82963
82958
|
VBreadcrumbs: VBreadcrumbs
|
82964
82959
|
VBreadcrumbsItem: VBreadcrumbsItem
|
82965
82960
|
VBreadcrumbsDivider: VBreadcrumbsDivider
|
82961
|
+
VBottomNavigation: VBottomNavigation
|
82962
|
+
VBtnToggle: VBtnToggle
|
82963
|
+
VBtn: VBtn
|
82964
|
+
VAutocomplete: VAutocomplete
|
82965
|
+
VCarousel: VCarousel
|
82966
|
+
VCarouselItem: VCarouselItem
|
82967
|
+
VBtnGroup: VBtnGroup
|
82968
|
+
VCheckbox: VCheckbox
|
82969
|
+
VCheckboxBtn: VCheckboxBtn
|
82970
|
+
VCode: VCode
|
82971
|
+
VCombobox: VCombobox
|
82966
82972
|
VCard: VCard
|
82967
82973
|
VCardActions: VCardActions
|
82968
82974
|
VCardItem: VCardItem
|
82969
82975
|
VCardSubtitle: VCardSubtitle
|
82970
82976
|
VCardText: VCardText
|
82971
82977
|
VCardTitle: VCardTitle
|
82972
|
-
VCheckbox: VCheckbox
|
82973
|
-
VCheckboxBtn: VCheckboxBtn
|
82974
|
-
VCarousel: VCarousel
|
82975
|
-
VCarouselItem: VCarouselItem
|
82976
|
-
VChip: VChip
|
82977
|
-
VColorPicker: VColorPicker
|
82978
82978
|
VChipGroup: VChipGroup
|
82979
|
-
VCode: VCode
|
82980
|
-
VCombobox: VCombobox
|
82981
|
-
VCounter: VCounter
|
82982
82979
|
VDataTable: VDataTable
|
82983
82980
|
VDataTableHeaders: VDataTableHeaders
|
82984
82981
|
VDataTableFooter: VDataTableFooter
|
@@ -82986,35 +82983,37 @@ declare module 'vue' {
|
|
82986
82983
|
VDataTableRow: VDataTableRow
|
82987
82984
|
VDataTableVirtual: VDataTableVirtual
|
82988
82985
|
VDataTableServer: VDataTableServer
|
82986
|
+
VColorPicker: VColorPicker
|
82987
|
+
VCounter: VCounter
|
82988
|
+
VChip: VChip
|
82989
|
+
VDivider: VDivider
|
82989
82990
|
VDatePicker: VDatePicker
|
82990
82991
|
VDatePickerControls: VDatePickerControls
|
82991
82992
|
VDatePickerHeader: VDatePickerHeader
|
82992
82993
|
VDatePickerMonth: VDatePickerMonth
|
82993
82994
|
VDatePickerMonths: VDatePickerMonths
|
82994
82995
|
VDatePickerYears: VDatePickerYears
|
82995
|
-
VDivider: VDivider
|
82996
|
-
VDialog: VDialog
|
82997
82996
|
VFab: VFab
|
82997
|
+
VDialog: VDialog
|
82998
|
+
VEmptyState: VEmptyState
|
82999
|
+
VFooter: VFooter
|
82998
83000
|
VField: VField
|
82999
83001
|
VFieldLabel: VFieldLabel
|
83000
|
-
VFileInput: VFileInput
|
83001
|
-
VEmptyState: VEmptyState
|
83002
83002
|
VExpansionPanels: VExpansionPanels
|
83003
83003
|
VExpansionPanel: VExpansionPanel
|
83004
83004
|
VExpansionPanelText: VExpansionPanelText
|
83005
83005
|
VExpansionPanelTitle: VExpansionPanelTitle
|
83006
|
-
|
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
|
VImg: VImg
|
83013
|
+
VInput: VInput
|
83013
83014
|
VItemGroup: VItemGroup
|
83014
83015
|
VItem: VItem
|
83015
83016
|
VInfiniteScroll: VInfiniteScroll
|
83016
|
-
VInput: VInput
|
83017
|
-
VKbd: VKbd
|
83018
83017
|
VLabel: VLabel
|
83019
83018
|
VList: VList
|
83020
83019
|
VListGroup: VListGroup
|
@@ -83025,73 +83024,75 @@ declare module 'vue' {
|
|
83025
83024
|
VListItemSubtitle: VListItemSubtitle
|
83026
83025
|
VListItemTitle: VListItemTitle
|
83027
83026
|
VListSubheader: VListSubheader
|
83027
|
+
VKbd: VKbd
|
83028
83028
|
VMain: VMain
|
83029
|
-
VMenu: VMenu
|
83030
|
-
VNavigationDrawer: VNavigationDrawer
|
83031
|
-
VOtpInput: VOtpInput
|
83032
83029
|
VMessages: VMessages
|
83030
|
+
VNavigationDrawer: VNavigationDrawer
|
83031
|
+
VMenu: VMenu
|
83033
83032
|
VNumberInput: VNumberInput
|
83034
|
-
|
83035
|
-
VPagination: VPagination
|
83033
|
+
VOtpInput: VOtpInput
|
83036
83034
|
VOverlay: VOverlay
|
83037
|
-
|
83035
|
+
VPagination: VPagination
|
83038
83036
|
VProgressLinear: VProgressLinear
|
83039
|
-
VSelectionControl: VSelectionControl
|
83040
|
-
VSelectionControlGroup: VSelectionControlGroup
|
83041
83037
|
VRating: VRating
|
83042
|
-
|
83043
|
-
|
83038
|
+
VRadioGroup: VRadioGroup
|
83039
|
+
VProgressCircular: VProgressCircular
|
83044
83040
|
VSelect: VSelect
|
83041
|
+
VSelectionControl: VSelectionControl
|
83042
|
+
VSkeletonLoader: VSkeletonLoader
|
83043
|
+
VSelectionControlGroup: VSelectionControlGroup
|
83045
83044
|
VSlideGroup: VSlideGroup
|
83046
83045
|
VSlideGroupItem: VSlideGroupItem
|
83047
|
-
|
83048
|
-
VTextField: VTextField
|
83049
|
-
VSwitch: VSwitch
|
83050
|
-
VSnackbar: VSnackbar
|
83046
|
+
VSheet: VSheet
|
83051
83047
|
VStepper: VStepper
|
83052
83048
|
VStepperActions: VStepperActions
|
83053
83049
|
VStepperHeader: VStepperHeader
|
83054
83050
|
VStepperItem: VStepperItem
|
83055
83051
|
VStepperWindow: VStepperWindow
|
83056
83052
|
VStepperWindowItem: VStepperWindowItem
|
83057
|
-
|
83053
|
+
VSnackbar: VSnackbar
|
83054
|
+
VSlider: VSlider
|
83055
|
+
VTextarea: VTextarea
|
83058
83056
|
VTab: VTab
|
83059
83057
|
VTabs: VTabs
|
83060
83058
|
VTabsWindow: VTabsWindow
|
83061
83059
|
VTabsWindowItem: VTabsWindowItem
|
83060
|
+
VSwitch: VSwitch
|
83062
83061
|
VSystemBar: VSystemBar
|
83062
|
+
VTextField: VTextField
|
83063
|
+
VTable: VTable
|
83064
|
+
VTimeline: VTimeline
|
83065
|
+
VTimelineItem: VTimelineItem
|
83063
83066
|
VToolbar: VToolbar
|
83064
83067
|
VToolbarTitle: VToolbarTitle
|
83065
83068
|
VToolbarItems: VToolbarItems
|
83066
83069
|
VTooltip: VTooltip
|
83067
|
-
VTextarea: VTextarea
|
83068
|
-
VTimeline: VTimeline
|
83069
|
-
VTimelineItem: VTimelineItem
|
83070
83070
|
VWindow: VWindow
|
83071
83071
|
VWindowItem: VWindowItem
|
83072
83072
|
VConfirmEdit: VConfirmEdit
|
83073
83073
|
VDataIterator: VDataIterator
|
83074
83074
|
VDefaultsProvider: VDefaultsProvider
|
83075
83075
|
VForm: VForm
|
83076
|
-
VHover: VHover
|
83077
83076
|
VContainer: VContainer
|
83078
83077
|
VCol: VCol
|
83079
83078
|
VRow: VRow
|
83080
83079
|
VSpacer: VSpacer
|
83081
|
-
|
83080
|
+
VHover: VHover
|
83082
83081
|
VLayout: VLayout
|
83083
83082
|
VLayoutItem: VLayoutItem
|
83084
|
-
|
83083
|
+
VLazy: VLazy
|
83085
83084
|
VLocaleProvider: VLocaleProvider
|
83085
|
+
VNoSsr: VNoSsr
|
83086
83086
|
VParallax: VParallax
|
83087
|
-
VRadio: VRadio
|
83088
83087
|
VRangeSlider: VRangeSlider
|
83088
|
+
VRadio: VRadio
|
83089
83089
|
VResponsive: VResponsive
|
83090
83090
|
VSnackbarQueue: VSnackbarQueue
|
83091
83091
|
VSparkline: VSparkline
|
83092
83092
|
VSpeedDial: VSpeedDial
|
83093
83093
|
VThemeProvider: VThemeProvider
|
83094
83094
|
VVirtualScroll: VVirtualScroll
|
83095
|
+
VValidation: VValidation
|
83095
83096
|
VFabTransition: VFabTransition
|
83096
83097
|
VDialogBottomTransition: VDialogBottomTransition
|
83097
83098
|
VDialogTopTransition: VDialogTopTransition
|
@@ -83108,27 +83109,26 @@ declare module 'vue' {
|
|
83108
83109
|
VExpandTransition: VExpandTransition
|
83109
83110
|
VExpandXTransition: VExpandXTransition
|
83110
83111
|
VDialogTransition: VDialogTransition
|
83111
|
-
|
83112
|
-
|
83113
|
-
VStepperVerticalItem: VStepperVerticalItem
|
83114
|
-
VStepperVerticalActions: VStepperVerticalActions
|
83112
|
+
VFileUpload: VFileUpload
|
83113
|
+
VFileUploadItem: VFileUploadItem
|
83115
83114
|
VCalendar: VCalendar
|
83116
83115
|
VCalendarDay: VCalendarDay
|
83117
83116
|
VCalendarHeader: VCalendarHeader
|
83118
83117
|
VCalendarInterval: VCalendarInterval
|
83119
83118
|
VCalendarIntervalEvent: VCalendarIntervalEvent
|
83120
83119
|
VCalendarMonthDay: VCalendarMonthDay
|
83121
|
-
|
83122
|
-
|
83120
|
+
VTreeview: VTreeview
|
83121
|
+
VTreeviewItem: VTreeviewItem
|
83122
|
+
VTreeviewGroup: VTreeviewGroup
|
83123
|
+
VPicker: VPicker
|
83124
|
+
VPickerTitle: VPickerTitle
|
83125
|
+
VStepperVertical: VStepperVertical
|
83126
|
+
VStepperVerticalItem: VStepperVerticalItem
|
83127
|
+
VStepperVerticalActions: VStepperVerticalActions
|
83123
83128
|
VTimePicker: VTimePicker
|
83124
83129
|
VTimePickerClock: VTimePickerClock
|
83125
83130
|
VTimePickerControls: VTimePickerControls
|
83126
83131
|
VIconBtn: VIconBtn
|
83127
|
-
VPicker: VPicker
|
83128
|
-
VPickerTitle: VPickerTitle
|
83129
|
-
VTreeview: VTreeview
|
83130
|
-
VTreeviewItem: VTreeviewItem
|
83131
|
-
VTreeviewGroup: VTreeviewGroup
|
83132
83132
|
VDateInput: VDateInput
|
83133
83133
|
VPullToRefresh: VPullToRefresh
|
83134
83134
|
}
|
package/dist/vuetify.esm.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.8.
|
2
|
+
* Vuetify v3.8.1-master.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(),
|
@@ -29214,7 +29236,7 @@ function createVuetify$1() {
|
|
29214
29236
|
};
|
29215
29237
|
});
|
29216
29238
|
}
|
29217
|
-
const version$1 = "3.8.
|
29239
|
+
const version$1 = "3.8.1-master.2025-04-07";
|
29218
29240
|
createVuetify$1.version = version$1;
|
29219
29241
|
|
29220
29242
|
// Vue's inject() can only be used in setup
|
@@ -29239,7 +29261,7 @@ const createVuetify = function () {
|
|
29239
29261
|
...options
|
29240
29262
|
});
|
29241
29263
|
};
|
29242
|
-
const version = "3.8.
|
29264
|
+
const version = "3.8.1-master.2025-04-07";
|
29243
29265
|
createVuetify.version = version;
|
29244
29266
|
|
29245
29267
|
export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };
|