@vuetify/nightly 3.8.0-master.2025-04-06 → 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 -15
- package/dist/json/attributes.json +2903 -2903
- package/dist/json/importMap-labs.json +16 -16
- package/dist/json/importMap.json +146 -146
- package/dist/json/web-types.json +5605 -5605
- package/dist/vuetify-labs.cjs +113 -86
- package/dist/vuetify-labs.css +4774 -4774
- package/dist/vuetify-labs.d.ts +49 -49
- 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 +5308 -5308
- package/dist/vuetify.d.ts +49 -49
- 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 +49 -49
- package/lib/framework.js +1 -1
- package/lib/framework.js.map +1 -1
- package/package.json +2 -2
package/dist/vuetify.d.ts
CHANGED
@@ -82944,41 +82944,39 @@ 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
|
+
VAvatar: VAvatar
|
82951
|
+
VAlert: VAlert
|
82952
|
+
VAlertTitle: VAlertTitle
|
82953
|
+
VAutocomplete: VAutocomplete
|
82953
82954
|
VBadge: VBadge
|
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
|
+
VBottomSheet: VBottomSheet
|
82962
|
+
VBottomNavigation: VBottomNavigation
|
82963
|
+
VBtnGroup: VBtnGroup
|
82964
|
+
VBtn: VBtn
|
82965
|
+
VCheckbox: VCheckbox
|
82966
|
+
VCheckboxBtn: VCheckboxBtn
|
82966
82967
|
VCard: VCard
|
82967
82968
|
VCardActions: VCardActions
|
82968
82969
|
VCardItem: VCardItem
|
82969
82970
|
VCardSubtitle: VCardSubtitle
|
82970
82971
|
VCardText: VCardText
|
82971
82972
|
VCardTitle: VCardTitle
|
82972
|
-
|
82973
|
-
|
82973
|
+
VBtnToggle: VBtnToggle
|
82974
|
+
VChipGroup: VChipGroup
|
82974
82975
|
VCarousel: VCarousel
|
82975
82976
|
VCarouselItem: VCarouselItem
|
82976
|
-
VChip: VChip
|
82977
82977
|
VColorPicker: VColorPicker
|
82978
|
-
VChipGroup: VChipGroup
|
82979
82978
|
VCode: VCode
|
82980
82979
|
VCombobox: VCombobox
|
82981
|
-
VCounter: VCounter
|
82982
82980
|
VDataTable: VDataTable
|
82983
82981
|
VDataTableHeaders: VDataTableHeaders
|
82984
82982
|
VDataTableFooter: VDataTableFooter
|
@@ -82992,30 +82990,32 @@ declare module 'vue' {
|
|
82992
82990
|
VDatePickerMonth: VDatePickerMonth
|
82993
82991
|
VDatePickerMonths: VDatePickerMonths
|
82994
82992
|
VDatePickerYears: VDatePickerYears
|
82995
|
-
|
82996
|
-
|
82997
|
-
VFab: VFab
|
82998
|
-
VField: VField
|
82999
|
-
VFieldLabel: VFieldLabel
|
83000
|
-
VFileInput: VFileInput
|
82993
|
+
VCounter: VCounter
|
82994
|
+
VChip: VChip
|
83001
82995
|
VEmptyState: VEmptyState
|
82996
|
+
VDivider: VDivider
|
83002
82997
|
VExpansionPanels: VExpansionPanels
|
83003
82998
|
VExpansionPanel: VExpansionPanel
|
83004
82999
|
VExpansionPanelText: VExpansionPanelText
|
83005
83000
|
VExpansionPanelTitle: VExpansionPanelTitle
|
83001
|
+
VDialog: VDialog
|
83002
|
+
VFab: VFab
|
83003
|
+
VField: VField
|
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
|
-
VInfiniteScroll: VInfiniteScroll
|
83016
|
-
VInput: VInput
|
83017
83017
|
VKbd: VKbd
|
83018
|
-
|
83018
|
+
VImg: VImg
|
83019
83019
|
VList: VList
|
83020
83020
|
VListGroup: VListGroup
|
83021
83021
|
VListImg: VListImg
|
@@ -83026,49 +83026,49 @@ declare module 'vue' {
|
|
83026
83026
|
VListItemTitle: VListItemTitle
|
83027
83027
|
VListSubheader: VListSubheader
|
83028
83028
|
VMain: VMain
|
83029
|
-
VMenu: VMenu
|
83030
83029
|
VNavigationDrawer: VNavigationDrawer
|
83030
|
+
VMenu: VMenu
|
83031
83031
|
VOtpInput: VOtpInput
|
83032
|
+
VOverlay: VOverlay
|
83032
83033
|
VMessages: VMessages
|
83033
83034
|
VNumberInput: VNumberInput
|
83034
|
-
VProgressCircular: VProgressCircular
|
83035
83035
|
VPagination: VPagination
|
83036
|
-
VOverlay: VOverlay
|
83037
|
-
VRadioGroup: VRadioGroup
|
83038
83036
|
VProgressLinear: VProgressLinear
|
83037
|
+
VRadioGroup: VRadioGroup
|
83038
|
+
VProgressCircular: VProgressCircular
|
83039
|
+
VSelect: VSelect
|
83040
|
+
VRating: VRating
|
83039
83041
|
VSelectionControl: VSelectionControl
|
83040
83042
|
VSelectionControlGroup: VSelectionControlGroup
|
83041
|
-
VRating: VRating
|
83042
|
-
VSlider: VSlider
|
83043
|
-
VSheet: VSheet
|
83044
|
-
VSelect: VSelect
|
83045
83043
|
VSlideGroup: VSlideGroup
|
83046
83044
|
VSlideGroupItem: VSlideGroupItem
|
83045
|
+
VSnackbar: VSnackbar
|
83046
|
+
VSheet: VSheet
|
83047
83047
|
VSkeletonLoader: VSkeletonLoader
|
83048
|
-
|
83048
|
+
VSlider: VSlider
|
83049
83049
|
VSwitch: VSwitch
|
83050
|
-
|
83050
|
+
VTab: VTab
|
83051
|
+
VTabs: VTabs
|
83052
|
+
VTabsWindow: VTabsWindow
|
83053
|
+
VTabsWindowItem: VTabsWindowItem
|
83054
|
+
VSystemBar: VSystemBar
|
83051
83055
|
VStepper: VStepper
|
83052
83056
|
VStepperActions: VStepperActions
|
83053
83057
|
VStepperHeader: VStepperHeader
|
83054
83058
|
VStepperItem: VStepperItem
|
83055
83059
|
VStepperWindow: VStepperWindow
|
83056
83060
|
VStepperWindowItem: VStepperWindowItem
|
83061
|
+
VTextarea: VTextarea
|
83057
83062
|
VTable: VTable
|
83058
|
-
VTab: VTab
|
83059
|
-
VTabs: VTabs
|
83060
|
-
VTabsWindow: VTabsWindow
|
83061
|
-
VTabsWindowItem: VTabsWindowItem
|
83062
|
-
VSystemBar: VSystemBar
|
83063
83063
|
VToolbar: VToolbar
|
83064
83064
|
VToolbarTitle: VToolbarTitle
|
83065
83065
|
VToolbarItems: VToolbarItems
|
83066
|
-
|
83067
|
-
VTextarea: VTextarea
|
83066
|
+
VTextField: VTextField
|
83068
83067
|
VTimeline: VTimeline
|
83069
83068
|
VTimelineItem: VTimelineItem
|
83070
83069
|
VWindow: VWindow
|
83071
83070
|
VWindowItem: VWindowItem
|
83071
|
+
VTooltip: VTooltip
|
83072
83072
|
VConfirmEdit: VConfirmEdit
|
83073
83073
|
VDataIterator: VDataIterator
|
83074
83074
|
VDefaultsProvider: VDefaultsProvider
|
@@ -83078,11 +83078,11 @@ declare module 'vue' {
|
|
83078
83078
|
VCol: VCol
|
83079
83079
|
VRow: VRow
|
83080
83080
|
VSpacer: VSpacer
|
83081
|
-
VLazy: VLazy
|
83082
83081
|
VLayout: VLayout
|
83083
83082
|
VLayoutItem: VLayoutItem
|
83084
|
-
|
83083
|
+
VLazy: VLazy
|
83085
83084
|
VLocaleProvider: VLocaleProvider
|
83085
|
+
VNoSsr: VNoSsr
|
83086
83086
|
VParallax: VParallax
|
83087
83087
|
VRadio: VRadio
|
83088
83088
|
VRangeSlider: VRangeSlider
|
@@ -83091,6 +83091,7 @@ declare module 'vue' {
|
|
83091
83091
|
VSparkline: VSparkline
|
83092
83092
|
VSpeedDial: VSpeedDial
|
83093
83093
|
VThemeProvider: VThemeProvider
|
83094
|
+
VValidation: VValidation
|
83094
83095
|
VVirtualScroll: VVirtualScroll
|
83095
83096
|
VFabTransition: VFabTransition
|
83096
83097
|
VDialogBottomTransition: VDialogBottomTransition
|
@@ -83108,7 +83109,8 @@ declare module 'vue' {
|
|
83108
83109
|
VExpandTransition: VExpandTransition
|
83109
83110
|
VExpandXTransition: VExpandXTransition
|
83110
83111
|
VDialogTransition: VDialogTransition
|
83111
|
-
|
83112
|
+
VFileUpload: VFileUpload
|
83113
|
+
VFileUploadItem: VFileUploadItem
|
83112
83114
|
VStepperVertical: VStepperVertical
|
83113
83115
|
VStepperVerticalItem: VStepperVerticalItem
|
83114
83116
|
VStepperVerticalActions: VStepperVerticalActions
|
@@ -83118,14 +83120,12 @@ declare module 'vue' {
|
|
83118
83120
|
VCalendarInterval: VCalendarInterval
|
83119
83121
|
VCalendarIntervalEvent: VCalendarIntervalEvent
|
83120
83122
|
VCalendarMonthDay: VCalendarMonthDay
|
83121
|
-
VFileUpload: VFileUpload
|
83122
|
-
VFileUploadItem: VFileUploadItem
|
83123
|
-
VTimePicker: VTimePicker
|
83124
|
-
VTimePickerClock: VTimePickerClock
|
83125
|
-
VTimePickerControls: VTimePickerControls
|
83126
83123
|
VIconBtn: VIconBtn
|
83127
83124
|
VPicker: VPicker
|
83128
83125
|
VPickerTitle: VPickerTitle
|
83126
|
+
VTimePicker: VTimePicker
|
83127
|
+
VTimePickerClock: VTimePickerClock
|
83128
|
+
VTimePickerControls: VTimePickerControls
|
83129
83129
|
VTreeview: VTreeview
|
83130
83130
|
VTreeviewItem: VTreeviewItem
|
83131
83131
|
VTreeviewGroup: VTreeviewGroup
|
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 };
|