vuetify 3.2.2 → 3.2.4

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 (343) hide show
  1. package/dist/json/attributes.json +549 -253
  2. package/dist/json/importMap.json +20 -20
  3. package/dist/json/tags.json +77 -2
  4. package/dist/json/web-types.json +1292 -566
  5. package/dist/vuetify-labs.css +113 -110
  6. package/dist/vuetify-labs.d.ts +2593 -11751
  7. package/dist/vuetify-labs.esm.js +2352 -2248
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +2352 -2248
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +38 -35
  12. package/dist/vuetify.d.ts +1264 -11210
  13. package/dist/vuetify.esm.js +1818 -1702
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +1818 -1702
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +652 -652
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/blueprints/index.d.ts +1 -3
  21. package/lib/blueprints/md1.d.ts +1 -3
  22. package/lib/blueprints/md2.d.ts +1 -3
  23. package/lib/blueprints/md3.d.ts +1 -3
  24. package/lib/components/VAlert/VAlert.mjs +48 -48
  25. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  26. package/lib/components/VAlert/index.d.ts +2 -2
  27. package/lib/components/VApp/VApp.mjs +9 -8
  28. package/lib/components/VApp/VApp.mjs.map +1 -1
  29. package/lib/components/VAppBar/VAppBar.mjs +23 -22
  30. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  31. package/lib/components/VAppBar/VAppBarNavIcon.mjs +9 -7
  32. package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
  33. package/lib/components/VAppBar/VAppBarTitle.mjs +1 -2
  34. package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
  35. package/lib/components/VAppBar/index.d.ts +4 -4
  36. package/lib/components/VAutocomplete/VAutocomplete.css +0 -4
  37. package/lib/components/VAutocomplete/VAutocomplete.mjs +33 -38
  38. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  39. package/lib/components/VAutocomplete/VAutocomplete.sass +0 -5
  40. package/lib/components/VAutocomplete/index.d.ts +76 -1183
  41. package/lib/components/VBadge/VBadge.mjs +33 -32
  42. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  43. package/lib/components/VBanner/VBanner.mjs +21 -20
  44. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  45. package/lib/components/VBanner/VBannerActions.mjs +7 -6
  46. package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
  47. package/lib/components/VBanner/index.d.ts +2 -2
  48. package/lib/components/VBottomNavigation/VBottomNavigation.mjs +35 -34
  49. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  50. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +24 -23
  51. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  52. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +6 -5
  53. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
  54. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +15 -14
  55. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  56. package/lib/components/VBreadcrumbs/index.d.ts +1 -0
  57. package/lib/components/VBtnToggle/VBtnToggle.mjs +6 -5
  58. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  59. package/lib/components/VCard/VCard.mjs +38 -37
  60. package/lib/components/VCard/VCard.mjs.map +1 -1
  61. package/lib/components/VCard/VCardItem.mjs +12 -11
  62. package/lib/components/VCard/VCardItem.mjs.map +1 -1
  63. package/lib/components/VCard/index.d.ts +4 -4
  64. package/lib/components/VCarousel/VCarousel.mjs +28 -27
  65. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  66. package/lib/components/VCarousel/VCarouselItem.mjs +18 -16
  67. package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
  68. package/lib/components/VCarousel/index.d.ts +170 -20
  69. package/lib/components/VCheckbox/VCheckbox.mjs +6 -5
  70. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  71. package/lib/components/VCheckbox/index.d.ts +24 -12
  72. package/lib/components/VChip/VChip.css +7 -0
  73. package/lib/components/VChip/VChip.mjs +60 -57
  74. package/lib/components/VChip/VChip.mjs.map +1 -1
  75. package/lib/components/VChip/VChip.sass +9 -0
  76. package/lib/components/VChip/index.d.ts +8 -8
  77. package/lib/components/VChipGroup/VChipGroup.mjs +19 -18
  78. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  79. package/lib/components/VColorPicker/VColorPicker.mjs +44 -39
  80. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  81. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +26 -25
  82. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  83. package/lib/components/VColorPicker/VColorPickerEdit.mjs +17 -16
  84. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  85. package/lib/components/VColorPicker/VColorPickerPreview.mjs +10 -9
  86. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  87. package/lib/components/VColorPicker/VColorPickerSwatches.mjs +12 -11
  88. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  89. package/lib/components/VColorPicker/index.d.ts +4 -4
  90. package/lib/components/VColorPicker/util/index.mjs +2 -2
  91. package/lib/components/VColorPicker/util/index.mjs.map +1 -1
  92. package/lib/components/VCombobox/VCombobox.mjs +37 -41
  93. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  94. package/lib/components/VCombobox/index.d.ts +76 -1180
  95. package/lib/components/VCounter/VCounter.mjs +16 -15
  96. package/lib/components/VCounter/VCounter.mjs.map +1 -1
  97. package/lib/components/VCounter/index.d.ts +25 -1774
  98. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs +9 -8
  99. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
  100. package/lib/components/VDialog/VDialog.mjs +18 -17
  101. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  102. package/lib/components/VDialog/index.d.ts +130 -1120
  103. package/lib/components/VDivider/VDivider.mjs +11 -10
  104. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  105. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +15 -15
  106. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  107. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +6 -5
  108. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
  109. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +3 -5
  110. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  111. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +15 -14
  112. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  113. package/lib/components/VExpansionPanel/index.d.ts +15 -15
  114. package/lib/components/VField/VField.mjs +6 -2
  115. package/lib/components/VField/VField.mjs.map +1 -1
  116. package/lib/components/VField/VFieldLabel.mjs +6 -5
  117. package/lib/components/VField/VFieldLabel.mjs.map +1 -1
  118. package/lib/components/VFileInput/VFileInput.mjs +35 -34
  119. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  120. package/lib/components/VFileInput/index.d.ts +3 -3
  121. package/lib/components/VFooter/VFooter.mjs +21 -20
  122. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  123. package/lib/components/VForm/VForm.mjs +6 -5
  124. package/lib/components/VForm/VForm.mjs.map +1 -1
  125. package/lib/components/VForm/index.d.ts +6 -6
  126. package/lib/components/VGrid/VCol.mjs +26 -25
  127. package/lib/components/VGrid/VCol.mjs.map +1 -1
  128. package/lib/components/VGrid/VContainer.mjs +16 -11
  129. package/lib/components/VGrid/VContainer.mjs.map +1 -1
  130. package/lib/components/VGrid/VRow.mjs +26 -25
  131. package/lib/components/VGrid/VRow.mjs.map +1 -1
  132. package/lib/components/VHover/VHover.mjs +10 -9
  133. package/lib/components/VHover/VHover.mjs.map +1 -1
  134. package/lib/components/VImg/VImg.mjs +35 -34
  135. package/lib/components/VImg/VImg.mjs.map +1 -1
  136. package/lib/components/VImg/index.d.ts +12 -12
  137. package/lib/components/VItemGroup/VItemGroup.mjs +10 -9
  138. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  139. package/lib/components/VLabel/VLabel.mjs +8 -7
  140. package/lib/components/VLabel/VLabel.mjs.map +1 -1
  141. package/lib/components/VLayout/VLayout.mjs +6 -5
  142. package/lib/components/VLayout/VLayout.mjs.map +1 -1
  143. package/lib/components/VLayout/VLayoutItem.mjs +15 -14
  144. package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
  145. package/lib/components/VLazy/VLazy.mjs +21 -20
  146. package/lib/components/VLazy/VLazy.mjs.map +1 -1
  147. package/lib/components/VList/VList.mjs +35 -34
  148. package/lib/components/VList/VList.mjs.map +1 -1
  149. package/lib/components/VList/VListChildren.mjs +5 -4
  150. package/lib/components/VList/VListChildren.mjs.map +1 -1
  151. package/lib/components/VList/VListGroup.mjs +2 -4
  152. package/lib/components/VList/VListGroup.mjs.map +1 -1
  153. package/lib/components/VList/VListItem.mjs +42 -41
  154. package/lib/components/VList/VListItem.mjs.map +1 -1
  155. package/lib/components/VList/VListItemAction.mjs +8 -7
  156. package/lib/components/VList/VListItemAction.mjs.map +1 -1
  157. package/lib/components/VList/VListItemMedia.mjs +8 -7
  158. package/lib/components/VList/VListItemMedia.mjs.map +1 -1
  159. package/lib/components/VList/VListSubheader.mjs +10 -9
  160. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  161. package/lib/components/VList/index.d.ts +38 -38
  162. package/lib/components/VList/list.mjs +4 -4
  163. package/lib/components/VList/list.mjs.map +1 -1
  164. package/lib/components/VLocaleProvider/VLocaleProvider.mjs +12 -11
  165. package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
  166. package/lib/components/VMain/VMain.mjs +9 -8
  167. package/lib/components/VMain/VMain.mjs.map +1 -1
  168. package/lib/components/VMenu/VMenu.mjs +21 -20
  169. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  170. package/lib/components/VMenu/index.d.ts +43 -1033
  171. package/lib/components/VMessages/VMessages.mjs +18 -17
  172. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  173. package/lib/components/VMessages/index.d.ts +25 -1774
  174. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +50 -49
  175. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  176. package/lib/components/VNavigationDrawer/index.d.ts +3 -3
  177. package/lib/components/VNavigationDrawer/sticky.mjs +14 -7
  178. package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -1
  179. package/lib/components/VNavigationDrawer/touch.mjs +4 -4
  180. package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
  181. package/lib/components/VOverlay/locationStrategies.mjs +5 -3
  182. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  183. package/lib/components/VPagination/VPagination.mjs +84 -83
  184. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  185. package/lib/components/VPagination/index.d.ts +8 -8
  186. package/lib/components/VParallax/VParallax.mjs +9 -8
  187. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  188. package/lib/components/VProgressCircular/VProgressCircular.mjs +25 -24
  189. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  190. package/lib/components/VProgressLinear/VProgressLinear.mjs +44 -42
  191. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  192. package/lib/components/VProgressLinear/index.d.ts +8 -8
  193. package/lib/components/VRadio/VRadio.mjs +8 -7
  194. package/lib/components/VRadio/VRadio.mjs.map +1 -1
  195. package/lib/components/VRadio/index.d.ts +18 -12
  196. package/lib/components/VRadioGroup/VRadioGroup.mjs +22 -21
  197. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  198. package/lib/components/VRadioGroup/index.d.ts +16 -10
  199. package/lib/components/VRangeSlider/VRangeSlider.mjs +18 -13
  200. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  201. package/lib/components/VRating/VRating.mjs +49 -45
  202. package/lib/components/VRating/VRating.mjs.map +1 -1
  203. package/lib/components/VRating/index.d.ts +8 -8
  204. package/lib/components/VResponsive/VResponsive.mjs +8 -7
  205. package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
  206. package/lib/components/VSelect/VSelect.mjs +22 -21
  207. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  208. package/lib/components/VSelect/index.d.ts +73 -2515
  209. package/lib/components/VSelectionControl/VSelectionControl.mjs +3 -3
  210. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  211. package/lib/components/VSelectionControl/index.d.ts +45 -39
  212. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +10 -10
  213. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  214. package/lib/components/VSelectionControlGroup/index.d.ts +28 -28
  215. package/lib/components/VSheet/VSheet.mjs +1 -3
  216. package/lib/components/VSheet/VSheet.mjs.map +1 -1
  217. package/lib/components/VSlideGroup/VSlideGroup.mjs +7 -7
  218. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  219. package/lib/components/VSlideGroup/VSlideGroupItem.mjs +1 -3
  220. package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
  221. package/lib/components/VSlideGroup/index.d.ts +3 -3
  222. package/lib/components/VSlider/VSlider.mjs +18 -13
  223. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  224. package/lib/components/VSlider/VSliderThumb.mjs +26 -25
  225. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  226. package/lib/components/VSlider/VSliderTrack.mjs +13 -12
  227. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  228. package/lib/components/VSlider/slider.mjs +3 -3
  229. package/lib/components/VSlider/slider.mjs.map +1 -1
  230. package/lib/components/VSnackbar/VSnackbar.mjs +20 -19
  231. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  232. package/lib/components/VSwitch/VSwitch.mjs +13 -12
  233. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  234. package/lib/components/VSwitch/index.d.ts +18 -12
  235. package/lib/components/VSystemBar/VSystemBar.mjs +15 -14
  236. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  237. package/lib/components/VTable/VTable.mjs +12 -11
  238. package/lib/components/VTable/VTable.mjs.map +1 -1
  239. package/lib/components/VTabs/VTab.mjs +19 -19
  240. package/lib/components/VTabs/VTab.mjs.map +1 -1
  241. package/lib/components/VTabs/VTabs.mjs +28 -27
  242. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  243. package/lib/components/VTabs/index.d.ts +12 -12
  244. package/lib/components/VTextField/index.d.ts +3 -3
  245. package/lib/components/VTextarea/VTextarea.mjs +31 -27
  246. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  247. package/lib/components/VTextarea/index.d.ts +3 -3
  248. package/lib/components/VThemeProvider/VThemeProvider.mjs +8 -7
  249. package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
  250. package/lib/components/VTimeline/VTimeline.mjs +46 -41
  251. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  252. package/lib/components/VTimeline/VTimelineDivider.mjs +14 -13
  253. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  254. package/lib/components/VTimeline/VTimelineItem.mjs +23 -22
  255. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  256. package/lib/components/VToolbar/VToolbar.mjs +8 -4
  257. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  258. package/lib/components/VToolbar/VToolbarItems.mjs +8 -7
  259. package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
  260. package/lib/components/VToolbar/index.d.ts +11 -11
  261. package/lib/components/VTooltip/VTooltip.mjs +20 -19
  262. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  263. package/lib/components/VValidation/VValidation.mjs +1 -3
  264. package/lib/components/VValidation/VValidation.mjs.map +1 -1
  265. package/lib/components/VVirtualScroll/VVirtualScroll.mjs +14 -13
  266. package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  267. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs +6 -5
  268. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
  269. package/lib/components/VWindow/VWindow.mjs +3 -3
  270. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  271. package/lib/components/VWindow/VWindowItem.mjs +18 -17
  272. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  273. package/lib/components/VWindow/index.d.ts +9 -9
  274. package/lib/components/index.d.ts +1328 -11279
  275. package/lib/components/transitions/createTransition.mjs +16 -15
  276. package/lib/components/transitions/createTransition.mjs.map +1 -1
  277. package/lib/components/transitions/dialog-transition.mjs +5 -4
  278. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  279. package/lib/components/transitions/index.d.ts +143 -143
  280. package/lib/composables/display.mjs +3 -3
  281. package/lib/composables/display.mjs.map +1 -1
  282. package/lib/composables/form.mjs +4 -4
  283. package/lib/composables/form.mjs.map +1 -1
  284. package/lib/composables/forwardRefs.mjs.map +1 -1
  285. package/lib/composables/hydration.mjs +6 -6
  286. package/lib/composables/hydration.mjs.map +1 -1
  287. package/lib/composables/intersectionObserver.mjs +2 -2
  288. package/lib/composables/intersectionObserver.mjs.map +1 -1
  289. package/lib/composables/layout.mjs +3 -3
  290. package/lib/composables/layout.mjs.map +1 -1
  291. package/lib/composables/lazy.mjs +2 -2
  292. package/lib/composables/lazy.mjs.map +1 -1
  293. package/lib/composables/nested/nested.mjs +5 -4
  294. package/lib/composables/nested/nested.mjs.map +1 -1
  295. package/lib/composables/scroll.mjs +6 -6
  296. package/lib/composables/scroll.mjs.map +1 -1
  297. package/lib/composables/ssrBoot.mjs +2 -2
  298. package/lib/composables/ssrBoot.mjs.map +1 -1
  299. package/lib/composables/stack.mjs +5 -4
  300. package/lib/composables/stack.mjs.map +1 -1
  301. package/lib/composables/theme.mjs +3 -3
  302. package/lib/composables/theme.mjs.map +1 -1
  303. package/lib/composables/transition.mjs +5 -2
  304. package/lib/composables/transition.mjs.map +1 -1
  305. package/lib/composables/validation.mjs +3 -3
  306. package/lib/composables/validation.mjs.map +1 -1
  307. package/lib/directives/click-outside/index.mjs +1 -1
  308. package/lib/directives/click-outside/index.mjs.map +1 -1
  309. package/lib/entry-bundler.mjs +1 -1
  310. package/lib/framework.mjs +1 -1
  311. package/lib/index.d.ts +15 -10
  312. package/lib/labs/VDataTable/VDataTable.mjs +54 -59
  313. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  314. package/lib/labs/VDataTable/VDataTableFooter.mjs +64 -63
  315. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  316. package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs +8 -7
  317. package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs.map +1 -1
  318. package/lib/labs/VDataTable/VDataTableHeaders.mjs +16 -15
  319. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
  320. package/lib/labs/VDataTable/VDataTableRow.mjs +7 -6
  321. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
  322. package/lib/labs/VDataTable/VDataTableRows.mjs +20 -19
  323. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  324. package/lib/labs/VDataTable/VDataTableServer.mjs +54 -64
  325. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  326. package/lib/labs/VDataTable/VDataTableVirtual.mjs +70 -77
  327. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  328. package/lib/labs/VDataTable/composables/virtual.mjs +3 -3
  329. package/lib/labs/VDataTable/composables/virtual.mjs.map +1 -1
  330. package/lib/labs/VDataTable/index.d.ts +991 -206
  331. package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs +54 -48
  332. package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
  333. package/lib/labs/VInfiniteScroll/index.d.ts +16 -1
  334. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs +18 -17
  335. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
  336. package/lib/labs/VSkeletonLoader/index.d.ts +9 -9
  337. package/lib/labs/components.d.ts +1011 -211
  338. package/lib/labs/date/date.mjs +7 -7
  339. package/lib/labs/date/date.mjs.map +1 -1
  340. package/lib/labs/date/index.d.ts +1 -3
  341. package/lib/locale/adapters/vuetify.mjs +8 -5
  342. package/lib/locale/adapters/vuetify.mjs.map +1 -1
  343. package/package.json +2 -2
@@ -20,90 +20,91 @@ import { useLocale, useRtl } from "../../composables/locale.mjs";
20
20
  import { useProxiedModel } from "../../composables/proxiedModel.mjs";
21
21
  import { useRefs } from "../../composables/refs.mjs";
22
22
  import { useResizeObserver } from "../../composables/resizeObserver.mjs"; // Utilities
23
- import { computed, nextTick, ref, toRef } from 'vue';
24
- import { createRange, genericComponent, keyValues, useRender } from "../../util/index.mjs"; // Types
23
+ import { computed, nextTick, shallowRef, toRef } from 'vue';
24
+ import { createRange, genericComponent, keyValues, propsFactory, useRender } from "../../util/index.mjs"; // Types
25
+ export const makeVPaginationProps = propsFactory({
26
+ activeColor: String,
27
+ start: {
28
+ type: [Number, String],
29
+ default: 1
30
+ },
31
+ modelValue: {
32
+ type: Number,
33
+ default: props => props.start
34
+ },
35
+ disabled: Boolean,
36
+ length: {
37
+ type: [Number, String],
38
+ default: 1,
39
+ validator: val => val % 1 === 0
40
+ },
41
+ totalVisible: [Number, String],
42
+ firstIcon: {
43
+ type: IconValue,
44
+ default: '$first'
45
+ },
46
+ prevIcon: {
47
+ type: IconValue,
48
+ default: '$prev'
49
+ },
50
+ nextIcon: {
51
+ type: IconValue,
52
+ default: '$next'
53
+ },
54
+ lastIcon: {
55
+ type: IconValue,
56
+ default: '$last'
57
+ },
58
+ ariaLabel: {
59
+ type: String,
60
+ default: '$vuetify.pagination.ariaLabel.root'
61
+ },
62
+ pageAriaLabel: {
63
+ type: String,
64
+ default: '$vuetify.pagination.ariaLabel.page'
65
+ },
66
+ currentPageAriaLabel: {
67
+ type: String,
68
+ default: '$vuetify.pagination.ariaLabel.currentPage'
69
+ },
70
+ firstAriaLabel: {
71
+ type: String,
72
+ default: '$vuetify.pagination.ariaLabel.first'
73
+ },
74
+ previousAriaLabel: {
75
+ type: String,
76
+ default: '$vuetify.pagination.ariaLabel.previous'
77
+ },
78
+ nextAriaLabel: {
79
+ type: String,
80
+ default: '$vuetify.pagination.ariaLabel.next'
81
+ },
82
+ lastAriaLabel: {
83
+ type: String,
84
+ default: '$vuetify.pagination.ariaLabel.last'
85
+ },
86
+ ellipsis: {
87
+ type: String,
88
+ default: '...'
89
+ },
90
+ showFirstLastPage: Boolean,
91
+ ...makeBorderProps(),
92
+ ...makeComponentProps(),
93
+ ...makeDensityProps(),
94
+ ...makeElevationProps(),
95
+ ...makeRoundedProps(),
96
+ ...makeSizeProps(),
97
+ ...makeTagProps({
98
+ tag: 'nav'
99
+ }),
100
+ ...makeThemeProps(),
101
+ ...makeVariantProps({
102
+ variant: 'text'
103
+ })
104
+ }, 'v-pagination');
25
105
  export const VPagination = genericComponent()({
26
106
  name: 'VPagination',
27
- props: {
28
- activeColor: String,
29
- start: {
30
- type: [Number, String],
31
- default: 1
32
- },
33
- modelValue: {
34
- type: Number,
35
- default: props => props.start
36
- },
37
- disabled: Boolean,
38
- length: {
39
- type: [Number, String],
40
- default: 1,
41
- validator: val => val % 1 === 0
42
- },
43
- totalVisible: [Number, String],
44
- firstIcon: {
45
- type: IconValue,
46
- default: '$first'
47
- },
48
- prevIcon: {
49
- type: IconValue,
50
- default: '$prev'
51
- },
52
- nextIcon: {
53
- type: IconValue,
54
- default: '$next'
55
- },
56
- lastIcon: {
57
- type: IconValue,
58
- default: '$last'
59
- },
60
- ariaLabel: {
61
- type: String,
62
- default: '$vuetify.pagination.ariaLabel.root'
63
- },
64
- pageAriaLabel: {
65
- type: String,
66
- default: '$vuetify.pagination.ariaLabel.page'
67
- },
68
- currentPageAriaLabel: {
69
- type: String,
70
- default: '$vuetify.pagination.ariaLabel.currentPage'
71
- },
72
- firstAriaLabel: {
73
- type: String,
74
- default: '$vuetify.pagination.ariaLabel.first'
75
- },
76
- previousAriaLabel: {
77
- type: String,
78
- default: '$vuetify.pagination.ariaLabel.previous'
79
- },
80
- nextAriaLabel: {
81
- type: String,
82
- default: '$vuetify.pagination.ariaLabel.next'
83
- },
84
- lastAriaLabel: {
85
- type: String,
86
- default: '$vuetify.pagination.ariaLabel.last'
87
- },
88
- ellipsis: {
89
- type: String,
90
- default: '...'
91
- },
92
- showFirstLastPage: Boolean,
93
- ...makeBorderProps(),
94
- ...makeComponentProps(),
95
- ...makeDensityProps(),
96
- ...makeElevationProps(),
97
- ...makeRoundedProps(),
98
- ...makeSizeProps(),
99
- ...makeTagProps({
100
- tag: 'nav'
101
- }),
102
- ...makeThemeProps(),
103
- ...makeVariantProps({
104
- variant: 'text'
105
- })
106
- },
107
+ props: makeVPaginationProps(),
107
108
  emits: {
108
109
  'update:modelValue': value => true,
109
110
  first: value => true,
@@ -130,7 +131,7 @@ export const VPagination = genericComponent()({
130
131
  const {
131
132
  width
132
133
  } = useDisplay();
133
- const maxButtons = ref(-1);
134
+ const maxButtons = shallowRef(-1);
134
135
  provideDefaults(undefined, {
135
136
  scoped: true
136
137
  });
@@ -1 +1 @@
1
- {"version":3,"file":"VPagination.mjs","names":["VBtn","IconValue","makeBorderProps","makeComponentProps","makeDensityProps","makeElevationProps","makeRoundedProps","makeSizeProps","makeTagProps","makeThemeProps","provideTheme","makeVariantProps","provideDefaults","useDisplay","useLocale","useRtl","useProxiedModel","useRefs","useResizeObserver","computed","nextTick","ref","toRef","createRange","genericComponent","keyValues","useRender","VPagination","name","props","activeColor","String","start","type","Number","default","modelValue","disabled","Boolean","length","validator","val","totalVisible","firstIcon","prevIcon","nextIcon","lastIcon","ariaLabel","pageAriaLabel","currentPageAriaLabel","firstAriaLabel","previousAriaLabel","nextAriaLabel","lastAriaLabel","ellipsis","showFirstLastPage","tag","variant","emits","value","first","prev","next","last","setup","_ref","slots","emit","page","t","n","isRtl","themeClasses","width","maxButtons","undefined","scoped","resizeRef","entries","target","contentRect","firstItem","querySelector","totalWidth","itemWidth","offsetWidth","parseFloat","getComputedStyle","marginRight","getMax","parseInt","minButtons","Math","max","floor","toFixed","range","isNaN","MAX_SAFE_INTEGER","even","middle","left","right","rangeLength","rangeStart","ceil","setValue","e","event","preventDefault","refs","updateRef","VPaginationBtn","color","border","density","size","rounded","elevation","items","map","item","index","isActive","key","icon","ariaCurrent","onClick","controls","prevDisabled","nextDisabled","ariaDisabled","updateFocus","currentIndex","$el","focus","onKeydown","_createVNode","class","style","_mergeProps"],"sources":["../../../src/components/VPagination/VPagination.tsx"],"sourcesContent":["// Styles\nimport './VPagination.sass'\n\n// Components\nimport { VBtn } from '../VBtn'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeBorderProps } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps } from '@/composables/density'\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useDisplay } from '@/composables'\nimport { useLocale, useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useRefs } from '@/composables/refs'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, nextTick, ref, toRef } from 'vue'\nimport { createRange, genericComponent, keyValues, useRender } from '@/util'\n\n// Types\nimport type { ComponentPublicInstance } from 'vue'\n\nexport type VPaginationSlots = {\n item: []\n first: []\n next: []\n prev: []\n last: []\n}\n\nexport const VPagination = genericComponent<VPaginationSlots>()({\n name: 'VPagination',\n\n props: {\n activeColor: String,\n start: {\n type: [Number, String],\n default: 1,\n },\n modelValue: {\n type: Number,\n default: (props: any) => props.start,\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: (val: number) => val % 1 === 0,\n },\n totalVisible: [Number, String],\n firstIcon: {\n type: IconValue,\n default: '$first',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n lastIcon: {\n type: IconValue,\n default: '$last',\n },\n ariaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.root',\n },\n pageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.page',\n },\n currentPageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.currentPage',\n },\n firstAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.first',\n },\n previousAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.previous',\n },\n nextAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.next',\n },\n lastAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.last',\n },\n ellipsis: {\n type: String,\n default: '...',\n },\n showFirstLastPage: Boolean,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n },\n\n emits: {\n 'update:modelValue': (value: number) => true,\n first: (value: number) => true,\n prev: (value: number) => true,\n next: (value: number) => true,\n last: (value: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const page = useProxiedModel(props, 'modelValue')\n const { t, n } = useLocale()\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { width } = useDisplay()\n const maxButtons = ref(-1)\n\n provideDefaults(undefined, { scoped: true })\n\n const { resizeRef } = useResizeObserver((entries: ResizeObserverEntry[]) => {\n if (!entries.length) return\n\n const { target, contentRect } = entries[0]\n\n const firstItem = target.querySelector('.v-pagination__list > *') as HTMLElement\n\n if (!firstItem) return\n\n const totalWidth = contentRect.width\n const itemWidth =\n firstItem.offsetWidth +\n parseFloat(getComputedStyle(firstItem).marginRight) * 2\n\n maxButtons.value = getMax(totalWidth, itemWidth)\n })\n\n const length = computed(() => parseInt(props.length, 10))\n const start = computed(() => parseInt(props.start, 10))\n\n const totalVisible = computed(() => {\n if (props.totalVisible) return parseInt(props.totalVisible, 10)\n else if (maxButtons.value >= 0) return maxButtons.value\n return getMax(width.value, 58)\n })\n\n function getMax (totalWidth: number, itemWidth: number) {\n const minButtons = props.showFirstLastPage ? 5 : 3\n return Math.max(0, Math.floor(\n // Round to two decimal places to avoid floating point errors\n +((totalWidth - itemWidth * minButtons) / itemWidth).toFixed(2)\n ))\n }\n\n const range = computed(() => {\n if (length.value <= 0 || isNaN(length.value) || length.value > Number.MAX_SAFE_INTEGER) return []\n\n if (totalVisible.value <= 1) return [page.value]\n\n if (length.value <= totalVisible.value) {\n return createRange(length.value, start.value)\n }\n\n const even = totalVisible.value % 2 === 0\n const middle = even ? totalVisible.value / 2 : Math.floor(totalVisible.value / 2)\n const left = even ? middle : middle + 1\n const right = length.value - middle\n\n if (left - page.value >= 0) {\n return [...createRange(Math.max(1, totalVisible.value - 1), start.value), props.ellipsis, length.value]\n } else if (page.value - right >= (even ? 1 : 0)) {\n const rangeLength = totalVisible.value - 1\n const rangeStart = length.value - rangeLength + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart)]\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 3)\n const rangeStart = rangeLength === 1 ? page.value : page.value - Math.ceil(rangeLength / 2) + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart), props.ellipsis, length.value]\n }\n })\n\n // TODO: 'first' | 'prev' | 'next' | 'last' does not work here?\n function setValue (e: Event, value: number, event?: any) {\n e.preventDefault()\n page.value = value\n event && emit(event, value)\n }\n\n const { refs, updateRef } = useRefs<ComponentPublicInstance>()\n\n provideDefaults({\n VPaginationBtn: {\n color: toRef(props, 'color'),\n border: toRef(props, 'border'),\n density: toRef(props, 'density'),\n size: toRef(props, 'size'),\n variant: toRef(props, 'variant'),\n rounded: toRef(props, 'rounded'),\n elevation: toRef(props, 'elevation'),\n },\n })\n\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = (e: any) => updateRef(e, index)\n\n if (typeof item === 'string') {\n return {\n isActive: false,\n key: `ellipsis-${index}`,\n page: item,\n props: {\n ref,\n ellipsis: true,\n icon: true,\n disabled: true,\n },\n }\n } else {\n const isActive = item === page.value\n return {\n isActive,\n key: item,\n page: n(item),\n props: {\n ref,\n ellipsis: false,\n icon: true,\n disabled: !!props.disabled || +props.length < 2,\n color: isActive ? props.activeColor : props.color,\n ariaCurrent: isActive,\n ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, item),\n onClick: (e: Event) => setValue(e, item),\n },\n }\n }\n })\n })\n\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value\n const nextDisabled = !!props.disabled || page.value >= start.value + length.value - 1\n\n return {\n first: props.showFirstLastPage ? {\n icon: isRtl.value ? props.lastIcon : props.firstIcon,\n onClick: (e: Event) => setValue(e, start.value, 'first'),\n disabled: prevDisabled,\n ariaLabel: t(props.firstAriaLabel),\n ariaDisabled: prevDisabled,\n } : undefined,\n prev: {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n onClick: (e: Event) => setValue(e, page.value - 1, 'prev'),\n disabled: prevDisabled,\n ariaLabel: t(props.previousAriaLabel),\n ariaDisabled: prevDisabled,\n },\n next: {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n onClick: (e: Event) => setValue(e, page.value + 1, 'next'),\n disabled: nextDisabled,\n ariaLabel: t(props.nextAriaLabel),\n ariaDisabled: nextDisabled,\n },\n last: props.showFirstLastPage ? {\n icon: isRtl.value ? props.firstIcon : props.lastIcon,\n onClick: (e: Event) => setValue(e, start.value + length.value - 1, 'last'),\n disabled: nextDisabled,\n ariaLabel: t(props.lastAriaLabel),\n ariaDisabled: nextDisabled,\n } : undefined,\n }\n })\n\n function updateFocus () {\n const currentIndex = page.value - start.value\n refs.value[currentIndex]?.$el.focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key === keyValues.left && !props.disabled && page.value > +props.start) {\n page.value = page.value - 1\n nextTick(updateFocus)\n } else if (e.key === keyValues.right && !props.disabled && page.value < start.value + length.value - 1) {\n page.value = page.value + 1\n nextTick(updateFocus)\n }\n }\n\n useRender(() => (\n <props.tag\n ref={ resizeRef }\n class={[\n 'v-pagination',\n themeClasses.value,\n props.class,\n ]}\n style={ props.style }\n role=\"navigation\"\n aria-label={ t(props.ariaLabel) }\n onKeydown={ onKeydown }\n data-test=\"v-pagination-root\"\n >\n <ul class=\"v-pagination__list\">\n { props.showFirstLastPage && (\n <li key=\"first\" class=\"v-pagination__first\" data-test=\"v-pagination-first\">\n { slots.first ? slots.first(controls.value.first) : (\n <VBtn _as=\"VPaginationBtn\" { ...controls.value.first } />\n )}\n </li>\n )}\n\n <li key=\"prev\" class=\"v-pagination__prev\" data-test=\"v-pagination-prev\">\n { slots.prev ? slots.prev(controls.value.prev) : (\n <VBtn _as=\"VPaginationBtn\" { ...controls.value.prev } />\n )}\n </li>\n\n { items.value.map((item, index) => (\n <li\n key={ item.key }\n class={[\n 'v-pagination__item',\n {\n 'v-pagination__item--is-active': item.isActive,\n },\n ]}\n data-test=\"v-pagination-item\"\n >\n { slots.item ? slots.item(item) : (\n <VBtn _as=\"VPaginationBtn\" { ...item.props }>{ item.page }</VBtn>\n )}\n </li>\n ))}\n\n <li\n key=\"next\"\n class=\"v-pagination__next\"\n data-test=\"v-pagination-next\"\n >\n { slots.next ? slots.next(controls.value.next) : (\n <VBtn _as=\"VPaginationBtn\" { ...controls.value.next } />\n )}\n </li>\n\n { props.showFirstLastPage && (\n <li\n key=\"last\"\n class=\"v-pagination__last\"\n data-test=\"v-pagination-last\"\n >\n { slots.last ? slots.last(controls.value.last) : (\n <VBtn _as=\"VPaginationBtn\" { ...controls.value.last } />\n )}\n </li>\n )}\n </ul>\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VPagination = InstanceType<typeof VPagination>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VPagination.mjs","names":["VBtn","IconValue","makeBorderProps","makeComponentProps","makeDensityProps","makeElevationProps","makeRoundedProps","makeSizeProps","makeTagProps","makeThemeProps","provideTheme","makeVariantProps","provideDefaults","useDisplay","useLocale","useRtl","useProxiedModel","useRefs","useResizeObserver","computed","nextTick","shallowRef","toRef","createRange","genericComponent","keyValues","propsFactory","useRender","makeVPaginationProps","activeColor","String","start","type","Number","default","modelValue","props","disabled","Boolean","length","validator","val","totalVisible","firstIcon","prevIcon","nextIcon","lastIcon","ariaLabel","pageAriaLabel","currentPageAriaLabel","firstAriaLabel","previousAriaLabel","nextAriaLabel","lastAriaLabel","ellipsis","showFirstLastPage","tag","variant","VPagination","name","emits","value","first","prev","next","last","setup","_ref","slots","emit","page","t","n","isRtl","themeClasses","width","maxButtons","undefined","scoped","resizeRef","entries","target","contentRect","firstItem","querySelector","totalWidth","itemWidth","offsetWidth","parseFloat","getComputedStyle","marginRight","getMax","parseInt","minButtons","Math","max","floor","toFixed","range","isNaN","MAX_SAFE_INTEGER","even","middle","left","right","rangeLength","rangeStart","ceil","setValue","e","event","preventDefault","refs","updateRef","VPaginationBtn","color","border","density","size","rounded","elevation","items","map","item","index","ref","isActive","key","icon","ariaCurrent","onClick","controls","prevDisabled","nextDisabled","ariaDisabled","updateFocus","currentIndex","$el","focus","onKeydown","_createVNode","class","style","_mergeProps"],"sources":["../../../src/components/VPagination/VPagination.tsx"],"sourcesContent":["// Styles\nimport './VPagination.sass'\n\n// Components\nimport { VBtn } from '../VBtn'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeBorderProps } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps } from '@/composables/density'\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useDisplay } from '@/composables'\nimport { useLocale, useRtl } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useRefs } from '@/composables/refs'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, nextTick, shallowRef, toRef } from 'vue'\nimport { createRange, genericComponent, keyValues, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComponentPublicInstance } from 'vue'\n\nexport type VPaginationSlots = {\n item: []\n first: []\n next: []\n prev: []\n last: []\n}\n\nexport const makeVPaginationProps = propsFactory({\n activeColor: String,\n start: {\n type: [Number, String],\n default: 1,\n },\n modelValue: {\n type: Number,\n default: (props: any) => props.start,\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: (val: number) => val % 1 === 0,\n },\n totalVisible: [Number, String],\n firstIcon: {\n type: IconValue,\n default: '$first',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n lastIcon: {\n type: IconValue,\n default: '$last',\n },\n ariaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.root',\n },\n pageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.page',\n },\n currentPageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.currentPage',\n },\n firstAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.first',\n },\n previousAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.previous',\n },\n nextAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.next',\n },\n lastAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.last',\n },\n ellipsis: {\n type: String,\n default: '...',\n },\n showFirstLastPage: Boolean,\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'v-pagination')\n\nexport const VPagination = genericComponent<VPaginationSlots>()({\n name: 'VPagination',\n\n props: makeVPaginationProps(),\n\n emits: {\n 'update:modelValue': (value: number) => true,\n first: (value: number) => true,\n prev: (value: number) => true,\n next: (value: number) => true,\n last: (value: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const page = useProxiedModel(props, 'modelValue')\n const { t, n } = useLocale()\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { width } = useDisplay()\n const maxButtons = shallowRef(-1)\n\n provideDefaults(undefined, { scoped: true })\n\n const { resizeRef } = useResizeObserver((entries: ResizeObserverEntry[]) => {\n if (!entries.length) return\n\n const { target, contentRect } = entries[0]\n\n const firstItem = target.querySelector('.v-pagination__list > *') as HTMLElement\n\n if (!firstItem) return\n\n const totalWidth = contentRect.width\n const itemWidth =\n firstItem.offsetWidth +\n parseFloat(getComputedStyle(firstItem).marginRight) * 2\n\n maxButtons.value = getMax(totalWidth, itemWidth)\n })\n\n const length = computed(() => parseInt(props.length, 10))\n const start = computed(() => parseInt(props.start, 10))\n\n const totalVisible = computed(() => {\n if (props.totalVisible) return parseInt(props.totalVisible, 10)\n else if (maxButtons.value >= 0) return maxButtons.value\n return getMax(width.value, 58)\n })\n\n function getMax (totalWidth: number, itemWidth: number) {\n const minButtons = props.showFirstLastPage ? 5 : 3\n return Math.max(0, Math.floor(\n // Round to two decimal places to avoid floating point errors\n +((totalWidth - itemWidth * minButtons) / itemWidth).toFixed(2)\n ))\n }\n\n const range = computed(() => {\n if (length.value <= 0 || isNaN(length.value) || length.value > Number.MAX_SAFE_INTEGER) return []\n\n if (totalVisible.value <= 1) return [page.value]\n\n if (length.value <= totalVisible.value) {\n return createRange(length.value, start.value)\n }\n\n const even = totalVisible.value % 2 === 0\n const middle = even ? totalVisible.value / 2 : Math.floor(totalVisible.value / 2)\n const left = even ? middle : middle + 1\n const right = length.value - middle\n\n if (left - page.value >= 0) {\n return [...createRange(Math.max(1, totalVisible.value - 1), start.value), props.ellipsis, length.value]\n } else if (page.value - right >= (even ? 1 : 0)) {\n const rangeLength = totalVisible.value - 1\n const rangeStart = length.value - rangeLength + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart)]\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 3)\n const rangeStart = rangeLength === 1 ? page.value : page.value - Math.ceil(rangeLength / 2) + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart), props.ellipsis, length.value]\n }\n })\n\n // TODO: 'first' | 'prev' | 'next' | 'last' does not work here?\n function setValue (e: Event, value: number, event?: any) {\n e.preventDefault()\n page.value = value\n event && emit(event, value)\n }\n\n const { refs, updateRef } = useRefs<ComponentPublicInstance>()\n\n provideDefaults({\n VPaginationBtn: {\n color: toRef(props, 'color'),\n border: toRef(props, 'border'),\n density: toRef(props, 'density'),\n size: toRef(props, 'size'),\n variant: toRef(props, 'variant'),\n rounded: toRef(props, 'rounded'),\n elevation: toRef(props, 'elevation'),\n },\n })\n\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = (e: any) => updateRef(e, index)\n\n if (typeof item === 'string') {\n return {\n isActive: false,\n key: `ellipsis-${index}`,\n page: item,\n props: {\n ref,\n ellipsis: true,\n icon: true,\n disabled: true,\n },\n }\n } else {\n const isActive = item === page.value\n return {\n isActive,\n key: item,\n page: n(item),\n props: {\n ref,\n ellipsis: false,\n icon: true,\n disabled: !!props.disabled || +props.length < 2,\n color: isActive ? props.activeColor : props.color,\n ariaCurrent: isActive,\n ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, item),\n onClick: (e: Event) => setValue(e, item),\n },\n }\n }\n })\n })\n\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value\n const nextDisabled = !!props.disabled || page.value >= start.value + length.value - 1\n\n return {\n first: props.showFirstLastPage ? {\n icon: isRtl.value ? props.lastIcon : props.firstIcon,\n onClick: (e: Event) => setValue(e, start.value, 'first'),\n disabled: prevDisabled,\n ariaLabel: t(props.firstAriaLabel),\n ariaDisabled: prevDisabled,\n } : undefined,\n prev: {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n onClick: (e: Event) => setValue(e, page.value - 1, 'prev'),\n disabled: prevDisabled,\n ariaLabel: t(props.previousAriaLabel),\n ariaDisabled: prevDisabled,\n },\n next: {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n onClick: (e: Event) => setValue(e, page.value + 1, 'next'),\n disabled: nextDisabled,\n ariaLabel: t(props.nextAriaLabel),\n ariaDisabled: nextDisabled,\n },\n last: props.showFirstLastPage ? {\n icon: isRtl.value ? props.firstIcon : props.lastIcon,\n onClick: (e: Event) => setValue(e, start.value + length.value - 1, 'last'),\n disabled: nextDisabled,\n ariaLabel: t(props.lastAriaLabel),\n ariaDisabled: nextDisabled,\n } : undefined,\n }\n })\n\n function updateFocus () {\n const currentIndex = page.value - start.value\n refs.value[currentIndex]?.$el.focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key === keyValues.left && !props.disabled && page.value > +props.start) {\n page.value = page.value - 1\n nextTick(updateFocus)\n } else if (e.key === keyValues.right && !props.disabled && page.value < start.value + length.value - 1) {\n page.value = page.value + 1\n nextTick(updateFocus)\n }\n }\n\n useRender(() => (\n <props.tag\n ref={ resizeRef }\n class={[\n 'v-pagination',\n themeClasses.value,\n props.class,\n ]}\n style={ props.style }\n role=\"navigation\"\n aria-label={ t(props.ariaLabel) }\n onKeydown={ onKeydown }\n data-test=\"v-pagination-root\"\n >\n <ul class=\"v-pagination__list\">\n { props.showFirstLastPage && (\n <li key=\"first\" class=\"v-pagination__first\" data-test=\"v-pagination-first\">\n { slots.first ? slots.first(controls.value.first) : (\n <VBtn _as=\"VPaginationBtn\" { ...controls.value.first } />\n )}\n </li>\n )}\n\n <li key=\"prev\" class=\"v-pagination__prev\" data-test=\"v-pagination-prev\">\n { slots.prev ? slots.prev(controls.value.prev) : (\n <VBtn _as=\"VPaginationBtn\" { ...controls.value.prev } />\n )}\n </li>\n\n { items.value.map((item, index) => (\n <li\n key={ item.key }\n class={[\n 'v-pagination__item',\n {\n 'v-pagination__item--is-active': item.isActive,\n },\n ]}\n data-test=\"v-pagination-item\"\n >\n { slots.item ? slots.item(item) : (\n <VBtn _as=\"VPaginationBtn\" { ...item.props }>{ item.page }</VBtn>\n )}\n </li>\n ))}\n\n <li\n key=\"next\"\n class=\"v-pagination__next\"\n data-test=\"v-pagination-next\"\n >\n { slots.next ? slots.next(controls.value.next) : (\n <VBtn _as=\"VPaginationBtn\" { ...controls.value.next } />\n )}\n </li>\n\n { props.showFirstLastPage && (\n <li\n key=\"last\"\n class=\"v-pagination__last\"\n data-test=\"v-pagination-last\"\n >\n { slots.last ? slots.last(controls.value.last) : (\n <VBtn _as=\"VPaginationBtn\" { ...controls.value.last } />\n )}\n </li>\n )}\n </ul>\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VPagination = InstanceType<typeof VPagination>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,IAAI,6BAEb;AAAA,SACSC,SAAS;AAAA,SACTC,eAAe;AAAA,SACfC,kBAAkB;AAAA,SAClBC,gBAAgB;AAAA,SAChBC,kBAAkB;AAAA,SAClBC,gBAAgB;AAAA,SAChBC,aAAa;AAAA,SACbC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY;AAAA,SAC5BC,gBAAgB;AAAA,SAChBC,eAAe;AAAA,SACfC,UAAU;AAAA,SACVC,SAAS,EAAEC,MAAM;AAAA,SACjBC,eAAe;AAAA,SACfC,OAAO;AAAA,SACPC,iBAAiB,gDAE1B;AACA,SAASC,QAAQ,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,KAAK,QAAQ,KAAK;AAAA,SAClDC,WAAW,EAAEC,gBAAgB,EAAEC,SAAS,EAAEC,YAAY,EAAEC,SAAS,gCAE1E;AAWA,OAAO,MAAMC,oBAAoB,GAAGF,YAAY,CAAC;EAC/CG,WAAW,EAAEC,MAAM;EACnBC,KAAK,EAAE;IACLC,IAAI,EAAE,CAACC,MAAM,EAAEH,MAAM,CAAC;IACtBI,OAAO,EAAE;EACX,CAAC;EACDC,UAAU,EAAE;IACVH,IAAI,EAAEC,MAAM;IACZC,OAAO,EAAGE,KAAU,IAAKA,KAAK,CAACL;EACjC,CAAC;EACDM,QAAQ,EAAEC,OAAO;EACjBC,MAAM,EAAE;IACNP,IAAI,EAAE,CAACC,MAAM,EAAEH,MAAM,CAAC;IACtBI,OAAO,EAAE,CAAC;IACVM,SAAS,EAAGC,GAAW,IAAKA,GAAG,GAAG,CAAC,KAAK;EAC1C,CAAC;EACDC,YAAY,EAAE,CAACT,MAAM,EAAEH,MAAM,CAAC;EAC9Ba,SAAS,EAAE;IACTX,IAAI,EAAE/B,SAAS;IACfiC,OAAO,EAAE;EACX,CAAC;EACDU,QAAQ,EAAE;IACRZ,IAAI,EAAE/B,SAAS;IACfiC,OAAO,EAAE;EACX,CAAC;EACDW,QAAQ,EAAE;IACRb,IAAI,EAAE/B,SAAS;IACfiC,OAAO,EAAE;EACX,CAAC;EACDY,QAAQ,EAAE;IACRd,IAAI,EAAE/B,SAAS;IACfiC,OAAO,EAAE;EACX,CAAC;EACDa,SAAS,EAAE;IACTf,IAAI,EAAEF,MAAM;IACZI,OAAO,EAAE;EACX,CAAC;EACDc,aAAa,EAAE;IACbhB,IAAI,EAAEF,MAAM;IACZI,OAAO,EAAE;EACX,CAAC;EACDe,oBAAoB,EAAE;IACpBjB,IAAI,EAAEF,MAAM;IACZI,OAAO,EAAE;EACX,CAAC;EACDgB,cAAc,EAAE;IACdlB,IAAI,EAAEF,MAAM;IACZI,OAAO,EAAE;EACX,CAAC;EACDiB,iBAAiB,EAAE;IACjBnB,IAAI,EAAEF,MAAM;IACZI,OAAO,EAAE;EACX,CAAC;EACDkB,aAAa,EAAE;IACbpB,IAAI,EAAEF,MAAM;IACZI,OAAO,EAAE;EACX,CAAC;EACDmB,aAAa,EAAE;IACbrB,IAAI,EAAEF,MAAM;IACZI,OAAO,EAAE;EACX,CAAC;EACDoB,QAAQ,EAAE;IACRtB,IAAI,EAAEF,MAAM;IACZI,OAAO,EAAE;EACX,CAAC;EACDqB,iBAAiB,EAAEjB,OAAO;EAE1B,GAAGpC,eAAe,EAAE;EACpB,GAAGC,kBAAkB,EAAE;EACvB,GAAGC,gBAAgB,EAAE;EACrB,GAAGC,kBAAkB,EAAE;EACvB,GAAGC,gBAAgB,EAAE;EACrB,GAAGC,aAAa,EAAE;EAClB,GAAGC,YAAY,CAAC;IAAEgD,GAAG,EAAE;EAAM,CAAC,CAAC;EAC/B,GAAG/C,cAAc,EAAE;EACnB,GAAGE,gBAAgB,CAAC;IAAE8C,OAAO,EAAE;EAAO,CAAC;AACzC,CAAC,EAAE,cAAc,CAAC;AAElB,OAAO,MAAMC,WAAW,GAAGlC,gBAAgB,EAAoB,CAAC;EAC9DmC,IAAI,EAAE,aAAa;EAEnBvB,KAAK,EAAER,oBAAoB,EAAE;EAE7BgC,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAa,IAAK,IAAI;IAC5CC,KAAK,EAAGD,KAAa,IAAK,IAAI;IAC9BE,IAAI,EAAGF,KAAa,IAAK,IAAI;IAC7BG,IAAI,EAAGH,KAAa,IAAK,IAAI;IAC7BI,IAAI,EAAGJ,KAAa,IAAK;EAC3B,CAAC;EAEDK,KAAKA,CAAE9B,KAAK,EAAA+B,IAAA,EAAmB;IAAA,IAAjB;MAAEC,KAAK;MAAEC;IAAK,CAAC,GAAAF,IAAA;IAC3B,MAAMG,IAAI,GAAGtD,eAAe,CAACoB,KAAK,EAAE,YAAY,CAAC;IACjD,MAAM;MAAEmC,CAAC;MAAEC;IAAE,CAAC,GAAG1D,SAAS,EAAE;IAC5B,MAAM;MAAE2D;IAAM,CAAC,GAAG1D,MAAM,EAAE;IAC1B,MAAM;MAAE2D;IAAa,CAAC,GAAGhE,YAAY,CAAC0B,KAAK,CAAC;IAC5C,MAAM;MAAEuC;IAAM,CAAC,GAAG9D,UAAU,EAAE;IAC9B,MAAM+D,UAAU,GAAGvD,UAAU,CAAC,CAAC,CAAC,CAAC;IAEjCT,eAAe,CAACiE,SAAS,EAAE;MAAEC,MAAM,EAAE;IAAK,CAAC,CAAC;IAE5C,MAAM;MAAEC;IAAU,CAAC,GAAG7D,iBAAiB,CAAE8D,OAA8B,IAAK;MAC1E,IAAI,CAACA,OAAO,CAACzC,MAAM,EAAE;MAErB,MAAM;QAAE0C,MAAM;QAAEC;MAAY,CAAC,GAAGF,OAAO,CAAC,CAAC,CAAC;MAE1C,MAAMG,SAAS,GAAGF,MAAM,CAACG,aAAa,CAAC,yBAAyB,CAAgB;MAEhF,IAAI,CAACD,SAAS,EAAE;MAEhB,MAAME,UAAU,GAAGH,WAAW,CAACP,KAAK;MACpC,MAAMW,SAAS,GACbH,SAAS,CAACI,WAAW,GACrBC,UAAU,CAACC,gBAAgB,CAACN,SAAS,CAAC,CAACO,WAAW,CAAC,GAAG,CAAC;MAEzDd,UAAU,CAACf,KAAK,GAAG8B,MAAM,CAACN,UAAU,EAAEC,SAAS,CAAC;IAClD,CAAC,CAAC;IAEF,MAAM/C,MAAM,GAAGpB,QAAQ,CAAC,MAAMyE,QAAQ,CAACxD,KAAK,CAACG,MAAM,EAAE,EAAE,CAAC,CAAC;IACzD,MAAMR,KAAK,GAAGZ,QAAQ,CAAC,MAAMyE,QAAQ,CAACxD,KAAK,CAACL,KAAK,EAAE,EAAE,CAAC,CAAC;IAEvD,MAAMW,YAAY,GAAGvB,QAAQ,CAAC,MAAM;MAClC,IAAIiB,KAAK,CAACM,YAAY,EAAE,OAAOkD,QAAQ,CAACxD,KAAK,CAACM,YAAY,EAAE,EAAE,CAAC,MAC1D,IAAIkC,UAAU,CAACf,KAAK,IAAI,CAAC,EAAE,OAAOe,UAAU,CAACf,KAAK;MACvD,OAAO8B,MAAM,CAAChB,KAAK,CAACd,KAAK,EAAE,EAAE,CAAC;IAChC,CAAC,CAAC;IAEF,SAAS8B,MAAMA,CAAEN,UAAkB,EAAEC,SAAiB,EAAE;MACtD,MAAMO,UAAU,GAAGzD,KAAK,CAACmB,iBAAiB,GAAG,CAAC,GAAG,CAAC;MAClD,OAAOuC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,KAAK;MAC3B;MACA,CAAC,CAAC,CAACX,UAAU,GAAGC,SAAS,GAAGO,UAAU,IAAIP,SAAS,EAAEW,OAAO,CAAC,CAAC,CAAC,CAChE,CAAC;IACJ;IAEA,MAAMC,KAAK,GAAG/E,QAAQ,CAAC,MAAM;MAC3B,IAAIoB,MAAM,CAACsB,KAAK,IAAI,CAAC,IAAIsC,KAAK,CAAC5D,MAAM,CAACsB,KAAK,CAAC,IAAItB,MAAM,CAACsB,KAAK,GAAG5B,MAAM,CAACmE,gBAAgB,EAAE,OAAO,EAAE;MAEjG,IAAI1D,YAAY,CAACmB,KAAK,IAAI,CAAC,EAAE,OAAO,CAACS,IAAI,CAACT,KAAK,CAAC;MAEhD,IAAItB,MAAM,CAACsB,KAAK,IAAInB,YAAY,CAACmB,KAAK,EAAE;QACtC,OAAOtC,WAAW,CAACgB,MAAM,CAACsB,KAAK,EAAE9B,KAAK,CAAC8B,KAAK,CAAC;MAC/C;MAEA,MAAMwC,IAAI,GAAG3D,YAAY,CAACmB,KAAK,GAAG,CAAC,KAAK,CAAC;MACzC,MAAMyC,MAAM,GAAGD,IAAI,GAAG3D,YAAY,CAACmB,KAAK,GAAG,CAAC,GAAGiC,IAAI,CAACE,KAAK,CAACtD,YAAY,CAACmB,KAAK,GAAG,CAAC,CAAC;MACjF,MAAM0C,IAAI,GAAGF,IAAI,GAAGC,MAAM,GAAGA,MAAM,GAAG,CAAC;MACvC,MAAME,KAAK,GAAGjE,MAAM,CAACsB,KAAK,GAAGyC,MAAM;MAEnC,IAAIC,IAAI,GAAGjC,IAAI,CAACT,KAAK,IAAI,CAAC,EAAE;QAC1B,OAAO,CAAC,GAAGtC,WAAW,CAACuE,IAAI,CAACC,GAAG,CAAC,CAAC,EAAErD,YAAY,CAACmB,KAAK,GAAG,CAAC,CAAC,EAAE9B,KAAK,CAAC8B,KAAK,CAAC,EAAEzB,KAAK,CAACkB,QAAQ,EAAEf,MAAM,CAACsB,KAAK,CAAC;MACzG,CAAC,MAAM,IAAIS,IAAI,CAACT,KAAK,GAAG2C,KAAK,KAAKH,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE;QAC/C,MAAMI,WAAW,GAAG/D,YAAY,CAACmB,KAAK,GAAG,CAAC;QAC1C,MAAM6C,UAAU,GAAGnE,MAAM,CAACsB,KAAK,GAAG4C,WAAW,GAAG1E,KAAK,CAAC8B,KAAK;QAC3D,OAAO,CAAC9B,KAAK,CAAC8B,KAAK,EAAEzB,KAAK,CAACkB,QAAQ,EAAE,GAAG/B,WAAW,CAACkF,WAAW,EAAEC,UAAU,CAAC,CAAC;MAC/E,CAAC,MAAM;QACL,MAAMD,WAAW,GAAGX,IAAI,CAACC,GAAG,CAAC,CAAC,EAAErD,YAAY,CAACmB,KAAK,GAAG,CAAC,CAAC;QACvD,MAAM6C,UAAU,GAAGD,WAAW,KAAK,CAAC,GAAGnC,IAAI,CAACT,KAAK,GAAGS,IAAI,CAACT,KAAK,GAAGiC,IAAI,CAACa,IAAI,CAACF,WAAW,GAAG,CAAC,CAAC,GAAG1E,KAAK,CAAC8B,KAAK;QACzG,OAAO,CAAC9B,KAAK,CAAC8B,KAAK,EAAEzB,KAAK,CAACkB,QAAQ,EAAE,GAAG/B,WAAW,CAACkF,WAAW,EAAEC,UAAU,CAAC,EAAEtE,KAAK,CAACkB,QAAQ,EAAEf,MAAM,CAACsB,KAAK,CAAC;MAC7G;IACF,CAAC,CAAC;;IAEF;IACA,SAAS+C,QAAQA,CAAEC,CAAQ,EAAEhD,KAAa,EAAEiD,KAAW,EAAE;MACvDD,CAAC,CAACE,cAAc,EAAE;MAClBzC,IAAI,CAACT,KAAK,GAAGA,KAAK;MAClBiD,KAAK,IAAIzC,IAAI,CAACyC,KAAK,EAAEjD,KAAK,CAAC;IAC7B;IAEA,MAAM;MAAEmD,IAAI;MAAEC;IAAU,CAAC,GAAGhG,OAAO,EAA2B;IAE9DL,eAAe,CAAC;MACdsG,cAAc,EAAE;QACdC,KAAK,EAAE7F,KAAK,CAACc,KAAK,EAAE,OAAO,CAAC;QAC5BgF,MAAM,EAAE9F,KAAK,CAACc,KAAK,EAAE,QAAQ,CAAC;QAC9BiF,OAAO,EAAE/F,KAAK,CAACc,KAAK,EAAE,SAAS,CAAC;QAChCkF,IAAI,EAAEhG,KAAK,CAACc,KAAK,EAAE,MAAM,CAAC;QAC1BqB,OAAO,EAAEnC,KAAK,CAACc,KAAK,EAAE,SAAS,CAAC;QAChCmF,OAAO,EAAEjG,KAAK,CAACc,KAAK,EAAE,SAAS,CAAC;QAChCoF,SAAS,EAAElG,KAAK,CAACc,KAAK,EAAE,WAAW;MACrC;IACF,CAAC,CAAC;IAEF,MAAMqF,KAAK,GAAGtG,QAAQ,CAAC,MAAM;MAC3B,OAAO+E,KAAK,CAACrC,KAAK,CAAC6D,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAK;QACtC,MAAMC,GAAG,GAAIhB,CAAM,IAAKI,SAAS,CAACJ,CAAC,EAAEe,KAAK,CAAC;QAE3C,IAAI,OAAOD,IAAI,KAAK,QAAQ,EAAE;UAC5B,OAAO;YACLG,QAAQ,EAAE,KAAK;YACfC,GAAG,EAAG,YAAWH,KAAM,EAAC;YACxBtD,IAAI,EAAEqD,IAAI;YACVvF,KAAK,EAAE;cACLyF,GAAG;cACHvE,QAAQ,EAAE,IAAI;cACd0E,IAAI,EAAE,IAAI;cACV3F,QAAQ,EAAE;YACZ;UACF,CAAC;QACH,CAAC,MAAM;UACL,MAAMyF,QAAQ,GAAGH,IAAI,KAAKrD,IAAI,CAACT,KAAK;UACpC,OAAO;YACLiE,QAAQ;YACRC,GAAG,EAAEJ,IAAI;YACTrD,IAAI,EAAEE,CAAC,CAACmD,IAAI,CAAC;YACbvF,KAAK,EAAE;cACLyF,GAAG;cACHvE,QAAQ,EAAE,KAAK;cACf0E,IAAI,EAAE,IAAI;cACV3F,QAAQ,EAAE,CAAC,CAACD,KAAK,CAACC,QAAQ,IAAI,CAACD,KAAK,CAACG,MAAM,GAAG,CAAC;cAC/C4E,KAAK,EAAEW,QAAQ,GAAG1F,KAAK,CAACP,WAAW,GAAGO,KAAK,CAAC+E,KAAK;cACjDc,WAAW,EAAEH,QAAQ;cACrB/E,SAAS,EAAEwB,CAAC,CAACuD,QAAQ,GAAG1F,KAAK,CAACa,oBAAoB,GAAGb,KAAK,CAACY,aAAa,EAAE2E,IAAI,CAAC;cAC/EO,OAAO,EAAGrB,CAAQ,IAAKD,QAAQ,CAACC,CAAC,EAAEc,IAAI;YACzC;UACF,CAAC;QACH;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,MAAMQ,QAAQ,GAAGhH,QAAQ,CAAC,MAAM;MAC9B,MAAMiH,YAAY,GAAG,CAAC,CAAChG,KAAK,CAACC,QAAQ,IAAIiC,IAAI,CAACT,KAAK,IAAI9B,KAAK,CAAC8B,KAAK;MAClE,MAAMwE,YAAY,GAAG,CAAC,CAACjG,KAAK,CAACC,QAAQ,IAAIiC,IAAI,CAACT,KAAK,IAAI9B,KAAK,CAAC8B,KAAK,GAAGtB,MAAM,CAACsB,KAAK,GAAG,CAAC;MAErF,OAAO;QACLC,KAAK,EAAE1B,KAAK,CAACmB,iBAAiB,GAAG;UAC/ByE,IAAI,EAAEvD,KAAK,CAACZ,KAAK,GAAGzB,KAAK,CAACU,QAAQ,GAAGV,KAAK,CAACO,SAAS;UACpDuF,OAAO,EAAGrB,CAAQ,IAAKD,QAAQ,CAACC,CAAC,EAAE9E,KAAK,CAAC8B,KAAK,EAAE,OAAO,CAAC;UACxDxB,QAAQ,EAAE+F,YAAY;UACtBrF,SAAS,EAAEwB,CAAC,CAACnC,KAAK,CAACc,cAAc,CAAC;UAClCoF,YAAY,EAAEF;QAChB,CAAC,GAAGvD,SAAS;QACbd,IAAI,EAAE;UACJiE,IAAI,EAAEvD,KAAK,CAACZ,KAAK,GAAGzB,KAAK,CAACS,QAAQ,GAAGT,KAAK,CAACQ,QAAQ;UACnDsF,OAAO,EAAGrB,CAAQ,IAAKD,QAAQ,CAACC,CAAC,EAAEvC,IAAI,CAACT,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC;UAC1DxB,QAAQ,EAAE+F,YAAY;UACtBrF,SAAS,EAAEwB,CAAC,CAACnC,KAAK,CAACe,iBAAiB,CAAC;UACrCmF,YAAY,EAAEF;QAChB,CAAC;QACDpE,IAAI,EAAE;UACJgE,IAAI,EAAEvD,KAAK,CAACZ,KAAK,GAAGzB,KAAK,CAACQ,QAAQ,GAAGR,KAAK,CAACS,QAAQ;UACnDqF,OAAO,EAAGrB,CAAQ,IAAKD,QAAQ,CAACC,CAAC,EAAEvC,IAAI,CAACT,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC;UAC1DxB,QAAQ,EAAEgG,YAAY;UACtBtF,SAAS,EAAEwB,CAAC,CAACnC,KAAK,CAACgB,aAAa,CAAC;UACjCkF,YAAY,EAAED;QAChB,CAAC;QACDpE,IAAI,EAAE7B,KAAK,CAACmB,iBAAiB,GAAG;UAC9ByE,IAAI,EAAEvD,KAAK,CAACZ,KAAK,GAAGzB,KAAK,CAACO,SAAS,GAAGP,KAAK,CAACU,QAAQ;UACpDoF,OAAO,EAAGrB,CAAQ,IAAKD,QAAQ,CAACC,CAAC,EAAE9E,KAAK,CAAC8B,KAAK,GAAGtB,MAAM,CAACsB,KAAK,GAAG,CAAC,EAAE,MAAM,CAAC;UAC1ExB,QAAQ,EAAEgG,YAAY;UACtBtF,SAAS,EAAEwB,CAAC,CAACnC,KAAK,CAACiB,aAAa,CAAC;UACjCiF,YAAY,EAAED;QAChB,CAAC,GAAGxD;MACN,CAAC;IACH,CAAC,CAAC;IAEF,SAAS0D,WAAWA,CAAA,EAAI;MACtB,MAAMC,YAAY,GAAGlE,IAAI,CAACT,KAAK,GAAG9B,KAAK,CAAC8B,KAAK;MAC7CmD,IAAI,CAACnD,KAAK,CAAC2E,YAAY,CAAC,EAAEC,GAAG,CAACC,KAAK,EAAE;IACvC;IAEA,SAASC,SAASA,CAAE9B,CAAgB,EAAE;MACpC,IAAIA,CAAC,CAACkB,GAAG,KAAKtG,SAAS,CAAC8E,IAAI,IAAI,CAACnE,KAAK,CAACC,QAAQ,IAAIiC,IAAI,CAACT,KAAK,GAAG,CAACzB,KAAK,CAACL,KAAK,EAAE;QAC5EuC,IAAI,CAACT,KAAK,GAAGS,IAAI,CAACT,KAAK,GAAG,CAAC;QAC3BzC,QAAQ,CAACmH,WAAW,CAAC;MACvB,CAAC,MAAM,IAAI1B,CAAC,CAACkB,GAAG,KAAKtG,SAAS,CAAC+E,KAAK,IAAI,CAACpE,KAAK,CAACC,QAAQ,IAAIiC,IAAI,CAACT,KAAK,GAAG9B,KAAK,CAAC8B,KAAK,GAAGtB,MAAM,CAACsB,KAAK,GAAG,CAAC,EAAE;QACtGS,IAAI,CAACT,KAAK,GAAGS,IAAI,CAACT,KAAK,GAAG,CAAC;QAC3BzC,QAAQ,CAACmH,WAAW,CAAC;MACvB;IACF;IAEA5G,SAAS,CAAC,MAAAiH,YAAA,CAAAxG,KAAA,CAAAoB,GAAA;MAAA,OAEAuB,SAAS;MAAA,SACR,CACL,cAAc,EACdL,YAAY,CAACb,KAAK,EAClBzB,KAAK,CAACyG,KAAK,CACZ;MAAA,SACOzG,KAAK,CAAC0G,KAAK;MAAA,QACd,YAAY;MAAA,cACJvE,CAAC,CAACnC,KAAK,CAACW,SAAS,CAAC;MAAA,aACnB4F,SAAS;MAAA,aACX;IAAmB;MAAAzG,OAAA,EAAAA,CAAA,MAAA0G,YAAA;QAAA,SAEnB;MAAoB,IAC1BxG,KAAK,CAACmB,iBAAiB,IAAAqF,YAAA;QAAA,OACf,OAAO;QAAA,SAAO,qBAAqB;QAAA,aAAW;MAAoB,IACtExE,KAAK,CAACN,KAAK,GAAGM,KAAK,CAACN,KAAK,CAACqE,QAAQ,CAACtE,KAAK,CAACC,KAAK,CAAC,GAAA8E,YAAA,CAAA5I,IAAA,EAAA+I,WAAA;QAAA,OACrC;MAAgB,GAAMZ,QAAQ,CAACtE,KAAK,CAACC,KAAK,QACrD,EAEJ,EAAA8E,YAAA;QAAA,OAEO,MAAM;QAAA,SAAO,oBAAoB;QAAA,aAAW;MAAmB,IACnExE,KAAK,CAACL,IAAI,GAAGK,KAAK,CAACL,IAAI,CAACoE,QAAQ,CAACtE,KAAK,CAACE,IAAI,CAAC,GAAA6E,YAAA,CAAA5I,IAAA,EAAA+I,WAAA;QAAA,OAClC;MAAgB,GAAMZ,QAAQ,CAACtE,KAAK,CAACE,IAAI,QACpD,IAGD0D,KAAK,CAAC5D,KAAK,CAAC6D,GAAG,CAAC,CAACC,IAAI,EAAEC,KAAK,KAAAgB,YAAA;QAAA,OAEpBjB,IAAI,CAACI,GAAG;QAAA,SACP,CACL,oBAAoB,EACpB;UACE,+BAA+B,EAAEJ,IAAI,CAACG;QACxC,CAAC,CACF;QAAA,aACS;MAAmB,IAE3B1D,KAAK,CAACuD,IAAI,GAAGvD,KAAK,CAACuD,IAAI,CAACA,IAAI,CAAC,GAAAiB,YAAA,CAAA5I,IAAA,EAAA+I,WAAA;QAAA,OACnB;MAAgB,GAAMpB,IAAI,CAACvF,KAAK;QAAAF,OAAA,EAAAA,CAAA,MAAKyF,IAAI,CAACrD,IAAI;MAAA,EACzD,EAEJ,CAAC,EAAAsE,YAAA;QAAA,OAGI,MAAM;QAAA,SACJ,oBAAoB;QAAA,aAChB;MAAmB,IAE3BxE,KAAK,CAACJ,IAAI,GAAGI,KAAK,CAACJ,IAAI,CAACmE,QAAQ,CAACtE,KAAK,CAACG,IAAI,CAAC,GAAA4E,YAAA,CAAA5I,IAAA,EAAA+I,WAAA;QAAA,OAClC;MAAgB,GAAMZ,QAAQ,CAACtE,KAAK,CAACG,IAAI,QACpD,IAGD5B,KAAK,CAACmB,iBAAiB,IAAAqF,YAAA;QAAA,OAEjB,MAAM;QAAA,SACJ,oBAAoB;QAAA,aAChB;MAAmB,IAE3BxE,KAAK,CAACH,IAAI,GAAGG,KAAK,CAACH,IAAI,CAACkE,QAAQ,CAACtE,KAAK,CAACI,IAAI,CAAC,GAAA2E,YAAA,CAAA5I,IAAA,EAAA+I,WAAA;QAAA,OAClC;MAAgB,GAAMZ,QAAQ,CAACtE,KAAK,CAACI,IAAI,QACpD,EAEJ;IAAA,EAGN,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -29,7 +29,6 @@ declare const VPagination: {
29
29
  modelValue: number;
30
30
  nextIcon: IconValue;
31
31
  prevIcon: IconValue;
32
- showFirstLastPage: boolean;
33
32
  firstIcon: IconValue;
34
33
  lastIcon: IconValue;
35
34
  pageAriaLabel: string;
@@ -38,6 +37,7 @@ declare const VPagination: {
38
37
  previousAriaLabel: string;
39
38
  nextAriaLabel: string;
40
39
  lastAriaLabel: string;
40
+ showFirstLastPage: boolean;
41
41
  }> & Omit<{
42
42
  length: string | number;
43
43
  start: string | number;
@@ -52,7 +52,6 @@ declare const VPagination: {
52
52
  modelValue: number;
53
53
  nextIcon: IconValue;
54
54
  prevIcon: IconValue;
55
- showFirstLastPage: boolean;
56
55
  firstIcon: IconValue;
57
56
  lastIcon: IconValue;
58
57
  pageAriaLabel: string;
@@ -61,6 +60,7 @@ declare const VPagination: {
61
60
  previousAriaLabel: string;
62
61
  nextAriaLabel: string;
63
62
  lastAriaLabel: string;
63
+ showFirstLastPage: boolean;
64
64
  } & {
65
65
  border?: string | number | boolean | undefined;
66
66
  color?: string | undefined;
@@ -97,7 +97,7 @@ declare const VPagination: {
97
97
  onPrev?: ((value: number) => any) | undefined;
98
98
  onFirst?: ((value: number) => any) | undefined;
99
99
  onLast?: ((value: number) => any) | undefined;
100
- } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "length" | "start" | "style" | "ariaLabel" | "disabled" | "size" | "tag" | "ellipsis" | "rounded" | "density" | "variant" | "modelValue" | "nextIcon" | "prevIcon" | "showFirstLastPage" | "firstIcon" | "lastIcon" | "pageAriaLabel" | "currentPageAriaLabel" | "firstAriaLabel" | "previousAriaLabel" | "nextAriaLabel" | "lastAriaLabel">;
100
+ } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "length" | "start" | "style" | "ariaLabel" | "disabled" | "size" | "tag" | "ellipsis" | "rounded" | "density" | "variant" | "modelValue" | "nextIcon" | "prevIcon" | "firstIcon" | "lastIcon" | "pageAriaLabel" | "currentPageAriaLabel" | "firstAriaLabel" | "previousAriaLabel" | "nextAriaLabel" | "lastAriaLabel" | "showFirstLastPage">;
101
101
  $attrs: {
102
102
  [x: string]: unknown;
103
103
  };
@@ -125,7 +125,6 @@ declare const VPagination: {
125
125
  modelValue: number;
126
126
  nextIcon: IconValue;
127
127
  prevIcon: IconValue;
128
- showFirstLastPage: boolean;
129
128
  firstIcon: IconValue;
130
129
  lastIcon: IconValue;
131
130
  pageAriaLabel: string;
@@ -134,6 +133,7 @@ declare const VPagination: {
134
133
  previousAriaLabel: string;
135
134
  nextAriaLabel: string;
136
135
  lastAriaLabel: string;
136
+ showFirstLastPage: boolean;
137
137
  } & {
138
138
  border?: string | number | boolean | undefined;
139
139
  color?: string | undefined;
@@ -191,7 +191,6 @@ declare const VPagination: {
191
191
  modelValue: number;
192
192
  nextIcon: IconValue;
193
193
  prevIcon: IconValue;
194
- showFirstLastPage: boolean;
195
194
  firstIcon: IconValue;
196
195
  lastIcon: IconValue;
197
196
  pageAriaLabel: string;
@@ -200,6 +199,7 @@ declare const VPagination: {
200
199
  previousAriaLabel: string;
201
200
  nextAriaLabel: string;
202
201
  lastAriaLabel: string;
202
+ showFirstLastPage: boolean;
203
203
  }, {}, string> & {
204
204
  beforeCreate?: ((() => void) | (() => void)[]) | undefined;
205
205
  created?: ((() => void) | (() => void)[]) | undefined;
@@ -234,7 +234,6 @@ declare const VPagination: {
234
234
  modelValue: number;
235
235
  nextIcon: IconValue;
236
236
  prevIcon: IconValue;
237
- showFirstLastPage: boolean;
238
237
  firstIcon: IconValue;
239
238
  lastIcon: IconValue;
240
239
  pageAriaLabel: string;
@@ -243,6 +242,7 @@ declare const VPagination: {
243
242
  previousAriaLabel: string;
244
243
  nextAriaLabel: string;
245
244
  lastAriaLabel: string;
245
+ showFirstLastPage: boolean;
246
246
  } & {
247
247
  border?: string | number | boolean | undefined;
248
248
  color?: string | undefined;
@@ -297,7 +297,6 @@ declare const VPagination: {
297
297
  modelValue: number;
298
298
  nextIcon: IconValue;
299
299
  prevIcon: IconValue;
300
- showFirstLastPage: boolean;
301
300
  firstIcon: IconValue;
302
301
  lastIcon: IconValue;
303
302
  pageAriaLabel: string;
@@ -306,6 +305,7 @@ declare const VPagination: {
306
305
  previousAriaLabel: string;
307
306
  nextAriaLabel: string;
308
307
  lastAriaLabel: string;
308
+ showFirstLastPage: boolean;
309
309
  } & {
310
310
  border?: string | number | boolean | undefined;
311
311
  color?: string | undefined;
@@ -363,7 +363,6 @@ declare const VPagination: {
363
363
  modelValue: number;
364
364
  nextIcon: IconValue;
365
365
  prevIcon: IconValue;
366
- showFirstLastPage: boolean;
367
366
  firstIcon: IconValue;
368
367
  lastIcon: IconValue;
369
368
  pageAriaLabel: string;
@@ -372,6 +371,7 @@ declare const VPagination: {
372
371
  previousAriaLabel: string;
373
372
  nextAriaLabel: string;
374
373
  lastAriaLabel: string;
374
+ showFirstLastPage: boolean;
375
375
  }, {}, string> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
376
376
  color: StringConstructor;
377
377
  variant: Omit<{
@@ -8,7 +8,7 @@ import { makeComponentProps } from "../../composables/component.mjs";
8
8
  import { useDisplay } from "../../composables/index.mjs";
9
9
  import { useIntersectionObserver } from "../../composables/intersectionObserver.mjs";
10
10
  import { useResizeObserver } from "../../composables/resizeObserver.mjs"; // Utilities
11
- import { clamp, genericComponent, getScrollParent, useRender } from "../../util/index.mjs";
11
+ import { clamp, genericComponent, getScrollParent, propsFactory, useRender } from "../../util/index.mjs";
12
12
  import { computed, onBeforeUnmount, ref, watch, watchEffect } from 'vue';
13
13
 
14
14
  // Types
@@ -16,15 +16,16 @@ import { computed, onBeforeUnmount, ref, watch, watchEffect } from 'vue';
16
16
  function floor(val) {
17
17
  return Math.floor(Math.abs(val)) * Math.sign(val);
18
18
  }
19
+ export const makeVParallaxProps = propsFactory({
20
+ scale: {
21
+ type: [Number, String],
22
+ default: 0.5
23
+ },
24
+ ...makeComponentProps()
25
+ }, 'v-parallax');
19
26
  export const VParallax = genericComponent()({
20
27
  name: 'VParallax',
21
- props: {
22
- scale: {
23
- type: [Number, String],
24
- default: 0.5
25
- },
26
- ...makeComponentProps()
27
- },
28
+ props: makeVParallaxProps(),
28
29
  setup(props, _ref) {
29
30
  let {
30
31
  slots
@@ -1 +1 @@
1
- {"version":3,"file":"VParallax.mjs","names":["VImg","makeComponentProps","useDisplay","useIntersectionObserver","useResizeObserver","clamp","genericComponent","getScrollParent","useRender","computed","onBeforeUnmount","ref","watch","watchEffect","floor","val","Math","abs","sign","VParallax","name","props","scale","type","Number","String","default","setup","_ref","slots","intersectionRef","isIntersecting","resizeRef","contentRect","height","displayHeight","root","value","$el","scrollParent","document","scrollingElement","addEventListener","onScroll","passive","removeEventListener","frame","cancelAnimationFrame","requestAnimationFrame","el","querySelector","scrollHeight","Document","documentElement","clientHeight","scrollPos","window","scrollY","scrollTop","top","getBoundingClientRect","center","translate","sizeScale","max","style","setProperty","_createVNode","class"],"sources":["../../../src/components/VParallax/VParallax.tsx"],"sourcesContent":["// Styles\nimport './VParallax.sass'\n\n// Components\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { useDisplay } from '@/composables'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { clamp, genericComponent, getScrollParent, useRender } from '@/util'\nimport { computed, onBeforeUnmount, ref, watch, watchEffect } from 'vue'\n\n// Types\nimport type { VImgSlots } from '@/components/VImg/VImg'\n\nfunction floor (val: number) {\n return Math.floor(Math.abs(val)) * Math.sign(val)\n}\n\nexport const VParallax = genericComponent<VImgSlots>()({\n name: 'VParallax',\n\n props: {\n scale: {\n type: [Number, String],\n default: 0.5,\n },\n\n ...makeComponentProps(),\n },\n\n setup (props, { slots }) {\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n const { resizeRef, contentRect } = useResizeObserver()\n const { height: displayHeight } = useDisplay()\n\n const root = ref<VImg>()\n\n watchEffect(() => {\n intersectionRef.value = resizeRef.value = root.value?.$el\n })\n\n let scrollParent: Element | Document\n watch(isIntersecting, val => {\n if (val) {\n scrollParent = getScrollParent(intersectionRef.value)\n scrollParent = scrollParent === document.scrollingElement ? document : scrollParent\n scrollParent.addEventListener('scroll', onScroll, { passive: true })\n onScroll()\n } else {\n scrollParent.removeEventListener('scroll', onScroll)\n }\n })\n\n onBeforeUnmount(() => {\n scrollParent?.removeEventListener('scroll', onScroll)\n })\n\n watch(displayHeight, onScroll)\n watch(() => contentRect.value?.height, onScroll)\n\n const scale = computed(() => {\n return 1 - clamp(+props.scale)\n })\n\n let frame = -1\n function onScroll () {\n if (!isIntersecting.value) return\n\n cancelAnimationFrame(frame)\n frame = requestAnimationFrame(() => {\n const el: HTMLElement | null = (root.value?.$el as Element).querySelector('.v-img__img')\n if (!el) return\n\n const scrollHeight = scrollParent instanceof Document ? document.documentElement.clientHeight : scrollParent.clientHeight\n const scrollPos = scrollParent instanceof Document ? window.scrollY : scrollParent.scrollTop\n const top = intersectionRef.value!.getBoundingClientRect().top + scrollPos\n const height = contentRect.value!.height\n\n const center = top + (height - scrollHeight) / 2\n const translate = floor((scrollPos - center) * scale.value)\n const sizeScale = Math.max(1, (scale.value * (scrollHeight - height) + height) / height)\n\n el.style.setProperty('transform', `translateY(${translate}px) scale(${sizeScale})`)\n })\n }\n\n useRender(() => (\n <VImg\n class={[\n 'v-parallax',\n { 'v-parallax--active': isIntersecting.value },\n props.class,\n ]}\n style={ props.style }\n ref={ root }\n cover\n onLoadstart={ onScroll }\n onLoad={ onScroll }\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VParallax = InstanceType<typeof VParallax>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VParallax.mjs","names":["VImg","makeComponentProps","useDisplay","useIntersectionObserver","useResizeObserver","clamp","genericComponent","getScrollParent","propsFactory","useRender","computed","onBeforeUnmount","ref","watch","watchEffect","floor","val","Math","abs","sign","makeVParallaxProps","scale","type","Number","String","default","VParallax","name","props","setup","_ref","slots","intersectionRef","isIntersecting","resizeRef","contentRect","height","displayHeight","root","value","$el","scrollParent","document","scrollingElement","addEventListener","onScroll","passive","removeEventListener","frame","cancelAnimationFrame","requestAnimationFrame","el","querySelector","scrollHeight","Document","documentElement","clientHeight","scrollPos","window","scrollY","scrollTop","top","getBoundingClientRect","center","translate","sizeScale","max","style","setProperty","_createVNode","class"],"sources":["../../../src/components/VParallax/VParallax.tsx"],"sourcesContent":["// Styles\nimport './VParallax.sass'\n\n// Components\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { useDisplay } from '@/composables'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { clamp, genericComponent, getScrollParent, propsFactory, useRender } from '@/util'\nimport { computed, onBeforeUnmount, ref, watch, watchEffect } from 'vue'\n\n// Types\nimport type { VImgSlots } from '@/components/VImg/VImg'\n\nfunction floor (val: number) {\n return Math.floor(Math.abs(val)) * Math.sign(val)\n}\n\nexport const makeVParallaxProps = propsFactory({\n scale: {\n type: [Number, String],\n default: 0.5,\n },\n\n ...makeComponentProps(),\n}, 'v-parallax')\n\nexport const VParallax = genericComponent<VImgSlots>()({\n name: 'VParallax',\n\n props: makeVParallaxProps(),\n\n setup (props, { slots }) {\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n const { resizeRef, contentRect } = useResizeObserver()\n const { height: displayHeight } = useDisplay()\n\n const root = ref<VImg>()\n\n watchEffect(() => {\n intersectionRef.value = resizeRef.value = root.value?.$el\n })\n\n let scrollParent: Element | Document\n watch(isIntersecting, val => {\n if (val) {\n scrollParent = getScrollParent(intersectionRef.value)\n scrollParent = scrollParent === document.scrollingElement ? document : scrollParent\n scrollParent.addEventListener('scroll', onScroll, { passive: true })\n onScroll()\n } else {\n scrollParent.removeEventListener('scroll', onScroll)\n }\n })\n\n onBeforeUnmount(() => {\n scrollParent?.removeEventListener('scroll', onScroll)\n })\n\n watch(displayHeight, onScroll)\n watch(() => contentRect.value?.height, onScroll)\n\n const scale = computed(() => {\n return 1 - clamp(+props.scale)\n })\n\n let frame = -1\n function onScroll () {\n if (!isIntersecting.value) return\n\n cancelAnimationFrame(frame)\n frame = requestAnimationFrame(() => {\n const el: HTMLElement | null = (root.value?.$el as Element).querySelector('.v-img__img')\n if (!el) return\n\n const scrollHeight = scrollParent instanceof Document ? document.documentElement.clientHeight : scrollParent.clientHeight\n const scrollPos = scrollParent instanceof Document ? window.scrollY : scrollParent.scrollTop\n const top = intersectionRef.value!.getBoundingClientRect().top + scrollPos\n const height = contentRect.value!.height\n\n const center = top + (height - scrollHeight) / 2\n const translate = floor((scrollPos - center) * scale.value)\n const sizeScale = Math.max(1, (scale.value * (scrollHeight - height) + height) / height)\n\n el.style.setProperty('transform', `translateY(${translate}px) scale(${sizeScale})`)\n })\n }\n\n useRender(() => (\n <VImg\n class={[\n 'v-parallax',\n { 'v-parallax--active': isIntersecting.value },\n props.class,\n ]}\n style={ props.style }\n ref={ root }\n cover\n onLoadstart={ onScroll }\n onLoad={ onScroll }\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VParallax = InstanceType<typeof VParallax>\n"],"mappings":"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"}
@@ -11,32 +11,33 @@ import { useIntersectionObserver } from "../../composables/intersectionObserver.
11
11
  import { useResizeObserver } from "../../composables/resizeObserver.mjs";
12
12
  import { useTextColor } from "../../composables/color.mjs"; // Utilities
13
13
  import { computed, ref, toRef, watchEffect } from 'vue';
14
- import { convertToUnit, genericComponent, useRender } from "../../util/index.mjs"; // Types
14
+ import { convertToUnit, genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
15
+ export const makeVProgressCircularProps = propsFactory({
16
+ bgColor: String,
17
+ color: String,
18
+ indeterminate: [Boolean, String],
19
+ modelValue: {
20
+ type: [Number, String],
21
+ default: 0
22
+ },
23
+ rotate: {
24
+ type: [Number, String],
25
+ default: 0
26
+ },
27
+ width: {
28
+ type: [Number, String],
29
+ default: 4
30
+ },
31
+ ...makeComponentProps(),
32
+ ...makeSizeProps(),
33
+ ...makeTagProps({
34
+ tag: 'div'
35
+ }),
36
+ ...makeThemeProps()
37
+ }, 'v-progress-circular');
15
38
  export const VProgressCircular = genericComponent()({
16
39
  name: 'VProgressCircular',
17
- props: {
18
- bgColor: String,
19
- color: String,
20
- indeterminate: [Boolean, String],
21
- modelValue: {
22
- type: [Number, String],
23
- default: 0
24
- },
25
- rotate: {
26
- type: [Number, String],
27
- default: 0
28
- },
29
- width: {
30
- type: [Number, String],
31
- default: 4
32
- },
33
- ...makeComponentProps(),
34
- ...makeSizeProps(),
35
- ...makeTagProps({
36
- tag: 'div'
37
- }),
38
- ...makeThemeProps()
39
- },
40
+ props: makeVProgressCircularProps(),
40
41
  setup(props, _ref) {
41
42
  let {
42
43
  slots
@@ -1 +1 @@
1
- {"version":3,"file":"VProgressCircular.mjs","names":["makeComponentProps","makeSizeProps","useSize","makeTagProps","makeThemeProps","provideTheme","useIntersectionObserver","useResizeObserver","useTextColor","computed","ref","toRef","watchEffect","convertToUnit","genericComponent","useRender","VProgressCircular","name","props","bgColor","String","color","indeterminate","Boolean","modelValue","type","Number","default","rotate","width","tag","setup","_ref","slots","MAGIC_RADIUS_CONSTANT","CIRCUMFERENCE","Math","PI","root","themeClasses","sizeClasses","sizeStyles","textColorClasses","textColorStyles","underlayColorClasses","underlayColorStyles","intersectionRef","isIntersecting","resizeRef","contentRect","normalizedValue","max","min","parseFloat","size","value","diameter","strokeWidth","strokeDashOffset","_createVNode","class","style","undefined","transform"],"sources":["../../../src/components/VProgressCircular/VProgressCircular.tsx"],"sourcesContent":["// Styles\nimport './VProgressCircular.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref, toRef, watchEffect } from 'vue'\nimport { convertToUnit, genericComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VProgressCircular = genericComponent()({\n name: 'VProgressCircular',\n\n props: {\n bgColor: String,\n color: String,\n indeterminate: [Boolean, String] as PropType<boolean | 'disable-shrink'>,\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n rotate: {\n type: [Number, String],\n default: 0,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n\n ...makeComponentProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'div' }),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const MAGIC_RADIUS_CONSTANT = 20\n const CIRCUMFERENCE = 2 * Math.PI * MAGIC_RADIUS_CONSTANT\n\n const root = ref<HTMLElement>()\n\n const { themeClasses } = provideTheme(props)\n const { sizeClasses, sizeStyles } = useSize(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n const { textColorClasses: underlayColorClasses, textColorStyles: underlayColorStyles } = useTextColor(toRef(props, 'bgColor'))\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n const { resizeRef, contentRect } = useResizeObserver()\n\n const normalizedValue = computed(() => Math.max(0, Math.min(100, parseFloat(props.modelValue))))\n const width = computed(() => Number(props.width))\n const size = computed(() => {\n // Get size from element if size prop value is small, large etc\n return sizeStyles.value\n ? Number(props.size)\n : contentRect.value\n ? contentRect.value.width\n : Math.max(width.value, 32)\n })\n const diameter = computed(() => (MAGIC_RADIUS_CONSTANT / (1 - width.value / size.value)) * 2)\n const strokeWidth = computed(() => width.value / size.value * diameter.value)\n const strokeDashOffset = computed(() => convertToUnit(((100 - normalizedValue.value) / 100) * CIRCUMFERENCE))\n\n watchEffect(() => {\n intersectionRef.value = root.value\n resizeRef.value = root.value\n })\n\n useRender(() => (\n <props.tag\n ref={ root }\n class={[\n 'v-progress-circular',\n {\n 'v-progress-circular--indeterminate': !!props.indeterminate,\n 'v-progress-circular--visible': isIntersecting.value,\n 'v-progress-circular--disable-shrink': props.indeterminate === 'disable-shrink',\n },\n themeClasses.value,\n sizeClasses.value,\n textColorClasses.value,\n props.class,\n ]}\n style={[\n sizeStyles.value,\n textColorStyles.value,\n props.style,\n ]}\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-valuenow={ props.indeterminate ? undefined : normalizedValue.value }\n >\n <svg\n style={{\n transform: `rotate(calc(-90deg + ${Number(props.rotate)}deg))`,\n }}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={ `0 0 ${diameter.value} ${diameter.value}` }\n >\n <circle\n class={[\n 'v-progress-circular__underlay',\n underlayColorClasses.value,\n ]}\n style={ underlayColorStyles.value }\n fill=\"transparent\"\n cx=\"50%\"\n cy=\"50%\"\n r={ MAGIC_RADIUS_CONSTANT }\n stroke-width={ strokeWidth.value }\n stroke-dasharray={ CIRCUMFERENCE }\n stroke-dashoffset={ 0 }\n />\n\n <circle\n class=\"v-progress-circular__overlay\"\n fill=\"transparent\"\n cx=\"50%\"\n cy=\"50%\"\n r={ MAGIC_RADIUS_CONSTANT }\n stroke-width={ strokeWidth.value }\n stroke-dasharray={ CIRCUMFERENCE }\n stroke-dashoffset={ strokeDashOffset.value }\n />\n </svg>\n\n { slots.default && (\n <div class=\"v-progress-circular__content\">\n { slots.default({ value: normalizedValue.value }) }\n </div>\n )}\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VProgressCircular = InstanceType<typeof VProgressCircular>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,aAAa,EAAEC,OAAO;AAAA,SACtBC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY;AAAA,SAC5BC,uBAAuB;AAAA,SACvBC,iBAAiB;AAAA,SACjBC,YAAY,uCAErB;AACA,SAASC,QAAQ,EAAEC,GAAG,EAAEC,KAAK,EAAEC,WAAW,QAAQ,KAAK;AAAA,SAC9CC,aAAa,EAAEC,gBAAgB,EAAEC,SAAS,gCAEnD;AAGA,OAAO,MAAMC,iBAAiB,GAAGF,gBAAgB,EAAE,CAAC;EAClDG,IAAI,EAAE,mBAAmB;EAEzBC,KAAK,EAAE;IACLC,OAAO,EAAEC,MAAM;IACfC,KAAK,EAAED,MAAM;IACbE,aAAa,EAAE,CAACC,OAAO,EAAEH,MAAM,CAAyC;IACxEI,UAAU,EAAE;MACVC,IAAI,EAAE,CAACC,MAAM,EAAEN,MAAM,CAAC;MACtBO,OAAO,EAAE;IACX,CAAC;IACDC,MAAM,EAAE;MACNH,IAAI,EAAE,CAACC,MAAM,EAAEN,MAAM,CAAC;MACtBO,OAAO,EAAE;IACX,CAAC;IACDE,KAAK,EAAE;MACLJ,IAAI,EAAE,CAACC,MAAM,EAAEN,MAAM,CAAC;MACtBO,OAAO,EAAE;IACX,CAAC;IAED,GAAG3B,kBAAkB,EAAE;IACvB,GAAGC,aAAa,EAAE;IAClB,GAAGE,YAAY,CAAC;MAAE2B,GAAG,EAAE;IAAM,CAAC,CAAC;IAC/B,GAAG1B,cAAc;EACnB,CAAC;EAED2B,KAAKA,CAAEb,KAAK,EAAAc,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAME,qBAAqB,GAAG,EAAE;IAChC,MAAMC,aAAa,GAAG,CAAC,GAAGC,IAAI,CAACC,EAAE,GAAGH,qBAAqB;IAEzD,MAAMI,IAAI,GAAG5B,GAAG,EAAe;IAE/B,MAAM;MAAE6B;IAAa,CAAC,GAAGlC,YAAY,CAACa,KAAK,CAAC;IAC5C,MAAM;MAAEsB,WAAW;MAAEC;IAAW,CAAC,GAAGvC,OAAO,CAACgB,KAAK,CAAC;IAClD,MAAM;MAAEwB,gBAAgB;MAAEC;IAAgB,CAAC,GAAGnC,YAAY,CAACG,KAAK,CAACO,KAAK,EAAE,OAAO,CAAC,CAAC;IACjF,MAAM;MAAEwB,gBAAgB,EAAEE,oBAAoB;MAAED,eAAe,EAAEE;IAAoB,CAAC,GAAGrC,YAAY,CAACG,KAAK,CAACO,KAAK,EAAE,SAAS,CAAC,CAAC;IAC9H,MAAM;MAAE4B,eAAe;MAAEC;IAAe,CAAC,GAAGzC,uBAAuB,EAAE;IACrE,MAAM;MAAE0C,SAAS;MAAEC;IAAY,CAAC,GAAG1C,iBAAiB,EAAE;IAEtD,MAAM2C,eAAe,GAAGzC,QAAQ,CAAC,MAAM2B,IAAI,CAACe,GAAG,CAAC,CAAC,EAAEf,IAAI,CAACgB,GAAG,CAAC,GAAG,EAAEC,UAAU,CAACnC,KAAK,CAACM,UAAU,CAAC,CAAC,CAAC,CAAC;IAChG,MAAMK,KAAK,GAAGpB,QAAQ,CAAC,MAAMiB,MAAM,CAACR,KAAK,CAACW,KAAK,CAAC,CAAC;IACjD,MAAMyB,IAAI,GAAG7C,QAAQ,CAAC,MAAM;MAC1B;MACA,OAAOgC,UAAU,CAACc,KAAK,GACnB7B,MAAM,CAACR,KAAK,CAACoC,IAAI,CAAC,GAClBL,WAAW,CAACM,KAAK,GACfN,WAAW,CAACM,KAAK,CAAC1B,KAAK,GACvBO,IAAI,CAACe,GAAG,CAACtB,KAAK,CAAC0B,KAAK,EAAE,EAAE,CAAC;IACjC,CAAC,CAAC;IACF,MAAMC,QAAQ,GAAG/C,QAAQ,CAAC,MAAOyB,qBAAqB,IAAI,CAAC,GAAGL,KAAK,CAAC0B,KAAK,GAAGD,IAAI,CAACC,KAAK,CAAC,GAAI,CAAC,CAAC;IAC7F,MAAME,WAAW,GAAGhD,QAAQ,CAAC,MAAMoB,KAAK,CAAC0B,KAAK,GAAGD,IAAI,CAACC,KAAK,GAAGC,QAAQ,CAACD,KAAK,CAAC;IAC7E,MAAMG,gBAAgB,GAAGjD,QAAQ,CAAC,MAAMI,aAAa,CAAE,CAAC,GAAG,GAAGqC,eAAe,CAACK,KAAK,IAAI,GAAG,GAAIpB,aAAa,CAAC,CAAC;IAE7GvB,WAAW,CAAC,MAAM;MAChBkC,eAAe,CAACS,KAAK,GAAGjB,IAAI,CAACiB,KAAK;MAClCP,SAAS,CAACO,KAAK,GAAGjB,IAAI,CAACiB,KAAK;IAC9B,CAAC,CAAC;IAEFxC,SAAS,CAAC,MAAA4C,YAAA,CAAAzC,KAAA,CAAAY,GAAA;MAAA,OAEAQ,IAAI;MAAA,SACH,CACL,qBAAqB,EACrB;QACE,oCAAoC,EAAE,CAAC,CAACpB,KAAK,CAACI,aAAa;QAC3D,8BAA8B,EAAEyB,cAAc,CAACQ,KAAK;QACpD,qCAAqC,EAAErC,KAAK,CAACI,aAAa,KAAK;MACjE,CAAC,EACDiB,YAAY,CAACgB,KAAK,EAClBf,WAAW,CAACe,KAAK,EACjBb,gBAAgB,CAACa,KAAK,EACtBrC,KAAK,CAAC0C,KAAK,CACZ;MAAA,SACM,CACLnB,UAAU,CAACc,KAAK,EAChBZ,eAAe,CAACY,KAAK,EACrBrC,KAAK,CAAC2C,KAAK,CACZ;MAAA,QACI,aAAa;MAAA,iBACJ,GAAG;MAAA,iBACH,KAAK;MAAA,iBACH3C,KAAK,CAACI,aAAa,GAAGwC,SAAS,GAAGZ,eAAe,CAACK;IAAK;MAAA5B,OAAA,EAAAA,CAAA,MAAAgC,YAAA;QAAA,SAG9D;UACLI,SAAS,EAAG,wBAAuBrC,MAAM,CAACR,KAAK,CAACU,MAAM,CAAE;QAC1D,CAAC;QAAA,SACK,4BAA4B;QAAA,WACvB,OAAM4B,QAAQ,CAACD,KAAM,IAAGC,QAAQ,CAACD,KAAM;MAAC,IAAAI,YAAA;QAAA,SAG1C,CACL,+BAA+B,EAC/Bf,oBAAoB,CAACW,KAAK,CAC3B;QAAA,SACOV,mBAAmB,CAACU,KAAK;QAAA,QAC5B,aAAa;QAAA,MACf,KAAK;QAAA,MACL,KAAK;QAAA,KACJrB,qBAAqB;QAAA,gBACVuB,WAAW,CAACF,KAAK;QAAA,oBACbpB,aAAa;QAAA,qBACZ;MAAC,UAAAwB,YAAA;QAAA,SAIf,8BAA8B;QAAA,QAC/B,aAAa;QAAA,MACf,KAAK;QAAA,MACL,KAAK;QAAA,KACJzB,qBAAqB;QAAA,gBACVuB,WAAW,CAACF,KAAK;QAAA,oBACbpB,aAAa;QAAA,qBACZuB,gBAAgB,CAACH;MAAK,YAI5CtB,KAAK,CAACN,OAAO,IAAAgC,YAAA;QAAA,SACF;MAA8B,IACrC1B,KAAK,CAACN,OAAO,CAAC;QAAE4B,KAAK,EAAEL,eAAe,CAACK;MAAM,CAAC,CAAC,EAEpD;IAAA,EAEJ,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"VProgressCircular.mjs","names":["makeComponentProps","makeSizeProps","useSize","makeTagProps","makeThemeProps","provideTheme","useIntersectionObserver","useResizeObserver","useTextColor","computed","ref","toRef","watchEffect","convertToUnit","genericComponent","propsFactory","useRender","makeVProgressCircularProps","bgColor","String","color","indeterminate","Boolean","modelValue","type","Number","default","rotate","width","tag","VProgressCircular","name","props","setup","_ref","slots","MAGIC_RADIUS_CONSTANT","CIRCUMFERENCE","Math","PI","root","themeClasses","sizeClasses","sizeStyles","textColorClasses","textColorStyles","underlayColorClasses","underlayColorStyles","intersectionRef","isIntersecting","resizeRef","contentRect","normalizedValue","max","min","parseFloat","size","value","diameter","strokeWidth","strokeDashOffset","_createVNode","class","style","undefined","transform"],"sources":["../../../src/components/VProgressCircular/VProgressCircular.tsx"],"sourcesContent":["// Styles\nimport './VProgressCircular.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref, toRef, watchEffect } from 'vue'\nimport { convertToUnit, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const makeVProgressCircularProps = propsFactory({\n bgColor: String,\n color: String,\n indeterminate: [Boolean, String] as PropType<boolean | 'disable-shrink'>,\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n rotate: {\n type: [Number, String],\n default: 0,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n\n ...makeComponentProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'div' }),\n ...makeThemeProps(),\n}, 'v-progress-circular')\n\nexport const VProgressCircular = genericComponent()({\n name: 'VProgressCircular',\n\n props: makeVProgressCircularProps(),\n\n setup (props, { slots }) {\n const MAGIC_RADIUS_CONSTANT = 20\n const CIRCUMFERENCE = 2 * Math.PI * MAGIC_RADIUS_CONSTANT\n\n const root = ref<HTMLElement>()\n\n const { themeClasses } = provideTheme(props)\n const { sizeClasses, sizeStyles } = useSize(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n const { textColorClasses: underlayColorClasses, textColorStyles: underlayColorStyles } = useTextColor(toRef(props, 'bgColor'))\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n const { resizeRef, contentRect } = useResizeObserver()\n\n const normalizedValue = computed(() => Math.max(0, Math.min(100, parseFloat(props.modelValue))))\n const width = computed(() => Number(props.width))\n const size = computed(() => {\n // Get size from element if size prop value is small, large etc\n return sizeStyles.value\n ? Number(props.size)\n : contentRect.value\n ? contentRect.value.width\n : Math.max(width.value, 32)\n })\n const diameter = computed(() => (MAGIC_RADIUS_CONSTANT / (1 - width.value / size.value)) * 2)\n const strokeWidth = computed(() => width.value / size.value * diameter.value)\n const strokeDashOffset = computed(() => convertToUnit(((100 - normalizedValue.value) / 100) * CIRCUMFERENCE))\n\n watchEffect(() => {\n intersectionRef.value = root.value\n resizeRef.value = root.value\n })\n\n useRender(() => (\n <props.tag\n ref={ root }\n class={[\n 'v-progress-circular',\n {\n 'v-progress-circular--indeterminate': !!props.indeterminate,\n 'v-progress-circular--visible': isIntersecting.value,\n 'v-progress-circular--disable-shrink': props.indeterminate === 'disable-shrink',\n },\n themeClasses.value,\n sizeClasses.value,\n textColorClasses.value,\n props.class,\n ]}\n style={[\n sizeStyles.value,\n textColorStyles.value,\n props.style,\n ]}\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-valuenow={ props.indeterminate ? undefined : normalizedValue.value }\n >\n <svg\n style={{\n transform: `rotate(calc(-90deg + ${Number(props.rotate)}deg))`,\n }}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={ `0 0 ${diameter.value} ${diameter.value}` }\n >\n <circle\n class={[\n 'v-progress-circular__underlay',\n underlayColorClasses.value,\n ]}\n style={ underlayColorStyles.value }\n fill=\"transparent\"\n cx=\"50%\"\n cy=\"50%\"\n r={ MAGIC_RADIUS_CONSTANT }\n stroke-width={ strokeWidth.value }\n stroke-dasharray={ CIRCUMFERENCE }\n stroke-dashoffset={ 0 }\n />\n\n <circle\n class=\"v-progress-circular__overlay\"\n fill=\"transparent\"\n cx=\"50%\"\n cy=\"50%\"\n r={ MAGIC_RADIUS_CONSTANT }\n stroke-width={ strokeWidth.value }\n stroke-dasharray={ CIRCUMFERENCE }\n stroke-dashoffset={ strokeDashOffset.value }\n />\n </svg>\n\n { slots.default && (\n <div class=\"v-progress-circular__content\">\n { slots.default({ value: normalizedValue.value }) }\n </div>\n )}\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VProgressCircular = InstanceType<typeof VProgressCircular>\n"],"mappings":"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"}