@vuetify/nightly 3.0.0-beta.13 → 3.0.0-beta.15

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 (840) hide show
  1. package/CHANGELOG.md +23 -5
  2. package/dist/json/importMap.json +26 -30
  3. package/dist/vuetify.css +262 -173
  4. package/dist/vuetify.d.ts +16645 -7306
  5. package/dist/vuetify.esm.js +1040 -2004
  6. package/dist/vuetify.esm.js.map +1 -1
  7. package/dist/vuetify.js +1038 -2003
  8. package/dist/vuetify.js.map +1 -1
  9. package/dist/vuetify.min.css +2 -2
  10. package/dist/vuetify.min.js +531 -537
  11. package/dist/vuetify.min.js.map +1 -1
  12. package/lib/blueprints/index.d.ts +24 -32
  13. package/lib/blueprints/index.mjs.map +1 -1
  14. package/lib/blueprints/md1.d.ts +24 -32
  15. package/lib/blueprints/md1.mjs +3 -1
  16. package/lib/blueprints/md1.mjs.map +1 -1
  17. package/lib/blueprints/md2.d.ts +24 -32
  18. package/lib/blueprints/md2.mjs +3 -1
  19. package/lib/blueprints/md2.mjs.map +1 -1
  20. package/lib/blueprints/md3.d.ts +24 -32
  21. package/lib/blueprints/md3.mjs +2 -2
  22. package/lib/blueprints/md3.mjs.map +1 -1
  23. package/lib/components/VAlert/VAlert.mjs +2 -9
  24. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  25. package/lib/components/VAlert/VAlertTitle.mjs.map +1 -1
  26. package/lib/components/VAlert/index.d.ts +7 -5
  27. package/lib/components/VAlert/index.mjs.map +1 -1
  28. package/lib/components/VApp/VApp.mjs +5 -7
  29. package/lib/components/VApp/VApp.mjs.map +1 -1
  30. package/lib/components/VApp/index.d.ts +4 -2
  31. package/lib/components/VApp/index.mjs.map +1 -1
  32. package/lib/components/VAppBar/VAppBar.mjs +4 -8
  33. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  34. package/lib/components/VAppBar/VAppBarNavIcon.mjs +0 -4
  35. package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
  36. package/lib/components/VAppBar/VAppBarTitle.mjs +2 -4
  37. package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
  38. package/lib/components/VAppBar/index.d.ts +7 -3
  39. package/lib/components/VAppBar/index.mjs.map +1 -1
  40. package/lib/components/VAutocomplete/VAutocomplete.css +18 -1
  41. package/lib/components/VAutocomplete/VAutocomplete.mjs +16 -35
  42. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  43. package/lib/components/VAutocomplete/VAutocomplete.sass +11 -1
  44. package/lib/components/VAutocomplete/_variables.scss +1 -0
  45. package/lib/components/VAutocomplete/index.d.ts +267 -376
  46. package/lib/components/VAutocomplete/index.mjs.map +1 -1
  47. package/lib/components/VAvatar/VAvatar.mjs +3 -7
  48. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  49. package/lib/components/VAvatar/index.d.ts +5 -3
  50. package/lib/components/VAvatar/index.mjs.map +1 -1
  51. package/lib/components/VBadge/VBadge.mjs +2 -6
  52. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  53. package/lib/components/VBadge/index.mjs.map +1 -1
  54. package/lib/components/VBanner/VBanner.mjs +5 -7
  55. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  56. package/lib/components/VBanner/VBannerActions.mjs +0 -4
  57. package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
  58. package/lib/components/VBanner/VBannerText.mjs.map +1 -1
  59. package/lib/components/VBanner/index.d.ts +7 -3
  60. package/lib/components/VBanner/index.mjs.map +1 -1
  61. package/lib/components/VBottomNavigation/VBottomNavigation.mjs +2 -5
  62. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  63. package/lib/components/VBottomNavigation/index.d.ts +5 -3
  64. package/lib/components/VBottomNavigation/index.mjs.map +1 -1
  65. package/lib/components/VBottomSheet/VBottomSheet.mjs +5 -5
  66. package/lib/components/VBottomSheet/VBottomSheet.mjs.map +1 -1
  67. package/lib/components/VBottomSheet/index.mjs.map +1 -1
  68. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +5 -9
  69. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  70. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
  71. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +0 -5
  72. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  73. package/lib/components/VBreadcrumbs/index.d.ts +50 -40
  74. package/lib/components/VBreadcrumbs/index.mjs.map +1 -1
  75. package/lib/components/VBtn/VBtn.mjs +2 -10
  76. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  77. package/lib/components/VBtn/index.d.ts +5 -3
  78. package/lib/components/VBtn/index.mjs.map +1 -1
  79. package/lib/components/VBtnGroup/VBtnGroup.mjs +2 -4
  80. package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
  81. package/lib/components/VBtnGroup/index.d.ts +6 -3
  82. package/lib/components/VBtnGroup/index.mjs.map +1 -1
  83. package/lib/components/VBtnToggle/VBtnToggle.mjs +2 -7
  84. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  85. package/lib/components/VBtnToggle/index.d.ts +20 -25
  86. package/lib/components/VBtnToggle/index.mjs.map +1 -1
  87. package/lib/components/VCalendar/VCalendar.mjs +6 -67
  88. package/lib/components/VCalendar/VCalendar.mjs.map +1 -1
  89. package/lib/components/VCalendar/VCalendarCategory.mjs +7 -18
  90. package/lib/components/VCalendar/VCalendarCategory.mjs.map +1 -1
  91. package/lib/components/VCalendar/VCalendarDaily.mjs +3 -34
  92. package/lib/components/VCalendar/VCalendarDaily.mjs.map +1 -1
  93. package/lib/components/VCalendar/VCalendarMonthly.mjs +3 -7
  94. package/lib/components/VCalendar/VCalendarMonthly.mjs.map +1 -1
  95. package/lib/components/VCalendar/VCalendarWeekly.mjs +3 -32
  96. package/lib/components/VCalendar/VCalendarWeekly.mjs.map +1 -1
  97. package/lib/components/VCalendar/index.mjs.map +1 -1
  98. package/lib/components/VCalendar/mixins/calendar-base.mjs +1 -19
  99. package/lib/components/VCalendar/mixins/calendar-base.mjs.map +1 -1
  100. package/lib/components/VCalendar/mixins/calendar-with-events.mjs +14 -78
  101. package/lib/components/VCalendar/mixins/calendar-with-events.mjs.map +1 -1
  102. package/lib/components/VCalendar/mixins/calendar-with-intervals.mjs +0 -30
  103. package/lib/components/VCalendar/mixins/calendar-with-intervals.mjs.map +1 -1
  104. package/lib/components/VCalendar/mixins/mouse.mjs +7 -17
  105. package/lib/components/VCalendar/mixins/mouse.mjs.map +1 -1
  106. package/lib/components/VCalendar/mixins/times.mjs +1 -9
  107. package/lib/components/VCalendar/mixins/times.mjs.map +1 -1
  108. package/lib/components/VCalendar/modes/column.mjs +0 -3
  109. package/lib/components/VCalendar/modes/column.mjs.map +1 -1
  110. package/lib/components/VCalendar/modes/common.mjs +0 -14
  111. package/lib/components/VCalendar/modes/common.mjs.map +1 -1
  112. package/lib/components/VCalendar/modes/index.mjs +0 -1
  113. package/lib/components/VCalendar/modes/index.mjs.map +1 -1
  114. package/lib/components/VCalendar/modes/stack.mjs +3 -45
  115. package/lib/components/VCalendar/modes/stack.mjs.map +1 -1
  116. package/lib/components/VCalendar/util/events.mjs +0 -1
  117. package/lib/components/VCalendar/util/events.mjs.map +1 -1
  118. package/lib/components/VCalendar/util/parser.mjs +3 -4
  119. package/lib/components/VCalendar/util/parser.mjs.map +1 -1
  120. package/lib/components/VCalendar/util/props.mjs +0 -13
  121. package/lib/components/VCalendar/util/props.mjs.map +1 -1
  122. package/lib/components/VCalendar/util/timestamp.mjs +2 -64
  123. package/lib/components/VCalendar/util/timestamp.mjs.map +1 -1
  124. package/lib/components/VCard/VCard.mjs +3 -8
  125. package/lib/components/VCard/VCard.mjs.map +1 -1
  126. package/lib/components/VCard/VCardActions.mjs +0 -4
  127. package/lib/components/VCard/VCardActions.mjs.map +1 -1
  128. package/lib/components/VCard/VCardItem.mjs +0 -5
  129. package/lib/components/VCard/VCardItem.mjs.map +1 -1
  130. package/lib/components/VCard/VCardSubtitle.mjs.map +1 -1
  131. package/lib/components/VCard/VCardText.mjs.map +1 -1
  132. package/lib/components/VCard/VCardTitle.mjs.map +1 -1
  133. package/lib/components/VCard/index.d.ts +13 -6
  134. package/lib/components/VCard/index.mjs.map +1 -1
  135. package/lib/components/VCarousel/VCarousel.mjs +5 -9
  136. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  137. package/lib/components/VCarousel/VCarouselItem.mjs +0 -3
  138. package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
  139. package/lib/components/VCarousel/index.d.ts +1 -0
  140. package/lib/components/VCarousel/index.mjs.map +1 -1
  141. package/lib/components/VCheckbox/VCheckbox.mjs +6 -6
  142. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  143. package/lib/components/VCheckbox/VCheckboxBtn.mjs +7 -15
  144. package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
  145. package/lib/components/VCheckbox/index.d.ts +24 -22
  146. package/lib/components/VCheckbox/index.mjs.map +1 -1
  147. package/lib/components/VChip/VChip.css +25 -0
  148. package/lib/components/VChip/VChip.mjs +2 -10
  149. package/lib/components/VChip/VChip.mjs.map +1 -1
  150. package/lib/components/VChip/VChip.sass +1 -0
  151. package/lib/components/VChip/index.d.ts +5 -3
  152. package/lib/components/VChip/index.mjs.map +1 -1
  153. package/lib/components/VChipGroup/VChipGroup.mjs +5 -6
  154. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  155. package/lib/components/VChipGroup/index.mjs.map +1 -1
  156. package/lib/components/VCode/index.d.ts +1 -0
  157. package/lib/components/VCode/index.mjs.map +1 -1
  158. package/lib/components/VColorPicker/VColorPicker.mjs +9 -12
  159. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  160. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +5 -20
  161. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  162. package/lib/components/VColorPicker/VColorPickerEdit.mjs +6 -10
  163. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  164. package/lib/components/VColorPicker/VColorPickerPreview.mjs +6 -8
  165. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  166. package/lib/components/VColorPicker/VColorPickerSwatches.mjs +2 -6
  167. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  168. package/lib/components/VColorPicker/index.mjs.map +1 -1
  169. package/lib/components/VColorPicker/util/index.mjs +24 -26
  170. package/lib/components/VColorPicker/util/index.mjs.map +1 -1
  171. package/lib/components/VCombobox/VCombobox.css +13 -0
  172. package/lib/components/VCombobox/VCombobox.mjs +23 -50
  173. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  174. package/lib/components/VCombobox/VCombobox.sass +5 -0
  175. package/lib/components/VCombobox/_variables.scss +1 -0
  176. package/lib/components/VCombobox/index.d.ts +275 -384
  177. package/lib/components/VCombobox/index.mjs.map +1 -1
  178. package/lib/components/VCounter/VCounter.mjs +2 -5
  179. package/lib/components/VCounter/VCounter.mjs.map +1 -1
  180. package/lib/components/VCounter/index.d.ts +1 -0
  181. package/lib/components/VCounter/index.mjs.map +1 -1
  182. package/lib/components/VData/VData.mjs +9 -67
  183. package/lib/components/VData/VData.mjs.map +1 -1
  184. package/lib/components/VData/index.mjs.map +1 -1
  185. package/lib/components/VDataIterator/VDataFooter.mjs +6 -25
  186. package/lib/components/VDataIterator/VDataFooter.mjs.map +1 -1
  187. package/lib/components/VDataIterator/VDataIterator.mjs +12 -51
  188. package/lib/components/VDataIterator/VDataIterator.mjs.map +1 -1
  189. package/lib/components/VDataIterator/index.mjs.map +1 -1
  190. package/lib/components/VDataTable/MobileRow.mjs +3 -8
  191. package/lib/components/VDataTable/MobileRow.mjs.map +1 -1
  192. package/lib/components/VDataTable/Row.mjs +1 -8
  193. package/lib/components/VDataTable/Row.mjs.map +1 -1
  194. package/lib/components/VDataTable/RowGroup.mjs +1 -7
  195. package/lib/components/VDataTable/RowGroup.mjs.map +1 -1
  196. package/lib/components/VDataTable/VDataTable.mjs +42 -90
  197. package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
  198. package/lib/components/VDataTable/VDataTableHeader.mjs +6 -10
  199. package/lib/components/VDataTable/VDataTableHeader.mjs.map +1 -1
  200. package/lib/components/VDataTable/VDataTableHeaderDesktop.mjs +0 -18
  201. package/lib/components/VDataTable/VDataTableHeaderDesktop.mjs.map +1 -1
  202. package/lib/components/VDataTable/VDataTableHeaderMobile.mjs +0 -9
  203. package/lib/components/VDataTable/VDataTableHeaderMobile.mjs.map +1 -1
  204. package/lib/components/VDataTable/VEditDialog.mjs +3 -17
  205. package/lib/components/VDataTable/VEditDialog.mjs.map +1 -1
  206. package/lib/components/VDataTable/VVirtualTable.mjs +3 -28
  207. package/lib/components/VDataTable/VVirtualTable.mjs.map +1 -1
  208. package/lib/components/VDataTable/index.mjs +0 -1
  209. package/lib/components/VDataTable/index.mjs.map +1 -1
  210. package/lib/components/VDataTable/mixins/header.mjs +0 -5
  211. package/lib/components/VDataTable/mixins/header.mjs.map +1 -1
  212. package/lib/components/VDatePicker/VDatePicker.mjs +2 -69
  213. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  214. package/lib/components/VDatePicker/VDatePickerDateTable.mjs +1 -29
  215. package/lib/components/VDatePicker/VDatePickerDateTable.mjs.map +1 -1
  216. package/lib/components/VDatePicker/VDatePickerHeader.mjs +4 -17
  217. package/lib/components/VDatePicker/VDatePickerHeader.mjs.map +1 -1
  218. package/lib/components/VDatePicker/VDatePickerMonthTable.mjs +1 -12
  219. package/lib/components/VDatePicker/VDatePickerMonthTable.mjs.map +1 -1
  220. package/lib/components/VDatePicker/VDatePickerTitle.mjs +4 -15
  221. package/lib/components/VDatePicker/VDatePickerTitle.mjs.map +1 -1
  222. package/lib/components/VDatePicker/VDatePickerYears.mjs +4 -18
  223. package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
  224. package/lib/components/VDatePicker/index.mjs.map +1 -1
  225. package/lib/components/VDatePicker/mixins/date-picker-table.mjs +6 -33
  226. package/lib/components/VDatePicker/mixins/date-picker-table.mjs.map +1 -1
  227. package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs +0 -5
  228. package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs.map +1 -1
  229. package/lib/components/VDatePicker/util/eventHelpers.mjs +2 -3
  230. package/lib/components/VDatePicker/util/eventHelpers.mjs.map +1 -1
  231. package/lib/components/VDatePicker/util/index.mjs +0 -1
  232. package/lib/components/VDatePicker/util/index.mjs.map +1 -1
  233. package/lib/components/VDatePicker/util/isDateAllowed.mjs +1 -1
  234. package/lib/components/VDatePicker/util/isDateAllowed.mjs.map +1 -1
  235. package/lib/components/VDatePicker/util/monthChange.mjs +0 -3
  236. package/lib/components/VDatePicker/util/monthChange.mjs.map +1 -1
  237. package/lib/components/VDatePicker/util/pad.mjs +1 -6
  238. package/lib/components/VDatePicker/util/pad.mjs.map +1 -1
  239. package/lib/components/VDatePicker/util/sanitizeDateString.mjs.map +1 -1
  240. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs +2 -4
  241. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
  242. package/lib/components/VDefaultsProvider/index.d.ts +1 -0
  243. package/lib/components/VDefaultsProvider/index.mjs.map +1 -1
  244. package/lib/components/VDialog/VDialog.mjs +7 -20
  245. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  246. package/lib/components/VDialog/index.d.ts +1208 -188
  247. package/lib/components/VDialog/index.mjs.map +1 -1
  248. package/lib/components/VDivider/VDivider.mjs +2 -8
  249. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  250. package/lib/components/VDivider/index.d.ts +1 -0
  251. package/lib/components/VDivider/index.mjs.map +1 -1
  252. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +0 -5
  253. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  254. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +2 -6
  255. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
  256. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +3 -8
  257. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  258. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +2 -5
  259. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  260. package/lib/components/VExpansionPanel/index.mjs.map +1 -1
  261. package/lib/components/VField/VField.css +1 -1
  262. package/lib/components/VField/VField.mjs +4 -11
  263. package/lib/components/VField/VField.mjs.map +1 -1
  264. package/lib/components/VField/VField.sass +0 -1
  265. package/lib/components/VField/VFieldLabel.mjs +0 -3
  266. package/lib/components/VField/VFieldLabel.mjs.map +1 -1
  267. package/lib/components/VField/index.d.ts +33 -59
  268. package/lib/components/VField/index.mjs.map +1 -1
  269. package/lib/components/VFileInput/VFileInput.css +16 -0
  270. package/lib/components/VFileInput/VFileInput.mjs +6 -20
  271. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  272. package/lib/components/VFileInput/VFileInput.sass +10 -0
  273. package/lib/components/VFileInput/_variables.scss +2 -0
  274. package/lib/components/VFileInput/index.d.ts +233 -5
  275. package/lib/components/VFileInput/index.mjs.map +1 -1
  276. package/lib/components/VFooter/VFooter.mjs +2 -4
  277. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  278. package/lib/components/VFooter/index.d.ts +1 -0
  279. package/lib/components/VFooter/index.mjs.map +1 -1
  280. package/lib/components/VForm/VForm.mjs +2 -13
  281. package/lib/components/VForm/VForm.mjs.map +1 -1
  282. package/lib/components/VForm/index.d.ts +1 -1
  283. package/lib/components/VForm/index.mjs.map +1 -1
  284. package/lib/components/VGrid/VCol.mjs +8 -23
  285. package/lib/components/VGrid/VCol.mjs.map +1 -1
  286. package/lib/components/VGrid/VContainer.mjs +2 -4
  287. package/lib/components/VGrid/VContainer.mjs.map +1 -1
  288. package/lib/components/VGrid/VRow.mjs +6 -24
  289. package/lib/components/VGrid/VRow.mjs.map +1 -1
  290. package/lib/components/VGrid/VSpacer.mjs.map +1 -1
  291. package/lib/components/VGrid/index.d.ts +2 -0
  292. package/lib/components/VGrid/index.mjs.map +1 -1
  293. package/lib/components/VHover/VHover.mjs +0 -4
  294. package/lib/components/VHover/VHover.mjs.map +1 -1
  295. package/lib/components/VHover/index.d.ts +1 -0
  296. package/lib/components/VHover/index.mjs.map +1 -1
  297. package/lib/components/VIcon/VIcon.mjs +2 -8
  298. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  299. package/lib/components/VIcon/index.d.ts +1 -0
  300. package/lib/components/VIcon/index.mjs.map +1 -1
  301. package/lib/components/VImg/VImg.mjs +9 -35
  302. package/lib/components/VImg/VImg.mjs.map +1 -1
  303. package/lib/components/VImg/index.d.ts +8 -4
  304. package/lib/components/VImg/index.mjs.map +1 -1
  305. package/lib/components/VInput/InputIcon.mjs +0 -2
  306. package/lib/components/VInput/InputIcon.mjs.map +1 -1
  307. package/lib/components/VInput/VInput.mjs +5 -9
  308. package/lib/components/VInput/VInput.mjs.map +1 -1
  309. package/lib/components/VInput/index.d.ts +29 -45
  310. package/lib/components/VInput/index.mjs.map +1 -1
  311. package/lib/components/VItemGroup/VItem.mjs +0 -5
  312. package/lib/components/VItemGroup/VItem.mjs.map +1 -1
  313. package/lib/components/VItemGroup/VItemGroup.mjs +4 -6
  314. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  315. package/lib/components/VItemGroup/index.d.ts +19 -25
  316. package/lib/components/VItemGroup/index.mjs.map +1 -1
  317. package/lib/components/VKbd/index.d.ts +1 -0
  318. package/lib/components/VKbd/index.mjs.map +1 -1
  319. package/lib/components/VLabel/VLabel.mjs +2 -5
  320. package/lib/components/VLabel/VLabel.mjs.map +1 -1
  321. package/lib/components/VLabel/index.mjs.map +1 -1
  322. package/lib/components/VLayout/VLayout.mjs +2 -5
  323. package/lib/components/VLayout/VLayout.mjs.map +1 -1
  324. package/lib/components/VLayout/VLayoutItem.mjs +2 -6
  325. package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
  326. package/lib/components/VLayout/index.d.ts +5 -2
  327. package/lib/components/VLayout/index.mjs.map +1 -1
  328. package/lib/components/VLazy/VLazy.mjs +0 -8
  329. package/lib/components/VLazy/VLazy.mjs.map +1 -1
  330. package/lib/components/VLazy/index.d.ts +1 -0
  331. package/lib/components/VLazy/index.mjs.map +1 -1
  332. package/lib/components/VList/VList.mjs +2 -11
  333. package/lib/components/VList/VList.mjs.map +1 -1
  334. package/lib/components/VList/VListChildren.mjs +12 -21
  335. package/lib/components/VList/VListChildren.mjs.map +1 -1
  336. package/lib/components/VList/VListGroup.mjs +1 -12
  337. package/lib/components/VList/VListGroup.mjs.map +1 -1
  338. package/lib/components/VList/VListImg.mjs.map +1 -1
  339. package/lib/components/VList/VListItem.mjs +2 -12
  340. package/lib/components/VList/VListItem.mjs.map +1 -1
  341. package/lib/components/VList/VListItemAction.mjs +0 -3
  342. package/lib/components/VList/VListItemAction.mjs.map +1 -1
  343. package/lib/components/VList/VListItemMedia.mjs +0 -3
  344. package/lib/components/VList/VListItemMedia.mjs.map +1 -1
  345. package/lib/components/VList/VListItemSubtitle.mjs.map +1 -1
  346. package/lib/components/VList/VListItemTitle.mjs.map +1 -1
  347. package/lib/components/VList/VListSubheader.mjs +0 -4
  348. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  349. package/lib/components/VList/index.d.ts +147 -170
  350. package/lib/components/VList/index.mjs.map +1 -1
  351. package/lib/components/VList/list.mjs +5 -2
  352. package/lib/components/VList/list.mjs.map +1 -1
  353. package/lib/components/VLocaleProvider/VLocaleProvider.mjs +4 -9
  354. package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
  355. package/lib/components/VLocaleProvider/index.d.ts +1 -0
  356. package/lib/components/VLocaleProvider/index.mjs.map +1 -1
  357. package/lib/components/VMain/VMain.mjs +2 -5
  358. package/lib/components/VMain/VMain.mjs.map +1 -1
  359. package/lib/components/VMain/index.d.ts +1 -0
  360. package/lib/components/VMain/index.mjs.map +1 -1
  361. package/lib/components/VMenu/VMenu.mjs +3 -14
  362. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  363. package/lib/components/VMenu/index.d.ts +1203 -183
  364. package/lib/components/VMenu/index.mjs.map +1 -1
  365. package/lib/components/VMenu/shared.mjs.map +1 -1
  366. package/lib/components/VMessages/VMessages.mjs +2 -6
  367. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  368. package/lib/components/VMessages/index.d.ts +1 -0
  369. package/lib/components/VMessages/index.mjs.map +1 -1
  370. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +6 -11
  371. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  372. package/lib/components/VNavigationDrawer/index.mjs.map +1 -1
  373. package/lib/components/VNavigationDrawer/sticky.mjs +0 -4
  374. package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -1
  375. package/lib/components/VNavigationDrawer/touch.mjs +2 -15
  376. package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
  377. package/lib/components/VNoSsr/VNoSsr.mjs +0 -4
  378. package/lib/components/VNoSsr/VNoSsr.mjs.map +1 -1
  379. package/lib/components/VNoSsr/index.d.ts +1 -0
  380. package/lib/components/VNoSsr/index.mjs.map +1 -1
  381. package/lib/components/VOtpInput/VOtpInput.mjs +7 -58
  382. package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
  383. package/lib/components/VOtpInput/index.mjs.map +1 -1
  384. package/lib/components/VOverflowBtn/VOverflowBtn.mjs +7 -19
  385. package/lib/components/VOverflowBtn/VOverflowBtn.mjs.map +1 -1
  386. package/lib/components/VOverflowBtn/index.mjs.map +1 -1
  387. package/lib/components/VOverlay/VOverlay.mjs +8 -17
  388. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  389. package/lib/components/VOverlay/index.d.ts +32 -60
  390. package/lib/components/VOverlay/index.mjs.map +1 -1
  391. package/lib/components/VOverlay/locationStrategies.mjs +23 -56
  392. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  393. package/lib/components/VOverlay/requestNewFrame.mjs +1 -2
  394. package/lib/components/VOverlay/requestNewFrame.mjs.map +1 -1
  395. package/lib/components/VOverlay/scrollStrategies.mjs +2 -18
  396. package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
  397. package/lib/components/VOverlay/useActivator.mjs +6 -32
  398. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  399. package/lib/components/VOverlay/util/point.mjs +3 -4
  400. package/lib/components/VOverlay/util/point.mjs.map +1 -1
  401. package/lib/components/VPagination/VPagination.mjs +11 -23
  402. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  403. package/lib/components/VPagination/index.d.ts +5 -3
  404. package/lib/components/VPagination/index.mjs.map +1 -1
  405. package/lib/components/VParallax/VParallax.mjs +6 -12
  406. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  407. package/lib/components/VParallax/index.mjs.map +1 -1
  408. package/lib/components/VPicker/VPicker.mjs +3 -12
  409. package/lib/components/VPicker/VPicker.mjs.map +1 -1
  410. package/lib/components/VPicker/index.mjs.map +1 -1
  411. package/lib/components/VProgressCircular/VProgressCircular.mjs +2 -5
  412. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  413. package/lib/components/VProgressCircular/index.d.ts +1 -0
  414. package/lib/components/VProgressCircular/index.mjs.map +1 -1
  415. package/lib/components/VProgressLinear/VProgressLinear.mjs +5 -8
  416. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  417. package/lib/components/VProgressLinear/index.d.ts +1 -0
  418. package/lib/components/VProgressLinear/index.mjs.map +1 -1
  419. package/lib/components/VRadio/VRadio.mjs +2 -4
  420. package/lib/components/VRadio/VRadio.mjs.map +1 -1
  421. package/lib/components/VRadio/index.d.ts +13 -11
  422. package/lib/components/VRadio/index.mjs.map +1 -1
  423. package/lib/components/VRadioGroup/VRadioGroup.mjs +15 -20
  424. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  425. package/lib/components/VRadioGroup/index.d.ts +26 -38
  426. package/lib/components/VRadioGroup/index.mjs.map +1 -1
  427. package/lib/components/VRangeSlider/VRangeSlider.mjs +13 -26
  428. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  429. package/lib/components/VRangeSlider/index.d.ts +5 -3
  430. package/lib/components/VRangeSlider/index.mjs.map +1 -1
  431. package/lib/components/VRating/VRating.mjs +4 -22
  432. package/lib/components/VRating/VRating.mjs.map +1 -1
  433. package/lib/components/VRating/index.d.ts +32 -40
  434. package/lib/components/VRating/index.mjs.map +1 -1
  435. package/lib/components/VResponsive/VResponsive.mjs +2 -5
  436. package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
  437. package/lib/components/VResponsive/index.d.ts +1 -0
  438. package/lib/components/VResponsive/index.mjs.map +1 -1
  439. package/lib/components/VSelect/VSelect.css +13 -0
  440. package/lib/components/VSelect/VSelect.mjs +9 -22
  441. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  442. package/lib/components/VSelect/VSelect.sass +6 -0
  443. package/lib/components/VSelect/_variables.scss +1 -0
  444. package/lib/components/VSelect/index.d.ts +4264 -776
  445. package/lib/components/VSelect/index.mjs.map +1 -1
  446. package/lib/components/VSelectionControl/VSelectionControl.mjs +14 -58
  447. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  448. package/lib/components/VSelectionControl/index.d.ts +62 -78
  449. package/lib/components/VSelectionControl/index.mjs.map +1 -1
  450. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.css +1 -0
  451. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +56 -28
  452. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  453. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.sass +1 -0
  454. package/lib/components/VSelectionControlGroup/index.d.ts +53 -4
  455. package/lib/components/VSelectionControlGroup/index.mjs.map +1 -1
  456. package/lib/components/VSheet/VSheet.mjs +2 -4
  457. package/lib/components/VSheet/VSheet.mjs.map +1 -1
  458. package/lib/components/VSheet/index.d.ts +1 -0
  459. package/lib/components/VSheet/index.mjs.map +1 -1
  460. package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs +19 -32
  461. package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
  462. package/lib/components/VSkeletonLoader/index.mjs.map +1 -1
  463. package/lib/components/VSlideGroup/VSlideGroup.mjs +16 -47
  464. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  465. package/lib/components/VSlideGroup/VSlideGroupItem.mjs +5 -9
  466. package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
  467. package/lib/components/VSlideGroup/helpers.mjs +0 -2
  468. package/lib/components/VSlideGroup/helpers.mjs.map +1 -1
  469. package/lib/components/VSlideGroup/index.d.ts +342 -59
  470. package/lib/components/VSlideGroup/index.mjs.map +1 -1
  471. package/lib/components/VSlider/VSlider.mjs +6 -9
  472. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  473. package/lib/components/VSlider/VSliderThumb.mjs +4 -15
  474. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  475. package/lib/components/VSlider/VSliderTrack.mjs +6 -8
  476. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  477. package/lib/components/VSlider/index.d.ts +5 -3
  478. package/lib/components/VSlider/index.mjs.map +1 -1
  479. package/lib/components/VSlider/slider.mjs +6 -27
  480. package/lib/components/VSlider/slider.mjs.map +1 -1
  481. package/lib/components/VSnackbar/VSnackbar.mjs +3 -10
  482. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  483. package/lib/components/VSnackbar/index.d.ts +1215 -191
  484. package/lib/components/VSnackbar/index.mjs.map +1 -1
  485. package/lib/components/VSparkline/VSparkline.mjs +5 -40
  486. package/lib/components/VSparkline/VSparkline.mjs.map +1 -1
  487. package/lib/components/VSparkline/helpers/core.mjs +1 -1
  488. package/lib/components/VSparkline/helpers/core.mjs.map +1 -1
  489. package/lib/components/VSparkline/helpers/math.mjs +2 -3
  490. package/lib/components/VSparkline/helpers/math.mjs.map +1 -1
  491. package/lib/components/VSparkline/helpers/path.mjs +0 -4
  492. package/lib/components/VSparkline/helpers/path.mjs.map +1 -1
  493. package/lib/components/VSparkline/index.mjs.map +1 -1
  494. package/lib/components/VSpeedDial/VSpeedDial.mjs +3 -12
  495. package/lib/components/VSpeedDial/VSpeedDial.mjs.map +1 -1
  496. package/lib/components/VSpeedDial/index.mjs.map +1 -1
  497. package/lib/components/VStepper/VStepper.mjs +5 -24
  498. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  499. package/lib/components/VStepper/VStepperContent.mjs +4 -25
  500. package/lib/components/VStepper/VStepperContent.mjs.map +1 -1
  501. package/lib/components/VStepper/VStepperStep.mjs +0 -24
  502. package/lib/components/VStepper/VStepperStep.mjs.map +1 -1
  503. package/lib/components/VStepper/index.mjs.map +1 -1
  504. package/lib/components/VSwitch/VSwitch.mjs +14 -15
  505. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  506. package/lib/components/VSwitch/index.d.ts +15 -11
  507. package/lib/components/VSwitch/index.mjs.map +1 -1
  508. package/lib/components/VSystemBar/VSystemBar.mjs +2 -4
  509. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  510. package/lib/components/VSystemBar/index.d.ts +1 -0
  511. package/lib/components/VSystemBar/index.mjs.map +1 -1
  512. package/lib/components/VTable/VTable.css +3 -3
  513. package/lib/components/VTable/VTable.mjs +5 -6
  514. package/lib/components/VTable/VTable.mjs.map +1 -1
  515. package/lib/components/VTable/VTable.sass +9 -3
  516. package/lib/components/VTable/index.d.ts +8 -3
  517. package/lib/components/VTable/index.mjs.map +1 -1
  518. package/lib/components/VTabs/VTab.mjs +2 -10
  519. package/lib/components/VTabs/VTab.mjs.map +1 -1
  520. package/lib/components/VTabs/VTabs.css +5 -5
  521. package/lib/components/VTabs/VTabs.mjs +12 -17
  522. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  523. package/lib/components/VTabs/VTabs.sass +4 -4
  524. package/lib/components/VTabs/_variables.scss +1 -1
  525. package/lib/components/VTabs/index.d.ts +23 -15
  526. package/lib/components/VTabs/index.mjs.map +1 -1
  527. package/lib/components/VTabs/shared.mjs.map +1 -1
  528. package/lib/components/VTextField/VTextField.mjs +13 -24
  529. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  530. package/lib/components/VTextField/index.d.ts +1375 -191
  531. package/lib/components/VTextField/index.mjs.map +1 -1
  532. package/lib/components/VTextarea/VTextarea.mjs +6 -24
  533. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  534. package/lib/components/VTextarea/index.d.ts +233 -5
  535. package/lib/components/VTextarea/index.mjs.map +1 -1
  536. package/lib/components/VThemeProvider/VThemeProvider.mjs +2 -5
  537. package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
  538. package/lib/components/VThemeProvider/index.d.ts +1 -0
  539. package/lib/components/VThemeProvider/index.mjs.map +1 -1
  540. package/lib/components/VTimePicker/SelectingTimes.mjs +0 -3
  541. package/lib/components/VTimePicker/SelectingTimes.mjs.map +1 -1
  542. package/lib/components/VTimePicker/VTimePicker.mjs +3 -53
  543. package/lib/components/VTimePicker/VTimePicker.mjs.map +1 -1
  544. package/lib/components/VTimePicker/VTimePickerClock.mjs +6 -42
  545. package/lib/components/VTimePicker/VTimePickerClock.mjs.map +1 -1
  546. package/lib/components/VTimePicker/VTimePickerTitle.mjs +4 -13
  547. package/lib/components/VTimePicker/VTimePickerTitle.mjs.map +1 -1
  548. package/lib/components/VTimePicker/index.mjs.map +1 -1
  549. package/lib/components/VTimeline/VTimeline.mjs +2 -9
  550. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  551. package/lib/components/VTimeline/VTimelineDivider.mjs +0 -5
  552. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  553. package/lib/components/VTimeline/VTimelineItem.mjs +0 -6
  554. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  555. package/lib/components/VTimeline/index.d.ts +7 -3
  556. package/lib/components/VTimeline/index.mjs.map +1 -1
  557. package/lib/components/VToolbar/VToolbar.mjs +2 -8
  558. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  559. package/lib/components/VToolbar/VToolbarItems.mjs +0 -4
  560. package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
  561. package/lib/components/VToolbar/VToolbarTitle.mjs +0 -5
  562. package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
  563. package/lib/components/VToolbar/index.d.ts +34 -71
  564. package/lib/components/VToolbar/index.mjs.map +1 -1
  565. package/lib/components/VTooltip/VTooltip.mjs +2 -8
  566. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  567. package/lib/components/VTooltip/index.d.ts +1196 -176
  568. package/lib/components/VTooltip/index.mjs.map +1 -1
  569. package/lib/components/VTreeview/VTreeview.mjs +17 -72
  570. package/lib/components/VTreeview/VTreeview.mjs.map +1 -1
  571. package/lib/components/VTreeview/VTreeviewNode.mjs +2 -32
  572. package/lib/components/VTreeview/VTreeviewNode.mjs.map +1 -1
  573. package/lib/components/VTreeview/index.mjs.map +1 -1
  574. package/lib/components/VTreeview/util/filterTreeItems.mjs +0 -6
  575. package/lib/components/VTreeview/util/filterTreeItems.mjs.map +1 -1
  576. package/lib/components/VValidation/VValidation.mjs +2 -5
  577. package/lib/components/VValidation/VValidation.mjs.map +1 -1
  578. package/lib/components/VValidation/index.d.ts +1 -0
  579. package/lib/components/VValidation/index.mjs.map +1 -1
  580. package/lib/components/VVirtualScroll/VVirtualScroll.mjs +3 -18
  581. package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  582. package/lib/components/VVirtualScroll/index.mjs.map +1 -1
  583. package/lib/components/VWindow/VWindow.mjs +5 -15
  584. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  585. package/lib/components/VWindow/VWindowItem.mjs +8 -21
  586. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  587. package/lib/components/VWindow/index.d.ts +37 -87
  588. package/lib/components/VWindow/index.mjs.map +1 -1
  589. package/lib/components/index.d.ts +16084 -6799
  590. package/lib/components/index.mjs +0 -11
  591. package/lib/components/index.mjs.map +1 -1
  592. package/lib/components/transitions/createTransition.mjs +0 -10
  593. package/lib/components/transitions/createTransition.mjs.map +1 -1
  594. package/lib/components/transitions/dialog-transition.mjs +3 -18
  595. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  596. package/lib/components/transitions/expand-transition.mjs +2 -11
  597. package/lib/components/transitions/expand-transition.mjs.map +1 -1
  598. package/lib/components/transitions/index.d.ts +16 -0
  599. package/lib/components/transitions/index.mjs +5 -4
  600. package/lib/components/transitions/index.mjs.map +1 -1
  601. package/lib/composables/border.mjs +0 -3
  602. package/lib/composables/border.mjs.map +1 -1
  603. package/lib/composables/color.mjs +0 -4
  604. package/lib/composables/color.mjs.map +1 -1
  605. package/lib/composables/defaults.mjs +0 -5
  606. package/lib/composables/defaults.mjs.map +1 -1
  607. package/lib/composables/delay.mjs +0 -3
  608. package/lib/composables/delay.mjs.map +1 -1
  609. package/lib/composables/density.mjs +4 -1
  610. package/lib/composables/density.mjs.map +1 -1
  611. package/lib/composables/dimensions.mjs +0 -1
  612. package/lib/composables/dimensions.mjs.map +1 -1
  613. package/lib/composables/display.mjs +7 -20
  614. package/lib/composables/display.mjs.map +1 -1
  615. package/lib/composables/elevation.mjs +2 -4
  616. package/lib/composables/elevation.mjs.map +1 -1
  617. package/lib/composables/filter.mjs +7 -14
  618. package/lib/composables/filter.mjs.map +1 -1
  619. package/lib/composables/focus.mjs +0 -5
  620. package/lib/composables/focus.mjs.map +1 -1
  621. package/lib/composables/form.mjs +1 -14
  622. package/lib/composables/form.mjs.map +1 -1
  623. package/lib/composables/forwardRefs.mjs +9 -16
  624. package/lib/composables/forwardRefs.mjs.map +1 -1
  625. package/lib/composables/group.mjs +10 -33
  626. package/lib/composables/group.mjs.map +1 -1
  627. package/lib/composables/hydration.mjs +0 -1
  628. package/lib/composables/hydration.mjs.map +1 -1
  629. package/lib/composables/icons.mjs +4 -17
  630. package/lib/composables/icons.mjs.map +1 -1
  631. package/lib/composables/index.mjs +1 -2
  632. package/lib/composables/index.mjs.map +1 -1
  633. package/lib/composables/intersectionObserver.mjs +0 -3
  634. package/lib/composables/intersectionObserver.mjs.map +1 -1
  635. package/lib/composables/items.mjs +3 -15
  636. package/lib/composables/items.mjs.map +1 -1
  637. package/lib/composables/layout.mjs +29 -31
  638. package/lib/composables/layout.mjs.map +1 -1
  639. package/lib/composables/lazy.mjs +2 -3
  640. package/lib/composables/lazy.mjs.map +1 -1
  641. package/lib/composables/loader.mjs +0 -3
  642. package/lib/composables/loader.mjs.map +1 -1
  643. package/lib/composables/locale.mjs +46 -118
  644. package/lib/composables/locale.mjs.map +1 -1
  645. package/lib/composables/location.mjs +1 -8
  646. package/lib/composables/location.mjs.map +1 -1
  647. package/lib/composables/mutationObserver.mjs +3 -1
  648. package/lib/composables/mutationObserver.mjs.map +1 -1
  649. package/lib/composables/nested/nested.mjs +4 -20
  650. package/lib/composables/nested/nested.mjs.map +1 -1
  651. package/lib/composables/nested/openStrategies.mjs +0 -9
  652. package/lib/composables/nested/openStrategies.mjs.map +1 -1
  653. package/lib/composables/nested/selectStrategies.mjs +6 -21
  654. package/lib/composables/nested/selectStrategies.mjs.map +1 -1
  655. package/lib/composables/position.mjs +1 -4
  656. package/lib/composables/position.mjs.map +1 -1
  657. package/lib/composables/proxiedModel.mjs +3 -9
  658. package/lib/composables/proxiedModel.mjs.map +1 -1
  659. package/lib/composables/refs.mjs +0 -2
  660. package/lib/composables/refs.mjs.map +1 -1
  661. package/lib/composables/resizeObserver.mjs +0 -3
  662. package/lib/composables/resizeObserver.mjs.map +1 -1
  663. package/lib/composables/rounded.mjs +0 -3
  664. package/lib/composables/rounded.mjs.map +1 -1
  665. package/lib/composables/router.mjs +3 -11
  666. package/lib/composables/router.mjs.map +1 -1
  667. package/lib/composables/scopeId.mjs.map +1 -1
  668. package/lib/composables/scroll.mjs +3 -9
  669. package/lib/composables/scroll.mjs.map +1 -1
  670. package/lib/composables/selectLink.mjs +3 -2
  671. package/lib/composables/selectLink.mjs.map +1 -1
  672. package/lib/composables/size.mjs +0 -3
  673. package/lib/composables/size.mjs.map +1 -1
  674. package/lib/composables/ssrBoot.mjs +2 -1
  675. package/lib/composables/ssrBoot.mjs.map +1 -1
  676. package/lib/composables/stack.mjs +0 -6
  677. package/lib/composables/stack.mjs.map +1 -1
  678. package/lib/composables/tag.mjs +0 -1
  679. package/lib/composables/tag.mjs.map +1 -1
  680. package/lib/composables/teleport.mjs +0 -4
  681. package/lib/composables/teleport.mjs.map +1 -1
  682. package/lib/composables/theme.mjs +18 -38
  683. package/lib/composables/theme.mjs.map +1 -1
  684. package/lib/composables/toggleScope.mjs +0 -1
  685. package/lib/composables/toggleScope.mjs.map +1 -1
  686. package/lib/composables/touch.mjs +5 -28
  687. package/lib/composables/touch.mjs.map +1 -1
  688. package/lib/composables/transition.mjs +0 -2
  689. package/lib/composables/transition.mjs.map +1 -1
  690. package/lib/composables/validation.mjs +3 -13
  691. package/lib/composables/validation.mjs.map +1 -1
  692. package/lib/composables/variant.mjs +0 -2
  693. package/lib/composables/variant.mjs.map +1 -1
  694. package/lib/directives/click-outside/index.mjs +10 -22
  695. package/lib/directives/click-outside/index.mjs.map +1 -1
  696. package/lib/directives/color/index.mjs +0 -11
  697. package/lib/directives/color/index.mjs.map +1 -1
  698. package/lib/directives/index.d.ts +104 -13
  699. package/lib/directives/index.mjs +0 -1
  700. package/lib/directives/index.mjs.map +1 -1
  701. package/lib/directives/intersect/index.mjs +3 -10
  702. package/lib/directives/intersect/index.mjs.map +1 -1
  703. package/lib/directives/mutate/index.mjs +1 -5
  704. package/lib/directives/mutate/index.mjs.map +1 -1
  705. package/lib/directives/resize/index.mjs +0 -5
  706. package/lib/directives/resize/index.mjs.map +1 -1
  707. package/lib/directives/ripple/index.mjs +11 -63
  708. package/lib/directives/ripple/index.mjs.map +1 -1
  709. package/lib/directives/scroll/index.mjs +0 -4
  710. package/lib/directives/scroll/index.mjs.map +1 -1
  711. package/lib/directives/touch/index.mjs +0 -15
  712. package/lib/directives/touch/index.mjs.map +1 -1
  713. package/lib/entry-bundler.mjs +1 -1
  714. package/lib/entry-bundler.mjs.map +1 -1
  715. package/lib/framework.mjs +24 -22
  716. package/lib/framework.mjs.map +1 -1
  717. package/lib/iconsets/fa-svg.mjs +0 -1
  718. package/lib/iconsets/fa-svg.mjs.map +1 -1
  719. package/lib/iconsets/fa.mjs +0 -1
  720. package/lib/iconsets/fa.mjs.map +1 -1
  721. package/lib/iconsets/fa4.mjs +4 -3
  722. package/lib/iconsets/fa4.mjs.map +1 -1
  723. package/lib/iconsets/md.mjs +4 -3
  724. package/lib/iconsets/md.mjs.map +1 -1
  725. package/lib/iconsets/mdi-svg.mjs +0 -1
  726. package/lib/iconsets/mdi-svg.mjs.map +1 -1
  727. package/lib/iconsets/mdi.mjs +4 -3
  728. package/lib/iconsets/mdi.mjs.map +1 -1
  729. package/lib/index.d.ts +92 -106
  730. package/lib/locale/adapters/vue-i18n.d.ts +10 -16
  731. package/lib/locale/adapters/vue-i18n.mjs +59 -52
  732. package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
  733. package/lib/locale/adapters/vuetify.d.ts +24 -0
  734. package/lib/locale/adapters/vuetify.mjs +97 -0
  735. package/lib/locale/adapters/vuetify.mjs.map +1 -0
  736. package/lib/locale/af.mjs.map +1 -1
  737. package/lib/locale/ar.mjs.map +1 -1
  738. package/lib/locale/az.mjs.map +1 -1
  739. package/lib/locale/bg.mjs.map +1 -1
  740. package/lib/locale/ca.mjs.map +1 -1
  741. package/lib/locale/ckb.mjs.map +1 -1
  742. package/lib/locale/cs.mjs.map +1 -1
  743. package/lib/locale/da.mjs.map +1 -1
  744. package/lib/locale/de.mjs.map +1 -1
  745. package/lib/locale/el.mjs.map +1 -1
  746. package/lib/locale/en.mjs.map +1 -1
  747. package/lib/locale/es.mjs.map +1 -1
  748. package/lib/locale/et.mjs.map +1 -1
  749. package/lib/locale/fa.mjs.map +1 -1
  750. package/lib/locale/fi.mjs.map +1 -1
  751. package/lib/locale/fr.mjs.map +1 -1
  752. package/lib/locale/he.mjs.map +1 -1
  753. package/lib/locale/hr.mjs.map +1 -1
  754. package/lib/locale/hu.mjs.map +1 -1
  755. package/lib/locale/id.mjs.map +1 -1
  756. package/lib/locale/index.d.ts +2 -2
  757. package/lib/locale/index.mjs +1 -1
  758. package/lib/locale/index.mjs.map +1 -1
  759. package/lib/locale/it.mjs.map +1 -1
  760. package/lib/locale/ja.mjs.map +1 -1
  761. package/lib/locale/ko.mjs.map +1 -1
  762. package/lib/locale/lt.mjs.map +1 -1
  763. package/lib/locale/lv.mjs.map +1 -1
  764. package/lib/locale/nl.mjs.map +1 -1
  765. package/lib/locale/no.mjs.map +1 -1
  766. package/lib/locale/pl.mjs +7 -7
  767. package/lib/locale/pl.mjs.map +1 -1
  768. package/lib/locale/pt.mjs.map +1 -1
  769. package/lib/locale/ro.mjs.map +1 -1
  770. package/lib/locale/ru.mjs.map +1 -1
  771. package/lib/locale/sk.mjs.map +1 -1
  772. package/lib/locale/sl.mjs.map +1 -1
  773. package/lib/locale/sr-Cyrl.mjs.map +1 -1
  774. package/lib/locale/sr-Latn.mjs.map +1 -1
  775. package/lib/locale/sv.mjs.map +1 -1
  776. package/lib/locale/th.mjs.map +1 -1
  777. package/lib/locale/tr.mjs.map +1 -1
  778. package/lib/locale/uk.mjs.map +1 -1
  779. package/lib/locale/vi.mjs.map +1 -1
  780. package/lib/locale/zh-Hans.mjs.map +1 -1
  781. package/lib/locale/zh-Hant.mjs.map +1 -1
  782. package/lib/services/goto/easing-patterns.mjs +24 -24
  783. package/lib/services/goto/easing-patterns.mjs.map +1 -1
  784. package/lib/services/goto/index.mjs +11 -15
  785. package/lib/services/goto/index.mjs.map +1 -1
  786. package/lib/services/goto/util.mjs +1 -8
  787. package/lib/services/goto/util.mjs.map +1 -1
  788. package/lib/styles/main.css +4 -0
  789. package/lib/styles/settings/_utilities.scss +7 -0
  790. package/lib/util/anchor.mjs +0 -3
  791. package/lib/util/anchor.mjs.map +1 -1
  792. package/lib/util/animation.mjs +0 -6
  793. package/lib/util/animation.mjs.map +1 -1
  794. package/lib/util/box.mjs +0 -5
  795. package/lib/util/box.mjs.map +1 -1
  796. package/lib/util/color/APCA.mjs +23 -21
  797. package/lib/util/color/APCA.mjs.map +1 -1
  798. package/lib/util/color/transformCIELAB.mjs +0 -2
  799. package/lib/util/color/transformCIELAB.mjs.map +1 -1
  800. package/lib/util/color/transformSRGB.mjs +14 -12
  801. package/lib/util/color/transformSRGB.mjs.map +1 -1
  802. package/lib/util/colorUtils.mjs +8 -25
  803. package/lib/util/colorUtils.mjs.map +1 -1
  804. package/lib/util/colors.mjs.map +1 -1
  805. package/lib/util/console.mjs +5 -14
  806. package/lib/util/console.mjs.map +1 -1
  807. package/lib/util/createSimpleFunctional.mjs +0 -3
  808. package/lib/util/createSimpleFunctional.mjs.map +1 -1
  809. package/lib/util/dateTimeUtils.mjs +0 -10
  810. package/lib/util/dateTimeUtils.mjs.map +1 -1
  811. package/lib/util/defineComponent.mjs +6 -22
  812. package/lib/util/defineComponent.mjs.map +1 -1
  813. package/lib/util/dom.mjs +4 -4
  814. package/lib/util/dom.mjs.map +1 -1
  815. package/lib/util/easing.mjs +0 -1
  816. package/lib/util/easing.mjs.map +1 -1
  817. package/lib/util/getCurrentInstance.mjs +1 -7
  818. package/lib/util/getCurrentInstance.mjs.map +1 -1
  819. package/lib/util/getScrollParent.mjs +0 -3
  820. package/lib/util/getScrollParent.mjs.map +1 -1
  821. package/lib/util/globals.mjs.map +1 -1
  822. package/lib/util/helpers.mjs +18 -75
  823. package/lib/util/helpers.mjs.map +1 -1
  824. package/lib/util/injectSelf.mjs +0 -1
  825. package/lib/util/injectSelf.mjs.map +1 -1
  826. package/lib/util/isFixedPosition.mjs +0 -2
  827. package/lib/util/isFixedPosition.mjs.map +1 -1
  828. package/lib/util/propsFactory.mjs +11 -5
  829. package/lib/util/propsFactory.mjs.map +1 -1
  830. package/lib/util/useRender.mjs +0 -1
  831. package/lib/util/useRender.mjs.map +1 -1
  832. package/package.json +6 -10
  833. package/dist/json/attributes.json +0 -5602
  834. package/dist/json/tags.json +0 -1945
  835. package/dist/json/web-types.json +0 -19006
  836. package/lib/composables/rtl.mjs +0 -42
  837. package/lib/composables/rtl.mjs.map +0 -1
  838. package/lib/locale/adapters/vue-intl.d.ts +0 -42
  839. package/lib/locale/adapters/vue-intl.mjs +0 -65
  840. package/lib/locale/adapters/vue-intl.mjs.map +0 -1
@@ -2,7 +2,6 @@
2
2
  import { computed, inject, provide, ref, watch } from 'vue';
3
3
  import { useProxiedModel } from "./proxiedModel.mjs";
4
4
  import { consoleWarn, propsFactory } from "../util/index.mjs"; // Types
5
-
6
5
  export const FormKey = Symbol.for('vuetify:form');
7
6
  export const makeFormProps = propsFactory({
8
7
  disabled: Boolean,
@@ -13,7 +12,7 @@ export const makeFormProps = propsFactory({
13
12
  type: Boolean,
14
13
  default: null
15
14
  }
16
- });
15
+ }, 'form');
17
16
  export function createForm(props) {
18
17
  const model = useProxiedModel(props, 'modelValue');
19
18
  const isDisabled = computed(() => props.disabled);
@@ -21,16 +20,13 @@ export function createForm(props) {
21
20
  const isValidating = ref(false);
22
21
  const items = ref([]);
23
22
  const errors = ref([]);
24
-
25
23
  async function validate() {
26
24
  const results = [];
27
25
  let valid = true;
28
26
  errors.value = [];
29
27
  isValidating.value = true;
30
-
31
28
  for (const item of items.value) {
32
29
  const itemErrorMessages = await item.validate();
33
-
34
30
  if (itemErrorMessages.length > 0) {
35
31
  valid = false;
36
32
  results.push({
@@ -38,10 +34,8 @@ export function createForm(props) {
38
34
  errorMessages: itemErrorMessages
39
35
  });
40
36
  }
41
-
42
37
  if (!valid && props.fastFail) break;
43
38
  }
44
-
45
39
  errors.value = results;
46
40
  isValidating.value = false;
47
41
  return {
@@ -49,23 +43,19 @@ export function createForm(props) {
49
43
  errors: errors.value
50
44
  };
51
45
  }
52
-
53
46
  function reset() {
54
47
  items.value.forEach(item => item.reset());
55
48
  model.value = null;
56
49
  }
57
-
58
50
  function resetValidation() {
59
51
  items.value.forEach(item => item.resetValidation());
60
52
  errors.value = [];
61
53
  model.value = null;
62
54
  }
63
-
64
55
  watch(items, () => {
65
56
  let valid = 0;
66
57
  let invalid = 0;
67
58
  const results = [];
68
-
69
59
  for (const item of items.value) {
70
60
  if (item.isValid === false) {
71
61
  invalid++;
@@ -75,7 +65,6 @@ export function createForm(props) {
75
65
  });
76
66
  } else if (item.isValid === true) valid++;
77
67
  }
78
-
79
68
  errors.value = results;
80
69
  model.value = invalid > 0 ? false : valid === items.value.length ? true : null;
81
70
  }, {
@@ -89,11 +78,9 @@ export function createForm(props) {
89
78
  reset,
90
79
  resetValidation
91
80
  } = _ref;
92
-
93
81
  if (items.value.some(item => item.id === id)) {
94
82
  consoleWarn(`Duplicate input name "${id}"`);
95
83
  }
96
-
97
84
  items.value.push({
98
85
  id,
99
86
  validate,
@@ -1 +1 @@
1
- {"version":3,"file":"form.mjs","names":["computed","inject","provide","ref","watch","useProxiedModel","consoleWarn","propsFactory","FormKey","Symbol","for","makeFormProps","disabled","Boolean","fastFail","lazyValidation","readonly","modelValue","type","default","createForm","props","model","isDisabled","isReadonly","isValidating","items","errors","validate","results","valid","value","item","itemErrorMessages","length","push","id","errorMessages","reset","forEach","resetValidation","invalid","isValid","deep","register","some","unregister","filter","update","found","find","useForm"],"sources":["../../src/composables/form.ts"],"sourcesContent":["// Utilities\nimport { computed, inject, provide, ref, watch } from 'vue'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { consoleWarn, propsFactory } from '@/util'\n\n// Types\nimport type { ComputedRef, InjectionKey, PropType, Ref } from 'vue'\n\nexport interface FormProvide {\n register: (item: {\n id: number | string\n validate: () => Promise<string[]>\n reset: () => void\n resetValidation: () => void\n }) => void\n unregister: (id: number | string) => void\n update: (id: number | string, isValid: boolean | null, errorMessages: string[]) => void\n items: Ref<FormField[]>\n isDisabled: ComputedRef<boolean>\n isReadonly: ComputedRef<boolean>\n isValidating: Ref<boolean>\n}\n\ninterface FormField {\n id: number | string\n validate: () => Promise<string[]>\n reset: () => void\n resetValidation: () => void\n isValid: boolean | null\n errorMessages: string[]\n}\n\ninterface FieldValidationResult {\n id: number | string\n errorMessages: string[]\n}\n\ninterface FormValidationResult {\n valid: boolean\n errors: FieldValidationResult[]\n}\n\nexport interface SubmitEventPromise extends SubmitEvent, Promise<FormValidationResult> {}\n\nexport const FormKey: InjectionKey<FormProvide> = Symbol.for('vuetify:form')\n\nexport interface FormProps {\n disabled: boolean\n fastFail: boolean\n lazyValidation: boolean\n readonly: boolean\n modelValue: boolean | null\n 'onUpdate:modelValue': ((val: boolean | null) => void) | undefined\n}\n\nexport const makeFormProps = propsFactory({\n disabled: Boolean,\n fastFail: Boolean,\n lazyValidation: Boolean,\n readonly: Boolean,\n modelValue: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n})\n\nexport function createForm (props: FormProps) {\n const model = useProxiedModel(props, 'modelValue')\n\n const isDisabled = computed(() => props.disabled)\n const isReadonly = computed(() => props.readonly)\n const isValidating = ref(false)\n const items = ref<FormField[]>([])\n const errors = ref<FieldValidationResult[]>([])\n\n async function validate () {\n const results = []\n let valid = true\n\n errors.value = []\n isValidating.value = true\n\n for (const item of items.value) {\n const itemErrorMessages = await item.validate()\n\n if (itemErrorMessages.length > 0) {\n valid = false\n\n results.push({\n id: item.id,\n errorMessages: itemErrorMessages,\n })\n }\n\n if (!valid && props.fastFail) break\n }\n\n errors.value = results\n isValidating.value = false\n\n return { valid, errors: errors.value }\n }\n\n function reset () {\n items.value.forEach(item => item.reset())\n model.value = null\n }\n\n function resetValidation () {\n items.value.forEach(item => item.resetValidation())\n errors.value = []\n model.value = null\n }\n\n watch(items, () => {\n let valid = 0\n let invalid = 0\n const results = []\n\n for (const item of items.value) {\n if (item.isValid === false) {\n invalid++\n results.push({\n id: item.id,\n errorMessages: item.errorMessages,\n })\n } else if (item.isValid === true) valid++\n }\n\n errors.value = results\n model.value =\n invalid > 0 ? false\n : valid === items.value.length ? true\n : null\n }, { deep: true })\n\n provide(FormKey, {\n register: ({ id, validate, reset, resetValidation }) => {\n if (items.value.some(item => item.id === id)) {\n consoleWarn(`Duplicate input name \"${id}\"`)\n }\n\n items.value.push({\n id,\n validate,\n reset,\n resetValidation,\n isValid: null,\n errorMessages: [],\n })\n },\n unregister: id => {\n items.value = items.value.filter(item => {\n return item.id !== id\n })\n },\n update: (id, isValid, errorMessages) => {\n const found = items.value.find(item => item.id === id)\n\n if (!found) return\n\n found.isValid = isValid\n found.errorMessages = errorMessages\n },\n isDisabled,\n isReadonly,\n isValidating,\n items,\n })\n\n return {\n errors,\n isDisabled,\n isReadonly,\n isValidating,\n items,\n validate,\n reset,\n resetValidation,\n }\n}\n\nexport function useForm () {\n return inject(FormKey, null)\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"form.mjs","names":["computed","inject","provide","ref","watch","useProxiedModel","consoleWarn","propsFactory","FormKey","Symbol","for","makeFormProps","disabled","Boolean","fastFail","lazyValidation","readonly","modelValue","type","default","createForm","props","model","isDisabled","isReadonly","isValidating","items","errors","validate","results","valid","value","item","itemErrorMessages","length","push","id","errorMessages","reset","forEach","resetValidation","invalid","isValid","deep","register","some","unregister","filter","update","found","find","useForm"],"sources":["../../src/composables/form.ts"],"sourcesContent":["// Utilities\nimport { computed, inject, provide, ref, watch } from 'vue'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { consoleWarn, propsFactory } from '@/util'\n\n// Types\nimport type { ComputedRef, InjectionKey, PropType, Ref } from 'vue'\n\nexport interface FormProvide {\n register: (item: {\n id: number | string\n validate: () => Promise<string[]>\n reset: () => void\n resetValidation: () => void\n }) => void\n unregister: (id: number | string) => void\n update: (id: number | string, isValid: boolean | null, errorMessages: string[]) => void\n items: Ref<FormField[]>\n isDisabled: ComputedRef<boolean>\n isReadonly: ComputedRef<boolean>\n isValidating: Ref<boolean>\n}\n\ninterface FormField {\n id: number | string\n validate: () => Promise<string[]>\n reset: () => void\n resetValidation: () => void\n isValid: boolean | null\n errorMessages: string[]\n}\n\ninterface FieldValidationResult {\n id: number | string\n errorMessages: string[]\n}\n\ninterface FormValidationResult {\n valid: boolean\n errors: FieldValidationResult[]\n}\n\nexport interface SubmitEventPromise extends SubmitEvent, Promise<FormValidationResult> {}\n\nexport const FormKey: InjectionKey<FormProvide> = Symbol.for('vuetify:form')\n\nexport interface FormProps {\n disabled: boolean\n fastFail: boolean\n lazyValidation: boolean\n readonly: boolean\n modelValue: boolean | null\n 'onUpdate:modelValue': ((val: boolean | null) => void) | undefined\n}\n\nexport const makeFormProps = propsFactory({\n disabled: Boolean,\n fastFail: Boolean,\n lazyValidation: Boolean,\n readonly: Boolean,\n modelValue: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n}, 'form')\n\nexport function createForm (props: FormProps) {\n const model = useProxiedModel(props, 'modelValue')\n\n const isDisabled = computed(() => props.disabled)\n const isReadonly = computed(() => props.readonly)\n const isValidating = ref(false)\n const items = ref<FormField[]>([])\n const errors = ref<FieldValidationResult[]>([])\n\n async function validate () {\n const results = []\n let valid = true\n\n errors.value = []\n isValidating.value = true\n\n for (const item of items.value) {\n const itemErrorMessages = await item.validate()\n\n if (itemErrorMessages.length > 0) {\n valid = false\n\n results.push({\n id: item.id,\n errorMessages: itemErrorMessages,\n })\n }\n\n if (!valid && props.fastFail) break\n }\n\n errors.value = results\n isValidating.value = false\n\n return { valid, errors: errors.value }\n }\n\n function reset () {\n items.value.forEach(item => item.reset())\n model.value = null\n }\n\n function resetValidation () {\n items.value.forEach(item => item.resetValidation())\n errors.value = []\n model.value = null\n }\n\n watch(items, () => {\n let valid = 0\n let invalid = 0\n const results = []\n\n for (const item of items.value) {\n if (item.isValid === false) {\n invalid++\n results.push({\n id: item.id,\n errorMessages: item.errorMessages,\n })\n } else if (item.isValid === true) valid++\n }\n\n errors.value = results\n model.value =\n invalid > 0 ? false\n : valid === items.value.length ? true\n : null\n }, { deep: true })\n\n provide(FormKey, {\n register: ({ id, validate, reset, resetValidation }) => {\n if (items.value.some(item => item.id === id)) {\n consoleWarn(`Duplicate input name \"${id}\"`)\n }\n\n items.value.push({\n id,\n validate,\n reset,\n resetValidation,\n isValid: null,\n errorMessages: [],\n })\n },\n unregister: id => {\n items.value = items.value.filter(item => {\n return item.id !== id\n })\n },\n update: (id, isValid, errorMessages) => {\n const found = items.value.find(item => item.id === id)\n\n if (!found) return\n\n found.isValid = isValid\n found.errorMessages = errorMessages\n },\n isDisabled,\n isReadonly,\n isValidating,\n items,\n })\n\n return {\n errors,\n isDisabled,\n isReadonly,\n isValidating,\n items,\n validate,\n reset,\n resetValidation,\n }\n}\n\nexport function useForm () {\n return inject(FormKey, null)\n}\n"],"mappings":"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"}
@@ -1,18 +1,17 @@
1
1
  const Refs = Symbol('Forwarded refs');
2
+
2
3
  /** Omit properties starting with P */
3
4
 
4
5
  export function forwardRefs(target) {
5
6
  for (var _len = arguments.length, refs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
6
7
  refs[_key - 1] = arguments[_key];
7
8
  }
8
-
9
9
  target[Refs] = refs;
10
10
  return new Proxy(target, {
11
11
  get(target, key) {
12
12
  if (Reflect.has(target, key)) {
13
13
  return Reflect.get(target, key);
14
14
  }
15
-
16
15
  for (const ref of refs) {
17
16
  if (ref.value && Reflect.has(ref.value, key)) {
18
17
  const val = Reflect.get(ref.value, key);
@@ -20,41 +19,37 @@ export function forwardRefs(target) {
20
19
  }
21
20
  }
22
21
  },
23
-
24
22
  getOwnPropertyDescriptor(target, key) {
25
23
  const descriptor = Reflect.getOwnPropertyDescriptor(target, key);
26
- if (descriptor) return descriptor; // Skip internal properties
24
+ if (descriptor) return descriptor;
27
25
 
28
- if (typeof key === 'symbol' || key.startsWith('__')) return; // Check each ref's own properties
26
+ // Skip internal properties
27
+ if (typeof key === 'symbol' || key.startsWith('__')) return;
29
28
 
29
+ // Check each ref's own properties
30
30
  for (const ref of refs) {
31
31
  if (!ref.value) continue;
32
32
  const descriptor = Reflect.getOwnPropertyDescriptor(ref.value, key);
33
33
  if (descriptor) return descriptor;
34
-
35
34
  if ('_' in ref.value && 'setupState' in ref.value._) {
36
35
  const descriptor = Reflect.getOwnPropertyDescriptor(ref.value._.setupState, key);
37
36
  if (descriptor) return descriptor;
38
37
  }
39
- } // Recursive search up each ref's prototype
40
-
41
-
38
+ }
39
+ // Recursive search up each ref's prototype
42
40
  for (const ref of refs) {
43
41
  let obj = ref.value && Object.getPrototypeOf(ref.value);
44
-
45
42
  while (obj) {
46
43
  const descriptor = Reflect.getOwnPropertyDescriptor(obj, key);
47
44
  if (descriptor) return descriptor;
48
45
  obj = Object.getPrototypeOf(obj);
49
46
  }
50
- } // Call forwarded refs' proxies
51
-
52
-
47
+ }
48
+ // Call forwarded refs' proxies
53
49
  for (const ref of refs) {
54
50
  const childRefs = ref.value && ref.value[Refs];
55
51
  if (!childRefs) continue;
56
52
  const queue = childRefs.slice();
57
-
58
53
  while (queue.length) {
59
54
  const ref = queue.shift();
60
55
  const descriptor = Reflect.getOwnPropertyDescriptor(ref.value, key);
@@ -63,10 +58,8 @@ export function forwardRefs(target) {
63
58
  if (childRefs) queue.push(...childRefs);
64
59
  }
65
60
  }
66
-
67
61
  return undefined;
68
62
  }
69
-
70
63
  });
71
64
  }
72
65
  //# sourceMappingURL=forwardRefs.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"forwardRefs.mjs","names":["Refs","Symbol","forwardRefs","target","refs","Proxy","get","key","Reflect","has","ref","value","val","bind","getOwnPropertyDescriptor","descriptor","startsWith","_","setupState","obj","Object","getPrototypeOf","childRefs","queue","slice","length","shift","push","undefined"],"sources":["../../src/composables/forwardRefs.ts"],"sourcesContent":["import type { ComponentPublicInstance, Ref, UnwrapRef } from 'vue'\nimport type { UnionToIntersection } from '@/util'\n\nconst Refs = Symbol('Forwarded refs')\n\n/** Omit properties starting with P */\ntype OmitPrefix<T, P extends string> = Omit<T, keyof T extends `${P}${any}` ? keyof T : never>\n\nexport function forwardRefs<T extends {}, U extends Ref<HTMLElement | Omit<ComponentPublicInstance, '$emit'> | undefined>[]> (\n target: T,\n ...refs: U\n): T & OmitPrefix<UnwrapRef<UnionToIntersection<U[number]>>, '$'> {\n (target as any)[Refs] = refs\n\n return new Proxy(target, {\n get (target, key) {\n if (Reflect.has(target, key)) {\n return Reflect.get(target, key)\n }\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n const val = Reflect.get(ref.value, key)\n return typeof val === 'function'\n ? val.bind(ref.value)\n : val\n }\n }\n },\n getOwnPropertyDescriptor (target, key) {\n const descriptor = Reflect.getOwnPropertyDescriptor(target, key)\n if (descriptor) return descriptor\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('__')) return\n\n // Check each ref's own properties\n for (const ref of refs) {\n if (!ref.value) continue\n const descriptor = Reflect.getOwnPropertyDescriptor(ref.value, key)\n if (descriptor) return descriptor\n if ('_' in ref.value && 'setupState' in ref.value._) {\n const descriptor = Reflect.getOwnPropertyDescriptor(ref.value._.setupState, key)\n if (descriptor) return descriptor\n }\n }\n // Recursive search up each ref's prototype\n for (const ref of refs) {\n let obj = ref.value && Object.getPrototypeOf(ref.value)\n while (obj) {\n const descriptor = Reflect.getOwnPropertyDescriptor(obj, key)\n if (descriptor) return descriptor\n obj = Object.getPrototypeOf(obj)\n }\n }\n // Call forwarded refs' proxies\n for (const ref of refs) {\n const childRefs = ref.value && (ref.value as any)[Refs]\n if (!childRefs) continue\n const queue = childRefs.slice()\n while (queue.length) {\n const ref = queue.shift()\n const descriptor = Reflect.getOwnPropertyDescriptor(ref.value, key)\n if (descriptor) return descriptor\n const childRefs = ref.value && (ref.value as any)[Refs]\n if (childRefs) queue.push(...childRefs)\n }\n }\n return undefined\n },\n }) as any\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"forwardRefs.mjs","names":["Refs","Symbol","forwardRefs","target","refs","Proxy","get","key","Reflect","has","ref","value","val","bind","getOwnPropertyDescriptor","descriptor","startsWith","_","setupState","obj","Object","getPrototypeOf","childRefs","queue","slice","length","shift","push","undefined"],"sources":["../../src/composables/forwardRefs.ts"],"sourcesContent":["import type { ComponentPublicInstance, Ref, UnwrapRef } from 'vue'\nimport type { UnionToIntersection } from '@/util'\n\nconst Refs = Symbol('Forwarded refs')\n\n/** Omit properties starting with P */\ntype OmitPrefix<T, P extends string> = [Extract<keyof T, `${P}${any}`>] extends [never] ? T : Omit<T, `${P}${any}`>\n\ntype OmitProps<T> = T extends { $props: any } ? Omit<T, keyof T['$props']> : never\n\nexport function forwardRefs<T extends {}, U extends Ref<HTMLElement | Omit<ComponentPublicInstance, '$emit'> | undefined>[]> (\n target: T,\n ...refs: U\n): T & UnionToIntersection<{ [K in keyof U]: OmitPrefix<OmitProps<NonNullable<UnwrapRef<U[K]>>>, '$'> }[number]> {\n (target as any)[Refs] = refs\n\n return new Proxy(target, {\n get (target, key) {\n if (Reflect.has(target, key)) {\n return Reflect.get(target, key)\n }\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n const val = Reflect.get(ref.value, key)\n return typeof val === 'function'\n ? val.bind(ref.value)\n : val\n }\n }\n },\n getOwnPropertyDescriptor (target, key) {\n const descriptor = Reflect.getOwnPropertyDescriptor(target, key)\n if (descriptor) return descriptor\n\n // Skip internal properties\n if (typeof key === 'symbol' || key.startsWith('__')) return\n\n // Check each ref's own properties\n for (const ref of refs) {\n if (!ref.value) continue\n const descriptor = Reflect.getOwnPropertyDescriptor(ref.value, key)\n if (descriptor) return descriptor\n if ('_' in ref.value && 'setupState' in ref.value._) {\n const descriptor = Reflect.getOwnPropertyDescriptor(ref.value._.setupState, key)\n if (descriptor) return descriptor\n }\n }\n // Recursive search up each ref's prototype\n for (const ref of refs) {\n let obj = ref.value && Object.getPrototypeOf(ref.value)\n while (obj) {\n const descriptor = Reflect.getOwnPropertyDescriptor(obj, key)\n if (descriptor) return descriptor\n obj = Object.getPrototypeOf(obj)\n }\n }\n // Call forwarded refs' proxies\n for (const ref of refs) {\n const childRefs = ref.value && (ref.value as any)[Refs]\n if (!childRefs) continue\n const queue = childRefs.slice()\n while (queue.length) {\n const ref = queue.shift()\n const descriptor = Reflect.getOwnPropertyDescriptor(ref.value, key)\n if (descriptor) return descriptor\n const childRefs = ref.value && (ref.value as any)[Refs]\n if (childRefs) queue.push(...childRefs)\n }\n }\n return undefined\n },\n }) as any\n}\n"],"mappings":"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"}
@@ -1,9 +1,7 @@
1
1
  // Composables
2
2
  import { useProxiedModel } from "./proxiedModel.mjs"; // Utilities
3
-
4
3
  import { computed, inject, onBeforeUnmount, onMounted, provide, reactive, toRef, watch } from 'vue';
5
4
  import { consoleWarn, deepEqual, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory, wrapInArray } from "../util/index.mjs"; // Types
6
-
7
5
  export const makeGroupProps = propsFactory({
8
6
  modelValue: {
9
7
  type: null,
@@ -23,20 +21,16 @@ export const makeGroupItemProps = propsFactory({
23
21
  export function useGroupItem(props, injectKey) {
24
22
  let required = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
25
23
  const vm = getCurrentInstance('useGroupItem');
26
-
27
24
  if (!vm) {
28
25
  throw new Error('[Vuetify] useGroupItem composable must be used inside a component setup function');
29
26
  }
30
-
31
27
  const id = getUid();
32
28
  provide(Symbol.for(`${injectKey.description}:id`), id);
33
29
  const group = inject(injectKey, null);
34
-
35
30
  if (!group) {
36
31
  if (!required) return group;
37
32
  throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`);
38
33
  }
39
-
40
34
  const value = toRef(props, 'value');
41
35
  const disabled = computed(() => group.disabled.value || props.disabled);
42
36
  group.register({
@@ -78,62 +72,59 @@ export function useGroup(props, injectKey) {
78
72
  return props.multiple ? arr : arr[0];
79
73
  });
80
74
  const groupVm = getCurrentInstance('useGroup');
81
-
82
75
  function register(item, vm) {
83
76
  // Is there a better way to fix this typing?
84
77
  const unwrapped = item;
85
78
  const key = Symbol.for(`${injectKey.description}:id`);
86
79
  const children = findChildrenWithProvide(key, groupVm == null ? void 0 : groupVm.vnode);
87
80
  const index = children.indexOf(vm);
88
-
89
81
  if (index > -1) {
90
82
  items.splice(index, 0, unwrapped);
91
83
  } else {
92
84
  items.push(unwrapped);
93
85
  }
94
86
  }
95
-
96
87
  function unregister(id) {
97
- if (isUnmounted) return; // TODO: re-evaluate this line's importance in the future
88
+ if (isUnmounted) return;
89
+
90
+ // TODO: re-evaluate this line's importance in the future
98
91
  // should we only modify the model if mandatory is set.
99
92
  // selected.value = selected.value.filter(v => v !== id)
100
93
 
101
94
  forceMandatoryValue();
102
95
  const index = items.findIndex(item => item.id === id);
103
96
  items.splice(index, 1);
104
- } // If mandatory and nothing is selected, then select first non-disabled item
105
-
97
+ }
106
98
 
99
+ // If mandatory and nothing is selected, then select first non-disabled item
107
100
  function forceMandatoryValue() {
108
101
  const item = items.find(item => !item.disabled);
109
-
110
102
  if (item && props.mandatory === 'force' && !selected.value.length) {
111
103
  selected.value = [item.id];
112
104
  }
113
105
  }
114
-
115
106
  onMounted(() => {
116
107
  forceMandatoryValue();
117
108
  });
118
109
  onBeforeUnmount(() => {
119
110
  isUnmounted = true;
120
111
  });
121
-
122
112
  function select(id, value) {
123
113
  const item = items.find(item => item.id === id);
124
114
  if (value && item != null && item.disabled) return;
125
-
126
115
  if (props.multiple) {
127
116
  const internalValue = selected.value.slice();
128
117
  const index = internalValue.findIndex(v => v === id);
129
118
  const isSelected = ~index;
130
- value = value ?? !isSelected; // We can't remove value if group is
119
+ value = value ?? !isSelected;
120
+
121
+ // We can't remove value if group is
131
122
  // mandatory, value already exists,
132
123
  // and it is the only value
124
+ if (isSelected && props.mandatory && internalValue.length <= 1) return;
133
125
 
134
- if (isSelected && props.mandatory && internalValue.length <= 1) return; // We can't add value if it would
126
+ // We can't add value if it would
135
127
  // cause max limit to be exceeded
136
-
137
128
  if (!isSelected && props.max != null && internalValue.length + 1 > props.max) return;
138
129
  if (index < 0 && value) internalValue.push(id);else if (index >= 0 && !value) internalValue.splice(index, 1);
139
130
  selected.value = internalValue;
@@ -143,11 +134,9 @@ export function useGroup(props, injectKey) {
143
134
  selected.value = value ?? !isSelected ? [id] : [];
144
135
  }
145
136
  }
146
-
147
137
  function step(offset) {
148
138
  // getting an offset from selected value obviously won't work with multiple values
149
139
  if (props.multiple) consoleWarn('This method is not supported when using "multiple" prop');
150
-
151
140
  if (!selected.value.length) {
152
141
  const item = items.find(item => !item.disabled);
153
142
  item && (selected.value = [item.id]);
@@ -156,17 +145,14 @@ export function useGroup(props, injectKey) {
156
145
  const currentIndex = items.findIndex(i => i.id === currentId);
157
146
  let newIndex = (currentIndex + offset) % items.length;
158
147
  let newItem = items[newIndex];
159
-
160
148
  while (newItem.disabled && newIndex !== currentIndex) {
161
149
  newIndex = (newIndex + offset) % items.length;
162
150
  newItem = items[newIndex];
163
151
  }
164
-
165
152
  if (newItem.disabled) return;
166
153
  selected.value = [items[newIndex].id];
167
154
  }
168
155
  }
169
-
170
156
  const state = {
171
157
  register,
172
158
  unregister,
@@ -183,19 +169,15 @@ export function useGroup(props, injectKey) {
183
169
  provide(injectKey, state);
184
170
  return state;
185
171
  }
186
-
187
172
  function getItemIndex(items, value) {
188
173
  const ids = getIds(items, [value]);
189
174
  if (!ids.length) return -1;
190
175
  return items.findIndex(item => item.id === ids[0]);
191
176
  }
192
-
193
177
  function getIds(items, modelValue) {
194
178
  const ids = [];
195
-
196
179
  for (let i = 0; i < items.length; i++) {
197
180
  const item = items[i];
198
-
199
181
  if (item.value != null) {
200
182
  if (modelValue.find(value => deepEqual(value, item.value)) != null) {
201
183
  ids.push(item.id);
@@ -204,21 +186,16 @@ function getIds(items, modelValue) {
204
186
  ids.push(item.id);
205
187
  }
206
188
  }
207
-
208
189
  return ids;
209
190
  }
210
-
211
191
  function getValues(items, ids) {
212
192
  const values = [];
213
-
214
193
  for (let i = 0; i < items.length; i++) {
215
194
  const item = items[i];
216
-
217
195
  if (ids.includes(item.id)) {
218
196
  values.push(item.value != null ? item.value : i);
219
197
  }
220
198
  }
221
-
222
199
  return values;
223
200
  }
224
201
  //# sourceMappingURL=group.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"group.mjs","names":["useProxiedModel","computed","inject","onBeforeUnmount","onMounted","provide","reactive","toRef","watch","consoleWarn","deepEqual","findChildrenWithProvide","getCurrentInstance","getUid","propsFactory","wrapInArray","makeGroupProps","modelValue","type","default","undefined","multiple","Boolean","mandatory","String","max","Number","selectedClass","disabled","makeGroupItemProps","value","useGroupItem","props","injectKey","required","vm","Error","id","Symbol","for","description","group","register","unregister","isSelected","emit","toggle","select","useGroup","isUnmounted","items","selected","v","getIds","arr","getValues","groupVm","item","unwrapped","key","children","vnode","index","indexOf","splice","push","forceMandatoryValue","findIndex","find","length","internalValue","slice","includes","step","offset","currentId","currentIndex","i","newIndex","newItem","state","prev","next","getItemIndex","ids","values"],"sources":["../../src/composables/group.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from './proxiedModel'\n\n// Utilities\nimport { computed, inject, onBeforeUnmount, onMounted, provide, reactive, toRef, watch } from 'vue'\nimport { consoleWarn, deepEqual, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, ComputedRef, ExtractPropTypes, InjectionKey, PropType, Ref, UnwrapRef } from 'vue'\n\nexport interface GroupItem {\n id: number\n value: Ref<unknown>\n disabled: Ref<boolean | undefined>\n}\n\nexport interface GroupProps {\n disabled: boolean\n modelValue: unknown\n multiple?: boolean\n mandatory?: boolean | 'force' | undefined\n max?: number | undefined\n selectedClass: string | undefined\n 'onUpdate:modelValue': ((val: unknown) => void) | undefined\n}\n\nexport interface GroupProvide {\n register: (item: GroupItem, cmp: ComponentInternalInstance) => void\n unregister: (id: number) => void\n select: (id: number, value: boolean) => void\n selected: Ref<Readonly<number[]>>\n isSelected: (id: number) => boolean\n prev: () => void\n next: () => void\n selectedClass: Ref<string | undefined>\n items: ComputedRef<{\n id: number\n value: unknown\n disabled: boolean | undefined\n }[]>\n disabled: Ref<boolean | undefined>\n getItemIndex: (value: unknown) => number\n}\n\nexport interface GroupItemProvide {\n id: number\n isSelected: Ref<boolean>\n toggle: () => void\n select: (value: boolean) => void\n selectedClass: Ref<(string | undefined)[] | false>\n value: Ref<unknown>\n disabled: Ref<boolean | undefined>\n group: GroupProvide\n}\n\nexport const makeGroupProps = propsFactory({\n modelValue: {\n type: null,\n default: undefined,\n },\n multiple: Boolean,\n mandatory: [Boolean, String] as PropType<boolean | 'force'>,\n max: Number,\n selectedClass: String,\n disabled: Boolean,\n}, 'group')\n\nexport const makeGroupItemProps = propsFactory({\n value: null,\n disabled: Boolean,\n selectedClass: String,\n}, 'group-item')\n\nexport interface GroupItemProps extends ExtractPropTypes<ReturnType<typeof makeGroupItemProps>> {\n 'onGroup:selected': ((val: { value: boolean }) => void) | undefined\n}\n\n// Composables\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required?: true,\n): GroupItemProvide\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required: false,\n): GroupItemProvide | null\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required = true,\n): GroupItemProvide | null {\n const vm = getCurrentInstance('useGroupItem')\n\n if (!vm) {\n throw new Error(\n '[Vuetify] useGroupItem composable must be used inside a component setup function'\n )\n }\n\n const id = getUid()\n\n provide(Symbol.for(`${injectKey.description}:id`), id)\n\n const group = inject(injectKey, null)\n\n if (!group) {\n if (!required) return group\n\n throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`)\n }\n\n const value = toRef(props, 'value')\n const disabled = computed(() => group.disabled.value || props.disabled)\n\n group.register({\n id,\n value,\n disabled,\n }, vm)\n\n onBeforeUnmount(() => {\n group.unregister(id)\n })\n\n const isSelected = computed(() => {\n return group.isSelected(id)\n })\n\n const selectedClass = computed(() => isSelected.value && [group.selectedClass.value, props.selectedClass])\n\n watch(isSelected, value => {\n vm.emit('group:selected', { value })\n })\n\n return {\n id,\n isSelected,\n toggle: () => group.select(id, !isSelected.value),\n select: (value: boolean) => group.select(id, value),\n selectedClass,\n value,\n disabled,\n group,\n }\n}\n\nexport function useGroup (\n props: GroupProps,\n injectKey: InjectionKey<GroupProvide>\n) {\n let isUnmounted = false\n const items = reactive<GroupItem[]>([])\n const selected = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => {\n if (v == null) return []\n\n return getIds(items, wrapInArray(v))\n },\n v => {\n const arr = getValues(items, v)\n\n return props.multiple ? arr : arr[0]\n }\n )\n\n const groupVm = getCurrentInstance('useGroup')\n\n function register (item: GroupItem, vm: ComponentInternalInstance) {\n // Is there a better way to fix this typing?\n const unwrapped = item as unknown as UnwrapRef<GroupItem>\n\n const key = Symbol.for(`${injectKey.description}:id`)\n const children = findChildrenWithProvide(key, groupVm?.vnode)\n const index = children.indexOf(vm)\n\n if (index > -1) {\n items.splice(index, 0, unwrapped)\n } else {\n items.push(unwrapped)\n }\n }\n\n function unregister (id: number) {\n if (isUnmounted) return\n\n // TODO: re-evaluate this line's importance in the future\n // should we only modify the model if mandatory is set.\n // selected.value = selected.value.filter(v => v !== id)\n\n forceMandatoryValue()\n\n const index = items.findIndex(item => item.id === id)\n items.splice(index, 1)\n }\n\n // If mandatory and nothing is selected, then select first non-disabled item\n function forceMandatoryValue () {\n const item = items.find(item => !item.disabled)\n if (item && props.mandatory === 'force' && !selected.value.length) {\n selected.value = [item.id]\n }\n }\n\n onMounted(() => {\n forceMandatoryValue()\n })\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n function select (id: number, value?: boolean) {\n const item = items.find(item => item.id === id)\n if (value && item?.disabled) return\n\n if (props.multiple) {\n const internalValue = selected.value.slice()\n const index = internalValue.findIndex(v => v === id)\n const isSelected = ~index\n value = value ?? !isSelected\n\n // We can't remove value if group is\n // mandatory, value already exists,\n // and it is the only value\n if (\n isSelected &&\n props.mandatory &&\n internalValue.length <= 1\n ) return\n\n // We can't add value if it would\n // cause max limit to be exceeded\n if (\n !isSelected &&\n props.max != null &&\n internalValue.length + 1 > props.max\n ) return\n\n if (index < 0 && value) internalValue.push(id)\n else if (index >= 0 && !value) internalValue.splice(index, 1)\n\n selected.value = internalValue\n } else {\n const isSelected = selected.value.includes(id)\n if (props.mandatory && isSelected) return\n\n selected.value = (value ?? !isSelected) ? [id] : []\n }\n }\n\n function step (offset: number) {\n // getting an offset from selected value obviously won't work with multiple values\n if (props.multiple) consoleWarn('This method is not supported when using \"multiple\" prop')\n\n if (!selected.value.length) {\n const item = items.find(item => !item.disabled)\n item && (selected.value = [item.id])\n } else {\n const currentId = selected.value[0]\n const currentIndex = items.findIndex(i => i.id === currentId)\n\n let newIndex = (currentIndex + offset) % items.length\n let newItem = items[newIndex]\n\n while (newItem.disabled && newIndex !== currentIndex) {\n newIndex = (newIndex + offset) % items.length\n newItem = items[newIndex]\n }\n\n if (newItem.disabled) return\n\n selected.value = [items[newIndex].id]\n }\n }\n\n const state: GroupProvide = {\n register,\n unregister,\n selected,\n select,\n disabled: toRef(props, 'disabled'),\n prev: () => step(items.length - 1),\n next: () => step(1),\n isSelected: (id: number) => selected.value.includes(id),\n selectedClass: computed(() => props.selectedClass),\n items: computed(() => items),\n getItemIndex: (value: unknown) => getItemIndex(items, value),\n }\n\n provide(injectKey, state)\n\n return state\n}\n\nfunction getItemIndex (items: UnwrapRef<GroupItem[]>, value: unknown) {\n const ids = getIds(items, [value])\n\n if (!ids.length) return -1\n\n return items.findIndex(item => item.id === ids[0])\n}\n\nfunction getIds (items: UnwrapRef<GroupItem[]>, modelValue: any[]) {\n const ids = []\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n\n if (item.value != null) {\n if (modelValue.find(value => deepEqual(value, item.value)) != null) {\n ids.push(item.id)\n }\n } else if (modelValue.includes(i)) {\n ids.push(item.id)\n }\n }\n\n return ids\n}\n\nfunction getValues (items: UnwrapRef<GroupItem[]>, ids: any[]) {\n const values = []\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n\n if (ids.includes(item.id)) {\n values.push(item.value != null ? item.value : i)\n }\n }\n\n return values\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"group.mjs","names":["useProxiedModel","computed","inject","onBeforeUnmount","onMounted","provide","reactive","toRef","watch","consoleWarn","deepEqual","findChildrenWithProvide","getCurrentInstance","getUid","propsFactory","wrapInArray","makeGroupProps","modelValue","type","default","undefined","multiple","Boolean","mandatory","String","max","Number","selectedClass","disabled","makeGroupItemProps","value","useGroupItem","props","injectKey","required","vm","Error","id","Symbol","for","description","group","register","unregister","isSelected","emit","toggle","select","useGroup","isUnmounted","items","selected","v","getIds","arr","getValues","groupVm","item","unwrapped","key","children","vnode","index","indexOf","splice","push","forceMandatoryValue","findIndex","find","length","internalValue","slice","includes","step","offset","currentId","currentIndex","i","newIndex","newItem","state","prev","next","getItemIndex","ids","values"],"sources":["../../src/composables/group.ts"],"sourcesContent":["// Composables\nimport { useProxiedModel } from './proxiedModel'\n\n// Utilities\nimport { computed, inject, onBeforeUnmount, onMounted, provide, reactive, toRef, watch } from 'vue'\nimport { consoleWarn, deepEqual, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, ComputedRef, ExtractPropTypes, InjectionKey, PropType, Ref, UnwrapRef } from 'vue'\n\nexport interface GroupItem {\n id: number\n value: Ref<unknown>\n disabled: Ref<boolean | undefined>\n}\n\nexport interface GroupProps {\n disabled: boolean\n modelValue: unknown\n multiple?: boolean\n mandatory?: boolean | 'force' | undefined\n max?: number | undefined\n selectedClass: string | undefined\n 'onUpdate:modelValue': ((val: unknown) => void) | undefined\n}\n\nexport interface GroupProvide {\n register: (item: GroupItem, cmp: ComponentInternalInstance) => void\n unregister: (id: number) => void\n select: (id: number, value: boolean) => void\n selected: Ref<Readonly<number[]>>\n isSelected: (id: number) => boolean\n prev: () => void\n next: () => void\n selectedClass: Ref<string | undefined>\n items: ComputedRef<{\n id: number\n value: unknown\n disabled: boolean | undefined\n }[]>\n disabled: Ref<boolean | undefined>\n getItemIndex: (value: unknown) => number\n}\n\nexport interface GroupItemProvide {\n id: number\n isSelected: Ref<boolean>\n toggle: () => void\n select: (value: boolean) => void\n selectedClass: Ref<(string | undefined)[] | false>\n value: Ref<unknown>\n disabled: Ref<boolean | undefined>\n group: GroupProvide\n}\n\nexport const makeGroupProps = propsFactory({\n modelValue: {\n type: null,\n default: undefined,\n },\n multiple: Boolean,\n mandatory: [Boolean, String] as PropType<boolean | 'force'>,\n max: Number,\n selectedClass: String,\n disabled: Boolean,\n}, 'group')\n\nexport const makeGroupItemProps = propsFactory({\n value: null,\n disabled: Boolean,\n selectedClass: String,\n}, 'group-item')\n\nexport interface GroupItemProps extends ExtractPropTypes<ReturnType<typeof makeGroupItemProps>> {\n 'onGroup:selected': ((val: { value: boolean }) => void) | undefined\n}\n\n// Composables\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required?: true,\n): GroupItemProvide\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required: false,\n): GroupItemProvide | null\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required = true,\n): GroupItemProvide | null {\n const vm = getCurrentInstance('useGroupItem')\n\n if (!vm) {\n throw new Error(\n '[Vuetify] useGroupItem composable must be used inside a component setup function'\n )\n }\n\n const id = getUid()\n\n provide(Symbol.for(`${injectKey.description}:id`), id)\n\n const group = inject(injectKey, null)\n\n if (!group) {\n if (!required) return group\n\n throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`)\n }\n\n const value = toRef(props, 'value')\n const disabled = computed(() => group.disabled.value || props.disabled)\n\n group.register({\n id,\n value,\n disabled,\n }, vm)\n\n onBeforeUnmount(() => {\n group.unregister(id)\n })\n\n const isSelected = computed(() => {\n return group.isSelected(id)\n })\n\n const selectedClass = computed(() => isSelected.value && [group.selectedClass.value, props.selectedClass])\n\n watch(isSelected, value => {\n vm.emit('group:selected', { value })\n })\n\n return {\n id,\n isSelected,\n toggle: () => group.select(id, !isSelected.value),\n select: (value: boolean) => group.select(id, value),\n selectedClass,\n value,\n disabled,\n group,\n }\n}\n\nexport function useGroup (\n props: GroupProps,\n injectKey: InjectionKey<GroupProvide>\n) {\n let isUnmounted = false\n const items = reactive<GroupItem[]>([])\n const selected = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => {\n if (v == null) return []\n\n return getIds(items, wrapInArray(v))\n },\n v => {\n const arr = getValues(items, v)\n\n return props.multiple ? arr : arr[0]\n }\n )\n\n const groupVm = getCurrentInstance('useGroup')\n\n function register (item: GroupItem, vm: ComponentInternalInstance) {\n // Is there a better way to fix this typing?\n const unwrapped = item as unknown as UnwrapRef<GroupItem>\n\n const key = Symbol.for(`${injectKey.description}:id`)\n const children = findChildrenWithProvide(key, groupVm?.vnode)\n const index = children.indexOf(vm)\n\n if (index > -1) {\n items.splice(index, 0, unwrapped)\n } else {\n items.push(unwrapped)\n }\n }\n\n function unregister (id: number) {\n if (isUnmounted) return\n\n // TODO: re-evaluate this line's importance in the future\n // should we only modify the model if mandatory is set.\n // selected.value = selected.value.filter(v => v !== id)\n\n forceMandatoryValue()\n\n const index = items.findIndex(item => item.id === id)\n items.splice(index, 1)\n }\n\n // If mandatory and nothing is selected, then select first non-disabled item\n function forceMandatoryValue () {\n const item = items.find(item => !item.disabled)\n if (item && props.mandatory === 'force' && !selected.value.length) {\n selected.value = [item.id]\n }\n }\n\n onMounted(() => {\n forceMandatoryValue()\n })\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n function select (id: number, value?: boolean) {\n const item = items.find(item => item.id === id)\n if (value && item?.disabled) return\n\n if (props.multiple) {\n const internalValue = selected.value.slice()\n const index = internalValue.findIndex(v => v === id)\n const isSelected = ~index\n value = value ?? !isSelected\n\n // We can't remove value if group is\n // mandatory, value already exists,\n // and it is the only value\n if (\n isSelected &&\n props.mandatory &&\n internalValue.length <= 1\n ) return\n\n // We can't add value if it would\n // cause max limit to be exceeded\n if (\n !isSelected &&\n props.max != null &&\n internalValue.length + 1 > props.max\n ) return\n\n if (index < 0 && value) internalValue.push(id)\n else if (index >= 0 && !value) internalValue.splice(index, 1)\n\n selected.value = internalValue\n } else {\n const isSelected = selected.value.includes(id)\n if (props.mandatory && isSelected) return\n\n selected.value = (value ?? !isSelected) ? [id] : []\n }\n }\n\n function step (offset: number) {\n // getting an offset from selected value obviously won't work with multiple values\n if (props.multiple) consoleWarn('This method is not supported when using \"multiple\" prop')\n\n if (!selected.value.length) {\n const item = items.find(item => !item.disabled)\n item && (selected.value = [item.id])\n } else {\n const currentId = selected.value[0]\n const currentIndex = items.findIndex(i => i.id === currentId)\n\n let newIndex = (currentIndex + offset) % items.length\n let newItem = items[newIndex]\n\n while (newItem.disabled && newIndex !== currentIndex) {\n newIndex = (newIndex + offset) % items.length\n newItem = items[newIndex]\n }\n\n if (newItem.disabled) return\n\n selected.value = [items[newIndex].id]\n }\n }\n\n const state: GroupProvide = {\n register,\n unregister,\n selected,\n select,\n disabled: toRef(props, 'disabled'),\n prev: () => step(items.length - 1),\n next: () => step(1),\n isSelected: (id: number) => selected.value.includes(id),\n selectedClass: computed(() => props.selectedClass),\n items: computed(() => items),\n getItemIndex: (value: unknown) => getItemIndex(items, value),\n }\n\n provide(injectKey, state)\n\n return state\n}\n\nfunction getItemIndex (items: UnwrapRef<GroupItem[]>, value: unknown) {\n const ids = getIds(items, [value])\n\n if (!ids.length) return -1\n\n return items.findIndex(item => item.id === ids[0])\n}\n\nfunction getIds (items: UnwrapRef<GroupItem[]>, modelValue: any[]) {\n const ids = []\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n\n if (item.value != null) {\n if (modelValue.find(value => deepEqual(value, item.value)) != null) {\n ids.push(item.id)\n }\n } else if (modelValue.includes(i)) {\n ids.push(item.id)\n }\n }\n\n return ids\n}\n\nfunction getValues (items: UnwrapRef<GroupItem[]>, ids: any[]) {\n const values = []\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n\n if (ids.includes(item.id)) {\n values.push(item.value != null ? item.value : i)\n }\n }\n\n return values\n}\n"],"mappings":"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"}
@@ -3,7 +3,6 @@ import { getCurrentInstance, IN_BROWSER } from "../util/index.mjs";
3
3
  import { onMounted } from 'vue';
4
4
  export function useHydration(callback) {
5
5
  var _vm$root, _vm$root$appContext, _vm$root$appContext$a;
6
-
7
6
  if (!IN_BROWSER) return;
8
7
  const vm = getCurrentInstance('useHydration');
9
8
  const rootEl = vm == null ? void 0 : (_vm$root = vm.root) == null ? void 0 : (_vm$root$appContext = _vm$root.appContext) == null ? void 0 : (_vm$root$appContext$a = _vm$root$appContext.app) == null ? void 0 : _vm$root$appContext$a._container;
@@ -1 +1 @@
1
- {"version":3,"file":"hydration.mjs","names":["getCurrentInstance","IN_BROWSER","onMounted","useHydration","callback","vm","rootEl","root","appContext","app","_container","__vue_app__"],"sources":["../../src/composables/hydration.ts"],"sourcesContent":["// Utilities\nimport { getCurrentInstance, IN_BROWSER } from '@/util'\nimport { onMounted } from 'vue'\n\nexport function useHydration (callback: () => void) {\n if (!IN_BROWSER) return\n\n const vm = getCurrentInstance('useHydration')\n const rootEl = vm?.root?.appContext?.app?._container\n\n return rootEl?.__vue_app__ ? callback() : onMounted(callback)\n}\n"],"mappings":"AAAA;SACSA,kB,EAAoBC,U;AAC7B,SAASC,SAAT,QAA0B,KAA1B;AAEA,OAAO,SAASC,YAAT,CAAuBC,QAAvB,EAA6C;EAAA;;EAClD,IAAI,CAACH,UAAL,EAAiB;EAEjB,MAAMI,EAAE,GAAGL,kBAAkB,CAAC,cAAD,CAA7B;EACA,MAAMM,MAAM,GAAGD,EAAH,gCAAGA,EAAE,CAAEE,IAAP,4CAAG,SAAUC,UAAb,8CAAG,oBAAsBC,GAAzB,qBAAG,sBAA2BC,UAA1C;EAEA,OAAOJ,MAAM,QAAN,IAAAA,MAAM,CAAEK,WAAR,GAAsBP,QAAQ,EAA9B,GAAmCF,SAAS,CAACE,QAAD,CAAnD;AACD"}
1
+ {"version":3,"file":"hydration.mjs","names":["getCurrentInstance","IN_BROWSER","onMounted","useHydration","callback","vm","rootEl","root","appContext","app","_container","__vue_app__"],"sources":["../../src/composables/hydration.ts"],"sourcesContent":["// Utilities\nimport { getCurrentInstance, IN_BROWSER } from '@/util'\nimport { onMounted } from 'vue'\n\nexport function useHydration (callback: () => void) {\n if (!IN_BROWSER) return\n\n const vm = getCurrentInstance('useHydration')\n const rootEl = vm?.root?.appContext?.app?._container\n\n return rootEl?.__vue_app__ ? callback() : onMounted(callback)\n}\n"],"mappings":"AAAA;AAAA,SACSA,kBAAkB,EAAEC,UAAU;AACvC,SAASC,SAAS,QAAQ,KAAK;AAE/B,OAAO,SAASC,YAAY,CAAEC,QAAoB,EAAE;EAAA;EAClD,IAAI,CAACH,UAAU,EAAE;EAEjB,MAAMI,EAAE,GAAGL,kBAAkB,CAAC,cAAc,CAAC;EAC7C,MAAMM,MAAM,GAAGD,EAAE,gCAAFA,EAAE,CAAEE,IAAI,4CAAR,SAAUC,UAAU,8CAApB,oBAAsBC,GAAG,qBAAzB,sBAA2BC,UAAU;EAEpD,OAAOJ,MAAM,YAANA,MAAM,CAAEK,WAAW,GAAGP,QAAQ,EAAE,GAAGF,SAAS,CAACE,QAAQ,CAAC;AAC/D"}
@@ -1,10 +1,8 @@
1
1
  import { mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
2
2
  // Icons
3
3
  import { aliases, mdi } from "../iconsets/mdi.mjs"; // Utilities
4
-
5
4
  import { computed, inject, isRef } from 'vue';
6
5
  import { defineComponent, mergeDeep, propsFactory } from "../util/index.mjs"; // Types
7
-
8
6
  export const IconValue = [String, Function, Object];
9
7
  export const IconSymbol = Symbol.for('vuetify:icons');
10
8
  export const makeIconProps = propsFactory({
@@ -21,7 +19,6 @@ export const makeIconProps = propsFactory({
21
19
  export const VComponentIcon = defineComponent({
22
20
  name: 'VComponentIcon',
23
21
  props: makeIconProps(),
24
-
25
22
  setup(props) {
26
23
  return () => {
27
24
  return _createVNode(props.tag, null, {
@@ -29,13 +26,11 @@ export const VComponentIcon = defineComponent({
29
26
  });
30
27
  };
31
28
  }
32
-
33
29
  });
34
30
  export const VSvgIcon = defineComponent({
35
31
  name: 'VSvgIcon',
36
32
  inheritAttrs: false,
37
33
  props: makeIconProps(),
38
-
39
34
  setup(props, _ref) {
40
35
  let {
41
36
  attrs
@@ -56,12 +51,10 @@ export const VSvgIcon = defineComponent({
56
51
  });
57
52
  };
58
53
  }
59
-
60
54
  });
61
55
  export const VLigatureIcon = defineComponent({
62
56
  name: 'VLigatureIcon',
63
57
  props: makeIconProps(),
64
-
65
58
  setup(props) {
66
59
  return () => {
67
60
  return _createVNode(props.tag, null, {
@@ -69,12 +62,10 @@ export const VLigatureIcon = defineComponent({
69
62
  });
70
63
  };
71
64
  }
72
-
73
65
  });
74
66
  export const VClassIcon = defineComponent({
75
67
  name: 'VClassIcon',
76
68
  props: makeIconProps(),
77
-
78
69
  setup(props) {
79
70
  return () => {
80
71
  return _createVNode(props.tag, {
@@ -82,7 +73,6 @@ export const VClassIcon = defineComponent({
82
73
  }, null);
83
74
  };
84
75
  }
85
-
86
76
  });
87
77
  export const defaultSets = {
88
78
  svg: {
@@ -91,12 +81,14 @@ export const defaultSets = {
91
81
  class: {
92
82
  component: VClassIcon
93
83
  }
94
- }; // Composables
84
+ };
95
85
 
86
+ // Composables
96
87
  export function createIcons(options) {
97
88
  return mergeDeep({
98
89
  defaultSet: 'mdi',
99
- sets: { ...defaultSets,
90
+ sets: {
91
+ ...defaultSets,
100
92
  mdi
101
93
  },
102
94
  aliases
@@ -109,22 +101,17 @@ export const useIcon = props => {
109
101
  const iconAlias = isRef(props) ? props.value : props.icon;
110
102
  if (!iconAlias) throw new Error('Icon value is undefined or null');
111
103
  let icon = iconAlias;
112
-
113
104
  if (typeof iconAlias === 'string' && iconAlias.includes('$')) {
114
105
  var _icons$aliases;
115
-
116
106
  icon = (_icons$aliases = icons.aliases) == null ? void 0 : _icons$aliases[iconAlias.slice(iconAlias.indexOf('$') + 1)];
117
107
  }
118
-
119
108
  if (!icon) throw new Error(`Could not find aliased icon "${iconAlias}"`);
120
-
121
109
  if (typeof icon !== 'string') {
122
110
  return {
123
111
  component: VComponentIcon,
124
112
  icon
125
113
  };
126
114
  }
127
-
128
115
  const iconSetName = Object.keys(icons.sets).find(setName => typeof icon === 'string' && icon.startsWith(`${setName}:`));
129
116
  const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon;
130
117
  const iconSet = icons.sets[iconSetName ?? icons.defaultSet];