vuetify 3.6.15 → 3.7.0

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 (158) hide show
  1. package/dist/json/attributes.json +182 -26
  2. package/dist/json/importMap-labs.json +30 -30
  3. package/dist/json/importMap.json +150 -150
  4. package/dist/json/tags.json +44 -5
  5. package/dist/json/web-types.json +445 -42
  6. package/dist/vuetify-labs.css +2359 -2344
  7. package/dist/vuetify-labs.d.ts +690 -341
  8. package/dist/vuetify-labs.esm.js +253 -211
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +252 -210
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +2553 -2538
  13. package/dist/vuetify.d.ts +559 -315
  14. package/dist/vuetify.esm.js +189 -127
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +188 -126
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +160 -156
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VApp/VApp.mjs +2 -5
  22. package/lib/components/VApp/VApp.mjs.map +1 -1
  23. package/lib/components/VApp/index.d.mts +6 -6
  24. package/lib/components/VAppBar/VAppBar.mjs +5 -5
  25. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  26. package/lib/components/VAppBar/index.d.mts +8 -2
  27. package/lib/components/VAutocomplete/VAutocomplete.mjs +15 -8
  28. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  29. package/lib/components/VAutocomplete/index.d.mts +78 -49
  30. package/lib/components/VAvatar/VAvatar.css +9 -0
  31. package/lib/components/VAvatar/VAvatar.mjs +6 -1
  32. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  33. package/lib/components/VAvatar/VAvatar.sass +1 -0
  34. package/lib/components/VAvatar/_variables.scss +13 -0
  35. package/lib/components/VAvatar/index.d.mts +6 -0
  36. package/lib/components/VBottomNavigation/VBottomNavigation.mjs +2 -3
  37. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  38. package/lib/components/VBottomNavigation/index.d.mts +2 -2
  39. package/lib/components/VBreadcrumbs/index.d.mts +8 -8
  40. package/lib/components/VBtn/VBtn.css +0 -4
  41. package/lib/components/VBtn/VBtn.mjs +3 -1
  42. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  43. package/lib/components/VBtn/VBtn.sass +0 -6
  44. package/lib/components/VBtn/_variables.scss +0 -1
  45. package/lib/components/VBtn/index.d.mts +6 -0
  46. package/lib/components/VCard/VCard.css +1 -0
  47. package/lib/components/VCard/VCard.sass +1 -0
  48. package/lib/components/VCard/_variables.scss +7 -3
  49. package/lib/components/VCarousel/index.d.mts +9 -0
  50. package/lib/components/VCheckbox/index.d.mts +7 -6
  51. package/lib/components/VCombobox/VCombobox.mjs +15 -8
  52. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  53. package/lib/components/VCombobox/index.d.mts +78 -49
  54. package/lib/components/VDialog/index.d.mts +3 -3
  55. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +7 -2
  56. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  57. package/lib/components/VExpansionPanel/index.d.mts +72 -0
  58. package/lib/components/VFab/index.d.mts +6 -0
  59. package/lib/components/VFileInput/index.d.mts +19 -18
  60. package/lib/components/VFooter/VFooter.mjs +1 -3
  61. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  62. package/lib/components/VFooter/index.d.mts +3 -3
  63. package/lib/components/VForm/index.d.mts +10 -9
  64. package/lib/components/VGrid/VContainer.mjs +6 -1
  65. package/lib/components/VGrid/VContainer.mjs.map +1 -1
  66. package/lib/components/VGrid/index.d.mts +36 -0
  67. package/lib/components/VImg/VImg.css +9 -0
  68. package/lib/components/VImg/VImg.mjs +2 -0
  69. package/lib/components/VImg/VImg.mjs.map +1 -1
  70. package/lib/components/VImg/VImg.sass +9 -0
  71. package/lib/components/VImg/index.d.mts +9 -0
  72. package/lib/components/VInput/index.d.mts +7 -6
  73. package/lib/components/VLayout/VLayout.mjs +2 -5
  74. package/lib/components/VLayout/VLayout.mjs.map +1 -1
  75. package/lib/components/VLayout/VLayoutItem.mjs +4 -6
  76. package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
  77. package/lib/components/VLayout/index.d.mts +9 -9
  78. package/lib/components/VList/VListItem.css +2 -2
  79. package/lib/components/VList/VListItem.mjs +3 -1
  80. package/lib/components/VList/VListItem.mjs.map +1 -1
  81. package/lib/components/VList/VListItem.sass +1 -1
  82. package/lib/components/VList/index.d.mts +19 -18
  83. package/lib/components/VMain/VMain.mjs +2 -3
  84. package/lib/components/VMain/VMain.mjs.map +1 -1
  85. package/lib/components/VMain/index.d.mts +2 -2
  86. package/lib/components/VMenu/VMenu.mjs +26 -8
  87. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  88. package/lib/components/VMenu/index.d.mts +30 -15
  89. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +3 -4
  90. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  91. package/lib/components/VOverlay/VOverlay.mjs +5 -4
  92. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  93. package/lib/components/VOverlay/locationStrategies.mjs +0 -6
  94. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  95. package/lib/components/VOverlay/useActivator.mjs +3 -2
  96. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  97. package/lib/components/VRadioGroup/index.d.mts +7 -6
  98. package/lib/components/VRangeSlider/index.d.mts +7 -6
  99. package/lib/components/VSelect/VSelect.mjs +15 -13
  100. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  101. package/lib/components/VSelect/index.d.mts +78 -49
  102. package/lib/components/VSelect/useScrolling.mjs +3 -3
  103. package/lib/components/VSelect/useScrolling.mjs.map +1 -1
  104. package/lib/components/VSlideGroup/VSlideGroup.mjs +3 -1
  105. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  106. package/lib/components/VSlideGroup/index.d.mts +6 -0
  107. package/lib/components/VSlider/index.d.mts +7 -6
  108. package/lib/components/VSnackbar/index.d.mts +3 -3
  109. package/lib/components/VSpeedDial/VSpeedDial.mjs +1 -1
  110. package/lib/components/VSpeedDial/VSpeedDial.mjs.map +1 -1
  111. package/lib/components/VSpeedDial/index.d.mts +28 -13
  112. package/lib/components/VSwitch/index.d.mts +7 -6
  113. package/lib/components/VTabs/index.d.mts +21 -3
  114. package/lib/components/VTextField/index.d.mts +19 -18
  115. package/lib/components/VTextarea/index.d.mts +19 -18
  116. package/lib/components/VTooltip/index.d.mts +3 -3
  117. package/lib/components/VValidation/index.d.mts +7 -6
  118. package/lib/components/VVirtualScroll/VVirtualScroll.mjs +2 -0
  119. package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  120. package/lib/components/VVirtualScroll/index.d.mts +3 -0
  121. package/lib/components/index.d.mts +504 -259
  122. package/lib/composables/layout.mjs +37 -14
  123. package/lib/composables/layout.mjs.map +1 -1
  124. package/lib/composables/nested/nested.mjs +3 -3
  125. package/lib/composables/nested/nested.mjs.map +1 -1
  126. package/lib/composables/nested/openStrategies.mjs +4 -2
  127. package/lib/composables/nested/openStrategies.mjs.map +1 -1
  128. package/lib/composables/nested/selectStrategies.mjs +5 -5
  129. package/lib/composables/nested/selectStrategies.mjs.map +1 -1
  130. package/lib/composables/validation.mjs +8 -6
  131. package/lib/composables/validation.mjs.map +1 -1
  132. package/lib/composables/virtual.mjs +1 -0
  133. package/lib/composables/virtual.mjs.map +1 -1
  134. package/lib/entry-bundler.mjs +1 -1
  135. package/lib/entry-bundler.mjs.map +1 -1
  136. package/lib/framework.mjs +1 -1
  137. package/lib/framework.mjs.map +1 -1
  138. package/lib/index.d.mts +55 -56
  139. package/lib/labs/VDateInput/index.d.mts +7 -6
  140. package/lib/labs/VNumberInput/index.d.mts +43 -42
  141. package/lib/labs/VPullToRefresh/VPullToRefresh.mjs +4 -3
  142. package/lib/labs/VPullToRefresh/VPullToRefresh.mjs.map +1 -1
  143. package/lib/labs/VPullToRefresh/index.d.mts +9 -0
  144. package/lib/labs/VSnackbarQueue/index.d.mts +3 -3
  145. package/lib/labs/VStepperVertical/index.d.mts +36 -0
  146. package/lib/labs/VTreeview/VTreeview.mjs +21 -6
  147. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  148. package/lib/labs/VTreeview/VTreeviewChildren.mjs +33 -10
  149. package/lib/labs/VTreeview/VTreeviewChildren.mjs.map +1 -1
  150. package/lib/labs/VTreeview/VTreeviewItem.css +1 -1
  151. package/lib/labs/VTreeview/VTreeviewItem.mjs +14 -74
  152. package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
  153. package/lib/labs/VTreeview/VTreeviewItem.sass +2 -5
  154. package/lib/labs/VTreeview/index.d.mts +133 -95
  155. package/lib/labs/components.d.mts +193 -109
  156. package/lib/util/helpers.mjs +5 -0
  157. package/lib/util/helpers.mjs.map +1 -1
  158. package/package.json +2 -2
@@ -346,7 +346,9 @@ export const VSlideGroup = genericComponent()({
346
346
  selected: group.selected,
347
347
  scrollTo,
348
348
  scrollOffset,
349
- focus
349
+ focus,
350
+ hasPrev,
351
+ hasNext
350
352
  };
351
353
  }
352
354
  });
@@ -1 +1 @@
1
- {"version":3,"file":"VSlideGroup.mjs","names":["VFadeTransition","VIcon","makeComponentProps","makeDisplayProps","useDisplay","useGoTo","makeGroupProps","useGroup","IconValue","useRtl","useResizeObserver","makeTagProps","computed","shallowRef","watch","calculateCenteredTarget","calculateUpdatedTarget","getClientSize","getOffsetSize","getScrollPosition","getScrollSize","focusableChildren","genericComponent","IN_BROWSER","propsFactory","useRender","VSlideGroupSymbol","Symbol","for","makeVSlideGroupProps","centerActive","Boolean","direction","type","String","default","symbol","nextIcon","prevIcon","showArrows","validator","v","includes","mobile","selectedClass","VSlideGroup","name","props","emits","value","setup","_ref","slots","isRtl","displayClasses","group","isOverflowing","scrollOffset","containerSize","contentSize","isHorizontal","resizeRef","containerRef","contentRect","containerRect","contentRef","goTo","goToOptions","container","el","duration","easing","firstSelectedIndex","selected","length","items","findIndex","item","id","lastSelectedIndex","frame","cancelAnimationFrame","requestAnimationFrame","sizeProperty","selectedElement","children","scrollToChildren","isFocused","center","target","containerElement","scrollToPosition","newPosition","offsetSize","scrollPosition","scrollSize","Math","abs","scrollWidth","offsetWidth","containerWidth","horizontal","onScroll","e","scrollTop","scrollLeft","onFocusin","composedPath","onFocusout","ignoreFocusEvent","onFocus","relatedTarget","contains","focus","onFocusAffixes","onKeydown","toFocus","location","preventDefault","key","focusable","querySelector","nextElementSibling","previousElementSibling","firstElementChild","lastElementChild","preventScroll","scrollTo","offsetStep","slotProps","next","prev","select","isSelected","hasAffixes","hasPrev","hasNext","clientSize","scrollSizeMax","_createVNode","tag","class","style","onClick"],"sources":["../../../src/components/VSlideGroup/VSlideGroup.tsx"],"sourcesContent":["// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport { VFadeTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { useGoTo } from '@/composables/goto'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { IconValue } from '@/composables/icons'\nimport { useRtl } from '@/composables/locale'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed, shallowRef, watch } from 'vue'\nimport {\n calculateCenteredTarget,\n calculateUpdatedTarget,\n getClientSize,\n getOffsetSize,\n getScrollPosition,\n getScrollSize,\n} from './helpers'\nimport { focusableChildren, genericComponent, IN_BROWSER, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType } from 'vue'\nimport type { GoToOptions } from '@/composables/goto'\nimport type { GroupProvide } from '@/composables/group'\nimport type { GenericProps } from '@/util'\n\nexport const VSlideGroupSymbol: InjectionKey<GroupProvide> = Symbol.for('vuetify:v-slide-group')\n\ninterface SlideGroupSlot {\n next: GroupProvide['next']\n prev: GroupProvide['prev']\n select: GroupProvide['select']\n isSelected: GroupProvide['isSelected']\n}\n\ntype VSlideGroupSlots = {\n default: SlideGroupSlot\n prev: SlideGroupSlot\n next: SlideGroupSlot\n}\n\nexport const makeVSlideGroupProps = propsFactory({\n centerActive: Boolean,\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n symbol: {\n type: null,\n default: VSlideGroupSymbol,\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => (\n typeof v === 'boolean' || [\n 'always',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n\n ...makeComponentProps(),\n ...makeDisplayProps({ mobile: null }),\n ...makeTagProps(),\n ...makeGroupProps({\n selectedClass: 'v-slide-group-item--active',\n }),\n}, 'VSlideGroup')\n\nexport const VSlideGroup = genericComponent<new <T>(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VSlideGroupSlots,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VSlideGroup',\n\n props: makeVSlideGroupProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { isRtl } = useRtl()\n const { displayClasses, mobile } = useDisplay(props)\n const group = useGroup(props, props.symbol)\n const isOverflowing = shallowRef(false)\n const scrollOffset = shallowRef(0)\n const containerSize = shallowRef(0)\n const contentSize = shallowRef(0)\n const isHorizontal = computed(() => props.direction === 'horizontal')\n\n const { resizeRef: containerRef, contentRect: containerRect } = useResizeObserver()\n const { resizeRef: contentRef, contentRect } = useResizeObserver()\n\n const goTo = useGoTo()\n const goToOptions = computed<Partial<GoToOptions>>(() => {\n return {\n container: containerRef.el,\n duration: 200,\n easing: 'easeOutQuart',\n }\n })\n\n const firstSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1\n\n return group.items.value.findIndex(item => item.id === group.selected.value[0])\n })\n\n const lastSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1\n\n return group.items.value.findIndex(item => item.id === group.selected.value[group.selected.value.length - 1])\n })\n\n if (IN_BROWSER) {\n let frame = -1\n watch(() => [group.selected.value, containerRect.value, contentRect.value, isHorizontal.value], () => {\n cancelAnimationFrame(frame)\n frame = requestAnimationFrame(() => {\n if (containerRect.value && contentRect.value) {\n const sizeProperty = isHorizontal.value ? 'width' : 'height'\n\n containerSize.value = containerRect.value[sizeProperty]\n contentSize.value = contentRect.value[sizeProperty]\n\n isOverflowing.value = containerSize.value + 1 < contentSize.value\n }\n\n if (firstSelectedIndex.value >= 0 && contentRef.el) {\n // TODO: Is this too naive? Should we store element references in group composable?\n const selectedElement = contentRef.el.children[lastSelectedIndex.value] as HTMLElement\n\n scrollToChildren(selectedElement, props.centerActive)\n }\n })\n })\n }\n\n const isFocused = shallowRef(false)\n\n function scrollToChildren (children: HTMLElement, center?: boolean) {\n let target = 0\n\n if (center) {\n target = calculateCenteredTarget({\n containerElement: containerRef.el!,\n isHorizontal: isHorizontal.value,\n selectedElement: children,\n })\n } else {\n target = calculateUpdatedTarget({\n containerElement: containerRef.el!,\n isHorizontal: isHorizontal.value,\n isRtl: isRtl.value,\n selectedElement: children,\n })\n }\n\n scrollToPosition(target)\n }\n\n function scrollToPosition (newPosition: number) {\n if (!IN_BROWSER || !containerRef.el) return\n\n const offsetSize = getOffsetSize(isHorizontal.value, containerRef.el)\n const scrollPosition = getScrollPosition(isHorizontal.value, isRtl.value, containerRef.el)\n const scrollSize = getScrollSize(isHorizontal.value, containerRef.el)\n\n if (\n scrollSize <= offsetSize ||\n // Prevent scrolling by only a couple of pixels, which doesn't look smooth\n Math.abs(newPosition - scrollPosition) < 16\n ) return\n\n if (isHorizontal.value && isRtl.value && containerRef.el) {\n const { scrollWidth, offsetWidth: containerWidth } = containerRef.el!\n\n newPosition = (scrollWidth - containerWidth) - newPosition\n }\n\n if (isHorizontal.value) {\n goTo.horizontal(newPosition, goToOptions.value)\n } else {\n goTo(newPosition, goToOptions.value)\n }\n }\n\n function onScroll (e: Event) {\n const { scrollTop, scrollLeft } = e.target as HTMLElement\n\n scrollOffset.value = isHorizontal.value ? scrollLeft : scrollTop\n }\n\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n\n if (!isOverflowing.value || !contentRef.el) return\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of e.composedPath()) {\n for (const item of contentRef.el.children) {\n if (item === el) {\n scrollToChildren(item as HTMLElement)\n return\n }\n }\n }\n }\n\n function onFocusout (e: FocusEvent) {\n isFocused.value = false\n }\n\n // Affix clicks produce onFocus that we have to ignore to avoid extra scrollToChildren\n let ignoreFocusEvent = false\n function onFocus (e: FocusEvent) {\n if (\n !ignoreFocusEvent &&\n !isFocused.value &&\n !(e.relatedTarget && contentRef.el?.contains(e.relatedTarget as Node))\n ) focus()\n\n ignoreFocusEvent = false\n }\n\n function onFocusAffixes () {\n ignoreFocusEvent = true\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (!contentRef.el) return\n\n function toFocus (location: Parameters<typeof focus>[0]) {\n e.preventDefault()\n focus(location)\n }\n\n if (isHorizontal.value) {\n if (e.key === 'ArrowRight') {\n toFocus(isRtl.value ? 'prev' : 'next')\n } else if (e.key === 'ArrowLeft') {\n toFocus(isRtl.value ? 'next' : 'prev')\n }\n } else {\n if (e.key === 'ArrowDown') {\n toFocus('next')\n } else if (e.key === 'ArrowUp') {\n toFocus('prev')\n }\n }\n\n if (e.key === 'Home') {\n toFocus('first')\n } else if (e.key === 'End') {\n toFocus('last')\n }\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last') {\n if (!contentRef.el) return\n\n let el: HTMLElement | undefined\n\n if (!location) {\n const focusable = focusableChildren(contentRef.el)\n el = focusable[0]\n } else if (location === 'next') {\n el = contentRef.el.querySelector(':focus')?.nextElementSibling as HTMLElement | undefined\n\n if (!el) return focus('first')\n } else if (location === 'prev') {\n el = contentRef.el.querySelector(':focus')?.previousElementSibling as HTMLElement | undefined\n\n if (!el) return focus('last')\n } else if (location === 'first') {\n el = (contentRef.el.firstElementChild as HTMLElement)\n } else if (location === 'last') {\n el = (contentRef.el.lastElementChild as HTMLElement)\n }\n\n if (el) {\n el.focus({ preventScroll: true })\n }\n }\n\n function scrollTo (location: 'prev' | 'next') {\n const direction = isHorizontal.value && isRtl.value ? -1 : 1\n\n const offsetStep = (location === 'prev' ? -direction : direction) * containerSize.value\n\n let newPosition = scrollOffset.value + offsetStep\n\n // TODO: improve it\n if (isHorizontal.value && isRtl.value && containerRef.el) {\n const { scrollWidth, offsetWidth: containerWidth } = containerRef.el!\n\n newPosition += scrollWidth - containerWidth\n }\n\n scrollToPosition(newPosition)\n }\n\n const slotProps = computed(() => ({\n next: group.next,\n prev: group.prev,\n select: group.select,\n isSelected: group.isSelected,\n }))\n\n const hasAffixes = computed(() => {\n switch (props.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always': return true\n\n // Always show arrows on desktop\n case 'desktop': return !mobile.value\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true: return isOverflowing.value || Math.abs(scrollOffset.value) > 0\n\n // Always show on mobile\n case 'mobile': return (\n mobile.value ||\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default: return (\n !mobile.value &&\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n }\n })\n\n const hasPrev = computed(() => {\n // 1 pixel in reserve, may be lost after rounding\n return Math.abs(scrollOffset.value) > 1\n })\n\n const hasNext = computed(() => {\n if (!containerRef.value) return false\n\n const scrollSize = getScrollSize(isHorizontal.value, containerRef.el)\n const clientSize = getClientSize(isHorizontal.value, containerRef.el)\n\n const scrollSizeMax = scrollSize - clientSize\n\n // 1 pixel in reserve, may be lost after rounding\n return scrollSizeMax - Math.abs(scrollOffset.value) > 1\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-slide-group',\n {\n 'v-slide-group--vertical': !isHorizontal.value,\n 'v-slide-group--has-affixes': hasAffixes.value,\n 'v-slide-group--is-overflowing': isOverflowing.value,\n },\n displayClasses.value,\n props.class,\n ]}\n style={ props.style }\n tabindex={ (isFocused.value || group.selected.value.length) ? -1 : 0 }\n onFocus={ onFocus }\n >\n { hasAffixes.value && (\n <div\n key=\"prev\"\n class={[\n 'v-slide-group__prev',\n { 'v-slide-group__prev--disabled': !hasPrev.value },\n ]}\n onMousedown={ onFocusAffixes }\n onClick={ () => hasPrev.value && scrollTo('prev') }\n >\n { slots.prev?.(slotProps.value) ?? (\n <VFadeTransition>\n <VIcon icon={ isRtl.value ? props.nextIcon : props.prevIcon }></VIcon>\n </VFadeTransition>\n )}\n </div>\n )}\n\n <div\n key=\"container\"\n ref={ containerRef }\n class=\"v-slide-group__container\"\n onScroll={ onScroll }\n >\n <div\n ref={ contentRef }\n class=\"v-slide-group__content\"\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n onKeydown={ onKeydown }\n >\n { slots.default?.(slotProps.value) }\n </div>\n </div>\n\n { hasAffixes.value && (\n <div\n key=\"next\"\n class={[\n 'v-slide-group__next',\n { 'v-slide-group__next--disabled': !hasNext.value },\n ]}\n onMousedown={ onFocusAffixes }\n onClick={ () => hasNext.value && scrollTo('next') }\n >\n { slots.next?.(slotProps.value) ?? (\n <VFadeTransition>\n <VIcon icon={ isRtl.value ? props.prevIcon : props.nextIcon }></VIcon>\n </VFadeTransition>\n )}\n </div>\n )}\n </props.tag>\n ))\n\n return {\n selected: group.selected,\n scrollTo,\n scrollOffset,\n focus,\n }\n },\n})\n\nexport type VSlideGroup = InstanceType<typeof VSlideGroup>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VSlideGroup.mjs","names":["VFadeTransition","VIcon","makeComponentProps","makeDisplayProps","useDisplay","useGoTo","makeGroupProps","useGroup","IconValue","useRtl","useResizeObserver","makeTagProps","computed","shallowRef","watch","calculateCenteredTarget","calculateUpdatedTarget","getClientSize","getOffsetSize","getScrollPosition","getScrollSize","focusableChildren","genericComponent","IN_BROWSER","propsFactory","useRender","VSlideGroupSymbol","Symbol","for","makeVSlideGroupProps","centerActive","Boolean","direction","type","String","default","symbol","nextIcon","prevIcon","showArrows","validator","v","includes","mobile","selectedClass","VSlideGroup","name","props","emits","value","setup","_ref","slots","isRtl","displayClasses","group","isOverflowing","scrollOffset","containerSize","contentSize","isHorizontal","resizeRef","containerRef","contentRect","containerRect","contentRef","goTo","goToOptions","container","el","duration","easing","firstSelectedIndex","selected","length","items","findIndex","item","id","lastSelectedIndex","frame","cancelAnimationFrame","requestAnimationFrame","sizeProperty","selectedElement","children","scrollToChildren","isFocused","center","target","containerElement","scrollToPosition","newPosition","offsetSize","scrollPosition","scrollSize","Math","abs","scrollWidth","offsetWidth","containerWidth","horizontal","onScroll","e","scrollTop","scrollLeft","onFocusin","composedPath","onFocusout","ignoreFocusEvent","onFocus","relatedTarget","contains","focus","onFocusAffixes","onKeydown","toFocus","location","preventDefault","key","focusable","querySelector","nextElementSibling","previousElementSibling","firstElementChild","lastElementChild","preventScroll","scrollTo","offsetStep","slotProps","next","prev","select","isSelected","hasAffixes","hasPrev","hasNext","clientSize","scrollSizeMax","_createVNode","tag","class","style","onClick"],"sources":["../../../src/components/VSlideGroup/VSlideGroup.tsx"],"sourcesContent":["// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport { VFadeTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { useGoTo } from '@/composables/goto'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { IconValue } from '@/composables/icons'\nimport { useRtl } from '@/composables/locale'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed, shallowRef, watch } from 'vue'\nimport {\n calculateCenteredTarget,\n calculateUpdatedTarget,\n getClientSize,\n getOffsetSize,\n getScrollPosition,\n getScrollSize,\n} from './helpers'\nimport { focusableChildren, genericComponent, IN_BROWSER, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType } from 'vue'\nimport type { GoToOptions } from '@/composables/goto'\nimport type { GroupProvide } from '@/composables/group'\nimport type { GenericProps } from '@/util'\n\nexport const VSlideGroupSymbol: InjectionKey<GroupProvide> = Symbol.for('vuetify:v-slide-group')\n\ninterface SlideGroupSlot {\n next: GroupProvide['next']\n prev: GroupProvide['prev']\n select: GroupProvide['select']\n isSelected: GroupProvide['isSelected']\n}\n\ntype VSlideGroupSlots = {\n default: SlideGroupSlot\n prev: SlideGroupSlot\n next: SlideGroupSlot\n}\n\nexport const makeVSlideGroupProps = propsFactory({\n centerActive: Boolean,\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n symbol: {\n type: null,\n default: VSlideGroupSymbol,\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => (\n typeof v === 'boolean' || [\n 'always',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n\n ...makeComponentProps(),\n ...makeDisplayProps({ mobile: null }),\n ...makeTagProps(),\n ...makeGroupProps({\n selectedClass: 'v-slide-group-item--active',\n }),\n}, 'VSlideGroup')\n\nexport const VSlideGroup = genericComponent<new <T>(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VSlideGroupSlots,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VSlideGroup',\n\n props: makeVSlideGroupProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { isRtl } = useRtl()\n const { displayClasses, mobile } = useDisplay(props)\n const group = useGroup(props, props.symbol)\n const isOverflowing = shallowRef(false)\n const scrollOffset = shallowRef(0)\n const containerSize = shallowRef(0)\n const contentSize = shallowRef(0)\n const isHorizontal = computed(() => props.direction === 'horizontal')\n\n const { resizeRef: containerRef, contentRect: containerRect } = useResizeObserver()\n const { resizeRef: contentRef, contentRect } = useResizeObserver()\n\n const goTo = useGoTo()\n const goToOptions = computed<Partial<GoToOptions>>(() => {\n return {\n container: containerRef.el,\n duration: 200,\n easing: 'easeOutQuart',\n }\n })\n\n const firstSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1\n\n return group.items.value.findIndex(item => item.id === group.selected.value[0])\n })\n\n const lastSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1\n\n return group.items.value.findIndex(item => item.id === group.selected.value[group.selected.value.length - 1])\n })\n\n if (IN_BROWSER) {\n let frame = -1\n watch(() => [group.selected.value, containerRect.value, contentRect.value, isHorizontal.value], () => {\n cancelAnimationFrame(frame)\n frame = requestAnimationFrame(() => {\n if (containerRect.value && contentRect.value) {\n const sizeProperty = isHorizontal.value ? 'width' : 'height'\n\n containerSize.value = containerRect.value[sizeProperty]\n contentSize.value = contentRect.value[sizeProperty]\n\n isOverflowing.value = containerSize.value + 1 < contentSize.value\n }\n\n if (firstSelectedIndex.value >= 0 && contentRef.el) {\n // TODO: Is this too naive? Should we store element references in group composable?\n const selectedElement = contentRef.el.children[lastSelectedIndex.value] as HTMLElement\n\n scrollToChildren(selectedElement, props.centerActive)\n }\n })\n })\n }\n\n const isFocused = shallowRef(false)\n\n function scrollToChildren (children: HTMLElement, center?: boolean) {\n let target = 0\n\n if (center) {\n target = calculateCenteredTarget({\n containerElement: containerRef.el!,\n isHorizontal: isHorizontal.value,\n selectedElement: children,\n })\n } else {\n target = calculateUpdatedTarget({\n containerElement: containerRef.el!,\n isHorizontal: isHorizontal.value,\n isRtl: isRtl.value,\n selectedElement: children,\n })\n }\n\n scrollToPosition(target)\n }\n\n function scrollToPosition (newPosition: number) {\n if (!IN_BROWSER || !containerRef.el) return\n\n const offsetSize = getOffsetSize(isHorizontal.value, containerRef.el)\n const scrollPosition = getScrollPosition(isHorizontal.value, isRtl.value, containerRef.el)\n const scrollSize = getScrollSize(isHorizontal.value, containerRef.el)\n\n if (\n scrollSize <= offsetSize ||\n // Prevent scrolling by only a couple of pixels, which doesn't look smooth\n Math.abs(newPosition - scrollPosition) < 16\n ) return\n\n if (isHorizontal.value && isRtl.value && containerRef.el) {\n const { scrollWidth, offsetWidth: containerWidth } = containerRef.el!\n\n newPosition = (scrollWidth - containerWidth) - newPosition\n }\n\n if (isHorizontal.value) {\n goTo.horizontal(newPosition, goToOptions.value)\n } else {\n goTo(newPosition, goToOptions.value)\n }\n }\n\n function onScroll (e: Event) {\n const { scrollTop, scrollLeft } = e.target as HTMLElement\n\n scrollOffset.value = isHorizontal.value ? scrollLeft : scrollTop\n }\n\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n\n if (!isOverflowing.value || !contentRef.el) return\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of e.composedPath()) {\n for (const item of contentRef.el.children) {\n if (item === el) {\n scrollToChildren(item as HTMLElement)\n return\n }\n }\n }\n }\n\n function onFocusout (e: FocusEvent) {\n isFocused.value = false\n }\n\n // Affix clicks produce onFocus that we have to ignore to avoid extra scrollToChildren\n let ignoreFocusEvent = false\n function onFocus (e: FocusEvent) {\n if (\n !ignoreFocusEvent &&\n !isFocused.value &&\n !(e.relatedTarget && contentRef.el?.contains(e.relatedTarget as Node))\n ) focus()\n\n ignoreFocusEvent = false\n }\n\n function onFocusAffixes () {\n ignoreFocusEvent = true\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (!contentRef.el) return\n\n function toFocus (location: Parameters<typeof focus>[0]) {\n e.preventDefault()\n focus(location)\n }\n\n if (isHorizontal.value) {\n if (e.key === 'ArrowRight') {\n toFocus(isRtl.value ? 'prev' : 'next')\n } else if (e.key === 'ArrowLeft') {\n toFocus(isRtl.value ? 'next' : 'prev')\n }\n } else {\n if (e.key === 'ArrowDown') {\n toFocus('next')\n } else if (e.key === 'ArrowUp') {\n toFocus('prev')\n }\n }\n\n if (e.key === 'Home') {\n toFocus('first')\n } else if (e.key === 'End') {\n toFocus('last')\n }\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last') {\n if (!contentRef.el) return\n\n let el: HTMLElement | undefined\n\n if (!location) {\n const focusable = focusableChildren(contentRef.el)\n el = focusable[0]\n } else if (location === 'next') {\n el = contentRef.el.querySelector(':focus')?.nextElementSibling as HTMLElement | undefined\n\n if (!el) return focus('first')\n } else if (location === 'prev') {\n el = contentRef.el.querySelector(':focus')?.previousElementSibling as HTMLElement | undefined\n\n if (!el) return focus('last')\n } else if (location === 'first') {\n el = (contentRef.el.firstElementChild as HTMLElement)\n } else if (location === 'last') {\n el = (contentRef.el.lastElementChild as HTMLElement)\n }\n\n if (el) {\n el.focus({ preventScroll: true })\n }\n }\n\n function scrollTo (location: 'prev' | 'next') {\n const direction = isHorizontal.value && isRtl.value ? -1 : 1\n\n const offsetStep = (location === 'prev' ? -direction : direction) * containerSize.value\n\n let newPosition = scrollOffset.value + offsetStep\n\n // TODO: improve it\n if (isHorizontal.value && isRtl.value && containerRef.el) {\n const { scrollWidth, offsetWidth: containerWidth } = containerRef.el!\n\n newPosition += scrollWidth - containerWidth\n }\n\n scrollToPosition(newPosition)\n }\n\n const slotProps = computed(() => ({\n next: group.next,\n prev: group.prev,\n select: group.select,\n isSelected: group.isSelected,\n }))\n\n const hasAffixes = computed(() => {\n switch (props.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always': return true\n\n // Always show arrows on desktop\n case 'desktop': return !mobile.value\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true: return isOverflowing.value || Math.abs(scrollOffset.value) > 0\n\n // Always show on mobile\n case 'mobile': return (\n mobile.value ||\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default: return (\n !mobile.value &&\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n }\n })\n\n const hasPrev = computed(() => {\n // 1 pixel in reserve, may be lost after rounding\n return Math.abs(scrollOffset.value) > 1\n })\n\n const hasNext = computed(() => {\n if (!containerRef.value) return false\n\n const scrollSize = getScrollSize(isHorizontal.value, containerRef.el)\n const clientSize = getClientSize(isHorizontal.value, containerRef.el)\n\n const scrollSizeMax = scrollSize - clientSize\n\n // 1 pixel in reserve, may be lost after rounding\n return scrollSizeMax - Math.abs(scrollOffset.value) > 1\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-slide-group',\n {\n 'v-slide-group--vertical': !isHorizontal.value,\n 'v-slide-group--has-affixes': hasAffixes.value,\n 'v-slide-group--is-overflowing': isOverflowing.value,\n },\n displayClasses.value,\n props.class,\n ]}\n style={ props.style }\n tabindex={ (isFocused.value || group.selected.value.length) ? -1 : 0 }\n onFocus={ onFocus }\n >\n { hasAffixes.value && (\n <div\n key=\"prev\"\n class={[\n 'v-slide-group__prev',\n { 'v-slide-group__prev--disabled': !hasPrev.value },\n ]}\n onMousedown={ onFocusAffixes }\n onClick={ () => hasPrev.value && scrollTo('prev') }\n >\n { slots.prev?.(slotProps.value) ?? (\n <VFadeTransition>\n <VIcon icon={ isRtl.value ? props.nextIcon : props.prevIcon }></VIcon>\n </VFadeTransition>\n )}\n </div>\n )}\n\n <div\n key=\"container\"\n ref={ containerRef }\n class=\"v-slide-group__container\"\n onScroll={ onScroll }\n >\n <div\n ref={ contentRef }\n class=\"v-slide-group__content\"\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n onKeydown={ onKeydown }\n >\n { slots.default?.(slotProps.value) }\n </div>\n </div>\n\n { hasAffixes.value && (\n <div\n key=\"next\"\n class={[\n 'v-slide-group__next',\n { 'v-slide-group__next--disabled': !hasNext.value },\n ]}\n onMousedown={ onFocusAffixes }\n onClick={ () => hasNext.value && scrollTo('next') }\n >\n { slots.next?.(slotProps.value) ?? (\n <VFadeTransition>\n <VIcon icon={ isRtl.value ? props.prevIcon : props.nextIcon }></VIcon>\n </VFadeTransition>\n )}\n </div>\n )}\n </props.tag>\n ))\n\n return {\n selected: group.selected,\n scrollTo,\n scrollOffset,\n focus,\n hasPrev,\n hasNext,\n }\n },\n})\n\nexport type VSlideGroup = InstanceType<typeof VSlideGroup>\n"],"mappings":"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","ignoreList":[]}
@@ -110,6 +110,8 @@ declare const VSlideGroup: {
110
110
  scrollTo: (location: "prev" | "next") => void;
111
111
  scrollOffset: vue.ShallowRef<number>;
112
112
  focus: (location?: "next" | "prev" | "first" | "last") => void;
113
+ hasPrev: vue.ComputedRef<boolean>;
114
+ hasNext: vue.ComputedRef<boolean>;
113
115
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
114
116
  'update:modelValue': (value: any) => true;
115
117
  }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "update:modelValue" | "v-slot:next" | "v-slot:prev">, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
@@ -176,6 +178,8 @@ declare const VSlideGroup: {
176
178
  scrollTo: (location: "prev" | "next") => void;
177
179
  scrollOffset: vue.ShallowRef<number>;
178
180
  focus: (location?: "next" | "prev" | "first" | "last") => void;
181
+ hasPrev: vue.ComputedRef<boolean>;
182
+ hasNext: vue.ComputedRef<boolean>;
179
183
  }, {}, {}, {}, {
180
184
  symbol: any;
181
185
  direction: "horizontal" | "vertical";
@@ -215,6 +219,8 @@ declare const VSlideGroup: {
215
219
  scrollTo: (location: "prev" | "next") => void;
216
220
  scrollOffset: vue.ShallowRef<number>;
217
221
  focus: (location?: "next" | "prev" | "first" | "last") => void;
222
+ hasPrev: vue.ComputedRef<boolean>;
223
+ hasNext: vue.ComputedRef<boolean>;
218
224
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
219
225
  'update:modelValue': (value: any) => true;
220
226
  }, "$children" | "v-slots" | "v-slot:default" | "modelValue" | "update:modelValue" | "v-slot:next" | "v-slot:prev">, string, {
@@ -27,7 +27,8 @@ type Density = null | 'default' | 'comfortable' | 'compact';
27
27
 
28
28
  type ValidationResult = string | boolean;
29
29
  type ValidationRule = ValidationResult | PromiseLike<ValidationResult> | ((value: any) => ValidationResult) | ((value: any) => PromiseLike<ValidationResult>);
30
- type ValidateOnValue = 'blur' | 'input' | 'submit';
30
+ type ValidateOnValue = 'blur' | 'input' | 'submit' | 'invalid-input';
31
+ type ValidateOn = ValidateOnValue | `${ValidateOnValue} lazy` | `${ValidateOnValue} eager` | `lazy ${ValidateOnValue}` | `eager ${ValidateOnValue}` | 'lazy' | 'eager';
31
32
  interface ValidationProps {
32
33
  disabled: boolean | null;
33
34
  error: boolean;
@@ -40,7 +41,7 @@ interface ValidationProps {
40
41
  rules: readonly ValidationRule[];
41
42
  modelValue: any;
42
43
  'onUpdate:modelValue': EventProp | undefined;
43
- validateOn?: ValidateOnValue | `${ValidateOnValue} lazy` | `lazy ${ValidateOnValue}` | 'lazy';
44
+ validateOn?: ValidateOn;
44
45
  validationValue: any;
45
46
  }
46
47
 
@@ -97,7 +98,7 @@ declare const VSlider: {
97
98
  class?: any;
98
99
  theme?: string | undefined;
99
100
  'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
100
- validateOn?: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined;
101
+ validateOn?: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined;
101
102
  validationValue?: any;
102
103
  rounded?: string | number | boolean | undefined;
103
104
  prependIcon?: IconValue | undefined;
@@ -204,7 +205,7 @@ declare const VSlider: {
204
205
  class?: any;
205
206
  theme?: string | undefined;
206
207
  'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
207
- validateOn?: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined;
208
+ validateOn?: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined;
208
209
  validationValue?: any;
209
210
  rounded?: string | number | boolean | undefined;
210
211
  prependIcon?: IconValue | undefined;
@@ -356,7 +357,7 @@ declare const VSlider: {
356
357
  class?: any;
357
358
  theme?: string | undefined;
358
359
  'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
359
- validateOn?: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined;
360
+ validateOn?: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined;
360
361
  validationValue?: any;
361
362
  rounded?: string | number | boolean | undefined;
362
363
  prependIcon?: IconValue | undefined;
@@ -491,7 +492,7 @@ declare const VSlider: {
491
492
  class?: any;
492
493
  theme?: string | undefined;
493
494
  'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
494
- validateOn?: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined;
495
+ validateOn?: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined;
495
496
  validationValue?: any;
496
497
  rounded?: string | number | boolean | undefined;
497
498
  prependIcon?: IconValue | undefined;
@@ -626,7 +626,7 @@ declare const VSnackbar: {
626
626
  onAfterLeave?: (() => any) | undefined;
627
627
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
628
628
  "onClick:outside"?: ((e: MouseEvent) => any) | undefined;
629
- }, "target" | "activatorEl" | "scrimEl" | "animateClick" | "contentEl" | "globalTop" | "localTop" | "updateLocation"> & vue.ShallowUnwrapRef<{
629
+ }, "target" | "contentEl" | "activatorEl" | "scrimEl" | "animateClick" | "globalTop" | "localTop" | "updateLocation"> & vue.ShallowUnwrapRef<{
630
630
  activatorEl: Ref<HTMLElement | undefined>;
631
631
  scrimEl: Ref<HTMLElement | undefined>;
632
632
  target: vue.ComputedRef<HTMLElement | [x: number, y: number] | undefined>;
@@ -1297,7 +1297,7 @@ declare const VSnackbar: {
1297
1297
  onAfterLeave?: (() => any) | undefined;
1298
1298
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
1299
1299
  "onClick:outside"?: ((e: MouseEvent) => any) | undefined;
1300
- }, "target" | "activatorEl" | "scrimEl" | "animateClick" | "contentEl" | "globalTop" | "localTop" | "updateLocation"> & vue.ShallowUnwrapRef<{
1300
+ }, "target" | "contentEl" | "activatorEl" | "scrimEl" | "animateClick" | "globalTop" | "localTop" | "updateLocation"> & vue.ShallowUnwrapRef<{
1301
1301
  activatorEl: Ref<HTMLElement | undefined>;
1302
1302
  scrimEl: Ref<HTMLElement | undefined>;
1303
1303
  target: vue.ComputedRef<HTMLElement | [x: number, y: number] | undefined>;
@@ -1868,7 +1868,7 @@ declare const VSnackbar: {
1868
1868
  onAfterLeave?: (() => any) | undefined;
1869
1869
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
1870
1870
  "onClick:outside"?: ((e: MouseEvent) => any) | undefined;
1871
- }, "target" | "activatorEl" | "scrimEl" | "animateClick" | "contentEl" | "globalTop" | "localTop" | "updateLocation"> & vue.ShallowUnwrapRef<{
1871
+ }, "target" | "contentEl" | "activatorEl" | "scrimEl" | "animateClick" | "globalTop" | "localTop" | "updateLocation"> & vue.ShallowUnwrapRef<{
1872
1872
  activatorEl: Ref<HTMLElement | undefined>;
1873
1873
  scrimEl: Ref<HTMLElement | undefined>;
1874
1874
  target: vue.ComputedRef<HTMLElement | [x: number, y: number] | undefined>;
@@ -34,7 +34,7 @@ export const VSpeedDial = genericComponent()({
34
34
  const model = useProxiedModel(props, 'modelValue');
35
35
  const menuRef = ref();
36
36
  const location = computed(() => {
37
- const [y, x = 'center'] = props.location.split(' ');
37
+ const [y, x = 'center'] = props.location?.split(' ') ?? [];
38
38
  return `${y} ${x}`;
39
39
  });
40
40
  const locationClasses = computed(() => ({
@@ -1 +1 @@
1
- {"version":3,"file":"VSpeedDial.mjs","names":["VDefaultsProvider","makeVMenuProps","VMenu","makeComponentProps","useProxiedModel","MaybeTransition","computed","ref","genericComponent","propsFactory","useRender","makeVSpeedDialProps","offset","minWidth","openDelay","closeDelay","location","transition","VSpeedDial","name","props","emits","value","setup","_ref","slots","model","menuRef","y","x","split","locationClasses","replace","menuProps","filterProps","_createVNode","_mergeProps","$event","class","style","contentClass","default","slotProps","VBtn","size"],"sources":["../../../src/components/VSpeedDial/VSpeedDial.tsx"],"sourcesContent":["// Styles\nimport './VSpeedDial.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { makeVMenuProps, VMenu } from '@/components/VMenu/VMenu'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef } from 'vue'\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\nimport type { Anchor } from '@/util'\n\nexport const makeVSpeedDialProps = propsFactory({\n ...makeComponentProps(),\n ...makeVMenuProps({\n offset: 8,\n minWidth: 0,\n openDelay: 0,\n closeDelay: 100,\n location: 'top center' as const,\n transition: 'scale-transition',\n }),\n}, 'VSpeedDial')\n\nexport const VSpeedDial = genericComponent<OverlaySlots>()({\n name: 'VSpeedDial',\n\n props: makeVSpeedDialProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const model = useProxiedModel(props, 'modelValue')\n\n const menuRef = ref<VMenu>()\n\n const location = computed(() => {\n const [y, x = 'center'] = props.location.split(' ')\n\n return `${y} ${x}`\n }) as ComputedRef<Anchor>\n\n const locationClasses = computed(() => ({\n [`v-speed-dial__content--${location.value.replace(' ', '-')}`]: true,\n }))\n\n useRender(() => {\n const menuProps = VMenu.filterProps(props)\n\n return (\n <VMenu\n { ...menuProps }\n v-model={ model.value }\n class={ props.class }\n style={ props.style }\n contentClass={[\n 'v-speed-dial__content',\n locationClasses.value,\n props.contentClass,\n ]}\n location={ location.value }\n ref={ menuRef }\n transition=\"fade-transition\"\n >\n {{\n ...slots,\n default: slotProps => (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n size: 'small',\n },\n }}\n >\n <MaybeTransition\n appear\n group\n transition={ props.transition }\n >\n { slots.default?.(slotProps) }\n </MaybeTransition>\n </VDefaultsProvider>\n ),\n }}\n </VMenu>\n )\n })\n\n return {}\n },\n})\n\nexport type VSpeedDial = InstanceType<typeof VSpeedDial>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,iBAAiB;AAAA,SACjBC,cAAc,EAAEC,KAAK,8BAE9B;AAAA,SACSC,kBAAkB;AAAA,SAClBC,eAAe;AAAA,SACfC,eAAe,4CAExB;AACA,SAASC,QAAQ,EAAEC,GAAG,QAAQ,KAAK;AAAA,SAC1BC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElD;AAKA,OAAO,MAAMC,mBAAmB,GAAGF,YAAY,CAAC;EAC9C,GAAGN,kBAAkB,CAAC,CAAC;EACvB,GAAGF,cAAc,CAAC;IAChBW,MAAM,EAAE,CAAC;IACTC,QAAQ,EAAE,CAAC;IACXC,SAAS,EAAE,CAAC;IACZC,UAAU,EAAE,GAAG;IACfC,QAAQ,EAAE,YAAqB;IAC/BC,UAAU,EAAE;EACd,CAAC;AACH,CAAC,EAAE,YAAY,CAAC;AAEhB,OAAO,MAAMC,UAAU,GAAGV,gBAAgB,CAAe,CAAC,CAAC;EACzDW,IAAI,EAAE,YAAY;EAElBC,KAAK,EAAET,mBAAmB,CAAC,CAAC;EAE5BU,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAc,IAAK;EAC3C,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAME,KAAK,GAAGtB,eAAe,CAACgB,KAAK,EAAE,YAAY,CAAC;IAElD,MAAMO,OAAO,GAAGpB,GAAG,CAAQ,CAAC;IAE5B,MAAMS,QAAQ,GAAGV,QAAQ,CAAC,MAAM;MAC9B,MAAM,CAACsB,CAAC,EAAEC,CAAC,GAAG,QAAQ,CAAC,GAAGT,KAAK,CAACJ,QAAQ,CAACc,KAAK,CAAC,GAAG,CAAC;MAEnD,OAAO,GAAGF,CAAC,IAAIC,CAAC,EAAE;IACpB,CAAC,CAAwB;IAEzB,MAAME,eAAe,GAAGzB,QAAQ,CAAC,OAAO;MACtC,CAAC,0BAA0BU,QAAQ,CAACM,KAAK,CAACU,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG;IAClE,CAAC,CAAC,CAAC;IAEHtB,SAAS,CAAC,MAAM;MACd,MAAMuB,SAAS,GAAG/B,KAAK,CAACgC,WAAW,CAACd,KAAK,CAAC;MAE1C,OAAAe,YAAA,CAAAjC,KAAA,EAAAkC,WAAA,CAESH,SAAS;QAAA,cACJP,KAAK,CAACJ,KAAK;QAAA,uBAAAe,MAAA,IAAXX,KAAK,CAACJ,KAAK,GAAAe,MAAA;QAAA,SACbjB,KAAK,CAACkB,KAAK;QAAA,SACXlB,KAAK,CAACmB,KAAK;QAAA,gBACL,CACZ,uBAAuB,EACvBR,eAAe,CAACT,KAAK,EACrBF,KAAK,CAACoB,YAAY,CACnB;QAAA,YACUxB,QAAQ,CAACM,KAAK;QAAA,OACnBK,OAAO;QAAA;MAAA;QAIX,GAAGF,KAAK;QACRgB,OAAO,EAAEC,SAAS,IAAAP,YAAA,CAAAnC,iBAAA;UAAA,YAEJ;YACR2C,IAAI,EAAE;cACJC,IAAI,EAAE;YACR;UACF;QAAC;UAAAH,OAAA,EAAAA,CAAA,MAAAN,YAAA,CAAA9B,eAAA;YAAA;YAAA;YAAA,cAKce,KAAK,CAACH;UAAU;YAAAwB,OAAA,EAAAA,CAAA,MAE3BhB,KAAK,CAACgB,OAAO,GAAGC,SAAS,CAAC;UAAA;QAAA;MAGjC;IAIT,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"VSpeedDial.mjs","names":["VDefaultsProvider","makeVMenuProps","VMenu","makeComponentProps","useProxiedModel","MaybeTransition","computed","ref","genericComponent","propsFactory","useRender","makeVSpeedDialProps","offset","minWidth","openDelay","closeDelay","location","transition","VSpeedDial","name","props","emits","value","setup","_ref","slots","model","menuRef","y","x","split","locationClasses","replace","menuProps","filterProps","_createVNode","_mergeProps","$event","class","style","contentClass","default","slotProps","VBtn","size"],"sources":["../../../src/components/VSpeedDial/VSpeedDial.tsx"],"sourcesContent":["// Styles\nimport './VSpeedDial.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { makeVMenuProps, VMenu } from '@/components/VMenu/VMenu'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\nimport type { Anchor } from '@/util'\n\nexport const makeVSpeedDialProps = propsFactory({\n ...makeComponentProps(),\n ...makeVMenuProps({\n offset: 8,\n minWidth: 0,\n openDelay: 0,\n closeDelay: 100,\n location: 'top center' as const,\n transition: 'scale-transition',\n }),\n}, 'VSpeedDial')\n\nexport const VSpeedDial = genericComponent<OverlaySlots>()({\n name: 'VSpeedDial',\n\n props: makeVSpeedDialProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const model = useProxiedModel(props, 'modelValue')\n\n const menuRef = ref<VMenu>()\n\n const location = computed<Anchor>(() => {\n const [y, x = 'center'] = props.location?.split(' ') ?? []\n\n return `${y} ${x}` as Anchor\n })\n\n const locationClasses = computed(() => ({\n [`v-speed-dial__content--${location.value.replace(' ', '-')}`]: true,\n }))\n\n useRender(() => {\n const menuProps = VMenu.filterProps(props)\n\n return (\n <VMenu\n { ...menuProps }\n v-model={ model.value }\n class={ props.class }\n style={ props.style }\n contentClass={[\n 'v-speed-dial__content',\n locationClasses.value,\n props.contentClass,\n ]}\n location={ location.value }\n ref={ menuRef }\n transition=\"fade-transition\"\n >\n {{\n ...slots,\n default: slotProps => (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n size: 'small',\n },\n }}\n >\n <MaybeTransition\n appear\n group\n transition={ props.transition }\n >\n { slots.default?.(slotProps) }\n </MaybeTransition>\n </VDefaultsProvider>\n ),\n }}\n </VMenu>\n )\n })\n\n return {}\n },\n})\n\nexport type VSpeedDial = InstanceType<typeof VSpeedDial>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,iBAAiB;AAAA,SACjBC,cAAc,EAAEC,KAAK,8BAE9B;AAAA,SACSC,kBAAkB;AAAA,SAClBC,eAAe;AAAA,SACfC,eAAe,4CAExB;AACA,SAASC,QAAQ,EAAEC,GAAG,QAAQ,KAAK;AAAA,SAC1BC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElD;AAIA,OAAO,MAAMC,mBAAmB,GAAGF,YAAY,CAAC;EAC9C,GAAGN,kBAAkB,CAAC,CAAC;EACvB,GAAGF,cAAc,CAAC;IAChBW,MAAM,EAAE,CAAC;IACTC,QAAQ,EAAE,CAAC;IACXC,SAAS,EAAE,CAAC;IACZC,UAAU,EAAE,GAAG;IACfC,QAAQ,EAAE,YAAqB;IAC/BC,UAAU,EAAE;EACd,CAAC;AACH,CAAC,EAAE,YAAY,CAAC;AAEhB,OAAO,MAAMC,UAAU,GAAGV,gBAAgB,CAAe,CAAC,CAAC;EACzDW,IAAI,EAAE,YAAY;EAElBC,KAAK,EAAET,mBAAmB,CAAC,CAAC;EAE5BU,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAc,IAAK;EAC3C,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAME,KAAK,GAAGtB,eAAe,CAACgB,KAAK,EAAE,YAAY,CAAC;IAElD,MAAMO,OAAO,GAAGpB,GAAG,CAAQ,CAAC;IAE5B,MAAMS,QAAQ,GAAGV,QAAQ,CAAS,MAAM;MACtC,MAAM,CAACsB,CAAC,EAAEC,CAAC,GAAG,QAAQ,CAAC,GAAGT,KAAK,CAACJ,QAAQ,EAAEc,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE;MAE1D,OAAO,GAAGF,CAAC,IAAIC,CAAC,EAAE;IACpB,CAAC,CAAC;IAEF,MAAME,eAAe,GAAGzB,QAAQ,CAAC,OAAO;MACtC,CAAC,0BAA0BU,QAAQ,CAACM,KAAK,CAACU,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,GAAG;IAClE,CAAC,CAAC,CAAC;IAEHtB,SAAS,CAAC,MAAM;MACd,MAAMuB,SAAS,GAAG/B,KAAK,CAACgC,WAAW,CAACd,KAAK,CAAC;MAE1C,OAAAe,YAAA,CAAAjC,KAAA,EAAAkC,WAAA,CAESH,SAAS;QAAA,cACJP,KAAK,CAACJ,KAAK;QAAA,uBAAAe,MAAA,IAAXX,KAAK,CAACJ,KAAK,GAAAe,MAAA;QAAA,SACbjB,KAAK,CAACkB,KAAK;QAAA,SACXlB,KAAK,CAACmB,KAAK;QAAA,gBACL,CACZ,uBAAuB,EACvBR,eAAe,CAACT,KAAK,EACrBF,KAAK,CAACoB,YAAY,CACnB;QAAA,YACUxB,QAAQ,CAACM,KAAK;QAAA,OACnBK,OAAO;QAAA;MAAA;QAIX,GAAGF,KAAK;QACRgB,OAAO,EAAEC,SAAS,IAAAP,YAAA,CAAAnC,iBAAA;UAAA,YAEJ;YACR2C,IAAI,EAAE;cACJC,IAAI,EAAE;YACR;UACF;QAAC;UAAAH,OAAA,EAAAA,CAAA,MAAAN,YAAA,CAAA9B,eAAA;YAAA;YAAA;YAAA,cAKce,KAAK,CAACH;UAAU;YAAAwB,OAAA,EAAAA,CAAA,MAE3BhB,KAAK,CAACgB,OAAO,GAAGC,SAAS,CAAC;UAAA;QAAA;MAGjC;IAIT,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC","ignoreList":[]}
@@ -95,7 +95,7 @@ declare function connectedLocationStrategy(data: LocationStrategyData, props: St
95
95
  declare const VSpeedDial: {
96
96
  new (...args: any[]): vue.CreateComponentPublicInstance<{
97
97
  offset: string | number | number[] | undefined;
98
- location: Anchor;
98
+ location: Anchor | undefined;
99
99
  origin: "auto" | Anchor | "overlap";
100
100
  minWidth: string | number;
101
101
  transition: string | boolean | (vue.TransitionProps & {
@@ -122,6 +122,7 @@ declare const VSpeedDial: {
122
122
  noClickAnimation: boolean;
123
123
  persistent: boolean;
124
124
  scrim: string | boolean;
125
+ submenu: boolean;
125
126
  } & {
126
127
  id?: string | undefined;
127
128
  height?: string | number | undefined;
@@ -177,7 +178,7 @@ declare const VSpeedDial: {
177
178
  'update:modelValue': (value: boolean) => true;
178
179
  }, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
179
180
  offset: string | number | number[] | undefined;
180
- location: Anchor;
181
+ location: Anchor | undefined;
181
182
  origin: "auto" | Anchor | "overlap";
182
183
  minWidth: string | number;
183
184
  transition: string | boolean | (vue.TransitionProps & {
@@ -204,6 +205,7 @@ declare const VSpeedDial: {
204
205
  noClickAnimation: boolean;
205
206
  persistent: boolean;
206
207
  scrim: string | boolean;
208
+ submenu: boolean;
207
209
  } & {
208
210
  id?: string | undefined;
209
211
  height?: string | number | undefined;
@@ -257,7 +259,7 @@ declare const VSpeedDial: {
257
259
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
258
260
  }, {
259
261
  offset: string | number | number[] | undefined;
260
- location: Anchor;
262
+ location: Anchor | undefined;
261
263
  origin: "auto" | Anchor | "overlap";
262
264
  minWidth: string | number;
263
265
  transition: string | boolean | (vue.TransitionProps & {
@@ -286,6 +288,7 @@ declare const VSpeedDial: {
286
288
  noClickAnimation: boolean;
287
289
  persistent: boolean;
288
290
  scrim: string | boolean;
291
+ submenu: boolean;
289
292
  }, true, {}, vue.SlotsType<Partial<{
290
293
  default: (arg: {
291
294
  isActive: vue.Ref<boolean>;
@@ -304,7 +307,7 @@ declare const VSpeedDial: {
304
307
  Defaults: {};
305
308
  }, {
306
309
  offset: string | number | number[] | undefined;
307
- location: Anchor;
310
+ location: Anchor | undefined;
308
311
  origin: "auto" | Anchor | "overlap";
309
312
  minWidth: string | number;
310
313
  transition: string | boolean | (vue.TransitionProps & {
@@ -331,6 +334,7 @@ declare const VSpeedDial: {
331
334
  noClickAnimation: boolean;
332
335
  persistent: boolean;
333
336
  scrim: string | boolean;
337
+ submenu: boolean;
334
338
  } & {
335
339
  id?: string | undefined;
336
340
  height?: string | number | undefined;
@@ -384,7 +388,7 @@ declare const VSpeedDial: {
384
388
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
385
389
  }, {}, {}, {}, {}, {
386
390
  offset: string | number | number[] | undefined;
387
- location: Anchor;
391
+ location: Anchor | undefined;
388
392
  origin: "auto" | Anchor | "overlap";
389
393
  minWidth: string | number;
390
394
  transition: string | boolean | (vue.TransitionProps & {
@@ -413,13 +417,14 @@ declare const VSpeedDial: {
413
417
  noClickAnimation: boolean;
414
418
  persistent: boolean;
415
419
  scrim: string | boolean;
420
+ submenu: boolean;
416
421
  }>;
417
422
  __isFragment?: never;
418
423
  __isTeleport?: never;
419
424
  __isSuspense?: never;
420
425
  } & vue.ComponentOptionsBase<{
421
426
  offset: string | number | number[] | undefined;
422
- location: Anchor;
427
+ location: Anchor | undefined;
423
428
  origin: "auto" | Anchor | "overlap";
424
429
  minWidth: string | number;
425
430
  transition: string | boolean | (vue.TransitionProps & {
@@ -446,6 +451,7 @@ declare const VSpeedDial: {
446
451
  noClickAnimation: boolean;
447
452
  persistent: boolean;
448
453
  scrim: string | boolean;
454
+ submenu: boolean;
449
455
  } & {
450
456
  id?: string | undefined;
451
457
  height?: string | number | undefined;
@@ -501,7 +507,7 @@ declare const VSpeedDial: {
501
507
  'update:modelValue': (value: boolean) => true;
502
508
  }, string, {
503
509
  offset: string | number | number[] | undefined;
504
- location: Anchor;
510
+ location: Anchor | undefined;
505
511
  origin: "auto" | Anchor | "overlap";
506
512
  minWidth: string | number;
507
513
  transition: string | boolean | (vue.TransitionProps & {
@@ -530,6 +536,7 @@ declare const VSpeedDial: {
530
536
  noClickAnimation: boolean;
531
537
  persistent: boolean;
532
538
  scrim: string | boolean;
539
+ submenu: boolean;
533
540
  }, {}, string, vue.SlotsType<Partial<{
534
541
  default: (arg: {
535
542
  isActive: vue.Ref<boolean>;
@@ -544,12 +551,15 @@ declare const VSpeedDial: {
544
551
  type: vue.PropType<string | number | number[] | undefined>;
545
552
  default: NonNullable<string | number | number[] | undefined>;
546
553
  };
547
- location: Omit<{
554
+ location: Omit<Omit<{
548
555
  type: vue.PropType<StrategyProps["location"]>;
549
556
  default: string;
550
557
  }, "type" | "default"> & {
551
- type: vue.PropType<Anchor>;
552
- default: NonNullable<Anchor>;
558
+ type: vue.PropType<Anchor | undefined>;
559
+ default: NonNullable<Anchor> | undefined;
560
+ }, "type" | "default"> & {
561
+ type: vue.PropType<Anchor | undefined>;
562
+ default: NonNullable<Anchor | undefined>;
553
563
  };
554
564
  origin: {
555
565
  type: vue.PropType<StrategyProps["origin"]>;
@@ -678,17 +688,21 @@ declare const VSpeedDial: {
678
688
  };
679
689
  attach: vue.PropType<boolean | string | Element>;
680
690
  id: StringConstructor;
691
+ submenu: BooleanConstructor;
681
692
  }, vue.ExtractPropTypes<{
682
693
  offset: {
683
694
  type: vue.PropType<string | number | number[] | undefined>;
684
695
  default: NonNullable<string | number | number[] | undefined>;
685
696
  };
686
- location: Omit<{
697
+ location: Omit<Omit<{
687
698
  type: vue.PropType<StrategyProps["location"]>;
688
699
  default: string;
689
700
  }, "type" | "default"> & {
690
- type: vue.PropType<Anchor>;
691
- default: NonNullable<Anchor>;
701
+ type: vue.PropType<Anchor | undefined>;
702
+ default: NonNullable<Anchor> | undefined;
703
+ }, "type" | "default"> & {
704
+ type: vue.PropType<Anchor | undefined>;
705
+ default: NonNullable<Anchor | undefined>;
692
706
  };
693
707
  origin: {
694
708
  type: vue.PropType<StrategyProps["origin"]>;
@@ -817,6 +831,7 @@ declare const VSpeedDial: {
817
831
  };
818
832
  attach: vue.PropType<boolean | string | Element>;
819
833
  id: StringConstructor;
834
+ submenu: BooleanConstructor;
820
835
  }>>;
821
836
  type VSpeedDial = InstanceType<typeof VSpeedDial>;
822
837
 
@@ -84,7 +84,8 @@ type VMessageSlot = {
84
84
 
85
85
  type ValidationResult = string | boolean;
86
86
  type ValidationRule = ValidationResult | PromiseLike<ValidationResult> | ((value: any) => ValidationResult) | ((value: any) => PromiseLike<ValidationResult>);
87
- type ValidateOnValue = 'blur' | 'input' | 'submit';
87
+ type ValidateOnValue = 'blur' | 'input' | 'submit' | 'invalid-input';
88
+ type ValidateOn = ValidateOnValue | `${ValidateOnValue} lazy` | `${ValidateOnValue} eager` | `lazy ${ValidateOnValue}` | `eager ${ValidateOnValue}` | 'lazy' | 'eager';
88
89
  interface ValidationProps {
89
90
  disabled: boolean | null;
90
91
  error: boolean;
@@ -97,7 +98,7 @@ interface ValidationProps {
97
98
  rules: readonly ValidationRule[];
98
99
  modelValue: any;
99
100
  'onUpdate:modelValue': EventProp | undefined;
100
- validateOn?: ValidateOnValue | `${ValidateOnValue} lazy` | `lazy ${ValidateOnValue}` | 'lazy';
101
+ validateOn?: ValidateOn;
101
102
  validationValue: any;
102
103
  }
103
104
 
@@ -178,7 +179,7 @@ declare const VSwitch: {
178
179
  class?: any;
179
180
  theme?: string | undefined;
180
181
  'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
181
- validateOn?: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined;
182
+ validateOn?: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined;
182
183
  validationValue?: any;
183
184
  baseColor?: string | undefined;
184
185
  prependIcon?: IconValue | undefined;
@@ -237,7 +238,7 @@ declare const VSwitch: {
237
238
  class?: any;
238
239
  theme?: string | undefined;
239
240
  'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
240
- validateOn?: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined;
241
+ validateOn?: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined;
241
242
  validationValue?: any;
242
243
  baseColor?: string | undefined;
243
244
  prependIcon?: IconValue | undefined;
@@ -344,7 +345,7 @@ declare const VSwitch: {
344
345
  class?: any;
345
346
  theme?: string | undefined;
346
347
  'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
347
- validateOn?: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined;
348
+ validateOn?: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined;
348
349
  validationValue?: any;
349
350
  baseColor?: string | undefined;
350
351
  prependIcon?: IconValue | undefined;
@@ -428,7 +429,7 @@ declare const VSwitch: {
428
429
  class?: any;
429
430
  theme?: string | undefined;
430
431
  'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
431
- validateOn?: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined;
432
+ validateOn?: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined;
432
433
  validationValue?: any;
433
434
  baseColor?: string | undefined;
434
435
  prependIcon?: IconValue | undefined;