vuetify 3.0.4 → 3.0.5

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 (72) hide show
  1. package/dist/json/attributes.json +25 -9
  2. package/dist/json/importMap.json +52 -52
  3. package/dist/json/tags.json +4 -0
  4. package/dist/json/web-types.json +57 -28
  5. package/dist/vuetify.css +55 -56
  6. package/dist/vuetify.d.ts +278 -170
  7. package/dist/vuetify.esm.js +199 -167
  8. package/dist/vuetify.esm.js.map +1 -1
  9. package/dist/vuetify.js +199 -167
  10. package/dist/vuetify.js.map +1 -1
  11. package/dist/vuetify.min.css +2 -2
  12. package/dist/vuetify.min.js +100 -100
  13. package/dist/vuetify.min.js.map +1 -1
  14. package/lib/components/VAlert/index.d.ts +1 -1
  15. package/lib/components/VAutocomplete/VAutocomplete.mjs +1 -1
  16. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  17. package/lib/components/VAutocomplete/index.d.ts +41 -24
  18. package/lib/components/VBottomNavigation/VBottomNavigation.mjs +6 -3
  19. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  20. package/lib/components/VBottomNavigation/index.d.ts +9 -0
  21. package/lib/components/VBtn/index.d.ts +2 -3
  22. package/lib/components/VCard/index.d.ts +2 -3
  23. package/lib/components/VChip/VChip.mjs +1 -1
  24. package/lib/components/VChip/VChip.mjs.map +1 -1
  25. package/lib/components/VChip/index.d.ts +1 -1
  26. package/lib/components/VChipGroup/index.d.ts +1 -1
  27. package/lib/components/VCombobox/VCombobox.mjs +1 -1
  28. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  29. package/lib/components/VCombobox/index.d.ts +41 -24
  30. package/lib/components/VDialog/index.d.ts +21 -6
  31. package/lib/components/VExpansionPanel/index.d.ts +1 -1
  32. package/lib/components/VField/VField.mjs +1 -1
  33. package/lib/components/VField/VField.mjs.map +1 -1
  34. package/lib/components/VField/index.d.ts +5 -8
  35. package/lib/components/VFileInput/index.d.ts +3 -4
  36. package/lib/components/VMenu/index.d.ts +21 -6
  37. package/lib/components/VOverlay/VOverlay.mjs +10 -3
  38. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  39. package/lib/components/VOverlay/index.d.ts +8 -1
  40. package/lib/components/VPagination/index.d.ts +1 -1
  41. package/lib/components/VSelect/VSelect.mjs +6 -2
  42. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  43. package/lib/components/VSelect/index.d.ts +41 -24
  44. package/lib/components/VSnackbar/index.d.ts +25 -10
  45. package/lib/components/VTabs/VTab.css +1 -2
  46. package/lib/components/VTabs/VTab.sass +4 -3
  47. package/lib/components/VTextField/index.d.ts +20 -29
  48. package/lib/components/VTextarea/index.d.ts +2 -3
  49. package/lib/components/VToolbar/VToolbar.mjs +6 -0
  50. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  51. package/lib/components/VTooltip/VTooltip.mjs +2 -1
  52. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  53. package/lib/components/VTooltip/index.d.ts +21 -6
  54. package/lib/components/index.d.ts +264 -156
  55. package/lib/composables/display.mjs +5 -4
  56. package/lib/composables/display.mjs.map +1 -1
  57. package/lib/composables/hydration.mjs +13 -8
  58. package/lib/composables/hydration.mjs.map +1 -1
  59. package/lib/composables/loader.mjs +1 -1
  60. package/lib/composables/loader.mjs.map +1 -1
  61. package/lib/composables/stack.mjs +16 -9
  62. package/lib/composables/stack.mjs.map +1 -1
  63. package/lib/composables/validation.mjs +2 -2
  64. package/lib/composables/validation.mjs.map +1 -1
  65. package/lib/entry-bundler.mjs +1 -1
  66. package/lib/framework.mjs +1 -1
  67. package/lib/index.d.ts +14 -14
  68. package/lib/services/goto/util.mjs +1 -1
  69. package/lib/services/goto/util.mjs.map +1 -1
  70. package/lib/util/console.mjs +3 -3
  71. package/lib/util/console.mjs.map +1 -1
  72. package/package.json +2 -2
@@ -18,7 +18,7 @@ import { useLocale } from "../../composables/locale.mjs";
18
18
  import { useProxiedModel } from "../../composables/proxiedModel.mjs";
19
19
  import { IconValue } from "../../composables/icons.mjs"; // Utility
20
20
  import { computed, mergeProps, ref } from 'vue';
21
- import { genericComponent, omit, propsFactory, useRender, wrapInArray } from "../../util/index.mjs"; // Types
21
+ import { deepEqual, genericComponent, omit, propsFactory, useRender, wrapInArray } from "../../util/index.mjs"; // Types
22
22
  export const makeSelectProps = propsFactory({
23
23
  chips: Boolean,
24
24
  closableChips: Boolean,
@@ -39,6 +39,10 @@ export const makeSelectProps = propsFactory({
39
39
  default: '$vuetify.noDataText'
40
40
  },
41
41
  openOnClear: Boolean,
42
+ valueComparator: {
43
+ type: Function,
44
+ default: deepEqual
45
+ },
42
46
  ...makeItemsProps({
43
47
  itemChildren: false
44
48
  })
@@ -80,7 +84,7 @@ export const VSelect = genericComponent()({
80
84
  });
81
85
  const selections = computed(() => {
82
86
  return model.value.map(v => {
83
- return items.value.find(item => item.value === v.value) || v;
87
+ return items.value.find(item => props.valueComparator(item.value, v.value)) || v;
84
88
  });
85
89
  });
86
90
  const selected = computed(() => selections.value.map(selection => selection.props.value));
@@ -1 +1 @@
1
- {"version":3,"file":"VSelect.mjs","names":["filterVTextFieldProps","makeVTextFieldProps","VCheckboxBtn","VChip","VDefaultsProvider","VDialogTransition","VList","VListItem","VMenu","VTextField","makeItemsProps","useItems","makeTransitionProps","forwardRefs","useLocale","useProxiedModel","IconValue","computed","mergeProps","ref","genericComponent","omit","propsFactory","useRender","wrapInArray","makeSelectProps","chips","Boolean","closableChips","eager","hideNoData","hideSelected","menu","menuIcon","type","default","menuProps","Object","multiple","noDataText","String","openOnClear","itemChildren","VSelect","name","props","modelValue","transition","component","emits","val","setup","slots","t","vTextFieldRef","items","transformIn","transformOut","model","v","transformed","selections","value","map","find","item","selected","selection","listRef","onClear","e","onClickControl","length","readonly","onKeydown","includes","key","preventDefault","focus","select","index","findIndex","splice","onBlur","$el","contains","relatedTarget","onFocusout","hasChips","chip","textFieldProps","join","externalValue","onClick","prepend","isSelected","undefined","onChipClose","stopPropagation","slotProps","closable","size","text","title"],"sources":["../../../src/components/VSelect/VSelect.tsx"],"sourcesContent":["// Styles\nimport './VSelect.sass'\n\n// Components\nimport { filterVTextFieldProps, makeVTextFieldProps } from '@/components/VTextField/VTextField'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VDialogTransition } from '@/components/transitions'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { VTextField } from '@/components/VTextField'\n\n// Composables\nimport { makeItemsProps, useItems } from '@/composables/items'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { IconValue } from '@/composables/icons'\n\n// Utility\nimport { computed, mergeProps, ref } from 'vue'\nimport { genericComponent, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { InternalItem } from '@/composables/items'\nimport type { MakeSlots, SlotsToProps } from '@/util'\nimport type { PropType } from 'vue'\n\nexport const makeSelectProps = propsFactory({\n chips: Boolean,\n closableChips: Boolean,\n eager: Boolean,\n hideNoData: Boolean,\n hideSelected: Boolean,\n menu: Boolean,\n menuIcon: {\n type: IconValue,\n default: '$dropdown',\n },\n menuProps: {\n type: Object as PropType<VMenu['$props']>,\n },\n multiple: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n openOnClear: Boolean,\n\n ...makeItemsProps({ itemChildren: false }),\n}, 'v-select')\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = T extends Primitive\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? readonly Val<T, ReturnObject>[]\n : Val<T, ReturnObject>\n\nexport const VSelect = genericComponent<new <\n T,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<T, ReturnObject, Multiple> = Value<T, ReturnObject, Multiple>\n>() => {\n $props: {\n items?: readonly T[]\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V\n 'onUpdate:modelValue'?: (val: V) => void\n } & SlotsToProps<\n Omit<VInputSlots & VFieldSlots, 'default'> & MakeSlots<{\n item: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n chip: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n selection: [{ item: InternalItem<T>, index: number }]\n 'prepend-item': []\n 'append-item': []\n 'no-data': []\n }>\n >\n}>()({\n name: 'VSelect',\n\n props: {\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: { component: VDialogTransition } }),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const menu = useProxiedModel(props, 'menu')\n const { items, transformIn, transformOut } = useItems(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const selections = computed(() => {\n return model.value.map(v => {\n return items.value.find(item => item.value === v.value) || v\n })\n })\n const selected = computed(() => selections.value.map(selection => selection.props.value))\n const listRef = ref<VList>()\n\n function onClear (e: MouseEvent) {\n model.value = []\n\n if (props.openOnClear) {\n menu.value = true\n }\n }\n function onClickControl () {\n if (\n (props.hideNoData && !items.value.length) ||\n props.readonly\n ) return\n\n menu.value = !menu.value\n }\n function onKeydown (e: KeyboardEvent) {\n if (props.readonly) return\n\n if (['Enter', 'ArrowDown', ' '].includes(e.key)) {\n e.preventDefault()\n menu.value = true\n }\n\n if (['Escape', 'Tab'].includes(e.key)) {\n menu.value = false\n }\n\n if (e.key === 'ArrowDown') {\n listRef.value?.focus('next')\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n listRef.value?.focus('prev')\n } else if (e.key === 'Home') {\n e.preventDefault()\n listRef.value?.focus('first')\n } else if (e.key === 'End') {\n e.preventDefault()\n listRef.value?.focus('last')\n }\n }\n function select (item: InternalItem) {\n if (props.multiple) {\n const index = selected.value.findIndex(selection => selection === item.value)\n\n if (index === -1) {\n model.value = [...model.value, item]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item]\n menu.value = false\n }\n }\n function onBlur (e: FocusEvent) {\n if (!listRef.value?.$el.contains(e.relatedTarget as HTMLElement)) {\n menu.value = false\n }\n }\n function onFocusout (e: FocusEvent) {\n if (e.relatedTarget == null) {\n vTextFieldRef.value?.focus()\n }\n }\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n const [textFieldProps] = filterVTextFieldProps(props)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n modelValue={ model.value.map(v => v.props.value).join(', ') }\n onUpdate:modelValue={ v => { if (v == null) model.value = [] } }\n validationValue={ model.externalValue }\n dirty={ model.value.length > 0 }\n class={[\n 'v-select',\n {\n 'v-select--active-menu': menu.value,\n 'v-select--chips': !!props.chips,\n [`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,\n 'v-select--selected': model.value.length,\n },\n ]}\n appendInnerIcon={ props.menuIcon }\n readonly\n onClick:clear={ onClear }\n onClick:control={ onClickControl }\n onBlur={ onBlur }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-select__content\"\n eager={ props.eager }\n openOnClick={ false }\n closeOnContentClick={ false }\n transition={ props.transition }\n { ...props.menuProps }\n >\n <VList\n ref={ listRef }\n selected={ selected.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onFocusout={ onFocusout }\n >\n { !items.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n )) }\n\n { slots['prepend-item']?.() }\n\n { items.value.map((item, index) => slots.item?.({\n item,\n index,\n props: mergeProps(item.props, { onClick: () => select(item) }),\n }) ?? (\n <VListItem\n key={ index }\n { ...item.props }\n onClick={ () => select(item) }\n >\n {{\n prepend: ({ isSelected }) => props.multiple && !props.hideSelected ? (\n <VCheckboxBtn modelValue={ isSelected } ripple={ false } />\n ) : undefined,\n }}\n </VListItem>\n )) }\n\n { slots['append-item']?.() }\n </VList>\n </VMenu>\n\n { selections.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n return (\n <div key={ item.value } class=\"v-select__selection\">\n { hasChips ? (\n <VDefaultsProvider\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title,\n },\n }}\n >\n { slots.chip\n ? slots.chip({ item, index, props: slotProps })\n : (<VChip { ...slotProps } />)\n }\n </VDefaultsProvider>\n ) : (\n slots.selection\n ? slots.selection({ item, index })\n : (\n <span class=\"v-select__selection-text\">\n { item.title }\n { props.multiple && (index < selections.value.length - 1) && (\n <span class=\"v-select__selection-comma\">,</span>\n ) }\n </span>\n )\n )}\n </div>\n )\n }) }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({\n menu,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VSelect = InstanceType<typeof VSelect>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VSelect.mjs","names":["filterVTextFieldProps","makeVTextFieldProps","VCheckboxBtn","VChip","VDefaultsProvider","VDialogTransition","VList","VListItem","VMenu","VTextField","makeItemsProps","useItems","makeTransitionProps","forwardRefs","useLocale","useProxiedModel","IconValue","computed","mergeProps","ref","deepEqual","genericComponent","omit","propsFactory","useRender","wrapInArray","makeSelectProps","chips","Boolean","closableChips","eager","hideNoData","hideSelected","menu","menuIcon","type","default","menuProps","Object","multiple","noDataText","String","openOnClear","valueComparator","Function","itemChildren","VSelect","name","props","modelValue","transition","component","emits","val","setup","slots","t","vTextFieldRef","items","transformIn","transformOut","model","v","transformed","selections","value","map","find","item","selected","selection","listRef","onClear","e","onClickControl","length","readonly","onKeydown","includes","key","preventDefault","focus","select","index","findIndex","splice","onBlur","$el","contains","relatedTarget","onFocusout","hasChips","chip","textFieldProps","join","externalValue","onClick","prepend","isSelected","undefined","onChipClose","stopPropagation","slotProps","closable","size","text","title"],"sources":["../../../src/components/VSelect/VSelect.tsx"],"sourcesContent":["// Styles\nimport './VSelect.sass'\n\n// Components\nimport { filterVTextFieldProps, makeVTextFieldProps } from '@/components/VTextField/VTextField'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VDialogTransition } from '@/components/transitions'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { VTextField } from '@/components/VTextField'\n\n// Composables\nimport { makeItemsProps, useItems } from '@/composables/items'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { IconValue } from '@/composables/icons'\n\n// Utility\nimport { computed, mergeProps, ref } from 'vue'\nimport { deepEqual, genericComponent, omit, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { InternalItem } from '@/composables/items'\nimport type { MakeSlots, SlotsToProps } from '@/util'\nimport type { PropType } from 'vue'\n\nexport const makeSelectProps = propsFactory({\n chips: Boolean,\n closableChips: Boolean,\n eager: Boolean,\n hideNoData: Boolean,\n hideSelected: Boolean,\n menu: Boolean,\n menuIcon: {\n type: IconValue,\n default: '$dropdown',\n },\n menuProps: {\n type: Object as PropType<VMenu['$props']>,\n },\n multiple: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n openOnClear: Boolean,\n valueComparator: {\n type: Function as PropType<typeof deepEqual>,\n default: deepEqual,\n },\n\n ...makeItemsProps({ itemChildren: false }),\n}, 'v-select')\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = T extends Primitive\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? readonly Val<T, ReturnObject>[]\n : Val<T, ReturnObject>\n\nexport const VSelect = genericComponent<new <\n T,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<T, ReturnObject, Multiple> = Value<T, ReturnObject, Multiple>\n>() => {\n $props: {\n items?: readonly T[]\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: V\n 'onUpdate:modelValue'?: (val: V) => void\n } & SlotsToProps<\n Omit<VInputSlots & VFieldSlots, 'default'> & MakeSlots<{\n item: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n chip: [{ item: InternalItem<T>, index: number, props: Record<string, unknown> }]\n selection: [{ item: InternalItem<T>, index: number }]\n 'prepend-item': []\n 'append-item': []\n 'no-data': []\n }>\n >\n}>()({\n name: 'VSelect',\n\n props: {\n ...makeSelectProps(),\n ...omit(makeVTextFieldProps({\n modelValue: null,\n }), ['validationValue', 'dirty', 'appendInnerIcon']),\n ...makeTransitionProps({ transition: { component: VDialogTransition } }),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const menu = useProxiedModel(props, 'menu')\n const { items, transformIn, transformOut } = useItems(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const selections = computed(() => {\n return model.value.map(v => {\n return items.value.find(item => props.valueComparator(item.value, v.value)) || v\n })\n })\n const selected = computed(() => selections.value.map(selection => selection.props.value))\n const listRef = ref<VList>()\n\n function onClear (e: MouseEvent) {\n model.value = []\n\n if (props.openOnClear) {\n menu.value = true\n }\n }\n function onClickControl () {\n if (\n (props.hideNoData && !items.value.length) ||\n props.readonly\n ) return\n\n menu.value = !menu.value\n }\n function onKeydown (e: KeyboardEvent) {\n if (props.readonly) return\n\n if (['Enter', 'ArrowDown', ' '].includes(e.key)) {\n e.preventDefault()\n menu.value = true\n }\n\n if (['Escape', 'Tab'].includes(e.key)) {\n menu.value = false\n }\n\n if (e.key === 'ArrowDown') {\n listRef.value?.focus('next')\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n listRef.value?.focus('prev')\n } else if (e.key === 'Home') {\n e.preventDefault()\n listRef.value?.focus('first')\n } else if (e.key === 'End') {\n e.preventDefault()\n listRef.value?.focus('last')\n }\n }\n function select (item: InternalItem) {\n if (props.multiple) {\n const index = selected.value.findIndex(selection => selection === item.value)\n\n if (index === -1) {\n model.value = [...model.value, item]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item]\n menu.value = false\n }\n }\n function onBlur (e: FocusEvent) {\n if (!listRef.value?.$el.contains(e.relatedTarget as HTMLElement)) {\n menu.value = false\n }\n }\n function onFocusout (e: FocusEvent) {\n if (e.relatedTarget == null) {\n vTextFieldRef.value?.focus()\n }\n }\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n const [textFieldProps] = filterVTextFieldProps(props)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n { ...textFieldProps }\n modelValue={ model.value.map(v => v.props.value).join(', ') }\n onUpdate:modelValue={ v => { if (v == null) model.value = [] } }\n validationValue={ model.externalValue }\n dirty={ model.value.length > 0 }\n class={[\n 'v-select',\n {\n 'v-select--active-menu': menu.value,\n 'v-select--chips': !!props.chips,\n [`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,\n 'v-select--selected': model.value.length,\n },\n ]}\n appendInnerIcon={ props.menuIcon }\n readonly\n onClick:clear={ onClear }\n onClick:control={ onClickControl }\n onBlur={ onBlur }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-select__content\"\n eager={ props.eager }\n openOnClick={ false }\n closeOnContentClick={ false }\n transition={ props.transition }\n { ...props.menuProps }\n >\n <VList\n ref={ listRef }\n selected={ selected.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onFocusout={ onFocusout }\n >\n { !items.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n )) }\n\n { slots['prepend-item']?.() }\n\n { items.value.map((item, index) => slots.item?.({\n item,\n index,\n props: mergeProps(item.props, { onClick: () => select(item) }),\n }) ?? (\n <VListItem\n key={ index }\n { ...item.props }\n onClick={ () => select(item) }\n >\n {{\n prepend: ({ isSelected }) => props.multiple && !props.hideSelected ? (\n <VCheckboxBtn modelValue={ isSelected } ripple={ false } />\n ) : undefined,\n }}\n </VListItem>\n )) }\n\n { slots['append-item']?.() }\n </VList>\n </VMenu>\n\n { selections.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n modelValue: true,\n 'onUpdate:modelValue': undefined,\n }\n\n return (\n <div key={ item.value } class=\"v-select__selection\">\n { hasChips ? (\n <VDefaultsProvider\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title,\n },\n }}\n >\n { slots.chip\n ? slots.chip({ item, index, props: slotProps })\n : (<VChip { ...slotProps } />)\n }\n </VDefaultsProvider>\n ) : (\n slots.selection\n ? slots.selection({ item, index })\n : (\n <span class=\"v-select__selection-text\">\n { item.title }\n { props.multiple && (index < selections.value.length - 1) && (\n <span class=\"v-select__selection-comma\">,</span>\n ) }\n </span>\n )\n )}\n </div>\n )\n }) }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return forwardRefs({\n menu,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VSelect = InstanceType<typeof VSelect>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,qBAAqB,EAAEC,mBAAmB;AAAA,SAC1CC,YAAY;AAAA,SACZC,KAAK;AAAA,SACLC,iBAAiB;AAAA,SACjBC,iBAAiB;AAAA,SACjBC,KAAK,EAAEC,SAAS;AAAA,SAChBC,KAAK;AAAA,SACLC,UAAU,mCAEnB;AAAA,SACSC,cAAc,EAAEC,QAAQ;AAAA,SACxBC,mBAAmB;AAAA,SACnBC,WAAW;AAAA,SACXC,SAAS;AAAA,SACTC,eAAe;AAAA,SACfC,SAAS,uCAElB;AACA,SAASC,QAAQ,EAAEC,UAAU,EAAEC,GAAG,QAAQ,KAAK;AAAA,SACtCC,SAAS,EAAEC,gBAAgB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,SAAS,EAAEC,WAAW,gCAEhF;AAOA,OAAO,MAAMC,eAAe,GAAGH,YAAY,CAAC;EAC1CI,KAAK,EAAEC,OAAO;EACdC,aAAa,EAAED,OAAO;EACtBE,KAAK,EAAEF,OAAO;EACdG,UAAU,EAAEH,OAAO;EACnBI,YAAY,EAAEJ,OAAO;EACrBK,IAAI,EAAEL,OAAO;EACbM,QAAQ,EAAE;IACRC,IAAI,EAAEnB,SAAS;IACfoB,OAAO,EAAE;EACX,CAAC;EACDC,SAAS,EAAE;IACTF,IAAI,EAAEG;EACR,CAAC;EACDC,QAAQ,EAAEX,OAAO;EACjBY,UAAU,EAAE;IACVL,IAAI,EAAEM,MAAM;IACZL,OAAO,EAAE;EACX,CAAC;EACDM,WAAW,EAAEd,OAAO;EACpBe,eAAe,EAAE;IACfR,IAAI,EAAES,QAAsC;IAC5CR,OAAO,EAAEhB;EACX,CAAC;EAED,GAAGV,cAAc,CAAC;IAAEmC,YAAY,EAAE;EAAM,CAAC;AAC3C,CAAC,EAAE,UAAU,CAAC;AAad,OAAO,MAAMC,OAAO,GAAGzB,gBAAgB,EAsBnC,CAAC;EACH0B,IAAI,EAAE,SAAS;EAEfC,KAAK,EAAE;IACL,GAAGtB,eAAe,EAAE;IACpB,GAAGJ,IAAI,CAACrB,mBAAmB,CAAC;MAC1BgD,UAAU,EAAE;IACd,CAAC,CAAC,EAAE,CAAC,iBAAiB,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;IACpD,GAAGrC,mBAAmB,CAAC;MAAEsC,UAAU,EAAE;QAAEC,SAAS,EAAE9C;MAAkB;IAAE,CAAC;EACzE,CAAC;EAED+C,KAAK,EAAE;IACL,mBAAmB,EAAGC,GAAQ,IAAK,IAAI;IACvC,aAAa,EAAGA,GAAY,IAAK;EACnC,CAAC;EAEDC,KAAK,CAAEN,KAAK,QAAa;IAAA,IAAX;MAAEO;IAAM,CAAC;IACrB,MAAM;MAAEC;IAAE,CAAC,GAAG1C,SAAS,EAAE;IACzB,MAAM2C,aAAa,GAAGtC,GAAG,EAAE;IAC3B,MAAMc,IAAI,GAAGlB,eAAe,CAACiC,KAAK,EAAE,MAAM,CAAC;IAC3C,MAAM;MAAEU,KAAK;MAAEC,WAAW;MAAEC;IAAa,CAAC,GAAGjD,QAAQ,CAACqC,KAAK,CAAC;IAC5D,MAAMa,KAAK,GAAG9C,eAAe,CAC3BiC,KAAK,EACL,YAAY,EACZ,EAAE,EACFc,CAAC,IAAIH,WAAW,CAAClC,WAAW,CAACqC,CAAC,CAAC,CAAC,EAChCA,CAAC,IAAI;MACH,MAAMC,WAAW,GAAGH,YAAY,CAACE,CAAC,CAAC;MACnC,OAAOd,KAAK,CAACT,QAAQ,GAAGwB,WAAW,GAAIA,WAAW,CAAC,CAAC,CAAC,IAAI,IAAK;IAChE,CAAC,CACF;IACD,MAAMC,UAAU,GAAG/C,QAAQ,CAAC,MAAM;MAChC,OAAO4C,KAAK,CAACI,KAAK,CAACC,GAAG,CAACJ,CAAC,IAAI;QAC1B,OAAOJ,KAAK,CAACO,KAAK,CAACE,IAAI,CAACC,IAAI,IAAIpB,KAAK,CAACL,eAAe,CAACyB,IAAI,CAACH,KAAK,EAAEH,CAAC,CAACG,KAAK,CAAC,CAAC,IAAIH,CAAC;MAClF,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,MAAMO,QAAQ,GAAGpD,QAAQ,CAAC,MAAM+C,UAAU,CAACC,KAAK,CAACC,GAAG,CAACI,SAAS,IAAIA,SAAS,CAACtB,KAAK,CAACiB,KAAK,CAAC,CAAC;IACzF,MAAMM,OAAO,GAAGpD,GAAG,EAAS;IAE5B,SAASqD,OAAO,CAAEC,CAAa,EAAE;MAC/BZ,KAAK,CAACI,KAAK,GAAG,EAAE;MAEhB,IAAIjB,KAAK,CAACN,WAAW,EAAE;QACrBT,IAAI,CAACgC,KAAK,GAAG,IAAI;MACnB;IACF;IACA,SAASS,cAAc,GAAI;MACzB,IACG1B,KAAK,CAACjB,UAAU,IAAI,CAAC2B,KAAK,CAACO,KAAK,CAACU,MAAM,IACxC3B,KAAK,CAAC4B,QAAQ,EACd;MAEF3C,IAAI,CAACgC,KAAK,GAAG,CAAChC,IAAI,CAACgC,KAAK;IAC1B;IACA,SAASY,SAAS,CAAEJ,CAAgB,EAAE;MACpC,IAAIzB,KAAK,CAAC4B,QAAQ,EAAE;MAEpB,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,CAACE,QAAQ,CAACL,CAAC,CAACM,GAAG,CAAC,EAAE;QAC/CN,CAAC,CAACO,cAAc,EAAE;QAClB/C,IAAI,CAACgC,KAAK,GAAG,IAAI;MACnB;MAEA,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,CAACa,QAAQ,CAACL,CAAC,CAACM,GAAG,CAAC,EAAE;QACrC9C,IAAI,CAACgC,KAAK,GAAG,KAAK;MACpB;MAEA,IAAIQ,CAAC,CAACM,GAAG,KAAK,WAAW,EAAE;QAAA;QACzB,kBAAAR,OAAO,CAACN,KAAK,qBAAb,eAAegB,KAAK,CAAC,MAAM,CAAC;MAC9B,CAAC,MAAM,IAAIR,CAAC,CAACM,GAAG,KAAK,SAAS,EAAE;QAAA;QAC9BN,CAAC,CAACO,cAAc,EAAE;QAClB,mBAAAT,OAAO,CAACN,KAAK,qBAAb,gBAAegB,KAAK,CAAC,MAAM,CAAC;MAC9B,CAAC,MAAM,IAAIR,CAAC,CAACM,GAAG,KAAK,MAAM,EAAE;QAAA;QAC3BN,CAAC,CAACO,cAAc,EAAE;QAClB,mBAAAT,OAAO,CAACN,KAAK,qBAAb,gBAAegB,KAAK,CAAC,OAAO,CAAC;MAC/B,CAAC,MAAM,IAAIR,CAAC,CAACM,GAAG,KAAK,KAAK,EAAE;QAAA;QAC1BN,CAAC,CAACO,cAAc,EAAE;QAClB,mBAAAT,OAAO,CAACN,KAAK,qBAAb,gBAAegB,KAAK,CAAC,MAAM,CAAC;MAC9B;IACF;IACA,SAASC,MAAM,CAAEd,IAAkB,EAAE;MACnC,IAAIpB,KAAK,CAACT,QAAQ,EAAE;QAClB,MAAM4C,KAAK,GAAGd,QAAQ,CAACJ,KAAK,CAACmB,SAAS,CAACd,SAAS,IAAIA,SAAS,KAAKF,IAAI,CAACH,KAAK,CAAC;QAE7E,IAAIkB,KAAK,KAAK,CAAC,CAAC,EAAE;UAChBtB,KAAK,CAACI,KAAK,GAAG,CAAC,GAAGJ,KAAK,CAACI,KAAK,EAAEG,IAAI,CAAC;QACtC,CAAC,MAAM;UACL,MAAMH,KAAK,GAAG,CAAC,GAAGJ,KAAK,CAACI,KAAK,CAAC;UAC9BA,KAAK,CAACoB,MAAM,CAACF,KAAK,EAAE,CAAC,CAAC;UACtBtB,KAAK,CAACI,KAAK,GAAGA,KAAK;QACrB;MACF,CAAC,MAAM;QACLJ,KAAK,CAACI,KAAK,GAAG,CAACG,IAAI,CAAC;QACpBnC,IAAI,CAACgC,KAAK,GAAG,KAAK;MACpB;IACF;IACA,SAASqB,MAAM,CAAEb,CAAa,EAAE;MAAA;MAC9B,IAAI,qBAACF,OAAO,CAACN,KAAK,aAAb,gBAAesB,GAAG,CAACC,QAAQ,CAACf,CAAC,CAACgB,aAAa,CAAgB,GAAE;QAChExD,IAAI,CAACgC,KAAK,GAAG,KAAK;MACpB;IACF;IACA,SAASyB,UAAU,CAAEjB,CAAa,EAAE;MAClC,IAAIA,CAAC,CAACgB,aAAa,IAAI,IAAI,EAAE;QAAA;QAC3B,wBAAAhC,aAAa,CAACQ,KAAK,qBAAnB,qBAAqBgB,KAAK,EAAE;MAC9B;IACF;IAEAzD,SAAS,CAAC,MAAM;MACd,MAAMmE,QAAQ,GAAG,CAAC,EAAE3C,KAAK,CAACrB,KAAK,IAAI4B,KAAK,CAACqC,IAAI,CAAC;MAC9C,MAAM,CAACC,cAAc,CAAC,GAAG7F,qBAAqB,CAACgD,KAAK,CAAC;MAErD;QAAA,OAEUS;MAAa,GACdoC,cAAc;QAAA,cACNhC,KAAK,CAACI,KAAK,CAACC,GAAG,CAACJ,CAAC,IAAIA,CAAC,CAACd,KAAK,CAACiB,KAAK,CAAC,CAAC6B,IAAI,CAAC,IAAI,CAAC;QAAA,uBACrChC,CAAC,IAAI;UAAE,IAAIA,CAAC,IAAI,IAAI,EAAED,KAAK,CAACI,KAAK,GAAG,EAAE;QAAC,CAAC;QAAA,mBAC5CJ,KAAK,CAACkC,aAAa;QAAA,SAC7BlC,KAAK,CAACI,KAAK,CAACU,MAAM,GAAG,CAAC;QAAA,SACvB,CACL,UAAU,EACV;UACE,uBAAuB,EAAE1C,IAAI,CAACgC,KAAK;UACnC,iBAAiB,EAAE,CAAC,CAACjB,KAAK,CAACrB,KAAK;UAChC,CAAE,aAAYqB,KAAK,CAACT,QAAQ,GAAG,UAAU,GAAG,QAAS,EAAC,GAAG,IAAI;UAC7D,oBAAoB,EAAEsB,KAAK,CAACI,KAAK,CAACU;QACpC,CAAC,CACF;QAAA,mBACiB3B,KAAK,CAACd,QAAQ;QAAA;QAAA,iBAEhBsC,OAAO;QAAA,mBACLE,cAAc;QAAA,UACvBY,MAAM;QAAA,aACHT;MAAS;QAGnB,GAAGtB,KAAK;QACRnB,OAAO,EAAE;UAAA;UAAA;YAAA,cAGOH,IAAI,CAACgC,KAAK;YAAA,iCAAVhC,IAAI,CAACgC,KAAK;YAAA,aACV,QAAQ;YAAA,gBACL,mBAAmB;YAAA,SACxBjB,KAAK,CAAClB,KAAK;YAAA,eACL,KAAK;YAAA,uBACG,KAAK;YAAA,cACdkB,KAAK,CAACE;UAAU,GACxBF,KAAK,CAACX,SAAS;YAAA;cAAA,OAGZkC,OAAO;cAAA,YACFF,QAAQ,CAACJ,KAAK;cAAA,kBACRjB,KAAK,CAACT,QAAQ,GAAG,aAAa,GAAG,oBAAoB;cAAA,eACvDkC,CAAa,IAAKA,CAAC,CAACO,cAAc,EAAE;cAAA,cACtCU;YAAU;cAAA,gBAErB,CAAChC,KAAK,CAACO,KAAK,CAACU,MAAM,IAAI,CAAC3B,KAAK,CAACjB,UAAU,KAAK,kBAAAwB,KAAK,CAAC,SAAS,CAAC,qBAAhB,mBAAAA,KAAK,CAAe;gBAAA,SAC9CC,CAAC,CAACR,KAAK,CAACR,UAAU;cAAC,QACvC,CAAC,wBAEAe,KAAK,CAAC,cAAc,CAAC,qBAArB,wBAAAA,KAAK,CAAoB,EAEzBG,KAAK,CAACO,KAAK,CAACC,GAAG,CAAC,CAACE,IAAI,EAAEe,KAAK;gBAAA;gBAAA,OAAK,gBAAA5B,KAAK,CAACa,IAAI,qBAAV,iBAAAb,KAAK,EAAQ;kBAC9Ca,IAAI;kBACJe,KAAK;kBACLnC,KAAK,EAAE9B,UAAU,CAACkD,IAAI,CAACpB,KAAK,EAAE;oBAAEgD,OAAO,EAAE,MAAMd,MAAM,CAACd,IAAI;kBAAE,CAAC;gBAC/D,CAAC,CAAC;kBAAA,OAEQe;gBAAK,GACNf,IAAI,CAACpB,KAAK;kBAAA,WACL,MAAMkC,MAAM,CAACd,IAAI;gBAAC;kBAG1B6B,OAAO,EAAE;oBAAA,IAAC;sBAAEC;oBAAW,CAAC;oBAAA,OAAKlD,KAAK,CAACT,QAAQ,IAAI,CAACS,KAAK,CAAChB,YAAY;sBAAA,cACrCkE,UAAU;sBAAA,UAAY;oBAAK,WACpDC,SAAS;kBAAA;gBAAA,EAGlB;cAAA,EAAC,uBAEA5C,KAAK,CAAC,aAAa,CAAC,qBAApB,uBAAAA,KAAK,CAAmB;YAAA;UAAA,IAI5BS,UAAU,CAACC,KAAK,CAACC,GAAG,CAAC,CAACE,IAAI,EAAEe,KAAK,KAAK;YACtC,SAASiB,WAAW,CAAE3B,CAAQ,EAAE;cAC9BA,CAAC,CAAC4B,eAAe,EAAE;cACnB5B,CAAC,CAACO,cAAc,EAAE;cAElBE,MAAM,CAACd,IAAI,CAAC;YACd;YAEA,MAAMkC,SAAS,GAAG;cAChB,eAAe,EAAEF,WAAW;cAC5BnD,UAAU,EAAE,IAAI;cAChB,qBAAqB,EAAEkD;YACzB,CAAC;YAED;cAAA,OACa/B,IAAI,CAACH,KAAK;cAAA,SAAS;YAAqB,IAC/C0B,QAAQ;cAAA,YAEI;gBACRxF,KAAK,EAAE;kBACLoG,QAAQ,EAAEvD,KAAK,CAACnB,aAAa;kBAC7B2E,IAAI,EAAE,OAAO;kBACbC,IAAI,EAAErC,IAAI,CAACsC;gBACb;cACF;YAAC;cAAA,gBAECnD,KAAK,CAACqC,IAAI,GACRrC,KAAK,CAACqC,IAAI,CAAC;gBAAExB,IAAI;gBAAEe,KAAK;gBAAEnC,KAAK,EAAEsD;cAAU,CAAC,CAAC,uBAChCA,SAAS,OAAM;YAAA,KAIlC/C,KAAK,CAACe,SAAS,GACXf,KAAK,CAACe,SAAS,CAAC;cAAEF,IAAI;cAAEe;YAAM,CAAC,CAAC;cAAA,SAEpB;YAA0B,IAClCf,IAAI,CAACsC,KAAK,EACV1D,KAAK,CAACT,QAAQ,IAAK4C,KAAK,GAAGnB,UAAU,CAACC,KAAK,CAACU,MAAM,GAAG,CAAE;cAAA,SAC3C;YAA2B,2BACxC,EAGR;UAGP,CAAC,CAAC;QAAA;MAEL;IAIT,CAAC,CAAC;IAEF,OAAO9D,WAAW,CAAC;MACjBoB,IAAI;MACJiD;IACF,CAAC,EAAEzB,aAAa,CAAC;EACnB;AACF,CAAC,CAAC"}
@@ -7,6 +7,7 @@ declare type Tblock = typeof block[number];
7
7
  declare type Tinline = typeof inline[number];
8
8
  declare type Anchor = Tblock | Tinline | 'center' | 'center center' | `${Tblock} ${Tinline | 'center'}` | `${Tinline} ${Tblock | 'center'}`;
9
9
 
10
+ declare function deepEqual(a: any, b: any): boolean;
10
11
  declare type SelectItemKey = boolean | string | (string | number)[] | ((item: Record<string, any>, fallback?: any) => any);
11
12
  declare type EventProp<T = (...args: any[]) => any> = T | T[];
12
13
  declare const EventProp: PropType<EventProp<(...args: any[]) => any>>;
@@ -129,7 +130,6 @@ declare const VSelect: {
129
130
  target: PropType<HTMLElement>;
130
131
  }>>, {}>;
131
132
  };
132
- loading: boolean;
133
133
  menu: boolean;
134
134
  autofocus: boolean;
135
135
  eager: boolean;
@@ -150,6 +150,7 @@ declare const VSelect: {
150
150
  persistentHint: boolean;
151
151
  persistentPlaceholder: boolean;
152
152
  persistentCounter: boolean;
153
+ valueComparator: typeof deepEqual;
153
154
  itemTitle: SelectItemKey;
154
155
  itemValue: SelectItemKey;
155
156
  itemChildren: SelectItemKey;
@@ -202,7 +203,7 @@ declare const VSelect: {
202
203
  default: string;
203
204
  validator: (v: any) => boolean;
204
205
  };
205
- loading: BooleanConstructor;
206
+ loading: (StringConstructor | BooleanConstructor)[];
206
207
  label: StringConstructor;
207
208
  prefix: StringConstructor;
208
209
  autofocus: BooleanConstructor;
@@ -220,15 +221,15 @@ declare const VSelect: {
220
221
  default: string;
221
222
  validator: (v: any) => boolean;
222
223
  };
223
- modelValue: {
224
- type: PropType<any>;
225
- default: any;
226
- };
227
224
  variant: {
228
225
  type: PropType<"filled" | "outlined" | "plain" | "underlined" | "solo">;
229
226
  default: string;
230
227
  validator: (v: any) => boolean;
231
228
  };
229
+ modelValue: {
230
+ type: PropType<any>;
231
+ default: any;
232
+ };
232
233
  bgColor: StringConstructor;
233
234
  prependIcon: PropType<IconValue>;
234
235
  appendIcon: PropType<IconValue>;
@@ -486,9 +487,13 @@ declare const VSelect: {
486
487
  default: string;
487
488
  };
488
489
  openOnClear: BooleanConstructor;
490
+ valueComparator: {
491
+ type: PropType<typeof deepEqual>;
492
+ default: typeof deepEqual;
493
+ };
489
494
  }, "multiple" | "$children" | "items" | "v-slots" | "v-slot:prepend" | "v-slot:append" | "modelValue" | "onUpdate:modelValue" | "v-slot:details" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader" | "v-slot:item" | "returnObject" | "v-slot:chip" | "v-slot:selection" | "v-slot:prepend-item" | "v-slot:append-item" | "v-slot:no-data">>> & {
490
495
  "onUpdate:menu"?: ((val: boolean) => any) | undefined;
491
- } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "reverse" | "type" | "error" | "active" | "direction" | "transition" | "loading" | "menu" | "autofocus" | "eager" | "disabled" | "readonly" | "messages" | "noDataText" | "density" | "variant" | "clearIcon" | "focused" | "errorMessages" | "maxErrors" | "rules" | "clearable" | "persistentClear" | "singleLine" | "persistentHint" | "persistentPlaceholder" | "persistentCounter" | "itemTitle" | "itemValue" | "itemChildren" | "itemProps" | "chips" | "closableChips" | "hideNoData" | "hideSelected" | "menuIcon" | "openOnClear">;
496
+ } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "reverse" | "type" | "error" | "active" | "direction" | "transition" | "menu" | "autofocus" | "eager" | "disabled" | "readonly" | "messages" | "noDataText" | "density" | "variant" | "clearIcon" | "focused" | "errorMessages" | "maxErrors" | "rules" | "clearable" | "persistentClear" | "singleLine" | "persistentHint" | "persistentPlaceholder" | "persistentCounter" | "valueComparator" | "itemTitle" | "itemValue" | "itemChildren" | "itemProps" | "chips" | "closableChips" | "hideNoData" | "hideSelected" | "menuIcon" | "openOnClear">;
492
497
  $attrs: {
493
498
  [x: string]: unknown;
494
499
  };
@@ -544,7 +549,7 @@ declare const VSelect: {
544
549
  default: string;
545
550
  validator: (v: any) => boolean;
546
551
  };
547
- loading: BooleanConstructor;
552
+ loading: (StringConstructor | BooleanConstructor)[];
548
553
  label: StringConstructor;
549
554
  prefix: StringConstructor;
550
555
  autofocus: BooleanConstructor;
@@ -562,15 +567,15 @@ declare const VSelect: {
562
567
  default: string;
563
568
  validator: (v: any) => boolean;
564
569
  };
565
- modelValue: {
566
- type: PropType<any>;
567
- default: any;
568
- };
569
570
  variant: {
570
571
  type: PropType<"filled" | "outlined" | "plain" | "underlined" | "solo">;
571
572
  default: string;
572
573
  validator: (v: any) => boolean;
573
574
  };
575
+ modelValue: {
576
+ type: PropType<any>;
577
+ default: any;
578
+ };
574
579
  bgColor: StringConstructor;
575
580
  prependIcon: PropType<IconValue>;
576
581
  appendIcon: PropType<IconValue>;
@@ -828,6 +833,10 @@ declare const VSelect: {
828
833
  default: string;
829
834
  };
830
835
  openOnClear: BooleanConstructor;
836
+ valueComparator: {
837
+ type: PropType<typeof deepEqual>;
838
+ default: typeof deepEqual;
839
+ };
831
840
  }, "multiple" | "$children" | "items" | "v-slots" | "v-slot:prepend" | "v-slot:append" | "modelValue" | "onUpdate:modelValue" | "v-slot:details" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader" | "v-slot:item" | "returnObject" | "v-slot:chip" | "v-slot:selection" | "v-slot:prepend-item" | "v-slot:append-item" | "v-slot:no-data">>> & {
832
841
  "onUpdate:menu"?: ((val: boolean) => any) | undefined;
833
842
  }, {
@@ -853,7 +862,6 @@ declare const VSelect: {
853
862
  target: PropType<HTMLElement>;
854
863
  }>>, {}>;
855
864
  };
856
- loading: boolean;
857
865
  menu: boolean;
858
866
  autofocus: boolean;
859
867
  eager: boolean;
@@ -874,6 +882,7 @@ declare const VSelect: {
874
882
  persistentHint: boolean;
875
883
  persistentPlaceholder: boolean;
876
884
  persistentCounter: boolean;
885
+ valueComparator: typeof deepEqual;
877
886
  itemTitle: SelectItemKey;
878
887
  itemValue: SelectItemKey;
879
888
  itemChildren: SelectItemKey;
@@ -946,7 +955,7 @@ declare const VSelect: {
946
955
  default: string;
947
956
  validator: (v: any) => boolean;
948
957
  };
949
- loading: BooleanConstructor;
958
+ loading: (StringConstructor | BooleanConstructor)[];
950
959
  label: StringConstructor;
951
960
  prefix: StringConstructor;
952
961
  autofocus: BooleanConstructor;
@@ -964,15 +973,15 @@ declare const VSelect: {
964
973
  default: string;
965
974
  validator: (v: any) => boolean;
966
975
  };
967
- modelValue: {
968
- type: PropType<any>;
969
- default: any;
970
- };
971
976
  variant: {
972
977
  type: PropType<"filled" | "outlined" | "plain" | "underlined" | "solo">;
973
978
  default: string;
974
979
  validator: (v: any) => boolean;
975
980
  };
981
+ modelValue: {
982
+ type: PropType<any>;
983
+ default: any;
984
+ };
976
985
  bgColor: StringConstructor;
977
986
  prependIcon: PropType<IconValue>;
978
987
  appendIcon: PropType<IconValue>;
@@ -1230,6 +1239,10 @@ declare const VSelect: {
1230
1239
  default: string;
1231
1240
  };
1232
1241
  openOnClear: BooleanConstructor;
1242
+ valueComparator: {
1243
+ type: PropType<typeof deepEqual>;
1244
+ default: typeof deepEqual;
1245
+ };
1233
1246
  }, "multiple" | "$children" | "items" | "v-slots" | "v-slot:prepend" | "v-slot:append" | "modelValue" | "onUpdate:modelValue" | "v-slot:details" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader" | "v-slot:item" | "returnObject" | "v-slot:chip" | "v-slot:selection" | "v-slot:prepend-item" | "v-slot:append-item" | "v-slot:no-data">>> & {
1234
1247
  "onUpdate:menu"?: ((val: boolean) => any) | undefined;
1235
1248
  } & vue.ShallowUnwrapRef<{
@@ -1283,7 +1296,7 @@ declare const VSelect: {
1283
1296
  default: string;
1284
1297
  validator: (v: any) => boolean;
1285
1298
  };
1286
- loading: BooleanConstructor;
1299
+ loading: (StringConstructor | BooleanConstructor)[];
1287
1300
  label: StringConstructor;
1288
1301
  prefix: StringConstructor;
1289
1302
  autofocus: BooleanConstructor;
@@ -1301,15 +1314,15 @@ declare const VSelect: {
1301
1314
  default: string;
1302
1315
  validator: (v: any) => boolean;
1303
1316
  };
1304
- modelValue: {
1305
- type: PropType<any>;
1306
- default: any;
1307
- };
1308
1317
  variant: {
1309
1318
  type: PropType<"filled" | "outlined" | "plain" | "underlined" | "solo">;
1310
1319
  default: string;
1311
1320
  validator: (v: any) => boolean;
1312
1321
  };
1322
+ modelValue: {
1323
+ type: PropType<any>;
1324
+ default: any;
1325
+ };
1313
1326
  bgColor: StringConstructor;
1314
1327
  prependIcon: PropType<IconValue>;
1315
1328
  appendIcon: PropType<IconValue>;
@@ -1567,6 +1580,10 @@ declare const VSelect: {
1567
1580
  default: string;
1568
1581
  };
1569
1582
  openOnClear: BooleanConstructor;
1583
+ valueComparator: {
1584
+ type: PropType<typeof deepEqual>;
1585
+ default: typeof deepEqual;
1586
+ };
1570
1587
  }, "multiple" | "$children" | "items" | "v-slots" | "v-slot:prepend" | "v-slot:append" | "modelValue" | "onUpdate:modelValue" | "v-slot:details" | "v-slot:clear" | "v-slot:prepend-inner" | "v-slot:append-inner" | "v-slot:label" | "v-slot:loader" | "v-slot:item" | "returnObject" | "v-slot:chip" | "v-slot:selection" | "v-slot:prepend-item" | "v-slot:append-item" | "v-slot:no-data">>> & {
1571
1588
  "onUpdate:menu"?: ((val: boolean) => any) | undefined;
1572
1589
  }, {
@@ -1592,7 +1609,6 @@ declare const VSelect: {
1592
1609
  target: PropType<HTMLElement>;
1593
1610
  }>>, {}>;
1594
1611
  };
1595
- loading: boolean;
1596
1612
  menu: boolean;
1597
1613
  autofocus: boolean;
1598
1614
  eager: boolean;
@@ -1613,6 +1629,7 @@ declare const VSelect: {
1613
1629
  persistentHint: boolean;
1614
1630
  persistentPlaceholder: boolean;
1615
1631
  persistentCounter: boolean;
1632
+ valueComparator: typeof deepEqual;
1616
1633
  itemTitle: SelectItemKey;
1617
1634
  itemValue: SelectItemKey;
1618
1635
  itemChildren: SelectItemKey;
@@ -89,8 +89,8 @@ declare const VSnackbar: {
89
89
  timeout: string | number;
90
90
  vertical: boolean;
91
91
  rounded: string | number | boolean;
92
- modelValue: boolean;
93
92
  variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
93
+ modelValue: boolean;
94
94
  activatorProps: Record<string, any>;
95
95
  openOnClick: boolean;
96
96
  openOnHover: boolean;
@@ -195,7 +195,7 @@ declare const VSnackbar: {
195
195
  vertical: BooleanConstructor;
196
196
  }, "$children" | "v-slots" | "v-slot:default" | "v-slot:activator" | "v-slot:actions">>> & {
197
197
  "onUpdate:modelValue"?: ((v: boolean) => any) | undefined;
198
- } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "absolute" | "location" | "origin" | "transition" | "zIndex" | "eager" | "disabled" | "timeout" | "vertical" | "rounded" | "modelValue" | "variant" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "locationStrategy" | "closeOnBack" | "contained" | "multiLine">;
198
+ } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "absolute" | "location" | "origin" | "transition" | "zIndex" | "eager" | "disabled" | "timeout" | "vertical" | "rounded" | "variant" | "modelValue" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "locationStrategy" | "closeOnBack" | "contained" | "multiLine">;
199
199
  $attrs: {
200
200
  [x: string]: unknown;
201
201
  };
@@ -330,6 +330,7 @@ declare const VSnackbar: {
330
330
  noClickAnimation: boolean;
331
331
  persistent: boolean;
332
332
  scrim: string | boolean;
333
+ _disableGlobalStack: boolean;
333
334
  }> & Omit<Readonly<vue.ExtractPropTypes<Omit<{
334
335
  transition: {
335
336
  type: vue.PropType<string | boolean | (vue.TransitionProps & {
@@ -405,11 +406,12 @@ declare const VSnackbar: {
405
406
  type: (StringConstructor | NumberConstructor)[];
406
407
  default: number;
407
408
  };
409
+ _disableGlobalStack: BooleanConstructor;
408
410
  }, "$children" | "v-slots" | "v-slot:default" | "v-slot:activator">>> & {
409
411
  onAfterLeave?: (() => any) | undefined;
410
412
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
411
413
  "onClick:outside"?: ((e: MouseEvent) => any) | undefined;
412
- } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "absolute" | "location" | "origin" | "transition" | "zIndex" | "eager" | "disabled" | "modelValue" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "locationStrategy" | "scrollStrategy" | "closeOnBack" | "contained" | "noClickAnimation" | "persistent" | "scrim">;
414
+ } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "absolute" | "location" | "origin" | "transition" | "zIndex" | "eager" | "disabled" | "modelValue" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "locationStrategy" | "scrollStrategy" | "closeOnBack" | "contained" | "noClickAnimation" | "persistent" | "scrim" | "_disableGlobalStack">;
413
415
  $attrs: {
414
416
  [x: string]: unknown;
415
417
  };
@@ -498,6 +500,7 @@ declare const VSnackbar: {
498
500
  type: (StringConstructor | NumberConstructor)[];
499
501
  default: number;
500
502
  };
503
+ _disableGlobalStack: BooleanConstructor;
501
504
  }, "$children" | "v-slots" | "v-slot:default" | "v-slot:activator">>> & {
502
505
  onAfterLeave?: (() => any) | undefined;
503
506
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
@@ -538,6 +541,7 @@ declare const VSnackbar: {
538
541
  noClickAnimation: boolean;
539
542
  persistent: boolean;
540
543
  scrim: string | boolean;
544
+ _disableGlobalStack: boolean;
541
545
  }> & {
542
546
  beforeCreate?: ((() => void) | (() => void)[]) | undefined;
543
547
  created?: ((() => void) | (() => void)[]) | undefined;
@@ -633,6 +637,7 @@ declare const VSnackbar: {
633
637
  type: (StringConstructor | NumberConstructor)[];
634
638
  default: number;
635
639
  };
640
+ _disableGlobalStack: BooleanConstructor;
636
641
  }, "$children" | "v-slots" | "v-slot:default" | "v-slot:activator">>> & {
637
642
  onAfterLeave?: (() => any) | undefined;
638
643
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
@@ -673,7 +678,7 @@ declare const VSnackbar: {
673
678
  props: Record<string, any>;
674
679
  }) => vue.VNodeChild) | undefined;
675
680
  };
676
- }, "offset" | "height" | "width" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "onAfterLeave" | "$children" | "theme" | "v-slots" | "contentClass" | keyof vue.VNodeProps | keyof vue.AllowedComponentProps | "v-slot:default" | "onUpdate:modelValue" | "activator" | "v-slot:activator" | "closeDelay" | "openDelay" | "contentProps" | "attach" | "onClick:outside" | ("absolute" | "location" | "origin" | "transition" | "zIndex" | "eager" | "disabled" | "modelValue" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "locationStrategy" | "scrollStrategy" | "closeOnBack" | "contained" | "noClickAnimation" | "persistent" | "scrim")>, `$${any}`>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
681
+ }, "offset" | "height" | "width" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "onAfterLeave" | "$children" | "theme" | "v-slots" | "contentClass" | keyof vue.VNodeProps | keyof vue.AllowedComponentProps | "v-slot:default" | "onUpdate:modelValue" | "activator" | "v-slot:activator" | "closeDelay" | "openDelay" | "contentProps" | "attach" | "onClick:outside" | ("absolute" | "location" | "origin" | "transition" | "zIndex" | "eager" | "disabled" | "modelValue" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "locationStrategy" | "scrollStrategy" | "closeOnBack" | "contained" | "noClickAnimation" | "persistent" | "scrim" | "_disableGlobalStack")>, `$${any}`>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
677
682
  'update:modelValue': (v: boolean) => boolean;
678
683
  }, "$children" | "v-slots" | "v-slot:default" | "v-slot:activator" | "v-slot:actions">, string, {
679
684
  absolute: boolean;
@@ -688,8 +693,8 @@ declare const VSnackbar: {
688
693
  timeout: string | number;
689
694
  vertical: boolean;
690
695
  rounded: string | number | boolean;
691
- modelValue: boolean;
692
696
  variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
697
+ modelValue: boolean;
693
698
  activatorProps: Record<string, any>;
694
699
  openOnClick: boolean;
695
700
  openOnHover: boolean;
@@ -842,6 +847,7 @@ declare const VSnackbar: {
842
847
  noClickAnimation: boolean;
843
848
  persistent: boolean;
844
849
  scrim: string | boolean;
850
+ _disableGlobalStack: boolean;
845
851
  }> & Omit<Readonly<vue.ExtractPropTypes<Omit<{
846
852
  transition: {
847
853
  type: vue.PropType<string | boolean | (vue.TransitionProps & {
@@ -917,11 +923,12 @@ declare const VSnackbar: {
917
923
  type: (StringConstructor | NumberConstructor)[];
918
924
  default: number;
919
925
  };
926
+ _disableGlobalStack: BooleanConstructor;
920
927
  }, "$children" | "v-slots" | "v-slot:default" | "v-slot:activator">>> & {
921
928
  onAfterLeave?: (() => any) | undefined;
922
929
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
923
930
  "onClick:outside"?: ((e: MouseEvent) => any) | undefined;
924
- } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "absolute" | "location" | "origin" | "transition" | "zIndex" | "eager" | "disabled" | "modelValue" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "locationStrategy" | "scrollStrategy" | "closeOnBack" | "contained" | "noClickAnimation" | "persistent" | "scrim">;
931
+ } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "absolute" | "location" | "origin" | "transition" | "zIndex" | "eager" | "disabled" | "modelValue" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "locationStrategy" | "scrollStrategy" | "closeOnBack" | "contained" | "noClickAnimation" | "persistent" | "scrim" | "_disableGlobalStack">;
925
932
  $attrs: {
926
933
  [x: string]: unknown;
927
934
  };
@@ -1010,6 +1017,7 @@ declare const VSnackbar: {
1010
1017
  type: (StringConstructor | NumberConstructor)[];
1011
1018
  default: number;
1012
1019
  };
1020
+ _disableGlobalStack: BooleanConstructor;
1013
1021
  }, "$children" | "v-slots" | "v-slot:default" | "v-slot:activator">>> & {
1014
1022
  onAfterLeave?: (() => any) | undefined;
1015
1023
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
@@ -1050,6 +1058,7 @@ declare const VSnackbar: {
1050
1058
  noClickAnimation: boolean;
1051
1059
  persistent: boolean;
1052
1060
  scrim: string | boolean;
1061
+ _disableGlobalStack: boolean;
1053
1062
  }> & {
1054
1063
  beforeCreate?: ((() => void) | (() => void)[]) | undefined;
1055
1064
  created?: ((() => void) | (() => void)[]) | undefined;
@@ -1145,6 +1154,7 @@ declare const VSnackbar: {
1145
1154
  type: (StringConstructor | NumberConstructor)[];
1146
1155
  default: number;
1147
1156
  };
1157
+ _disableGlobalStack: BooleanConstructor;
1148
1158
  }, "$children" | "v-slots" | "v-slot:default" | "v-slot:activator">>> & {
1149
1159
  onAfterLeave?: (() => any) | undefined;
1150
1160
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
@@ -1185,7 +1195,7 @@ declare const VSnackbar: {
1185
1195
  props: Record<string, any>;
1186
1196
  }) => vue.VNodeChild) | undefined;
1187
1197
  };
1188
- }, "offset" | "height" | "width" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "onAfterLeave" | "$children" | "theme" | "v-slots" | "contentClass" | keyof vue.VNodeProps | keyof vue.AllowedComponentProps | "v-slot:default" | "onUpdate:modelValue" | "activator" | "v-slot:activator" | "closeDelay" | "openDelay" | "contentProps" | "attach" | "onClick:outside" | ("absolute" | "location" | "origin" | "transition" | "zIndex" | "eager" | "disabled" | "modelValue" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "locationStrategy" | "scrollStrategy" | "closeOnBack" | "contained" | "noClickAnimation" | "persistent" | "scrim")>, `$${any}`>> & {} & vue.ComponentCustomProperties;
1198
+ }, "offset" | "height" | "width" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "onAfterLeave" | "$children" | "theme" | "v-slots" | "contentClass" | keyof vue.VNodeProps | keyof vue.AllowedComponentProps | "v-slot:default" | "onUpdate:modelValue" | "activator" | "v-slot:activator" | "closeDelay" | "openDelay" | "contentProps" | "attach" | "onClick:outside" | ("absolute" | "location" | "origin" | "transition" | "zIndex" | "eager" | "disabled" | "modelValue" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "locationStrategy" | "scrollStrategy" | "closeOnBack" | "contained" | "noClickAnimation" | "persistent" | "scrim" | "_disableGlobalStack")>, `$${any}`>> & {} & vue.ComponentCustomProperties;
1189
1199
  __isFragment?: undefined;
1190
1200
  __isTeleport?: undefined;
1191
1201
  __isSuspense?: undefined;
@@ -1310,6 +1320,7 @@ declare const VSnackbar: {
1310
1320
  noClickAnimation: boolean;
1311
1321
  persistent: boolean;
1312
1322
  scrim: string | boolean;
1323
+ _disableGlobalStack: boolean;
1313
1324
  }> & Omit<Readonly<vue.ExtractPropTypes<Omit<{
1314
1325
  transition: {
1315
1326
  type: vue.PropType<string | boolean | (vue.TransitionProps & {
@@ -1385,11 +1396,12 @@ declare const VSnackbar: {
1385
1396
  type: (StringConstructor | NumberConstructor)[];
1386
1397
  default: number;
1387
1398
  };
1399
+ _disableGlobalStack: BooleanConstructor;
1388
1400
  }, "$children" | "v-slots" | "v-slot:default" | "v-slot:activator">>> & {
1389
1401
  onAfterLeave?: (() => any) | undefined;
1390
1402
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
1391
1403
  "onClick:outside"?: ((e: MouseEvent) => any) | undefined;
1392
- } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "absolute" | "location" | "origin" | "transition" | "zIndex" | "eager" | "disabled" | "modelValue" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "locationStrategy" | "scrollStrategy" | "closeOnBack" | "contained" | "noClickAnimation" | "persistent" | "scrim">;
1404
+ } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "absolute" | "location" | "origin" | "transition" | "zIndex" | "eager" | "disabled" | "modelValue" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "locationStrategy" | "scrollStrategy" | "closeOnBack" | "contained" | "noClickAnimation" | "persistent" | "scrim" | "_disableGlobalStack">;
1393
1405
  $attrs: {
1394
1406
  [x: string]: unknown;
1395
1407
  };
@@ -1478,6 +1490,7 @@ declare const VSnackbar: {
1478
1490
  type: (StringConstructor | NumberConstructor)[];
1479
1491
  default: number;
1480
1492
  };
1493
+ _disableGlobalStack: BooleanConstructor;
1481
1494
  }, "$children" | "v-slots" | "v-slot:default" | "v-slot:activator">>> & {
1482
1495
  onAfterLeave?: (() => any) | undefined;
1483
1496
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
@@ -1518,6 +1531,7 @@ declare const VSnackbar: {
1518
1531
  noClickAnimation: boolean;
1519
1532
  persistent: boolean;
1520
1533
  scrim: string | boolean;
1534
+ _disableGlobalStack: boolean;
1521
1535
  }> & {
1522
1536
  beforeCreate?: ((() => void) | (() => void)[]) | undefined;
1523
1537
  created?: ((() => void) | (() => void)[]) | undefined;
@@ -1613,6 +1627,7 @@ declare const VSnackbar: {
1613
1627
  type: (StringConstructor | NumberConstructor)[];
1614
1628
  default: number;
1615
1629
  };
1630
+ _disableGlobalStack: BooleanConstructor;
1616
1631
  }, "$children" | "v-slots" | "v-slot:default" | "v-slot:activator">>> & {
1617
1632
  onAfterLeave?: (() => any) | undefined;
1618
1633
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
@@ -1653,7 +1668,7 @@ declare const VSnackbar: {
1653
1668
  props: Record<string, any>;
1654
1669
  }) => vue.VNodeChild) | undefined;
1655
1670
  };
1656
- }, "offset" | "height" | "width" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "onAfterLeave" | "$children" | "theme" | "v-slots" | "contentClass" | keyof vue.VNodeProps | keyof vue.AllowedComponentProps | "v-slot:default" | "onUpdate:modelValue" | "activator" | "v-slot:activator" | "closeDelay" | "openDelay" | "contentProps" | "attach" | "onClick:outside" | ("absolute" | "location" | "origin" | "transition" | "zIndex" | "eager" | "disabled" | "modelValue" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "locationStrategy" | "scrollStrategy" | "closeOnBack" | "contained" | "noClickAnimation" | "persistent" | "scrim")>, `$${any}`>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
1671
+ }, "offset" | "height" | "width" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "onAfterLeave" | "$children" | "theme" | "v-slots" | "contentClass" | keyof vue.VNodeProps | keyof vue.AllowedComponentProps | "v-slot:default" | "onUpdate:modelValue" | "activator" | "v-slot:activator" | "closeDelay" | "openDelay" | "contentProps" | "attach" | "onClick:outside" | ("absolute" | "location" | "origin" | "transition" | "zIndex" | "eager" | "disabled" | "modelValue" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "locationStrategy" | "scrollStrategy" | "closeOnBack" | "contained" | "noClickAnimation" | "persistent" | "scrim" | "_disableGlobalStack")>, `$${any}`>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
1657
1672
  'update:modelValue': (v: boolean) => boolean;
1658
1673
  }, "$children" | "v-slots" | "v-slot:default" | "v-slot:activator" | "v-slot:actions">, string, {
1659
1674
  absolute: boolean;
@@ -1668,8 +1683,8 @@ declare const VSnackbar: {
1668
1683
  timeout: string | number;
1669
1684
  vertical: boolean;
1670
1685
  rounded: string | number | boolean;
1671
- modelValue: boolean;
1672
1686
  variant: "flat" | "text" | "elevated" | "tonal" | "outlined" | "plain";
1687
+ modelValue: boolean;
1673
1688
  activatorProps: Record<string, any>;
1674
1689
  openOnClick: boolean;
1675
1690
  openOnHover: boolean;
@@ -1,6 +1,5 @@
1
- .v-tab {
1
+ .v-tab.v-tab {
2
2
  --v-btn-height: var(--v-tabs-height);
3
- position: relative;
4
3
  min-width: 90px;
5
4
  }
6
5
  .v-slide-group--horizontal .v-tab {
@@ -1,9 +1,10 @@
1
1
  @use './variables' as *
2
2
 
3
3
  .v-tab
4
- --v-btn-height: var(--v-tabs-height)
5
- position: relative
6
- min-width: $tab-min-width
4
+ // override v-btn size specificity
5
+ &.v-tab
6
+ --v-btn-height: var(--v-tabs-height)
7
+ min-width: $tab-min-width
7
8
 
8
9
  .v-slide-group--horizontal &
9
10
  max-width: $tab-max-width