@vuetify/nightly 3.8.7-master.2025-05-31 → 3.8.7-master.2025-06-03

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 (86) hide show
  1. package/CHANGELOG.md +12 -3
  2. package/dist/json/attributes.json +3132 -3132
  3. package/dist/json/importMap-labs.json +22 -22
  4. package/dist/json/importMap.json +118 -118
  5. package/dist/json/web-types.json +5875 -5875
  6. package/dist/vuetify-labs.cjs +90 -80
  7. package/dist/vuetify-labs.css +3328 -3322
  8. package/dist/vuetify-labs.d.ts +42 -42
  9. package/dist/vuetify-labs.esm.js +90 -80
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +90 -80
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +84 -74
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +4505 -4499
  16. package/dist/vuetify.d.ts +42 -42
  17. package/dist/vuetify.esm.js +84 -74
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +84 -74
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +265 -265
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VAutocomplete/VAutocomplete.css +6 -6
  25. package/lib/components/VAutocomplete/VAutocomplete.sass +3 -9
  26. package/lib/components/VCarousel/VCarousel.js +3 -3
  27. package/lib/components/VCarousel/VCarousel.js.map +1 -1
  28. package/lib/components/VChip/VChip.js +1 -0
  29. package/lib/components/VChip/VChip.js.map +1 -1
  30. package/lib/components/VColorPicker/VColorPickerPreview.js +3 -3
  31. package/lib/components/VColorPicker/VColorPickerPreview.js.map +1 -1
  32. package/lib/components/VColorPicker/VColorPickerSwatches.js +3 -3
  33. package/lib/components/VColorPicker/VColorPickerSwatches.js.map +1 -1
  34. package/lib/components/VCombobox/VCombobox.css +6 -6
  35. package/lib/components/VCombobox/VCombobox.sass +3 -9
  36. package/lib/components/VDataTable/VDataTableColumn.js +3 -3
  37. package/lib/components/VDataTable/VDataTableColumn.js.map +1 -1
  38. package/lib/components/VDataTable/VDataTableGroupHeaderRow.js +3 -3
  39. package/lib/components/VDataTable/VDataTableGroupHeaderRow.js.map +1 -1
  40. package/lib/components/VDataTable/VDataTableVirtual.js +7 -7
  41. package/lib/components/VDataTable/VDataTableVirtual.js.map +1 -1
  42. package/lib/components/VDatePicker/VDatePickerControls.js +4 -4
  43. package/lib/components/VDatePicker/VDatePickerControls.js.map +1 -1
  44. package/lib/components/VDatePicker/VDatePickerMonth.js +3 -3
  45. package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
  46. package/lib/components/VDatePicker/VDatePickerMonths.js +3 -3
  47. package/lib/components/VDatePicker/VDatePickerMonths.js.map +1 -1
  48. package/lib/components/VDatePicker/VDatePickerYears.js +3 -3
  49. package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
  50. package/lib/components/VEmptyState/VEmptyState.js +3 -3
  51. package/lib/components/VEmptyState/VEmptyState.js.map +1 -1
  52. package/lib/components/VImg/VImg.js +7 -7
  53. package/lib/components/VImg/VImg.js.map +1 -1
  54. package/lib/components/VInfiniteScroll/VInfiniteScroll.js +3 -3
  55. package/lib/components/VInfiniteScroll/VInfiniteScroll.js.map +1 -1
  56. package/lib/components/VOtpInput/VOtpInput.js +2 -2
  57. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  58. package/lib/components/VProgressCircular/VProgressCircular.js +2 -2
  59. package/lib/components/VProgressCircular/VProgressCircular.js.map +1 -1
  60. package/lib/components/VProgressLinear/VProgressLinear.js +3 -3
  61. package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
  62. package/lib/components/VSelect/VSelect.css +6 -0
  63. package/lib/components/VSelect/VSelect.sass +3 -0
  64. package/lib/components/VSelect/_mixins.scss +14 -0
  65. package/lib/components/VSelectionControl/VSelectionControl.js +2 -2
  66. package/lib/components/VSelectionControl/VSelectionControl.js.map +1 -1
  67. package/lib/components/VSlider/VSliderThumb.js +16 -10
  68. package/lib/components/VSlider/VSliderThumb.js.map +1 -1
  69. package/lib/components/VSlider/VSliderTrack.js +6 -6
  70. package/lib/components/VSlider/VSliderTrack.js.map +1 -1
  71. package/lib/components/VSlider/slider.js +4 -1
  72. package/lib/components/VSlider/slider.js.map +1 -1
  73. package/lib/components/VTable/VTable.js +3 -3
  74. package/lib/components/VTable/VTable.js.map +1 -1
  75. package/lib/components/VToolbar/VToolbar.js +5 -5
  76. package/lib/components/VToolbar/VToolbar.js.map +1 -1
  77. package/lib/components/VVirtualScroll/VVirtualScroll.js +7 -7
  78. package/lib/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
  79. package/lib/components/VWindow/VWindow.js +3 -3
  80. package/lib/components/VWindow/VWindow.js.map +1 -1
  81. package/lib/entry-bundler.js +1 -1
  82. package/lib/framework.d.ts +42 -42
  83. package/lib/framework.js +1 -1
  84. package/lib/labs/VPullToRefresh/VPullToRefresh.js +7 -7
  85. package/lib/labs/VPullToRefresh/VPullToRefresh.js.map +1 -1
  86. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"VToolbar.js","names":["VToolbarTitle","VExpandTransition","VDefaultsProvider","VImg","makeBorderProps","useBorder","useBackgroundColor","makeComponentProps","provideDefaults","makeElevationProps","useElevation","useRtl","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","computed","shallowRef","convertToUnit","genericComponent","propsFactory","useRender","allowedDensities","makeVToolbarProps","absolute","Boolean","collapse","color","String","density","type","default","validator","v","includes","extended","extensionHeight","Number","flat","floating","height","image","title","tag","VToolbar","name","props","setup","_ref","slots","backgroundColorClasses","backgroundColorStyles","borderClasses","elevationClasses","roundedClasses","themeClasses","rtlClasses","isExtended","extension","contentHeight","parseInt","value","VBtn","variant","hasTitle","hasImage","_createVNode","_normalizeClass","class","_normalizeStyle","style","_createElementVNode","cover","src","VTabs","prepend","text","append"],"sources":["../../../src/components/VToolbar/VToolbar.tsx"],"sourcesContent":["// Styles\nimport './VToolbar.sass'\n\n// Components\nimport { VToolbarTitle } from './VToolbarTitle'\nimport { VExpandTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { useRtl } from '@/composables/locale'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, shallowRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst allowedDensities = [null, 'prominent', 'default', 'comfortable', 'compact'] as const\n\nexport type Density = null | 'prominent' | 'default' | 'comfortable' | 'compact'\n\nexport const makeVToolbarProps = propsFactory({\n absolute: Boolean,\n collapse: Boolean,\n color: String,\n density: {\n type: String as PropType<Density>,\n default: 'default',\n validator: (v: any) => allowedDensities.includes(v),\n },\n extended: Boolean,\n extensionHeight: {\n type: [Number, String],\n default: 48,\n },\n flat: Boolean,\n floating: Boolean,\n height: {\n type: [Number, String],\n default: 64,\n },\n image: String,\n title: String,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'header' }),\n ...makeThemeProps(),\n}, 'VToolbar')\n\nexport type VToolbarSlots = {\n default: never\n image: never\n prepend: never\n append: never\n title: never\n extension: never\n}\n\nexport const VToolbar = genericComponent<VToolbarSlots>()({\n name: 'VToolbar',\n\n props: makeVToolbarProps(),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.color)\n const { borderClasses } = useBorder(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { themeClasses } = provideTheme(props)\n const { rtlClasses } = useRtl()\n\n const isExtended = shallowRef(!!(props.extended || slots.extension?.()))\n const contentHeight = computed(() => parseInt((\n Number(props.height) +\n (props.density === 'prominent' ? Number(props.height) : 0) -\n (props.density === 'comfortable' ? 8 : 0) -\n (props.density === 'compact' ? 16 : 0)\n ), 10))\n const extensionHeight = computed(() => isExtended.value\n ? parseInt((\n Number(props.extensionHeight) +\n (props.density === 'prominent' ? Number(props.extensionHeight) : 0) -\n (props.density === 'comfortable' ? 4 : 0) -\n (props.density === 'compact' ? 8 : 0)\n ), 10)\n : 0\n )\n\n provideDefaults({\n VBtn: {\n variant: 'text',\n },\n })\n\n useRender(() => {\n const hasTitle = !!(props.title || slots.title)\n const hasImage = !!(slots.image || props.image)\n\n const extension = slots.extension?.()\n isExtended.value = !!(props.extended || extension)\n\n return (\n <props.tag\n class={[\n 'v-toolbar',\n {\n 'v-toolbar--absolute': props.absolute,\n 'v-toolbar--collapse': props.collapse,\n 'v-toolbar--flat': props.flat,\n 'v-toolbar--floating': props.floating,\n [`v-toolbar--density-${props.density}`]: true,\n },\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n themeClasses.value,\n rtlClasses.value,\n props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n props.style,\n ]}\n >\n { hasImage && (\n <div key=\"image\" class=\"v-toolbar__image\">\n { !slots.image ? (\n <VImg\n key=\"image-img\"\n cover\n src={ props.image }\n />\n ) : (\n <VDefaultsProvider\n key=\"image-defaults\"\n disabled={ !props.image }\n defaults={{\n VImg: {\n cover: true,\n src: props.image,\n },\n }}\n v-slots:default={ slots.image }\n />\n )}\n </div>\n )}\n\n <VDefaultsProvider\n defaults={{\n VTabs: {\n height: convertToUnit(contentHeight.value),\n },\n }}\n >\n <div\n class=\"v-toolbar__content\"\n style={{ height: convertToUnit(contentHeight.value) }}\n >\n { slots.prepend && (\n <div class=\"v-toolbar__prepend\">\n { slots.prepend?.() }\n </div>\n )}\n\n { hasTitle && (\n <VToolbarTitle key=\"title\" text={ props.title }>\n {{ text: slots.title }}\n </VToolbarTitle>\n )}\n\n { slots.default?.() }\n\n { slots.append && (\n <div class=\"v-toolbar__append\">\n { slots.append?.() }\n </div>\n )}\n </div>\n </VDefaultsProvider>\n\n <VDefaultsProvider\n defaults={{\n VTabs: {\n height: convertToUnit(extensionHeight.value),\n },\n }}\n >\n <VExpandTransition>\n { isExtended.value && (\n <div\n class=\"v-toolbar__extension\"\n style={{ height: convertToUnit(extensionHeight.value) }}\n >\n { extension }\n </div>\n )}\n </VExpandTransition>\n </VDefaultsProvider>\n </props.tag>\n )\n })\n\n return {\n contentHeight,\n extensionHeight,\n }\n },\n})\n\nexport type VToolbar = InstanceType<typeof VToolbar>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VToolbar.js","names":["VToolbarTitle","VExpandTransition","VDefaultsProvider","VImg","makeBorderProps","useBorder","useBackgroundColor","makeComponentProps","provideDefaults","makeElevationProps","useElevation","useRtl","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","computed","shallowRef","convertToUnit","genericComponent","propsFactory","useRender","allowedDensities","makeVToolbarProps","absolute","Boolean","collapse","color","String","density","type","default","validator","v","includes","extended","extensionHeight","Number","flat","floating","height","image","title","tag","VToolbar","name","props","setup","_ref","slots","backgroundColorClasses","backgroundColorStyles","borderClasses","elevationClasses","roundedClasses","themeClasses","rtlClasses","isExtended","extension","contentHeight","parseInt","value","VBtn","variant","hasTitle","hasImage","_createVNode","_normalizeClass","class","_normalizeStyle","style","_createElementVNode","cover","src","VTabs","prepend","text","append"],"sources":["../../../src/components/VToolbar/VToolbar.tsx"],"sourcesContent":["// Styles\nimport './VToolbar.sass'\n\n// Components\nimport { VToolbarTitle } from './VToolbarTitle'\nimport { VExpandTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { useRtl } from '@/composables/locale'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, shallowRef } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst allowedDensities = [null, 'prominent', 'default', 'comfortable', 'compact'] as const\n\nexport type Density = null | 'prominent' | 'default' | 'comfortable' | 'compact'\n\nexport const makeVToolbarProps = propsFactory({\n absolute: Boolean,\n collapse: Boolean,\n color: String,\n density: {\n type: String as PropType<Density>,\n default: 'default',\n validator: (v: any) => allowedDensities.includes(v),\n },\n extended: Boolean,\n extensionHeight: {\n type: [Number, String],\n default: 48,\n },\n flat: Boolean,\n floating: Boolean,\n height: {\n type: [Number, String],\n default: 64,\n },\n image: String,\n title: String,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'header' }),\n ...makeThemeProps(),\n}, 'VToolbar')\n\nexport type VToolbarSlots = {\n default: never\n image: never\n prepend: never\n append: never\n title: never\n extension: never\n}\n\nexport const VToolbar = genericComponent<VToolbarSlots>()({\n name: 'VToolbar',\n\n props: makeVToolbarProps(),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.color)\n const { borderClasses } = useBorder(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { themeClasses } = provideTheme(props)\n const { rtlClasses } = useRtl()\n\n const isExtended = shallowRef(!!(props.extended || slots.extension?.()))\n const contentHeight = computed(() => parseInt((\n Number(props.height) +\n (props.density === 'prominent' ? Number(props.height) : 0) -\n (props.density === 'comfortable' ? 8 : 0) -\n (props.density === 'compact' ? 16 : 0)\n ), 10))\n const extensionHeight = computed(() => isExtended.value\n ? parseInt((\n Number(props.extensionHeight) +\n (props.density === 'prominent' ? Number(props.extensionHeight) : 0) -\n (props.density === 'comfortable' ? 4 : 0) -\n (props.density === 'compact' ? 8 : 0)\n ), 10)\n : 0\n )\n\n provideDefaults({\n VBtn: {\n variant: 'text',\n },\n })\n\n useRender(() => {\n const hasTitle = !!(props.title || slots.title)\n const hasImage = !!(slots.image || props.image)\n\n const extension = slots.extension?.()\n isExtended.value = !!(props.extended || extension)\n\n return (\n <props.tag\n class={[\n 'v-toolbar',\n {\n 'v-toolbar--absolute': props.absolute,\n 'v-toolbar--collapse': props.collapse,\n 'v-toolbar--flat': props.flat,\n 'v-toolbar--floating': props.floating,\n [`v-toolbar--density-${props.density}`]: true,\n },\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n themeClasses.value,\n rtlClasses.value,\n props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n props.style,\n ]}\n >\n { hasImage && (\n <div key=\"image\" class=\"v-toolbar__image\">\n { !slots.image ? (\n <VImg\n key=\"image-img\"\n cover\n src={ props.image }\n />\n ) : (\n <VDefaultsProvider\n key=\"image-defaults\"\n disabled={ !props.image }\n defaults={{\n VImg: {\n cover: true,\n src: props.image,\n },\n }}\n v-slots:default={ slots.image }\n />\n )}\n </div>\n )}\n\n <VDefaultsProvider\n defaults={{\n VTabs: {\n height: convertToUnit(contentHeight.value),\n },\n }}\n >\n <div\n class=\"v-toolbar__content\"\n style={{ height: convertToUnit(contentHeight.value) }}\n >\n { slots.prepend && (\n <div class=\"v-toolbar__prepend\">\n { slots.prepend?.() }\n </div>\n )}\n\n { hasTitle && (\n <VToolbarTitle key=\"title\" text={ props.title }>\n {{ text: slots.title }}\n </VToolbarTitle>\n )}\n\n { slots.default?.() }\n\n { slots.append && (\n <div class=\"v-toolbar__append\">\n { slots.append?.() }\n </div>\n )}\n </div>\n </VDefaultsProvider>\n\n <VDefaultsProvider\n defaults={{\n VTabs: {\n height: convertToUnit(extensionHeight.value),\n },\n }}\n >\n <VExpandTransition>\n { isExtended.value && (\n <div\n class=\"v-toolbar__extension\"\n style={{ height: convertToUnit(extensionHeight.value) }}\n >\n { extension }\n </div>\n )}\n </VExpandTransition>\n </VDefaultsProvider>\n </props.tag>\n )\n })\n\n return {\n contentHeight,\n extensionHeight,\n }\n },\n})\n\nexport type VToolbar = InstanceType<typeof VToolbar>\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { createVNode as _createVNode, Fragment as _Fragment, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass } from "vue";
1
+ import { createVNode as _createVNode, Fragment as _Fragment, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from "vue";
2
2
  // Styles
3
3
  import "./VVirtualScroll.css";
4
4
 
@@ -80,14 +80,14 @@ export const VVirtualScroll = genericComponent()({
80
80
  return props.renderless ? _createElementVNode(_Fragment, null, [_createElementVNode("div", {
81
81
  "ref": markerRef,
82
82
  "class": "v-virtual-scroll__spacer",
83
- "style": _normalizeStyle({
83
+ "style": {
84
84
  paddingTop: convertToUnit(paddingTop.value)
85
- })
85
+ }
86
86
  }, null), children, _createElementVNode("div", {
87
87
  "class": "v-virtual-scroll__spacer",
88
- "style": _normalizeStyle({
88
+ "style": {
89
89
  paddingBottom: convertToUnit(paddingBottom.value)
90
- })
90
+ }
91
91
  }, null)]) : _createElementVNode("div", {
92
92
  "ref": containerRef,
93
93
  "class": _normalizeClass(['v-virtual-scroll', props.class]),
@@ -97,10 +97,10 @@ export const VVirtualScroll = genericComponent()({
97
97
  }, [_createElementVNode("div", {
98
98
  "ref": markerRef,
99
99
  "class": "v-virtual-scroll__container",
100
- "style": _normalizeStyle({
100
+ "style": {
101
101
  paddingTop: convertToUnit(paddingTop.value),
102
102
  paddingBottom: convertToUnit(paddingBottom.value)
103
- })
103
+ }
104
104
  }, [children])]);
105
105
  });
106
106
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"VVirtualScroll.js","names":["VVirtualScrollItem","makeComponentProps","makeDimensionProps","useDimension","useToggleScope","makeVirtualProps","useVirtual","onMounted","onScopeDispose","toRef","convertToUnit","genericComponent","getCurrentInstance","getScrollParent","propsFactory","useRender","makeVVirtualScrollProps","items","type","Array","default","renderless","Boolean","VVirtualScroll","name","props","setup","_ref","slots","vm","dimensionStyles","calculateVisibleItems","containerRef","markerRef","handleScroll","handleScrollend","handleItemResize","scrollToIndex","paddingTop","paddingBottom","computedItems","handleListeners","add","arguments","length","undefined","method","value","document","documentElement","passive","vnode","el","children","map","item","_createVNode","key","height","index","slotProps","raw","_createElementVNode","_Fragment","_normalizeStyle","_normalizeClass","class","style"],"sources":["../../../src/components/VVirtualScroll/VVirtualScroll.tsx"],"sourcesContent":["// Styles\nimport './VVirtualScroll.sass'\n\n// Components\nimport { VVirtualScrollItem } from './VVirtualScrollItem'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { makeVirtualProps, useVirtual } from '@/composables/virtual'\n\n// Utilities\nimport { onMounted, onScopeDispose, toRef } from 'vue'\nimport {\n convertToUnit,\n genericComponent,\n getCurrentInstance,\n getScrollParent,\n propsFactory,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { GenericProps } from '@/util'\n\nexport interface VVirtualScrollSlot<T> {\n item: T\n index: number\n}\n\nexport const makeVVirtualScrollProps = propsFactory({\n items: {\n type: Array as PropType<readonly unknown[]>,\n default: () => ([]),\n },\n renderless: Boolean,\n\n ...makeVirtualProps(),\n ...makeComponentProps(),\n ...makeDimensionProps(),\n}, 'VVirtualScroll')\n\nexport const VVirtualScroll = genericComponent<new <T, Renderless extends boolean = false>(\n props: {\n items?: readonly T[]\n renderless?: Renderless\n },\n slots: {\n default: VVirtualScrollSlot<T> & (Renderless extends true ? {\n itemRef: Ref<HTMLElement | undefined>\n } : {})\n }\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VVirtualScroll',\n\n props: makeVVirtualScrollProps(),\n\n setup (props, { slots }) {\n const vm = getCurrentInstance('VVirtualScroll')\n const { dimensionStyles } = useDimension(props)\n const {\n calculateVisibleItems,\n containerRef,\n markerRef,\n handleScroll,\n handleScrollend,\n handleItemResize,\n scrollToIndex,\n paddingTop,\n paddingBottom,\n computedItems,\n } = useVirtual(props, toRef(() => props.items))\n\n useToggleScope(() => props.renderless, () => {\n function handleListeners (add = false) {\n const method = add ? 'addEventListener' : 'removeEventListener'\n\n if (containerRef.value === document.documentElement) {\n document[method]('scroll', handleScroll, { passive: true })\n document[method]('scrollend', handleScrollend)\n } else {\n containerRef.value?.[method]('scroll', handleScroll, { passive: true })\n containerRef.value?.[method]('scrollend', handleScrollend)\n }\n }\n\n onMounted(() => {\n containerRef.value = getScrollParent(vm.vnode.el as HTMLElement, true)\n handleListeners(true)\n })\n onScopeDispose(handleListeners)\n })\n\n useRender(() => {\n const children = computedItems.value.map(item => (\n <VVirtualScrollItem\n key={ item.key }\n renderless={ props.renderless }\n onUpdate:height={ height => handleItemResize(item.index, height) }\n >\n { slotProps => slots.default?.({ item: item.raw, index: item.index, ...slotProps }) }\n </VVirtualScrollItem>\n ))\n\n return props.renderless ? (\n <>\n <div ref={ markerRef } class=\"v-virtual-scroll__spacer\" style={{ paddingTop: convertToUnit(paddingTop.value) }} />\n { children }\n <div class=\"v-virtual-scroll__spacer\" style={{ paddingBottom: convertToUnit(paddingBottom.value) }} />\n </>\n ) : (\n <div\n ref={ containerRef }\n class={[\n 'v-virtual-scroll',\n props.class,\n ]}\n onScrollPassive={ handleScroll }\n onScrollend={ handleScrollend }\n style={[\n dimensionStyles.value,\n props.style,\n ]}\n >\n <div\n ref={ markerRef }\n class=\"v-virtual-scroll__container\"\n style={{\n paddingTop: convertToUnit(paddingTop.value),\n paddingBottom: convertToUnit(paddingBottom.value),\n }}\n >\n { children }\n </div>\n </div>\n )\n })\n\n return {\n calculateVisibleItems,\n scrollToIndex,\n }\n },\n})\n\nexport type VVirtualScroll = InstanceType<typeof VVirtualScroll>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VVirtualScroll.js","names":["VVirtualScrollItem","makeComponentProps","makeDimensionProps","useDimension","useToggleScope","makeVirtualProps","useVirtual","onMounted","onScopeDispose","toRef","convertToUnit","genericComponent","getCurrentInstance","getScrollParent","propsFactory","useRender","makeVVirtualScrollProps","items","type","Array","default","renderless","Boolean","VVirtualScroll","name","props","setup","_ref","slots","vm","dimensionStyles","calculateVisibleItems","containerRef","markerRef","handleScroll","handleScrollend","handleItemResize","scrollToIndex","paddingTop","paddingBottom","computedItems","handleListeners","add","arguments","length","undefined","method","value","document","documentElement","passive","vnode","el","children","map","item","_createVNode","key","height","index","slotProps","raw","_createElementVNode","_Fragment","_normalizeClass","class","_normalizeStyle","style"],"sources":["../../../src/components/VVirtualScroll/VVirtualScroll.tsx"],"sourcesContent":["// Styles\nimport './VVirtualScroll.sass'\n\n// Components\nimport { VVirtualScrollItem } from './VVirtualScrollItem'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { makeVirtualProps, useVirtual } from '@/composables/virtual'\n\n// Utilities\nimport { onMounted, onScopeDispose, toRef } from 'vue'\nimport {\n convertToUnit,\n genericComponent,\n getCurrentInstance,\n getScrollParent,\n propsFactory,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { GenericProps } from '@/util'\n\nexport interface VVirtualScrollSlot<T> {\n item: T\n index: number\n}\n\nexport const makeVVirtualScrollProps = propsFactory({\n items: {\n type: Array as PropType<readonly unknown[]>,\n default: () => ([]),\n },\n renderless: Boolean,\n\n ...makeVirtualProps(),\n ...makeComponentProps(),\n ...makeDimensionProps(),\n}, 'VVirtualScroll')\n\nexport const VVirtualScroll = genericComponent<new <T, Renderless extends boolean = false>(\n props: {\n items?: readonly T[]\n renderless?: Renderless\n },\n slots: {\n default: VVirtualScrollSlot<T> & (Renderless extends true ? {\n itemRef: Ref<HTMLElement | undefined>\n } : {})\n }\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VVirtualScroll',\n\n props: makeVVirtualScrollProps(),\n\n setup (props, { slots }) {\n const vm = getCurrentInstance('VVirtualScroll')\n const { dimensionStyles } = useDimension(props)\n const {\n calculateVisibleItems,\n containerRef,\n markerRef,\n handleScroll,\n handleScrollend,\n handleItemResize,\n scrollToIndex,\n paddingTop,\n paddingBottom,\n computedItems,\n } = useVirtual(props, toRef(() => props.items))\n\n useToggleScope(() => props.renderless, () => {\n function handleListeners (add = false) {\n const method = add ? 'addEventListener' : 'removeEventListener'\n\n if (containerRef.value === document.documentElement) {\n document[method]('scroll', handleScroll, { passive: true })\n document[method]('scrollend', handleScrollend)\n } else {\n containerRef.value?.[method]('scroll', handleScroll, { passive: true })\n containerRef.value?.[method]('scrollend', handleScrollend)\n }\n }\n\n onMounted(() => {\n containerRef.value = getScrollParent(vm.vnode.el as HTMLElement, true)\n handleListeners(true)\n })\n onScopeDispose(handleListeners)\n })\n\n useRender(() => {\n const children = computedItems.value.map(item => (\n <VVirtualScrollItem\n key={ item.key }\n renderless={ props.renderless }\n onUpdate:height={ height => handleItemResize(item.index, height) }\n >\n { slotProps => slots.default?.({ item: item.raw, index: item.index, ...slotProps }) }\n </VVirtualScrollItem>\n ))\n\n return props.renderless ? (\n <>\n <div ref={ markerRef } class=\"v-virtual-scroll__spacer\" style={{ paddingTop: convertToUnit(paddingTop.value) }} />\n { children }\n <div class=\"v-virtual-scroll__spacer\" style={{ paddingBottom: convertToUnit(paddingBottom.value) }} />\n </>\n ) : (\n <div\n ref={ containerRef }\n class={[\n 'v-virtual-scroll',\n props.class,\n ]}\n onScrollPassive={ handleScroll }\n onScrollend={ handleScrollend }\n style={[\n dimensionStyles.value,\n props.style,\n ]}\n >\n <div\n ref={ markerRef }\n class=\"v-virtual-scroll__container\"\n style={{\n paddingTop: convertToUnit(paddingTop.value),\n paddingBottom: convertToUnit(paddingBottom.value),\n }}\n >\n { children }\n </div>\n </div>\n )\n })\n\n return {\n calculateVisibleItems,\n scrollToIndex,\n }\n },\n})\n\nexport type VVirtualScroll = InstanceType<typeof VVirtualScroll>\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,4 @@
1
- import { createVNode as _createVNode, createElementVNode as _createElementVNode, normalizeStyle as _normalizeStyle, normalizeClass as _normalizeClass, withDirectives as _withDirectives } from "vue";
1
+ import { createVNode as _createVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, withDirectives as _withDirectives } from "vue";
2
2
  // Styles
3
3
  import "./VWindow.css";
4
4
 
@@ -169,9 +169,9 @@ export const VWindow = genericComponent()({
169
169
  }, {
170
170
  default: () => [_createElementVNode("div", {
171
171
  "class": "v-window__container",
172
- "style": _normalizeStyle({
172
+ "style": {
173
173
  height: transitionHeight.value
174
- })
174
+ }
175
175
  }, [slots.default?.({
176
176
  group
177
177
  }), props.showArrows !== false && _createElementVNode("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"VWindow.js","names":["VBtn","makeComponentProps","useGroup","useLocale","useRtl","makeTagProps","makeThemeProps","provideTheme","vTouch","computed","provide","ref","shallowRef","toRef","watch","genericComponent","propsFactory","useRender","VWindowSymbol","Symbol","for","VWindowGroupSymbol","makeVWindowProps","continuous","Boolean","nextIcon","type","String","Function","Object","default","prevIcon","reverse","showArrows","validator","v","touch","undefined","direction","modelValue","disabled","selectedClass","mandatory","VWindow","name","directives","props","emits","value","setup","_ref","slots","themeClasses","isRtl","t","group","rootRef","isRtlReverse","isReversed","transition","axis","transitionCount","transitionHeight","activeIndex","items","findIndex","item","selected","includes","id","newVal","oldVal","itemsLength","length","lastIndex","canMoveBack","canMoveForward","prev","next","arrows","prevProps","icon","class","onClick","push","_createVNode","_createElementVNode","nextProps","touchOptions","options","left","right","start","_ref2","originalEvent","stopPropagation","_withDirectives","tag","_normalizeClass","_normalizeStyle","style","height","additional"],"sources":["../../../src/components/VWindow/VWindow.tsx"],"sourcesContent":["// Styles\nimport './VWindow.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { useGroup } from '@/composables/group'\nimport { useLocale, useRtl } from '@/composables/locale'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Directives\nimport vTouch from '@/directives/touch'\n\n// Utilities\nimport { computed, provide, ref, shallowRef, toRef, watch } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, InjectionKey, PropType, Ref } from 'vue'\nimport type { GroupItemProvide, GroupProvide } from '@/composables/group'\nimport type { IconValue } from '@/composables/icons'\nimport type { TouchHandlers } from '@/directives/touch'\nimport type { GenericProps } from '@/util'\n\nexport type VWindowSlots = {\n default: { group: GroupProvide }\n additional: { group: GroupProvide }\n prev: { props: ControlProps }\n next: { props: ControlProps }\n}\n\ntype WindowProvide = {\n transition: ComputedRef<undefined | string>\n transitionCount: Ref<number>\n transitionHeight: Ref<undefined | string>\n isReversed: Ref<boolean>\n rootRef: Ref<HTMLElement | undefined>\n}\n\ntype ControlProps = {\n icon: IconValue\n class: string\n onClick: () => void\n 'aria-label': string\n}\n\nexport const VWindowSymbol: InjectionKey<WindowProvide> = Symbol.for('vuetify:v-window')\nexport const VWindowGroupSymbol: InjectionKey<GroupItemProvide> = Symbol.for('vuetify:v-window-group')\n\nexport const makeVWindowProps = propsFactory({\n continuous: Boolean,\n nextIcon: {\n type: [Boolean, String, Function, Object] as PropType<IconValue>,\n default: '$next',\n },\n prevIcon: {\n type: [Boolean, String, Function, Object] as PropType<IconValue>,\n default: '$prev',\n },\n reverse: Boolean,\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => typeof v === 'boolean' || v === 'hover',\n },\n touch: {\n type: [Object, Boolean] as PropType<boolean | TouchHandlers>,\n default: undefined,\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n\n modelValue: null,\n disabled: Boolean,\n selectedClass: {\n type: String,\n default: 'v-window-item--active',\n },\n // TODO: mandatory should probably not be exposed but do this for now\n mandatory: {\n type: [Boolean, String] as PropType<boolean | 'force'>,\n default: 'force' as const,\n },\n\n ...makeComponentProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VWindow')\n\nexport const VWindow = genericComponent<new <T>(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VWindowSlots,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VWindow',\n\n directives: { vTouch },\n\n props: makeVWindowProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isRtl } = useRtl()\n const { t } = useLocale()\n\n const group = useGroup(props, VWindowGroupSymbol)\n\n const rootRef = ref()\n const isRtlReverse = computed(() => isRtl.value ? !props.reverse : props.reverse)\n const isReversed = shallowRef(false)\n const transition = computed(() => {\n const axis = props.direction === 'vertical' ? 'y' : 'x'\n const reverse = isRtlReverse.value ? !isReversed.value : isReversed.value\n const direction = reverse ? '-reverse' : ''\n\n return `v-window-${axis}${direction}-transition`\n })\n const transitionCount = shallowRef(0)\n const transitionHeight = ref<undefined | string>(undefined)\n\n const activeIndex = computed(() => {\n return group.items.value.findIndex(item => group.selected.value.includes(item.id))\n })\n\n watch(activeIndex, (newVal, oldVal) => {\n const itemsLength = group.items.value.length\n const lastIndex = itemsLength - 1\n\n if (itemsLength <= 2) {\n isReversed.value = newVal < oldVal\n } else if (newVal === lastIndex && oldVal === 0) {\n isReversed.value = true\n } else if (newVal === 0 && oldVal === lastIndex) {\n isReversed.value = false\n } else {\n isReversed.value = newVal < oldVal\n }\n })\n\n provide(VWindowSymbol, {\n transition,\n isReversed,\n transitionCount,\n transitionHeight,\n rootRef,\n })\n\n const canMoveBack = toRef(() => props.continuous || activeIndex.value !== 0)\n const canMoveForward = toRef(() => props.continuous || activeIndex.value !== group.items.value.length - 1)\n\n function prev () {\n canMoveBack.value && group.prev()\n }\n\n function next () {\n canMoveForward.value && group.next()\n }\n\n const arrows = computed(() => {\n const arrows = []\n\n const prevProps = {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n class: `v-window__${isRtlReverse.value ? 'right' : 'left'}`,\n onClick: group.prev,\n 'aria-label': t('$vuetify.carousel.prev'),\n }\n\n arrows.push(canMoveBack.value\n ? slots.prev\n ? slots.prev({ props: prevProps })\n : <VBtn { ...prevProps } />\n : <div />\n )\n\n const nextProps = {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n class: `v-window__${isRtlReverse.value ? 'left' : 'right'}`,\n onClick: group.next,\n 'aria-label': t('$vuetify.carousel.next'),\n }\n\n arrows.push(canMoveForward.value\n ? slots.next\n ? slots.next({ props: nextProps })\n : <VBtn { ...nextProps } />\n : <div />\n )\n\n return arrows\n })\n\n const touchOptions = computed(() => {\n if (props.touch === false) return props.touch\n\n const options: TouchHandlers = {\n left: () => {\n isRtlReverse.value ? prev() : next()\n },\n right: () => {\n isRtlReverse.value ? next() : prev()\n },\n start: ({ originalEvent }) => {\n originalEvent.stopPropagation()\n },\n }\n\n return {\n ...options,\n ...(props.touch === true ? {} : props.touch),\n }\n })\n\n useRender(() => (\n <props.tag\n ref={ rootRef }\n class={[\n 'v-window',\n {\n 'v-window--show-arrows-on-hover': props.showArrows === 'hover',\n },\n themeClasses.value,\n props.class,\n ]}\n style={ props.style }\n v-touch={ touchOptions.value }\n >\n <div\n class=\"v-window__container\"\n style={{\n height: transitionHeight.value,\n }}\n >\n { slots.default?.({ group }) }\n\n { props.showArrows !== false && (\n <div class=\"v-window__controls\">\n { arrows.value }\n </div>\n )}\n </div>\n\n { slots.additional?.({ group }) }\n </props.tag>\n ))\n\n return {\n group,\n }\n },\n})\n\nexport type VWindow = InstanceType<typeof VWindow>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VWindow.js","names":["VBtn","makeComponentProps","useGroup","useLocale","useRtl","makeTagProps","makeThemeProps","provideTheme","vTouch","computed","provide","ref","shallowRef","toRef","watch","genericComponent","propsFactory","useRender","VWindowSymbol","Symbol","for","VWindowGroupSymbol","makeVWindowProps","continuous","Boolean","nextIcon","type","String","Function","Object","default","prevIcon","reverse","showArrows","validator","v","touch","undefined","direction","modelValue","disabled","selectedClass","mandatory","VWindow","name","directives","props","emits","value","setup","_ref","slots","themeClasses","isRtl","t","group","rootRef","isRtlReverse","isReversed","transition","axis","transitionCount","transitionHeight","activeIndex","items","findIndex","item","selected","includes","id","newVal","oldVal","itemsLength","length","lastIndex","canMoveBack","canMoveForward","prev","next","arrows","prevProps","icon","class","onClick","push","_createVNode","_createElementVNode","nextProps","touchOptions","options","left","right","start","_ref2","originalEvent","stopPropagation","_withDirectives","tag","_normalizeClass","_normalizeStyle","style","height","additional"],"sources":["../../../src/components/VWindow/VWindow.tsx"],"sourcesContent":["// Styles\nimport './VWindow.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { useGroup } from '@/composables/group'\nimport { useLocale, useRtl } from '@/composables/locale'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Directives\nimport vTouch from '@/directives/touch'\n\n// Utilities\nimport { computed, provide, ref, shallowRef, toRef, watch } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, InjectionKey, PropType, Ref } from 'vue'\nimport type { GroupItemProvide, GroupProvide } from '@/composables/group'\nimport type { IconValue } from '@/composables/icons'\nimport type { TouchHandlers } from '@/directives/touch'\nimport type { GenericProps } from '@/util'\n\nexport type VWindowSlots = {\n default: { group: GroupProvide }\n additional: { group: GroupProvide }\n prev: { props: ControlProps }\n next: { props: ControlProps }\n}\n\ntype WindowProvide = {\n transition: ComputedRef<undefined | string>\n transitionCount: Ref<number>\n transitionHeight: Ref<undefined | string>\n isReversed: Ref<boolean>\n rootRef: Ref<HTMLElement | undefined>\n}\n\ntype ControlProps = {\n icon: IconValue\n class: string\n onClick: () => void\n 'aria-label': string\n}\n\nexport const VWindowSymbol: InjectionKey<WindowProvide> = Symbol.for('vuetify:v-window')\nexport const VWindowGroupSymbol: InjectionKey<GroupItemProvide> = Symbol.for('vuetify:v-window-group')\n\nexport const makeVWindowProps = propsFactory({\n continuous: Boolean,\n nextIcon: {\n type: [Boolean, String, Function, Object] as PropType<IconValue>,\n default: '$next',\n },\n prevIcon: {\n type: [Boolean, String, Function, Object] as PropType<IconValue>,\n default: '$prev',\n },\n reverse: Boolean,\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => typeof v === 'boolean' || v === 'hover',\n },\n touch: {\n type: [Object, Boolean] as PropType<boolean | TouchHandlers>,\n default: undefined,\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n\n modelValue: null,\n disabled: Boolean,\n selectedClass: {\n type: String,\n default: 'v-window-item--active',\n },\n // TODO: mandatory should probably not be exposed but do this for now\n mandatory: {\n type: [Boolean, String] as PropType<boolean | 'force'>,\n default: 'force' as const,\n },\n\n ...makeComponentProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VWindow')\n\nexport const VWindow = genericComponent<new <T>(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VWindowSlots,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VWindow',\n\n directives: { vTouch },\n\n props: makeVWindowProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isRtl } = useRtl()\n const { t } = useLocale()\n\n const group = useGroup(props, VWindowGroupSymbol)\n\n const rootRef = ref()\n const isRtlReverse = computed(() => isRtl.value ? !props.reverse : props.reverse)\n const isReversed = shallowRef(false)\n const transition = computed(() => {\n const axis = props.direction === 'vertical' ? 'y' : 'x'\n const reverse = isRtlReverse.value ? !isReversed.value : isReversed.value\n const direction = reverse ? '-reverse' : ''\n\n return `v-window-${axis}${direction}-transition`\n })\n const transitionCount = shallowRef(0)\n const transitionHeight = ref<undefined | string>(undefined)\n\n const activeIndex = computed(() => {\n return group.items.value.findIndex(item => group.selected.value.includes(item.id))\n })\n\n watch(activeIndex, (newVal, oldVal) => {\n const itemsLength = group.items.value.length\n const lastIndex = itemsLength - 1\n\n if (itemsLength <= 2) {\n isReversed.value = newVal < oldVal\n } else if (newVal === lastIndex && oldVal === 0) {\n isReversed.value = true\n } else if (newVal === 0 && oldVal === lastIndex) {\n isReversed.value = false\n } else {\n isReversed.value = newVal < oldVal\n }\n })\n\n provide(VWindowSymbol, {\n transition,\n isReversed,\n transitionCount,\n transitionHeight,\n rootRef,\n })\n\n const canMoveBack = toRef(() => props.continuous || activeIndex.value !== 0)\n const canMoveForward = toRef(() => props.continuous || activeIndex.value !== group.items.value.length - 1)\n\n function prev () {\n canMoveBack.value && group.prev()\n }\n\n function next () {\n canMoveForward.value && group.next()\n }\n\n const arrows = computed(() => {\n const arrows = []\n\n const prevProps = {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n class: `v-window__${isRtlReverse.value ? 'right' : 'left'}`,\n onClick: group.prev,\n 'aria-label': t('$vuetify.carousel.prev'),\n }\n\n arrows.push(canMoveBack.value\n ? slots.prev\n ? slots.prev({ props: prevProps })\n : <VBtn { ...prevProps } />\n : <div />\n )\n\n const nextProps = {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n class: `v-window__${isRtlReverse.value ? 'left' : 'right'}`,\n onClick: group.next,\n 'aria-label': t('$vuetify.carousel.next'),\n }\n\n arrows.push(canMoveForward.value\n ? slots.next\n ? slots.next({ props: nextProps })\n : <VBtn { ...nextProps } />\n : <div />\n )\n\n return arrows\n })\n\n const touchOptions = computed(() => {\n if (props.touch === false) return props.touch\n\n const options: TouchHandlers = {\n left: () => {\n isRtlReverse.value ? prev() : next()\n },\n right: () => {\n isRtlReverse.value ? next() : prev()\n },\n start: ({ originalEvent }) => {\n originalEvent.stopPropagation()\n },\n }\n\n return {\n ...options,\n ...(props.touch === true ? {} : props.touch),\n }\n })\n\n useRender(() => (\n <props.tag\n ref={ rootRef }\n class={[\n 'v-window',\n {\n 'v-window--show-arrows-on-hover': props.showArrows === 'hover',\n },\n themeClasses.value,\n props.class,\n ]}\n style={ props.style }\n v-touch={ touchOptions.value }\n >\n <div\n class=\"v-window__container\"\n style={{\n height: transitionHeight.value,\n }}\n >\n { slots.default?.({ group }) }\n\n { props.showArrows !== false && (\n <div class=\"v-window__controls\">\n { arrows.value }\n </div>\n )}\n </div>\n\n { slots.additional?.({ group }) }\n </props.tag>\n ))\n\n return {\n group,\n }\n },\n})\n\nexport type VWindow = InstanceType<typeof VWindow>\n"],"mappings":"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","ignoreList":[]}
@@ -16,7 +16,7 @@ export const createVuetify = function () {
16
16
  ...options
17
17
  });
18
18
  };
19
- export const version = "3.8.7-master.2025-05-31";
19
+ export const version = "3.8.7-master.2025-06-03";
20
20
  createVuetify.version = version;
21
21
  export { blueprints, components, directives };
22
22
  export * from "./composables/index.js";
@@ -2543,38 +2543,39 @@ declare module 'vue' {
2543
2543
  $children?: VNodeChild
2544
2544
  }
2545
2545
  export interface GlobalComponents {
2546
+ VBadge: typeof import('vuetify/components')['VBadge']
2546
2547
  VApp: typeof import('vuetify/components')['VApp']
2547
- VAlert: typeof import('vuetify/components')['VAlert']
2548
- VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
2549
- VAvatar: typeof import('vuetify/components')['VAvatar']
2550
- VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
2548
+ VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
2551
2549
  VBottomNavigation: typeof import('vuetify/components')['VBottomNavigation']
2550
+ VAutocomplete: typeof import('vuetify/components')['VAutocomplete']
2551
+ VAvatar: typeof import('vuetify/components')['VAvatar']
2552
2552
  VBanner: typeof import('vuetify/components')['VBanner']
2553
2553
  VBannerActions: typeof import('vuetify/components')['VBannerActions']
2554
2554
  VBannerText: typeof import('vuetify/components')['VBannerText']
2555
- VBadge: typeof import('vuetify/components')['VBadge']
2556
- VBtn: typeof import('vuetify/components')['VBtn']
2555
+ VAlert: typeof import('vuetify/components')['VAlert']
2556
+ VAlertTitle: typeof import('vuetify/components')['VAlertTitle']
2557
+ VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
2557
2558
  VBreadcrumbs: typeof import('vuetify/components')['VBreadcrumbs']
2558
2559
  VBreadcrumbsItem: typeof import('vuetify/components')['VBreadcrumbsItem']
2559
2560
  VBreadcrumbsDivider: typeof import('vuetify/components')['VBreadcrumbsDivider']
2561
+ VBtn: typeof import('vuetify/components')['VBtn']
2560
2562
  VCard: typeof import('vuetify/components')['VCard']
2561
2563
  VCardActions: typeof import('vuetify/components')['VCardActions']
2562
2564
  VCardItem: typeof import('vuetify/components')['VCardItem']
2563
2565
  VCardSubtitle: typeof import('vuetify/components')['VCardSubtitle']
2564
2566
  VCardText: typeof import('vuetify/components')['VCardText']
2565
2567
  VCardTitle: typeof import('vuetify/components')['VCardTitle']
2566
- VBottomSheet: typeof import('vuetify/components')['VBottomSheet']
2567
2568
  VBtnToggle: typeof import('vuetify/components')['VBtnToggle']
2568
- VCheckbox: typeof import('vuetify/components')['VCheckbox']
2569
- VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
2570
- VBtnGroup: typeof import('vuetify/components')['VBtnGroup']
2571
- VChip: typeof import('vuetify/components')['VChip']
2572
2569
  VCarousel: typeof import('vuetify/components')['VCarousel']
2573
2570
  VCarouselItem: typeof import('vuetify/components')['VCarouselItem']
2574
2571
  VCode: typeof import('vuetify/components')['VCode']
2572
+ VChip: typeof import('vuetify/components')['VChip']
2575
2573
  VChipGroup: typeof import('vuetify/components')['VChipGroup']
2576
- VColorPicker: typeof import('vuetify/components')['VColorPicker']
2574
+ VCheckbox: typeof import('vuetify/components')['VCheckbox']
2575
+ VCheckboxBtn: typeof import('vuetify/components')['VCheckboxBtn']
2577
2576
  VCombobox: typeof import('vuetify/components')['VCombobox']
2577
+ VDialog: typeof import('vuetify/components')['VDialog']
2578
+ VColorPicker: typeof import('vuetify/components')['VColorPicker']
2578
2579
  VDatePicker: typeof import('vuetify/components')['VDatePicker']
2579
2580
  VDatePickerControls: typeof import('vuetify/components')['VDatePickerControls']
2580
2581
  VDatePickerHeader: typeof import('vuetify/components')['VDatePickerHeader']
@@ -2589,7 +2590,6 @@ declare module 'vue' {
2589
2590
  VDataTableVirtual: typeof import('vuetify/components')['VDataTableVirtual']
2590
2591
  VDataTableServer: typeof import('vuetify/components')['VDataTableServer']
2591
2592
  VCounter: typeof import('vuetify/components')['VCounter']
2592
- VDialog: typeof import('vuetify/components')['VDialog']
2593
2593
  VEmptyState: typeof import('vuetify/components')['VEmptyState']
2594
2594
  VDivider: typeof import('vuetify/components')['VDivider']
2595
2595
  VExpansionPanels: typeof import('vuetify/components')['VExpansionPanels']
@@ -2599,20 +2599,21 @@ declare module 'vue' {
2599
2599
  VFab: typeof import('vuetify/components')['VFab']
2600
2600
  VField: typeof import('vuetify/components')['VField']
2601
2601
  VFieldLabel: typeof import('vuetify/components')['VFieldLabel']
2602
+ VFooter: typeof import('vuetify/components')['VFooter']
2602
2603
  VFileInput: typeof import('vuetify/components')['VFileInput']
2603
2604
  VIcon: typeof import('vuetify/components')['VIcon']
2604
2605
  VComponentIcon: typeof import('vuetify/components')['VComponentIcon']
2605
2606
  VSvgIcon: typeof import('vuetify/components')['VSvgIcon']
2606
2607
  VLigatureIcon: typeof import('vuetify/components')['VLigatureIcon']
2607
2608
  VClassIcon: typeof import('vuetify/components')['VClassIcon']
2609
+ VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
2608
2610
  VItemGroup: typeof import('vuetify/components')['VItemGroup']
2609
2611
  VItem: typeof import('vuetify/components')['VItem']
2610
- VInfiniteScroll: typeof import('vuetify/components')['VInfiniteScroll']
2611
- VFooter: typeof import('vuetify/components')['VFooter']
2612
- VInput: typeof import('vuetify/components')['VInput']
2613
2612
  VImg: typeof import('vuetify/components')['VImg']
2614
2613
  VKbd: typeof import('vuetify/components')['VKbd']
2615
2614
  VLabel: typeof import('vuetify/components')['VLabel']
2615
+ VInput: typeof import('vuetify/components')['VInput']
2616
+ VMain: typeof import('vuetify/components')['VMain']
2616
2617
  VList: typeof import('vuetify/components')['VList']
2617
2618
  VListGroup: typeof import('vuetify/components')['VListGroup']
2618
2619
  VListImg: typeof import('vuetify/components')['VListImg']
@@ -2623,28 +2624,25 @@ declare module 'vue' {
2623
2624
  VListItemTitle: typeof import('vuetify/components')['VListItemTitle']
2624
2625
  VListSubheader: typeof import('vuetify/components')['VListSubheader']
2625
2626
  VMenu: typeof import('vuetify/components')['VMenu']
2626
- VMessages: typeof import('vuetify/components')['VMessages']
2627
2627
  VNumberInput: typeof import('vuetify/components')['VNumberInput']
2628
- VMain: typeof import('vuetify/components')['VMain']
2628
+ VOtpInput: typeof import('vuetify/components')['VOtpInput']
2629
2629
  VNavigationDrawer: typeof import('vuetify/components')['VNavigationDrawer']
2630
+ VMessages: typeof import('vuetify/components')['VMessages']
2630
2631
  VOverlay: typeof import('vuetify/components')['VOverlay']
2631
- VOtpInput: typeof import('vuetify/components')['VOtpInput']
2632
+ VPagination: typeof import('vuetify/components')['VPagination']
2632
2633
  VProgressLinear: typeof import('vuetify/components')['VProgressLinear']
2633
2634
  VRadioGroup: typeof import('vuetify/components')['VRadioGroup']
2634
- VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
2635
- VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
2636
2635
  VRating: typeof import('vuetify/components')['VRating']
2636
+ VProgressCircular: typeof import('vuetify/components')['VProgressCircular']
2637
2637
  VSelectionControlGroup: typeof import('vuetify/components')['VSelectionControlGroup']
2638
- VPagination: typeof import('vuetify/components')['VPagination']
2639
2638
  VSkeletonLoader: typeof import('vuetify/components')['VSkeletonLoader']
2640
2639
  VSlider: typeof import('vuetify/components')['VSlider']
2641
2640
  VSheet: typeof import('vuetify/components')['VSheet']
2642
- VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
2643
- VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
2644
2641
  VSnackbar: typeof import('vuetify/components')['VSnackbar']
2645
- VSelect: typeof import('vuetify/components')['VSelect']
2646
- VSystemBar: typeof import('vuetify/components')['VSystemBar']
2647
2642
  VSwitch: typeof import('vuetify/components')['VSwitch']
2643
+ VSlideGroup: typeof import('vuetify/components')['VSlideGroup']
2644
+ VSlideGroupItem: typeof import('vuetify/components')['VSlideGroupItem']
2645
+ VTable: typeof import('vuetify/components')['VTable']
2648
2646
  VStepper: typeof import('vuetify/components')['VStepper']
2649
2647
  VStepperActions: typeof import('vuetify/components')['VStepperActions']
2650
2648
  VStepperHeader: typeof import('vuetify/components')['VStepperHeader']
@@ -2655,23 +2653,23 @@ declare module 'vue' {
2655
2653
  VTabs: typeof import('vuetify/components')['VTabs']
2656
2654
  VTabsWindow: typeof import('vuetify/components')['VTabsWindow']
2657
2655
  VTabsWindowItem: typeof import('vuetify/components')['VTabsWindowItem']
2658
- VTextarea: typeof import('vuetify/components')['VTextarea']
2659
2656
  VTextField: typeof import('vuetify/components')['VTextField']
2660
- VTable: typeof import('vuetify/components')['VTable']
2661
- VTooltip: typeof import('vuetify/components')['VTooltip']
2662
- VToolbar: typeof import('vuetify/components')['VToolbar']
2663
- VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
2664
- VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
2657
+ VTextarea: typeof import('vuetify/components')['VTextarea']
2658
+ VSystemBar: typeof import('vuetify/components')['VSystemBar']
2665
2659
  VTimeline: typeof import('vuetify/components')['VTimeline']
2666
2660
  VTimelineItem: typeof import('vuetify/components')['VTimelineItem']
2667
2661
  VWindow: typeof import('vuetify/components')['VWindow']
2668
2662
  VWindowItem: typeof import('vuetify/components')['VWindowItem']
2663
+ VTooltip: typeof import('vuetify/components')['VTooltip']
2664
+ VToolbar: typeof import('vuetify/components')['VToolbar']
2665
+ VToolbarTitle: typeof import('vuetify/components')['VToolbarTitle']
2666
+ VToolbarItems: typeof import('vuetify/components')['VToolbarItems']
2669
2667
  VAppBar: typeof import('vuetify/components')['VAppBar']
2670
2668
  VAppBarNavIcon: typeof import('vuetify/components')['VAppBarNavIcon']
2671
2669
  VAppBarTitle: typeof import('vuetify/components')['VAppBarTitle']
2672
2670
  VConfirmEdit: typeof import('vuetify/components')['VConfirmEdit']
2673
- VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
2674
2671
  VDataIterator: typeof import('vuetify/components')['VDataIterator']
2672
+ VDefaultsProvider: typeof import('vuetify/components')['VDefaultsProvider']
2675
2673
  VForm: typeof import('vuetify/components')['VForm']
2676
2674
  VContainer: typeof import('vuetify/components')['VContainer']
2677
2675
  VCol: typeof import('vuetify/components')['VCol']
@@ -2680,12 +2678,12 @@ declare module 'vue' {
2680
2678
  VHover: typeof import('vuetify/components')['VHover']
2681
2679
  VLayout: typeof import('vuetify/components')['VLayout']
2682
2680
  VLayoutItem: typeof import('vuetify/components')['VLayoutItem']
2683
- VLazy: typeof import('vuetify/components')['VLazy']
2684
2681
  VLocaleProvider: typeof import('vuetify/components')['VLocaleProvider']
2682
+ VLazy: typeof import('vuetify/components')['VLazy']
2685
2683
  VParallax: typeof import('vuetify/components')['VParallax']
2686
- VRadio: typeof import('vuetify/components')['VRadio']
2687
2684
  VNoSsr: typeof import('vuetify/components')['VNoSsr']
2688
2685
  VRangeSlider: typeof import('vuetify/components')['VRangeSlider']
2686
+ VRadio: typeof import('vuetify/components')['VRadio']
2689
2687
  VResponsive: typeof import('vuetify/components')['VResponsive']
2690
2688
  VSparkline: typeof import('vuetify/components')['VSparkline']
2691
2689
  VSnackbarQueue: typeof import('vuetify/components')['VSnackbarQueue']
@@ -2709,27 +2707,29 @@ declare module 'vue' {
2709
2707
  VExpandTransition: typeof import('vuetify/components')['VExpandTransition']
2710
2708
  VExpandXTransition: typeof import('vuetify/components')['VExpandXTransition']
2711
2709
  VDialogTransition: typeof import('vuetify/components')['VDialogTransition']
2712
- VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
2713
- VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
2714
- VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
2710
+ VSelectionControl: typeof import('vuetify/components')['VSelectionControl']
2711
+ VSelect: typeof import('vuetify/components')['VSelect']
2715
2712
  VCalendar: typeof import('vuetify/labs/components')['VCalendar']
2716
2713
  VCalendarDay: typeof import('vuetify/labs/components')['VCalendarDay']
2717
2714
  VCalendarHeader: typeof import('vuetify/labs/components')['VCalendarHeader']
2718
2715
  VCalendarInterval: typeof import('vuetify/labs/components')['VCalendarInterval']
2719
2716
  VCalendarIntervalEvent: typeof import('vuetify/labs/components')['VCalendarIntervalEvent']
2720
2717
  VCalendarMonthDay: typeof import('vuetify/labs/components')['VCalendarMonthDay']
2721
- VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
2722
- VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
2723
- VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
2718
+ VColorInput: typeof import('vuetify/labs/components')['VColorInput']
2719
+ VFileUpload: typeof import('vuetify/labs/components')['VFileUpload']
2720
+ VFileUploadItem: typeof import('vuetify/labs/components')['VFileUploadItem']
2721
+ VIconBtn: typeof import('vuetify/labs/components')['VIconBtn']
2724
2722
  VPicker: typeof import('vuetify/labs/components')['VPicker']
2725
2723
  VPickerTitle: typeof import('vuetify/labs/components')['VPickerTitle']
2726
2724
  VTimePicker: typeof import('vuetify/labs/components')['VTimePicker']
2727
2725
  VTimePickerClock: typeof import('vuetify/labs/components')['VTimePickerClock']
2728
2726
  VTimePickerControls: typeof import('vuetify/labs/components')['VTimePickerControls']
2727
+ VStepperVertical: typeof import('vuetify/labs/components')['VStepperVertical']
2728
+ VStepperVerticalItem: typeof import('vuetify/labs/components')['VStepperVerticalItem']
2729
+ VStepperVerticalActions: typeof import('vuetify/labs/components')['VStepperVerticalActions']
2729
2730
  VTreeview: typeof import('vuetify/labs/components')['VTreeview']
2730
2731
  VTreeviewItem: typeof import('vuetify/labs/components')['VTreeviewItem']
2731
2732
  VTreeviewGroup: typeof import('vuetify/labs/components')['VTreeviewGroup']
2732
- VColorInput: typeof import('vuetify/labs/components')['VColorInput']
2733
2733
  VDateInput: typeof import('vuetify/labs/components')['VDateInput']
2734
2734
  VPullToRefresh: typeof import('vuetify/labs/components')['VPullToRefresh']
2735
2735
  }
package/lib/framework.js CHANGED
@@ -109,7 +109,7 @@ export function createVuetify() {
109
109
  };
110
110
  });
111
111
  }
112
- export const version = "3.8.7-master.2025-05-31";
112
+ export const version = "3.8.7-master.2025-06-03";
113
113
  createVuetify.version = version;
114
114
 
115
115
  // Vue's inject() can only be used in setup
@@ -1,4 +1,4 @@
1
- import { createVNode as _createVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle } from "vue";
1
+ import { createVNode as _createVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode } from "vue";
2
2
  // Styles
3
3
  import "./VPullToRefresh.css";
4
4
 
@@ -76,7 +76,7 @@ export const VPullToRefresh = genericComponent()({
76
76
  });
77
77
  useRender(() => {
78
78
  return _createElementVNode("div", {
79
- "class": ['v-pull-to-refresh'],
79
+ "class": _normalizeClass(['v-pull-to-refresh']),
80
80
  "onTouchstart": onTouchstart,
81
81
  "onTouchmove": onTouchmove,
82
82
  "onTouchend": onTouchend,
@@ -89,16 +89,16 @@ export const VPullToRefresh = genericComponent()({
89
89
  "class": _normalizeClass(['v-pull-to-refresh__pull-down', {
90
90
  'v-pull-to-refresh__pull-down--touching': touching.value
91
91
  }]),
92
- "style": _normalizeStyle({
92
+ "style": {
93
93
  top: convertToUnit(-1 * props.pullDownThreshold + topOffset.value),
94
94
  height: convertToUnit(props.pullDownThreshold)
95
- })
95
+ }
96
96
  }, [slots.pullDownPanel ? slots.pullDownPanel({
97
97
  canRefresh: canRefresh.value,
98
98
  goingUp: goingUp.value,
99
99
  refreshing: refreshing.value
100
100
  }) : _createElementVNode("div", {
101
- "class": ['v-pull-to-refresh__pull-down-default']
101
+ "class": _normalizeClass(['v-pull-to-refresh__pull-down-default'])
102
102
  }, [refreshing.value ? _createVNode(VProgressCircular, {
103
103
  "indeterminate": true,
104
104
  "active": false
@@ -108,9 +108,9 @@ export const VPullToRefresh = genericComponent()({
108
108
  "class": _normalizeClass(['v-pull-to-refresh__scroll-container', {
109
109
  'v-pull-to-refresh__scroll-container--touching': touching.value
110
110
  }]),
111
- "style": _normalizeStyle({
111
+ "style": {
112
112
  top: convertToUnit(topOffset.value)
113
- })
113
+ }
114
114
  }, [slots.default?.()])]);
115
115
  });
116
116
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VPullToRefresh.js","names":["VIcon","VProgressCircular","computed","onMounted","ref","shallowRef","watch","clamp","convertToUnit","genericComponent","getScrollParents","useRender","VPullToRefresh","name","props","disabled","Boolean","pullDownThreshold","type","Number","default","emits","load","options","setup","_ref","slots","emit","touchstartY","scrollParents","touchDiff","containerRef","refreshing","goingUp","touching","canRefresh","value","topOffset","onTouchstart","e","clientY","touches","onTouchmove","touchY","length","scrollTop","onTouchend","done","stopScrolling","forEach","p","style","overflow","newVal","oldVal","_createElementVNode","_normalizeClass","_normalizeStyle","top","height","pullDownPanel","_createVNode"],"sources":["../../../src/labs/VPullToRefresh/VPullToRefresh.tsx"],"sourcesContent":["// Styles\nimport './VPullToRefresh.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Utilities\nimport { computed, onMounted, ref, shallowRef, watch } from 'vue'\nimport { clamp, convertToUnit, genericComponent, getScrollParents, useRender } from '@/util'\n\nexport type VPullToRefreshSlots = {\n default: never\n pullDownPanel: {\n canRefresh: boolean\n goingUp: boolean\n refreshing: boolean\n }\n}\n\nexport const VPullToRefresh = genericComponent<VPullToRefreshSlots>()({\n name: 'VPullToRefresh',\n\n props: {\n disabled: Boolean,\n pullDownThreshold: {\n type: Number,\n default: 64,\n },\n },\n\n emits: {\n load: (options: { done: () => void }) => true,\n },\n\n setup (props, { slots, emit }) {\n let touchstartY = 0\n let scrollParents: HTMLElement[] = []\n\n const touchDiff = shallowRef(0)\n const containerRef = ref<HTMLElement>()\n\n const refreshing = shallowRef(false)\n const goingUp = shallowRef(false)\n const touching = shallowRef(false)\n\n const canRefresh = computed(() => touchDiff.value >= props.pullDownThreshold && !refreshing.value)\n const topOffset = computed(() => clamp(touchDiff.value, 0, props.pullDownThreshold))\n\n function onTouchstart (e: TouchEvent | MouseEvent) {\n if (refreshing.value || props.disabled) return\n touching.value = true\n touchstartY = 'clientY' in e ? e.clientY : e.touches[0].clientY\n }\n\n function onTouchmove (e: TouchEvent | MouseEvent) {\n if (refreshing.value || !touching.value || props.disabled) return\n\n const touchY = 'clientY' in e ? e.clientY : e.touches[0].clientY\n\n if (scrollParents.length && !scrollParents[0].scrollTop) {\n touchDiff.value = touchY - touchstartY\n }\n }\n\n function onTouchend (e: TouchEvent | MouseEvent) {\n if (refreshing.value || props.disabled) return\n touching.value = false\n if (canRefresh.value) {\n function done () {\n if (!refreshing.value) return\n touchDiff.value = 0\n refreshing.value = false\n }\n emit('load', { done })\n refreshing.value = true\n } else {\n touchDiff.value = 0\n }\n }\n\n onMounted(() => {\n scrollParents = getScrollParents(containerRef.value)\n })\n\n watch([topOffset, refreshing], () => {\n if (scrollParents.length) {\n const stopScrolling = topOffset.value && !refreshing.value\n scrollParents.forEach(p => p.style.overflow = stopScrolling ? 'hidden' : 'auto')\n }\n })\n\n watch(topOffset, (newVal, oldVal) => {\n goingUp.value = newVal < oldVal\n })\n\n useRender(() => {\n return (\n <div\n class={[\n 'v-pull-to-refresh',\n ]}\n onTouchstart={ onTouchstart }\n onTouchmove={ onTouchmove }\n onTouchend={ onTouchend }\n onMousedown={ onTouchstart }\n onMouseup={ onTouchend }\n onMouseleave={ onTouchend }\n onMousemove={ onTouchmove }\n ref={ containerRef }\n >\n <div\n class={[\n 'v-pull-to-refresh__pull-down',\n {\n 'v-pull-to-refresh__pull-down--touching': touching.value,\n },\n ]}\n style={{\n top: convertToUnit(-1 * props.pullDownThreshold + topOffset.value),\n height: convertToUnit(props.pullDownThreshold),\n }}\n >\n { slots.pullDownPanel\n ? slots.pullDownPanel({\n canRefresh: canRefresh.value,\n goingUp: goingUp.value,\n refreshing: refreshing.value,\n }) : (\n <div\n class={[\n 'v-pull-to-refresh__pull-down-default',\n ]}\n >\n {\n refreshing.value ? (\n <VProgressCircular\n indeterminate\n active={ false }\n />\n ) : (\n <VIcon\n icon={ canRefresh.value || goingUp.value ? '$sortAsc' : '$sortDesc' }\n />\n )\n }\n </div>\n )\n }\n </div>\n <div\n class={[\n 'v-pull-to-refresh__scroll-container',\n {\n 'v-pull-to-refresh__scroll-container--touching': touching.value,\n },\n ]}\n style={{ top: convertToUnit(topOffset.value) }}\n >\n { slots.default?.() }\n </div>\n </div>\n )\n })\n },\n})\n\nexport type VPullToRefresh = InstanceType<typeof VPullToRefresh>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VPullToRefresh.js","names":["VIcon","VProgressCircular","computed","onMounted","ref","shallowRef","watch","clamp","convertToUnit","genericComponent","getScrollParents","useRender","VPullToRefresh","name","props","disabled","Boolean","pullDownThreshold","type","Number","default","emits","load","options","setup","_ref","slots","emit","touchstartY","scrollParents","touchDiff","containerRef","refreshing","goingUp","touching","canRefresh","value","topOffset","onTouchstart","e","clientY","touches","onTouchmove","touchY","length","scrollTop","onTouchend","done","stopScrolling","forEach","p","style","overflow","newVal","oldVal","_createElementVNode","_normalizeClass","top","height","pullDownPanel","_createVNode"],"sources":["../../../src/labs/VPullToRefresh/VPullToRefresh.tsx"],"sourcesContent":["// Styles\nimport './VPullToRefresh.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Utilities\nimport { computed, onMounted, ref, shallowRef, watch } from 'vue'\nimport { clamp, convertToUnit, genericComponent, getScrollParents, useRender } from '@/util'\n\nexport type VPullToRefreshSlots = {\n default: never\n pullDownPanel: {\n canRefresh: boolean\n goingUp: boolean\n refreshing: boolean\n }\n}\n\nexport const VPullToRefresh = genericComponent<VPullToRefreshSlots>()({\n name: 'VPullToRefresh',\n\n props: {\n disabled: Boolean,\n pullDownThreshold: {\n type: Number,\n default: 64,\n },\n },\n\n emits: {\n load: (options: { done: () => void }) => true,\n },\n\n setup (props, { slots, emit }) {\n let touchstartY = 0\n let scrollParents: HTMLElement[] = []\n\n const touchDiff = shallowRef(0)\n const containerRef = ref<HTMLElement>()\n\n const refreshing = shallowRef(false)\n const goingUp = shallowRef(false)\n const touching = shallowRef(false)\n\n const canRefresh = computed(() => touchDiff.value >= props.pullDownThreshold && !refreshing.value)\n const topOffset = computed(() => clamp(touchDiff.value, 0, props.pullDownThreshold))\n\n function onTouchstart (e: TouchEvent | MouseEvent) {\n if (refreshing.value || props.disabled) return\n touching.value = true\n touchstartY = 'clientY' in e ? e.clientY : e.touches[0].clientY\n }\n\n function onTouchmove (e: TouchEvent | MouseEvent) {\n if (refreshing.value || !touching.value || props.disabled) return\n\n const touchY = 'clientY' in e ? e.clientY : e.touches[0].clientY\n\n if (scrollParents.length && !scrollParents[0].scrollTop) {\n touchDiff.value = touchY - touchstartY\n }\n }\n\n function onTouchend (e: TouchEvent | MouseEvent) {\n if (refreshing.value || props.disabled) return\n touching.value = false\n if (canRefresh.value) {\n function done () {\n if (!refreshing.value) return\n touchDiff.value = 0\n refreshing.value = false\n }\n emit('load', { done })\n refreshing.value = true\n } else {\n touchDiff.value = 0\n }\n }\n\n onMounted(() => {\n scrollParents = getScrollParents(containerRef.value)\n })\n\n watch([topOffset, refreshing], () => {\n if (scrollParents.length) {\n const stopScrolling = topOffset.value && !refreshing.value\n scrollParents.forEach(p => p.style.overflow = stopScrolling ? 'hidden' : 'auto')\n }\n })\n\n watch(topOffset, (newVal, oldVal) => {\n goingUp.value = newVal < oldVal\n })\n\n useRender(() => {\n return (\n <div\n class={[\n 'v-pull-to-refresh',\n ]}\n onTouchstart={ onTouchstart }\n onTouchmove={ onTouchmove }\n onTouchend={ onTouchend }\n onMousedown={ onTouchstart }\n onMouseup={ onTouchend }\n onMouseleave={ onTouchend }\n onMousemove={ onTouchmove }\n ref={ containerRef }\n >\n <div\n class={[\n 'v-pull-to-refresh__pull-down',\n {\n 'v-pull-to-refresh__pull-down--touching': touching.value,\n },\n ]}\n style={{\n top: convertToUnit(-1 * props.pullDownThreshold + topOffset.value),\n height: convertToUnit(props.pullDownThreshold),\n }}\n >\n { slots.pullDownPanel\n ? slots.pullDownPanel({\n canRefresh: canRefresh.value,\n goingUp: goingUp.value,\n refreshing: refreshing.value,\n }) : (\n <div\n class={[\n 'v-pull-to-refresh__pull-down-default',\n ]}\n >\n {\n refreshing.value ? (\n <VProgressCircular\n indeterminate\n active={ false }\n />\n ) : (\n <VIcon\n icon={ canRefresh.value || goingUp.value ? '$sortAsc' : '$sortDesc' }\n />\n )\n }\n </div>\n )\n }\n </div>\n <div\n class={[\n 'v-pull-to-refresh__scroll-container',\n {\n 'v-pull-to-refresh__scroll-container--touching': touching.value,\n },\n ]}\n style={{ top: convertToUnit(topOffset.value) }}\n >\n { slots.default?.() }\n </div>\n </div>\n )\n })\n },\n})\n\nexport type VPullToRefresh = InstanceType<typeof VPullToRefresh>\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@vuetify/nightly",
3
3
  "description": "Vue Material Component Framework",
4
- "version": "3.8.7-master.2025-05-31",
4
+ "version": "3.8.7-master.2025-06-03",
5
5
  "author": {
6
6
  "name": "John Leider",
7
7
  "email": "john@vuetifyjs.com"
@@ -155,7 +155,7 @@
155
155
  "@vue/reactivity": "^3.5.13",
156
156
  "@vue/shared": "^3.5.13",
157
157
  "@vue/test-utils": "^2.4.6",
158
- "@vuetify/babel-plugin-jsx": "^1.5.1",
158
+ "@vuetify/babel-plugin-jsx": "^1.5.2",
159
159
  "acorn-walk": "^8.3.4",
160
160
  "autoprefixer": "^10.4.21",
161
161
  "babel-plugin-add-import-extension": "1.5.1",