@vuetify/nightly 3.0.0-beta.0 → 3.0.0-beta.2

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 (277) hide show
  1. package/CHANGELOG.md +53 -2
  2. package/dist/json/attributes.json +343 -195
  3. package/dist/json/importMap.json +20 -0
  4. package/dist/json/tags.json +106 -44
  5. package/dist/json/web-types.json +946 -549
  6. package/dist/vuetify.css +1486 -1085
  7. package/dist/vuetify.d.ts +9036 -8077
  8. package/dist/vuetify.esm.js +1511 -944
  9. package/dist/vuetify.esm.js.map +1 -1
  10. package/dist/vuetify.js +1510 -943
  11. package/dist/vuetify.js.map +1 -1
  12. package/dist/vuetify.min.css +3 -3
  13. package/dist/vuetify.min.js +825 -754
  14. package/dist/vuetify.min.js.map +1 -1
  15. package/lib/components/VAlert/VAlert.css +29 -8
  16. package/lib/components/VAlert/VAlert.mjs +31 -17
  17. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  18. package/lib/components/VAlert/VAlert.sass +27 -7
  19. package/lib/components/VAlert/VAlertTitle.mjs +1 -0
  20. package/lib/components/VAlert/VAlertTitle.mjs.map +1 -1
  21. package/lib/components/VAlert/_variables.scss +14 -7
  22. package/lib/components/VApp/VApp.css +1 -0
  23. package/lib/components/VApp/VApp.sass +1 -0
  24. package/lib/components/VAppBar/VAppBar.mjs +7 -3
  25. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  26. package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
  27. package/lib/components/VAutocomplete/VAutocomplete.mjs +82 -69
  28. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  29. package/lib/components/VAvatar/VAvatar.mjs +15 -14
  30. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  31. package/lib/components/VBanner/VBanner.css +82 -58
  32. package/lib/components/VBanner/VBanner.mjs +39 -43
  33. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  34. package/lib/components/VBanner/VBanner.sass +61 -54
  35. package/lib/components/VBanner/VBannerActions.mjs +34 -2
  36. package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
  37. package/lib/components/VBanner/VBannerAvatar.mjs +20 -0
  38. package/lib/components/VBanner/VBannerAvatar.mjs.map +1 -0
  39. package/lib/components/VBanner/VBannerIcon.mjs +20 -0
  40. package/lib/components/VBanner/VBannerIcon.mjs.map +1 -0
  41. package/lib/components/VBanner/_variables.scss +10 -14
  42. package/lib/components/VBanner/index.mjs +2 -0
  43. package/lib/components/VBanner/index.mjs.map +1 -1
  44. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +2 -0
  45. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  46. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +10 -9
  47. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  48. package/lib/components/VBtn/VBtn.css +20 -1
  49. package/lib/components/VBtn/VBtn.mjs +20 -7
  50. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  51. package/lib/components/VBtn/VBtn.sass +15 -2
  52. package/lib/components/VBtn/_variables.scss +3 -0
  53. package/lib/components/VBtnGroup/VBtnGroup.css +14 -6
  54. package/lib/components/VBtnGroup/VBtnGroup.sass +14 -6
  55. package/lib/components/VCard/VCard.css +13 -11
  56. package/lib/components/VCard/VCard.mjs +5 -2
  57. package/lib/components/VCard/VCard.mjs.map +1 -1
  58. package/lib/components/VCard/VCard.sass +12 -9
  59. package/lib/components/VCard/VCardActions.mjs +1 -2
  60. package/lib/components/VCard/VCardActions.mjs.map +1 -1
  61. package/lib/components/VCard/VCardContent.mjs +3 -0
  62. package/lib/components/VCard/VCardContent.mjs.map +1 -0
  63. package/lib/components/VCard/_variables.scss +11 -5
  64. package/lib/components/VCard/index.mjs +1 -0
  65. package/lib/components/VCard/index.mjs.map +1 -1
  66. package/lib/components/VCarousel/VCarousel.mjs +1 -1
  67. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  68. package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
  69. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  70. package/lib/components/VChip/VChip.css +3 -0
  71. package/lib/components/VChip/VChip.sass +3 -0
  72. package/lib/components/VChip/_variables.scss +3 -0
  73. package/lib/components/VColorPicker/VColorPickerCanvas.css +1 -1
  74. package/lib/components/VCombobox/VCombobox.mjs +92 -74
  75. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  76. package/lib/components/VDialog/VDialog.css +31 -11
  77. package/lib/components/VDialog/VDialog.mjs +6 -9
  78. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  79. package/lib/components/VDialog/VDialog.sass +27 -10
  80. package/lib/components/VDialog/_variables.scss +3 -6
  81. package/lib/components/VExpansionPanel/VExpansionPanel.css +3 -2
  82. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +6 -2
  83. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  84. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +5 -3
  85. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  86. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +4 -0
  87. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  88. package/lib/components/VField/VField.css +1 -1
  89. package/lib/components/VField/VField.mjs +3 -4
  90. package/lib/components/VField/VField.mjs.map +1 -1
  91. package/lib/components/VField/VField.sass +1 -1
  92. package/lib/components/VFileInput/VFileInput.mjs +2 -1
  93. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  94. package/lib/components/VFooter/VFooter.mjs +32 -15
  95. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  96. package/lib/components/VForm/VForm.mjs +25 -11
  97. package/lib/components/VForm/VForm.mjs.map +1 -1
  98. package/lib/components/VIcon/VIcon.css +27 -12
  99. package/lib/components/VIcon/VIcon.mjs +19 -16
  100. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  101. package/lib/components/VIcon/VIcon.sass +27 -16
  102. package/lib/components/VIcon/_variables.scss +1 -0
  103. package/lib/components/VInput/VInput.css +3 -1
  104. package/lib/components/VInput/VInput.mjs +3 -4
  105. package/lib/components/VInput/VInput.mjs.map +1 -1
  106. package/lib/components/VInput/VInput.sass +3 -1
  107. package/lib/components/VInput/_variables.scss +4 -0
  108. package/lib/components/VList/VList.css +7 -6
  109. package/lib/components/VList/VList.mjs +36 -17
  110. package/lib/components/VList/VList.mjs.map +1 -1
  111. package/lib/components/VList/VList.sass +3 -2
  112. package/lib/components/VList/VListChildren.mjs +1 -1
  113. package/lib/components/VList/VListChildren.mjs.map +1 -1
  114. package/lib/components/VList/VListGroup.mjs +28 -10
  115. package/lib/components/VList/VListGroup.mjs.map +1 -1
  116. package/lib/components/VList/VListItem.css +119 -42
  117. package/lib/components/VList/VListItem.mjs +36 -32
  118. package/lib/components/VList/VListItem.mjs.map +1 -1
  119. package/lib/components/VList/VListItem.sass +76 -28
  120. package/lib/components/VList/VListItemAction.mjs +29 -0
  121. package/lib/components/VList/VListItemAction.mjs.map +1 -0
  122. package/lib/components/VList/VListItemAvatar.mjs +10 -16
  123. package/lib/components/VList/VListItemAvatar.mjs.map +1 -1
  124. package/lib/components/VList/VListItemIcon.mjs +23 -0
  125. package/lib/components/VList/VListItemIcon.mjs.map +1 -0
  126. package/lib/components/VList/VListItemMedia.mjs +4 -4
  127. package/lib/components/VList/VListItemMedia.mjs.map +1 -1
  128. package/lib/components/VList/_variables.scss +12 -3
  129. package/lib/components/VList/index.mjs +2 -0
  130. package/lib/components/VList/index.mjs.map +1 -1
  131. package/lib/components/VMenu/VMenu.css +2 -12
  132. package/lib/components/VMenu/VMenu.mjs +61 -31
  133. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  134. package/lib/components/VMenu/VMenu.sass +3 -6
  135. package/lib/components/VMenu/shared.mjs +2 -0
  136. package/lib/components/VMenu/shared.mjs.map +1 -0
  137. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +1 -1
  138. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  139. package/lib/components/VOverlay/VOverlay.css +8 -0
  140. package/lib/components/VOverlay/VOverlay.mjs +16 -15
  141. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  142. package/lib/components/VOverlay/VOverlay.sass +9 -0
  143. package/lib/components/VOverlay/_variables.scss +1 -0
  144. package/lib/components/VOverlay/positionStrategies.mjs +7 -3
  145. package/lib/components/VOverlay/positionStrategies.mjs.map +1 -1
  146. package/lib/components/VOverlay/scrollStrategies.mjs +9 -0
  147. package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
  148. package/lib/components/VOverlay/useActivator.mjs +50 -14
  149. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  150. package/lib/components/VPagination/VPagination.mjs +10 -12
  151. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  152. package/lib/components/VProgressLinear/VProgressLinear.css +1 -1
  153. package/lib/components/VRadio/VRadio.mjs +1 -2
  154. package/lib/components/VRadio/VRadio.mjs.map +1 -1
  155. package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -2
  156. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  157. package/lib/components/VRangeSlider/VRangeSlider.mjs +5 -2
  158. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  159. package/lib/components/VRating/VRating.css +2 -2
  160. package/lib/components/VRating/VRating.mjs +13 -3
  161. package/lib/components/VRating/VRating.mjs.map +1 -1
  162. package/lib/components/VRating/VRating.sass +2 -2
  163. package/lib/components/VSelect/VSelect.mjs +70 -91
  164. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  165. package/lib/components/VSelectionControl/VSelectionControl.mjs +2 -1
  166. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  167. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +2 -2
  168. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  169. package/lib/components/VSlideGroup/VSlideGroup.css +0 -5
  170. package/lib/components/VSlideGroup/VSlideGroup.mjs +36 -14
  171. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  172. package/lib/components/VSlideGroup/VSlideGroup.sass +0 -4
  173. package/lib/components/VSlideGroup/VSlideGroupItem.mjs +3 -1
  174. package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
  175. package/lib/components/VSlider/VSlider.css +7 -2
  176. package/lib/components/VSlider/VSlider.sass +11 -5
  177. package/lib/components/VSlider/VSliderTrack.css +6 -6
  178. package/lib/components/VSlider/VSliderTrack.mjs +1 -1
  179. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  180. package/lib/components/VSlider/VSliderTrack.sass +7 -7
  181. package/lib/components/VSlider/_variables.scss +5 -2
  182. package/lib/components/VSnackbar/VSnackbar.css +14 -13
  183. package/lib/components/VSnackbar/VSnackbar.mjs +22 -10
  184. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  185. package/lib/components/VSnackbar/VSnackbar.sass +15 -16
  186. package/lib/components/VSnackbar/_variables.scss +0 -4
  187. package/lib/components/VSwitch/VSwitch.mjs +8 -5
  188. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  189. package/lib/components/VSystemBar/VSystemBar.css +0 -5
  190. package/lib/components/VSystemBar/VSystemBar.mjs +31 -14
  191. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  192. package/lib/components/VSystemBar/VSystemBar.sass +0 -5
  193. package/lib/components/VSystemBar/_variables.scss +0 -3
  194. package/lib/components/VTabs/VTab.mjs +28 -32
  195. package/lib/components/VTabs/VTab.mjs.map +1 -1
  196. package/lib/components/VTabs/VTabs.css +6 -2
  197. package/lib/components/VTabs/VTabs.mjs +7 -8
  198. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  199. package/lib/components/VTabs/VTabs.sass +6 -1
  200. package/lib/components/VTabs/shared.mjs +2 -0
  201. package/lib/components/VTabs/shared.mjs.map +1 -0
  202. package/lib/components/VTextField/VTextField.css +4 -4
  203. package/lib/components/VTextField/VTextField.mjs +5 -9
  204. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  205. package/lib/components/VTextField/VTextField.sass +5 -5
  206. package/lib/components/VTextarea/VTextarea.css +7 -4
  207. package/lib/components/VTextarea/VTextarea.sass +9 -5
  208. package/lib/components/VTimeline/VTimeline.css +187 -48
  209. package/lib/components/VTimeline/VTimeline.mjs +27 -11
  210. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  211. package/lib/components/VTimeline/VTimeline.sass +196 -51
  212. package/lib/components/VTimeline/VTimelineDivider.mjs +2 -1
  213. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  214. package/lib/components/VTimeline/_variables.scss +2 -1
  215. package/lib/components/VToolbar/VToolbar.css +8 -1
  216. package/lib/components/VToolbar/VToolbar.mjs +8 -11
  217. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  218. package/lib/components/VToolbar/VToolbar.sass +2 -1
  219. package/lib/components/VToolbar/VToolbarItems.mjs +0 -1
  220. package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
  221. package/lib/components/VToolbar/_variables.scss +13 -1
  222. package/lib/components/VWindow/VWindow.mjs +0 -8
  223. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  224. package/lib/components/index.d.ts +9025 -8077
  225. package/lib/composables/defaults.mjs +2 -2
  226. package/lib/composables/defaults.mjs.map +1 -1
  227. package/lib/composables/form.mjs +18 -5
  228. package/lib/composables/form.mjs.map +1 -1
  229. package/lib/composables/forwardRef.mjs +10 -6
  230. package/lib/composables/forwardRef.mjs.map +1 -1
  231. package/lib/composables/group.mjs +14 -6
  232. package/lib/composables/group.mjs.map +1 -1
  233. package/lib/composables/index.mjs.map +1 -1
  234. package/lib/composables/items.mjs +56 -0
  235. package/lib/composables/items.mjs.map +1 -0
  236. package/lib/composables/layout.mjs +7 -3
  237. package/lib/composables/layout.mjs.map +1 -1
  238. package/lib/composables/loader.mjs.map +1 -1
  239. package/lib/composables/nested/nested.mjs +27 -14
  240. package/lib/composables/nested/nested.mjs.map +1 -1
  241. package/lib/composables/nested/openStrategies.mjs +63 -36
  242. package/lib/composables/nested/openStrategies.mjs.map +1 -1
  243. package/lib/composables/nested/selectStrategies.mjs +163 -122
  244. package/lib/composables/nested/selectStrategies.mjs.map +1 -1
  245. package/lib/composables/overlay.mjs +5 -1
  246. package/lib/composables/overlay.mjs.map +1 -1
  247. package/lib/composables/proxiedModel.mjs.map +1 -1
  248. package/lib/composables/resizeObserver.mjs +1 -9
  249. package/lib/composables/resizeObserver.mjs.map +1 -1
  250. package/lib/composables/router.mjs +17 -5
  251. package/lib/composables/router.mjs.map +1 -1
  252. package/lib/composables/selectLink.mjs +19 -0
  253. package/lib/composables/selectLink.mjs.map +1 -0
  254. package/lib/composables/stack.mjs +7 -4
  255. package/lib/composables/stack.mjs.map +1 -1
  256. package/lib/composables/validation.mjs +6 -3
  257. package/lib/composables/validation.mjs.map +1 -1
  258. package/lib/composables/variant.mjs +0 -3
  259. package/lib/composables/variant.mjs.map +1 -1
  260. package/lib/directives/ripple/index.mjs +15 -3
  261. package/lib/directives/ripple/index.mjs.map +1 -1
  262. package/lib/entry-bundler.mjs +1 -1
  263. package/lib/framework.mjs +12 -7
  264. package/lib/framework.mjs.map +1 -1
  265. package/lib/index.d.ts +18 -2
  266. package/lib/locale/ca.mjs +9 -9
  267. package/lib/locale/ca.mjs.map +1 -1
  268. package/lib/styles/generic/_colors.scss +0 -1
  269. package/lib/styles/main.css +400 -392
  270. package/lib/styles/settings/_utilities.scss +54 -26
  271. package/lib/styles/tools/_states.sass +2 -1
  272. package/lib/util/defineComponent.mjs +37 -6
  273. package/lib/util/defineComponent.mjs.map +1 -1
  274. package/lib/util/getCurrentInstance.mjs +1 -1
  275. package/lib/util/getCurrentInstance.mjs.map +1 -1
  276. package/lib/util/helpers.mjs.map +1 -1
  277. package/package.json +31 -29
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VPagination/VPagination.tsx"],"names":["VBtn","makeTagProps","useLocale","useRtl","makeElevationProps","makeDensityProps","makeSizeProps","makeThemeProps","provideTheme","makeVariantProps","useResizeObserver","makeBorderProps","useRefs","useProxiedModel","provideDefaults","computed","nextTick","ref","toRef","createRange","defineComponent","keyValues","makeRoundedProps","VPagination","name","props","start","type","Number","String","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","slots","emit","page","t","n","isRtl","themeClasses","maxButtons","undefined","scoped","resizeRef","entries","target","contentRect","firstItem","querySelector","totalWidth","width","itemWidth","getBoundingClientRect","Math","max","floor","parseInt","min","range","middle","ceil","left","right","rangeLength","rangeStart","setValue","e","event","preventDefault","refs","updateRef","border","density","size","items","map","item","index","isActive","icon","elevation","rounded","color","ariaCurrent","onClick","controls","prevDisabled","nextDisabled","ariaDisabled","updateFocus","currentIndex","$el","focus","onKeydown","key"],"mappings":"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","sourcesContent":["import './VPagination.sass'\n\n// Components\nimport { VBtn } from '../VBtn'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\nimport { useLocale } from '@/composables/locale'\nimport { useRtl } from '@/composables/rtl'\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeDensityProps } from '@/composables/density'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { makeBorderProps } from '@/composables/border'\nimport { useRefs } from '@/composables/refs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, nextTick, ref, toRef } from 'vue'\nimport { createRange, defineComponent, keyValues } from '@/util'\n\n// Types\nimport type { ComponentPublicInstance } from 'vue'\nimport { makeRoundedProps } from '@/composables/rounded'\n\nexport const VPagination = defineComponent({\n name: 'VPagination',\n\n props: {\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: String,\n default: '$first',\n },\n prevIcon: {\n type: String,\n default: '$prev',\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n lastIcon: {\n type: String,\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 ...makeRoundedProps(),\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\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 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 > *')\n\n if (!firstItem) return\n\n const totalWidth = contentRect.width\n const itemWidth = firstItem.getBoundingClientRect().width + 10\n\n maxButtons.value = Math.max(0, Math.floor((totalWidth - 96) / 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 Math.min(parseInt(props.totalVisible ?? '', 10), length.value)\n else if (maxButtons.value >= 0) return maxButtons.value\n return length.value\n })\n\n const range = computed(() => {\n if (length.value <= 0) return []\n\n if (totalVisible.value <= 3) {\n return [Math.min(Math.max(start.value, page.value), start.value + length.value)]\n }\n\n if (props.length <= totalVisible.value) {\n return createRange(length.value, start.value)\n }\n\n const middle = Math.ceil(totalVisible.value / 2)\n const left = middle\n const right = length.value - middle\n\n if (page.value < left) {\n return [...createRange(Math.max(1, totalVisible.value - 2), start.value), props.ellipsis, length.value]\n } else if (page.value > right) {\n const rangeLength = totalVisible.value - 2\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 - 4)\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 VBtn: {\n border: toRef(props, 'border'),\n density: toRef(props, 'density'),\n size: toRef(props, 'size'),\n variant: toRef(props, 'variant'),\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 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 page: n(item),\n props: {\n ref,\n ellipsis: false,\n icon: true,\n disabled: !!props.disabled || props.length < 2,\n elevation: props.elevation,\n rounded: props.rounded,\n color: isActive ? props.color : undefined,\n ariaCurrent: isActive,\n ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, index + 1),\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 return () => (\n <props.tag\n ref={ resizeRef }\n class={[\n 'v-pagination',\n themeClasses.value,\n ]}\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 class=\"v-pagination__first\" data-test=\"v-pagination-first\">\n { slots.first ? slots.first(controls.value.first) : (\n <VBtn {...controls.value.first} />\n ) }\n </li>\n ) }\n\n <li class=\"v-pagination__prev\" data-test=\"v-pagination-prev\">\n { slots.prev ? slots.prev(controls.value.prev) : (\n <VBtn {...controls.value.prev} />\n ) }\n </li>\n\n { items.value.map((item, index) => (\n <li\n key={ `${index}_${item.page}` }\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 {...item.props}>{ item.page }</VBtn>\n ) }\n </li>\n )) }\n\n <li class=\"v-pagination__next\" data-test=\"v-pagination-next\">\n { slots.next ? slots.next(controls.value.next) : (\n <VBtn {...controls.value.next} />\n ) }\n </li>\n\n { props.showFirstLastPage && (\n <li class=\"v-pagination__last\" data-test=\"v-pagination-last\">\n { slots.last ? slots.last(controls.value.last) : (\n <VBtn {...controls.value.last} />\n ) }\n </li>\n ) }\n </ul>\n </props.tag>\n )\n },\n})\n\nexport type VPagination = InstanceType<typeof VPagination>\n"],"file":"VPagination.mjs"}
1
+ {"version":3,"sources":["../../../src/components/VPagination/VPagination.tsx"],"names":["VBtn","makeTagProps","useLocale","useRtl","makeElevationProps","makeDensityProps","makeSizeProps","makeThemeProps","provideTheme","makeVariantProps","useResizeObserver","makeBorderProps","useRefs","useProxiedModel","provideDefaults","computed","nextTick","ref","toRef","createRange","defineComponent","keyValues","makeRoundedProps","VPagination","name","props","start","type","Number","String","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","slots","emit","page","t","n","isRtl","themeClasses","maxButtons","undefined","scoped","resizeRef","entries","target","contentRect","firstItem","querySelector","totalWidth","width","itemWidth","getBoundingClientRect","Math","max","floor","parseInt","min","range","even","middle","left","right","rangeLength","rangeStart","ceil","setValue","e","event","preventDefault","refs","updateRef","border","density","size","items","map","item","index","isActive","icon","elevation","rounded","color","ariaCurrent","onClick","controls","prevDisabled","nextDisabled","ariaDisabled","updateFocus","currentIndex","$el","focus","onKeydown","key"],"mappings":"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","sourcesContent":["import './VPagination.sass'\n\n// Components\nimport { VBtn } from '../VBtn'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\nimport { useLocale } from '@/composables/locale'\nimport { useRtl } from '@/composables/rtl'\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeDensityProps } from '@/composables/density'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { makeBorderProps } from '@/composables/border'\nimport { useRefs } from '@/composables/refs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, nextTick, ref, toRef } from 'vue'\nimport { createRange, defineComponent, keyValues } from '@/util'\n\n// Types\nimport type { ComponentPublicInstance } from 'vue'\nimport { makeRoundedProps } from '@/composables/rounded'\n\nexport const VPagination = defineComponent({\n name: 'VPagination',\n\n props: {\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: String,\n default: '$first',\n },\n prevIcon: {\n type: String,\n default: '$prev',\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n lastIcon: {\n type: String,\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 ...makeRoundedProps(),\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\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 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 > *')\n\n if (!firstItem) return\n\n const totalWidth = contentRect.width\n const itemWidth = firstItem.getBoundingClientRect().width + 10\n\n maxButtons.value = Math.max(0, Math.floor((totalWidth - 96) / 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 Math.min(parseInt(props.totalVisible ?? '', 10), length.value)\n else if (maxButtons.value >= 0) return maxButtons.value\n return length.value\n })\n\n const range = computed(() => {\n if (length.value <= 0) return []\n\n if (totalVisible.value <= 2) 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 >= 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 VBtn: {\n border: toRef(props, 'border'),\n density: toRef(props, 'density'),\n size: toRef(props, 'size'),\n variant: toRef(props, 'variant'),\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 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 page: n(item),\n props: {\n ref,\n ellipsis: false,\n icon: true,\n disabled: !!props.disabled || props.length < 2,\n elevation: props.elevation,\n rounded: props.rounded,\n color: isActive ? props.color : undefined,\n ariaCurrent: isActive,\n ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, index + 1),\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 return () => (\n <props.tag\n ref={ resizeRef }\n class={[\n 'v-pagination',\n themeClasses.value,\n ]}\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 class=\"v-pagination__first\" data-test=\"v-pagination-first\">\n { slots.first ? slots.first(controls.value.first) : (\n <VBtn {...controls.value.first} />\n ) }\n </li>\n ) }\n\n <li class=\"v-pagination__prev\" data-test=\"v-pagination-prev\">\n { slots.prev ? slots.prev(controls.value.prev) : (\n <VBtn {...controls.value.prev} />\n ) }\n </li>\n\n { items.value.map((item, index) => (\n <li\n key={ `${index}_${item.page}` }\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 {...item.props}>{ item.page }</VBtn>\n ) }\n </li>\n )) }\n\n <li class=\"v-pagination__next\" data-test=\"v-pagination-next\">\n { slots.next ? slots.next(controls.value.next) : (\n <VBtn {...controls.value.next} />\n ) }\n </li>\n\n { props.showFirstLastPage && (\n <li class=\"v-pagination__last\" data-test=\"v-pagination-last\">\n { slots.last ? slots.last(controls.value.last) : (\n <VBtn {...controls.value.last} />\n ) }\n </li>\n ) }\n </ul>\n </props.tag>\n )\n },\n})\n\nexport type VPagination = InstanceType<typeof VPagination>\n"],"file":"VPagination.mjs"}
@@ -118,7 +118,7 @@
118
118
 
119
119
  .v-progress-linear--striped .v-progress-linear__determinate {
120
120
  animation: progress-linear-stripes 1s infinite linear;
121
- background-image: linear-gradient(135deg, rgba(255, 255, 255, 0.25) 25%, transparent 0, transparent 50%, rgba(255, 255, 255, 0.25) 0, rgba(255, 255, 255, 0.25) 75%, transparent 0, transparent);
121
+ background-image: linear-gradient(135deg, hsla(0deg, 0%, 100%, 0.25) 25%, transparent 0, transparent 50%, hsla(0deg, 0%, 100%, 0.25) 0, hsla(0deg, 0%, 100%, 0.25) 75%, transparent 0, transparent);
122
122
  background-repeat: repeat;
123
123
  background-size: var(--v-progress-linear-height);
124
124
  }
@@ -2,8 +2,7 @@ import { createVNode as _createVNode, resolveDirective as _resolveDirective } fr
2
2
  // Components
3
3
  import { VSelectionControl } from "../VSelectionControl/index.mjs"; // Utility
4
4
 
5
- import { defineComponent } from 'vue';
6
- import { useRender } from "../../util/index.mjs";
5
+ import { defineComponent, useRender } from "../../util/index.mjs";
7
6
  export const VRadio = defineComponent({
8
7
  name: 'VRadio',
9
8
  props: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VRadio/VRadio.tsx"],"names":["VSelectionControl","defineComponent","useRender","VRadio","name","props","falseIcon","type","String","default","trueIcon","setup","slots"],"mappings":";AAAA;SACSA,iB,0CAET;;AACA,SAASC,eAAT,QAAgC,KAAhC;SACSC,S;AAET,OAAO,MAAMC,MAAM,GAAGF,eAAe,CAAC;AACpCG,EAAAA,IAAI,EAAE,QAD8B;AAGpCC,EAAAA,KAAK,EAAE;AACLC,IAAAA,SAAS,EAAE;AACTC,MAAAA,IAAI,EAAEC,MADG;AAETC,MAAAA,OAAO,EAAE;AAFA,KADN;AAKLC,IAAAA,QAAQ,EAAE;AACRH,MAAAA,IAAI,EAAEC,MADE;AAERC,MAAAA,OAAO,EAAE;AAFD;AALL,GAH6B;;AAcpCE,EAAAA,KAAK,CAAEN,KAAF,QAAoB;AAAA,QAAX;AAAEO,MAAAA;AAAF,KAAW;AACvBV,IAAAA,SAAS,CAAC;AAAA,eAEA,SAFA;AAAA,kBAGKG,KAAK,CAACK,QAHX;AAAA,mBAIML,KAAK,CAACC,SAJZ;AAAA,cAKD;AALC,OAMIM,KANJ,CAAD,CAAT;AAUA,WAAO,EAAP;AACD;;AA1BmC,CAAD,CAA9B","sourcesContent":["// Components\nimport { VSelectionControl } from '@/components/VSelectionControl'\n\n// Utility\nimport { defineComponent } from 'vue'\nimport { useRender } from '@/util'\n\nexport const VRadio = defineComponent({\n name: 'VRadio',\n\n props: {\n falseIcon: {\n type: String,\n default: '$radioOff',\n },\n trueIcon: {\n type: String,\n default: '$radioOn',\n },\n },\n\n setup (props, { slots }) {\n useRender(() => (\n <VSelectionControl\n class=\"v-radio\"\n trueIcon={ props.trueIcon }\n falseIcon={ props.falseIcon }\n type=\"radio\"\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VRadio = InstanceType<typeof VRadio>\n"],"file":"VRadio.mjs"}
1
+ {"version":3,"sources":["../../../src/components/VRadio/VRadio.tsx"],"names":["VSelectionControl","defineComponent","useRender","VRadio","name","props","falseIcon","type","String","default","trueIcon","setup","slots"],"mappings":";AAAA;SACSA,iB,0CAET;;SACSC,e,EAAiBC,S;AAE1B,OAAO,MAAMC,MAAM,GAAGF,eAAe,CAAC;AACpCG,EAAAA,IAAI,EAAE,QAD8B;AAGpCC,EAAAA,KAAK,EAAE;AACLC,IAAAA,SAAS,EAAE;AACTC,MAAAA,IAAI,EAAEC,MADG;AAETC,MAAAA,OAAO,EAAE;AAFA,KADN;AAKLC,IAAAA,QAAQ,EAAE;AACRH,MAAAA,IAAI,EAAEC,MADE;AAERC,MAAAA,OAAO,EAAE;AAFD;AALL,GAH6B;;AAcpCE,EAAAA,KAAK,CAAEN,KAAF,QAAoB;AAAA,QAAX;AAAEO,MAAAA;AAAF,KAAW;AACvBV,IAAAA,SAAS,CAAC;AAAA,eAEA,SAFA;AAAA,kBAGKG,KAAK,CAACK,QAHX;AAAA,mBAIML,KAAK,CAACC,SAJZ;AAAA,cAKD;AALC,OAMIM,KANJ,CAAD,CAAT;AAUA,WAAO,EAAP;AACD;;AA1BmC,CAAD,CAA9B","sourcesContent":["// Components\nimport { VSelectionControl } from '@/components/VSelectionControl'\n\n// Utility\nimport { defineComponent, useRender } from '@/util'\n\nexport const VRadio = defineComponent({\n name: 'VRadio',\n\n props: {\n falseIcon: {\n type: String,\n default: '$radioOff',\n },\n trueIcon: {\n type: String,\n default: '$radioOn',\n },\n },\n\n setup (props, { slots }) {\n useRender(() => (\n <VSelectionControl\n class=\"v-radio\"\n trueIcon={ props.trueIcon }\n falseIcon={ props.falseIcon }\n type=\"radio\"\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VRadio = InstanceType<typeof VRadio>\n"],"file":"VRadio.mjs"}
@@ -7,8 +7,8 @@ import { VLabel } from "../VLabel/index.mjs";
7
7
  import { VSelectionControlGroup } from "../VSelectionControlGroup/index.mjs";
8
8
  import { filterControlProps, makeSelectionControlProps } from "../VSelectionControl/VSelectionControl.mjs"; // Utility
9
9
 
10
- import { computed, defineComponent } from 'vue';
11
- import { filterInputAttrs, getUid, useRender } from "../../util/index.mjs";
10
+ import { computed } from 'vue';
11
+ import { defineComponent, filterInputAttrs, getUid, useRender } from "../../util/index.mjs";
12
12
  export const VRadioGroup = defineComponent({
13
13
  name: 'VRadioGroup',
14
14
  inheritAttrs: false,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VRadioGroup/VRadioGroup.tsx"],"names":["filterInputProps","makeVInputProps","VInput","VLabel","VSelectionControlGroup","filterControlProps","makeSelectionControlProps","computed","defineComponent","filterInputAttrs","getUid","useRender","VRadioGroup","name","inheritAttrs","props","height","type","Number","String","default","trueIcon","falseIcon","setup","attrs","slots","uid","id","inputAttrs","controlAttrs","inputProps","_1","controlProps","_2","label","for","value","isDisabled","isReadonly"],"mappings":";AAAA;AACA,2B,CAEA;;SACSA,gB,EAAkBC,e,EAAiBC,M;SACnCC,M;SACAC,sB;SACAC,kB,EAAoBC,yB,sDAE7B;;AACA,SAASC,QAAT,EAAmBC,eAAnB,QAA0C,KAA1C;SACSC,gB,EAAkBC,M,EAAQC,S;AAEnC,OAAO,MAAMC,WAAW,GAAGJ,eAAe,CAAC;AACzCK,EAAAA,IAAI,EAAE,aADmC;AAGzCC,EAAAA,YAAY,EAAE,KAH2B;AAKzCC,EAAAA,KAAK,EAAE;AACLC,IAAAA,MAAM,EAAE;AACNC,MAAAA,IAAI,EAAE,CAACC,MAAD,EAASC,MAAT,CADA;AAENC,MAAAA,OAAO,EAAE;AAFH,KADH;AAML,OAAGnB,eAAe,EANb;AAOL,OAAGK,yBAAyB,EAPvB;AASLe,IAAAA,QAAQ,EAAE;AACRJ,MAAAA,IAAI,EAAEE,MADE;AAERC,MAAAA,OAAO,EAAE;AAFD,KATL;AAaLE,IAAAA,SAAS,EAAE;AACTL,MAAAA,IAAI,EAAEE,MADG;AAETC,MAAAA,OAAO,EAAE;AAFA,KAbN;AAiBLH,IAAAA,IAAI,EAAE;AACJA,MAAAA,IAAI,EAAEE,MADF;AAEJC,MAAAA,OAAO,EAAE;AAFL;AAjBD,GALkC;;AA4BzCG,EAAAA,KAAK,CAAER,KAAF,QAA2B;AAAA,QAAlB;AAAES,MAAAA,KAAF;AAASC,MAAAA;AAAT,KAAkB;AAC9B,UAAMC,GAAG,GAAGhB,MAAM,EAAlB;AACA,UAAMiB,EAAE,GAAGpB,QAAQ,CAAC,MAAMQ,KAAK,CAACY,EAAN,IAAa,eAAcD,GAAI,EAAtC,CAAnB;AAEAf,IAAAA,SAAS,CAAC,MAAM;AACd,YAAM,CAACiB,UAAD,EAAaC,YAAb,IAA6BpB,gBAAgB,CAACe,KAAD,CAAnD;AACA,YAAM,CAACM,UAAD,EAAaC,EAAb,IAAmB/B,gBAAgB,CAACe,KAAD,CAAzC;AACA,YAAM,CAACiB,YAAD,EAAeC,EAAf,IAAqB5B,kBAAkB,CAACU,KAAD,CAA7C;AACA,YAAMmB,KAAK,GAAGT,KAAK,CAACS,KAAN,GACVT,KAAK,CAACS,KAAN,CAAY;AACZA,QAAAA,KAAK,EAAEnB,KAAK,CAACmB,KADD;AAEZnB,QAAAA,KAAK,EAAE;AAAEoB,UAAAA,GAAG,EAAER,EAAE,CAACS;AAAV;AAFK,OAAZ,CADU,GAKVrB,KAAK,CAACmB,KALV;AAOA;AAAA,iBAEU;AAFV,SAGSN,UAHT,EAISE,UAJT,KAOM,GAAGL,KAPT;AAQML,QAAAA,OAAO,EAAE;AAAA,cAAC;AACRiB,YAAAA,UADQ;AAERC,YAAAA;AAFQ,WAAD;AAAA,gDAKHJ,KAAK;AAAA,mBACSP,EAAE,CAACS;AADZ;AAAA,4BAEDF,KAFC;AAAA,YALF,mDAYEF,YAZF;AAAA,kBAaEL,EAAE,CAACS,KAbL;AAAA,wBAcQrB,KAAK,CAACM,QAdd;AAAA,yBAeSN,KAAK,CAACO,SAff;AAAA,oBAgBIP,KAAK,CAACE,IAhBV;AAAA,wBAiBQoB,UAAU,CAACD,KAjBnB;AAAA,wBAkBQE,UAAU,CAACF;AAlBnB,aAmBEP,YAnBF,GAoBOJ,KApBP;AAAA;AARf;AAmCD,KA9CQ,CAAT;AAgDA,WAAO,EAAP;AACD;;AAjFwC,CAAD,CAAnC","sourcesContent":["// Styles\nimport './VRadioGroup.sass'\n\n// Components\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VLabel } from '@/components/VLabel'\nimport { VSelectionControlGroup } from '@/components/VSelectionControlGroup'\nimport { filterControlProps, makeSelectionControlProps } from '@/components/VSelectionControl/VSelectionControl'\n\n// Utility\nimport { computed, defineComponent } from 'vue'\nimport { filterInputAttrs, getUid, useRender } from '@/util'\n\nexport const VRadioGroup = defineComponent({\n name: 'VRadioGroup',\n\n inheritAttrs: false,\n\n props: {\n height: {\n type: [Number, String],\n default: 'auto',\n },\n\n ...makeVInputProps(),\n ...makeSelectionControlProps(),\n\n trueIcon: {\n type: String,\n default: '$radioOn',\n },\n falseIcon: {\n type: String,\n default: '$radioOff',\n },\n type: {\n type: String,\n default: 'radio',\n },\n },\n\n setup (props, { attrs, slots }) {\n const uid = getUid()\n const id = computed(() => props.id || `radio-group-${uid}`)\n\n useRender(() => {\n const [inputAttrs, controlAttrs] = filterInputAttrs(attrs)\n const [inputProps, _1] = filterInputProps(props)\n const [controlProps, _2] = filterControlProps(props)\n const label = slots.label\n ? slots.label({\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n\n return (\n <VInput\n class=\"v-radio-group\"\n { ...inputAttrs }\n { ...inputProps }\n >\n {{\n ...slots,\n default: ({\n isDisabled,\n isReadonly,\n }) => (\n <>\n { label && (\n <VLabel for={ id.value }>\n { label }\n </VLabel>\n ) }\n\n <VSelectionControlGroup\n { ...controlProps }\n id={ id.value }\n trueIcon={ props.trueIcon }\n falseIcon={ props.falseIcon }\n type={ props.type }\n disabled={ isDisabled.value }\n readonly={ isReadonly.value }\n { ...controlAttrs }\n v-slots={ slots }\n />\n </>\n ),\n }}\n </VInput>\n )\n })\n\n return {}\n },\n})\n"],"file":"VRadioGroup.mjs"}
1
+ {"version":3,"sources":["../../../src/components/VRadioGroup/VRadioGroup.tsx"],"names":["filterInputProps","makeVInputProps","VInput","VLabel","VSelectionControlGroup","filterControlProps","makeSelectionControlProps","computed","defineComponent","filterInputAttrs","getUid","useRender","VRadioGroup","name","inheritAttrs","props","height","type","Number","String","default","trueIcon","falseIcon","setup","attrs","slots","uid","id","inputAttrs","controlAttrs","inputProps","_1","controlProps","_2","label","for","value","isDisabled","isReadonly"],"mappings":";AAAA;AACA,2B,CAEA;;SACSA,gB,EAAkBC,e,EAAiBC,M;SACnCC,M;SACAC,sB;SACAC,kB,EAAoBC,yB,sDAE7B;;AACA,SAASC,QAAT,QAAyB,KAAzB;SACSC,e,EAAiBC,gB,EAAkBC,M,EAAQC,S;AAEpD,OAAO,MAAMC,WAAW,GAAGJ,eAAe,CAAC;AACzCK,EAAAA,IAAI,EAAE,aADmC;AAGzCC,EAAAA,YAAY,EAAE,KAH2B;AAKzCC,EAAAA,KAAK,EAAE;AACLC,IAAAA,MAAM,EAAE;AACNC,MAAAA,IAAI,EAAE,CAACC,MAAD,EAASC,MAAT,CADA;AAENC,MAAAA,OAAO,EAAE;AAFH,KADH;AAML,OAAGnB,eAAe,EANb;AAOL,OAAGK,yBAAyB,EAPvB;AASLe,IAAAA,QAAQ,EAAE;AACRJ,MAAAA,IAAI,EAAEE,MADE;AAERC,MAAAA,OAAO,EAAE;AAFD,KATL;AAaLE,IAAAA,SAAS,EAAE;AACTL,MAAAA,IAAI,EAAEE,MADG;AAETC,MAAAA,OAAO,EAAE;AAFA,KAbN;AAiBLH,IAAAA,IAAI,EAAE;AACJA,MAAAA,IAAI,EAAEE,MADF;AAEJC,MAAAA,OAAO,EAAE;AAFL;AAjBD,GALkC;;AA4BzCG,EAAAA,KAAK,CAAER,KAAF,QAA2B;AAAA,QAAlB;AAAES,MAAAA,KAAF;AAASC,MAAAA;AAAT,KAAkB;AAC9B,UAAMC,GAAG,GAAGhB,MAAM,EAAlB;AACA,UAAMiB,EAAE,GAAGpB,QAAQ,CAAC,MAAMQ,KAAK,CAACY,EAAN,IAAa,eAAcD,GAAI,EAAtC,CAAnB;AAEAf,IAAAA,SAAS,CAAC,MAAM;AACd,YAAM,CAACiB,UAAD,EAAaC,YAAb,IAA6BpB,gBAAgB,CAACe,KAAD,CAAnD;AACA,YAAM,CAACM,UAAD,EAAaC,EAAb,IAAmB/B,gBAAgB,CAACe,KAAD,CAAzC;AACA,YAAM,CAACiB,YAAD,EAAeC,EAAf,IAAqB5B,kBAAkB,CAACU,KAAD,CAA7C;AACA,YAAMmB,KAAK,GAAGT,KAAK,CAACS,KAAN,GACVT,KAAK,CAACS,KAAN,CAAY;AACZA,QAAAA,KAAK,EAAEnB,KAAK,CAACmB,KADD;AAEZnB,QAAAA,KAAK,EAAE;AAAEoB,UAAAA,GAAG,EAAER,EAAE,CAACS;AAAV;AAFK,OAAZ,CADU,GAKVrB,KAAK,CAACmB,KALV;AAOA;AAAA,iBAEU;AAFV,SAGSN,UAHT,EAISE,UAJT,KAOM,GAAGL,KAPT;AAQML,QAAAA,OAAO,EAAE;AAAA,cAAC;AACRiB,YAAAA,UADQ;AAERC,YAAAA;AAFQ,WAAD;AAAA,gDAKHJ,KAAK;AAAA,mBACSP,EAAE,CAACS;AADZ;AAAA,4BAEDF,KAFC;AAAA,YALF,mDAYEF,YAZF;AAAA,kBAaEL,EAAE,CAACS,KAbL;AAAA,wBAcQrB,KAAK,CAACM,QAdd;AAAA,yBAeSN,KAAK,CAACO,SAff;AAAA,oBAgBIP,KAAK,CAACE,IAhBV;AAAA,wBAiBQoB,UAAU,CAACD,KAjBnB;AAAA,wBAkBQE,UAAU,CAACF;AAlBnB,aAmBEP,YAnBF,GAoBOJ,KApBP;AAAA;AARf;AAmCD,KA9CQ,CAAT;AAgDA,WAAO,EAAP;AACD;;AAjFwC,CAAD,CAAnC","sourcesContent":["// Styles\nimport './VRadioGroup.sass'\n\n// Components\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VLabel } from '@/components/VLabel'\nimport { VSelectionControlGroup } from '@/components/VSelectionControlGroup'\nimport { filterControlProps, makeSelectionControlProps } from '@/components/VSelectionControl/VSelectionControl'\n\n// Utility\nimport { computed } from 'vue'\nimport { defineComponent, filterInputAttrs, getUid, useRender } from '@/util'\n\nexport const VRadioGroup = defineComponent({\n name: 'VRadioGroup',\n\n inheritAttrs: false,\n\n props: {\n height: {\n type: [Number, String],\n default: 'auto',\n },\n\n ...makeVInputProps(),\n ...makeSelectionControlProps(),\n\n trueIcon: {\n type: String,\n default: '$radioOn',\n },\n falseIcon: {\n type: String,\n default: '$radioOff',\n },\n type: {\n type: String,\n default: 'radio',\n },\n },\n\n setup (props, { attrs, slots }) {\n const uid = getUid()\n const id = computed(() => props.id || `radio-group-${uid}`)\n\n useRender(() => {\n const [inputAttrs, controlAttrs] = filterInputAttrs(attrs)\n const [inputProps, _1] = filterInputProps(props)\n const [controlProps, _2] = filterControlProps(props)\n const label = slots.label\n ? slots.label({\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n\n return (\n <VInput\n class=\"v-radio-group\"\n { ...inputAttrs }\n { ...inputProps }\n >\n {{\n ...slots,\n default: ({\n isDisabled,\n isReadonly,\n }) => (\n <>\n { label && (\n <VLabel for={ id.value }>\n { label }\n </VLabel>\n ) }\n\n <VSelectionControlGroup\n { ...controlProps }\n id={ id.value }\n trueIcon={ props.trueIcon }\n falseIcon={ props.falseIcon }\n type={ props.type }\n disabled={ isDisabled.value }\n readonly={ isReadonly.value }\n { ...controlAttrs }\n v-slots={ slots }\n />\n </>\n ),\n }}\n </VInput>\n )\n })\n\n return {}\n },\n})\n"],"file":"VRadioGroup.mjs"}
@@ -1,5 +1,7 @@
1
1
  import { mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
2
- // Components
2
+ // Styles
3
+ import "../VSlider/VSlider.css"; // Components
4
+
3
5
  import { VInput } from "../VInput/index.mjs";
4
6
  import { VSliderThumb } from "../VSlider/VSliderThumb.mjs";
5
7
  import { VSliderTrack } from "../VSlider/VSliderTrack.mjs"; // Composables
@@ -8,7 +10,8 @@ import { getOffset, makeSliderProps, useSlider } from "../VSlider/slider.mjs";
8
10
  import { makeFocusProps, useFocus } from "../../composables/focus.mjs";
9
11
  import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
10
12
 
11
- import { computed, defineComponent, ref } from 'vue'; // Types
13
+ import { computed, ref } from 'vue';
14
+ import { defineComponent } from "../../util/index.mjs"; // Types
12
15
 
13
16
  import { filterInputProps, makeVInputProps } from "../VInput/VInput.mjs";
14
17
  export const VRangeSlider = defineComponent({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VRangeSlider/VRangeSlider.tsx"],"names":["VInput","VSliderThumb","VSliderTrack","getOffset","makeSliderProps","useSlider","makeFocusProps","useFocus","useProxiedModel","computed","defineComponent","ref","filterInputProps","makeVInputProps","VRangeSlider","name","props","strict","Boolean","modelValue","type","Array","default","emits","value","setup","slots","attrs","startThumbRef","stopThumbRef","inputRef","getActiveThumb","e","startOffset","$el","direction","stopOffset","a","Math","abs","b","min","max","mousePressed","roundValue","onSliderMousedown","onSliderTouchstart","trackContainerRef","position","hasLabels","activeThumbRef","handleSliderMouseUp","newValue","model","handleMouseMove","start","stop","focus","undefined","arr","length","map","isFocused","blur","trackStart","trackStop","inputProps","_","disabled","id","readonly","v","relatedTarget"],"mappings":"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","sourcesContent":["// Components\nimport { VInput } from '../VInput'\nimport { VSliderThumb } from '../VSlider/VSliderThumb'\nimport { VSliderTrack } from '../VSlider/VSliderTrack'\n\n// Composables\nimport { getOffset, makeSliderProps, useSlider } from '../VSlider/slider'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, defineComponent, ref } from 'vue'\n\n// Types\nimport type { PropType, WritableComputedRef } from 'vue'\nimport { filterInputProps, makeVInputProps } from '../VInput/VInput'\n\nexport const VRangeSlider = defineComponent({\n name: 'VRangeSlider',\n\n props: {\n ...makeFocusProps(),\n ...makeVInputProps(),\n ...makeSliderProps(),\n\n strict: Boolean,\n modelValue: {\n type: Array as PropType<number[]>,\n default: () => ([0, 0]),\n },\n },\n\n emits: {\n 'update:focused': (value: boolean) => true,\n 'update:modelValue': (value: [number, number]) => true,\n },\n\n setup (props, { slots, attrs }) {\n const startThumbRef = ref<VSliderThumb>()\n const stopThumbRef = ref<VSliderThumb>()\n const inputRef = ref<VInput>()\n\n function getActiveThumb (e: MouseEvent | TouchEvent) {\n if (!startThumbRef.value || !stopThumbRef.value) return\n\n const startOffset = getOffset(e, startThumbRef.value.$el, props.direction)\n const stopOffset = getOffset(e, stopThumbRef.value.$el, props.direction)\n\n const a = Math.abs(startOffset)\n const b = Math.abs(stopOffset)\n\n return (a < b || (a === b && startOffset < 0)) ? startThumbRef.value.$el : stopThumbRef.value.$el\n }\n\n const {\n min,\n max,\n mousePressed,\n roundValue,\n onSliderMousedown,\n onSliderTouchstart,\n trackContainerRef,\n position,\n hasLabels,\n activeThumbRef,\n } = useSlider({\n /* eslint-disable @typescript-eslint/no-use-before-define */\n props,\n handleSliderMouseUp: newValue => {\n model.value = activeThumbRef.value === startThumbRef.value?.$el ? [newValue, model.value[1]] : [model.value[0], newValue]\n },\n handleMouseMove: newValue => {\n const [start, stop] = model.value\n\n if (!props.strict && start === stop && start !== min.value) {\n activeThumbRef.value = newValue > start ? stopThumbRef.value?.$el : startThumbRef.value?.$el\n activeThumbRef.value?.focus()\n }\n\n if (activeThumbRef.value === startThumbRef.value?.$el) {\n model.value = [Math.min(newValue, stop), stop]\n } else {\n model.value = [start, Math.max(start, newValue)]\n }\n },\n getActiveThumb,\n /* eslint-enable @typescript-eslint/no-use-before-define */\n })\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n arr => {\n if (!arr || !arr.length) return [0, 0]\n\n return arr.map(value => roundValue(value))\n },\n ) as WritableComputedRef<[number, number]>\n\n const { isFocused, focus, blur } = useFocus(props)\n const trackStart = computed(() => position(model.value[0]))\n const trackStop = computed(() => position(model.value[1]))\n\n return () => {\n const [inputProps, _] = filterInputProps(props)\n\n return (\n <VInput\n class={[\n 'v-slider',\n 'v-range-slider',\n {\n 'v-slider--has-labels': !!slots['tick-label'] || hasLabels.value,\n 'v-slider--focused': isFocused.value,\n 'v-slider--pressed': mousePressed.value,\n 'v-slider--disabled': props.disabled,\n },\n ]}\n ref={ inputRef }\n { ...inputProps }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({ id }) => (\n <div\n class=\"v-slider__container\"\n onMousedown={ onSliderMousedown }\n onTouchstartPassive={ onSliderTouchstart }\n >\n <input\n id={ `${id.value}_start` }\n name={ props.name || id.value }\n disabled={ props.disabled }\n readonly={ props.readonly }\n tabindex=\"-1\"\n value={ model.value[0] }\n />\n\n <input\n id={ `${id.value}_stop` }\n name={ props.name || id.value }\n disabled={ props.disabled }\n readonly={ props.readonly }\n tabindex=\"-1\"\n value={ model.value[1] }\n />\n\n <VSliderTrack\n ref={ trackContainerRef }\n start={ trackStart.value }\n stop={ trackStop.value }\n >\n {{ 'tick-label': slots['tick-label'] }}\n </VSliderTrack>\n\n <VSliderThumb\n ref={ startThumbRef }\n focused={ isFocused && activeThumbRef.value === startThumbRef.value?.$el }\n modelValue={ model.value[0] }\n onUpdate:modelValue={ v => (model.value = [v, model.value[1]]) }\n onFocus={ (e: FocusEvent) => {\n focus()\n activeThumbRef.value = startThumbRef.value?.$el\n\n // Make sure second thumb is focused if\n // the thumbs are on top of each other\n // and they are both at minimum value\n // but only if focused from outside.\n if (\n model.value[0] === model.value[1] &&\n model.value[1] === min.value &&\n e.relatedTarget !== stopThumbRef.value?.$el\n ) {\n startThumbRef.value?.$el.blur()\n stopThumbRef.value?.$el.focus()\n }\n } }\n onBlur={ () => {\n blur()\n activeThumbRef.value = undefined\n } }\n min={ min.value }\n max={ model.value[1] }\n position={ trackStart.value }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n </VSliderThumb>\n\n <VSliderThumb\n ref={ stopThumbRef }\n focused={ isFocused && activeThumbRef.value === stopThumbRef.value?.$el }\n modelValue={ model.value[1] }\n onUpdate:modelValue={ v => (model.value = [model.value[0], v]) }\n onFocus={ (e: FocusEvent) => {\n focus()\n activeThumbRef.value = stopThumbRef.value?.$el\n\n // Make sure first thumb is focused if\n // the thumbs are on top of each other\n // and they are both at maximum value\n // but only if focused from outside.\n if (\n model.value[0] === model.value[1] &&\n model.value[0] === max.value &&\n e.relatedTarget !== startThumbRef.value?.$el\n ) {\n stopThumbRef.value?.$el.blur()\n startThumbRef.value?.$el.focus()\n }\n } }\n onBlur={ () => {\n blur()\n activeThumbRef.value = undefined\n } }\n min={ model.value[0] }\n max={ max.value }\n position={ trackStop.value }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n </VSliderThumb>\n </div>\n ),\n }}\n </VInput>\n )\n }\n },\n})\n\nexport type VRangeSlider = InstanceType<typeof VRangeSlider>\n"],"file":"VRangeSlider.mjs"}
1
+ {"version":3,"sources":["../../../src/components/VRangeSlider/VRangeSlider.tsx"],"names":["VInput","VSliderThumb","VSliderTrack","getOffset","makeSliderProps","useSlider","makeFocusProps","useFocus","useProxiedModel","computed","ref","defineComponent","filterInputProps","makeVInputProps","VRangeSlider","name","props","strict","Boolean","modelValue","type","Array","default","emits","value","setup","slots","attrs","startThumbRef","stopThumbRef","inputRef","getActiveThumb","e","startOffset","$el","direction","stopOffset","a","Math","abs","b","min","max","mousePressed","roundValue","onSliderMousedown","onSliderTouchstart","trackContainerRef","position","hasLabels","activeThumbRef","handleSliderMouseUp","newValue","model","handleMouseMove","start","stop","focus","undefined","arr","length","map","isFocused","blur","trackStart","trackStop","inputProps","_","disabled","id","readonly","v","relatedTarget"],"mappings":"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","sourcesContent":["// Styles\nimport '../VSlider/VSlider.sass'\n\n// Components\nimport { VInput } from '../VInput'\nimport { VSliderThumb } from '../VSlider/VSliderThumb'\nimport { VSliderTrack } from '../VSlider/VSliderTrack'\n\n// Composables\nimport { getOffset, makeSliderProps, useSlider } from '../VSlider/slider'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { defineComponent } from '@/util'\n\n// Types\nimport type { PropType, WritableComputedRef } from 'vue'\nimport { filterInputProps, makeVInputProps } from '../VInput/VInput'\n\nexport const VRangeSlider = defineComponent({\n name: 'VRangeSlider',\n\n props: {\n ...makeFocusProps(),\n ...makeVInputProps(),\n ...makeSliderProps(),\n\n strict: Boolean,\n modelValue: {\n type: Array as PropType<number[]>,\n default: () => ([0, 0]),\n },\n },\n\n emits: {\n 'update:focused': (value: boolean) => true,\n 'update:modelValue': (value: [number, number]) => true,\n },\n\n setup (props, { slots, attrs }) {\n const startThumbRef = ref<VSliderThumb>()\n const stopThumbRef = ref<VSliderThumb>()\n const inputRef = ref<VInput>()\n\n function getActiveThumb (e: MouseEvent | TouchEvent) {\n if (!startThumbRef.value || !stopThumbRef.value) return\n\n const startOffset = getOffset(e, startThumbRef.value.$el, props.direction)\n const stopOffset = getOffset(e, stopThumbRef.value.$el, props.direction)\n\n const a = Math.abs(startOffset)\n const b = Math.abs(stopOffset)\n\n return (a < b || (a === b && startOffset < 0)) ? startThumbRef.value.$el : stopThumbRef.value.$el\n }\n\n const {\n min,\n max,\n mousePressed,\n roundValue,\n onSliderMousedown,\n onSliderTouchstart,\n trackContainerRef,\n position,\n hasLabels,\n activeThumbRef,\n } = useSlider({\n /* eslint-disable @typescript-eslint/no-use-before-define */\n props,\n handleSliderMouseUp: newValue => {\n model.value = activeThumbRef.value === startThumbRef.value?.$el ? [newValue, model.value[1]] : [model.value[0], newValue]\n },\n handleMouseMove: newValue => {\n const [start, stop] = model.value\n\n if (!props.strict && start === stop && start !== min.value) {\n activeThumbRef.value = newValue > start ? stopThumbRef.value?.$el : startThumbRef.value?.$el\n activeThumbRef.value?.focus()\n }\n\n if (activeThumbRef.value === startThumbRef.value?.$el) {\n model.value = [Math.min(newValue, stop), stop]\n } else {\n model.value = [start, Math.max(start, newValue)]\n }\n },\n getActiveThumb,\n /* eslint-enable @typescript-eslint/no-use-before-define */\n })\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n arr => {\n if (!arr || !arr.length) return [0, 0]\n\n return arr.map(value => roundValue(value))\n },\n ) as WritableComputedRef<[number, number]>\n\n const { isFocused, focus, blur } = useFocus(props)\n const trackStart = computed(() => position(model.value[0]))\n const trackStop = computed(() => position(model.value[1]))\n\n return () => {\n const [inputProps, _] = filterInputProps(props)\n\n return (\n <VInput\n class={[\n 'v-slider',\n 'v-range-slider',\n {\n 'v-slider--has-labels': !!slots['tick-label'] || hasLabels.value,\n 'v-slider--focused': isFocused.value,\n 'v-slider--pressed': mousePressed.value,\n 'v-slider--disabled': props.disabled,\n },\n ]}\n ref={ inputRef }\n { ...inputProps }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({ id }) => (\n <div\n class=\"v-slider__container\"\n onMousedown={ onSliderMousedown }\n onTouchstartPassive={ onSliderTouchstart }\n >\n <input\n id={ `${id.value}_start` }\n name={ props.name || id.value }\n disabled={ props.disabled }\n readonly={ props.readonly }\n tabindex=\"-1\"\n value={ model.value[0] }\n />\n\n <input\n id={ `${id.value}_stop` }\n name={ props.name || id.value }\n disabled={ props.disabled }\n readonly={ props.readonly }\n tabindex=\"-1\"\n value={ model.value[1] }\n />\n\n <VSliderTrack\n ref={ trackContainerRef }\n start={ trackStart.value }\n stop={ trackStop.value }\n >\n {{ 'tick-label': slots['tick-label'] }}\n </VSliderTrack>\n\n <VSliderThumb\n ref={ startThumbRef }\n focused={ isFocused && activeThumbRef.value === startThumbRef.value?.$el }\n modelValue={ model.value[0] }\n onUpdate:modelValue={ v => (model.value = [v, model.value[1]]) }\n onFocus={ (e: FocusEvent) => {\n focus()\n activeThumbRef.value = startThumbRef.value?.$el\n\n // Make sure second thumb is focused if\n // the thumbs are on top of each other\n // and they are both at minimum value\n // but only if focused from outside.\n if (\n model.value[0] === model.value[1] &&\n model.value[1] === min.value &&\n e.relatedTarget !== stopThumbRef.value?.$el\n ) {\n startThumbRef.value?.$el.blur()\n stopThumbRef.value?.$el.focus()\n }\n } }\n onBlur={ () => {\n blur()\n activeThumbRef.value = undefined\n } }\n min={ min.value }\n max={ model.value[1] }\n position={ trackStart.value }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n </VSliderThumb>\n\n <VSliderThumb\n ref={ stopThumbRef }\n focused={ isFocused && activeThumbRef.value === stopThumbRef.value?.$el }\n modelValue={ model.value[1] }\n onUpdate:modelValue={ v => (model.value = [model.value[0], v]) }\n onFocus={ (e: FocusEvent) => {\n focus()\n activeThumbRef.value = stopThumbRef.value?.$el\n\n // Make sure first thumb is focused if\n // the thumbs are on top of each other\n // and they are both at maximum value\n // but only if focused from outside.\n if (\n model.value[0] === model.value[1] &&\n model.value[0] === max.value &&\n e.relatedTarget !== startThumbRef.value?.$el\n ) {\n stopThumbRef.value?.$el.blur()\n startThumbRef.value?.$el.focus()\n }\n } }\n onBlur={ () => {\n blur()\n activeThumbRef.value = undefined\n } }\n min={ model.value[0] }\n max={ max.value }\n position={ trackStop.value }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n </VSliderThumb>\n </div>\n ),\n }}\n </VInput>\n )\n }\n },\n})\n\nexport type VRangeSlider = InstanceType<typeof VRangeSlider>\n"],"file":"VRangeSlider.mjs"}
@@ -33,7 +33,7 @@
33
33
  transition: inherit;
34
34
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
35
35
  }
36
- .v-rating--hover .v-rating__item:hover:not(.v-rating__item--focused) .v-icon {
36
+ .v-rating--hover .v-rating__item:hover:not(.v-rating__item--focused) .v-btn {
37
37
  transform: scale(1.25);
38
38
  }
39
39
  .v-rating__item--focused .v-btn__overlay {
@@ -43,7 +43,7 @@
43
43
  .v-rating__item--half {
44
44
  overflow: hidden;
45
45
  position: absolute;
46
- width: 50%;
46
+ clip-path: polygon(0 0, 50% 0, 50% 100%, 0 100%);
47
47
  z-index: 1;
48
48
  }
49
49
  .v-rating__item--half .v-btn__overlay, .v-rating__item--half:hover .v-btn__overlay {
@@ -204,6 +204,12 @@ export const VRating = genericComponent()({
204
204
  }, null)]);
205
205
  }
206
206
 
207
+ function createLabel(labelProps) {
208
+ if (slots['item-label']) return slots['item-label'](labelProps);
209
+ if (labelProps.label) return _createVNode("span", null, [labelProps.label]);
210
+ return _createVNode("span", null, [_createTextVNode("\xA0")]);
211
+ }
212
+
207
213
  return () => {
208
214
  var _props$itemLabels;
209
215
 
@@ -223,11 +229,11 @@ export const VRating = genericComponent()({
223
229
 
224
230
  return _createVNode("div", {
225
231
  "class": "v-rating__wrapper"
226
- }, [!hasLabels ? undefined : slots['item-label'] ? slots['item-label']({
232
+ }, [hasLabels && props.itemLabelPosition === 'top' ? createLabel({
227
233
  value,
228
234
  index: i,
229
235
  label: (_props$itemLabels2 = props.itemLabels) == null ? void 0 : _props$itemLabels2[i]
230
- }) : (_props$itemLabels3 = props.itemLabels) != null && _props$itemLabels3[i] ? _createVNode("span", null, [props.itemLabels[i]]) : _createVNode("span", null, [_createTextVNode("\xA0")]), _createVNode("div", {
236
+ }) : undefined, _createVNode("div", {
231
237
  "class": ['v-rating__item', {
232
238
  'v-rating__item--focused': Math.ceil(focusIndex.value) === value
233
239
  }]
@@ -240,7 +246,11 @@ export const VRating = genericComponent()({
240
246
  }, null)]) : _createVNode(VRatingItem, {
241
247
  "value": value,
242
248
  "index": i
243
- }, null)])]);
249
+ }, null)]), hasLabels && props.itemLabelPosition === 'bottom' ? createLabel({
250
+ value,
251
+ index: i,
252
+ label: (_props$itemLabels3 = props.itemLabels) == null ? void 0 : _props$itemLabels3[i]
253
+ }) : undefined]);
244
254
  })]
245
255
  });
246
256
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VRating/VRating.tsx"],"names":["VBtn","makeDensityProps","makeSizeProps","makeTagProps","useProxiedModel","makeThemeProps","provideTheme","useLocale","computed","ref","createRange","genericComponent","getUid","VRating","name","props","String","itemAriaLabel","type","default","activeColor","color","clearable","Boolean","disabled","emptyIcon","fullIcon","halfIncrements","hover","length","Number","readonly","modelValue","itemLabels","Array","itemLabelPosition","validator","v","includes","ripple","emits","value","setup","slots","t","themeClasses","rating","range","increments","flatMap","hoverIndex","focusIndex","firstRef","isClicking","itemState","map","isHovering","isFilled","isHovered","isFullIcon","icon","eventState","onMouseenter","onMouseleave","onFocus","focus","onBlur","onClick","undefined","onMousedown","onMouseup","VRatingItem","index","showStar","id","replace","btnProps","density","size","tag","variant","item","hasLabels","i","label","Math","ceil"],"mappings":"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","sourcesContent":["// Styles\nimport './VRating.sass'\n\n// Components\nimport { VBtn } from '../VBtn'\n\n// Composables\nimport { makeDensityProps } from '@/composables/density'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { createRange, genericComponent, getUid } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\nimport type { MakeSlots } from '@/util'\nimport type { Variant } from '@/composables/variant'\n\ntype VRatingItemSlot = {\n value: number\n index: number\n isFilled: boolean\n isHovered: boolean\n icon: string\n color?: string\n props: Record<string, unknown>\n}\n\ntype VRatingItemLabelSlot = {\n value: number\n index: number\n label?: string\n}\n\nexport const VRating = genericComponent<new <T>() => {\n $slots: MakeSlots<{\n item: [VRatingItemSlot]\n 'item-label': [VRatingItemLabelSlot]\n }>\n}>()({\n name: 'VRating',\n\n props: {\n name: String,\n itemAriaLabel: {\n type: String,\n default: '$vuetify.rating.ariaLabel.item',\n },\n activeColor: String,\n color: String,\n clearable: Boolean,\n disabled: Boolean,\n emptyIcon: {\n type: String,\n default: '$ratingEmpty',\n },\n fullIcon: {\n type: String,\n default: '$ratingFull',\n },\n halfIncrements: Boolean,\n hover: Boolean,\n length: {\n type: [Number, String],\n default: 5,\n },\n readonly: Boolean,\n modelValue: {\n type: Number,\n default: 0,\n },\n itemLabels: Array as Prop<string[]>,\n itemLabelPosition: {\n type: String,\n default: 'top',\n validator: (v: any) => ['top', 'bottom'].includes(v),\n },\n ripple: Boolean,\n\n ...makeDensityProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (value: number) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { themeClasses } = provideTheme(props)\n const rating = useProxiedModel(props, 'modelValue')\n\n const range = computed(() => createRange(Number(props.length), 1))\n const increments = computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]))\n const hoverIndex = ref(-1)\n const focusIndex = ref(-1)\n const firstRef = ref<HTMLElement>()\n let isClicking = false\n\n const itemState = computed(() => increments.value.map(value => {\n const isHovering = props.hover && hoverIndex.value > -1\n const isFilled = rating.value >= value\n const isHovered = hoverIndex.value >= value\n const isFullIcon = isHovering ? isHovered : isFilled\n const icon = isFullIcon ? props.fullIcon : props.emptyIcon\n const activeColor = props.activeColor ?? props.color\n const color = (isFilled || isHovered) ? activeColor : props.color\n\n return { isFilled, isHovered, icon, color }\n }))\n\n const eventState = computed(() => [0, ...increments.value].map(value => {\n function onMouseenter () {\n hoverIndex.value = value\n }\n\n function onMouseleave () {\n hoverIndex.value = -1\n }\n\n function onFocus () {\n if (value === 0 && rating.value === 0) {\n firstRef.value?.focus()\n } else {\n focusIndex.value = value\n }\n }\n\n function onBlur () {\n if (!isClicking) focusIndex.value = -1\n }\n\n function onClick () {\n if (props.disabled || props.readonly) return\n rating.value = rating.value === value && props.clearable ? 0 : value\n }\n\n return {\n onMouseenter: props.hover ? onMouseenter : undefined,\n onMouseleave: props.hover ? onMouseleave : undefined,\n onFocus,\n onBlur,\n onClick,\n }\n }))\n\n function onMousedown () {\n isClicking = true\n }\n\n function onMouseup () {\n isClicking = false\n }\n\n const name = computed(() => props.name ?? `v-rating-${getUid()}`)\n\n function VRatingItem ({ value, index, showStar = true }: { value: number, index: number, showStar?: boolean }) {\n const { onMouseenter, onMouseleave, onFocus, onBlur, onClick } = eventState.value[index + 1]\n const id = `${name.value}-${String(value).replace('.', '-')}`\n const btnProps = {\n color: itemState.value[index]?.color,\n density: props.density,\n disabled: props.disabled,\n icon: itemState.value[index]?.icon,\n ripple: props.ripple,\n size: props.size,\n tag: 'span',\n variant: 'plain' as Variant,\n }\n\n return (\n <>\n <label\n for={ id }\n class={{\n 'v-rating__item--half': props.halfIncrements && value % 1 > 0,\n 'v-rating__item--full': props.halfIncrements && value % 1 === 0,\n }}\n onMousedown={ onMousedown }\n onMouseup={ onMouseup }\n onMouseenter={ onMouseenter }\n onMouseleave={ onMouseleave }\n >\n <span class=\"v-rating__hidden\">{ t(props.itemAriaLabel, value, props.length) }</span>\n {\n !showStar ? undefined\n : slots.item ? slots.item({\n ...itemState.value[index],\n props: btnProps,\n value,\n index,\n })\n : (\n <VBtn { ...btnProps } />\n )\n }\n </label>\n <input\n class=\"v-rating__hidden\"\n name={ name.value }\n id={ id }\n type=\"radio\"\n value={ value }\n checked={ rating.value === value }\n onClick={ onClick }\n onFocus={ onFocus }\n onBlur={ onBlur }\n ref={ index === 0 ? firstRef : undefined }\n readonly={ props.readonly }\n disabled={ props.disabled }\n />\n </>\n )\n }\n\n return () => {\n const hasLabels = !!props.itemLabels?.length || slots['item-label']\n\n return (\n <props.tag\n class={[\n 'v-rating',\n {\n 'v-rating--hover': props.hover,\n 'v-rating--readonly': props.readonly,\n },\n themeClasses.value,\n ]}\n >\n <VRatingItem value={ 0 } index={ -1 } showStar={ false } />\n\n { range.value.map((value, i) => (\n <div class=\"v-rating__wrapper\">\n {\n !hasLabels ? undefined\n : slots['item-label'] ? slots['item-label']({ value, index: i, label: props.itemLabels?.[i] })\n : props.itemLabels?.[i] ? <span>{ props.itemLabels[i] }</span>\n : <span>&nbsp;</span>\n }\n <div\n class={[\n 'v-rating__item',\n {\n 'v-rating__item--focused': Math.ceil(focusIndex.value) === value,\n },\n ]}\n >\n { props.halfIncrements ? (\n <>\n <VRatingItem value={ value - 0.5 } index={ i * 2 } />\n <VRatingItem value={ value } index={ (i * 2) + 1 } />\n </>\n ) : (\n <VRatingItem value={ value } index={ i } />\n ) }\n </div>\n </div>\n )) }\n </props.tag>\n )\n }\n },\n})\n\nexport type VRating = InstanceType<typeof VRating>\n"],"file":"VRating.mjs"}
1
+ {"version":3,"sources":["../../../src/components/VRating/VRating.tsx"],"names":["VBtn","makeDensityProps","makeSizeProps","makeTagProps","useProxiedModel","makeThemeProps","provideTheme","useLocale","computed","ref","createRange","genericComponent","getUid","VRating","name","props","String","itemAriaLabel","type","default","activeColor","color","clearable","Boolean","disabled","emptyIcon","fullIcon","halfIncrements","hover","length","Number","readonly","modelValue","itemLabels","Array","itemLabelPosition","validator","v","includes","ripple","emits","value","setup","slots","t","themeClasses","rating","range","increments","flatMap","hoverIndex","focusIndex","firstRef","isClicking","itemState","map","isHovering","isFilled","isHovered","isFullIcon","icon","eventState","onMouseenter","onMouseleave","onFocus","focus","onBlur","onClick","undefined","onMousedown","onMouseup","VRatingItem","index","showStar","id","replace","btnProps","density","size","tag","variant","item","createLabel","labelProps","label","hasLabels","i","Math","ceil"],"mappings":";AAAA;AACA,uB,CAEA;;SACSA,I,6BAET;;SACSC,gB;SACAC,a;SACAC,Y;SACAC,e;SACAC,c,EAAgBC,Y;SAChBC,S,wCAET;;AACA,SAASC,QAAT,EAAmBC,GAAnB,QAA8B,KAA9B;SACSC,W,EAAaC,gB,EAAkBC,M,gCAExC;;AAqBA,OAAO,MAAMC,OAAO,GAAGF,gBAAgB,GAKlC;AACHG,EAAAA,IAAI,EAAE,SADH;AAGHC,EAAAA,KAAK,EAAE;AACLD,IAAAA,IAAI,EAAEE,MADD;AAELC,IAAAA,aAAa,EAAE;AACbC,MAAAA,IAAI,EAAEF,MADO;AAEbG,MAAAA,OAAO,EAAE;AAFI,KAFV;AAMLC,IAAAA,WAAW,EAAEJ,MANR;AAOLK,IAAAA,KAAK,EAAEL,MAPF;AAQLM,IAAAA,SAAS,EAAEC,OARN;AASLC,IAAAA,QAAQ,EAAED,OATL;AAULE,IAAAA,SAAS,EAAE;AACTP,MAAAA,IAAI,EAAEF,MADG;AAETG,MAAAA,OAAO,EAAE;AAFA,KAVN;AAcLO,IAAAA,QAAQ,EAAE;AACRR,MAAAA,IAAI,EAAEF,MADE;AAERG,MAAAA,OAAO,EAAE;AAFD,KAdL;AAkBLQ,IAAAA,cAAc,EAAEJ,OAlBX;AAmBLK,IAAAA,KAAK,EAAEL,OAnBF;AAoBLM,IAAAA,MAAM,EAAE;AACNX,MAAAA,IAAI,EAAE,CAACY,MAAD,EAASd,MAAT,CADA;AAENG,MAAAA,OAAO,EAAE;AAFH,KApBH;AAwBLY,IAAAA,QAAQ,EAAER,OAxBL;AAyBLS,IAAAA,UAAU,EAAE;AACVd,MAAAA,IAAI,EAAEY,MADI;AAEVX,MAAAA,OAAO,EAAE;AAFC,KAzBP;AA6BLc,IAAAA,UAAU,EAAEC,KA7BP;AA8BLC,IAAAA,iBAAiB,EAAE;AACjBjB,MAAAA,IAAI,EAAEF,MADW;AAEjBG,MAAAA,OAAO,EAAE,KAFQ;AAGjBiB,MAAAA,SAAS,EAAGC,CAAD,IAAY,CAAC,KAAD,EAAQ,QAAR,EAAkBC,QAAlB,CAA2BD,CAA3B;AAHN,KA9Bd;AAmCLE,IAAAA,MAAM,EAAEhB,OAnCH;AAqCL,OAAGtB,gBAAgB,EArCd;AAsCL,OAAGC,aAAa,EAtCX;AAuCL,OAAGC,YAAY,EAvCV;AAwCL,OAAGE,cAAc;AAxCZ,GAHJ;AA8CHmC,EAAAA,KAAK,EAAE;AACL,yBAAsBC,KAAD,IAAmB;AADnC,GA9CJ;;AAkDHC,EAAAA,KAAK,CAAE3B,KAAF,QAAoB;AAAA,QAAX;AAAE4B,MAAAA;AAAF,KAAW;AACvB,UAAM;AAAEC,MAAAA;AAAF,QAAQrC,SAAS,EAAvB;AACA,UAAM;AAAEsC,MAAAA;AAAF,QAAmBvC,YAAY,CAACS,KAAD,CAArC;AACA,UAAM+B,MAAM,GAAG1C,eAAe,CAACW,KAAD,EAAQ,YAAR,CAA9B;AAEA,UAAMgC,KAAK,GAAGvC,QAAQ,CAAC,MAAME,WAAW,CAACoB,MAAM,CAACf,KAAK,CAACc,MAAP,CAAP,EAAuB,CAAvB,CAAlB,CAAtB;AACA,UAAMmB,UAAU,GAAGxC,QAAQ,CAAC,MAAMuC,KAAK,CAACN,KAAN,CAAYQ,OAAZ,CAAoBZ,CAAC,IAAItB,KAAK,CAACY,cAAN,GAAuB,CAACU,CAAC,GAAG,GAAL,EAAUA,CAAV,CAAvB,GAAsC,CAACA,CAAD,CAA/D,CAAP,CAA3B;AACA,UAAMa,UAAU,GAAGzC,GAAG,CAAC,CAAC,CAAF,CAAtB;AACA,UAAM0C,UAAU,GAAG1C,GAAG,CAAC,CAAC,CAAF,CAAtB;AACA,UAAM2C,QAAQ,GAAG3C,GAAG,EAApB;AACA,QAAI4C,UAAU,GAAG,KAAjB;AAEA,UAAMC,SAAS,GAAG9C,QAAQ,CAAC,MAAMwC,UAAU,CAACP,KAAX,CAAiBc,GAAjB,CAAqBd,KAAK,IAAI;AAAA;;AAC7D,YAAMe,UAAU,GAAGzC,KAAK,CAACa,KAAN,IAAesB,UAAU,CAACT,KAAX,GAAmB,CAAC,CAAtD;AACA,YAAMgB,QAAQ,GAAGX,MAAM,CAACL,KAAP,IAAgBA,KAAjC;AACA,YAAMiB,SAAS,GAAGR,UAAU,CAACT,KAAX,IAAoBA,KAAtC;AACA,YAAMkB,UAAU,GAAGH,UAAU,GAAGE,SAAH,GAAeD,QAA5C;AACA,YAAMG,IAAI,GAAGD,UAAU,GAAG5C,KAAK,CAACW,QAAT,GAAoBX,KAAK,CAACU,SAAjD;AACA,YAAML,WAAW,yBAAGL,KAAK,CAACK,WAAT,iCAAwBL,KAAK,CAACM,KAA/C;AACA,YAAMA,KAAK,GAAIoC,QAAQ,IAAIC,SAAb,GAA0BtC,WAA1B,GAAwCL,KAAK,CAACM,KAA5D;AAEA,aAAO;AAAEoC,QAAAA,QAAF;AAAYC,QAAAA,SAAZ;AAAuBE,QAAAA,IAAvB;AAA6BvC,QAAAA;AAA7B,OAAP;AACD,KAVgC,CAAP,CAA1B;AAYA,UAAMwC,UAAU,GAAGrD,QAAQ,CAAC,MAAM,CAAC,CAAD,EAAI,GAAGwC,UAAU,CAACP,KAAlB,EAAyBc,GAAzB,CAA6Bd,KAAK,IAAI;AACtE,eAASqB,YAAT,GAAyB;AACvBZ,QAAAA,UAAU,CAACT,KAAX,GAAmBA,KAAnB;AACD;;AAED,eAASsB,YAAT,GAAyB;AACvBb,QAAAA,UAAU,CAACT,KAAX,GAAmB,CAAC,CAApB;AACD;;AAED,eAASuB,OAAT,GAAoB;AAClB,YAAIvB,KAAK,KAAK,CAAV,IAAeK,MAAM,CAACL,KAAP,KAAiB,CAApC,EAAuC;AAAA;;AACrC,6BAAAW,QAAQ,CAACX,KAAT,qCAAgBwB,KAAhB;AACD,SAFD,MAEO;AACLd,UAAAA,UAAU,CAACV,KAAX,GAAmBA,KAAnB;AACD;AACF;;AAED,eAASyB,MAAT,GAAmB;AACjB,YAAI,CAACb,UAAL,EAAiBF,UAAU,CAACV,KAAX,GAAmB,CAAC,CAApB;AAClB;;AAED,eAAS0B,OAAT,GAAoB;AAClB,YAAIpD,KAAK,CAACS,QAAN,IAAkBT,KAAK,CAACgB,QAA5B,EAAsC;AACtCe,QAAAA,MAAM,CAACL,KAAP,GAAeK,MAAM,CAACL,KAAP,KAAiBA,KAAjB,IAA0B1B,KAAK,CAACO,SAAhC,GAA4C,CAA5C,GAAgDmB,KAA/D;AACD;;AAED,aAAO;AACLqB,QAAAA,YAAY,EAAE/C,KAAK,CAACa,KAAN,GAAckC,YAAd,GAA6BM,SADtC;AAELL,QAAAA,YAAY,EAAEhD,KAAK,CAACa,KAAN,GAAcmC,YAAd,GAA6BK,SAFtC;AAGLJ,QAAAA,OAHK;AAILE,QAAAA,MAJK;AAKLC,QAAAA;AALK,OAAP;AAOD,KAjCiC,CAAP,CAA3B;;AAmCA,aAASE,WAAT,GAAwB;AACtBhB,MAAAA,UAAU,GAAG,IAAb;AACD;;AAED,aAASiB,SAAT,GAAsB;AACpBjB,MAAAA,UAAU,GAAG,KAAb;AACD;;AAED,UAAMvC,IAAI,GAAGN,QAAQ,CAAC;AAAA;;AAAA,4BAAMO,KAAK,CAACD,IAAZ,0BAAqB,YAAWF,MAAM,EAAG,EAAzC;AAAA,KAAD,CAArB;;AAEA,aAAS2D,WAAT,QAA+G;AAAA;;AAAA,UAAzF;AAAE9B,QAAAA,KAAF;AAAS+B,QAAAA,KAAT;AAAgBC,QAAAA,QAAQ,GAAG;AAA3B,OAAyF;AAC7G,YAAM;AAAEX,QAAAA,YAAF;AAAgBC,QAAAA,YAAhB;AAA8BC,QAAAA,OAA9B;AAAuCE,QAAAA,MAAvC;AAA+CC,QAAAA;AAA/C,UAA2DN,UAAU,CAACpB,KAAX,CAAiB+B,KAAK,GAAG,CAAzB,CAAjE;AACA,YAAME,EAAE,GAAI,GAAE5D,IAAI,CAAC2B,KAAM,IAAGzB,MAAM,CAACyB,KAAD,CAAN,CAAckC,OAAd,CAAsB,GAAtB,EAA2B,GAA3B,CAAgC,EAA5D;AACA,YAAMC,QAAQ,GAAG;AACfvD,QAAAA,KAAK,2BAAEiC,SAAS,CAACb,KAAV,CAAgB+B,KAAhB,CAAF,qBAAE,sBAAwBnD,KADhB;AAEfwD,QAAAA,OAAO,EAAE9D,KAAK,CAAC8D,OAFA;AAGfrD,QAAAA,QAAQ,EAAET,KAAK,CAACS,QAHD;AAIfoC,QAAAA,IAAI,4BAAEN,SAAS,CAACb,KAAV,CAAgB+B,KAAhB,CAAF,qBAAE,uBAAwBZ,IAJf;AAKfrB,QAAAA,MAAM,EAAExB,KAAK,CAACwB,MALC;AAMfuC,QAAAA,IAAI,EAAE/D,KAAK,CAAC+D,IANG;AAOfC,QAAAA,GAAG,EAAE,MAPU;AAQfC,QAAAA,OAAO,EAAE;AARM,OAAjB;AAWA;AAAA,eAGYN,EAHZ;AAAA,iBAIa;AACL,kCAAwB3D,KAAK,CAACY,cAAN,IAAwBc,KAAK,GAAG,CAAR,GAAY,CADvD;AAEL,kCAAwB1B,KAAK,CAACY,cAAN,IAAwBc,KAAK,GAAG,CAAR,KAAc;AAFzD,SAJb;AAAA,uBAQoB4B,WARpB;AAAA,qBASkBC,SATlB;AAAA,wBAUqBR,YAVrB;AAAA,wBAWqBC;AAXrB;AAAA,iBAakB;AAblB,UAauCnB,CAAC,CAAC7B,KAAK,CAACE,aAAP,EAAsBwB,KAAtB,EAA6B1B,KAAK,CAACc,MAAnC,CAbxC,IAeQ,CAAC4C,QAAD,GAAYL,SAAZ,GACEzB,KAAK,CAACsC,IAAN,GAAatC,KAAK,CAACsC,IAAN,CAAW,EACxB,GAAG3B,SAAS,CAACb,KAAV,CAAgB+B,KAAhB,CADqB;AAExBzD,QAAAA,KAAK,EAAE6D,QAFiB;AAGxBnC,QAAAA,KAHwB;AAIxB+B,QAAAA;AAJwB,OAAX,CAAb,sBAOWI,QAPX,OAhBV;AAAA,iBA4BY,kBA5BZ;AAAA,gBA6Ba9D,IAAI,CAAC2B,KA7BlB;AAAA,cA8BWiC,EA9BX;AAAA,gBA+BW,OA/BX;AAAA,iBAgCcjC,KAhCd;AAAA,mBAiCgBK,MAAM,CAACL,KAAP,KAAiBA,KAjCjC;AAAA,mBAkCgB0B,OAlChB;AAAA,mBAmCgBH,OAnChB;AAAA,kBAoCeE,MApCf;AAAA,eAqCYM,KAAK,KAAK,CAAV,GAAcpB,QAAd,GAAyBgB,SArCrC;AAAA,oBAsCiBrD,KAAK,CAACgB,QAtCvB;AAAA,oBAuCiBhB,KAAK,CAACS;AAvCvB;AA2CD;;AAED,aAAS0D,WAAT,CAAsBC,UAAtB,EAAoF;AAClF,UAAIxC,KAAK,CAAC,YAAD,CAAT,EAAyB,OAAOA,KAAK,CAAC,YAAD,CAAL,CAAoBwC,UAApB,CAAP;AAEzB,UAAIA,UAAU,CAACC,KAAf,EAAsB,mCAAeD,UAAU,CAACC,KAA1B;AAEtB;AACD;;AAED,WAAO,MAAM;AAAA;;AACX,YAAMC,SAAS,GAAG,CAAC,uBAACtE,KAAK,CAACkB,UAAP,aAAC,kBAAkBJ,MAAnB,CAAD,IAA8Bc,KAAK,CAAC,YAAD,CAArD;AAEA;AAAA,iBAEW,CACL,UADK,EAEL;AACE,6BAAmB5B,KAAK,CAACa,KAD3B;AAEE,gCAAsBb,KAAK,CAACgB;AAF9B,SAFK,EAMLc,YAAY,CAACJ,KANR;AAFX;AAAA;AAAA,mBAWyB,CAXzB;AAAA,mBAWqC,CAAC,CAXtC;AAAA,sBAWqD;AAXrD,kBAaMM,KAAK,CAACN,KAAN,CAAYc,GAAZ,CAAgB,CAACd,KAAD,EAAQ6C,CAAR;AAAA;;AAAA;AAAA,qBACL;AADK,cAGZD,SAAS,IAAItE,KAAK,CAACoB,iBAAN,KAA4B,KAAzC,GACI+C,WAAW,CAAC;AAAEzC,YAAAA,KAAF;AAAS+B,YAAAA,KAAK,EAAEc,CAAhB;AAAmBF,YAAAA,KAAK,wBAAErE,KAAK,CAACkB,UAAR,qBAAE,mBAAmBqD,CAAnB;AAA1B,WAAD,CADf,GAEIlB,SALQ;AAAA,qBAQL,CACL,gBADK,EAEL;AACE,yCAA2BmB,IAAI,CAACC,IAAL,CAAUrC,UAAU,CAACV,KAArB,MAAgCA;AAD7D,aAFK;AARK,cAeV1B,KAAK,CAACY,cAAN;AAAA,qBAEuBc,KAAK,GAAG,GAF/B;AAAA,qBAE6C6C,CAAC,GAAG;AAFjD;AAAA,qBAGuB7C,KAHvB;AAAA,qBAGwC6C,CAAC,GAAG,CAAL,GAAU;AAHjD;AAAA,qBAMqB7C,KANrB;AAAA,qBAMqC6C;AANrC,kBAfU,IAyBZD,SAAS,IAAItE,KAAK,CAACoB,iBAAN,KAA4B,QAAzC,GACI+C,WAAW,CAAC;AAAEzC,YAAAA,KAAF;AAAS+B,YAAAA,KAAK,EAAEc,CAAhB;AAAmBF,YAAAA,KAAK,wBAAErE,KAAK,CAACkB,UAAR,qBAAE,mBAAmBqD,CAAnB;AAA1B,WAAD,CADf,GAEIlB,SA3BQ;AAAA,SAAhB,CAbN;AAAA;AA8CD,KAjDD;AAkDD;;AA5OE,CALkC,CAAhC","sourcesContent":["// Styles\nimport './VRating.sass'\n\n// Components\nimport { VBtn } from '../VBtn'\n\n// Composables\nimport { makeDensityProps } from '@/composables/density'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { createRange, genericComponent, getUid } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\nimport type { MakeSlots } from '@/util'\nimport type { Variant } from '@/composables/variant'\n\ntype VRatingItemSlot = {\n value: number\n index: number\n isFilled: boolean\n isHovered: boolean\n icon: string\n color?: string\n props: Record<string, unknown>\n}\n\ntype VRatingItemLabelSlot = {\n value: number\n index: number\n label?: string\n}\n\nexport const VRating = genericComponent<new <T>() => {\n $slots: MakeSlots<{\n item: [VRatingItemSlot]\n 'item-label': [VRatingItemLabelSlot]\n }>\n}>()({\n name: 'VRating',\n\n props: {\n name: String,\n itemAriaLabel: {\n type: String,\n default: '$vuetify.rating.ariaLabel.item',\n },\n activeColor: String,\n color: String,\n clearable: Boolean,\n disabled: Boolean,\n emptyIcon: {\n type: String,\n default: '$ratingEmpty',\n },\n fullIcon: {\n type: String,\n default: '$ratingFull',\n },\n halfIncrements: Boolean,\n hover: Boolean,\n length: {\n type: [Number, String],\n default: 5,\n },\n readonly: Boolean,\n modelValue: {\n type: Number,\n default: 0,\n },\n itemLabels: Array as Prop<string[]>,\n itemLabelPosition: {\n type: String,\n default: 'top',\n validator: (v: any) => ['top', 'bottom'].includes(v),\n },\n ripple: Boolean,\n\n ...makeDensityProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (value: number) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { themeClasses } = provideTheme(props)\n const rating = useProxiedModel(props, 'modelValue')\n\n const range = computed(() => createRange(Number(props.length), 1))\n const increments = computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]))\n const hoverIndex = ref(-1)\n const focusIndex = ref(-1)\n const firstRef = ref<HTMLElement>()\n let isClicking = false\n\n const itemState = computed(() => increments.value.map(value => {\n const isHovering = props.hover && hoverIndex.value > -1\n const isFilled = rating.value >= value\n const isHovered = hoverIndex.value >= value\n const isFullIcon = isHovering ? isHovered : isFilled\n const icon = isFullIcon ? props.fullIcon : props.emptyIcon\n const activeColor = props.activeColor ?? props.color\n const color = (isFilled || isHovered) ? activeColor : props.color\n\n return { isFilled, isHovered, icon, color }\n }))\n\n const eventState = computed(() => [0, ...increments.value].map(value => {\n function onMouseenter () {\n hoverIndex.value = value\n }\n\n function onMouseleave () {\n hoverIndex.value = -1\n }\n\n function onFocus () {\n if (value === 0 && rating.value === 0) {\n firstRef.value?.focus()\n } else {\n focusIndex.value = value\n }\n }\n\n function onBlur () {\n if (!isClicking) focusIndex.value = -1\n }\n\n function onClick () {\n if (props.disabled || props.readonly) return\n rating.value = rating.value === value && props.clearable ? 0 : value\n }\n\n return {\n onMouseenter: props.hover ? onMouseenter : undefined,\n onMouseleave: props.hover ? onMouseleave : undefined,\n onFocus,\n onBlur,\n onClick,\n }\n }))\n\n function onMousedown () {\n isClicking = true\n }\n\n function onMouseup () {\n isClicking = false\n }\n\n const name = computed(() => props.name ?? `v-rating-${getUid()}`)\n\n function VRatingItem ({ value, index, showStar = true }: { value: number, index: number, showStar?: boolean }) {\n const { onMouseenter, onMouseleave, onFocus, onBlur, onClick } = eventState.value[index + 1]\n const id = `${name.value}-${String(value).replace('.', '-')}`\n const btnProps = {\n color: itemState.value[index]?.color,\n density: props.density,\n disabled: props.disabled,\n icon: itemState.value[index]?.icon,\n ripple: props.ripple,\n size: props.size,\n tag: 'span',\n variant: 'plain' as Variant,\n }\n\n return (\n <>\n <label\n for={ id }\n class={{\n 'v-rating__item--half': props.halfIncrements && value % 1 > 0,\n 'v-rating__item--full': props.halfIncrements && value % 1 === 0,\n }}\n onMousedown={ onMousedown }\n onMouseup={ onMouseup }\n onMouseenter={ onMouseenter }\n onMouseleave={ onMouseleave }\n >\n <span class=\"v-rating__hidden\">{ t(props.itemAriaLabel, value, props.length) }</span>\n {\n !showStar ? undefined\n : slots.item ? slots.item({\n ...itemState.value[index],\n props: btnProps,\n value,\n index,\n })\n : (\n <VBtn { ...btnProps } />\n )\n }\n </label>\n <input\n class=\"v-rating__hidden\"\n name={ name.value }\n id={ id }\n type=\"radio\"\n value={ value }\n checked={ rating.value === value }\n onClick={ onClick }\n onFocus={ onFocus }\n onBlur={ onBlur }\n ref={ index === 0 ? firstRef : undefined }\n readonly={ props.readonly }\n disabled={ props.disabled }\n />\n </>\n )\n }\n\n function createLabel (labelProps: { value: number, index: number, label?: string }) {\n if (slots['item-label']) return slots['item-label'](labelProps)\n\n if (labelProps.label) return <span>{ labelProps.label }</span>\n\n return <span>&nbsp;</span>\n }\n\n return () => {\n const hasLabels = !!props.itemLabels?.length || slots['item-label']\n\n return (\n <props.tag\n class={[\n 'v-rating',\n {\n 'v-rating--hover': props.hover,\n 'v-rating--readonly': props.readonly,\n },\n themeClasses.value,\n ]}\n >\n <VRatingItem value={ 0 } index={ -1 } showStar={ false } />\n\n { range.value.map((value, i) => (\n <div class=\"v-rating__wrapper\">\n {\n hasLabels && props.itemLabelPosition === 'top'\n ? createLabel({ value, index: i, label: props.itemLabels?.[i] })\n : undefined\n }\n <div\n class={[\n 'v-rating__item',\n {\n 'v-rating__item--focused': Math.ceil(focusIndex.value) === value,\n },\n ]}\n >\n { props.halfIncrements ? (\n <>\n <VRatingItem value={ value - 0.5 } index={ i * 2 } />\n <VRatingItem value={ value } index={ (i * 2) + 1 } />\n </>\n ) : (\n <VRatingItem value={ value } index={ i } />\n ) }\n </div>\n {\n hasLabels && props.itemLabelPosition === 'bottom'\n ? createLabel({ value, index: i, label: props.itemLabels?.[i] })\n : undefined\n }\n </div>\n )) }\n </props.tag>\n )\n }\n },\n})\n\nexport type VRating = InstanceType<typeof VRating>\n"],"file":"VRating.mjs"}
@@ -36,7 +36,7 @@
36
36
 
37
37
  &:hover:not(.v-rating__item--focused)
38
38
  .v-rating--hover &
39
- .v-icon
39
+ .v-btn
40
40
  transform: $rating-item-icon-transform
41
41
 
42
42
  &--focused
@@ -47,7 +47,7 @@
47
47
  &--half
48
48
  overflow: hidden
49
49
  position: absolute
50
- width: 50%
50
+ clip-path: polygon(0 0, 50% 0, 50% 100%, 0 100%)
51
51
  z-index: 1
52
52
 
53
53
  .v-btn__overlay,