@vuetify/nightly 3.7.5-master.2024-12-16 → 3.7.6-dev.2024-12-18

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 (282) hide show
  1. package/dist/json/attributes.json +925 -917
  2. package/dist/json/importMap-labs.json +42 -42
  3. package/dist/json/importMap.json +162 -162
  4. package/dist/json/tags.json +2 -0
  5. package/dist/json/web-types.json +2000 -1982
  6. package/dist/vuetify-labs.css +4432 -4432
  7. package/dist/vuetify-labs.d.ts +3365 -14377
  8. package/dist/vuetify-labs.esm.js +58 -54
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +57 -53
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +2655 -2655
  13. package/dist/vuetify.d.ts +2726 -11900
  14. package/dist/vuetify.esm.js +58 -54
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +57 -53
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +879 -884
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAlert/VAlert.mjs +1 -1
  22. package/lib/components/VAlert/index.d.mts +8 -86
  23. package/lib/components/VApp/index.d.mts +4 -20
  24. package/lib/components/VAppBar/VAppBar.mjs +1 -1
  25. package/lib/components/VAppBar/VAppBarNavIcon.mjs +1 -1
  26. package/lib/components/VAppBar/VAppBarTitle.mjs +1 -1
  27. package/lib/components/VAppBar/index.d.mts +18 -154
  28. package/lib/components/VAutocomplete/VAutocomplete.mjs +1 -1
  29. package/lib/components/VAutocomplete/index.d.mts +201 -1360
  30. package/lib/components/VAvatar/index.d.mts +4 -31
  31. package/lib/components/VBadge/VBadge.mjs +1 -1
  32. package/lib/components/VBadge/index.d.mts +4 -41
  33. package/lib/components/VBanner/VBanner.mjs +1 -1
  34. package/lib/components/VBanner/index.d.mts +12 -88
  35. package/lib/components/VBottomNavigation/index.d.mts +4 -32
  36. package/lib/components/VBottomSheet/VBottomSheet.mjs +1 -1
  37. package/lib/components/VBottomSheet/index.d.mts +4 -88
  38. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +1 -1
  39. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +1 -1
  40. package/lib/components/VBreadcrumbs/index.d.mts +12 -65
  41. package/lib/components/VBtn/VBtn.mjs +1 -1
  42. package/lib/components/VBtn/index.d.mts +11 -79
  43. package/lib/components/VBtnGroup/VBtnGroup.mjs +1 -1
  44. package/lib/components/VBtnGroup/index.d.mts +4 -28
  45. package/lib/components/VBtnToggle/VBtnToggle.mjs +1 -1
  46. package/lib/components/VBtnToggle/index.d.mts +13 -33
  47. package/lib/components/VCard/VCard.mjs +1 -1
  48. package/lib/components/VCard/VCardItem.mjs +1 -1
  49. package/lib/components/VCard/VCardSubtitle.mjs +1 -1
  50. package/lib/components/VCard/VCardText.mjs +1 -1
  51. package/lib/components/VCard/index.d.mts +24 -190
  52. package/lib/components/VCarousel/VCarousel.mjs +1 -1
  53. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  54. package/lib/components/VCarousel/VCarouselItem.mjs +1 -1
  55. package/lib/components/VCarousel/index.d.mts +17 -95
  56. package/lib/components/VCheckbox/VCheckbox.mjs +4 -4
  57. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  58. package/lib/components/VCheckbox/VCheckboxBtn.mjs +1 -1
  59. package/lib/components/VCheckbox/index.d.mts +8 -90
  60. package/lib/components/VChip/VChip.mjs +16 -9
  61. package/lib/components/VChip/VChip.mjs.map +1 -1
  62. package/lib/components/VChip/index.d.mts +9 -105
  63. package/lib/components/VChipGroup/VChipGroup.mjs +3 -1
  64. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  65. package/lib/components/VChipGroup/index.d.mts +24 -43
  66. package/lib/components/VCode/index.d.mts +4 -18
  67. package/lib/components/VColorPicker/VColorPicker.mjs +1 -1
  68. package/lib/components/VColorPicker/index.d.mts +4 -68
  69. package/lib/components/VCombobox/VCombobox.mjs +1 -1
  70. package/lib/components/VCombobox/index.d.mts +201 -1360
  71. package/lib/components/VConfirmEdit/VConfirmEdit.mjs +1 -1
  72. package/lib/components/VConfirmEdit/__test__/VConfirmEdit.spec.browser.mjs +1 -1
  73. package/lib/components/VConfirmEdit/index.d.mts +6 -13
  74. package/lib/components/VCounter/VCounter.mjs +1 -1
  75. package/lib/components/VCounter/index.d.mts +9 -31
  76. package/lib/components/VDataIterator/index.d.mts +12 -56
  77. package/lib/components/VDataTable/VDataTable.mjs +1 -1
  78. package/lib/components/VDataTable/VDataTableFooter.mjs +1 -1
  79. package/lib/components/VDataTable/VDataTableGroupHeaderRow.mjs +1 -1
  80. package/lib/components/VDataTable/VDataTableHeaders.mjs +1 -1
  81. package/lib/components/VDataTable/VDataTableRow.mjs +1 -1
  82. package/lib/components/VDataTable/VDataTableRows.mjs +1 -1
  83. package/lib/components/VDataTable/VDataTableServer.mjs +1 -1
  84. package/lib/components/VDataTable/VDataTableVirtual.mjs +1 -1
  85. package/lib/components/VDataTable/index.d.mts +36 -388
  86. package/lib/components/VDatePicker/VDatePicker.mjs +1 -1
  87. package/lib/components/VDatePicker/VDatePickerMonth.mjs +1 -1
  88. package/lib/components/VDatePicker/VDatePickerMonths.mjs +1 -1
  89. package/lib/components/VDatePicker/VDatePickerYears.mjs +1 -1
  90. package/lib/components/VDatePicker/index.d.mts +24 -276
  91. package/lib/components/VDefaultsProvider/index.d.mts +4 -20
  92. package/lib/components/VDialog/VDialog.mjs +1 -1
  93. package/lib/components/VDialog/__test__/VDialog.spec.cy.mjs +1 -1
  94. package/lib/components/VDialog/index.d.mts +143 -389
  95. package/lib/components/VDivider/index.d.mts +4 -24
  96. package/lib/components/VEmptyState/VEmptyState.mjs +1 -1
  97. package/lib/components/VEmptyState/index.d.mts +4 -66
  98. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +1 -1
  99. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +1 -1
  100. package/lib/components/VExpansionPanel/index.d.mts +23 -159
  101. package/lib/components/VFab/VFab.mjs +1 -1
  102. package/lib/components/VFab/index.d.mts +15 -84
  103. package/lib/components/VField/VField.mjs +4 -4
  104. package/lib/components/VField/VField.mjs.map +1 -1
  105. package/lib/components/VField/VFieldLabel.mjs +1 -1
  106. package/lib/components/VField/index.d.mts +11 -59
  107. package/lib/components/VFileInput/VFileInput.mjs +1 -1
  108. package/lib/components/VFileInput/index.d.mts +71 -256
  109. package/lib/components/VFooter/VFooter.mjs +1 -1
  110. package/lib/components/VFooter/index.d.mts +4 -29
  111. package/lib/components/VForm/index.d.mts +267 -175
  112. package/lib/components/VGrid/VContainer.mjs +1 -1
  113. package/lib/components/VGrid/index.d.mts +16 -118
  114. package/lib/components/VHover/index.d.mts +4 -33
  115. package/lib/components/VIcon/index.d.mts +17 -75
  116. package/lib/components/VImg/VImg.mjs +1 -1
  117. package/lib/components/VImg/index.d.mts +19 -74
  118. package/lib/components/VInfiniteScroll/VInfiniteScroll.mjs +1 -1
  119. package/lib/components/VInfiniteScroll/index.d.mts +4 -46
  120. package/lib/components/VInput/VInput.mjs +4 -4
  121. package/lib/components/VInput/VInput.mjs.map +1 -1
  122. package/lib/components/VInput/index.d.mts +4 -37
  123. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  124. package/lib/components/VItemGroup/index.d.mts +17 -74
  125. package/lib/components/VKbd/index.d.mts +4 -18
  126. package/lib/components/VLabel/index.d.mts +4 -20
  127. package/lib/components/VLayout/index.d.mts +8 -48
  128. package/lib/components/VLazy/VLazy.mjs +1 -1
  129. package/lib/components/VLazy/index.d.mts +4 -31
  130. package/lib/components/VList/VList.mjs +1 -1
  131. package/lib/components/VList/VListChildren.mjs +1 -1
  132. package/lib/components/VList/VListGroup.mjs +1 -1
  133. package/lib/components/VList/VListItem.mjs +15 -9
  134. package/lib/components/VList/VListItem.mjs.map +1 -1
  135. package/lib/components/VList/VListItemAction.mjs +1 -1
  136. package/lib/components/VList/VListItemMedia.mjs +1 -1
  137. package/lib/components/VList/VListItemSubtitle.mjs +1 -1
  138. package/lib/components/VList/index.d.mts +48 -291
  139. package/lib/components/VLocaleProvider/index.d.mts +4 -21
  140. package/lib/components/VMain/index.d.mts +4 -25
  141. package/lib/components/VMenu/VMenu.mjs +4 -4
  142. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  143. package/lib/components/VMenu/index.d.mts +155 -397
  144. package/lib/components/VMessages/index.d.mts +4 -27
  145. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +1 -1
  146. package/lib/components/VNavigationDrawer/index.d.mts +7 -62
  147. package/lib/components/VOtpInput/VOtpInput.mjs +1 -1
  148. package/lib/components/VOtpInput/index.d.mts +7 -52
  149. package/lib/components/VOverlay/VOverlay.mjs +1 -1
  150. package/lib/components/VOverlay/index.d.mts +19 -101
  151. package/lib/components/VPagination/VPagination.mjs +1 -1
  152. package/lib/components/VPagination/index.d.mts +4 -64
  153. package/lib/components/VParallax/VParallax.mjs +1 -1
  154. package/lib/components/VParallax/index.d.mts +4 -27
  155. package/lib/components/VProgressCircular/index.d.mts +4 -34
  156. package/lib/components/VProgressLinear/index.d.mts +4 -54
  157. package/lib/components/VRadio/VRadio.mjs +1 -1
  158. package/lib/components/VRadio/index.d.mts +4 -68
  159. package/lib/components/VRadioGroup/VRadioGroup.mjs +4 -4
  160. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  161. package/lib/components/VRadioGroup/index.d.mts +4 -48
  162. package/lib/components/VRangeSlider/VRangeSlider.mjs +1 -1
  163. package/lib/components/VRangeSlider/index.d.mts +4 -107
  164. package/lib/components/VRating/VRating.mjs +5 -4
  165. package/lib/components/VRating/VRating.mjs.map +1 -1
  166. package/lib/components/VRating/index.d.mts +4 -42
  167. package/lib/components/VResponsive/index.d.mts +4 -29
  168. package/lib/components/VSelect/VSelect.mjs +1 -1
  169. package/lib/components/VSelect/index.d.mts +200 -1352
  170. package/lib/components/VSelectionControl/VSelectionControl.mjs +4 -4
  171. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  172. package/lib/components/VSelectionControl/index.d.mts +10 -37
  173. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +3 -3
  174. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  175. package/lib/components/VSelectionControlGroup/index.d.mts +4 -26
  176. package/lib/components/VSheet/VSheet.mjs +1 -1
  177. package/lib/components/VSheet/index.d.mts +4 -32
  178. package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs +1 -1
  179. package/lib/components/VSkeletonLoader/index.d.mts +4 -28
  180. package/lib/components/VSlideGroup/index.d.mts +21 -77
  181. package/lib/components/VSlider/VSlider.mjs +1 -1
  182. package/lib/components/VSlider/VSliderThumb.mjs +1 -1
  183. package/lib/components/VSlider/index.d.mts +4 -106
  184. package/lib/components/VSnackbar/VSnackbar.mjs +1 -1
  185. package/lib/components/VSnackbar/index.d.mts +152 -398
  186. package/lib/components/VSparkline/VBarline.mjs +3 -4
  187. package/lib/components/VSparkline/VBarline.mjs.map +1 -1
  188. package/lib/components/VSparkline/VSparkline.mjs +1 -1
  189. package/lib/components/VSparkline/VTrendline.mjs +3 -4
  190. package/lib/components/VSparkline/VTrendline.mjs.map +1 -1
  191. package/lib/components/VSparkline/index.d.mts +4 -49
  192. package/lib/components/VSpeedDial/VSpeedDial.mjs +1 -1
  193. package/lib/components/VSpeedDial/index.d.mts +4 -85
  194. package/lib/components/VStepper/VStepper.mjs +1 -1
  195. package/lib/components/VStepper/VStepperItem.mjs +1 -1
  196. package/lib/components/VStepper/VStepperWindow.mjs +1 -1
  197. package/lib/components/VStepper/VStepperWindowItem.mjs +1 -1
  198. package/lib/components/VStepper/index.d.mts +24 -250
  199. package/lib/components/VSwitch/VSwitch.mjs +4 -4
  200. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  201. package/lib/components/VSwitch/index.d.mts +4 -59
  202. package/lib/components/VSystemBar/VSystemBar.mjs +1 -1
  203. package/lib/components/VSystemBar/index.d.mts +4 -28
  204. package/lib/components/VTable/index.d.mts +4 -33
  205. package/lib/components/VTabs/VTab.mjs +1 -1
  206. package/lib/components/VTabs/VTabs.mjs +1 -1
  207. package/lib/components/VTabs/VTabsWindow.mjs +1 -1
  208. package/lib/components/VTabs/VTabsWindowItem.mjs +1 -1
  209. package/lib/components/VTabs/index.d.mts +105 -401
  210. package/lib/components/VTextField/VTextField.mjs +1 -1
  211. package/lib/components/VTextField/index.d.mts +152 -374
  212. package/lib/components/VTextarea/VTextarea.mjs +1 -1
  213. package/lib/components/VTextarea/index.d.mts +71 -244
  214. package/lib/components/VThemeProvider/index.d.mts +4 -20
  215. package/lib/components/VTimeline/VTimeline.mjs +1 -1
  216. package/lib/components/VTimeline/VTimelineDivider.mjs +1 -1
  217. package/lib/components/VTimeline/VTimelineItem.mjs +1 -1
  218. package/lib/components/VTimeline/index.d.mts +8 -75
  219. package/lib/components/VToolbar/VToolbar.mjs +1 -1
  220. package/lib/components/VToolbar/index.d.mts +12 -90
  221. package/lib/components/VTooltip/VTooltip.mjs +4 -4
  222. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  223. package/lib/components/VTooltip/index.d.mts +147 -386
  224. package/lib/components/VValidation/index.d.mts +10 -24
  225. package/lib/components/VVirtualScroll/VVirtualScroll.mjs +1 -1
  226. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs +1 -1
  227. package/lib/components/VVirtualScroll/index.d.mts +4 -15
  228. package/lib/components/VWindow/VWindow.mjs +1 -1
  229. package/lib/components/VWindow/VWindowItem.mjs +1 -1
  230. package/lib/components/VWindow/index.d.mts +15 -54
  231. package/lib/components/index.d.mts +2947 -12121
  232. package/lib/components/transitions/dialog-transition.mjs +1 -2
  233. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  234. package/lib/components/transitions/index.d.mts +64 -309
  235. package/lib/composables/group.mjs +3 -3
  236. package/lib/composables/group.mjs.map +1 -1
  237. package/lib/composables/icons.mjs +1 -1
  238. package/lib/composables/layout.mjs +3 -3
  239. package/lib/composables/layout.mjs.map +1 -1
  240. package/lib/composables/nested/nested.mjs +2 -2
  241. package/lib/composables/nested/nested.mjs.map +1 -1
  242. package/lib/composables/validation.mjs +3 -3
  243. package/lib/composables/validation.mjs.map +1 -1
  244. package/lib/composables/variant.mjs +1 -1
  245. package/lib/composables/virtual.mjs +1 -1
  246. package/lib/composables/virtual.mjs.map +1 -1
  247. package/lib/entry-bundler.mjs +1 -1
  248. package/lib/entry-bundler.mjs.map +1 -1
  249. package/lib/framework.mjs +2 -3
  250. package/lib/framework.mjs.map +1 -1
  251. package/lib/index.d.mts +65 -65
  252. package/lib/labs/VCalendar/VCalendar.mjs +1 -1
  253. package/lib/labs/VCalendar/VCalendarDay.mjs +1 -1
  254. package/lib/labs/VCalendar/index.d.mts +24 -211
  255. package/lib/labs/VDateInput/VDateInput.mjs +1 -1
  256. package/lib/labs/VDateInput/index.d.mts +4 -115
  257. package/lib/labs/VFileUpload/VFileUpload.mjs +1 -1
  258. package/lib/labs/VFileUpload/VFileUploadItem.mjs +1 -1
  259. package/lib/labs/VFileUpload/index.d.mts +8 -195
  260. package/lib/labs/VNumberInput/VNumberInput.mjs +1 -1
  261. package/lib/labs/VNumberInput/index.d.mts +577 -1280
  262. package/lib/labs/VPicker/VPicker.mjs +1 -1
  263. package/lib/labs/VPicker/index.d.mts +8 -63
  264. package/lib/labs/VPullToRefresh/index.d.mts +4 -35
  265. package/lib/labs/VSnackbarQueue/VSnackbarQueue.mjs +1 -1
  266. package/lib/labs/VSnackbarQueue/index.d.mts +156 -453
  267. package/lib/labs/VStepperVertical/VStepperVertical.mjs +1 -1
  268. package/lib/labs/VStepperVertical/VStepperVerticalActions.mjs +1 -1
  269. package/lib/labs/VStepperVertical/VStepperVerticalItem.mjs +1 -1
  270. package/lib/labs/VStepperVertical/index.d.mts +12 -227
  271. package/lib/labs/VTimePicker/VTimePicker.mjs +1 -1
  272. package/lib/labs/VTimePicker/VTimePickerControls.mjs +1 -1
  273. package/lib/labs/VTimePicker/index.d.mts +12 -122
  274. package/lib/labs/VTreeview/VTreeview.mjs +1 -1
  275. package/lib/labs/VTreeview/VTreeviewChildren.mjs +1 -1
  276. package/lib/labs/VTreeview/VTreeviewGroup.mjs +1 -1
  277. package/lib/labs/VTreeview/VTreeviewItem.mjs +1 -1
  278. package/lib/labs/VTreeview/index.d.mts +18 -205
  279. package/lib/labs/components.d.mts +1116 -3200
  280. package/lib/util/getCurrentInstance.mjs +1 -15
  281. package/lib/util/getCurrentInstance.mjs.map +1 -1
  282. package/package.json +5 -4
@@ -8,7 +8,7 @@ interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions
8
8
  type ClassValue = any;
9
9
 
10
10
  declare const VMain: {
11
- new (...args: any[]): vue.CreateComponentPublicInstance<{
11
+ new (...args: any[]): vue.CreateComponentPublicInstanceWithMixins<{
12
12
  style: vue.StyleValue;
13
13
  tag: string;
14
14
  scrollable: boolean;
@@ -29,34 +29,13 @@ declare const VMain: {
29
29
  } | undefined;
30
30
  } & {
31
31
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
32
- }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
33
- style: vue.StyleValue;
34
- tag: string;
35
- scrollable: boolean;
36
- } & {
37
- height?: string | number | undefined;
38
- width?: string | number | undefined;
39
- maxHeight?: string | number | undefined;
40
- maxWidth?: string | number | undefined;
41
- minHeight?: string | number | undefined;
42
- minWidth?: string | number | undefined;
43
- class?: any;
44
- } & {
45
- $children?: vue.VNodeChild | {
46
- default?: (() => vue.VNodeChild) | undefined;
47
- } | (() => vue.VNodeChild);
48
- 'v-slots'?: {
49
- default?: false | (() => vue.VNodeChild) | undefined;
50
- } | undefined;
51
- } & {
52
- "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
53
- }, {
32
+ }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, {
54
33
  style: vue.StyleValue;
55
34
  tag: string;
56
35
  scrollable: boolean;
57
36
  }, true, {}, vue.SlotsType<Partial<{
58
37
  default: () => vue.VNode[];
59
- }>>, {
38
+ }>>, vue.GlobalComponents, vue.GlobalDirectives, string, {}, any, vue.ComponentProvideOptions, {
60
39
  P: {};
61
40
  B: {};
62
41
  D: {};
@@ -119,7 +98,7 @@ declare const VMain: {
119
98
  scrollable: boolean;
120
99
  }, {}, string, vue.SlotsType<Partial<{
121
100
  default: () => vue.VNode[];
122
- }>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
101
+ }>>, vue.GlobalComponents, vue.GlobalDirectives, string, vue.ComponentProvideOptions> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
123
102
  tag: Omit<{
124
103
  type: StringConstructor;
125
104
  default: string;
@@ -1,4 +1,4 @@
1
- import { mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
1
+ import { createVNode as _createVNode, mergeProps as _mergeProps } from "vue";
2
2
  // Styles
3
3
  import "./VMenu.css";
4
4
 
@@ -11,9 +11,9 @@ import { forwardRefs } from "../../composables/forwardRefs.mjs";
11
11
  import { useRtl } from "../../composables/locale.mjs";
12
12
  import { useProxiedModel } from "../../composables/proxiedModel.mjs";
13
13
  import { useScopeId } from "../../composables/scopeId.mjs"; // Utilities
14
- import { computed, inject, mergeProps, nextTick, onBeforeUnmount, onDeactivated, provide, ref, shallowRef, watch } from 'vue';
14
+ import { computed, inject, mergeProps, nextTick, onBeforeUnmount, onDeactivated, provide, ref, shallowRef, useId, watch } from 'vue';
15
15
  import { VMenuSymbol } from "./shared.mjs";
16
- import { focusableChildren, focusChild, genericComponent, getNextElement, getUid, IN_BROWSER, isClickInsideElement, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
16
+ import { focusableChildren, focusChild, genericComponent, getNextElement, IN_BROWSER, isClickInsideElement, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
17
17
  export const makeVMenuProps = propsFactory({
18
18
  // TODO
19
19
  // disableKeys: Boolean,
@@ -49,7 +49,7 @@ export const VMenu = genericComponent()({
49
49
  const {
50
50
  isRtl
51
51
  } = useRtl();
52
- const uid = getUid();
52
+ const uid = useId();
53
53
  const id = computed(() => props.id || `v-menu-${uid}`);
54
54
  const overlay = ref();
55
55
  const parent = inject(VMenuSymbol, null);
@@ -1 +1 @@
1
- {"version":3,"file":"VMenu.mjs","names":["VDialogTransition","VDefaultsProvider","VOverlay","makeVOverlayProps","forwardRefs","useRtl","useProxiedModel","useScopeId","computed","inject","mergeProps","nextTick","onBeforeUnmount","onDeactivated","provide","ref","shallowRef","watch","VMenuSymbol","focusableChildren","focusChild","genericComponent","getNextElement","getUid","IN_BROWSER","isClickInsideElement","omit","propsFactory","useRender","makeVMenuProps","id","String","submenu","Boolean","closeDelay","closeOnContentClick","locationStrategy","location","undefined","openDelay","scrim","scrollStrategy","transition","component","VMenu","name","props","emits","value","setup","_ref","slots","isActive","scopeId","isRtl","uid","overlay","parent","openChildren","Set","register","add","unregister","delete","closeParents","e","setTimeout","size","persistent","contentEl","document","removeEventListener","onFocusIn","before","relatedTarget","after","target","globalTop","includes","contains","focusable","focus","val","addEventListener","once","immediate","onClickOutside","onKeydown","disabled","key","HTMLTextAreaElement","HTMLInputElement","closest","preventDefault","nextElement","shiftKey","el","tabIndex","activatorEl","onActivatorKeydown","stopImmediatePropagation","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 { useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport {\n computed,\n inject,\n mergeProps,\n nextTick,\n onBeforeUnmount,\n onDeactivated,\n provide,\n ref,\n shallowRef,\n watch,\n} from 'vue'\nimport { VMenuSymbol } from './shared'\nimport {\n focusableChildren,\n focusChild,\n genericComponent,\n getNextElement,\n getUid,\n IN_BROWSER,\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 submenu: Boolean,\n\n ...omit(makeVOverlayProps({\n closeDelay: 250,\n closeOnContentClick: true,\n locationStrategy: 'connected' as const,\n location: undefined,\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 const { isRtl } = useRtl()\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(new Set<number>())\n provide(VMenuSymbol, {\n register () {\n openChildren.value.add(uid)\n },\n unregister () {\n openChildren.value.delete(uid)\n },\n closeParents (e) {\n setTimeout(() => {\n if (!openChildren.value.size &&\n !props.persistent &&\n (e == null || (overlay.value?.contentEl && !isClickInsideElement(e, overlay.value.contentEl)))\n ) {\n isActive.value = false\n parent?.closeParents()\n }\n }, 40)\n },\n })\n\n onBeforeUnmount(() => {\n parent?.unregister()\n document.removeEventListener('focusin', onFocusIn)\n })\n onDeactivated(() => isActive.value = false)\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 if (IN_BROWSER) {\n document.addEventListener('focusin', onFocusIn, { once: true })\n }\n } else {\n parent?.unregister()\n if (IN_BROWSER) {\n document.removeEventListener('focusin', onFocusIn)\n }\n }\n }, { immediate: true })\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' || (e.key === 'Enter' && !props.closeOnContentClick)) {\n if (\n e.key === 'Enter' &&\n ((e.target instanceof HTMLTextAreaElement) ||\n (e.target instanceof HTMLInputElement && !!e.target.closest('form')))\n ) return\n if (e.key === 'Enter') e.preventDefault()\n\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 (props.submenu && e.key === (isRtl.value ? 'ArrowRight' : 'ArrowLeft')) {\n isActive.value = false\n overlay.value?.activatorEl?.focus()\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 e.stopImmediatePropagation()\n focusChild(el, 'next')\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n e.stopImmediatePropagation()\n focusChild(el, 'prev')\n } else if (props.submenu) {\n if (e.key === (isRtl.value ? 'ArrowRight' : 'ArrowLeft')) {\n isActive.value = false\n } else if (e.key === (isRtl.value ? 'ArrowLeft' : 'ArrowRight')) {\n e.preventDefault()\n focusChild(el, 'first')\n }\n }\n } else if (\n props.submenu\n ? e.key === (isRtl.value ? 'ArrowLeft' : 'ArrowRight')\n : ['ArrowDown', 'ArrowUp'].includes(e.key)\n ) {\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 location={ props.location ?? (props.submenu ? 'end' : 'bottom') }\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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","ignoreList":[]}
1
+ {"version":3,"file":"VMenu.mjs","names":["VDialogTransition","VDefaultsProvider","VOverlay","makeVOverlayProps","forwardRefs","useRtl","useProxiedModel","useScopeId","computed","inject","mergeProps","nextTick","onBeforeUnmount","onDeactivated","provide","ref","shallowRef","useId","watch","VMenuSymbol","focusableChildren","focusChild","genericComponent","getNextElement","IN_BROWSER","isClickInsideElement","omit","propsFactory","useRender","makeVMenuProps","id","String","submenu","Boolean","closeDelay","closeOnContentClick","locationStrategy","location","undefined","openDelay","scrim","scrollStrategy","transition","component","VMenu","name","props","emits","value","setup","_ref","slots","isActive","scopeId","isRtl","uid","overlay","parent","openChildren","Set","register","add","unregister","delete","closeParents","e","setTimeout","size","persistent","contentEl","document","removeEventListener","onFocusIn","before","relatedTarget","after","target","globalTop","includes","contains","focusable","focus","val","addEventListener","once","immediate","onClickOutside","onKeydown","disabled","key","HTMLTextAreaElement","HTMLInputElement","closest","preventDefault","nextElement","shiftKey","el","tabIndex","activatorEl","onActivatorKeydown","stopImmediatePropagation","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 { useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useScopeId } from '@/composables/scopeId'\n\n// Utilities\nimport {\n computed,\n inject,\n mergeProps,\n nextTick,\n onBeforeUnmount,\n onDeactivated,\n provide,\n ref,\n shallowRef,\n useId,\n watch,\n} from 'vue'\nimport { VMenuSymbol } from './shared'\nimport {\n focusableChildren,\n focusChild,\n genericComponent,\n getNextElement,\n IN_BROWSER,\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 submenu: Boolean,\n\n ...omit(makeVOverlayProps({\n closeDelay: 250,\n closeOnContentClick: true,\n locationStrategy: 'connected' as const,\n location: undefined,\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 const { isRtl } = useRtl()\n\n const uid = useId()\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(new Set<string>())\n provide(VMenuSymbol, {\n register () {\n openChildren.value.add(uid)\n },\n unregister () {\n openChildren.value.delete(uid)\n },\n closeParents (e) {\n setTimeout(() => {\n if (!openChildren.value.size &&\n !props.persistent &&\n (e == null || (overlay.value?.contentEl && !isClickInsideElement(e, overlay.value.contentEl)))\n ) {\n isActive.value = false\n parent?.closeParents()\n }\n }, 40)\n },\n })\n\n onBeforeUnmount(() => {\n parent?.unregister()\n document.removeEventListener('focusin', onFocusIn)\n })\n onDeactivated(() => isActive.value = false)\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 if (IN_BROWSER) {\n document.addEventListener('focusin', onFocusIn, { once: true })\n }\n } else {\n parent?.unregister()\n if (IN_BROWSER) {\n document.removeEventListener('focusin', onFocusIn)\n }\n }\n }, { immediate: true })\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' || (e.key === 'Enter' && !props.closeOnContentClick)) {\n if (\n e.key === 'Enter' &&\n ((e.target instanceof HTMLTextAreaElement) ||\n (e.target instanceof HTMLInputElement && !!e.target.closest('form')))\n ) return\n if (e.key === 'Enter') e.preventDefault()\n\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 (props.submenu && e.key === (isRtl.value ? 'ArrowRight' : 'ArrowLeft')) {\n isActive.value = false\n overlay.value?.activatorEl?.focus()\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 e.stopImmediatePropagation()\n focusChild(el, 'next')\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n e.stopImmediatePropagation()\n focusChild(el, 'prev')\n } else if (props.submenu) {\n if (e.key === (isRtl.value ? 'ArrowRight' : 'ArrowLeft')) {\n isActive.value = false\n } else if (e.key === (isRtl.value ? 'ArrowLeft' : 'ArrowRight')) {\n e.preventDefault()\n focusChild(el, 'first')\n }\n }\n } else if (\n props.submenu\n ? e.key === (isRtl.value ? 'ArrowLeft' : 'ArrowRight')\n : ['ArrowDown', 'ArrowUp'].includes(e.key)\n ) {\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 location={ props.location ?? (props.submenu ? 'end' : 'bottom') }\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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","ignoreList":[]}