vuetify 3.5.8 → 3.5.10

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 (189) hide show
  1. package/dist/_component-variables-labs.sass +1 -0
  2. package/dist/json/attributes.json +525 -13
  3. package/dist/json/importMap-labs.json +24 -8
  4. package/dist/json/importMap.json +130 -130
  5. package/dist/json/tags.json +148 -0
  6. package/dist/json/web-types.json +2021 -147
  7. package/dist/vuetify-labs.css +2819 -2760
  8. package/dist/vuetify-labs.d.ts +5860 -2816
  9. package/dist/vuetify-labs.esm.js +1286 -248
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +1286 -247
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +553 -547
  14. package/dist/vuetify.d.ts +2835 -2281
  15. package/dist/vuetify.esm.js +883 -408
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +882 -406
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +1137 -1109
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/components/VAlert/index.d.mts +15 -15
  23. package/lib/components/VApp/index.d.mts +8 -8
  24. package/lib/components/VAppBar/index.d.mts +7 -7
  25. package/lib/components/VAutocomplete/VAutocomplete.mjs +9 -7
  26. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  27. package/lib/components/VAutocomplete/index.d.mts +232 -100
  28. package/lib/components/VAvatar/index.d.mts +8 -8
  29. package/lib/components/VBadge/index.d.mts +7 -7
  30. package/lib/components/VBanner/index.d.mts +20 -20
  31. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  32. package/lib/components/VBreadcrumbs/index.d.mts +27 -26
  33. package/lib/components/VBtnGroup/index.d.mts +8 -8
  34. package/lib/components/VCard/index.d.mts +32 -32
  35. package/lib/components/VCarousel/index.d.mts +6 -6
  36. package/lib/components/VCheckbox/index.d.mts +44 -44
  37. package/lib/components/VChip/index.d.mts +7 -7
  38. package/lib/components/VCode/index.d.mts +8 -8
  39. package/lib/components/VColorPicker/VColorPickerPreview.css +1 -0
  40. package/lib/components/VColorPicker/VColorPickerPreview.sass +1 -0
  41. package/lib/components/VColorPicker/_variables.scss +1 -0
  42. package/lib/components/VCombobox/VCombobox.mjs +10 -7
  43. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  44. package/lib/components/VCombobox/index.d.mts +232 -100
  45. package/lib/components/VDataTable/index.d.mts +6 -6
  46. package/lib/components/VDatePicker/VDatePickerControls.mjs +1 -0
  47. package/lib/components/VDatePicker/VDatePickerControls.mjs.map +1 -1
  48. package/lib/components/VDatePicker/VDatePickerMonth.mjs +10 -4
  49. package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  50. package/lib/components/VDatePicker/index.d.mts +10 -10
  51. package/lib/components/VDefaultsProvider/index.d.mts +8 -8
  52. package/lib/components/VDialog/index.d.mts +12 -6
  53. package/lib/components/VDivider/index.d.mts +8 -8
  54. package/lib/components/VExpansionPanel/index.d.mts +19 -19
  55. package/lib/components/VField/VField.css +2 -0
  56. package/lib/components/VField/VField.mjs +1 -1
  57. package/lib/components/VField/VField.mjs.map +1 -1
  58. package/lib/components/VField/VField.sass +2 -0
  59. package/lib/components/VField/index.d.mts +28 -28
  60. package/lib/components/VFileInput/index.d.mts +133 -133
  61. package/lib/components/VFooter/index.d.mts +8 -8
  62. package/lib/components/VGrid/index.d.mts +32 -32
  63. package/lib/components/VIcon/VIcon.css +4 -0
  64. package/lib/components/VIcon/VIcon.mjs +7 -3
  65. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  66. package/lib/components/VIcon/VIcon.sass +4 -0
  67. package/lib/components/VIcon/_variables.scss +1 -0
  68. package/lib/components/VIcon/index.d.mts +25 -16
  69. package/lib/components/VImg/index.d.mts +4 -4
  70. package/lib/components/VInput/index.d.mts +21 -21
  71. package/lib/components/VKbd/index.d.mts +8 -8
  72. package/lib/components/VLabel/index.d.mts +8 -8
  73. package/lib/components/VLayout/index.d.mts +16 -16
  74. package/lib/components/VLazy/index.d.mts +8 -8
  75. package/lib/components/VList/VList.mjs +8 -2
  76. package/lib/components/VList/VList.mjs.map +1 -1
  77. package/lib/components/VList/VListGroup.mjs +3 -1
  78. package/lib/components/VList/VListGroup.mjs.map +1 -1
  79. package/lib/components/VList/VListItem.mjs +17 -4
  80. package/lib/components/VList/VListItem.mjs.map +1 -1
  81. package/lib/components/VList/index.d.mts +156 -54
  82. package/lib/components/VLocaleProvider/index.d.mts +12 -12
  83. package/lib/components/VMain/index.d.mts +8 -8
  84. package/lib/components/VMenu/VMenu.mjs +3 -0
  85. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  86. package/lib/components/VMenu/index.d.mts +14 -8
  87. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +1 -1
  88. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +22 -8
  89. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  90. package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +2 -1
  91. package/lib/components/VNavigationDrawer/index.d.mts +11 -11
  92. package/lib/components/VOtpInput/VOtpInput.mjs +7 -2
  93. package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
  94. package/lib/components/VOtpInput/index.d.mts +31 -31
  95. package/lib/components/VOverlay/VOverlay.mjs +8 -3
  96. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  97. package/lib/components/VOverlay/index.d.mts +3 -0
  98. package/lib/components/VOverlay/scrollStrategies.mjs +2 -2
  99. package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
  100. package/lib/components/VPagination/index.d.mts +7 -7
  101. package/lib/components/VProgressLinear/VProgressLinear.css +0 -1
  102. package/lib/components/VProgressLinear/VProgressLinear.sass +0 -1
  103. package/lib/components/VProgressLinear/index.d.mts +7 -7
  104. package/lib/components/VRadioGroup/index.d.mts +44 -44
  105. package/lib/components/VRangeSlider/index.d.mts +47 -47
  106. package/lib/components/VRating/index.d.mts +7 -7
  107. package/lib/components/VResponsive/index.d.mts +8 -8
  108. package/lib/components/VSelect/VSelect.mjs +5 -3
  109. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  110. package/lib/components/VSelect/index.d.mts +232 -100
  111. package/lib/components/VSheet/index.d.mts +8 -8
  112. package/lib/components/VSkeletonLoader/index.d.mts +8 -8
  113. package/lib/components/VSlider/index.d.mts +47 -47
  114. package/lib/components/VSnackbar/index.d.mts +25 -19
  115. package/lib/components/VStepper/index.d.mts +41 -41
  116. package/lib/components/VSwitch/index.d.mts +39 -39
  117. package/lib/components/VSystemBar/index.d.mts +8 -8
  118. package/lib/components/VTabs/index.d.mts +15 -15
  119. package/lib/components/VTextField/index.d.mts +173 -173
  120. package/lib/components/VTextarea/index.d.mts +119 -119
  121. package/lib/components/VThemeProvider/index.d.mts +8 -8
  122. package/lib/components/VTimeline/index.d.mts +8 -8
  123. package/lib/components/VToolbar/index.d.mts +8 -8
  124. package/lib/components/VTooltip/index.d.mts +14 -8
  125. package/lib/components/VWindow/index.d.mts +10 -10
  126. package/lib/components/index.d.mts +2478 -1943
  127. package/lib/components/transitions/index.d.mts +128 -128
  128. package/lib/composables/date/adapters/vuetify.mjs +1 -1
  129. package/lib/composables/date/adapters/vuetify.mjs.map +1 -1
  130. package/lib/composables/nested/activeStrategies.mjs +121 -0
  131. package/lib/composables/nested/activeStrategies.mjs.map +1 -0
  132. package/lib/composables/nested/nested.mjs +50 -1
  133. package/lib/composables/nested/nested.mjs.map +1 -1
  134. package/lib/composables/nested/selectStrategies.mjs +4 -2
  135. package/lib/composables/nested/selectStrategies.mjs.map +1 -1
  136. package/lib/composables/theme.mjs +1 -1
  137. package/lib/composables/theme.mjs.map +1 -1
  138. package/lib/entry-bundler.mjs +3 -2
  139. package/lib/entry-bundler.mjs.map +1 -1
  140. package/lib/framework.mjs +1 -1
  141. package/lib/framework.mjs.map +1 -1
  142. package/lib/iconsets/fa.mjs +2 -0
  143. package/lib/iconsets/fa.mjs.map +1 -1
  144. package/lib/iconsets/fa4.mjs +2 -0
  145. package/lib/iconsets/fa4.mjs.map +1 -1
  146. package/lib/iconsets/md.mjs +2 -0
  147. package/lib/iconsets/md.mjs.map +1 -1
  148. package/lib/iconsets/mdi-svg.mjs +2 -0
  149. package/lib/iconsets/mdi-svg.mjs.map +1 -1
  150. package/lib/iconsets/mdi.mjs +2 -0
  151. package/lib/iconsets/mdi.mjs.map +1 -1
  152. package/lib/index.d.mts +48 -44
  153. package/lib/labs/VCalendar/index.d.mts +32 -32
  154. package/lib/labs/VFab/index.d.mts +15 -15
  155. package/lib/labs/VNumberInput/VNumberInput.css +38 -0
  156. package/lib/labs/VNumberInput/VNumberInput.mjs +209 -0
  157. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -0
  158. package/lib/labs/VNumberInput/VNumberInput.sass +47 -0
  159. package/lib/labs/VNumberInput/_variables.scss +1 -0
  160. package/lib/labs/VNumberInput/index.d.mts +607 -0
  161. package/lib/labs/VNumberInput/index.mjs +2 -0
  162. package/lib/labs/VNumberInput/index.mjs.map +1 -0
  163. package/lib/labs/VPicker/index.d.mts +8 -8
  164. package/lib/labs/VSparkline/index.d.mts +7 -7
  165. package/lib/labs/VSpeedDial/VSpeedDial.mjs +9 -5
  166. package/lib/labs/VSpeedDial/VSpeedDial.mjs.map +1 -1
  167. package/lib/labs/VSpeedDial/index.d.mts +120 -24
  168. package/lib/labs/VTreeview/VTreeview.mjs +154 -0
  169. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -0
  170. package/lib/labs/VTreeview/VTreeviewChildren.mjs +98 -0
  171. package/lib/labs/VTreeview/VTreeviewChildren.mjs.map +1 -0
  172. package/lib/labs/VTreeview/VTreeviewGroup.mjs +48 -0
  173. package/lib/labs/VTreeview/VTreeviewGroup.mjs.map +1 -0
  174. package/lib/labs/VTreeview/VTreeviewItem.css +17 -0
  175. package/lib/labs/VTreeview/VTreeviewItem.mjs +86 -0
  176. package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -0
  177. package/lib/labs/VTreeview/VTreeviewItem.sass +19 -0
  178. package/lib/labs/VTreeview/index.d.mts +1975 -0
  179. package/lib/labs/VTreeview/index.mjs +4 -0
  180. package/lib/labs/VTreeview/index.mjs.map +1 -0
  181. package/lib/labs/VTreeview/shared.mjs +4 -0
  182. package/lib/labs/VTreeview/shared.mjs.map +1 -0
  183. package/lib/labs/VTreeview/variables.scss +8 -0
  184. package/lib/labs/components.d.mts +4553 -1925
  185. package/lib/labs/components.mjs +4 -2
  186. package/lib/labs/components.mjs.map +1 -1
  187. package/lib/locale/no.mjs +1 -1
  188. package/lib/locale/no.mjs.map +1 -1
  189. package/package.json +2 -2
@@ -13,9 +13,9 @@ declare const VMain: {
13
13
  } & {
14
14
  class?: any;
15
15
  } & {
16
- $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
16
+ $children?: vue.VNodeChild | {
17
17
  default?: (() => vue.VNodeChild) | undefined;
18
- };
18
+ } | (() => vue.VNodeChild);
19
19
  'v-slots'?: {
20
20
  default?: false | (() => vue.VNodeChild) | undefined;
21
21
  } | undefined;
@@ -28,9 +28,9 @@ declare const VMain: {
28
28
  } & {
29
29
  class?: any;
30
30
  } & {
31
- $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
31
+ $children?: vue.VNodeChild | {
32
32
  default?: (() => vue.VNodeChild) | undefined;
33
- };
33
+ } | (() => vue.VNodeChild);
34
34
  'v-slots'?: {
35
35
  default?: false | (() => vue.VNodeChild) | undefined;
36
36
  } | undefined;
@@ -58,9 +58,9 @@ declare const VMain: {
58
58
  } & {
59
59
  class?: any;
60
60
  } & {
61
- $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
61
+ $children?: vue.VNodeChild | {
62
62
  default?: (() => vue.VNodeChild) | undefined;
63
- };
63
+ } | (() => vue.VNodeChild);
64
64
  'v-slots'?: {
65
65
  default?: false | (() => vue.VNodeChild) | undefined;
66
66
  } | undefined;
@@ -81,9 +81,9 @@ declare const VMain: {
81
81
  } & {
82
82
  class?: any;
83
83
  } & {
84
- $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
84
+ $children?: vue.VNodeChild | {
85
85
  default?: (() => vue.VNodeChild) | undefined;
86
- };
86
+ } | (() => vue.VNodeChild);
87
87
  'v-slots'?: {
88
88
  default?: false | (() => vue.VNodeChild) | undefined;
89
89
  } | undefined;
@@ -101,6 +101,9 @@ export const VMenu = genericComponent()({
101
101
  isActive.value = false;
102
102
  overlay.value?.activatorEl?.focus();
103
103
  }
104
+ } else if (['Enter', ' '].includes(e.key) && props.closeOnContentClick) {
105
+ isActive.value = false;
106
+ parent?.closeParents();
104
107
  }
105
108
  }
106
109
  function onActivatorKeydown(e) {
@@ -1 +1 @@
1
- {"version":3,"file":"VMenu.mjs","names":["VDialogTransition","VDefaultsProvider","VOverlay","makeVOverlayProps","forwardRefs","useProxiedModel","useScopeId","computed","inject","mergeProps","nextTick","provide","ref","shallowRef","watch","VMenuSymbol","focusableChildren","focusChild","genericComponent","getNextElement","getUid","isClickInsideElement","omit","propsFactory","useRender","makeVMenuProps","id","String","closeDelay","closeOnContentClick","locationStrategy","openDelay","scrim","scrollStrategy","transition","component","VMenu","name","props","emits","value","setup","_ref","slots","isActive","scopeId","uid","overlay","parent","openChildren","register","unregister","closeParents","e","setTimeout","contentEl","onFocusIn","before","relatedTarget","after","target","globalTop","document","includes","contains","focusable","focus","val","addEventListener","once","removeEventListener","onClickOutside","onKeydown","disabled","key","nextElement","shiftKey","el","tabIndex","activatorEl","onActivatorKeydown","preventDefault","activatorProps","overlayProps","filterProps","_createVNode","_mergeProps","class","style","$event","activator","default","_len","arguments","length","args","Array","_key","ΨopenChildren"],"sources":["../../../src/components/VMenu/VMenu.tsx"],"sourcesContent":["// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport { computed, inject, mergeProps, nextTick, provide, ref, shallowRef, watch } from 'vue'\nimport { VMenuSymbol } from './shared'\nimport {\n focusableChildren,\n focusChild,\n genericComponent,\n getNextElement,\n getUid,\n isClickInsideElement,\n omit,\n propsFactory,\n useRender,\n} from '@/util'\n\n// Types\nimport type { Component } from 'vue'\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const makeVMenuProps = propsFactory({\n // TODO\n // disableKeys: Boolean,\n id: String,\n\n ...omit(makeVOverlayProps({\n closeDelay: 250,\n closeOnContentClick: true,\n locationStrategy: 'connected' as const,\n openDelay: 300,\n scrim: false,\n scrollStrategy: 'reposition' as const,\n transition: { component: VDialogTransition as Component },\n }), ['absolute']),\n}, 'VMenu')\n\nexport const VMenu = genericComponent<OverlaySlots>()({\n name: 'VMenu',\n\n props: makeVMenuProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n\n const uid = getUid()\n const id = computed(() => props.id || `v-menu-${uid}`)\n\n const overlay = ref<VOverlay>()\n\n const parent = inject(VMenuSymbol, null)\n const openChildren = shallowRef(0)\n provide(VMenuSymbol, {\n register () {\n ++openChildren.value\n },\n unregister () {\n --openChildren.value\n },\n closeParents (e) {\n setTimeout(() => {\n if (!openChildren.value &&\n (e == null || (e && !isClickInsideElement(e, overlay.value!.contentEl!)))\n ) {\n isActive.value = false\n parent?.closeParents()\n }\n }, 40)\n },\n })\n\n async function onFocusIn (e: FocusEvent) {\n const before = e.relatedTarget as HTMLElement | null\n const after = e.target as HTMLElement | null\n\n await nextTick()\n\n if (\n isActive.value &&\n before !== after &&\n overlay.value?.contentEl &&\n // We're the topmost menu\n overlay.value?.globalTop &&\n // It isn't the document or the menu body\n ![document, overlay.value.contentEl].includes(after!) &&\n // It isn't inside the menu body\n !overlay.value.contentEl.contains(after)\n ) {\n const focusable = focusableChildren(overlay.value.contentEl)\n focusable[0]?.focus()\n }\n }\n\n watch(isActive, val => {\n if (val) {\n parent?.register()\n document.addEventListener('focusin', onFocusIn, { once: true })\n } else {\n parent?.unregister()\n document.removeEventListener('focusin', onFocusIn)\n }\n })\n\n function onClickOutside (e: MouseEvent) {\n parent?.closeParents(e)\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (props.disabled) return\n\n if (e.key === 'Tab') {\n const nextElement = getNextElement(\n focusableChildren(overlay.value?.contentEl as Element, false),\n e.shiftKey ? 'prev' : 'next',\n (el: HTMLElement) => el.tabIndex >= 0\n )\n if (!nextElement) {\n isActive.value = false\n overlay.value?.activatorEl?.focus()\n }\n }\n }\n\n function onActivatorKeydown (e: KeyboardEvent) {\n if (props.disabled) return\n\n const el = overlay.value?.contentEl\n if (el && isActive.value) {\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n focusChild(el, 'next')\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n focusChild(el, 'prev')\n }\n } else if (['ArrowDown', 'ArrowUp'].includes(e.key)) {\n isActive.value = true\n e.preventDefault()\n setTimeout(() => setTimeout(() => onActivatorKeydown(e)))\n }\n }\n\n const activatorProps = computed(() =>\n mergeProps({\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(isActive.value),\n 'aria-owns': id.value,\n onKeydown: onActivatorKeydown,\n }, props.activatorProps)\n )\n\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props)\n\n return (\n <VOverlay\n ref={ overlay }\n id={ id.value }\n class={[\n 'v-menu',\n props.class,\n ]}\n style={ props.style }\n { ...overlayProps }\n v-model={ isActive.value }\n absolute\n activatorProps={ activatorProps.value }\n onClick:outside={ onClickOutside }\n onKeydown={ onKeydown }\n { ...scopeId }\n >\n {{\n activator: slots.activator,\n default: (...args) => (\n <VDefaultsProvider root=\"VMenu\">\n { slots.default?.(...args) }\n </VDefaultsProvider>\n ),\n }}\n </VOverlay>\n )\n })\n\n return forwardRefs({ id, ΨopenChildren: openChildren }, overlay)\n },\n})\n\nexport type VMenu = InstanceType<typeof VMenu>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VMenu.mjs","names":["VDialogTransition","VDefaultsProvider","VOverlay","makeVOverlayProps","forwardRefs","useProxiedModel","useScopeId","computed","inject","mergeProps","nextTick","provide","ref","shallowRef","watch","VMenuSymbol","focusableChildren","focusChild","genericComponent","getNextElement","getUid","isClickInsideElement","omit","propsFactory","useRender","makeVMenuProps","id","String","closeDelay","closeOnContentClick","locationStrategy","openDelay","scrim","scrollStrategy","transition","component","VMenu","name","props","emits","value","setup","_ref","slots","isActive","scopeId","uid","overlay","parent","openChildren","register","unregister","closeParents","e","setTimeout","contentEl","onFocusIn","before","relatedTarget","after","target","globalTop","document","includes","contains","focusable","focus","val","addEventListener","once","removeEventListener","onClickOutside","onKeydown","disabled","key","nextElement","shiftKey","el","tabIndex","activatorEl","onActivatorKeydown","preventDefault","activatorProps","overlayProps","filterProps","_createVNode","_mergeProps","class","style","$event","activator","default","_len","arguments","length","args","Array","_key","ΨopenChildren"],"sources":["../../../src/components/VMenu/VMenu.tsx"],"sourcesContent":["// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\n\n// Composables\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport { computed, inject, mergeProps, nextTick, provide, ref, shallowRef, watch } from 'vue'\nimport { VMenuSymbol } from './shared'\nimport {\n focusableChildren,\n focusChild,\n genericComponent,\n getNextElement,\n getUid,\n isClickInsideElement,\n omit,\n propsFactory,\n useRender,\n} from '@/util'\n\n// Types\nimport type { Component } from 'vue'\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const makeVMenuProps = propsFactory({\n // TODO\n // disableKeys: Boolean,\n id: String,\n\n ...omit(makeVOverlayProps({\n closeDelay: 250,\n closeOnContentClick: true,\n locationStrategy: 'connected' as const,\n openDelay: 300,\n scrim: false,\n scrollStrategy: 'reposition' as const,\n transition: { component: VDialogTransition as Component },\n }), ['absolute']),\n}, 'VMenu')\n\nexport const VMenu = genericComponent<OverlaySlots>()({\n name: 'VMenu',\n\n props: makeVMenuProps(),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { scopeId } = useScopeId()\n\n const uid = getUid()\n const id = computed(() => props.id || `v-menu-${uid}`)\n\n const overlay = ref<VOverlay>()\n\n const parent = inject(VMenuSymbol, null)\n const openChildren = shallowRef(0)\n provide(VMenuSymbol, {\n register () {\n ++openChildren.value\n },\n unregister () {\n --openChildren.value\n },\n closeParents (e) {\n setTimeout(() => {\n if (!openChildren.value &&\n (e == null || (e && !isClickInsideElement(e, overlay.value!.contentEl!)))\n ) {\n isActive.value = false\n parent?.closeParents()\n }\n }, 40)\n },\n })\n\n async function onFocusIn (e: FocusEvent) {\n const before = e.relatedTarget as HTMLElement | null\n const after = e.target as HTMLElement | null\n\n await nextTick()\n\n if (\n isActive.value &&\n before !== after &&\n overlay.value?.contentEl &&\n // We're the topmost menu\n overlay.value?.globalTop &&\n // It isn't the document or the menu body\n ![document, overlay.value.contentEl].includes(after!) &&\n // It isn't inside the menu body\n !overlay.value.contentEl.contains(after)\n ) {\n const focusable = focusableChildren(overlay.value.contentEl)\n focusable[0]?.focus()\n }\n }\n\n watch(isActive, val => {\n if (val) {\n parent?.register()\n document.addEventListener('focusin', onFocusIn, { once: true })\n } else {\n parent?.unregister()\n document.removeEventListener('focusin', onFocusIn)\n }\n })\n\n function onClickOutside (e: MouseEvent) {\n parent?.closeParents(e)\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (props.disabled) return\n\n if (e.key === 'Tab') {\n const nextElement = getNextElement(\n focusableChildren(overlay.value?.contentEl as Element, false),\n e.shiftKey ? 'prev' : 'next',\n (el: HTMLElement) => el.tabIndex >= 0\n )\n if (!nextElement) {\n isActive.value = false\n overlay.value?.activatorEl?.focus()\n }\n } else if (['Enter', ' '].includes(e.key) && props.closeOnContentClick) {\n isActive.value = false\n parent?.closeParents()\n }\n }\n\n function onActivatorKeydown (e: KeyboardEvent) {\n if (props.disabled) return\n\n const el = overlay.value?.contentEl\n if (el && isActive.value) {\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n focusChild(el, 'next')\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n focusChild(el, 'prev')\n }\n } else if (['ArrowDown', 'ArrowUp'].includes(e.key)) {\n isActive.value = true\n e.preventDefault()\n setTimeout(() => setTimeout(() => onActivatorKeydown(e)))\n }\n }\n\n const activatorProps = computed(() =>\n mergeProps({\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(isActive.value),\n 'aria-owns': id.value,\n onKeydown: onActivatorKeydown,\n }, props.activatorProps)\n )\n\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props)\n\n return (\n <VOverlay\n ref={ overlay }\n id={ id.value }\n class={[\n 'v-menu',\n props.class,\n ]}\n style={ props.style }\n { ...overlayProps }\n v-model={ isActive.value }\n absolute\n activatorProps={ activatorProps.value }\n onClick:outside={ onClickOutside }\n onKeydown={ onKeydown }\n { ...scopeId }\n >\n {{\n activator: slots.activator,\n default: (...args) => (\n <VDefaultsProvider root=\"VMenu\">\n { slots.default?.(...args) }\n </VDefaultsProvider>\n ),\n }}\n </VOverlay>\n )\n })\n\n return forwardRefs({ id, ΨopenChildren: openChildren }, overlay)\n },\n})\n\nexport type VMenu = InstanceType<typeof VMenu>\n"],"mappings":"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"}
@@ -451,6 +451,7 @@ declare const VMenu: {
451
451
  "onClick:outside"?: ((e: MouseEvent) => any) | undefined;
452
452
  }, {
453
453
  activatorEl: vue.Ref<HTMLElement | undefined>;
454
+ scrimEl: vue.Ref<HTMLElement | undefined>;
454
455
  target: vue.ComputedRef<HTMLElement | [x: number, y: number] | undefined>;
455
456
  animateClick: () => void;
456
457
  contentEl: vue.Ref<HTMLElement | undefined>;
@@ -598,15 +599,16 @@ declare const VMenu: {
598
599
  onAfterLeave?: (() => any) | undefined;
599
600
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
600
601
  "onClick:outside"?: ((e: MouseEvent) => any) | undefined;
601
- }, "target" | "activatorEl" | "animateClick" | "contentEl" | "globalTop" | "localTop" | "updateLocation"> & vue.ShallowUnwrapRef<{
602
+ }, "target" | "activatorEl" | "scrimEl" | "animateClick" | "contentEl" | "globalTop" | "localTop" | "updateLocation"> & vue.ShallowUnwrapRef<{
602
603
  activatorEl: vue.Ref<HTMLElement | undefined>;
604
+ scrimEl: vue.Ref<HTMLElement | undefined>;
603
605
  target: vue.ComputedRef<HTMLElement | [x: number, y: number] | undefined>;
604
606
  animateClick: () => void;
605
607
  contentEl: vue.Ref<HTMLElement | undefined>;
606
608
  globalTop: Readonly<vue.Ref<boolean>>;
607
609
  localTop: vue.ComputedRef<boolean>;
608
610
  updateLocation: vue.Ref<((e: Event) => void) | undefined>;
609
- }> & {} & vue.ComponentCustomProperties & {}, "offset" | "key" | "height" | "width" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "opacity" | "target" | "class" | "ref" | "onAfterLeave" | "$children" | "theme" | "v-slot:default" | "v-slots" | "contentClass" | "ref_for" | "ref_key" | "onVnodeBeforeMount" | "onVnodeMounted" | "onVnodeBeforeUpdate" | "onVnodeUpdated" | "onVnodeBeforeUnmount" | "onVnodeUnmounted" | "onUpdate:modelValue" | "activator" | "v-slot:activator" | "closeDelay" | "openDelay" | "contentProps" | "attach" | "onClick:outside" | ("absolute" | "location" | "origin" | "transition" | "zIndex" | "style" | "eager" | "disabled" | "modelValue" | "locationStrategy" | "scrollStrategy" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "closeOnBack" | "contained" | "noClickAnimation" | "persistent" | "scrim" | "_disableGlobalStack")>, `$${any}`>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
611
+ }> & {} & vue.ComponentCustomProperties & {}, "offset" | "key" | "height" | "width" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "opacity" | "target" | "class" | "ref" | "onAfterLeave" | "$children" | "theme" | "v-slot:default" | "v-slots" | "ref_for" | "ref_key" | "onVnodeBeforeMount" | "onVnodeMounted" | "onVnodeBeforeUpdate" | "onVnodeUpdated" | "onVnodeBeforeUnmount" | "onVnodeUnmounted" | "onUpdate:modelValue" | "contentClass" | "activator" | "v-slot:activator" | "closeDelay" | "openDelay" | "contentProps" | "attach" | "onClick:outside" | ("absolute" | "location" | "origin" | "transition" | "zIndex" | "style" | "eager" | "disabled" | "modelValue" | "locationStrategy" | "scrollStrategy" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "closeOnBack" | "contained" | "noClickAnimation" | "persistent" | "scrim" | "_disableGlobalStack")>, `$${any}`>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
610
612
  'update:modelValue': (value: boolean) => boolean;
611
613
  }, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
612
614
  location: Anchor;
@@ -1099,6 +1101,7 @@ declare const VMenu: {
1099
1101
  "onClick:outside"?: ((e: MouseEvent) => any) | undefined;
1100
1102
  }, {
1101
1103
  activatorEl: vue.Ref<HTMLElement | undefined>;
1104
+ scrimEl: vue.Ref<HTMLElement | undefined>;
1102
1105
  target: vue.ComputedRef<HTMLElement | [x: number, y: number] | undefined>;
1103
1106
  animateClick: () => void;
1104
1107
  contentEl: vue.Ref<HTMLElement | undefined>;
@@ -1246,15 +1249,16 @@ declare const VMenu: {
1246
1249
  onAfterLeave?: (() => any) | undefined;
1247
1250
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
1248
1251
  "onClick:outside"?: ((e: MouseEvent) => any) | undefined;
1249
- }, "target" | "activatorEl" | "animateClick" | "contentEl" | "globalTop" | "localTop" | "updateLocation"> & vue.ShallowUnwrapRef<{
1252
+ }, "target" | "activatorEl" | "scrimEl" | "animateClick" | "contentEl" | "globalTop" | "localTop" | "updateLocation"> & vue.ShallowUnwrapRef<{
1250
1253
  activatorEl: vue.Ref<HTMLElement | undefined>;
1254
+ scrimEl: vue.Ref<HTMLElement | undefined>;
1251
1255
  target: vue.ComputedRef<HTMLElement | [x: number, y: number] | undefined>;
1252
1256
  animateClick: () => void;
1253
1257
  contentEl: vue.Ref<HTMLElement | undefined>;
1254
1258
  globalTop: Readonly<vue.Ref<boolean>>;
1255
1259
  localTop: vue.ComputedRef<boolean>;
1256
1260
  updateLocation: vue.Ref<((e: Event) => void) | undefined>;
1257
- }> & {} & vue.ComponentCustomProperties & {}, "offset" | "key" | "height" | "width" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "opacity" | "target" | "class" | "ref" | "onAfterLeave" | "$children" | "theme" | "v-slot:default" | "v-slots" | "contentClass" | "ref_for" | "ref_key" | "onVnodeBeforeMount" | "onVnodeMounted" | "onVnodeBeforeUpdate" | "onVnodeUpdated" | "onVnodeBeforeUnmount" | "onVnodeUnmounted" | "onUpdate:modelValue" | "activator" | "v-slot:activator" | "closeDelay" | "openDelay" | "contentProps" | "attach" | "onClick:outside" | ("absolute" | "location" | "origin" | "transition" | "zIndex" | "style" | "eager" | "disabled" | "modelValue" | "locationStrategy" | "scrollStrategy" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "closeOnBack" | "contained" | "noClickAnimation" | "persistent" | "scrim" | "_disableGlobalStack")>, `$${any}`>, {}, {}, {}, {
1261
+ }> & {} & vue.ComponentCustomProperties & {}, "offset" | "key" | "height" | "width" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "opacity" | "target" | "class" | "ref" | "onAfterLeave" | "$children" | "theme" | "v-slot:default" | "v-slots" | "ref_for" | "ref_key" | "onVnodeBeforeMount" | "onVnodeMounted" | "onVnodeBeforeUpdate" | "onVnodeUpdated" | "onVnodeBeforeUnmount" | "onVnodeUnmounted" | "onUpdate:modelValue" | "contentClass" | "activator" | "v-slot:activator" | "closeDelay" | "openDelay" | "contentProps" | "attach" | "onClick:outside" | ("absolute" | "location" | "origin" | "transition" | "zIndex" | "style" | "eager" | "disabled" | "modelValue" | "locationStrategy" | "scrollStrategy" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "closeOnBack" | "contained" | "noClickAnimation" | "persistent" | "scrim" | "_disableGlobalStack")>, `$${any}`>, {}, {}, {}, {
1258
1262
  location: Anchor;
1259
1263
  origin: "auto" | Anchor | "overlap";
1260
1264
  transition: NonNullable<string | boolean | (vue.TransitionProps & {
@@ -1653,6 +1657,7 @@ declare const VMenu: {
1653
1657
  "onClick:outside"?: ((e: MouseEvent) => any) | undefined;
1654
1658
  }, {
1655
1659
  activatorEl: vue.Ref<HTMLElement | undefined>;
1660
+ scrimEl: vue.Ref<HTMLElement | undefined>;
1656
1661
  target: vue.ComputedRef<HTMLElement | [x: number, y: number] | undefined>;
1657
1662
  animateClick: () => void;
1658
1663
  contentEl: vue.Ref<HTMLElement | undefined>;
@@ -1800,15 +1805,16 @@ declare const VMenu: {
1800
1805
  onAfterLeave?: (() => any) | undefined;
1801
1806
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
1802
1807
  "onClick:outside"?: ((e: MouseEvent) => any) | undefined;
1803
- }, "target" | "activatorEl" | "animateClick" | "contentEl" | "globalTop" | "localTop" | "updateLocation"> & vue.ShallowUnwrapRef<{
1808
+ }, "target" | "activatorEl" | "scrimEl" | "animateClick" | "contentEl" | "globalTop" | "localTop" | "updateLocation"> & vue.ShallowUnwrapRef<{
1804
1809
  activatorEl: vue.Ref<HTMLElement | undefined>;
1810
+ scrimEl: vue.Ref<HTMLElement | undefined>;
1805
1811
  target: vue.ComputedRef<HTMLElement | [x: number, y: number] | undefined>;
1806
1812
  animateClick: () => void;
1807
1813
  contentEl: vue.Ref<HTMLElement | undefined>;
1808
1814
  globalTop: Readonly<vue.Ref<boolean>>;
1809
1815
  localTop: vue.ComputedRef<boolean>;
1810
1816
  updateLocation: vue.Ref<((e: Event) => void) | undefined>;
1811
- }> & {} & vue.ComponentCustomProperties & {}, "offset" | "key" | "height" | "width" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "opacity" | "target" | "class" | "ref" | "onAfterLeave" | "$children" | "theme" | "v-slot:default" | "v-slots" | "contentClass" | "ref_for" | "ref_key" | "onVnodeBeforeMount" | "onVnodeMounted" | "onVnodeBeforeUpdate" | "onVnodeUpdated" | "onVnodeBeforeUnmount" | "onVnodeUnmounted" | "onUpdate:modelValue" | "activator" | "v-slot:activator" | "closeDelay" | "openDelay" | "contentProps" | "attach" | "onClick:outside" | ("absolute" | "location" | "origin" | "transition" | "zIndex" | "style" | "eager" | "disabled" | "modelValue" | "locationStrategy" | "scrollStrategy" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "closeOnBack" | "contained" | "noClickAnimation" | "persistent" | "scrim" | "_disableGlobalStack")>, `$${any}`>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
1817
+ }> & {} & vue.ComponentCustomProperties & {}, "offset" | "key" | "height" | "width" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "opacity" | "target" | "class" | "ref" | "onAfterLeave" | "$children" | "theme" | "v-slot:default" | "v-slots" | "ref_for" | "ref_key" | "onVnodeBeforeMount" | "onVnodeMounted" | "onVnodeBeforeUpdate" | "onVnodeUpdated" | "onVnodeBeforeUnmount" | "onVnodeUnmounted" | "onUpdate:modelValue" | "contentClass" | "activator" | "v-slot:activator" | "closeDelay" | "openDelay" | "contentProps" | "attach" | "onClick:outside" | ("absolute" | "location" | "origin" | "transition" | "zIndex" | "style" | "eager" | "disabled" | "modelValue" | "locationStrategy" | "scrollStrategy" | "activatorProps" | "openOnClick" | "openOnHover" | "openOnFocus" | "closeOnContentClick" | "closeOnBack" | "contained" | "noClickAnimation" | "persistent" | "scrim" | "_disableGlobalStack")>, `$${any}`>, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
1812
1818
  'update:modelValue': (value: boolean) => boolean;
1813
1819
  }, string, {
1814
1820
  location: Anchor;
@@ -1899,8 +1905,8 @@ declare const VMenu: {
1899
1905
  disabled: BooleanConstructor;
1900
1906
  class: vue.PropType<any>;
1901
1907
  theme: StringConstructor;
1902
- contentClass: null;
1903
1908
  modelValue: BooleanConstructor;
1909
+ contentClass: null;
1904
1910
  activator: vue.PropType<Element | "parent" | (string & {}) | vue.ComponentPublicInstance | undefined>;
1905
1911
  locationStrategy: Omit<{
1906
1912
  type: vue.PropType<"connected" | "static" | ((data: LocationStrategyData, props: StrategyProps, contentStyles: vue.Ref<Record<string, string>>) => {
@@ -2014,8 +2020,8 @@ declare const VMenu: {
2014
2020
  disabled: BooleanConstructor;
2015
2021
  class: vue.PropType<any>;
2016
2022
  theme: StringConstructor;
2017
- contentClass: null;
2018
2023
  modelValue: BooleanConstructor;
2024
+ contentClass: null;
2019
2025
  activator: vue.PropType<Element | "parent" | (string & {}) | vue.ComponentPublicInstance | undefined>;
2020
2026
  locationStrategy: Omit<{
2021
2027
  type: vue.PropType<"connected" | "static" | ((data: LocationStrategyData, props: StrategyProps, contentStyles: vue.Ref<Record<string, string>>) => {
@@ -74,7 +74,7 @@
74
74
  width: 100%;
75
75
  z-index: -1;
76
76
  }
77
- .v-navigation-drawer__img img {
77
+ .v-navigation-drawer__img img:not(.v-img__img) {
78
78
  height: inherit;
79
79
  object-fit: cover;
80
80
  width: inherit;
@@ -1,8 +1,10 @@
1
- import { mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from "vue";
1
+ import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode, Fragment as _Fragment } from "vue";
2
2
  // Styles
3
3
  import "./VNavigationDrawer.css";
4
4
 
5
- // Composables
5
+ // Components
6
+ import { VDefaultsProvider } from "../VDefaultsProvider/index.mjs";
7
+ import { VImg } from "../VImg/index.mjs"; // Composables
6
8
  import { useSticky } from "./sticky.mjs";
7
9
  import { useTouch } from "./touch.mjs";
8
10
  import { useRtl } from "../../composables/index.mjs";
@@ -220,12 +222,24 @@ export const VNavigationDrawer = genericComponent()({
220
222
  default: () => [hasImage && _createVNode("div", {
221
223
  "key": "image",
222
224
  "class": "v-navigation-drawer__img"
223
- }, [slots.image ? slots.image?.({
224
- image: props.image
225
- }) : _createVNode("img", {
226
- "src": props.image,
227
- "alt": ""
228
- }, null)]), slots.prepend && _createVNode("div", {
225
+ }, [!slots.image ? _createVNode(VImg, {
226
+ "key": "image-img",
227
+ "alt": "",
228
+ "cover": true,
229
+ "height": "inherit",
230
+ "src": props.image
231
+ }, null) : _createVNode(VDefaultsProvider, {
232
+ "key": "image-defaults",
233
+ "disabled": !props.image,
234
+ "defaults": {
235
+ VImg: {
236
+ alt: '',
237
+ cover: true,
238
+ height: 'inherit',
239
+ src: props.image
240
+ }
241
+ }
242
+ }, slots.image)]), slots.prepend && _createVNode("div", {
229
243
  "class": "v-navigation-drawer__prepend"
230
244
  }, [slots.prepend?.()]), _createVNode("div", {
231
245
  "class": "v-navigation-drawer__content"
@@ -1 +1 @@
1
- {"version":3,"file":"VNavigationDrawer.mjs","names":["useSticky","useTouch","useRtl","makeBorderProps","useBorder","useBackgroundColor","makeComponentProps","provideDefaults","makeDisplayProps","useDisplay","makeElevationProps","useElevation","makeLayoutItemProps","useLayoutItem","useProxiedModel","makeRoundedProps","useRounded","useRouter","useScopeId","useSsrBoot","makeTagProps","makeThemeProps","provideTheme","useToggleScope","computed","nextTick","onBeforeMount","ref","shallowRef","toRef","Transition","watch","genericComponent","propsFactory","toPhysical","useRender","locations","makeVNavigationDrawerProps","color","String","disableResizeWatcher","Boolean","disableRouteWatcher","expandOnHover","floating","modelValue","type","default","permanent","rail","railWidth","Number","scrim","image","temporary","touchless","width","location","validator","value","includes","sticky","tag","VNavigationDrawer","name","props","emits","val","setup","_ref","attrs","emit","slots","isRtl","themeClasses","borderClasses","backgroundColorClasses","backgroundColorStyles","elevationClasses","displayClasses","mobile","roundedClasses","router","isActive","v","ssrBootStyles","scopeId","rootEl","isHovering","isTemporary","isSticky","currentRoute","isDragging","dragProgress","dragStyles","position","layoutSize","size","layoutItemStyles","layoutItemScrimStyles","id","order","parseInt","elementSize","active","disableTransitions","absolute","isStuck","stickyStyles","scrimColor","scrimStyles","opacity","transition","undefined","VList","bgColor","onMouseenter","onMouseleave","hasImage","_createVNode","_Fragment","_mergeProps","class","style","prepend","append","onClick"],"sources":["../../../src/components/VNavigationDrawer/VNavigationDrawer.tsx"],"sourcesContent":["// Styles\nimport './VNavigationDrawer.sass'\n\n// Composables\nimport { useSticky } from './sticky'\nimport { useTouch } from './touch'\nimport { useRtl } from '@/composables'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { useRouter } from '@/composables/router'\nimport { useScopeId } from '@/composables/scopeId'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, nextTick, onBeforeMount, ref, shallowRef, toRef, Transition, watch } from 'vue'\nimport { genericComponent, propsFactory, toPhysical, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VNavigationDrawerImageSlot = {\n image: string | undefined\n}\n\nexport type VNavigationDrawerSlots = {\n default: never\n prepend: never\n append: never\n image: VNavigationDrawerImageSlot\n}\n\nconst locations = ['start', 'end', 'left', 'right', 'top', 'bottom'] as const\n\nexport const makeVNavigationDrawerProps = propsFactory({\n color: String,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n modelValue: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n permanent: Boolean,\n rail: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n railWidth: {\n type: [Number, String],\n default: 56,\n },\n scrim: {\n type: [Boolean, String],\n default: true,\n },\n image: String,\n temporary: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n location: {\n type: String as PropType<typeof locations[number]>,\n default: 'start',\n validator: (value: any) => locations.includes(value),\n },\n sticky: Boolean,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDisplayProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n}, 'VNavigationDrawer')\n\nexport const VNavigationDrawer = genericComponent<VNavigationDrawerSlots>()({\n name: 'VNavigationDrawer',\n\n props: makeVNavigationDrawerProps(),\n\n emits: {\n 'update:modelValue': (val: boolean) => true,\n 'update:rail': (val: boolean) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { elevationClasses } = useElevation(props)\n const { displayClasses, mobile } = useDisplay(props)\n const { roundedClasses } = useRounded(props)\n const router = useRouter()\n const isActive = useProxiedModel(props, 'modelValue', null, v => !!v)\n const { ssrBootStyles } = useSsrBoot()\n const { scopeId } = useScopeId()\n\n const rootEl = ref<HTMLElement>()\n const isHovering = shallowRef(false)\n\n const width = computed(() => {\n return (props.rail && props.expandOnHover && isHovering.value)\n ? Number(props.width)\n : Number(props.rail ? props.railWidth : props.width)\n })\n const location = computed(() => {\n return toPhysical(props.location, isRtl.value) as 'left' | 'right' | 'bottom'\n })\n const isTemporary = computed(() => !props.permanent && (mobile.value || props.temporary))\n const isSticky = computed(() =>\n props.sticky &&\n !isTemporary.value &&\n location.value !== 'bottom'\n )\n\n useToggleScope(() => props.expandOnHover && props.rail != null, () => {\n watch(isHovering, val => emit('update:rail', !val))\n })\n\n useToggleScope(() => !props.disableResizeWatcher, () => {\n watch(isTemporary, val => !props.permanent && (nextTick(() => isActive.value = !val)))\n })\n\n useToggleScope(() => !props.disableRouteWatcher && !!router, () => {\n watch(router!.currentRoute, () => isTemporary.value && (isActive.value = false))\n })\n\n watch(() => props.permanent, val => {\n if (val) isActive.value = true\n })\n\n onBeforeMount(() => {\n if (props.modelValue != null || isTemporary.value) return\n\n isActive.value = props.permanent || !mobile.value\n })\n\n const { isDragging, dragProgress, dragStyles } = useTouch({\n isActive,\n isTemporary,\n width,\n touchless: toRef(props, 'touchless'),\n position: location,\n })\n\n const layoutSize = computed(() => {\n const size = isTemporary.value ? 0\n : props.rail && props.expandOnHover ? Number(props.railWidth)\n : width.value\n\n return isDragging.value ? size * dragProgress.value : size\n })\n\n const { layoutItemStyles, layoutItemScrimStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: location,\n layoutSize,\n elementSize: width,\n active: computed(() => isActive.value || isDragging.value),\n disableTransitions: computed(() => isDragging.value),\n absolute: computed(() =>\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n props.absolute || (isSticky.value && typeof isStuck.value !== 'string')\n ),\n })\n\n const { isStuck, stickyStyles } = useSticky({ rootEl, isSticky, layoutItemStyles })\n\n const scrimColor = useBackgroundColor(computed(() => {\n return typeof props.scrim === 'string' ? props.scrim : null\n }))\n const scrimStyles = computed(() => ({\n ...isDragging.value ? {\n opacity: dragProgress.value * 0.2,\n transition: 'none',\n } : undefined,\n ...layoutItemScrimStyles.value,\n }))\n\n provideDefaults({\n VList: {\n bgColor: 'transparent',\n },\n })\n\n function onMouseenter () {\n isHovering.value = true\n }\n function onMouseleave () {\n isHovering.value = false\n }\n\n useRender(() => {\n const hasImage = (slots.image || props.image)\n\n return (\n <>\n <props.tag\n ref={ rootEl }\n onMouseenter={ onMouseenter }\n onMouseleave={ onMouseleave }\n class={[\n 'v-navigation-drawer',\n `v-navigation-drawer--${location.value}`,\n {\n 'v-navigation-drawer--expand-on-hover': props.expandOnHover,\n 'v-navigation-drawer--floating': props.floating,\n 'v-navigation-drawer--is-hovering': isHovering.value,\n 'v-navigation-drawer--rail': props.rail,\n 'v-navigation-drawer--temporary': isTemporary.value,\n 'v-navigation-drawer--active': isActive.value,\n 'v-navigation-drawer--sticky': isSticky.value,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n displayClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutItemStyles.value,\n dragStyles.value,\n ssrBootStyles.value,\n stickyStyles.value,\n props.style,\n ]}\n { ...scopeId }\n { ...attrs }\n >\n { hasImage && (\n <div key=\"image\" class=\"v-navigation-drawer__img\">\n { slots.image\n ? slots.image?.({ image: props.image })\n : (<img src={ props.image } alt=\"\" />)\n }\n </div>\n )}\n\n { slots.prepend && (\n <div class=\"v-navigation-drawer__prepend\">\n { slots.prepend?.() }\n </div>\n )}\n\n <div class=\"v-navigation-drawer__content\">\n { slots.default?.() }\n </div>\n\n { slots.append && (\n <div class=\"v-navigation-drawer__append\">\n { slots.append?.() }\n </div>\n )}\n </props.tag>\n\n <Transition name=\"fade-transition\">\n { isTemporary.value && (isDragging.value || isActive.value) && !!props.scrim && (\n <div\n class={['v-navigation-drawer__scrim', scrimColor.backgroundColorClasses.value]}\n style={[scrimStyles.value, scrimColor.backgroundColorStyles.value]}\n onClick={ () => isActive.value = false }\n { ...scopeId }\n />\n )}\n </Transition>\n </>\n )\n })\n\n return {\n isStuck,\n }\n },\n})\n\nexport type VNavigationDrawer = InstanceType<typeof VNavigationDrawer>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VNavigationDrawer.mjs","names":["VDefaultsProvider","VImg","useSticky","useTouch","useRtl","makeBorderProps","useBorder","useBackgroundColor","makeComponentProps","provideDefaults","makeDisplayProps","useDisplay","makeElevationProps","useElevation","makeLayoutItemProps","useLayoutItem","useProxiedModel","makeRoundedProps","useRounded","useRouter","useScopeId","useSsrBoot","makeTagProps","makeThemeProps","provideTheme","useToggleScope","computed","nextTick","onBeforeMount","ref","shallowRef","toRef","Transition","watch","genericComponent","propsFactory","toPhysical","useRender","locations","makeVNavigationDrawerProps","color","String","disableResizeWatcher","Boolean","disableRouteWatcher","expandOnHover","floating","modelValue","type","default","permanent","rail","railWidth","Number","scrim","image","temporary","touchless","width","location","validator","value","includes","sticky","tag","VNavigationDrawer","name","props","emits","val","setup","_ref","attrs","emit","slots","isRtl","themeClasses","borderClasses","backgroundColorClasses","backgroundColorStyles","elevationClasses","displayClasses","mobile","roundedClasses","router","isActive","v","ssrBootStyles","scopeId","rootEl","isHovering","isTemporary","isSticky","currentRoute","isDragging","dragProgress","dragStyles","position","layoutSize","size","layoutItemStyles","layoutItemScrimStyles","id","order","parseInt","elementSize","active","disableTransitions","absolute","isStuck","stickyStyles","scrimColor","scrimStyles","opacity","transition","undefined","VList","bgColor","onMouseenter","onMouseleave","hasImage","_createVNode","_Fragment","_mergeProps","class","style","alt","cover","height","src","prepend","append","onClick"],"sources":["../../../src/components/VNavigationDrawer/VNavigationDrawer.tsx"],"sourcesContent":["// Styles\nimport './VNavigationDrawer.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { useSticky } from './sticky'\nimport { useTouch } from './touch'\nimport { useRtl } from '@/composables'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDisplayProps, useDisplay } from '@/composables/display'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { useRouter } from '@/composables/router'\nimport { useScopeId } from '@/composables/scopeId'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useToggleScope } from '@/composables/toggleScope'\n\n// Utilities\nimport { computed, nextTick, onBeforeMount, ref, shallowRef, toRef, Transition, watch } from 'vue'\nimport { genericComponent, propsFactory, toPhysical, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VNavigationDrawerImageSlot = {\n image: string | undefined\n}\n\nexport type VNavigationDrawerSlots = {\n default: never\n prepend: never\n append: never\n image: VNavigationDrawerImageSlot\n}\n\nconst locations = ['start', 'end', 'left', 'right', 'top', 'bottom'] as const\n\nexport const makeVNavigationDrawerProps = propsFactory({\n color: String,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n modelValue: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n permanent: Boolean,\n rail: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n railWidth: {\n type: [Number, String],\n default: 56,\n },\n scrim: {\n type: [Boolean, String],\n default: true,\n },\n image: String,\n temporary: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n location: {\n type: String as PropType<typeof locations[number]>,\n default: 'start',\n validator: (value: any) => locations.includes(value),\n },\n sticky: Boolean,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDisplayProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n}, 'VNavigationDrawer')\n\nexport const VNavigationDrawer = genericComponent<VNavigationDrawerSlots>()({\n name: 'VNavigationDrawer',\n\n props: makeVNavigationDrawerProps(),\n\n emits: {\n 'update:modelValue': (val: boolean) => true,\n 'update:rail': (val: boolean) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { elevationClasses } = useElevation(props)\n const { displayClasses, mobile } = useDisplay(props)\n const { roundedClasses } = useRounded(props)\n const router = useRouter()\n const isActive = useProxiedModel(props, 'modelValue', null, v => !!v)\n const { ssrBootStyles } = useSsrBoot()\n const { scopeId } = useScopeId()\n\n const rootEl = ref<HTMLElement>()\n const isHovering = shallowRef(false)\n\n const width = computed(() => {\n return (props.rail && props.expandOnHover && isHovering.value)\n ? Number(props.width)\n : Number(props.rail ? props.railWidth : props.width)\n })\n const location = computed(() => {\n return toPhysical(props.location, isRtl.value) as 'left' | 'right' | 'bottom'\n })\n const isTemporary = computed(() => !props.permanent && (mobile.value || props.temporary))\n const isSticky = computed(() =>\n props.sticky &&\n !isTemporary.value &&\n location.value !== 'bottom'\n )\n\n useToggleScope(() => props.expandOnHover && props.rail != null, () => {\n watch(isHovering, val => emit('update:rail', !val))\n })\n\n useToggleScope(() => !props.disableResizeWatcher, () => {\n watch(isTemporary, val => !props.permanent && (nextTick(() => isActive.value = !val)))\n })\n\n useToggleScope(() => !props.disableRouteWatcher && !!router, () => {\n watch(router!.currentRoute, () => isTemporary.value && (isActive.value = false))\n })\n\n watch(() => props.permanent, val => {\n if (val) isActive.value = true\n })\n\n onBeforeMount(() => {\n if (props.modelValue != null || isTemporary.value) return\n\n isActive.value = props.permanent || !mobile.value\n })\n\n const { isDragging, dragProgress, dragStyles } = useTouch({\n isActive,\n isTemporary,\n width,\n touchless: toRef(props, 'touchless'),\n position: location,\n })\n\n const layoutSize = computed(() => {\n const size = isTemporary.value ? 0\n : props.rail && props.expandOnHover ? Number(props.railWidth)\n : width.value\n\n return isDragging.value ? size * dragProgress.value : size\n })\n\n const { layoutItemStyles, layoutItemScrimStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: location,\n layoutSize,\n elementSize: width,\n active: computed(() => isActive.value || isDragging.value),\n disableTransitions: computed(() => isDragging.value),\n absolute: computed(() =>\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n props.absolute || (isSticky.value && typeof isStuck.value !== 'string')\n ),\n })\n\n const { isStuck, stickyStyles } = useSticky({ rootEl, isSticky, layoutItemStyles })\n\n const scrimColor = useBackgroundColor(computed(() => {\n return typeof props.scrim === 'string' ? props.scrim : null\n }))\n const scrimStyles = computed(() => ({\n ...isDragging.value ? {\n opacity: dragProgress.value * 0.2,\n transition: 'none',\n } : undefined,\n ...layoutItemScrimStyles.value,\n }))\n\n provideDefaults({\n VList: {\n bgColor: 'transparent',\n },\n })\n\n function onMouseenter () {\n isHovering.value = true\n }\n function onMouseleave () {\n isHovering.value = false\n }\n\n useRender(() => {\n const hasImage = (slots.image || props.image)\n\n return (\n <>\n <props.tag\n ref={ rootEl }\n onMouseenter={ onMouseenter }\n onMouseleave={ onMouseleave }\n class={[\n 'v-navigation-drawer',\n `v-navigation-drawer--${location.value}`,\n {\n 'v-navigation-drawer--expand-on-hover': props.expandOnHover,\n 'v-navigation-drawer--floating': props.floating,\n 'v-navigation-drawer--is-hovering': isHovering.value,\n 'v-navigation-drawer--rail': props.rail,\n 'v-navigation-drawer--temporary': isTemporary.value,\n 'v-navigation-drawer--active': isActive.value,\n 'v-navigation-drawer--sticky': isSticky.value,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n displayClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutItemStyles.value,\n dragStyles.value,\n ssrBootStyles.value,\n stickyStyles.value,\n props.style,\n ]}\n { ...scopeId }\n { ...attrs }\n >\n { hasImage && (\n <div key=\"image\" class=\"v-navigation-drawer__img\">\n { !slots.image ? (\n <VImg\n key=\"image-img\"\n alt=\"\"\n cover\n height=\"inherit\"\n src={ props.image }\n />\n ) : (\n <VDefaultsProvider\n key=\"image-defaults\"\n disabled={ !props.image }\n defaults={{\n VImg: {\n alt: '',\n cover: true,\n height: 'inherit',\n src: props.image,\n },\n }}\n v-slots:default={ slots.image }\n />\n )}\n </div>\n )}\n\n { slots.prepend && (\n <div class=\"v-navigation-drawer__prepend\">\n { slots.prepend?.() }\n </div>\n )}\n\n <div class=\"v-navigation-drawer__content\">\n { slots.default?.() }\n </div>\n\n { slots.append && (\n <div class=\"v-navigation-drawer__append\">\n { slots.append?.() }\n </div>\n )}\n </props.tag>\n\n <Transition name=\"fade-transition\">\n { isTemporary.value && (isDragging.value || isActive.value) && !!props.scrim && (\n <div\n class={['v-navigation-drawer__scrim', scrimColor.backgroundColorClasses.value]}\n style={[scrimStyles.value, scrimColor.backgroundColorStyles.value]}\n onClick={ () => isActive.value = false }\n { ...scopeId }\n />\n )}\n </Transition>\n </>\n )\n })\n\n return {\n isStuck,\n }\n },\n})\n\nexport type VNavigationDrawer = InstanceType<typeof VNavigationDrawer>\n"],"mappings":"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"}
@@ -70,7 +70,8 @@
70
70
  width: 100%
71
71
  z-index: -1
72
72
 
73
- img
73
+ // TODO: remove in v4
74
+ img:not(.v-img__img)
74
75
  height: $navigation-drawer-img-height
75
76
  object-fit: $navigation-drawer-img-object-fit
76
77
  width: $navigation-drawer-img-width
@@ -22,9 +22,9 @@ declare const VNavigationDrawer: {
22
22
  temporary: boolean;
23
23
  tag: string;
24
24
  sticky: boolean;
25
+ modelValue: boolean | null;
25
26
  tile: boolean;
26
27
  floating: boolean;
27
- modelValue: boolean | null;
28
28
  scrim: string | boolean;
29
29
  touchless: boolean;
30
30
  disableResizeWatcher: boolean;
@@ -41,8 +41,8 @@ declare const VNavigationDrawer: {
41
41
  class?: any;
42
42
  elevation?: string | number | undefined;
43
43
  theme?: string | undefined;
44
- rounded?: string | number | boolean | undefined;
45
44
  mobileBreakpoint?: number | DisplayBreakpoint | undefined;
45
+ rounded?: string | number | boolean | undefined;
46
46
  } & {
47
47
  $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
48
48
  default?: (() => vue.VNodeChild) | undefined;
@@ -78,9 +78,9 @@ declare const VNavigationDrawer: {
78
78
  temporary: boolean;
79
79
  tag: string;
80
80
  sticky: boolean;
81
+ modelValue: boolean | null;
81
82
  tile: boolean;
82
83
  floating: boolean;
83
- modelValue: boolean | null;
84
84
  scrim: string | boolean;
85
85
  touchless: boolean;
86
86
  disableResizeWatcher: boolean;
@@ -97,8 +97,8 @@ declare const VNavigationDrawer: {
97
97
  class?: any;
98
98
  elevation?: string | number | undefined;
99
99
  theme?: string | undefined;
100
- rounded?: string | number | boolean | undefined;
101
100
  mobileBreakpoint?: number | DisplayBreakpoint | undefined;
101
+ rounded?: string | number | boolean | undefined;
102
102
  } & {
103
103
  $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
104
104
  default?: (() => vue.VNodeChild) | undefined;
@@ -129,10 +129,10 @@ declare const VNavigationDrawer: {
129
129
  temporary: boolean;
130
130
  tag: string;
131
131
  sticky: boolean;
132
+ modelValue: boolean | null;
132
133
  rounded: string | number | boolean;
133
134
  tile: boolean;
134
135
  floating: boolean;
135
- modelValue: boolean | null;
136
136
  scrim: string | boolean;
137
137
  touchless: boolean;
138
138
  disableResizeWatcher: boolean;
@@ -170,9 +170,9 @@ declare const VNavigationDrawer: {
170
170
  temporary: boolean;
171
171
  tag: string;
172
172
  sticky: boolean;
173
+ modelValue: boolean | null;
173
174
  tile: boolean;
174
175
  floating: boolean;
175
- modelValue: boolean | null;
176
176
  scrim: string | boolean;
177
177
  touchless: boolean;
178
178
  disableResizeWatcher: boolean;
@@ -189,8 +189,8 @@ declare const VNavigationDrawer: {
189
189
  class?: any;
190
190
  elevation?: string | number | undefined;
191
191
  theme?: string | undefined;
192
- rounded?: string | number | boolean | undefined;
193
192
  mobileBreakpoint?: number | DisplayBreakpoint | undefined;
193
+ rounded?: string | number | boolean | undefined;
194
194
  } & {
195
195
  $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
196
196
  default?: (() => vue.VNodeChild) | undefined;
@@ -223,10 +223,10 @@ declare const VNavigationDrawer: {
223
223
  temporary: boolean;
224
224
  tag: string;
225
225
  sticky: boolean;
226
+ modelValue: boolean | null;
226
227
  rounded: string | number | boolean;
227
228
  tile: boolean;
228
229
  floating: boolean;
229
- modelValue: boolean | null;
230
230
  scrim: string | boolean;
231
231
  touchless: boolean;
232
232
  disableResizeWatcher: boolean;
@@ -248,9 +248,9 @@ declare const VNavigationDrawer: {
248
248
  temporary: boolean;
249
249
  tag: string;
250
250
  sticky: boolean;
251
+ modelValue: boolean | null;
251
252
  tile: boolean;
252
253
  floating: boolean;
253
- modelValue: boolean | null;
254
254
  scrim: string | boolean;
255
255
  touchless: boolean;
256
256
  disableResizeWatcher: boolean;
@@ -267,8 +267,8 @@ declare const VNavigationDrawer: {
267
267
  class?: any;
268
268
  elevation?: string | number | undefined;
269
269
  theme?: string | undefined;
270
- rounded?: string | number | boolean | undefined;
271
270
  mobileBreakpoint?: number | DisplayBreakpoint | undefined;
271
+ rounded?: string | number | boolean | undefined;
272
272
  } & {
273
273
  $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
274
274
  default?: (() => vue.VNodeChild) | undefined;
@@ -304,10 +304,10 @@ declare const VNavigationDrawer: {
304
304
  temporary: boolean;
305
305
  tag: string;
306
306
  sticky: boolean;
307
+ modelValue: boolean | null;
307
308
  rounded: string | number | boolean;
308
309
  tile: boolean;
309
310
  floating: boolean;
310
- modelValue: boolean | null;
311
311
  scrim: string | boolean;
312
312
  touchless: boolean;
313
313
  disableResizeWatcher: boolean;
@@ -76,7 +76,7 @@ export const VOtpInput = genericComponent()({
76
76
  function onInput() {
77
77
  // The maxlength attribute doesn't work for the number type input, so the text type is used.
78
78
  // The following logic simulates the behavior of a number input.
79
- if (props.type === 'number' && /[^0-9]/g.test(current.value.value)) {
79
+ if (isValidNumber(current.value.value)) {
80
80
  current.value.value = '';
81
81
  return;
82
82
  }
@@ -122,7 +122,9 @@ export const VOtpInput = genericComponent()({
122
122
  function onPaste(index, e) {
123
123
  e.preventDefault();
124
124
  e.stopPropagation();
125
- model.value = (e?.clipboardData?.getData('Text') ?? '').split('');
125
+ const clipboardText = e?.clipboardData?.getData('Text') ?? '';
126
+ if (!isValidNumber(clipboardText)) return;
127
+ model.value = clipboardText.split('');
126
128
  inputRef.value?.[index].blur();
127
129
  }
128
130
  function reset() {
@@ -136,6 +138,9 @@ export const VOtpInput = genericComponent()({
136
138
  blur();
137
139
  focusIndex.value = -1;
138
140
  }
141
+ function isValidNumber(value) {
142
+ return props.type === 'number' && !isNaN(Number(value));
143
+ }
139
144
  provideDefaults({
140
145
  VField: {
141
146
  color: computed(() => props.color),