@vuetify/nightly 3.0.0-next-20220107.0 → 3.0.0-next-20220126.0

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 (67) hide show
  1. package/dist/json/attributes.json +96 -20
  2. package/dist/json/importMap.json +8 -0
  3. package/dist/json/tags.json +32 -3
  4. package/dist/json/web-types.json +338 -41
  5. package/dist/vuetify.css +77 -20
  6. package/dist/vuetify.d.ts +204 -48
  7. package/dist/vuetify.esm.js +707 -387
  8. package/dist/vuetify.esm.js.map +1 -1
  9. package/dist/vuetify.js +707 -387
  10. package/dist/vuetify.js.map +1 -1
  11. package/dist/vuetify.min.css +2 -2
  12. package/dist/vuetify.min.js +2 -2
  13. package/dist/vuetify.min.js.map +1 -1
  14. package/lib/components/VBtn/VBtn.css +0 -16
  15. package/lib/components/VBtn/VBtn.sass +0 -6
  16. package/lib/components/VBtn/_variables.scss +0 -2
  17. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +2 -2
  18. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  19. package/lib/components/VHover/VHover.mjs +3 -3
  20. package/lib/components/VHover/VHover.mjs.map +1 -1
  21. package/lib/components/VInput/VInput.mjs +3 -2
  22. package/lib/components/VInput/VInput.mjs.map +1 -1
  23. package/lib/components/VList/VList.css +4 -2
  24. package/lib/components/VList/VList.mjs +34 -35
  25. package/lib/components/VList/VList.mjs.map +1 -1
  26. package/lib/components/VList/VList.sass +5 -2
  27. package/lib/components/VList/VListChildren.mjs +19 -14
  28. package/lib/components/VList/VListChildren.mjs.map +1 -1
  29. package/lib/components/VList/VListGroup.mjs +16 -40
  30. package/lib/components/VList/VListGroup.mjs.map +1 -1
  31. package/lib/components/VList/VListItem.mjs +3 -3
  32. package/lib/components/VList/VListItem.mjs.map +1 -1
  33. package/lib/components/VList/VListSubheader.mjs +20 -12
  34. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  35. package/lib/components/VList/list.mjs +31 -0
  36. package/lib/components/VList/list.mjs.map +1 -0
  37. package/lib/components/VMessages/VMessages.mjs +12 -4
  38. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  39. package/lib/components/VOverlay/VOverlay.mjs +2 -2
  40. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  41. package/lib/components/VOverlay/useActivator.mjs +12 -2
  42. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  43. package/lib/components/VPagination/VPagination.mjs +23 -31
  44. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  45. package/lib/components/VWindow/VWindow.css +70 -0
  46. package/lib/components/VWindow/VWindow.mjs +158 -233
  47. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  48. package/lib/components/VWindow/VWindow.sass +26 -50
  49. package/lib/components/VWindow/VWindowItem.mjs +72 -98
  50. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  51. package/lib/components/VWindow/_variables.scss +2 -3
  52. package/lib/components/VWindow/index.mjs +2 -9
  53. package/lib/components/VWindow/index.mjs.map +1 -1
  54. package/lib/components/index.d.ts +200 -47
  55. package/lib/components/index.mjs +1 -1
  56. package/lib/components/index.mjs.map +1 -1
  57. package/lib/composables/group.mjs +1 -6
  58. package/lib/composables/group.mjs.map +1 -1
  59. package/lib/composables/nested/nested.mjs +1 -1
  60. package/lib/composables/nested/nested.mjs.map +1 -1
  61. package/lib/composables/nested/openStrategies.mjs +1 -1
  62. package/lib/composables/nested/openStrategies.mjs.map +1 -1
  63. package/lib/directives/touch/index.mjs +6 -3
  64. package/lib/directives/touch/index.mjs.map +1 -1
  65. package/lib/entry-bundler.mjs +1 -1
  66. package/lib/index.d.ts +2 -0
  67. package/package.json +2 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.0.0-next-20220107.0
2
+ * Vuetify v3.0.0-next-20220126.0
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -247,6 +247,9 @@ function convertToUnit(str) {
247
247
  function isObject(obj) {
248
248
  return obj !== null && typeof obj === 'object' && !Array.isArray(obj);
249
249
  }
250
+ function isComponentInstance(obj) {
251
+ return obj == null ? void 0 : obj.$el;
252
+ } // KeyboardEvent.keyCode aliases
250
253
 
251
254
  const keyCodes = Object.freeze({
252
255
  enter: 13,
@@ -2604,12 +2607,7 @@ function useGroup(props, injectKey) {
2604
2607
  next: () => step(1),
2605
2608
  isSelected: id => selected.value.includes(id),
2606
2609
  selectedClass: computed(() => props.selectedClass),
2607
- items: computed(() => items.map(_ref => {
2608
- let {
2609
- id
2610
- } = _ref;
2611
- return id;
2612
- }))
2610
+ items: computed(() => items)
2613
2611
  };
2614
2612
  provide(injectKey, state);
2615
2613
  return state;
@@ -4777,6 +4775,7 @@ const VMessages = defineComponent({
4777
4775
  name: 'VMessages',
4778
4776
  props: {
4779
4777
  active: Boolean,
4778
+ color: String,
4780
4779
  value: {
4781
4780
  type: [Array, String],
4782
4781
  default: () => []
@@ -4784,6 +4783,7 @@ const VMessages = defineComponent({
4784
4783
  ...makeTransitionProps({
4785
4784
  transition: {
4786
4785
  component: VSlideYTransition,
4786
+ leaveAbsolute: true,
4787
4787
  group: true
4788
4788
  }
4789
4789
  })
@@ -4794,20 +4794,25 @@ const VMessages = defineComponent({
4794
4794
  slots
4795
4795
  } = _ref;
4796
4796
  const messages = computed(() => wrapInArray(props.value));
4797
+ const {
4798
+ textColorClasses,
4799
+ textColorStyles
4800
+ } = useTextColor(computed(() => props.color));
4797
4801
  return () => {
4798
4802
  var _slots$default;
4799
4803
 
4800
4804
  return createVNode(MaybeTransition, {
4801
4805
  "transition": props.transition,
4802
4806
  "tag": "div",
4803
- "class": "v-messages"
4807
+ "class": ['v-messages', textColorClasses.value],
4808
+ "style": textColorStyles.value
4804
4809
  }, {
4805
4810
  default: () => [messages.value.length > 0 && props.active && messages.value.map((message, i) => createVNode("div", {
4806
4811
  "class": "v-messages__message",
4807
- "key": i
4812
+ "key": `${i}-${messages.value}`
4808
4813
  }, [message])), slots == null ? void 0 : (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)],
4809
4814
  _: 1
4810
- }, 8, ["transition"]);
4815
+ }, 8, ["transition", "class", "style"]);
4811
4816
  };
4812
4817
  }
4813
4818
 
@@ -5111,10 +5116,11 @@ const VInput = genericComponent()({
5111
5116
  "class": "v-input__details"
5112
5117
  }, [createVNode(VMessages, {
5113
5118
  "active": showMessages,
5114
- "value": errorMessages.value || (hasMessages ? props.messages : props.hint)
5119
+ "color": isValid.value === false ? 'error' : undefined,
5120
+ "value": errorMessages.value.length > 0 ? errorMessages.value : hasMessages ? props.messages : props.hint
5115
5121
  }, {
5116
5122
  default: slots.messages
5117
- }, 8, ["active", "value"]), (_slots$details = slots.details) == null ? void 0 : _slots$details.call(slots, slotProps.value)])], 2);
5123
+ }, 8, ["active", "color", "value"]), (_slots$details = slots.details) == null ? void 0 : _slots$details.call(slots, slotProps.value)])], 2);
5118
5124
  });
5119
5125
  return {
5120
5126
  isValid,
@@ -5819,6 +5825,14 @@ function useActivator(props, isActive) {
5819
5825
 
5820
5826
  return events;
5821
5827
  });
5828
+ const activatorRef = ref();
5829
+ watchEffect(() => {
5830
+ if (!activatorRef.value) return;
5831
+ nextTick(() => {
5832
+ const activator = activatorRef.value;
5833
+ activatorEl.value = isComponentInstance(activator) ? activator.$el : activator;
5834
+ });
5835
+ });
5822
5836
  let scope;
5823
5837
  watch(() => !!props.activator, val => {
5824
5838
  if (val && IN_BROWSER) {
@@ -5826,6 +5840,7 @@ function useActivator(props, isActive) {
5826
5840
  scope.run(() => {
5827
5841
  _useActivator(props, {
5828
5842
  activatorEl,
5843
+ activatorRef,
5829
5844
  activatorEvents
5830
5845
  });
5831
5846
  });
@@ -5838,6 +5853,7 @@ function useActivator(props, isActive) {
5838
5853
  });
5839
5854
  return {
5840
5855
  activatorEl,
5856
+ activatorRef,
5841
5857
  activatorEvents
5842
5858
  };
5843
5859
  }
@@ -6623,6 +6639,7 @@ const VOverlay = genericComponent()({
6623
6639
  }));
6624
6640
  const {
6625
6641
  activatorEl,
6642
+ activatorRef,
6626
6643
  activatorEvents
6627
6644
  } = useActivator(props, isActive);
6628
6645
  const {
@@ -6717,8 +6734,7 @@ const VOverlay = genericComponent()({
6717
6734
  return createVNode(Fragment, null, [(_slots$activator = slots.activator) == null ? void 0 : _slots$activator.call(slots, {
6718
6735
  isActive: isActive.value,
6719
6736
  props: mergeProps({
6720
- modelValue: isActive.value,
6721
- 'onUpdate:modelValue': val => isActive.value = val
6737
+ ref: activatorRef
6722
6738
  }, toHandlers(activatorEvents.value), props.activatorProps)
6723
6739
  }), createVNode(Teleport, {
6724
6740
  "disabled": !teleportTarget.value,
@@ -7091,11 +7107,11 @@ const VExpansionPanel = defineComponent({
7091
7107
  } = useElevation(props);
7092
7108
  provide(VExpansionPanelSymbol, groupItem);
7093
7109
  const isBeforeSelected = computed(() => {
7094
- const index = groupItem.group.items.value.indexOf(groupItem.id);
7110
+ const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id);
7095
7111
  return !groupItem.isSelected.value && groupItem.group.selected.value.some(id => groupItem.group.items.value.indexOf(id) - index === 1);
7096
7112
  });
7097
7113
  const isAfterSelected = computed(() => {
7098
- const index = groupItem.group.items.value.indexOf(groupItem.id);
7114
+ const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id);
7099
7115
  return !groupItem.isSelected.value && groupItem.group.selected.value.some(id => groupItem.group.items.value.indexOf(id) - index === -1);
7100
7116
  });
7101
7117
  const {
@@ -8348,16 +8364,16 @@ const VHover = defineComponent({
8348
8364
  let {
8349
8365
  slots
8350
8366
  } = _ref;
8351
- const hover = useProxiedModel(props, 'modelValue');
8367
+ const isHovering = useProxiedModel(props, 'modelValue');
8352
8368
  const {
8353
8369
  runOpenDelay,
8354
8370
  runCloseDelay
8355
- } = useDelay(props, value => !props.disabled && (hover.value = value));
8371
+ } = useDelay(props, value => !props.disabled && (isHovering.value = value));
8356
8372
  return () => {
8357
8373
  var _slots$default;
8358
8374
 
8359
8375
  return (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, {
8360
- hover: hover.value,
8376
+ isHovering: isHovering.value,
8361
8377
  props: {
8362
8378
  onMouseenter: runOpenDelay,
8363
8379
  onMouseleave: runCloseDelay
@@ -8571,37 +8587,26 @@ const VLazy = defineComponent({
8571
8587
 
8572
8588
  });
8573
8589
 
8574
- const VListSubheader = defineComponent({
8575
- name: 'VListSubheader',
8576
- props: {
8577
- color: String,
8578
- inset: Boolean,
8579
- ...makeTagProps()
8580
- },
8581
-
8582
- setup(props, _ref) {
8583
- let {
8584
- slots
8585
- } = _ref;
8586
- const {
8587
- textColorClasses,
8588
- textColorStyles
8589
- } = useTextColor(toRef(props, 'color'));
8590
- return () => createVNode(props.tag, {
8591
- "class": ['v-list-subheader', {
8592
- 'v-list-subheader--inset': props.inset
8593
- }, textColorClasses.value],
8594
- "style": {
8595
- textColorStyles
8596
- }
8597
- }, {
8598
- default: () => [slots.default && createVNode("div", {
8599
- "class": "v-list-subheader__text"
8600
- }, [slots.default()])]
8601
- }, 8, ["class", "style"]);
8602
- }
8590
+ // Utilities
8603
8591
 
8604
- });
8592
+ const ListKey = Symbol.for('vuetify:list');
8593
+ function createList() {
8594
+ const parent = inject(ListKey, {
8595
+ hasPrepend: ref(false),
8596
+ updateHasPrepend: () => null
8597
+ });
8598
+ const data = {
8599
+ hasPrepend: ref(false),
8600
+ updateHasPrepend: value => {
8601
+ if (value) data.hasPrepend.value = value;
8602
+ }
8603
+ };
8604
+ provide(ListKey, data);
8605
+ return parent;
8606
+ }
8607
+ function useList() {
8608
+ return inject(ListKey, null);
8609
+ }
8605
8610
 
8606
8611
  const singleOpenStrategy = _ref => {
8607
8612
  let {
@@ -8639,7 +8644,7 @@ const multipleOpenStrategy = _ref2 => {
8639
8644
  let parent = parents.get(id);
8640
8645
  opened.add(id);
8641
8646
 
8642
- while (parent != null) {
8647
+ while (parent != null && parent !== id) {
8643
8648
  opened.add(parent);
8644
8649
  parent = parents.get(parent);
8645
8650
  }
@@ -8891,7 +8896,7 @@ const useNested = props => {
8891
8896
  return arr;
8892
8897
  }),
8893
8898
  register: (id, parentId, isGroup) => {
8894
- parentId && parents.value.set(id, parentId);
8899
+ parentId && id !== parentId && parents.value.set(id, parentId);
8895
8900
  isGroup && children.value.set(id, []);
8896
8901
 
8897
8902
  if (parentId != null) {
@@ -8998,30 +9003,6 @@ const useNestedGroup = props => {
8998
9003
  return group;
8999
9004
  };
9000
9005
 
9001
- const VListGroupItems = defineComponent({
9002
- name: 'VListGroupItems',
9003
- props: {
9004
- open: Boolean,
9005
- items: Array
9006
- },
9007
-
9008
- setup(props, _ref) {
9009
- let {
9010
- slots
9011
- } = _ref;
9012
- createList();
9013
- return () => {
9014
- return createVNode(VExpandTransition, null, {
9015
- default: () => [withDirectives(createVNode("div", {
9016
- "class": "v-list-group__items"
9017
- }, [createVNode(VListChildren, {
9018
- "items": props.items
9019
- }, slots, 8, ["items"])], 512), [[vShow, props.open]])]
9020
- });
9021
- };
9022
- }
9023
-
9024
- });
9025
9006
  const VListGroup = genericComponent()({
9026
9007
  name: 'VListGroup',
9027
9008
  props: {
@@ -9034,14 +9015,13 @@ const VListGroup = genericComponent()({
9034
9015
  type: String,
9035
9016
  default: '$expand'
9036
9017
  },
9037
- items: Array,
9038
9018
  ...makeTagProps()
9039
9019
  },
9040
9020
 
9041
- setup(props, _ref2) {
9021
+ setup(props, _ref) {
9042
9022
  let {
9043
9023
  slots
9044
- } = _ref2;
9024
+ } = _ref;
9045
9025
  const {
9046
9026
  isOpen,
9047
9027
  open
@@ -9055,20 +9035,22 @@ const VListGroup = genericComponent()({
9055
9035
  const headerProps = computed(() => ({
9056
9036
  onClick,
9057
9037
  appendIcon: isOpen.value ? props.collapseIcon : props.expandIcon,
9058
- class: 'v-list-group__header'
9038
+ class: 'v-list-group__header',
9039
+ value: `${props.value}_header`
9059
9040
  }));
9060
9041
  return () => {
9061
- var _slots$header;
9042
+ var _slots$header, _slots$items;
9062
9043
 
9063
9044
  return createVNode(props.tag, {
9064
9045
  "class": ['v-list-group', {
9065
9046
  'v-list-group--prepend': list == null ? void 0 : list.hasPrepend.value
9066
9047
  }]
9067
9048
  }, {
9068
- default: () => [(_slots$header = slots.header) == null ? void 0 : _slots$header.call(slots, headerProps.value), createVNode(VListGroupItems, {
9069
- "items": props.items,
9070
- "open": isOpen.value
9071
- }, slots, 8, ["items", "open"])],
9049
+ default: () => [(_slots$header = slots.header) == null ? void 0 : _slots$header.call(slots, headerProps.value), createVNode(VExpandTransition, null, {
9050
+ default: () => [withDirectives(createVNode("div", {
9051
+ "class": "v-list-group__items"
9052
+ }, [(_slots$items = slots.items) == null ? void 0 : _slots$items.call(slots)], 512), [[vShow, isOpen.value]])]
9053
+ })],
9072
9054
  _: 1
9073
9055
  }, 8, ["class"]);
9074
9056
  };
@@ -9266,6 +9248,46 @@ const VListItem = genericComponent()({
9266
9248
 
9267
9249
  });
9268
9250
 
9251
+ const VListSubheader = defineComponent({
9252
+ name: 'VListSubheader',
9253
+ props: {
9254
+ color: String,
9255
+ inset: Boolean,
9256
+ sticky: Boolean,
9257
+ text: String,
9258
+ ...makeTagProps()
9259
+ },
9260
+
9261
+ setup(props, _ref) {
9262
+ let {
9263
+ slots
9264
+ } = _ref;
9265
+ const {
9266
+ textColorClasses,
9267
+ textColorStyles
9268
+ } = useTextColor(toRef(props, 'color'));
9269
+ return () => {
9270
+ var _slots$default, _slots$default2;
9271
+
9272
+ const hasText = !!(slots.default || props.text);
9273
+ return createVNode(props.tag, {
9274
+ "class": ['v-list-subheader', {
9275
+ 'v-list-subheader--inset': props.inset,
9276
+ 'v-list-subheader--sticky': props.sticky
9277
+ }, textColorClasses.value],
9278
+ "style": {
9279
+ textColorStyles
9280
+ }
9281
+ }, {
9282
+ default: () => [hasText && createVNode("div", {
9283
+ "class": "v-list-subheader__text"
9284
+ }, [(_slots$default = (_slots$default2 = slots.default) == null ? void 0 : _slots$default2.call(slots)) != null ? _slots$default : props.text])]
9285
+ }, 8, ["class", "style"]);
9286
+ };
9287
+ }
9288
+
9289
+ });
9290
+
9269
9291
  const VListChildren = genericComponent()({
9270
9292
  name: 'VListChildren',
9271
9293
  props: {
@@ -9276,51 +9298,64 @@ const VListChildren = genericComponent()({
9276
9298
  let {
9277
9299
  slots
9278
9300
  } = _ref;
9301
+ createList();
9279
9302
  return () => {
9280
9303
  var _slots$default, _slots$default2, _props$items;
9281
9304
 
9282
9305
  return (_slots$default = (_slots$default2 = slots.default) == null ? void 0 : _slots$default2.call(slots)) != null ? _slots$default : (_props$items = props.items) == null ? void 0 : _props$items.map(_ref2 => {
9283
9306
  let {
9284
9307
  children,
9285
- ...item
9308
+ props: itemProps,
9309
+ type
9286
9310
  } = _ref2;
9287
- const {
9288
- value,
9289
- ...rest
9290
- } = item;
9311
+ if (type === 'divider') return createVNode(VDivider, itemProps, null, 16);
9312
+ if (type === 'subheader') return createVNode(VListSubheader, itemProps, slots, 16);
9291
9313
  return children ? createVNode(VListGroup, {
9292
- "value": value,
9293
- "items": children
9294
- }, { ...slots,
9295
- header: headerProps => slots.externalHeader ? slots.externalHeader({ ...rest,
9314
+ "value": itemProps == null ? void 0 : itemProps.value
9315
+ }, {
9316
+ items: () => createVNode(VListChildren, {
9317
+ "items": children
9318
+ }, slots, 8, ["items"]),
9319
+ header: headerProps => slots.externalHeader ? slots.externalHeader({ ...itemProps,
9296
9320
  ...headerProps
9297
- }) : createVNode(VListItem, mergeProps(rest, headerProps), null, 16),
9321
+ }) : createVNode(VListItem, mergeProps(itemProps, headerProps), null, 16),
9298
9322
  _: 2
9299
- }, 8, ["value", "items"]) : slots.item ? slots.item(item) : createVNode(VListItem, item, slots, 16);
9323
+ }, 8, ["value"]) : slots.item ? slots.item(itemProps) : createVNode(VListItem, itemProps, slots, 16);
9300
9324
  });
9301
9325
  };
9302
9326
  }
9303
9327
 
9304
9328
  });
9305
9329
 
9306
- const ListKey = Symbol.for('vuetify:list');
9307
- const createList = () => {
9308
- const parent = inject(ListKey, {
9309
- hasPrepend: ref(false),
9310
- updateHasPrepend: () => null
9330
+ const parseItems = items => {
9331
+ if (!items) return undefined;
9332
+ return items.map(item => {
9333
+ if (typeof item === 'string') return {
9334
+ type: 'item',
9335
+ value: item,
9336
+ title: item
9337
+ };
9338
+ const {
9339
+ $type,
9340
+ $children,
9341
+ ...props
9342
+ } = item;
9343
+ if ($type === 'subheader') return {
9344
+ type: 'subheader',
9345
+ props
9346
+ };
9347
+ if ($type === 'divider') return {
9348
+ type: 'divider',
9349
+ props
9350
+ };
9351
+ return {
9352
+ type: 'item',
9353
+ props,
9354
+ children: parseItems($children)
9355
+ };
9311
9356
  });
9312
- const data = {
9313
- hasPrepend: ref(false),
9314
- updateHasPrepend: value => {
9315
- if (value) data.hasPrepend.value = value;
9316
- }
9317
- };
9318
- provide(ListKey, data);
9319
- return parent;
9320
- };
9321
- const useList = () => {
9322
- return inject(ListKey, null);
9323
9357
  };
9358
+
9324
9359
  const VList = genericComponent()({
9325
9360
  name: 'VList',
9326
9361
  props: {
@@ -9331,10 +9366,6 @@ const VList = genericComponent()({
9331
9366
  default: 'one'
9332
9367
  },
9333
9368
  nav: Boolean,
9334
- subheader: {
9335
- type: [Boolean, String],
9336
- default: false
9337
- },
9338
9369
  items: Array,
9339
9370
  ...makeNestedProps({
9340
9371
  selectStrategy: 'leaf',
@@ -9359,6 +9390,7 @@ const VList = genericComponent()({
9359
9390
  let {
9360
9391
  slots
9361
9392
  } = _ref;
9393
+ const items = computed(() => parseItems(props.items));
9362
9394
  const {
9363
9395
  themeClasses
9364
9396
  } = provideTheme(props);
@@ -9388,28 +9420,22 @@ const VList = genericComponent()({
9388
9420
  } = useNested(props);
9389
9421
  createList();
9390
9422
  useRender(() => {
9391
- const hasHeader = typeof props.subheader === 'string' || slots.subheader;
9392
9423
  return createVNode(props.tag, {
9393
9424
  "class": ['v-list', {
9394
9425
  'v-list--disabled': props.disabled,
9395
9426
  'v-list--nav': props.nav,
9396
- 'v-list--subheader': props.subheader,
9397
- 'v-list--subheader-sticky': props.subheader === 'sticky',
9398
9427
  [`v-list--${props.lines}-line`]: true
9399
9428
  }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value],
9400
9429
  "style": [backgroundColorStyles.value, dimensionStyles.value]
9401
9430
  }, {
9402
- default: () => [hasHeader && (slots.subheader ? slots.subheader() : createVNode(VListSubheader, null, {
9403
- default: () => [props.subheader]
9404
- })), createVNode(VListChildren, {
9405
- "items": props.items
9431
+ default: () => [createVNode(VListChildren, {
9432
+ "items": items.value
9406
9433
  }, {
9407
9434
  default: slots.default,
9408
9435
  item: slots.item,
9409
9436
  externalHeader: slots.header,
9410
9437
  _: 1
9411
- }, 8, ["items"])],
9412
- _: 1
9438
+ }, 8, ["items"])]
9413
9439
  }, 8, ["class", "style"]);
9414
9440
  });
9415
9441
  return {
@@ -10151,14 +10177,14 @@ const VPagination = defineComponent({
10151
10177
  default: '...'
10152
10178
  },
10153
10179
  showFirstLastPage: Boolean,
10180
+ ...makeRoundedProps(),
10181
+ ...makeBorderProps(),
10182
+ ...makeDensityProps(),
10183
+ ...makeElevationProps(),
10184
+ ...makeSizeProps(),
10154
10185
  ...makeTagProps({
10155
10186
  tag: 'nav'
10156
10187
  }),
10157
- ...makeElevationProps(),
10158
- ...makeDensityProps(),
10159
- ...makeRoundedProps(),
10160
- ...makeSizeProps(),
10161
- ...makeBorderProps(),
10162
10188
  ...makeThemeProps(),
10163
10189
  ...makeVariantProps({
10164
10190
  variant: 'text'
@@ -10252,12 +10278,15 @@ const VPagination = defineComponent({
10252
10278
  refs,
10253
10279
  updateRef
10254
10280
  } = useRefs();
10281
+ provideDefaults({
10282
+ VBtn: {
10283
+ border: toRef(props, 'border'),
10284
+ density: toRef(props, 'density'),
10285
+ size: toRef(props, 'size'),
10286
+ variant: toRef(props, 'variant')
10287
+ }
10288
+ });
10255
10289
  const items = computed(() => {
10256
- const sharedProps = {
10257
- density: props.density,
10258
- rounded: props.rounded,
10259
- size: props.size
10260
- };
10261
10290
  return range.value.map((item, index) => {
10262
10291
  const ref = e => updateRef(e, index);
10263
10292
 
@@ -10265,13 +10294,11 @@ const VPagination = defineComponent({
10265
10294
  return {
10266
10295
  isActive: false,
10267
10296
  page: item,
10268
- props: { ...sharedProps,
10297
+ props: {
10269
10298
  ref,
10270
10299
  ellipsis: true,
10271
10300
  icon: true,
10272
- disabled: true,
10273
- variant: props.variant,
10274
- border: props.border
10301
+ disabled: true
10275
10302
  }
10276
10303
  };
10277
10304
  } else {
@@ -10279,14 +10306,13 @@ const VPagination = defineComponent({
10279
10306
  return {
10280
10307
  isActive,
10281
10308
  page: n(item),
10282
- props: { ...sharedProps,
10309
+ props: {
10283
10310
  ref,
10284
10311
  ellipsis: false,
10285
10312
  icon: true,
10286
10313
  disabled: !!props.disabled || props.length < 2,
10287
10314
  elevation: props.elevation,
10288
- variant: props.variant,
10289
- border: props.border,
10315
+ rounded: props.rounded,
10290
10316
  color: isActive ? props.color : undefined,
10291
10317
  ariaCurrent: isActive,
10292
10318
  ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, index + 1),
@@ -10297,39 +10323,31 @@ const VPagination = defineComponent({
10297
10323
  });
10298
10324
  });
10299
10325
  const controls = computed(() => {
10300
- const sharedProps = {
10301
- color: undefined,
10302
- density: props.density,
10303
- rounded: props.rounded,
10304
- size: props.size,
10305
- variant: props.variant,
10306
- border: props.border
10307
- };
10308
10326
  const prevDisabled = !!props.disabled || page.value <= start.value;
10309
10327
  const nextDisabled = !!props.disabled || page.value >= start.value + length.value - 1;
10310
10328
  return {
10311
- first: props.showFirstLastPage ? { ...sharedProps,
10329
+ first: props.showFirstLastPage ? {
10312
10330
  icon: isRtl.value ? props.lastIcon : props.firstIcon,
10313
10331
  onClick: e => setValue(e, start.value, 'first'),
10314
10332
  disabled: prevDisabled,
10315
10333
  ariaLabel: t(props.firstAriaLabel),
10316
10334
  ariaDisabled: prevDisabled
10317
10335
  } : undefined,
10318
- prev: { ...sharedProps,
10336
+ prev: {
10319
10337
  icon: isRtl.value ? props.nextIcon : props.prevIcon,
10320
10338
  onClick: e => setValue(e, page.value - 1, 'prev'),
10321
10339
  disabled: prevDisabled,
10322
10340
  ariaLabel: t(props.previousAriaLabel),
10323
10341
  ariaDisabled: prevDisabled
10324
10342
  },
10325
- next: { ...sharedProps,
10343
+ next: {
10326
10344
  icon: isRtl.value ? props.prevIcon : props.nextIcon,
10327
10345
  onClick: e => setValue(e, page.value + 1, 'next'),
10328
10346
  disabled: nextDisabled,
10329
10347
  ariaLabel: t(props.nextAriaLabel),
10330
10348
  ariaDisabled: nextDisabled
10331
10349
  },
10332
- last: props.showFirstLastPage ? { ...sharedProps,
10350
+ last: props.showFirstLastPage ? {
10333
10351
  icon: isRtl.value ? props.firstIcon : props.lastIcon,
10334
10352
  onClick: e => setValue(e, start.value + length.value - 1, 'last'),
10335
10353
  disabled: nextDisabled,
@@ -12785,102 +12803,524 @@ const VValidation = defineComponent({
12785
12803
 
12786
12804
  });
12787
12805
 
12788
- var components = /*#__PURE__*/Object.freeze({
12789
- __proto__: null,
12790
- VApp: VApp,
12791
- VAppBar: VAppBar,
12792
- VAppBarNavIcon: VAppBarNavIcon,
12793
- VAppBarTitle: VAppBarTitle,
12794
- VAlert: VAlert,
12795
- VAvatar: VAvatar,
12796
- VBadge: VBadge,
12797
- VBanner: VBanner,
12798
- VBannerActions: VBannerActions,
12799
- VBannerAvatar: VBannerAvatar,
12800
- VBannerContent: VBannerContent,
12801
- VBannerText: VBannerText,
12802
- VBottomNavigation: VBottomNavigation,
12803
- VBreadcrumbs: VBreadcrumbs,
12804
- VBreadcrumbsItem: VBreadcrumbsItem,
12805
- VBreadcrumbsDivider: VBreadcrumbsDivider,
12806
- VBtn: VBtn,
12807
- VBtnGroup: VBtnGroup,
12808
- VBtnToggle: VBtnToggle,
12809
- VCard: VCard,
12810
- VCardActions: VCardActions,
12811
- VCardAvatar: VCardAvatar,
12812
- VCardHeader: VCardHeader,
12813
- VCardHeaderText: VCardHeaderText,
12814
- VCardImg: VCardImg,
12815
- VCardSubtitle: VCardSubtitle,
12816
- VCardText: VCardText,
12817
- VCardTitle: VCardTitle,
12818
- VCheckbox: VCheckbox,
12819
- VChip: VChip,
12820
- VCode: VCode,
12821
- VCounter: VCounter,
12822
- VDefaultsProvider: VDefaultsProvider,
12823
- VDialog: VDialog,
12824
- VDivider: VDivider,
12825
- VExpansionPanels: VExpansionPanels,
12826
- VExpansionPanel: VExpansionPanel,
12827
- VExpansionPanelText: VExpansionPanelText,
12828
- VExpansionPanelTitle: VExpansionPanelTitle,
12829
- VField: VField,
12830
- VFieldLabel: VFieldLabel,
12831
- VFileInput: VFileInput,
12832
- VFooter: VFooter,
12833
- VForm: VForm,
12834
- VContainer: VContainer,
12835
- VCol: VCol,
12836
- VRow: VRow,
12837
- VSpacer: VSpacer,
12838
- VHover: VHover,
12839
- VIcon: VIcon,
12840
- VComponentIcon: VComponentIcon,
12841
- VSvgIcon: VSvgIcon,
12842
- VLigatureIcon: VLigatureIcon,
12843
- VClassIcon: VClassIcon,
12844
- VImg: VImg,
12845
- VInput: VInput,
12846
- VItemGroup: VItemGroup,
12847
- VItem: VItem,
12848
- VKbd: VKbd,
12849
- VLabel: VLabel,
12850
- VLayout: VLayout,
12851
- VLayoutItem: VLayoutItem,
12852
- VLazy: VLazy,
12853
- VList: VList,
12854
- VListSubheader: VListSubheader,
12855
- VListImg: VListImg,
12856
- VListItem: VListItem,
12857
- VListItemAvatar: VListItemAvatar,
12858
- VListItemHeader: VListItemHeader,
12859
- VListItemMedia: VListItemMedia,
12860
- VListItemSubtitle: VListItemSubtitle,
12861
- VListItemTitle: VListItemTitle,
12862
- VListGroup: VListGroup,
12863
- VLocaleProvider: VLocaleProvider,
12864
- VMain: VMain,
12865
- VMenu: VMenu,
12866
- VMessages: VMessages,
12867
- VNavigationDrawer: VNavigationDrawer,
12868
- VNoSsr: VNoSsr,
12869
- VOverlay: VOverlay,
12870
- VPagination: VPagination,
12871
- VParallax: VParallax,
12872
- VProgressCircular: VProgressCircular,
12873
- VProgressLinear: VProgressLinear,
12874
- VRadio: VRadio,
12875
- VRadioGroup: VRadioGroup,
12876
- VRangeSlider: VRangeSlider,
12877
- VRating: VRating,
12878
- VResponsive: VResponsive,
12879
- VSelectionControl: VSelectionControl,
12880
- VSelectionControlGroup: VSelectionControlGroup,
12881
- VSheet: VSheet,
12882
- VSlider: VSlider,
12883
- VSwitch: VSwitch,
12806
+ // Types
12807
+
12808
+ const handleGesture = wrapper => {
12809
+ const {
12810
+ touchstartX,
12811
+ touchendX,
12812
+ touchstartY,
12813
+ touchendY
12814
+ } = wrapper;
12815
+ const dirRatio = 0.5;
12816
+ const minDistance = 16;
12817
+ wrapper.offsetX = touchendX - touchstartX;
12818
+ wrapper.offsetY = touchendY - touchstartY;
12819
+
12820
+ if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {
12821
+ wrapper.left && touchendX < touchstartX - minDistance && wrapper.left(wrapper);
12822
+ wrapper.right && touchendX > touchstartX + minDistance && wrapper.right(wrapper);
12823
+ }
12824
+
12825
+ if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {
12826
+ wrapper.up && touchendY < touchstartY - minDistance && wrapper.up(wrapper);
12827
+ wrapper.down && touchendY > touchstartY + minDistance && wrapper.down(wrapper);
12828
+ }
12829
+ };
12830
+
12831
+ function touchstart(event, wrapper) {
12832
+ var _wrapper$start;
12833
+
12834
+ const touch = event.changedTouches[0];
12835
+ wrapper.touchstartX = touch.clientX;
12836
+ wrapper.touchstartY = touch.clientY;
12837
+ (_wrapper$start = wrapper.start) == null ? void 0 : _wrapper$start.call(wrapper, {
12838
+ originalEvent: event,
12839
+ ...wrapper
12840
+ });
12841
+ }
12842
+
12843
+ function touchend(event, wrapper) {
12844
+ var _wrapper$end;
12845
+
12846
+ const touch = event.changedTouches[0];
12847
+ wrapper.touchendX = touch.clientX;
12848
+ wrapper.touchendY = touch.clientY;
12849
+ (_wrapper$end = wrapper.end) == null ? void 0 : _wrapper$end.call(wrapper, {
12850
+ originalEvent: event,
12851
+ ...wrapper
12852
+ });
12853
+ handleGesture(wrapper);
12854
+ }
12855
+
12856
+ function touchmove(event, wrapper) {
12857
+ var _wrapper$move;
12858
+
12859
+ const touch = event.changedTouches[0];
12860
+ wrapper.touchmoveX = touch.clientX;
12861
+ wrapper.touchmoveY = touch.clientY;
12862
+ (_wrapper$move = wrapper.move) == null ? void 0 : _wrapper$move.call(wrapper, {
12863
+ originalEvent: event,
12864
+ ...wrapper
12865
+ });
12866
+ }
12867
+
12868
+ function createHandlers() {
12869
+ let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
12870
+ const wrapper = {
12871
+ touchstartX: 0,
12872
+ touchstartY: 0,
12873
+ touchendX: 0,
12874
+ touchendY: 0,
12875
+ touchmoveX: 0,
12876
+ touchmoveY: 0,
12877
+ offsetX: 0,
12878
+ offsetY: 0,
12879
+ left: value.left,
12880
+ right: value.right,
12881
+ up: value.up,
12882
+ down: value.down,
12883
+ start: value.start,
12884
+ move: value.move,
12885
+ end: value.end
12886
+ };
12887
+ return {
12888
+ touchstart: e => touchstart(e, wrapper),
12889
+ touchend: e => touchend(e, wrapper),
12890
+ touchmove: e => touchmove(e, wrapper)
12891
+ };
12892
+ }
12893
+
12894
+ function mounted$3(el, binding) {
12895
+ var _value$options, _binding$instance, _target$_touchHandler;
12896
+
12897
+ const value = binding.value;
12898
+ const target = value != null && value.parent ? el.parentElement : el;
12899
+ const options = (_value$options = value == null ? void 0 : value.options) != null ? _value$options : {
12900
+ passive: true
12901
+ };
12902
+ const uid = (_binding$instance = binding.instance) == null ? void 0 : _binding$instance.$.uid; // TODO: use custom uid generator
12903
+
12904
+ if (!target || !uid) return;
12905
+ const handlers = createHandlers(binding.value);
12906
+ target._touchHandlers = (_target$_touchHandler = target._touchHandlers) != null ? _target$_touchHandler : Object.create(null);
12907
+ target._touchHandlers[uid] = handlers;
12908
+ keys(handlers).forEach(eventName => {
12909
+ target.addEventListener(eventName, handlers[eventName], options);
12910
+ });
12911
+ }
12912
+
12913
+ function unmounted$3(el, binding) {
12914
+ var _binding$value, _binding$instance2;
12915
+
12916
+ const target = (_binding$value = binding.value) != null && _binding$value.parent ? el.parentElement : el;
12917
+ const uid = (_binding$instance2 = binding.instance) == null ? void 0 : _binding$instance2.$.uid;
12918
+ if (!(target != null && target._touchHandlers) || !uid) return;
12919
+ const handlers = target._touchHandlers[uid];
12920
+ keys(handlers).forEach(eventName => {
12921
+ target.removeEventListener(eventName, handlers[eventName]);
12922
+ });
12923
+ delete target._touchHandlers[uid];
12924
+ }
12925
+
12926
+ const Touch = {
12927
+ mounted: mounted$3,
12928
+ unmounted: unmounted$3
12929
+ };
12930
+
12931
+ const VWindowSymbol = Symbol.for('vuetify:v-window');
12932
+ const VWindowGroupSymbol = Symbol.for('vuetify:v-window-group');
12933
+ const VWindow = defineComponent$1({
12934
+ name: 'VWindow',
12935
+ directives: {
12936
+ Touch
12937
+ },
12938
+ props: {
12939
+ continuous: Boolean,
12940
+ nextIcon: {
12941
+ type: [Boolean, String],
12942
+ default: '$next'
12943
+ },
12944
+ prevIcon: {
12945
+ type: [Boolean, String],
12946
+ default: '$prev'
12947
+ },
12948
+ reverse: Boolean,
12949
+ showArrows: {
12950
+ type: [Boolean, String],
12951
+ validator: v => typeof v === 'boolean' || v === 'hover'
12952
+ },
12953
+ touch: {
12954
+ type: [Object, Boolean],
12955
+ default: undefined
12956
+ },
12957
+ direction: {
12958
+ type: String,
12959
+ default: 'horizontal'
12960
+ },
12961
+ modelValue: null,
12962
+ disabled: Boolean,
12963
+ selectedClass: {
12964
+ type: String,
12965
+ default: 'v-window-item--active'
12966
+ },
12967
+ // TODO: mandatory should probably not be exposed but do this for now
12968
+ mandatory: {
12969
+ default: 'force'
12970
+ },
12971
+ ...makeTagProps(),
12972
+ ...makeThemeProps()
12973
+ },
12974
+ emits: {
12975
+ 'update:modelValue': v => true
12976
+ },
12977
+
12978
+ setup(props, _ref) {
12979
+ let {
12980
+ slots
12981
+ } = _ref;
12982
+ const {
12983
+ themeClasses
12984
+ } = provideTheme(props);
12985
+ const {
12986
+ isRtl
12987
+ } = useRtl();
12988
+ const {
12989
+ t
12990
+ } = useLocale();
12991
+ const group = useGroup(props, VWindowGroupSymbol);
12992
+ const rootRef = ref();
12993
+ const isRtlReverse = computed(() => isRtl.value ? !props.reverse : props.reverse);
12994
+ const isReversed = ref(false);
12995
+ const transition = computed(() => {
12996
+ const axis = props.direction === 'vertical' ? 'y' : 'x';
12997
+ const reverse = isRtlReverse.value ? !isReversed.value : isReversed.value;
12998
+ const direction = reverse ? '-reverse' : '';
12999
+ return `v-window-${axis}${direction}-transition`;
13000
+ });
13001
+ const transitionCount = ref(0);
13002
+ const transitionHeight = ref(undefined);
13003
+ const activeIndex = computed(() => {
13004
+ return group.items.value.findIndex(item => group.selected.value.includes(item.id));
13005
+ });
13006
+ watch(activeIndex, (newVal, oldVal) => {
13007
+ const itemsLength = group.items.value.length;
13008
+ const lastIndex = itemsLength - 1;
13009
+
13010
+ if (itemsLength <= 2) {
13011
+ isReversed.value = newVal < oldVal;
13012
+ } else if (newVal === lastIndex && oldVal === 0) {
13013
+ isReversed.value = true;
13014
+ } else if (newVal === 0 && oldVal === lastIndex) {
13015
+ isReversed.value = false;
13016
+ } else {
13017
+ isReversed.value = newVal < oldVal;
13018
+ }
13019
+ });
13020
+ provide(VWindowSymbol, {
13021
+ transition,
13022
+ isReversed,
13023
+ transitionCount,
13024
+ transitionHeight,
13025
+ rootRef
13026
+ });
13027
+ const canMoveBack = computed(() => props.continuous || activeIndex.value !== 0);
13028
+ const canMoveForward = computed(() => props.continuous || activeIndex.value !== group.items.value.length - 1);
13029
+
13030
+ function prev() {
13031
+ canMoveBack.value && group.prev();
13032
+ }
13033
+
13034
+ function next() {
13035
+ canMoveForward.value && group.next();
13036
+ }
13037
+
13038
+ provideDefaults({
13039
+ VBtn: {
13040
+ variant: 'text'
13041
+ }
13042
+ }, {
13043
+ scoped: true
13044
+ });
13045
+ const arrows = computed(() => {
13046
+ const arrows = [];
13047
+ const prevProps = {
13048
+ icon: isRtl.value ? props.nextIcon : props.prevIcon,
13049
+ class: `v-window__${isRtlReverse.value ? 'right' : 'left'}`,
13050
+ onClick: group.prev,
13051
+ ariaLabel: t('$vuetify.carousel.prev')
13052
+ };
13053
+ arrows.push(canMoveBack.value ? slots.prev ? slots.prev({
13054
+ props: prevProps
13055
+ }) : createVNode(VBtn, prevProps, null, 16) : createVNode("div", null, null));
13056
+ const nextProps = {
13057
+ icon: isRtl.value ? props.prevIcon : props.nextIcon,
13058
+ class: `v-window__${isRtlReverse.value ? 'left' : 'right'}`,
13059
+ onClick: group.next,
13060
+ ariaLabel: t('$vuetify.carousel.next')
13061
+ };
13062
+ arrows.push(canMoveForward.value ? slots.next ? slots.next({
13063
+ props: nextProps
13064
+ }) : createVNode(VBtn, nextProps, null, 16) : createVNode("div", null, null));
13065
+ return arrows;
13066
+ });
13067
+ const touchOptions = computed(() => {
13068
+ if (props.touch === false) return props.touch;
13069
+ const options = {
13070
+ left: () => {
13071
+ isRtlReverse.value ? prev() : next();
13072
+ },
13073
+ right: () => {
13074
+ isRtlReverse.value ? next() : prev();
13075
+ },
13076
+ end: _ref2 => {
13077
+ let {
13078
+ originalEvent
13079
+ } = _ref2;
13080
+ originalEvent.stopPropagation();
13081
+ },
13082
+ start: _ref3 => {
13083
+ let {
13084
+ originalEvent
13085
+ } = _ref3;
13086
+ originalEvent.stopPropagation();
13087
+ }
13088
+ };
13089
+ return { ...options,
13090
+ ...(props.touch === true ? {} : props.touch)
13091
+ };
13092
+ });
13093
+ return () => {
13094
+ var _slots$default;
13095
+
13096
+ return withDirectives(createVNode(props.tag, {
13097
+ "ref": rootRef,
13098
+ "class": ['v-window', {
13099
+ 'v-window--show-arrows-on-hover': props.showArrows === 'hover'
13100
+ }, themeClasses.value]
13101
+ }, {
13102
+ default: () => [createVNode("div", {
13103
+ "class": "v-window__container",
13104
+ "style": {
13105
+ height: transitionHeight.value
13106
+ }
13107
+ }, [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots), props.showArrows !== false && createVNode("div", {
13108
+ "class": "v-window__controls"
13109
+ }, [arrows.value])], 4)]
13110
+ }, 8, ["class"]), [[resolveDirective("touch"), touchOptions.value]]);
13111
+ };
13112
+ }
13113
+
13114
+ });
13115
+
13116
+ const VWindowItem = defineComponent({
13117
+ name: 'VWindowItem',
13118
+ directives: {
13119
+ Touch
13120
+ },
13121
+ props: {
13122
+ reverseTransition: {
13123
+ type: [Boolean, String],
13124
+ default: undefined
13125
+ },
13126
+ transition: {
13127
+ type: [Boolean, String],
13128
+ default: undefined
13129
+ },
13130
+ ...makeLazyProps(),
13131
+ ...makeGroupItemProps()
13132
+ },
13133
+
13134
+ setup(props, _ref) {
13135
+ let {
13136
+ slots
13137
+ } = _ref;
13138
+ const window = inject(VWindowSymbol);
13139
+ const groupItem = useGroupItem(props, VWindowGroupSymbol);
13140
+ if (!window || !groupItem) throw new Error('[Vuetify] VWindowItem must be used inside VWindow');
13141
+ const isTransitioning = ref(false);
13142
+ const hasTransition = computed(() => window.isReversed.value ? props.reverseTransition !== false : props.transition !== false);
13143
+
13144
+ function onAfterTransition() {
13145
+ if (!isTransitioning.value || !window) {
13146
+ return;
13147
+ } // Finalize transition state.
13148
+
13149
+
13150
+ isTransitioning.value = false;
13151
+
13152
+ if (window.transitionCount.value > 0) {
13153
+ window.transitionCount.value -= 1; // Remove container height if we are out of transition.
13154
+
13155
+ if (window.transitionCount.value === 0) {
13156
+ window.transitionHeight.value = undefined;
13157
+ }
13158
+ }
13159
+ }
13160
+
13161
+ function onBeforeTransition() {
13162
+ if (isTransitioning.value || !window) {
13163
+ return;
13164
+ } // Initialize transition state here.
13165
+
13166
+
13167
+ isTransitioning.value = true;
13168
+
13169
+ if (window.transitionCount.value === 0) {
13170
+ var _window$rootRef$value;
13171
+
13172
+ // Set initial height for height transition.
13173
+ window.transitionHeight.value = convertToUnit((_window$rootRef$value = window.rootRef.value) == null ? void 0 : _window$rootRef$value.clientHeight);
13174
+ }
13175
+
13176
+ window.transitionCount.value += 1;
13177
+ }
13178
+
13179
+ function onTransitionCancelled() {
13180
+ onAfterTransition(); // This should have the same path as normal transition end.
13181
+ }
13182
+
13183
+ function onEnterTransition(el) {
13184
+ if (!isTransitioning.value) {
13185
+ return;
13186
+ }
13187
+
13188
+ nextTick(() => {
13189
+ // Do not set height if no transition or cancelled.
13190
+ if (!hasTransition.value || !isTransitioning.value || !window) {
13191
+ return;
13192
+ } // Set transition target height.
13193
+
13194
+
13195
+ window.transitionHeight.value = convertToUnit(el.clientHeight);
13196
+ });
13197
+ }
13198
+
13199
+ const transition = computed(() => {
13200
+ const name = window.isReversed.value ? props.reverseTransition : props.transition;
13201
+ return !hasTransition.value ? false : {
13202
+ name: typeof name !== 'string' ? window.transition.value : name,
13203
+ onBeforeEnter: onBeforeTransition,
13204
+ onAfterEnter: onAfterTransition,
13205
+ onEnterCancelled: onTransitionCancelled,
13206
+ onBeforeLeave: onBeforeTransition,
13207
+ onAfterLeave: onAfterTransition,
13208
+ onLeaveCancelled: onTransitionCancelled,
13209
+ onEnter: onEnterTransition
13210
+ };
13211
+ });
13212
+ const {
13213
+ hasContent
13214
+ } = useLazy(props, groupItem.isSelected);
13215
+ return () => {
13216
+ return createVNode(MaybeTransition, {
13217
+ "transition": transition.value
13218
+ }, {
13219
+ default: () => [withDirectives(createVNode("div", {
13220
+ "class": ['v-window-item', groupItem.selectedClass.value]
13221
+ }, [slots.default && hasContent.value && slots.default()], 2), [[vShow, groupItem.isSelected.value]])]
13222
+ }, 8, ["transition"]);
13223
+ };
13224
+ }
13225
+
13226
+ });
13227
+
13228
+ var components = /*#__PURE__*/Object.freeze({
13229
+ __proto__: null,
13230
+ VApp: VApp,
13231
+ VAppBar: VAppBar,
13232
+ VAppBarNavIcon: VAppBarNavIcon,
13233
+ VAppBarTitle: VAppBarTitle,
13234
+ VAlert: VAlert,
13235
+ VAvatar: VAvatar,
13236
+ VBadge: VBadge,
13237
+ VBanner: VBanner,
13238
+ VBannerActions: VBannerActions,
13239
+ VBannerAvatar: VBannerAvatar,
13240
+ VBannerContent: VBannerContent,
13241
+ VBannerText: VBannerText,
13242
+ VBottomNavigation: VBottomNavigation,
13243
+ VBreadcrumbs: VBreadcrumbs,
13244
+ VBreadcrumbsItem: VBreadcrumbsItem,
13245
+ VBreadcrumbsDivider: VBreadcrumbsDivider,
13246
+ VBtn: VBtn,
13247
+ VBtnGroup: VBtnGroup,
13248
+ VBtnToggle: VBtnToggle,
13249
+ VCard: VCard,
13250
+ VCardActions: VCardActions,
13251
+ VCardAvatar: VCardAvatar,
13252
+ VCardHeader: VCardHeader,
13253
+ VCardHeaderText: VCardHeaderText,
13254
+ VCardImg: VCardImg,
13255
+ VCardSubtitle: VCardSubtitle,
13256
+ VCardText: VCardText,
13257
+ VCardTitle: VCardTitle,
13258
+ VCheckbox: VCheckbox,
13259
+ VChip: VChip,
13260
+ VCode: VCode,
13261
+ VCounter: VCounter,
13262
+ VDefaultsProvider: VDefaultsProvider,
13263
+ VDialog: VDialog,
13264
+ VDivider: VDivider,
13265
+ VExpansionPanels: VExpansionPanels,
13266
+ VExpansionPanel: VExpansionPanel,
13267
+ VExpansionPanelText: VExpansionPanelText,
13268
+ VExpansionPanelTitle: VExpansionPanelTitle,
13269
+ VField: VField,
13270
+ VFieldLabel: VFieldLabel,
13271
+ VFileInput: VFileInput,
13272
+ VFooter: VFooter,
13273
+ VForm: VForm,
13274
+ VContainer: VContainer,
13275
+ VCol: VCol,
13276
+ VRow: VRow,
13277
+ VSpacer: VSpacer,
13278
+ VHover: VHover,
13279
+ VIcon: VIcon,
13280
+ VComponentIcon: VComponentIcon,
13281
+ VSvgIcon: VSvgIcon,
13282
+ VLigatureIcon: VLigatureIcon,
13283
+ VClassIcon: VClassIcon,
13284
+ VImg: VImg,
13285
+ VInput: VInput,
13286
+ VItemGroup: VItemGroup,
13287
+ VItem: VItem,
13288
+ VKbd: VKbd,
13289
+ VLabel: VLabel,
13290
+ VLayout: VLayout,
13291
+ VLayoutItem: VLayoutItem,
13292
+ VLazy: VLazy,
13293
+ VList: VList,
13294
+ VListSubheader: VListSubheader,
13295
+ VListImg: VListImg,
13296
+ VListItem: VListItem,
13297
+ VListItemAvatar: VListItemAvatar,
13298
+ VListItemHeader: VListItemHeader,
13299
+ VListItemMedia: VListItemMedia,
13300
+ VListItemSubtitle: VListItemSubtitle,
13301
+ VListItemTitle: VListItemTitle,
13302
+ VListGroup: VListGroup,
13303
+ VLocaleProvider: VLocaleProvider,
13304
+ VMain: VMain,
13305
+ VMenu: VMenu,
13306
+ VMessages: VMessages,
13307
+ VNavigationDrawer: VNavigationDrawer,
13308
+ VNoSsr: VNoSsr,
13309
+ VOverlay: VOverlay,
13310
+ VPagination: VPagination,
13311
+ VParallax: VParallax,
13312
+ VProgressCircular: VProgressCircular,
13313
+ VProgressLinear: VProgressLinear,
13314
+ VRadio: VRadio,
13315
+ VRadioGroup: VRadioGroup,
13316
+ VRangeSlider: VRangeSlider,
13317
+ VRating: VRating,
13318
+ VResponsive: VResponsive,
13319
+ VSelectionControl: VSelectionControl,
13320
+ VSelectionControlGroup: VSelectionControlGroup,
13321
+ VSheet: VSheet,
13322
+ VSlider: VSlider,
13323
+ VSwitch: VSwitch,
12884
13324
  VSystemBar: VSystemBar,
12885
13325
  VTable: VTable,
12886
13326
  VTextarea: VTextarea,
@@ -12890,6 +13330,8 @@ var components = /*#__PURE__*/Object.freeze({
12890
13330
  VTimelineItem: VTimelineItem,
12891
13331
  VTooltip: VTooltip,
12892
13332
  VValidation: VValidation,
13333
+ VWindow: VWindow,
13334
+ VWindowItem: VWindowItem,
12893
13335
  VDialogTransition: VDialogTransition,
12894
13336
  VCarouselTransition: VCarouselTransition,
12895
13337
  VCarouselReverseTransition: VCarouselReverseTransition,
@@ -12914,7 +13356,7 @@ var components = /*#__PURE__*/Object.freeze({
12914
13356
  });
12915
13357
 
12916
13358
  // Types
12917
- function mounted$3(el, binding) {
13359
+ function mounted$2(el, binding) {
12918
13360
  var _modifierKeys$attr, _modifierKeys$char, _modifierKeys$child, _modifierKeys$sub;
12919
13361
 
12920
13362
  const modifiers = binding.modifiers || {};
@@ -12941,7 +13383,7 @@ function mounted$3(el, binding) {
12941
13383
  let mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
12942
13384
  let observer = arguments.length > 1 ? arguments[1] : undefined;
12943
13385
  handler == null ? void 0 : handler(mutations, observer);
12944
- if (once) unmounted$3(el, binding);
13386
+ if (once) unmounted$2(el, binding);
12945
13387
  });
12946
13388
  if (immediate) handler == null ? void 0 : handler([], observer);
12947
13389
  el._mutate = Object(el._mutate);
@@ -12951,7 +13393,7 @@ function mounted$3(el, binding) {
12951
13393
  observer.observe(el, options);
12952
13394
  }
12953
13395
 
12954
- function unmounted$3(el, binding) {
13396
+ function unmounted$2(el, binding) {
12955
13397
  var _el$_mutate;
12956
13398
 
12957
13399
  if (!((_el$_mutate = el._mutate) != null && _el$_mutate[binding.instance.$.uid])) return;
@@ -12962,11 +13404,11 @@ function unmounted$3(el, binding) {
12962
13404
  }
12963
13405
 
12964
13406
  const Mutate = {
12965
- mounted: mounted$3,
12966
- unmounted: unmounted$3
13407
+ mounted: mounted$2,
13408
+ unmounted: unmounted$2
12967
13409
  };
12968
13410
 
12969
- function mounted$2(el, binding) {
13411
+ function mounted$1(el, binding) {
12970
13412
  var _binding$modifiers, _binding$modifiers2;
12971
13413
 
12972
13414
  const handler = binding.value;
@@ -12985,7 +13427,7 @@ function mounted$2(el, binding) {
12985
13427
  }
12986
13428
  }
12987
13429
 
12988
- function unmounted$2(el, binding) {
13430
+ function unmounted$1(el, binding) {
12989
13431
  var _el$_onResize;
12990
13432
 
12991
13433
  if (!((_el$_onResize = el._onResize) != null && _el$_onResize[binding.instance.$.uid])) return;
@@ -12998,11 +13440,11 @@ function unmounted$2(el, binding) {
12998
13440
  }
12999
13441
 
13000
13442
  const Resize = {
13001
- mounted: mounted$2,
13002
- unmounted: unmounted$2
13443
+ mounted: mounted$1,
13444
+ unmounted: unmounted$1
13003
13445
  };
13004
13446
 
13005
- function mounted$1(el, binding) {
13447
+ function mounted(el, binding) {
13006
13448
  var _binding$modifiers;
13007
13449
 
13008
13450
  const {
@@ -13025,7 +13467,7 @@ function mounted$1(el, binding) {
13025
13467
  };
13026
13468
  }
13027
13469
 
13028
- function unmounted$1(el, binding) {
13470
+ function unmounted(el, binding) {
13029
13471
  var _el$_onScroll;
13030
13472
 
13031
13473
  if (!((_el$_onScroll = el._onScroll) != null && _el$_onScroll[binding.instance.$.uid])) return;
@@ -13040,136 +13482,14 @@ function unmounted$1(el, binding) {
13040
13482
 
13041
13483
  function updated(el, binding) {
13042
13484
  if (binding.value === binding.oldValue) return;
13043
- unmounted$1(el, binding);
13044
- mounted$1(el, binding);
13485
+ unmounted(el, binding);
13486
+ mounted(el, binding);
13045
13487
  }
13046
13488
 
13047
13489
  const Scroll = {
13048
- mounted: mounted$1,
13049
- unmounted: unmounted$1,
13050
- updated
13051
- };
13052
-
13053
- // Types
13054
-
13055
- const handleGesture = wrapper => {
13056
- const {
13057
- touchstartX,
13058
- touchendX,
13059
- touchstartY,
13060
- touchendY
13061
- } = wrapper;
13062
- const dirRatio = 0.5;
13063
- const minDistance = 16;
13064
- wrapper.offsetX = touchendX - touchstartX;
13065
- wrapper.offsetY = touchendY - touchstartY;
13066
-
13067
- if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {
13068
- wrapper.left && touchendX < touchstartX - minDistance && wrapper.left(wrapper);
13069
- wrapper.right && touchendX > touchstartX + minDistance && wrapper.right(wrapper);
13070
- }
13071
-
13072
- if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {
13073
- wrapper.up && touchendY < touchstartY - minDistance && wrapper.up(wrapper);
13074
- wrapper.down && touchendY > touchstartY + minDistance && wrapper.down(wrapper);
13075
- }
13076
- };
13077
-
13078
- function touchstart(event, wrapper) {
13079
- var _wrapper$start;
13080
-
13081
- const touch = event.changedTouches[0];
13082
- wrapper.touchstartX = touch.clientX;
13083
- wrapper.touchstartY = touch.clientY;
13084
- (_wrapper$start = wrapper.start) == null ? void 0 : _wrapper$start.call(wrapper, { ...event,
13085
- ...wrapper
13086
- });
13087
- }
13088
-
13089
- function touchend(event, wrapper) {
13090
- var _wrapper$end;
13091
-
13092
- const touch = event.changedTouches[0];
13093
- wrapper.touchendX = touch.clientX;
13094
- wrapper.touchendY = touch.clientY;
13095
- (_wrapper$end = wrapper.end) == null ? void 0 : _wrapper$end.call(wrapper, { ...event,
13096
- ...wrapper
13097
- });
13098
- handleGesture(wrapper);
13099
- }
13100
-
13101
- function touchmove(event, wrapper) {
13102
- var _wrapper$move;
13103
-
13104
- const touch = event.changedTouches[0];
13105
- wrapper.touchmoveX = touch.clientX;
13106
- wrapper.touchmoveY = touch.clientY;
13107
- (_wrapper$move = wrapper.move) == null ? void 0 : _wrapper$move.call(wrapper, { ...event,
13108
- ...wrapper
13109
- });
13110
- }
13111
-
13112
- function createHandlers() {
13113
- let value = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
13114
- const wrapper = {
13115
- touchstartX: 0,
13116
- touchstartY: 0,
13117
- touchendX: 0,
13118
- touchendY: 0,
13119
- touchmoveX: 0,
13120
- touchmoveY: 0,
13121
- offsetX: 0,
13122
- offsetY: 0,
13123
- left: value.left,
13124
- right: value.right,
13125
- up: value.up,
13126
- down: value.down,
13127
- start: value.start,
13128
- move: value.move,
13129
- end: value.end
13130
- };
13131
- return {
13132
- touchstart: e => touchstart(e, wrapper),
13133
- touchend: e => touchend(e, wrapper),
13134
- touchmove: e => touchmove(e, wrapper)
13135
- };
13136
- }
13137
-
13138
- function mounted(el, binding) {
13139
- var _value$options, _binding$instance, _target$_touchHandler;
13140
-
13141
- const value = binding.value;
13142
- const target = value != null && value.parent ? el.parentElement : el;
13143
- const options = (_value$options = value == null ? void 0 : value.options) != null ? _value$options : {
13144
- passive: true
13145
- };
13146
- const uid = (_binding$instance = binding.instance) == null ? void 0 : _binding$instance.$.uid; // TODO: use custom uid generator
13147
-
13148
- if (!target || !uid) return;
13149
- const handlers = createHandlers(binding.value);
13150
- target._touchHandlers = (_target$_touchHandler = target._touchHandlers) != null ? _target$_touchHandler : Object.create(null);
13151
- target._touchHandlers[uid] = handlers;
13152
- keys(handlers).forEach(eventName => {
13153
- target.addEventListener(eventName, handlers[eventName], options);
13154
- });
13155
- }
13156
-
13157
- function unmounted(el, binding) {
13158
- var _binding$value, _binding$instance2;
13159
-
13160
- const target = (_binding$value = binding.value) != null && _binding$value.parent ? el.parentElement : el;
13161
- const uid = (_binding$instance2 = binding.instance) == null ? void 0 : _binding$instance2.$.uid;
13162
- if (!(target != null && target._touchHandlers) || !uid) return;
13163
- const handlers = target._touchHandlers[uid];
13164
- keys(handlers).forEach(eventName => {
13165
- target.removeEventListener(eventName, handlers[eventName]);
13166
- });
13167
- delete target._touchHandlers[uid];
13168
- }
13169
-
13170
- const Touch = {
13171
13490
  mounted,
13172
- unmounted
13491
+ unmounted,
13492
+ updated
13173
13493
  };
13174
13494
 
13175
13495
  var directives = /*#__PURE__*/Object.freeze({
@@ -13308,7 +13628,7 @@ const createVuetify = function () {
13308
13628
  ...options
13309
13629
  });
13310
13630
  };
13311
- const version = "3.0.0-next-20220107.0";
13631
+ const version = "3.0.0-next-20220126.0";
13312
13632
 
13313
13633
  export { components, createVuetify, directives, provideRtl, useDisplay, useLayout, useRtl, useTheme, version };
13314
13634
  //# sourceMappingURL=vuetify.esm.js.map