@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-labs.d.ts
CHANGED
@@ -96781,41 +96781,39 @@ declare module 'vue' {
|
|
96781
96781
|
}
|
96782
96782
|
export interface GlobalComponents {
|
96783
96783
|
VApp: VApp
|
96784
|
-
VAlert: VAlert
|
96785
|
-
VAlertTitle: VAlertTitle
|
96786
|
-
VAutocomplete: VAutocomplete
|
96787
96784
|
VAppBar: VAppBar
|
96788
96785
|
VAppBarNavIcon: VAppBarNavIcon
|
96789
96786
|
VAppBarTitle: VAppBarTitle
|
96787
|
+
VAvatar: VAvatar
|
96788
|
+
VAlert: VAlert
|
96789
|
+
VAlertTitle: VAlertTitle
|
96790
|
+
VAutocomplete: VAutocomplete
|
96790
96791
|
VBadge: VBadge
|
96791
|
-
VBottomSheet: VBottomSheet
|
96792
|
-
VBottomNavigation: VBottomNavigation
|
96793
96792
|
VBanner: VBanner
|
96794
96793
|
VBannerActions: VBannerActions
|
96795
96794
|
VBannerText: VBannerText
|
96796
|
-
VAvatar: VAvatar
|
96797
|
-
VBtnGroup: VBtnGroup
|
96798
|
-
VBtnToggle: VBtnToggle
|
96799
|
-
VBtn: VBtn
|
96800
96795
|
VBreadcrumbs: VBreadcrumbs
|
96801
96796
|
VBreadcrumbsItem: VBreadcrumbsItem
|
96802
96797
|
VBreadcrumbsDivider: VBreadcrumbsDivider
|
96798
|
+
VBottomSheet: VBottomSheet
|
96799
|
+
VBottomNavigation: VBottomNavigation
|
96800
|
+
VBtnGroup: VBtnGroup
|
96801
|
+
VBtn: VBtn
|
96802
|
+
VCheckbox: VCheckbox
|
96803
|
+
VCheckboxBtn: VCheckboxBtn
|
96803
96804
|
VCard: VCard
|
96804
96805
|
VCardActions: VCardActions
|
96805
96806
|
VCardItem: VCardItem
|
96806
96807
|
VCardSubtitle: VCardSubtitle
|
96807
96808
|
VCardText: VCardText
|
96808
96809
|
VCardTitle: VCardTitle
|
96809
|
-
|
96810
|
-
|
96810
|
+
VBtnToggle: VBtnToggle
|
96811
|
+
VChipGroup: VChipGroup
|
96811
96812
|
VCarousel: VCarousel
|
96812
96813
|
VCarouselItem: VCarouselItem
|
96813
|
-
VChip: VChip
|
96814
96814
|
VColorPicker: VColorPicker
|
96815
|
-
VChipGroup: VChipGroup
|
96816
96815
|
VCode: VCode
|
96817
96816
|
VCombobox: VCombobox
|
96818
|
-
VCounter: VCounter
|
96819
96817
|
VDataTable: VDataTable
|
96820
96818
|
VDataTableHeaders: VDataTableHeaders
|
96821
96819
|
VDataTableFooter: VDataTableFooter
|
@@ -96829,30 +96827,32 @@ declare module 'vue' {
|
|
96829
96827
|
VDatePickerMonth: VDatePickerMonth
|
96830
96828
|
VDatePickerMonths: VDatePickerMonths
|
96831
96829
|
VDatePickerYears: VDatePickerYears
|
96832
|
-
|
96833
|
-
|
96834
|
-
VFab: VFab
|
96835
|
-
VField: VField
|
96836
|
-
VFieldLabel: VFieldLabel
|
96837
|
-
VFileInput: VFileInput
|
96830
|
+
VCounter: VCounter
|
96831
|
+
VChip: VChip
|
96838
96832
|
VEmptyState: VEmptyState
|
96833
|
+
VDivider: VDivider
|
96839
96834
|
VExpansionPanels: VExpansionPanels
|
96840
96835
|
VExpansionPanel: VExpansionPanel
|
96841
96836
|
VExpansionPanelText: VExpansionPanelText
|
96842
96837
|
VExpansionPanelTitle: VExpansionPanelTitle
|
96838
|
+
VDialog: VDialog
|
96839
|
+
VFab: VFab
|
96840
|
+
VField: VField
|
96841
|
+
VFieldLabel: VFieldLabel
|
96843
96842
|
VFooter: VFooter
|
96843
|
+
VFileInput: VFileInput
|
96844
96844
|
VIcon: VIcon
|
96845
96845
|
VComponentIcon: VComponentIcon
|
96846
96846
|
VSvgIcon: VSvgIcon
|
96847
96847
|
VLigatureIcon: VLigatureIcon
|
96848
96848
|
VClassIcon: VClassIcon
|
96849
|
-
|
96849
|
+
VInput: VInput
|
96850
|
+
VLabel: VLabel
|
96851
|
+
VInfiniteScroll: VInfiniteScroll
|
96850
96852
|
VItemGroup: VItemGroup
|
96851
96853
|
VItem: VItem
|
96852
|
-
VInfiniteScroll: VInfiniteScroll
|
96853
|
-
VInput: VInput
|
96854
96854
|
VKbd: VKbd
|
96855
|
-
|
96855
|
+
VImg: VImg
|
96856
96856
|
VList: VList
|
96857
96857
|
VListGroup: VListGroup
|
96858
96858
|
VListImg: VListImg
|
@@ -96863,49 +96863,49 @@ declare module 'vue' {
|
|
96863
96863
|
VListItemTitle: VListItemTitle
|
96864
96864
|
VListSubheader: VListSubheader
|
96865
96865
|
VMain: VMain
|
96866
|
-
VMenu: VMenu
|
96867
96866
|
VNavigationDrawer: VNavigationDrawer
|
96867
|
+
VMenu: VMenu
|
96868
96868
|
VOtpInput: VOtpInput
|
96869
|
+
VOverlay: VOverlay
|
96869
96870
|
VMessages: VMessages
|
96870
96871
|
VNumberInput: VNumberInput
|
96871
|
-
VProgressCircular: VProgressCircular
|
96872
96872
|
VPagination: VPagination
|
96873
|
-
VOverlay: VOverlay
|
96874
|
-
VRadioGroup: VRadioGroup
|
96875
96873
|
VProgressLinear: VProgressLinear
|
96874
|
+
VRadioGroup: VRadioGroup
|
96875
|
+
VProgressCircular: VProgressCircular
|
96876
|
+
VSelect: VSelect
|
96877
|
+
VRating: VRating
|
96876
96878
|
VSelectionControl: VSelectionControl
|
96877
96879
|
VSelectionControlGroup: VSelectionControlGroup
|
96878
|
-
VRating: VRating
|
96879
|
-
VSlider: VSlider
|
96880
|
-
VSheet: VSheet
|
96881
|
-
VSelect: VSelect
|
96882
96880
|
VSlideGroup: VSlideGroup
|
96883
96881
|
VSlideGroupItem: VSlideGroupItem
|
96882
|
+
VSnackbar: VSnackbar
|
96883
|
+
VSheet: VSheet
|
96884
96884
|
VSkeletonLoader: VSkeletonLoader
|
96885
|
-
|
96885
|
+
VSlider: VSlider
|
96886
96886
|
VSwitch: VSwitch
|
96887
|
-
|
96887
|
+
VTab: VTab
|
96888
|
+
VTabs: VTabs
|
96889
|
+
VTabsWindow: VTabsWindow
|
96890
|
+
VTabsWindowItem: VTabsWindowItem
|
96891
|
+
VSystemBar: VSystemBar
|
96888
96892
|
VStepper: VStepper
|
96889
96893
|
VStepperActions: VStepperActions
|
96890
96894
|
VStepperHeader: VStepperHeader
|
96891
96895
|
VStepperItem: VStepperItem
|
96892
96896
|
VStepperWindow: VStepperWindow
|
96893
96897
|
VStepperWindowItem: VStepperWindowItem
|
96898
|
+
VTextarea: VTextarea
|
96894
96899
|
VTable: VTable
|
96895
|
-
VTab: VTab
|
96896
|
-
VTabs: VTabs
|
96897
|
-
VTabsWindow: VTabsWindow
|
96898
|
-
VTabsWindowItem: VTabsWindowItem
|
96899
|
-
VSystemBar: VSystemBar
|
96900
96900
|
VToolbar: VToolbar
|
96901
96901
|
VToolbarTitle: VToolbarTitle
|
96902
96902
|
VToolbarItems: VToolbarItems
|
96903
|
-
|
96904
|
-
VTextarea: VTextarea
|
96903
|
+
VTextField: VTextField
|
96905
96904
|
VTimeline: VTimeline
|
96906
96905
|
VTimelineItem: VTimelineItem
|
96907
96906
|
VWindow: VWindow
|
96908
96907
|
VWindowItem: VWindowItem
|
96908
|
+
VTooltip: VTooltip
|
96909
96909
|
VConfirmEdit: VConfirmEdit
|
96910
96910
|
VDataIterator: VDataIterator
|
96911
96911
|
VDefaultsProvider: VDefaultsProvider
|
@@ -96915,11 +96915,11 @@ declare module 'vue' {
|
|
96915
96915
|
VCol: VCol
|
96916
96916
|
VRow: VRow
|
96917
96917
|
VSpacer: VSpacer
|
96918
|
-
VLazy: VLazy
|
96919
96918
|
VLayout: VLayout
|
96920
96919
|
VLayoutItem: VLayoutItem
|
96921
|
-
|
96920
|
+
VLazy: VLazy
|
96922
96921
|
VLocaleProvider: VLocaleProvider
|
96922
|
+
VNoSsr: VNoSsr
|
96923
96923
|
VParallax: VParallax
|
96924
96924
|
VRadio: VRadio
|
96925
96925
|
VRangeSlider: VRangeSlider
|
@@ -96928,6 +96928,7 @@ declare module 'vue' {
|
|
96928
96928
|
VSparkline: VSparkline
|
96929
96929
|
VSpeedDial: VSpeedDial
|
96930
96930
|
VThemeProvider: VThemeProvider
|
96931
|
+
VValidation: VValidation
|
96931
96932
|
VVirtualScroll: VVirtualScroll
|
96932
96933
|
VFabTransition: VFabTransition
|
96933
96934
|
VDialogBottomTransition: VDialogBottomTransition
|
@@ -96945,7 +96946,8 @@ declare module 'vue' {
|
|
96945
96946
|
VExpandTransition: VExpandTransition
|
96946
96947
|
VExpandXTransition: VExpandXTransition
|
96947
96948
|
VDialogTransition: VDialogTransition
|
96948
|
-
|
96949
|
+
VFileUpload: VFileUpload
|
96950
|
+
VFileUploadItem: VFileUploadItem
|
96949
96951
|
VStepperVertical: VStepperVertical
|
96950
96952
|
VStepperVerticalItem: VStepperVerticalItem
|
96951
96953
|
VStepperVerticalActions: VStepperVerticalActions
|
@@ -96955,14 +96957,12 @@ declare module 'vue' {
|
|
96955
96957
|
VCalendarInterval: VCalendarInterval
|
96956
96958
|
VCalendarIntervalEvent: VCalendarIntervalEvent
|
96957
96959
|
VCalendarMonthDay: VCalendarMonthDay
|
96958
|
-
VFileUpload: VFileUpload
|
96959
|
-
VFileUploadItem: VFileUploadItem
|
96960
|
-
VTimePicker: VTimePicker
|
96961
|
-
VTimePickerClock: VTimePickerClock
|
96962
|
-
VTimePickerControls: VTimePickerControls
|
96963
96960
|
VIconBtn: VIconBtn
|
96964
96961
|
VPicker: VPicker
|
96965
96962
|
VPickerTitle: VPickerTitle
|
96963
|
+
VTimePicker: VTimePicker
|
96964
|
+
VTimePickerClock: VTimePickerClock
|
96965
|
+
VTimePickerControls: VTimePickerControls
|
96966
96966
|
VTreeview: VTreeview
|
96967
96967
|
VTreeviewItem: VTreeviewItem
|
96968
96968
|
VTreeviewGroup: VTreeviewGroup
|
package/dist/vuetify-labs.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
|
*/
|
@@ -2382,93 +2382,144 @@ function parseThemeOptions() {
|
|
2382
2382
|
themes
|
2383
2383
|
});
|
2384
2384
|
}
|
2385
|
+
function createCssClass(lines, selector, content, scope) {
|
2386
|
+
lines.push(`${getScopedSelector(selector, scope)} {\n`, ...content.map(line => ` ${line};\n`), '}\n');
|
2387
|
+
}
|
2388
|
+
function genCssVariables(theme) {
|
2389
|
+
const lightOverlay = theme.dark ? 2 : 1;
|
2390
|
+
const darkOverlay = theme.dark ? 1 : 2;
|
2391
|
+
const variables = [];
|
2392
|
+
for (const [key, value] of Object.entries(theme.colors)) {
|
2393
|
+
const rgb = parseColor(value);
|
2394
|
+
variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
|
2395
|
+
if (!key.startsWith('on-')) {
|
2396
|
+
variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
|
2397
|
+
}
|
2398
|
+
}
|
2399
|
+
for (const [key, value] of Object.entries(theme.variables)) {
|
2400
|
+
const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;
|
2401
|
+
const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
|
2402
|
+
variables.push(`--v-${key}: ${rgb ?? value}`);
|
2403
|
+
}
|
2404
|
+
return variables;
|
2405
|
+
}
|
2406
|
+
function genVariation(name, color, variations) {
|
2407
|
+
const object = {};
|
2408
|
+
if (variations) {
|
2409
|
+
for (const variation of ['lighten', 'darken']) {
|
2410
|
+
const fn = variation === 'lighten' ? lighten : darken;
|
2411
|
+
for (const amount of createRange(variations[variation], 1)) {
|
2412
|
+
object[`${name}-${variation}-${amount}`] = RGBtoHex(fn(parseColor(color), amount));
|
2413
|
+
}
|
2414
|
+
}
|
2415
|
+
}
|
2416
|
+
return object;
|
2417
|
+
}
|
2418
|
+
function genVariations(colors, variations) {
|
2419
|
+
if (!variations) return {};
|
2420
|
+
let variationColors = {};
|
2421
|
+
for (const name of variations.colors) {
|
2422
|
+
const color = colors[name];
|
2423
|
+
if (!color) continue;
|
2424
|
+
variationColors = {
|
2425
|
+
...variationColors,
|
2426
|
+
...genVariation(name, color, variations)
|
2427
|
+
};
|
2428
|
+
}
|
2429
|
+
return variationColors;
|
2430
|
+
}
|
2431
|
+
function genOnColors(colors) {
|
2432
|
+
const onColors = {};
|
2433
|
+
for (const color of Object.keys(colors)) {
|
2434
|
+
if (color.startsWith('on-') || colors[`on-${color}`]) continue;
|
2435
|
+
const onColor = `on-${color}`;
|
2436
|
+
const colorVal = parseColor(colors[color]);
|
2437
|
+
onColors[onColor] = getForeground(colorVal);
|
2438
|
+
}
|
2439
|
+
return onColors;
|
2440
|
+
}
|
2441
|
+
function getScopedSelector(selector, scope) {
|
2442
|
+
if (!scope) return selector;
|
2443
|
+
const scopeSelector = `:where(${scope})`;
|
2444
|
+
return selector === ':root' ? scopeSelector : `${scopeSelector} ${selector}`;
|
2445
|
+
}
|
2446
|
+
function upsertStyles(styleEl, styles) {
|
2447
|
+
if (!styleEl) return;
|
2448
|
+
styleEl.innerHTML = styles;
|
2449
|
+
}
|
2450
|
+
function getOrCreateStyleElement(id, cspNonce) {
|
2451
|
+
if (!IN_BROWSER) return null;
|
2452
|
+
let style = document.getElementById(id);
|
2453
|
+
if (!style) {
|
2454
|
+
style = document.createElement('style');
|
2455
|
+
style.id = id;
|
2456
|
+
style.type = 'text/css';
|
2457
|
+
if (cspNonce) style.setAttribute('nonce', cspNonce);
|
2458
|
+
document.head.appendChild(style);
|
2459
|
+
}
|
2460
|
+
return style;
|
2461
|
+
}
|
2385
2462
|
|
2386
2463
|
// Composables
|
2387
2464
|
function createTheme(options) {
|
2388
2465
|
const parsedOptions = parseThemeOptions(options);
|
2389
|
-
const name =
|
2466
|
+
const name = shallowRef(parsedOptions.defaultTheme);
|
2390
2467
|
const themes = ref(parsedOptions.themes);
|
2391
2468
|
const computedThemes = computed(() => {
|
2392
2469
|
const acc = {};
|
2393
2470
|
for (const [name, original] of Object.entries(themes.value)) {
|
2394
|
-
const
|
2471
|
+
const colors = {
|
2472
|
+
...original.colors,
|
2473
|
+
...genVariations(original.colors, parsedOptions.variations)
|
2474
|
+
};
|
2475
|
+
acc[name] = {
|
2395
2476
|
...original,
|
2396
2477
|
colors: {
|
2397
|
-
...
|
2478
|
+
...colors,
|
2479
|
+
...genOnColors(colors)
|
2398
2480
|
}
|
2399
2481
|
};
|
2400
|
-
if (parsedOptions.variations) {
|
2401
|
-
for (const name of parsedOptions.variations.colors) {
|
2402
|
-
const color = theme.colors[name];
|
2403
|
-
if (!color) continue;
|
2404
|
-
for (const variation of ['lighten', 'darken']) {
|
2405
|
-
const fn = variation === 'lighten' ? lighten : darken;
|
2406
|
-
for (const amount of createRange(parsedOptions.variations[variation], 1)) {
|
2407
|
-
theme.colors[`${name}-${variation}-${amount}`] = RGBtoHex(fn(parseColor(color), amount));
|
2408
|
-
}
|
2409
|
-
}
|
2410
|
-
}
|
2411
|
-
}
|
2412
|
-
for (const color of Object.keys(theme.colors)) {
|
2413
|
-
if (/^on-[a-z]/.test(color) || theme.colors[`on-${color}`]) continue;
|
2414
|
-
const onColor = `on-${color}`;
|
2415
|
-
const colorVal = parseColor(theme.colors[color]);
|
2416
|
-
theme.colors[onColor] = getForeground(colorVal);
|
2417
|
-
}
|
2418
2482
|
}
|
2419
2483
|
return acc;
|
2420
2484
|
});
|
2421
2485
|
const current = computed(() => computedThemes.value[name.value]);
|
2422
|
-
function createCssClass(lines, selector, content) {
|
2423
|
-
lines.push(`${getScopedSelector(selector)} {\n`, ...content.map(line => ` ${line};\n`), '}\n');
|
2424
|
-
}
|
2425
|
-
function getScopedSelector(selector) {
|
2426
|
-
if (!parsedOptions.scope) {
|
2427
|
-
return selector;
|
2428
|
-
}
|
2429
|
-
const scopeSelector = `:where(${parsedOptions.scope})`;
|
2430
|
-
if (selector === ':root') {
|
2431
|
-
return scopeSelector;
|
2432
|
-
}
|
2433
|
-
return `${scopeSelector} ${selector}`;
|
2434
|
-
}
|
2435
2486
|
const styles = computed(() => {
|
2436
2487
|
const lines = [];
|
2437
2488
|
if (current.value?.dark) {
|
2438
|
-
createCssClass(lines, ':root', ['color-scheme: dark']);
|
2489
|
+
createCssClass(lines, ':root', ['color-scheme: dark'], parsedOptions.scope);
|
2439
2490
|
}
|
2440
|
-
createCssClass(lines, ':root', genCssVariables(current.value));
|
2491
|
+
createCssClass(lines, ':root', genCssVariables(current.value), parsedOptions.scope);
|
2441
2492
|
for (const [themeName, theme] of Object.entries(computedThemes.value)) {
|
2442
|
-
createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme)]);
|
2493
|
+
createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme)], parsedOptions.scope);
|
2443
2494
|
}
|
2444
2495
|
const bgLines = [];
|
2445
2496
|
const fgLines = [];
|
2446
2497
|
const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));
|
2447
2498
|
for (const key of colors) {
|
2448
|
-
if (
|
2449
|
-
createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`]);
|
2499
|
+
if (key.startsWith('on-')) {
|
2500
|
+
createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`], parsedOptions.scope);
|
2450
2501
|
} else {
|
2451
|
-
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`]);
|
2452
|
-
createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`]);
|
2453
|
-
createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`]);
|
2502
|
+
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);
|
2503
|
+
createCssClass(fgLines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`], parsedOptions.scope);
|
2504
|
+
createCssClass(fgLines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`], parsedOptions.scope);
|
2454
2505
|
}
|
2455
2506
|
}
|
2456
2507
|
lines.push(...bgLines, ...fgLines);
|
2457
2508
|
return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
|
2458
2509
|
});
|
2459
|
-
function getHead() {
|
2460
|
-
return {
|
2461
|
-
style: [{
|
2462
|
-
textContent: styles.value,
|
2463
|
-
id: parsedOptions.stylesheetId,
|
2464
|
-
nonce: parsedOptions.cspNonce || false
|
2465
|
-
}]
|
2466
|
-
};
|
2467
|
-
}
|
2468
2510
|
function install(app) {
|
2469
2511
|
if (parsedOptions.isDisabled) return;
|
2470
2512
|
const head = app._context.provides.usehead;
|
2471
2513
|
if (head) {
|
2514
|
+
function getHead() {
|
2515
|
+
return {
|
2516
|
+
style: [{
|
2517
|
+
textContent: styles.value,
|
2518
|
+
id: parsedOptions.stylesheetId,
|
2519
|
+
nonce: parsedOptions.cspNonce || false
|
2520
|
+
}]
|
2521
|
+
};
|
2522
|
+
}
|
2472
2523
|
if (head.push) {
|
2473
2524
|
const entry = head.push(getHead);
|
2474
2525
|
if (IN_BROWSER) {
|
@@ -2485,7 +2536,6 @@ function createTheme(options) {
|
|
2485
2536
|
}
|
2486
2537
|
}
|
2487
2538
|
} else {
|
2488
|
-
let styleEl = IN_BROWSER ? document.getElementById(parsedOptions.stylesheetId) : null;
|
2489
2539
|
if (IN_BROWSER) {
|
2490
2540
|
watch(styles, updateStyles, {
|
2491
2541
|
immediate: true
|
@@ -2494,15 +2544,7 @@ function createTheme(options) {
|
|
2494
2544
|
updateStyles();
|
2495
2545
|
}
|
2496
2546
|
function updateStyles() {
|
2497
|
-
|
2498
|
-
const el = document.createElement('style');
|
2499
|
-
el.type = 'text/css';
|
2500
|
-
el.id = parsedOptions.stylesheetId;
|
2501
|
-
if (parsedOptions.cspNonce) el.setAttribute('nonce', parsedOptions.cspNonce);
|
2502
|
-
styleEl = el;
|
2503
|
-
document.head.appendChild(styleEl);
|
2504
|
-
}
|
2505
|
-
if (styleEl) styleEl.innerHTML = styles.value;
|
2547
|
+
upsertStyles(getOrCreateStyleElement(parsedOptions.stylesheetId, parsedOptions.cspNonce), styles.value);
|
2506
2548
|
}
|
2507
2549
|
}
|
2508
2550
|
}
|
@@ -2526,9 +2568,7 @@ function provideTheme(props) {
|
|
2526
2568
|
getCurrentInstance('provideTheme');
|
2527
2569
|
const theme = inject$1(ThemeSymbol, null);
|
2528
2570
|
if (!theme) throw new Error('Could not find Vuetify theme injection');
|
2529
|
-
const name = computed(() =>
|
2530
|
-
return props.theme ?? theme.name.value;
|
2531
|
-
});
|
2571
|
+
const name = computed(() => props.theme ?? theme.name.value);
|
2532
2572
|
const current = computed(() => theme.themes.value[name.value]);
|
2533
2573
|
const themeClasses = computed(() => theme.isDisabled ? undefined : `v-theme--${name.value}`);
|
2534
2574
|
const newTheme = {
|
@@ -2546,24 +2586,6 @@ function useTheme() {
|
|
2546
2586
|
if (!theme) throw new Error('Could not find Vuetify theme injection');
|
2547
2587
|
return theme;
|
2548
2588
|
}
|
2549
|
-
function genCssVariables(theme) {
|
2550
|
-
const lightOverlay = theme.dark ? 2 : 1;
|
2551
|
-
const darkOverlay = theme.dark ? 1 : 2;
|
2552
|
-
const variables = [];
|
2553
|
-
for (const [key, value] of Object.entries(theme.colors)) {
|
2554
|
-
const rgb = parseColor(value);
|
2555
|
-
variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
|
2556
|
-
if (!key.startsWith('on-')) {
|
2557
|
-
variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
|
2558
|
-
}
|
2559
|
-
}
|
2560
|
-
for (const [key, value] of Object.entries(theme.variables)) {
|
2561
|
-
const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;
|
2562
|
-
const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
|
2563
|
-
variables.push(`--v-${key}: ${rgb ?? value}`);
|
2564
|
-
}
|
2565
|
-
return variables;
|
2566
|
-
}
|
2567
2589
|
|
2568
2590
|
const makeVAppProps = propsFactory({
|
2569
2591
|
...makeComponentProps(),
|
@@ -12281,7 +12303,12 @@ function useVirtual(props, items) {
|
|
12281
12303
|
}
|
12282
12304
|
function calculateOffset(index) {
|
12283
12305
|
index = clamp(index, 0, items.value.length - 1);
|
12284
|
-
|
12306
|
+
const whole = Math.floor(index);
|
12307
|
+
const fraction = index % 1;
|
12308
|
+
const next = whole + 1;
|
12309
|
+
const wholeOffset = offsets[whole] || 0;
|
12310
|
+
const nextOffset = offsets[next] || wholeOffset;
|
12311
|
+
return wholeOffset + (nextOffset - wholeOffset) * fraction;
|
12285
12312
|
}
|
12286
12313
|
function calculateIndex(scrollTop) {
|
12287
12314
|
return binaryClosest(offsets, scrollTop);
|
@@ -31538,7 +31565,7 @@ function createVuetify$1() {
|
|
31538
31565
|
};
|
31539
31566
|
});
|
31540
31567
|
}
|
31541
|
-
const version$1 = "3.8.
|
31568
|
+
const version$1 = "3.8.1-dev.2025-04-07";
|
31542
31569
|
createVuetify$1.version = version$1;
|
31543
31570
|
|
31544
31571
|
// Vue's inject() can only be used in setup
|
@@ -31823,7 +31850,7 @@ var index = /*#__PURE__*/Object.freeze({
|
|
31823
31850
|
|
31824
31851
|
/* eslint-disable local-rules/sort-imports */
|
31825
31852
|
|
31826
|
-
const version = "3.8.
|
31853
|
+
const version = "3.8.1-dev.2025-04-07";
|
31827
31854
|
|
31828
31855
|
/* eslint-disable local-rules/sort-imports */
|
31829
31856
|
|