@vuetify/nightly 3.8.2-dev.2025-04-17 → 3.8.2-master.2025-04-19

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.
Files changed (44) hide show
  1. package/CHANGELOG.md +7 -16
  2. package/dist/json/attributes.json +3562 -3562
  3. package/dist/json/importMap-labs.json +24 -24
  4. package/dist/json/importMap.json +164 -164
  5. package/dist/json/web-types.json +6668 -6669
  6. package/dist/vuetify-labs.cjs +36 -112
  7. package/dist/vuetify-labs.css +3302 -3302
  8. package/dist/vuetify-labs.d.ts +62 -76
  9. package/dist/vuetify-labs.esm.js +37 -113
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +36 -112
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +29 -103
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +5737 -5737
  16. package/dist/vuetify.d.ts +57 -62
  17. package/dist/vuetify.esm.js +30 -104
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +29 -103
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +1165 -1171
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VOverlay/VOverlay.css +1 -1
  25. package/lib/components/VOverlay/_variables.scss +1 -1
  26. package/lib/composables/calendar.d.ts +0 -1
  27. package/lib/composables/calendar.js.map +1 -1
  28. package/lib/composables/theme.d.ts +1 -6
  29. package/lib/composables/theme.js +26 -94
  30. package/lib/composables/theme.js.map +1 -1
  31. package/lib/composables/virtual.js +1 -6
  32. package/lib/composables/virtual.js.map +1 -1
  33. package/lib/entry-bundler.js +1 -1
  34. package/lib/entry-bundler.js.map +1 -1
  35. package/lib/framework.d.ts +57 -62
  36. package/lib/framework.js +1 -1
  37. package/lib/framework.js.map +1 -1
  38. package/lib/labs/VIconBtn/VIconBtn.d.ts +6 -21
  39. package/lib/labs/VIconBtn/VIconBtn.js +7 -9
  40. package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
  41. package/lib/util/globals.d.ts +0 -1
  42. package/lib/util/globals.js +0 -1
  43. package/lib/util/globals.js.map +1 -1
  44. package/package.json +1 -1
@@ -133,12 +133,11 @@ type DeepPartial<T> = T extends object ? {
133
133
  } : T;
134
134
  type ThemeOptions = false | {
135
135
  cspNonce?: string;
136
- defaultTheme?: 'light' | 'dark' | 'system' | string;
136
+ defaultTheme?: string;
137
137
  variations?: false | VariationsOptions;
138
138
  themes?: Record<string, ThemeDefinition>;
139
139
  stylesheetId?: string;
140
140
  scope?: string;
141
- unimportant?: boolean;
142
141
  };
143
142
  type ThemeDefinition = DeepPartial<InternalThemeDefinition>;
144
143
  interface VariationsOptions {
@@ -175,15 +174,11 @@ interface OnColors {
175
174
  'on-info': string;
176
175
  }
177
176
  interface ThemeInstance {
178
- change: (themeName: string) => void;
179
- cycle: (themeArray?: string[]) => void;
180
- toggle: (themeArray?: [string, string]) => void;
181
177
  readonly isDisabled: boolean;
182
178
  readonly themes: Ref<Record<string, InternalThemeDefinition>>;
183
179
  readonly name: Readonly<Ref<string>>;
184
180
  readonly current: DeepReadonly<Ref<InternalThemeDefinition>>;
185
181
  readonly computedThemes: DeepReadonly<Ref<Record<string, InternalThemeDefinition>>>;
186
- readonly prefix: string;
187
182
  readonly themeClasses: Readonly<Ref<string | undefined>>;
188
183
  readonly styles: Readonly<Ref<string>>;
189
184
  readonly global: {
@@ -92465,7 +92460,6 @@ declare const VIconBtn: {
92465
92460
  tile: boolean;
92466
92461
  baseVariant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
92467
92462
  hideOverlay: boolean;
92468
- iconSize: string | number;
92469
92463
  iconSizes: [VIconBtnSizes, number][];
92470
92464
  } & {
92471
92465
  height?: string | number | undefined;
@@ -92485,6 +92479,7 @@ declare const VIconBtn: {
92485
92479
  iconColor?: string | undefined;
92486
92480
  activeIcon?: IconValue | undefined;
92487
92481
  activeVariant?: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain" | undefined;
92482
+ iconSize?: string | number | undefined;
92488
92483
  } & {
92489
92484
  $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
92490
92485
  default?: (() => vue.VNodeChild) | undefined;
@@ -92516,7 +92511,6 @@ declare const VIconBtn: {
92516
92511
  tile: boolean;
92517
92512
  baseVariant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
92518
92513
  hideOverlay: boolean;
92519
- iconSize: string | number;
92520
92514
  iconSizes: [VIconBtnSizes, number][];
92521
92515
  }, true, {}, vue.SlotsType<Partial<{
92522
92516
  default: () => vue.VNode[];
@@ -92540,7 +92534,6 @@ declare const VIconBtn: {
92540
92534
  tile: boolean;
92541
92535
  baseVariant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
92542
92536
  hideOverlay: boolean;
92543
- iconSize: string | number;
92544
92537
  iconSizes: [VIconBtnSizes, number][];
92545
92538
  } & {
92546
92539
  height?: string | number | undefined;
@@ -92560,6 +92553,7 @@ declare const VIconBtn: {
92560
92553
  iconColor?: string | undefined;
92561
92554
  activeIcon?: IconValue | undefined;
92562
92555
  activeVariant?: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain" | undefined;
92556
+ iconSize?: string | number | undefined;
92563
92557
  } & {
92564
92558
  $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
92565
92559
  default?: (() => vue.VNodeChild) | undefined;
@@ -92589,7 +92583,6 @@ declare const VIconBtn: {
92589
92583
  tile: boolean;
92590
92584
  baseVariant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
92591
92585
  hideOverlay: boolean;
92592
- iconSize: string | number;
92593
92586
  iconSizes: [VIconBtnSizes, number][];
92594
92587
  }>;
92595
92588
  __isFragment?: never;
@@ -92607,7 +92600,6 @@ declare const VIconBtn: {
92607
92600
  tile: boolean;
92608
92601
  baseVariant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
92609
92602
  hideOverlay: boolean;
92610
- iconSize: string | number;
92611
92603
  iconSizes: [VIconBtnSizes, number][];
92612
92604
  } & {
92613
92605
  height?: string | number | undefined;
@@ -92627,6 +92619,7 @@ declare const VIconBtn: {
92627
92619
  iconColor?: string | undefined;
92628
92620
  activeIcon?: IconValue | undefined;
92629
92621
  activeVariant?: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain" | undefined;
92622
+ iconSize?: string | number | undefined;
92630
92623
  } & {
92631
92624
  $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
92632
92625
  default?: (() => vue.VNodeChild) | undefined;
@@ -92658,7 +92651,6 @@ declare const VIconBtn: {
92658
92651
  tile: boolean;
92659
92652
  baseVariant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
92660
92653
  hideOverlay: boolean;
92661
- iconSize: string | number;
92662
92654
  iconSizes: [VIconBtnSizes, number][];
92663
92655
  }, {}, string, vue.SlotsType<Partial<{
92664
92656
  default: () => vue.VNode[];
@@ -92713,10 +92705,7 @@ declare const VIconBtn: {
92713
92705
  hideOverlay: BooleanConstructor;
92714
92706
  icon: PropType<IconValue>;
92715
92707
  iconColor: StringConstructor;
92716
- iconSize: {
92717
- type: PropType<VIconBtnSizes | number | string>;
92718
- default: string;
92719
- };
92708
+ iconSize: PropType<VIconBtnSizes | number | string>;
92720
92709
  iconSizes: {
92721
92710
  type: PropType<[VIconBtnSizes, number][]>;
92722
92711
  default: () => (string | number)[][];
@@ -92787,10 +92776,7 @@ declare const VIconBtn: {
92787
92776
  hideOverlay: BooleanConstructor;
92788
92777
  icon: PropType<IconValue>;
92789
92778
  iconColor: StringConstructor;
92790
- iconSize: {
92791
- type: PropType<VIconBtnSizes | number | string>;
92792
- default: string;
92793
- };
92779
+ iconSize: PropType<VIconBtnSizes | number | string>;
92794
92780
  iconSizes: {
92795
92781
  type: PropType<[VIconBtnSizes, number][]>;
92796
92782
  default: () => (string | number)[][];
@@ -96800,20 +96786,21 @@ declare module 'vue' {
96800
96786
  $children?: VNodeChild
96801
96787
  }
96802
96788
  export interface GlobalComponents {
96803
- VApp: VApp
96804
96789
  VAutocomplete: VAutocomplete
96790
+ VAlert: VAlert
96791
+ VAlertTitle: VAlertTitle
96805
96792
  VAppBar: VAppBar
96806
96793
  VAppBarNavIcon: VAppBarNavIcon
96807
96794
  VAppBarTitle: VAppBarTitle
96808
- VAlert: VAlert
96809
- VAlertTitle: VAlertTitle
96810
- VAvatar: VAvatar
96811
96795
  VBadge: VBadge
96812
96796
  VBottomNavigation: VBottomNavigation
96813
- VBottomSheet: VBottomSheet
96814
96797
  VBanner: VBanner
96815
96798
  VBannerActions: VBannerActions
96816
96799
  VBannerText: VBannerText
96800
+ VAvatar: VAvatar
96801
+ VBottomSheet: VBottomSheet
96802
+ VBtn: VBtn
96803
+ VBtnGroup: VBtnGroup
96817
96804
  VBreadcrumbs: VBreadcrumbs
96818
96805
  VBreadcrumbsItem: VBreadcrumbsItem
96819
96806
  VBreadcrumbsDivider: VBreadcrumbsDivider
@@ -96823,16 +96810,23 @@ declare module 'vue' {
96823
96810
  VCardSubtitle: VCardSubtitle
96824
96811
  VCardText: VCardText
96825
96812
  VCardTitle: VCardTitle
96813
+ VApp: VApp
96826
96814
  VBtnToggle: VBtnToggle
96815
+ VChip: VChip
96827
96816
  VCarousel: VCarousel
96828
96817
  VCarouselItem: VCarouselItem
96829
96818
  VCheckbox: VCheckbox
96830
96819
  VCheckboxBtn: VCheckboxBtn
96831
- VBtn: VBtn
96832
- VChip: VChip
96833
96820
  VCode: VCode
96834
96821
  VColorPicker: VColorPicker
96822
+ VDatePicker: VDatePicker
96823
+ VDatePickerControls: VDatePickerControls
96824
+ VDatePickerHeader: VDatePickerHeader
96825
+ VDatePickerMonth: VDatePickerMonth
96826
+ VDatePickerMonths: VDatePickerMonths
96827
+ VDatePickerYears: VDatePickerYears
96835
96828
  VCounter: VCounter
96829
+ VCombobox: VCombobox
96836
96830
  VDataTable: VDataTable
96837
96831
  VDataTableHeaders: VDataTableHeaders
96838
96832
  VDataTableFooter: VDataTableFooter
@@ -96840,36 +96834,29 @@ declare module 'vue' {
96840
96834
  VDataTableRow: VDataTableRow
96841
96835
  VDataTableVirtual: VDataTableVirtual
96842
96836
  VDataTableServer: VDataTableServer
96843
- VDatePicker: VDatePicker
96844
- VDatePickerControls: VDatePickerControls
96845
- VDatePickerHeader: VDatePickerHeader
96846
- VDatePickerMonth: VDatePickerMonth
96847
- VDatePickerMonths: VDatePickerMonths
96848
- VDatePickerYears: VDatePickerYears
96849
- VChipGroup: VChipGroup
96837
+ VDialog: VDialog
96838
+ VEmptyState: VEmptyState
96850
96839
  VDivider: VDivider
96851
96840
  VExpansionPanels: VExpansionPanels
96852
96841
  VExpansionPanel: VExpansionPanel
96853
96842
  VExpansionPanelText: VExpansionPanelText
96854
96843
  VExpansionPanelTitle: VExpansionPanelTitle
96855
- VEmptyState: VEmptyState
96844
+ VFab: VFab
96845
+ VFileInput: VFileInput
96846
+ VInfiniteScroll: VInfiniteScroll
96856
96847
  VField: VField
96857
96848
  VFieldLabel: VFieldLabel
96858
- VFileInput: VFileInput
96859
- VFab: VFab
96860
- VImg: VImg
96861
- VBtnGroup: VBtnGroup
96862
- VCombobox: VCombobox
96849
+ VFooter: VFooter
96863
96850
  VIcon: VIcon
96864
96851
  VComponentIcon: VComponentIcon
96865
96852
  VSvgIcon: VSvgIcon
96866
96853
  VLigatureIcon: VLigatureIcon
96867
96854
  VClassIcon: VClassIcon
96868
- VFooter: VFooter
96869
- VInfiniteScroll: VInfiniteScroll
96870
96855
  VInput: VInput
96856
+ VImg: VImg
96871
96857
  VKbd: VKbd
96872
- VLabel: VLabel
96858
+ VItemGroup: VItemGroup
96859
+ VItem: VItem
96873
96860
  VList: VList
96874
96861
  VListGroup: VListGroup
96875
96862
  VListImg: VListImg
@@ -96879,30 +96866,27 @@ declare module 'vue' {
96879
96866
  VListItemSubtitle: VListItemSubtitle
96880
96867
  VListItemTitle: VListItemTitle
96881
96868
  VListSubheader: VListSubheader
96882
- VMain: VMain
96869
+ VLabel: VLabel
96870
+ VMenu: VMenu
96883
96871
  VMessages: VMessages
96884
- VItemGroup: VItemGroup
96885
- VItem: VItem
96886
- VDialog: VDialog
96887
- VNumberInput: VNumberInput
96872
+ VMain: VMain
96888
96873
  VNavigationDrawer: VNavigationDrawer
96889
- VMenu: VMenu
96890
- VOverlay: VOverlay
96891
96874
  VOtpInput: VOtpInput
96892
- VProgressLinear: VProgressLinear
96893
96875
  VPagination: VPagination
96876
+ VOverlay: VOverlay
96877
+ VProgressLinear: VProgressLinear
96878
+ VNumberInput: VNumberInput
96879
+ VProgressCircular: VProgressCircular
96880
+ VSelectionControl: VSelectionControl
96894
96881
  VRadioGroup: VRadioGroup
96882
+ VSelect: VSelect
96895
96883
  VRating: VRating
96896
- VProgressCircular: VProgressCircular
96897
96884
  VSelectionControlGroup: VSelectionControlGroup
96898
- VSelect: VSelect
96899
96885
  VSheet: VSheet
96900
96886
  VSnackbar: VSnackbar
96901
96887
  VSkeletonLoader: VSkeletonLoader
96902
- VSelectionControl: VSelectionControl
96903
96888
  VSlideGroup: VSlideGroup
96904
96889
  VSlideGroupItem: VSlideGroupItem
96905
- VSwitch: VSwitch
96906
96890
  VSlider: VSlider
96907
96891
  VStepper: VStepper
96908
96892
  VStepperActions: VStepperActions
@@ -96910,15 +96894,14 @@ declare module 'vue' {
96910
96894
  VStepperItem: VStepperItem
96911
96895
  VStepperWindow: VStepperWindow
96912
96896
  VStepperWindowItem: VStepperWindowItem
96897
+ VSwitch: VSwitch
96898
+ VSystemBar: VSystemBar
96899
+ VTextarea: VTextarea
96900
+ VTextField: VTextField
96913
96901
  VTab: VTab
96914
96902
  VTabs: VTabs
96915
96903
  VTabsWindow: VTabsWindow
96916
96904
  VTabsWindowItem: VTabsWindowItem
96917
- VTable: VTable
96918
- VTextField: VTextField
96919
- VSystemBar: VSystemBar
96920
- VTooltip: VTooltip
96921
- VTextarea: VTextarea
96922
96905
  VTimeline: VTimeline
96923
96906
  VTimelineItem: VTimelineItem
96924
96907
  VToolbar: VToolbar
@@ -96926,6 +96909,9 @@ declare module 'vue' {
96926
96909
  VToolbarItems: VToolbarItems
96927
96910
  VWindow: VWindow
96928
96911
  VWindowItem: VWindowItem
96912
+ VTooltip: VTooltip
96913
+ VChipGroup: VChipGroup
96914
+ VConfirmEdit: VConfirmEdit
96929
96915
  VDataIterator: VDataIterator
96930
96916
  VDefaultsProvider: VDefaultsProvider
96931
96917
  VForm: VForm
@@ -96934,22 +96920,18 @@ declare module 'vue' {
96934
96920
  VRow: VRow
96935
96921
  VSpacer: VSpacer
96936
96922
  VHover: VHover
96923
+ VLazy: VLazy
96937
96924
  VLayout: VLayout
96938
96925
  VLayoutItem: VLayoutItem
96939
96926
  VLocaleProvider: VLocaleProvider
96940
- VLazy: VLazy
96941
96927
  VNoSsr: VNoSsr
96942
96928
  VParallax: VParallax
96943
96929
  VRadio: VRadio
96944
96930
  VRangeSlider: VRangeSlider
96945
- VSpeedDial: VSpeedDial
96946
- VSnackbarQueue: VSnackbarQueue
96947
96931
  VResponsive: VResponsive
96948
96932
  VSparkline: VSparkline
96949
- VValidation: VValidation
96950
- VVirtualScroll: VVirtualScroll
96951
- VThemeProvider: VThemeProvider
96952
- VConfirmEdit: VConfirmEdit
96933
+ VSnackbarQueue: VSnackbarQueue
96934
+ VSpeedDial: VSpeedDial
96953
96935
  VFabTransition: VFabTransition
96954
96936
  VDialogBottomTransition: VDialogBottomTransition
96955
96937
  VDialogTopTransition: VDialogTopTransition
@@ -96966,6 +96948,13 @@ declare module 'vue' {
96966
96948
  VExpandTransition: VExpandTransition
96967
96949
  VExpandXTransition: VExpandXTransition
96968
96950
  VDialogTransition: VDialogTransition
96951
+ VValidation: VValidation
96952
+ VThemeProvider: VThemeProvider
96953
+ VVirtualScroll: VVirtualScroll
96954
+ VTable: VTable
96955
+ VIconBtn: VIconBtn
96956
+ VPicker: VPicker
96957
+ VPickerTitle: VPickerTitle
96969
96958
  VCalendar: VCalendar
96970
96959
  VCalendarDay: VCalendarDay
96971
96960
  VCalendarHeader: VCalendarHeader
@@ -96974,18 +96963,15 @@ declare module 'vue' {
96974
96963
  VCalendarMonthDay: VCalendarMonthDay
96975
96964
  VFileUpload: VFileUpload
96976
96965
  VFileUploadItem: VFileUploadItem
96977
- VPicker: VPicker
96978
- VPickerTitle: VPickerTitle
96979
- VStepperVertical: VStepperVertical
96980
- VStepperVerticalItem: VStepperVerticalItem
96981
- VStepperVerticalActions: VStepperVerticalActions
96982
- VIconBtn: VIconBtn
96983
- VTimePicker: VTimePicker
96984
- VTimePickerClock: VTimePickerClock
96985
- VTimePickerControls: VTimePickerControls
96986
96966
  VTreeview: VTreeview
96987
96967
  VTreeviewItem: VTreeviewItem
96988
96968
  VTreeviewGroup: VTreeviewGroup
96969
+ VTimePicker: VTimePicker
96970
+ VTimePickerClock: VTimePickerClock
96971
+ VTimePickerControls: VTimePickerControls
96972
+ VStepperVertical: VStepperVertical
96973
+ VStepperVerticalItem: VStepperVerticalItem
96974
+ VStepperVerticalActions: VStepperVerticalActions
96989
96975
  VDateInput: VDateInput
96990
96976
  VPullToRefresh: VPullToRefresh
96991
96977
  }
@@ -1,10 +1,10 @@
1
1
  /*!
2
- * Vuetify v3.8.2-dev.2025-04-17
2
+ * Vuetify v3.8.2-master.2025-04-19
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
6
6
 
7
- import { shallowRef, reactive, computed, watchEffect, toRefs, capitalize, unref, Fragment, isVNode, Comment, warn, getCurrentInstance as getCurrentInstance$1, ref, provide, inject as inject$1, defineComponent as defineComponent$1, h, camelize, onBeforeUnmount, watch, readonly, onMounted, useId, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, getCurrentScope, createVNode, TransitionGroup, Transition, mergeProps, isRef, toRef, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, onUpdated, Text, resolveDynamicComponent, toDisplayString, markRaw, Teleport, cloneVNode, createTextVNode, onUnmounted, onBeforeUpdate, withModifiers, vModelText, resolveComponent, render } from 'vue';
7
+ import { shallowRef, reactive, computed, watchEffect, toRefs, capitalize, unref, Fragment, isVNode, Comment, warn, getCurrentInstance as getCurrentInstance$1, ref, provide, inject as inject$1, defineComponent as defineComponent$1, h, camelize, onBeforeUnmount, watch, readonly, onMounted, useId, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, createVNode, TransitionGroup, Transition, mergeProps, isRef, toRef, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, onUpdated, Text, resolveDynamicComponent, toDisplayString, markRaw, Teleport, cloneVNode, createTextVNode, onUnmounted, onBeforeUpdate, withModifiers, vModelText, resolveComponent, render } from 'vue';
8
8
 
9
9
  // Types
10
10
  // eslint-disable-line vue/prefer-import-from-vue
@@ -81,7 +81,6 @@ const IN_BROWSER = typeof window !== 'undefined';
81
81
  const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
82
82
  const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0);
83
83
  const SUPPORTS_EYE_DROPPER = IN_BROWSER && 'EyeDropper' in window;
84
- const SUPPORTS_MATCH_MEDIA = IN_BROWSER && 'matchMedia' in window && typeof window.matchMedia === 'function';
85
84
 
86
85
  function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
87
86
  function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
@@ -2282,7 +2281,6 @@ const makeThemeProps = propsFactory({
2282
2281
  function genDefaults$2() {
2283
2282
  return {
2284
2283
  defaultTheme: 'light',
2285
- prefix: 'v-',
2286
2284
  variations: {
2287
2285
  colors: [],
2288
2286
  lighten: 0,
@@ -2364,10 +2362,7 @@ function genDefaults$2() {
2364
2362
  }
2365
2363
  }
2366
2364
  },
2367
- stylesheetId: 'vuetify-theme-stylesheet',
2368
- scoped: false,
2369
- unimportant: false,
2370
- utilities: true
2365
+ stylesheetId: 'vuetify-theme-stylesheet'
2371
2366
  };
2372
2367
  }
2373
2368
  function parseThemeOptions() {
@@ -2390,21 +2385,21 @@ function parseThemeOptions() {
2390
2385
  function createCssClass(lines, selector, content, scope) {
2391
2386
  lines.push(`${getScopedSelector(selector, scope)} {\n`, ...content.map(line => ` ${line};\n`), '}\n');
2392
2387
  }
2393
- function genCssVariables(theme, prefix) {
2388
+ function genCssVariables(theme) {
2394
2389
  const lightOverlay = theme.dark ? 2 : 1;
2395
2390
  const darkOverlay = theme.dark ? 1 : 2;
2396
2391
  const variables = [];
2397
2392
  for (const [key, value] of Object.entries(theme.colors)) {
2398
2393
  const rgb = parseColor(value);
2399
- variables.push(`--${prefix}theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
2394
+ variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`);
2400
2395
  if (!key.startsWith('on-')) {
2401
- variables.push(`--${prefix}theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
2396
+ variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`);
2402
2397
  }
2403
2398
  }
2404
2399
  for (const [key, value] of Object.entries(theme.variables)) {
2405
2400
  const color = typeof value === 'string' && value.startsWith('#') ? parseColor(value) : undefined;
2406
2401
  const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined;
2407
- variables.push(`--${prefix}${key}: ${rgb ?? value}`);
2402
+ variables.push(`--v-${key}: ${rgb ?? value}`);
2408
2403
  }
2409
2404
  return variables;
2410
2405
  }
@@ -2448,8 +2443,7 @@ function getScopedSelector(selector, scope) {
2448
2443
  const scopeSelector = `:where(${scope})`;
2449
2444
  return selector === ':root' ? scopeSelector : `${scopeSelector} ${selector}`;
2450
2445
  }
2451
- function upsertStyles(id, cspNonce, styles) {
2452
- const styleEl = getOrCreateStyleElement(id, cspNonce);
2446
+ function upsertStyles(styleEl, styles) {
2453
2447
  if (!styleEl) return;
2454
2448
  styleEl.innerHTML = styles;
2455
2449
  }
@@ -2469,17 +2463,8 @@ function getOrCreateStyleElement(id, cspNonce) {
2469
2463
  // Composables
2470
2464
  function createTheme(options) {
2471
2465
  const parsedOptions = parseThemeOptions(options);
2472
- const _name = shallowRef(parsedOptions.defaultTheme);
2466
+ const name = shallowRef(parsedOptions.defaultTheme);
2473
2467
  const themes = ref(parsedOptions.themes);
2474
- const systemName = shallowRef('light');
2475
- const name = computed({
2476
- get() {
2477
- return _name.value === 'system' ? systemName.value : _name.value;
2478
- },
2479
- set(val) {
2480
- _name.value = val;
2481
- }
2482
- });
2483
2468
  const computedThemes = computed(() => {
2484
2469
  const acc = {};
2485
2470
  for (const [name, original] of Object.entries(themes.value)) {
@@ -2500,49 +2485,28 @@ function createTheme(options) {
2500
2485
  const current = computed(() => computedThemes.value[name.value]);
2501
2486
  const styles = computed(() => {
2502
2487
  const lines = [];
2503
- const important = parsedOptions.unimportant ? '' : ' !important';
2504
- const scoped = parsedOptions.scoped ? parsedOptions.prefix : '';
2505
2488
  if (current.value?.dark) {
2506
2489
  createCssClass(lines, ':root', ['color-scheme: dark'], parsedOptions.scope);
2507
2490
  }
2508
- createCssClass(lines, ':root', genCssVariables(current.value, parsedOptions.prefix), parsedOptions.scope);
2491
+ createCssClass(lines, ':root', genCssVariables(current.value), parsedOptions.scope);
2509
2492
  for (const [themeName, theme] of Object.entries(computedThemes.value)) {
2510
- createCssClass(lines, `.${parsedOptions.prefix}theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme, parsedOptions.prefix)], parsedOptions.scope);
2511
- }
2512
- if (parsedOptions.utilities) {
2513
- const bgLines = [];
2514
- const fgLines = [];
2515
- const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));
2516
- for (const key of colors) {
2517
- if (key.startsWith('on-')) {
2518
- createCssClass(fgLines, `.${key}`, [`color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`], parsedOptions.scope);
2519
- } else {
2520
- createCssClass(bgLines, `.${scoped}bg-${key}`, [`--${parsedOptions.prefix}theme-overlay-multiplier: var(--${parsedOptions.prefix}theme-${key}-overlay-multiplier)`, `background-color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`, `color: rgb(var(--${parsedOptions.prefix}theme-on-${key}))${important}`], parsedOptions.scope);
2521
- createCssClass(fgLines, `.${scoped}text-${key}`, [`color: rgb(var(--${parsedOptions.prefix}theme-${key}))${important}`], parsedOptions.scope);
2522
- createCssClass(fgLines, `.${scoped}border-${key}`, [`--${parsedOptions.prefix}border-color: var(--${parsedOptions.prefix}theme-${key})`], parsedOptions.scope);
2523
- }
2493
+ createCssClass(lines, `.v-theme--${themeName}`, [`color-scheme: ${theme.dark ? 'dark' : 'normal'}`, ...genCssVariables(theme)], parsedOptions.scope);
2494
+ }
2495
+ const bgLines = [];
2496
+ const fgLines = [];
2497
+ const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)));
2498
+ for (const key of colors) {
2499
+ if (key.startsWith('on-')) {
2500
+ createCssClass(fgLines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`], parsedOptions.scope);
2501
+ } else {
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);
2524
2505
  }
2525
- lines.push(...bgLines, ...fgLines);
2526
2506
  }
2507
+ lines.push(...bgLines, ...fgLines);
2527
2508
  return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('');
2528
2509
  });
2529
- const themeClasses = computed(() => parsedOptions.isDisabled ? undefined : `${parsedOptions.prefix}theme--${name.value}`);
2530
- const themeNames = computed(() => Object.keys(computedThemes.value));
2531
- if (SUPPORTS_MATCH_MEDIA) {
2532
- const media = window.matchMedia('(prefers-color-scheme: dark)');
2533
- function updateSystemName() {
2534
- systemName.value = media.matches ? 'dark' : 'light';
2535
- }
2536
- updateSystemName();
2537
- media.addEventListener('change', updateSystemName, {
2538
- passive: true
2539
- });
2540
- if (getCurrentScope()) {
2541
- onScopeDispose(() => {
2542
- media.removeEventListener('change', updateSystemName);
2543
- });
2544
- }
2545
- }
2546
2510
  function install(app) {
2547
2511
  if (parsedOptions.isDisabled) return;
2548
2512
  const head = app._context.provides.usehead;
@@ -2580,55 +2544,22 @@ function createTheme(options) {
2580
2544
  updateStyles();
2581
2545
  }
2582
2546
  function updateStyles() {
2583
- upsertStyles(parsedOptions.stylesheetId, parsedOptions.cspNonce, styles.value);
2547
+ upsertStyles(getOrCreateStyleElement(parsedOptions.stylesheetId, parsedOptions.cspNonce), styles.value);
2584
2548
  }
2585
2549
  }
2586
2550
  }
2587
- function change(themeName) {
2588
- if (!themeNames.value.includes(themeName)) {
2589
- consoleWarn(`Theme "${themeName}" not found on the Vuetify theme instance`);
2590
- return;
2591
- }
2592
- name.value = themeName;
2593
- }
2594
- function cycle() {
2595
- let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : themeNames.value;
2596
- const currentIndex = themeArray.indexOf(name.value);
2597
- const nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % themeArray.length;
2598
- change(themeArray[nextIndex]);
2599
- }
2600
- function toggle() {
2601
- let themeArray = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['light', 'dark'];
2602
- cycle(themeArray);
2603
- }
2604
- const globalName = new Proxy(name, {
2605
- get(target, prop) {
2606
- return target[prop];
2607
- },
2608
- set(target, prop, val) {
2609
- if (prop === 'value') {
2610
- deprecate(`theme.global.name.value = ${val}`, `theme.change('${val}')`);
2611
- }
2612
- // @ts-expect-error
2613
- target[prop] = val;
2614
- return true;
2615
- }
2616
- });
2551
+ const themeClasses = computed(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`);
2617
2552
  return {
2618
2553
  install,
2619
- change,
2620
- cycle,
2621
- toggle,
2622
2554
  isDisabled: parsedOptions.isDisabled,
2623
2555
  name,
2624
2556
  themes,
2625
2557
  current,
2626
2558
  computedThemes,
2627
- prefix: parsedOptions.prefix,
2628
2559
  themeClasses,
2629
2560
  styles,
2630
2561
  global: {
2631
- name: globalName,
2562
+ name,
2632
2563
  current
2633
2564
  }
2634
2565
  };
@@ -2639,7 +2570,7 @@ function provideTheme(props) {
2639
2570
  if (!theme) throw new Error('Could not find Vuetify theme injection');
2640
2571
  const name = computed(() => props.theme ?? theme.name.value);
2641
2572
  const current = computed(() => theme.themes.value[name.value]);
2642
- const themeClasses = computed(() => theme.isDisabled ? undefined : `${theme.prefix}theme--${name.value}`);
2573
+ const themeClasses = computed(() => theme.isDisabled ? undefined : `v-theme--${name.value}`);
2643
2574
  const newTheme = {
2644
2575
  ...theme,
2645
2576
  name,
@@ -12377,12 +12308,7 @@ function useVirtual(props, items) {
12377
12308
  }
12378
12309
  function calculateOffset(index) {
12379
12310
  index = clamp(index, 0, items.value.length - 1);
12380
- const whole = Math.floor(index);
12381
- const fraction = index % 1;
12382
- const next = whole + 1;
12383
- const wholeOffset = offsets[whole] || 0;
12384
- const nextOffset = offsets[next] || wholeOffset;
12385
- return wholeOffset + (nextOffset - wholeOffset) * fraction;
12311
+ return offsets[index] || 0;
12386
12312
  }
12387
12313
  function calculateIndex(scrollTop) {
12388
12314
  return binaryClosest(offsets, scrollTop);
@@ -29516,10 +29442,7 @@ const makeVIconBtnProps = propsFactory({
29516
29442
  hideOverlay: Boolean,
29517
29443
  icon: [String, Function, Object],
29518
29444
  iconColor: String,
29519
- iconSize: {
29520
- type: [Number, String],
29521
- default: 'default'
29522
- },
29445
+ iconSize: [Number, String],
29523
29446
  iconSizes: {
29524
29447
  type: Array,
29525
29448
  default: () => [['x-small', 10], ['small', 16], ['default', 24], ['large', 28], ['x-large', 32]]
@@ -29604,13 +29527,14 @@ const VIconBtn = genericComponent()({
29604
29527
  }
29605
29528
  useRender(() => {
29606
29529
  const icon = isActive.value ? props.activeIcon ?? props.icon : props.icon;
29607
- const size = props.size;
29608
- const hasNamedSize = btnSizeMap.has(size);
29609
- const btnSize = hasNamedSize ? btnSizeMap.get(size) : size;
29530
+ const _btnSize = props.size;
29531
+ const hasNamedSize = btnSizeMap.has(_btnSize);
29532
+ const btnSize = hasNamedSize ? btnSizeMap.get(_btnSize) : _btnSize;
29610
29533
  const btnHeight = props.height ?? btnSize;
29611
29534
  const btnWidth = props.width ?? btnSize;
29612
- const _iconSize = hasNamedSize ? size : props.iconSize ?? size;
29613
- const iconSize = iconSizeMap.get(_iconSize) ?? _iconSize;
29535
+ const _iconSize = props.iconSize;
29536
+ const hasNamedIconSize = iconSizeMap.has(_iconSize);
29537
+ const iconSize = !_iconSize ? hasNamedSize ? iconSizeMap.get(_btnSize) : iconSizeMap.get('default') : hasNamedIconSize ? iconSizeMap.get(_iconSize) : _iconSize;
29614
29538
  const iconProps = {
29615
29539
  icon,
29616
29540
  size: iconSize,
@@ -31565,7 +31489,7 @@ function createVuetify$1() {
31565
31489
  };
31566
31490
  });
31567
31491
  }
31568
- const version$1 = "3.8.2-dev.2025-04-17";
31492
+ const version$1 = "3.8.2-master.2025-04-19";
31569
31493
  createVuetify$1.version = version$1;
31570
31494
 
31571
31495
  // Vue's inject() can only be used in setup
@@ -31863,7 +31787,7 @@ var index = /*#__PURE__*/Object.freeze({
31863
31787
 
31864
31788
  /* eslint-disable local-rules/sort-imports */
31865
31789
 
31866
- const version = "3.8.2-dev.2025-04-17";
31790
+ const version = "3.8.2-master.2025-04-19";
31867
31791
 
31868
31792
  /* eslint-disable local-rules/sort-imports */
31869
31793