@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
@@ -6,7 +6,6 @@ import { VBtn } from "../VBtn/index.mjs"; // Composables
6
6
 
7
7
  import { makeTagProps } from "../../composables/tag.mjs";
8
8
  import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
9
- import { provideDefaults } from "../../composables/defaults.mjs";
10
9
  import { useGroup } from "../../composables/group.mjs";
11
10
  import { useLocale } from "../../composables/locale.mjs";
12
11
  import { useRtl } from "../../composables/rtl.mjs"; // Directives
@@ -123,13 +122,6 @@ export const VWindow = genericComponent()({
123
122
  canMoveForward.value && group.next();
124
123
  }
125
124
 
126
- provideDefaults({
127
- VBtn: {
128
- variant: 'text'
129
- }
130
- }, {
131
- scoped: true
132
- });
133
125
  const arrows = computed(() => {
134
126
  const arrows = [];
135
127
  const prevProps = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VWindow/VWindow.tsx"],"names":["VBtn","makeTagProps","makeThemeProps","provideTheme","provideDefaults","useGroup","useLocale","useRtl","Touch","computed","provide","ref","watch","genericComponent","useRender","VWindowSymbol","Symbol","for","VWindowGroupSymbol","VWindow","name","directives","props","continuous","Boolean","nextIcon","type","String","default","prevIcon","reverse","showArrows","validator","v","touch","Object","undefined","direction","modelValue","disabled","selectedClass","mandatory","emits","setup","slots","themeClasses","isRtl","t","group","rootRef","isRtlReverse","value","isReversed","transition","axis","transitionCount","transitionHeight","activeIndex","items","findIndex","item","selected","includes","id","newVal","oldVal","itemsLength","length","lastIndex","canMoveBack","canMoveForward","prev","next","variant","scoped","arrows","prevProps","icon","class","onClick","ariaLabel","push","nextProps","touchOptions","options","left","right","end","originalEvent","stopPropagation","start","height","additional"],"mappings":"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","sourcesContent":["// Styles\nimport './VWindow.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useGroup } from '@/composables/group'\nimport { useLocale } from '@/composables/locale'\nimport { useRtl } from '@/composables/rtl'\n\n// Directives\nimport { Touch } from '@/directives/touch'\n\n// Utilities\nimport { computed, provide, ref, watch } from 'vue'\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, InjectionKey, PropType, Ref } from 'vue'\nimport type { GroupItemProvide, GroupProvide } from '@/composables/group'\nimport type { TouchHandlers } from '@/directives/touch'\nimport type { MakeSlots } from '@/util'\n\ntype WindowProvide = {\n transition: ComputedRef<undefined | string>\n transitionCount: Ref<number>\n transitionHeight: Ref<undefined | string>\n isReversed: Ref<boolean>\n rootRef: Ref<HTMLElement | undefined>\n}\n\ntype ControlProps = {\n icon: string\n class: string\n onClick: () => void\n ariaLabel: string\n}\n\nexport const VWindowSymbol: InjectionKey<WindowProvide> = Symbol.for('vuetify:v-window')\nexport const VWindowGroupSymbol: InjectionKey<GroupItemProvide> = Symbol.for('vuetify:v-window-group')\n\nexport const VWindow = genericComponent<new () => {\n $slots: MakeSlots<{\n default: [{ group: GroupProvide }]\n additional: [{ group: GroupProvide }]\n prev: [{ props: ControlProps }]\n next: [{ props: ControlProps }]\n }>\n}>()({\n name: 'VWindow',\n\n directives: {\n Touch,\n },\n\n props: {\n continuous: Boolean,\n nextIcon: {\n type: [Boolean, String],\n default: '$next',\n },\n prevIcon: {\n type: [Boolean, String],\n default: '$prev',\n },\n reverse: Boolean,\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => typeof v === 'boolean' || v === 'hover',\n },\n touch: {\n type: [Object, Boolean] as PropType<boolean | TouchHandlers>,\n default: undefined,\n },\n direction: {\n type: String,\n default: 'horizontal',\n },\n\n modelValue: null,\n disabled: Boolean,\n selectedClass: {\n type: String,\n default: 'v-window-item--active',\n },\n // TODO: mandatory should probably not be exposed but do this for now\n mandatory: {\n default: 'force' as const,\n },\n\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (v: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isRtl } = useRtl()\n const { t } = useLocale()\n\n const group = useGroup(props, VWindowGroupSymbol)\n\n const rootRef = ref()\n const isRtlReverse = computed(() => isRtl.value ? !props.reverse : props.reverse)\n const isReversed = ref(false)\n const transition = computed(() => {\n const axis = props.direction === 'vertical' ? 'y' : 'x'\n const reverse = isRtlReverse.value ? !isReversed.value : isReversed.value\n const direction = reverse ? '-reverse' : ''\n\n return `v-window-${axis}${direction}-transition`\n })\n const transitionCount = ref(0)\n const transitionHeight = ref<undefined | string>(undefined)\n\n const activeIndex = computed(() => {\n return group.items.value.findIndex(item => group.selected.value.includes(item.id))\n })\n\n watch(activeIndex, (newVal, oldVal) => {\n const itemsLength = group.items.value.length\n const lastIndex = itemsLength - 1\n\n if (itemsLength <= 2) {\n isReversed.value = newVal < oldVal\n } else if (newVal === lastIndex && oldVal === 0) {\n isReversed.value = true\n } else if (newVal === 0 && oldVal === lastIndex) {\n isReversed.value = false\n } else {\n isReversed.value = newVal < oldVal\n }\n })\n\n provide(VWindowSymbol, {\n transition,\n isReversed,\n transitionCount,\n transitionHeight,\n rootRef,\n })\n\n const canMoveBack = computed(() => props.continuous || activeIndex.value !== 0)\n const canMoveForward = computed(() => props.continuous || activeIndex.value !== group.items.value.length - 1)\n\n function prev () {\n canMoveBack.value && group.prev()\n }\n\n function next () {\n canMoveForward.value && group.next()\n }\n\n provideDefaults({\n VBtn: {\n variant: 'text',\n },\n }, { scoped: true })\n\n const arrows = computed(() => {\n const arrows = []\n\n const prevProps = {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n class: `v-window__${isRtlReverse.value ? 'right' : 'left'}`,\n onClick: group.prev,\n ariaLabel: t('$vuetify.carousel.prev'),\n }\n\n arrows.push(canMoveBack.value\n ? slots.prev\n ? slots.prev({ props: prevProps })\n : <VBtn { ...prevProps } />\n : <div />\n )\n\n const nextProps = {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n class: `v-window__${isRtlReverse.value ? 'left' : 'right'}`,\n onClick: group.next,\n ariaLabel: t('$vuetify.carousel.next'),\n }\n\n arrows.push(canMoveForward.value\n ? slots.next\n ? slots.next({ props: nextProps })\n : <VBtn { ...nextProps } />\n : <div />\n )\n\n return arrows\n })\n\n const touchOptions = computed(() => {\n if (props.touch === false) return props.touch\n\n const options: TouchHandlers = {\n left: () => {\n isRtlReverse.value ? prev() : next()\n },\n right: () => {\n isRtlReverse.value ? next() : prev()\n },\n end: ({ originalEvent }) => {\n originalEvent.stopPropagation()\n },\n start: ({ originalEvent }) => {\n originalEvent.stopPropagation()\n },\n }\n\n return {\n ...options,\n ...(props.touch === true ? {} : props.touch),\n }\n })\n\n useRender(() => (\n <props.tag\n ref={ rootRef }\n class={[\n 'v-window',\n {\n 'v-window--show-arrows-on-hover': props.showArrows === 'hover',\n },\n themeClasses.value,\n ]}\n v-touch={ touchOptions.value }\n >\n <div\n class=\"v-window__container\"\n style={{\n height: transitionHeight.value,\n }}\n >\n { slots.default?.({ group }) }\n\n { props.showArrows !== false && (\n <div class=\"v-window__controls\">\n { arrows.value }\n </div>\n )}\n </div>\n\n { slots.additional?.({ group }) }\n </props.tag>\n ))\n\n return {\n group,\n }\n },\n})\n\nexport type VWindow = InstanceType<typeof VWindow>\n"],"file":"VWindow.mjs"}
1
+ {"version":3,"sources":["../../../src/components/VWindow/VWindow.tsx"],"names":["VBtn","makeTagProps","makeThemeProps","provideTheme","useGroup","useLocale","useRtl","Touch","computed","provide","ref","watch","genericComponent","useRender","VWindowSymbol","Symbol","for","VWindowGroupSymbol","VWindow","name","directives","props","continuous","Boolean","nextIcon","type","String","default","prevIcon","reverse","showArrows","validator","v","touch","Object","undefined","direction","modelValue","disabled","selectedClass","mandatory","emits","setup","slots","themeClasses","isRtl","t","group","rootRef","isRtlReverse","value","isReversed","transition","axis","transitionCount","transitionHeight","activeIndex","items","findIndex","item","selected","includes","id","newVal","oldVal","itemsLength","length","lastIndex","canMoveBack","canMoveForward","prev","next","arrows","prevProps","icon","class","onClick","ariaLabel","push","nextProps","touchOptions","options","left","right","end","originalEvent","stopPropagation","start","height","additional"],"mappings":"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","sourcesContent":["// Styles\nimport './VWindow.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useGroup } from '@/composables/group'\nimport { useLocale } from '@/composables/locale'\nimport { useRtl } from '@/composables/rtl'\n\n// Directives\nimport { Touch } from '@/directives/touch'\n\n// Utilities\nimport { computed, provide, ref, watch } from 'vue'\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, InjectionKey, PropType, Ref } from 'vue'\nimport type { GroupItemProvide, GroupProvide } from '@/composables/group'\nimport type { TouchHandlers } from '@/directives/touch'\nimport type { MakeSlots } from '@/util'\n\ntype WindowProvide = {\n transition: ComputedRef<undefined | string>\n transitionCount: Ref<number>\n transitionHeight: Ref<undefined | string>\n isReversed: Ref<boolean>\n rootRef: Ref<HTMLElement | undefined>\n}\n\ntype ControlProps = {\n icon: string\n class: string\n onClick: () => void\n ariaLabel: string\n}\n\nexport const VWindowSymbol: InjectionKey<WindowProvide> = Symbol.for('vuetify:v-window')\nexport const VWindowGroupSymbol: InjectionKey<GroupItemProvide> = Symbol.for('vuetify:v-window-group')\n\nexport const VWindow = genericComponent<new () => {\n $slots: MakeSlots<{\n default: [{ group: GroupProvide }]\n additional: [{ group: GroupProvide }]\n prev: [{ props: ControlProps }]\n next: [{ props: ControlProps }]\n }>\n}>()({\n name: 'VWindow',\n\n directives: {\n Touch,\n },\n\n props: {\n continuous: Boolean,\n nextIcon: {\n type: [Boolean, String],\n default: '$next',\n },\n prevIcon: {\n type: [Boolean, String],\n default: '$prev',\n },\n reverse: Boolean,\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => typeof v === 'boolean' || v === 'hover',\n },\n touch: {\n type: [Object, Boolean] as PropType<boolean | TouchHandlers>,\n default: undefined,\n },\n direction: {\n type: String,\n default: 'horizontal',\n },\n\n modelValue: null,\n disabled: Boolean,\n selectedClass: {\n type: String,\n default: 'v-window-item--active',\n },\n // TODO: mandatory should probably not be exposed but do this for now\n mandatory: {\n default: 'force' as const,\n },\n\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (v: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isRtl } = useRtl()\n const { t } = useLocale()\n\n const group = useGroup(props, VWindowGroupSymbol)\n\n const rootRef = ref()\n const isRtlReverse = computed(() => isRtl.value ? !props.reverse : props.reverse)\n const isReversed = ref(false)\n const transition = computed(() => {\n const axis = props.direction === 'vertical' ? 'y' : 'x'\n const reverse = isRtlReverse.value ? !isReversed.value : isReversed.value\n const direction = reverse ? '-reverse' : ''\n\n return `v-window-${axis}${direction}-transition`\n })\n const transitionCount = ref(0)\n const transitionHeight = ref<undefined | string>(undefined)\n\n const activeIndex = computed(() => {\n return group.items.value.findIndex(item => group.selected.value.includes(item.id))\n })\n\n watch(activeIndex, (newVal, oldVal) => {\n const itemsLength = group.items.value.length\n const lastIndex = itemsLength - 1\n\n if (itemsLength <= 2) {\n isReversed.value = newVal < oldVal\n } else if (newVal === lastIndex && oldVal === 0) {\n isReversed.value = true\n } else if (newVal === 0 && oldVal === lastIndex) {\n isReversed.value = false\n } else {\n isReversed.value = newVal < oldVal\n }\n })\n\n provide(VWindowSymbol, {\n transition,\n isReversed,\n transitionCount,\n transitionHeight,\n rootRef,\n })\n\n const canMoveBack = computed(() => props.continuous || activeIndex.value !== 0)\n const canMoveForward = computed(() => props.continuous || activeIndex.value !== group.items.value.length - 1)\n\n function prev () {\n canMoveBack.value && group.prev()\n }\n\n function next () {\n canMoveForward.value && group.next()\n }\n\n const arrows = computed(() => {\n const arrows = []\n\n const prevProps = {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n class: `v-window__${isRtlReverse.value ? 'right' : 'left'}`,\n onClick: group.prev,\n ariaLabel: t('$vuetify.carousel.prev'),\n }\n\n arrows.push(canMoveBack.value\n ? slots.prev\n ? slots.prev({ props: prevProps })\n : <VBtn { ...prevProps } />\n : <div />\n )\n\n const nextProps = {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n class: `v-window__${isRtlReverse.value ? 'left' : 'right'}`,\n onClick: group.next,\n ariaLabel: t('$vuetify.carousel.next'),\n }\n\n arrows.push(canMoveForward.value\n ? slots.next\n ? slots.next({ props: nextProps })\n : <VBtn { ...nextProps } />\n : <div />\n )\n\n return arrows\n })\n\n const touchOptions = computed(() => {\n if (props.touch === false) return props.touch\n\n const options: TouchHandlers = {\n left: () => {\n isRtlReverse.value ? prev() : next()\n },\n right: () => {\n isRtlReverse.value ? next() : prev()\n },\n end: ({ originalEvent }) => {\n originalEvent.stopPropagation()\n },\n start: ({ originalEvent }) => {\n originalEvent.stopPropagation()\n },\n }\n\n return {\n ...options,\n ...(props.touch === true ? {} : props.touch),\n }\n })\n\n useRender(() => (\n <props.tag\n ref={ rootRef }\n class={[\n 'v-window',\n {\n 'v-window--show-arrows-on-hover': props.showArrows === 'hover',\n },\n themeClasses.value,\n ]}\n v-touch={ touchOptions.value }\n >\n <div\n class=\"v-window__container\"\n style={{\n height: transitionHeight.value,\n }}\n >\n { slots.default?.({ group }) }\n\n { props.showArrows !== false && (\n <div class=\"v-window__controls\">\n { arrows.value }\n </div>\n )}\n </div>\n\n { slots.additional?.({ group }) }\n </props.tag>\n ))\n\n return {\n group,\n }\n },\n})\n\nexport type VWindow = InstanceType<typeof VWindow>\n"],"file":"VWindow.mjs"}