vuetify 3.4.0 → 3.4.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 (135) hide show
  1. package/dist/json/attributes.json +1860 -1856
  2. package/dist/json/importMap.json +140 -140
  3. package/dist/json/tags.json +1 -0
  4. package/dist/json/web-types.json +3641 -3631
  5. package/dist/vuetify-labs.css +1393 -1386
  6. package/dist/vuetify-labs.d.ts +1936 -9147
  7. package/dist/vuetify-labs.esm.js +91 -79
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +91 -79
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +940 -933
  12. package/dist/vuetify.d.ts +2081 -9282
  13. package/dist/vuetify.esm.js +91 -79
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +91 -79
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +67 -66
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/blueprints/index.d.mts +0 -2
  21. package/lib/blueprints/md1.d.mts +0 -2
  22. package/lib/blueprints/md2.d.mts +0 -2
  23. package/lib/blueprints/md3.d.mts +0 -2
  24. package/lib/components/VAutocomplete/VAutocomplete.mjs +3 -3
  25. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  26. package/lib/components/VAutocomplete/index.d.mts +74 -98
  27. package/lib/components/VBottomNavigation/VBottomNavigation.mjs +1 -1
  28. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  29. package/lib/components/VBottomNavigation/index.d.mts +44 -69
  30. package/lib/components/VBtn/VBtn.mjs +1 -1
  31. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  32. package/lib/components/VBtn/index.d.mts +11 -11
  33. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  34. package/lib/components/VBtnToggle/index.d.mts +45 -71
  35. package/lib/components/VCarousel/VCarousel.mjs +1 -1
  36. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  37. package/lib/components/VCarousel/index.d.mts +73 -513
  38. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  39. package/lib/components/VCheckbox/VCheckboxBtn.mjs +1 -1
  40. package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
  41. package/lib/components/VCheckbox/index.d.mts +100 -482
  42. package/lib/components/VChip/index.d.mts +15 -18
  43. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  44. package/lib/components/VChipGroup/index.d.mts +49 -189
  45. package/lib/components/VCombobox/VCombobox.mjs +3 -3
  46. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  47. package/lib/components/VCombobox/index.d.mts +74 -98
  48. package/lib/components/VDataIterator/index.d.mts +8 -6
  49. package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
  50. package/lib/components/VDataTable/VDataTableRow.mjs.map +1 -1
  51. package/lib/components/VDataTable/VDataTableRows.mjs.map +1 -1
  52. package/lib/components/VDataTable/VDataTableServer.mjs.map +1 -1
  53. package/lib/components/VDataTable/VDataTableVirtual.mjs +2 -1
  54. package/lib/components/VDataTable/VDataTableVirtual.mjs.map +1 -1
  55. package/lib/components/VDataTable/composables/items.mjs.map +1 -1
  56. package/lib/components/VDataTable/composables/paginate.mjs.map +1 -1
  57. package/lib/components/VDataTable/composables/select.mjs.map +1 -1
  58. package/lib/components/VDataTable/index.d.mts +411 -4142
  59. package/lib/components/VDataTable/types.mjs.map +1 -1
  60. package/lib/components/VDatePicker/VDatePicker.css +4 -0
  61. package/lib/components/VDatePicker/VDatePicker.mjs +29 -22
  62. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  63. package/lib/components/VDatePicker/VDatePicker.sass +4 -0
  64. package/lib/components/VDatePicker/VDatePickerMonth.mjs +3 -1
  65. package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  66. package/lib/components/VDatePicker/VDatePickerYears.mjs +1 -1
  67. package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
  68. package/lib/components/VDatePicker/index.d.mts +32 -36
  69. package/lib/components/VDialog/VDialog.css +4 -1
  70. package/lib/components/VDialog/VDialog.sass +4 -3
  71. package/lib/components/VField/VField.mjs +1 -1
  72. package/lib/components/VField/VField.mjs.map +1 -1
  73. package/lib/components/VField/index.d.mts +33 -41
  74. package/lib/components/VFileInput/index.d.mts +144 -385
  75. package/lib/components/VImg/VImg.mjs +10 -2
  76. package/lib/components/VImg/VImg.mjs.map +1 -1
  77. package/lib/components/VInput/VInput.mjs +1 -1
  78. package/lib/components/VInput/VInput.mjs.map +1 -1
  79. package/lib/components/VInput/index.d.mts +72 -154
  80. package/lib/components/VItemGroup/VItemGroup.mjs +1 -1
  81. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  82. package/lib/components/VItemGroup/index.d.mts +49 -189
  83. package/lib/components/VList/VList.mjs +2 -2
  84. package/lib/components/VList/VList.mjs.map +1 -1
  85. package/lib/components/VList/index.d.mts +58 -95
  86. package/lib/components/VOtpInput/index.d.mts +8 -11
  87. package/lib/components/VRadio/index.d.mts +1 -1
  88. package/lib/components/VRadioGroup/VRadioGroup.mjs +1 -1
  89. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  90. package/lib/components/VRadioGroup/index.d.mts +77 -211
  91. package/lib/components/VRangeSlider/index.d.mts +22 -25
  92. package/lib/components/VSelect/VSelect.mjs +2 -2
  93. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  94. package/lib/components/VSelect/index.d.mts +67 -91
  95. package/lib/components/VSelectionControl/VSelectionControl.mjs +2 -2
  96. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  97. package/lib/components/VSelectionControl/index.d.mts +9 -18
  98. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +1 -1
  99. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  100. package/lib/components/VSelectionControlGroup/index.d.mts +46 -68
  101. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  102. package/lib/components/VSlideGroup/index.d.mts +47 -101
  103. package/lib/components/VSlider/index.d.mts +22 -25
  104. package/lib/components/VSwitch/VSwitch.mjs +7 -5
  105. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  106. package/lib/components/VSwitch/index.d.mts +90 -303
  107. package/lib/components/VTextField/index.d.mts +173 -451
  108. package/lib/components/VTextarea/index.d.mts +144 -385
  109. package/lib/components/VValidation/VValidation.mjs +2 -2
  110. package/lib/components/VValidation/VValidation.mjs.map +1 -1
  111. package/lib/components/VValidation/index.d.mts +88 -359
  112. package/lib/components/VWindow/VWindow.mjs +1 -1
  113. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  114. package/lib/components/VWindow/index.d.mts +58 -245
  115. package/lib/components/index.d.mts +1933 -9130
  116. package/lib/composables/date/DateAdapter.mjs.map +1 -1
  117. package/lib/composables/date/adapters/vuetify.mjs +1 -13
  118. package/lib/composables/date/adapters/vuetify.mjs.map +1 -1
  119. package/lib/composables/date/date.mjs +1 -1
  120. package/lib/composables/date/date.mjs.map +1 -1
  121. package/lib/composables/form.mjs.map +1 -1
  122. package/lib/composables/group.mjs.map +1 -1
  123. package/lib/composables/nested/nested.mjs.map +1 -1
  124. package/lib/composables/proxiedModel.mjs.map +1 -1
  125. package/lib/composables/validation.mjs.map +1 -1
  126. package/lib/composables/virtual.mjs +11 -13
  127. package/lib/composables/virtual.mjs.map +1 -1
  128. package/lib/entry-bundler.mjs +1 -1
  129. package/lib/framework.mjs +1 -1
  130. package/lib/index.d.mts +40 -44
  131. package/lib/labs/VConfirmEdit/index.d.mts +0 -10
  132. package/lib/labs/components.d.mts +0 -10
  133. package/lib/util/defineComponent.mjs.map +1 -1
  134. package/lib/util/helpers.mjs.map +1 -1
  135. package/package.json +2 -2
@@ -7,8 +7,8 @@ import { makeVResponsiveProps, VResponsive } from "../VResponsive/VResponsive.mj
7
7
  import { makeComponentProps } from "../../composables/component.mjs";
8
8
  import { makeTransitionProps, MaybeTransition } from "../../composables/transition.mjs"; // Directives
9
9
  import intersect from "../../directives/intersect/index.mjs"; // Utilities
10
- import { computed, nextTick, onBeforeMount, ref, shallowRef, vShow, watch, withDirectives } from 'vue';
11
- import { convertToUnit, genericComponent, propsFactory, SUPPORTS_INTERSECTION, useRender } from "../../util/index.mjs"; // Types
10
+ import { computed, nextTick, onBeforeMount, onBeforeUnmount, ref, shallowRef, vShow, watch, withDirectives } from 'vue';
11
+ import { convertToUnit, genericComponent, getCurrentInstance, propsFactory, SUPPORTS_INTERSECTION, useRender } from "../../util/index.mjs"; // Types
12
12
  export const makeVImgProps = propsFactory({
13
13
  alt: String,
14
14
  cover: Boolean,
@@ -58,6 +58,7 @@ export const VImg = genericComponent()({
58
58
  emit,
59
59
  slots
60
60
  } = _ref;
61
+ const vm = getCurrentInstance('VImg');
61
62
  const currentSrc = shallowRef(''); // Set from srcset
62
63
  const image = ref();
63
64
  const state = shallowRef(props.eager ? 'loading' : 'idle');
@@ -104,6 +105,7 @@ export const VImg = genericComponent()({
104
105
  nextTick(() => {
105
106
  emit('loadstart', image.value?.currentSrc || normalisedSrc.value.src);
106
107
  setTimeout(() => {
108
+ if (vm.isUnmounted) return;
107
109
  if (image.value?.complete) {
108
110
  if (!image.value.naturalWidth) {
109
111
  onError();
@@ -119,12 +121,14 @@ export const VImg = genericComponent()({
119
121
  });
120
122
  }
121
123
  function onLoad() {
124
+ if (vm.isUnmounted) return;
122
125
  getSrc();
123
126
  pollForSize(image.value);
124
127
  state.value = 'loaded';
125
128
  emit('load', image.value?.currentSrc || normalisedSrc.value.src);
126
129
  }
127
130
  function onError() {
131
+ if (vm.isUnmounted) return;
128
132
  state.value = 'error';
129
133
  emit('error', image.value?.currentSrc || normalisedSrc.value.src);
130
134
  }
@@ -133,10 +137,14 @@ export const VImg = genericComponent()({
133
137
  if (img) currentSrc.value = img.currentSrc || img.src;
134
138
  }
135
139
  let timer = -1;
140
+ onBeforeUnmount(() => {
141
+ clearTimeout(timer);
142
+ });
136
143
  function pollForSize(img) {
137
144
  let timeout = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;
138
145
  const poll = () => {
139
146
  clearTimeout(timer);
147
+ if (vm.isUnmounted) return;
140
148
  const {
141
149
  naturalHeight: imgHeight,
142
150
  naturalWidth: imgWidth
@@ -1 +1 @@
1
- {"version":3,"file":"VImg.mjs","names":["makeVResponsiveProps","VResponsive","makeComponentProps","makeTransitionProps","MaybeTransition","intersect","computed","nextTick","onBeforeMount","ref","shallowRef","vShow","watch","withDirectives","convertToUnit","genericComponent","propsFactory","SUPPORTS_INTERSECTION","useRender","makeVImgProps","alt","String","cover","Boolean","draggable","type","default","undefined","eager","gradient","lazySrc","options","Object","root","rootMargin","threshold","sizes","src","crossorigin","referrerpolicy","srcset","position","VImg","name","directives","props","emits","loadstart","value","load","error","setup","_ref","emit","slots","currentSrc","image","state","naturalWidth","naturalHeight","normalisedSrc","aspect","Number","aspectRatio","init","val","oldVal","pollForSize","isIntersecting","lazyImg","Image","setTimeout","complete","onError","onLoad","getSrc","img","timer","timeout","arguments","length","poll","clearTimeout","imgHeight","imgWidth","window","endsWith","startsWith","containClasses","__image","_createVNode","objectPosition","sources","transition","__preloadImage","__placeholder","placeholder","__error","__gradient","backgroundImage","isBooted","stop","requestAnimationFrame","responsiveProps","filterProps","_withDirectives","_mergeProps","class","width","style","additional","_Fragment","_resolveDirective","handler","once"],"sources":["../../../src/components/VImg/VImg.tsx"],"sourcesContent":["// Styles\nimport './VImg.sass'\n\n// Components\nimport { makeVResponsiveProps, VResponsive } from '@/components/VResponsive/VResponsive'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport intersect from '@/directives/intersect'\n\n// Utilities\nimport {\n computed,\n nextTick,\n onBeforeMount,\n ref,\n shallowRef,\n vShow,\n watch,\n withDirectives,\n} from 'vue'\nimport {\n convertToUnit,\n genericComponent,\n propsFactory,\n SUPPORTS_INTERSECTION,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src?: string\n srcset?: string\n lazySrc?: string\n aspect: number\n}\n\nexport type VImgSlots = {\n default: never\n placeholder: never\n error: never\n sources: never\n}\n\nexport const makeVImgProps = propsFactory({\n alt: String,\n cover: Boolean,\n draggable: {\n type: [Boolean, String] as PropType<boolean | 'true' | 'false'>,\n default: undefined,\n },\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object as PropType<IntersectionObserverInit>,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n },\n sizes: String,\n src: {\n type: [String, Object] as PropType<string | srcObject>,\n default: '',\n },\n crossorigin: String as PropType<'' | 'anonymous' | 'use-credentials'>,\n referrerpolicy: String as PropType<\n | 'no-referrer'\n | 'no-referrer-when-downgrade'\n | 'origin'\n | 'origin-when-cross-origin'\n | 'same-origin'\n | 'strict-origin'\n | 'strict-origin-when-cross-origin'\n | 'unsafe-url'\n >,\n srcset: String,\n position: String,\n\n ...makeVResponsiveProps(),\n ...makeComponentProps(),\n ...makeTransitionProps(),\n}, 'VImg')\n\nexport const VImg = genericComponent<VImgSlots>()({\n name: 'VImg',\n\n directives: { intersect },\n\n props: makeVImgProps(),\n\n emits: {\n loadstart: (value: string | undefined) => true,\n load: (value: string | undefined) => true,\n error: (value: string | undefined) => true,\n },\n\n setup (props, { emit, slots }) {\n const currentSrc = shallowRef('') // Set from srcset\n const image = ref<HTMLImageElement>()\n const state = shallowRef<'idle' | 'loading' | 'loaded' | 'error'>(props.eager ? 'loading' : 'idle')\n const naturalWidth = shallowRef<number>()\n const naturalHeight = shallowRef<number>()\n\n const normalisedSrc = computed<srcObject>(() => {\n return props.src && typeof props.src === 'object'\n ? {\n src: props.src.src,\n srcset: props.srcset || props.src.srcset,\n lazySrc: props.lazySrc || props.src.lazySrc,\n aspect: Number(props.aspectRatio || props.src.aspect || 0),\n } : {\n src: props.src,\n srcset: props.srcset,\n lazySrc: props.lazySrc,\n aspect: Number(props.aspectRatio || 0),\n }\n })\n const aspectRatio = computed(() => {\n return normalisedSrc.value.aspect || naturalWidth.value! / naturalHeight.value! || 0\n })\n\n watch(() => props.src, () => {\n init(state.value !== 'idle')\n })\n watch(aspectRatio, (val, oldVal) => {\n if (!val && oldVal && image.value) {\n pollForSize(image.value)\n }\n })\n\n // TODO: getSrc when window width changes\n\n onBeforeMount(() => init())\n\n function init (isIntersecting?: boolean) {\n if (props.eager && isIntersecting) return\n if (\n SUPPORTS_INTERSECTION &&\n !isIntersecting &&\n !props.eager\n ) return\n\n state.value = 'loading'\n\n if (normalisedSrc.value.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = normalisedSrc.value.lazySrc\n pollForSize(lazyImg, null)\n }\n\n if (!normalisedSrc.value.src) return\n\n nextTick(() => {\n emit('loadstart', image.value?.currentSrc || normalisedSrc.value.src)\n\n setTimeout(() => {\n if (image.value?.complete) {\n if (!image.value.naturalWidth) {\n onError()\n }\n\n if (state.value === 'error') return\n\n if (!aspectRatio.value) pollForSize(image.value, null)\n if (state.value === 'loading') onLoad()\n } else {\n if (!aspectRatio.value) pollForSize(image.value!)\n getSrc()\n }\n })\n })\n }\n\n function onLoad () {\n getSrc()\n pollForSize(image.value!)\n state.value = 'loaded'\n emit('load', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function onError () {\n state.value = 'error'\n emit('error', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function getSrc () {\n const img = image.value\n if (img) currentSrc.value = img.currentSrc || img.src\n }\n\n let timer = -1\n function pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n clearTimeout(timer)\n const { naturalHeight: imgHeight, naturalWidth: imgWidth } = img\n\n if (imgHeight || imgWidth) {\n naturalWidth.value = imgWidth\n naturalHeight.value = imgHeight\n } else if (!img.complete && state.value === 'loading' && timeout != null) {\n timer = window.setTimeout(poll, timeout)\n } else if (img.currentSrc.endsWith('.svg') || img.currentSrc.startsWith('data:image/svg+xml')) {\n naturalWidth.value = 1\n naturalHeight.value = 1\n }\n }\n\n poll()\n }\n\n const containClasses = computed(() => ({\n 'v-img__img--cover': props.cover,\n 'v-img__img--contain': !props.cover,\n }))\n\n const __image = () => {\n if (!normalisedSrc.value.src || state.value === 'idle') return null\n\n const img = (\n <img\n class={['v-img__img', containClasses.value]}\n style={{ objectPosition: props.position }}\n src={ normalisedSrc.value.src }\n srcset={ normalisedSrc.value.srcset }\n alt={ props.alt }\n crossorigin={ props.crossorigin }\n referrerpolicy={ props.referrerpolicy }\n draggable={ props.draggable }\n sizes={ props.sizes }\n ref={ image }\n onLoad={ onLoad }\n onError={ onError }\n />\n )\n\n const sources = slots.sources?.()\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n {\n withDirectives(\n sources\n ? <picture class=\"v-img__picture\">{ sources }{ img }</picture>\n : img,\n [[vShow, state.value === 'loaded']]\n )\n }\n </MaybeTransition>\n )\n }\n\n const __preloadImage = () => (\n <MaybeTransition transition={ props.transition }>\n { normalisedSrc.value.lazySrc && state.value !== 'loaded' && (\n <img\n class={['v-img__img', 'v-img__img--preload', containClasses.value]}\n style={{ objectPosition: props.position }}\n src={ normalisedSrc.value.lazySrc }\n alt={ props.alt }\n crossorigin={ props.crossorigin }\n referrerpolicy={ props.referrerpolicy }\n draggable={ props.draggable }\n />\n )}\n </MaybeTransition>\n )\n\n const __placeholder = () => {\n if (!slots.placeholder) return null\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { (state.value === 'loading' || (state.value === 'error' && !slots.error)) &&\n <div class=\"v-img__placeholder\">{ slots.placeholder() }</div>\n }\n </MaybeTransition>\n )\n }\n\n const __error = () => {\n if (!slots.error) return null\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { state.value === 'error' &&\n <div class=\"v-img__error\">{ slots.error() }</div>\n }\n </MaybeTransition>\n )\n }\n\n const __gradient = () => {\n if (!props.gradient) return null\n\n return <div class=\"v-img__gradient\" style={{ backgroundImage: `linear-gradient(${props.gradient})` }} />\n }\n\n const isBooted = shallowRef(false)\n {\n const stop = watch(aspectRatio, val => {\n if (val) {\n // Doesn't work with nextTick, idk why\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n isBooted.value = true\n })\n })\n stop()\n }\n })\n }\n\n useRender(() => {\n const responsiveProps = VResponsive.filterProps(props)\n return (\n <VResponsive\n class={[\n 'v-img',\n { 'v-img--booting': !isBooted.value },\n props.class,\n ]}\n style={[\n { width: convertToUnit(props.width === 'auto' ? naturalWidth.value : props.width) },\n props.style,\n ]}\n { ...responsiveProps }\n aspectRatio={ aspectRatio.value }\n aria-label={ props.alt }\n role={ props.alt ? 'img' : undefined }\n v-intersect={[{\n handler: init,\n options: props.options,\n }, null, ['once']]}\n >{{\n additional: () => (\n <>\n <__image />\n <__preloadImage />\n <__gradient />\n <__placeholder />\n <__error />\n </>\n ),\n default: slots.default,\n }}</VResponsive>\n )\n })\n\n return {\n currentSrc,\n image,\n state,\n naturalWidth,\n naturalHeight,\n }\n },\n})\n\nexport type VImg = InstanceType<typeof VImg>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VImg.mjs","names":["makeVResponsiveProps","VResponsive","makeComponentProps","makeTransitionProps","MaybeTransition","intersect","computed","nextTick","onBeforeMount","onBeforeUnmount","ref","shallowRef","vShow","watch","withDirectives","convertToUnit","genericComponent","getCurrentInstance","propsFactory","SUPPORTS_INTERSECTION","useRender","makeVImgProps","alt","String","cover","Boolean","draggable","type","default","undefined","eager","gradient","lazySrc","options","Object","root","rootMargin","threshold","sizes","src","crossorigin","referrerpolicy","srcset","position","VImg","name","directives","props","emits","loadstart","value","load","error","setup","_ref","emit","slots","vm","currentSrc","image","state","naturalWidth","naturalHeight","normalisedSrc","aspect","Number","aspectRatio","init","val","oldVal","pollForSize","isIntersecting","lazyImg","Image","setTimeout","isUnmounted","complete","onError","onLoad","getSrc","img","timer","clearTimeout","timeout","arguments","length","poll","imgHeight","imgWidth","window","endsWith","startsWith","containClasses","__image","_createVNode","objectPosition","sources","transition","__preloadImage","__placeholder","placeholder","__error","__gradient","backgroundImage","isBooted","stop","requestAnimationFrame","responsiveProps","filterProps","_withDirectives","_mergeProps","class","width","style","additional","_Fragment","_resolveDirective","handler","once"],"sources":["../../../src/components/VImg/VImg.tsx"],"sourcesContent":["// Styles\nimport './VImg.sass'\n\n// Components\nimport { makeVResponsiveProps, VResponsive } from '@/components/VResponsive/VResponsive'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport intersect from '@/directives/intersect'\n\n// Utilities\nimport {\n computed,\n nextTick,\n onBeforeMount,\n onBeforeUnmount,\n ref,\n shallowRef,\n vShow,\n watch,\n withDirectives,\n} from 'vue'\nimport {\n convertToUnit,\n genericComponent,\n getCurrentInstance,\n propsFactory,\n SUPPORTS_INTERSECTION,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src?: string\n srcset?: string\n lazySrc?: string\n aspect: number\n}\n\nexport type VImgSlots = {\n default: never\n placeholder: never\n error: never\n sources: never\n}\n\nexport const makeVImgProps = propsFactory({\n alt: String,\n cover: Boolean,\n draggable: {\n type: [Boolean, String] as PropType<boolean | 'true' | 'false'>,\n default: undefined,\n },\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object as PropType<IntersectionObserverInit>,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n },\n sizes: String,\n src: {\n type: [String, Object] as PropType<string | srcObject>,\n default: '',\n },\n crossorigin: String as PropType<'' | 'anonymous' | 'use-credentials'>,\n referrerpolicy: String as PropType<\n | 'no-referrer'\n | 'no-referrer-when-downgrade'\n | 'origin'\n | 'origin-when-cross-origin'\n | 'same-origin'\n | 'strict-origin'\n | 'strict-origin-when-cross-origin'\n | 'unsafe-url'\n >,\n srcset: String,\n position: String,\n\n ...makeVResponsiveProps(),\n ...makeComponentProps(),\n ...makeTransitionProps(),\n}, 'VImg')\n\nexport const VImg = genericComponent<VImgSlots>()({\n name: 'VImg',\n\n directives: { intersect },\n\n props: makeVImgProps(),\n\n emits: {\n loadstart: (value: string | undefined) => true,\n load: (value: string | undefined) => true,\n error: (value: string | undefined) => true,\n },\n\n setup (props, { emit, slots }) {\n const vm = getCurrentInstance('VImg')\n\n const currentSrc = shallowRef('') // Set from srcset\n const image = ref<HTMLImageElement>()\n const state = shallowRef<'idle' | 'loading' | 'loaded' | 'error'>(props.eager ? 'loading' : 'idle')\n const naturalWidth = shallowRef<number>()\n const naturalHeight = shallowRef<number>()\n\n const normalisedSrc = computed<srcObject>(() => {\n return props.src && typeof props.src === 'object'\n ? {\n src: props.src.src,\n srcset: props.srcset || props.src.srcset,\n lazySrc: props.lazySrc || props.src.lazySrc,\n aspect: Number(props.aspectRatio || props.src.aspect || 0),\n } : {\n src: props.src,\n srcset: props.srcset,\n lazySrc: props.lazySrc,\n aspect: Number(props.aspectRatio || 0),\n }\n })\n const aspectRatio = computed(() => {\n return normalisedSrc.value.aspect || naturalWidth.value! / naturalHeight.value! || 0\n })\n\n watch(() => props.src, () => {\n init(state.value !== 'idle')\n })\n watch(aspectRatio, (val, oldVal) => {\n if (!val && oldVal && image.value) {\n pollForSize(image.value)\n }\n })\n\n // TODO: getSrc when window width changes\n\n onBeforeMount(() => init())\n\n function init (isIntersecting?: boolean) {\n if (props.eager && isIntersecting) return\n if (\n SUPPORTS_INTERSECTION &&\n !isIntersecting &&\n !props.eager\n ) return\n\n state.value = 'loading'\n\n if (normalisedSrc.value.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = normalisedSrc.value.lazySrc\n pollForSize(lazyImg, null)\n }\n\n if (!normalisedSrc.value.src) return\n\n nextTick(() => {\n emit('loadstart', image.value?.currentSrc || normalisedSrc.value.src)\n\n setTimeout(() => {\n if (vm.isUnmounted) return\n\n if (image.value?.complete) {\n if (!image.value.naturalWidth) {\n onError()\n }\n\n if (state.value === 'error') return\n\n if (!aspectRatio.value) pollForSize(image.value, null)\n if (state.value === 'loading') onLoad()\n } else {\n if (!aspectRatio.value) pollForSize(image.value!)\n getSrc()\n }\n })\n })\n }\n\n function onLoad () {\n if (vm.isUnmounted) return\n\n getSrc()\n pollForSize(image.value!)\n state.value = 'loaded'\n emit('load', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function onError () {\n if (vm.isUnmounted) return\n\n state.value = 'error'\n emit('error', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function getSrc () {\n const img = image.value\n if (img) currentSrc.value = img.currentSrc || img.src\n }\n\n let timer = -1\n\n onBeforeUnmount(() => {\n clearTimeout(timer)\n })\n\n function pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n clearTimeout(timer)\n if (vm.isUnmounted) return\n\n const { naturalHeight: imgHeight, naturalWidth: imgWidth } = img\n\n if (imgHeight || imgWidth) {\n naturalWidth.value = imgWidth\n naturalHeight.value = imgHeight\n } else if (!img.complete && state.value === 'loading' && timeout != null) {\n timer = window.setTimeout(poll, timeout)\n } else if (img.currentSrc.endsWith('.svg') || img.currentSrc.startsWith('data:image/svg+xml')) {\n naturalWidth.value = 1\n naturalHeight.value = 1\n }\n }\n\n poll()\n }\n\n const containClasses = computed(() => ({\n 'v-img__img--cover': props.cover,\n 'v-img__img--contain': !props.cover,\n }))\n\n const __image = () => {\n if (!normalisedSrc.value.src || state.value === 'idle') return null\n\n const img = (\n <img\n class={['v-img__img', containClasses.value]}\n style={{ objectPosition: props.position }}\n src={ normalisedSrc.value.src }\n srcset={ normalisedSrc.value.srcset }\n alt={ props.alt }\n crossorigin={ props.crossorigin }\n referrerpolicy={ props.referrerpolicy }\n draggable={ props.draggable }\n sizes={ props.sizes }\n ref={ image }\n onLoad={ onLoad }\n onError={ onError }\n />\n )\n\n const sources = slots.sources?.()\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n {\n withDirectives(\n sources\n ? <picture class=\"v-img__picture\">{ sources }{ img }</picture>\n : img,\n [[vShow, state.value === 'loaded']]\n )\n }\n </MaybeTransition>\n )\n }\n\n const __preloadImage = () => (\n <MaybeTransition transition={ props.transition }>\n { normalisedSrc.value.lazySrc && state.value !== 'loaded' && (\n <img\n class={['v-img__img', 'v-img__img--preload', containClasses.value]}\n style={{ objectPosition: props.position }}\n src={ normalisedSrc.value.lazySrc }\n alt={ props.alt }\n crossorigin={ props.crossorigin }\n referrerpolicy={ props.referrerpolicy }\n draggable={ props.draggable }\n />\n )}\n </MaybeTransition>\n )\n\n const __placeholder = () => {\n if (!slots.placeholder) return null\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { (state.value === 'loading' || (state.value === 'error' && !slots.error)) &&\n <div class=\"v-img__placeholder\">{ slots.placeholder() }</div>\n }\n </MaybeTransition>\n )\n }\n\n const __error = () => {\n if (!slots.error) return null\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { state.value === 'error' &&\n <div class=\"v-img__error\">{ slots.error() }</div>\n }\n </MaybeTransition>\n )\n }\n\n const __gradient = () => {\n if (!props.gradient) return null\n\n return <div class=\"v-img__gradient\" style={{ backgroundImage: `linear-gradient(${props.gradient})` }} />\n }\n\n const isBooted = shallowRef(false)\n {\n const stop = watch(aspectRatio, val => {\n if (val) {\n // Doesn't work with nextTick, idk why\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n isBooted.value = true\n })\n })\n stop()\n }\n })\n }\n\n useRender(() => {\n const responsiveProps = VResponsive.filterProps(props)\n return (\n <VResponsive\n class={[\n 'v-img',\n { 'v-img--booting': !isBooted.value },\n props.class,\n ]}\n style={[\n { width: convertToUnit(props.width === 'auto' ? naturalWidth.value : props.width) },\n props.style,\n ]}\n { ...responsiveProps }\n aspectRatio={ aspectRatio.value }\n aria-label={ props.alt }\n role={ props.alt ? 'img' : undefined }\n v-intersect={[{\n handler: init,\n options: props.options,\n }, null, ['once']]}\n >{{\n additional: () => (\n <>\n <__image />\n <__preloadImage />\n <__gradient />\n <__placeholder />\n <__error />\n </>\n ),\n default: slots.default,\n }}</VResponsive>\n )\n })\n\n return {\n currentSrc,\n image,\n state,\n naturalWidth,\n naturalHeight,\n }\n },\n})\n\nexport type VImg = InstanceType<typeof VImg>\n"],"mappings":"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"}
@@ -45,7 +45,7 @@ export const VInput = genericComponent()({
45
45
  ...makeVInputProps()
46
46
  },
47
47
  emits: {
48
- 'update:modelValue': val => true
48
+ 'update:modelValue': value => true
49
49
  },
50
50
  setup(props, _ref) {
51
51
  let {
@@ -1 +1 @@
1
- {"version":3,"file":"VInput.mjs","names":["useInputIcon","VMessages","makeComponentProps","makeDensityProps","useDensity","IconValue","useRtl","makeValidationProps","useValidation","computed","EventProp","genericComponent","getUid","propsFactory","useRender","makeVInputProps","id","String","appendIcon","centerAffix","type","Boolean","default","prependIcon","hideDetails","hideSpinButtons","hint","persistentHint","messages","Array","direction","validator","v","includes","VInput","name","props","emits","val","setup","_ref","attrs","slots","emit","densityClasses","rtlClasses","InputIcon","uid","messagesId","value","errorMessages","isDirty","isDisabled","isReadonly","isPristine","isValid","isValidating","reset","resetValidation","validate","validationClasses","slotProps","length","focused","hasPrepend","prepend","hasAppend","append","hasMessages","hasDetails","details","_createVNode","class","style","message"],"sources":["../../../src/components/VInput/VInput.tsx"],"sourcesContent":["// Styles\nimport './VInput.sass'\n\n// Components\nimport { useInputIcon } from '@/components/VInput/InputIcon'\nimport { VMessages } from '@/components/VMessages/VMessages'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\nimport { useRtl } from '@/composables/locale'\nimport { makeValidationProps, useValidation } from '@/composables/validation'\n\n// Utilities\nimport { computed } from 'vue'\nimport { EventProp, genericComponent, getUid, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type { VMessageSlot } from '@/components/VMessages/VMessages'\n\nexport interface VInputSlot {\n id: ComputedRef<string>\n messagesId: ComputedRef<string>\n isDirty: ComputedRef<boolean>\n isDisabled: ComputedRef<boolean>\n isReadonly: ComputedRef<boolean>\n isPristine: Ref<boolean>\n isValid: ComputedRef<boolean | null>\n isValidating: Ref<boolean>\n reset: () => void\n resetValidation: () => void\n validate: () => void\n}\n\nexport const makeVInputProps = propsFactory({\n id: String,\n appendIcon: IconValue,\n centerAffix: {\n type: Boolean,\n default: true,\n },\n prependIcon: IconValue,\n hideDetails: [Boolean, String] as PropType<boolean | 'auto'>,\n hideSpinButtons: Boolean,\n hint: String,\n persistentHint: Boolean,\n messages: {\n type: [Array, String] as PropType<string | readonly string[]>,\n default: () => ([]),\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['horizontal', 'vertical'].includes(v),\n },\n\n 'onClick:prepend': EventProp<[MouseEvent]>(),\n 'onClick:append': EventProp<[MouseEvent]>(),\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeValidationProps(),\n}, 'VInput')\n\nexport type VInputSlots = {\n default: VInputSlot\n prepend: VInputSlot\n append: VInputSlot\n details: VInputSlot\n message: VMessageSlot\n}\n\nexport const VInput = genericComponent<VInputSlots>()({\n name: 'VInput',\n\n props: {\n ...makeVInputProps(),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const { densityClasses } = useDensity(props)\n const { rtlClasses } = useRtl()\n const { InputIcon } = useInputIcon(props)\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n const messagesId = computed(() => `${id.value}-messages`)\n\n const {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n } = useValidation(props, 'v-input', id)\n\n const slotProps = computed<VInputSlot>(() => ({\n id,\n messagesId,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n }))\n\n const messages = computed(() => {\n if (props.errorMessages?.length || (!isPristine.value && errorMessages.value.length)) {\n return errorMessages.value\n } else if (props.hint && (props.persistentHint || props.focused)) {\n return props.hint\n } else {\n return props.messages\n }\n })\n\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.prependIcon)\n const hasAppend = !!(slots.append || props.appendIcon)\n const hasMessages = messages.value.length > 0\n const hasDetails = !props.hideDetails || (\n props.hideDetails === 'auto' &&\n (hasMessages || !!slots.details)\n )\n\n return (\n <div\n class={[\n 'v-input',\n `v-input--${props.direction}`,\n {\n 'v-input--center-affix': props.centerAffix,\n 'v-input--hide-spin-buttons': props.hideSpinButtons,\n },\n densityClasses.value,\n rtlClasses.value,\n validationClasses.value,\n props.class,\n ]}\n style={ props.style }\n >\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-input__prepend\">\n { slots.prepend?.(slotProps.value) }\n\n { props.prependIcon && (\n <InputIcon\n key=\"prepend-icon\"\n name=\"prepend\"\n />\n )}\n </div>\n )}\n\n { slots.default && (\n <div class=\"v-input__control\">\n { slots.default?.(slotProps.value) }\n </div>\n )}\n\n { hasAppend && (\n <div key=\"append\" class=\"v-input__append\">\n { props.appendIcon && (\n <InputIcon\n key=\"append-icon\"\n name=\"append\"\n />\n )}\n\n { slots.append?.(slotProps.value) }\n </div>\n )}\n\n { hasDetails && (\n <div class=\"v-input__details\">\n <VMessages\n id={ messagesId.value }\n active={ hasMessages }\n messages={ messages.value }\n v-slots={{ message: slots.message }}\n />\n\n { slots.details?.(slotProps.value) }\n </div>\n )}\n </div>\n )\n })\n\n return {\n reset,\n resetValidation,\n validate,\n isValid,\n errorMessages,\n }\n },\n})\n\nexport type VInput = InstanceType<typeof VInput>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VInput.mjs","names":["useInputIcon","VMessages","makeComponentProps","makeDensityProps","useDensity","IconValue","useRtl","makeValidationProps","useValidation","computed","EventProp","genericComponent","getUid","propsFactory","useRender","makeVInputProps","id","String","appendIcon","centerAffix","type","Boolean","default","prependIcon","hideDetails","hideSpinButtons","hint","persistentHint","messages","Array","direction","validator","v","includes","VInput","name","props","emits","value","setup","_ref","attrs","slots","emit","densityClasses","rtlClasses","InputIcon","uid","messagesId","errorMessages","isDirty","isDisabled","isReadonly","isPristine","isValid","isValidating","reset","resetValidation","validate","validationClasses","slotProps","length","focused","hasPrepend","prepend","hasAppend","append","hasMessages","hasDetails","details","_createVNode","class","style","message"],"sources":["../../../src/components/VInput/VInput.tsx"],"sourcesContent":["// Styles\nimport './VInput.sass'\n\n// Components\nimport { useInputIcon } from '@/components/VInput/InputIcon'\nimport { VMessages } from '@/components/VMessages/VMessages'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { IconValue } from '@/composables/icons'\nimport { useRtl } from '@/composables/locale'\nimport { makeValidationProps, useValidation } from '@/composables/validation'\n\n// Utilities\nimport { computed } from 'vue'\nimport { EventProp, genericComponent, getUid, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, PropType, Ref } from 'vue'\nimport type { VMessageSlot } from '@/components/VMessages/VMessages'\nimport type { GenericProps } from '@/util'\n\nexport interface VInputSlot {\n id: ComputedRef<string>\n messagesId: ComputedRef<string>\n isDirty: ComputedRef<boolean>\n isDisabled: ComputedRef<boolean>\n isReadonly: ComputedRef<boolean>\n isPristine: Ref<boolean>\n isValid: ComputedRef<boolean | null>\n isValidating: Ref<boolean>\n reset: () => void\n resetValidation: () => void\n validate: () => void\n}\n\nexport const makeVInputProps = propsFactory({\n id: String,\n appendIcon: IconValue,\n centerAffix: {\n type: Boolean,\n default: true,\n },\n prependIcon: IconValue,\n hideDetails: [Boolean, String] as PropType<boolean | 'auto'>,\n hideSpinButtons: Boolean,\n hint: String,\n persistentHint: Boolean,\n messages: {\n type: [Array, String] as PropType<string | readonly string[]>,\n default: () => ([]),\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['horizontal', 'vertical'].includes(v),\n },\n\n 'onClick:prepend': EventProp<[MouseEvent]>(),\n 'onClick:append': EventProp<[MouseEvent]>(),\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeValidationProps(),\n}, 'VInput')\n\nexport type VInputSlots = {\n default: VInputSlot\n prepend: VInputSlot\n append: VInputSlot\n details: VInputSlot\n message: VMessageSlot\n}\n\nexport const VInput = genericComponent<new <T>(\n props: {\n modelValue?: T | null\n 'onUpdate:modelValue'?: (value: T | null) => void\n },\n slots: VInputSlots,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VInput',\n\n props: {\n ...makeVInputProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const { densityClasses } = useDensity(props)\n const { rtlClasses } = useRtl()\n const { InputIcon } = useInputIcon(props)\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n const messagesId = computed(() => `${id.value}-messages`)\n\n const {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n } = useValidation(props, 'v-input', id)\n\n const slotProps = computed<VInputSlot>(() => ({\n id,\n messagesId,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n }))\n\n const messages = computed(() => {\n if (props.errorMessages?.length || (!isPristine.value && errorMessages.value.length)) {\n return errorMessages.value\n } else if (props.hint && (props.persistentHint || props.focused)) {\n return props.hint\n } else {\n return props.messages\n }\n })\n\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.prependIcon)\n const hasAppend = !!(slots.append || props.appendIcon)\n const hasMessages = messages.value.length > 0\n const hasDetails = !props.hideDetails || (\n props.hideDetails === 'auto' &&\n (hasMessages || !!slots.details)\n )\n\n return (\n <div\n class={[\n 'v-input',\n `v-input--${props.direction}`,\n {\n 'v-input--center-affix': props.centerAffix,\n 'v-input--hide-spin-buttons': props.hideSpinButtons,\n },\n densityClasses.value,\n rtlClasses.value,\n validationClasses.value,\n props.class,\n ]}\n style={ props.style }\n >\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-input__prepend\">\n { slots.prepend?.(slotProps.value) }\n\n { props.prependIcon && (\n <InputIcon\n key=\"prepend-icon\"\n name=\"prepend\"\n />\n )}\n </div>\n )}\n\n { slots.default && (\n <div class=\"v-input__control\">\n { slots.default?.(slotProps.value) }\n </div>\n )}\n\n { hasAppend && (\n <div key=\"append\" class=\"v-input__append\">\n { props.appendIcon && (\n <InputIcon\n key=\"append-icon\"\n name=\"append\"\n />\n )}\n\n { slots.append?.(slotProps.value) }\n </div>\n )}\n\n { hasDetails && (\n <div class=\"v-input__details\">\n <VMessages\n id={ messagesId.value }\n active={ hasMessages }\n messages={ messages.value }\n v-slots={{ message: slots.message }}\n />\n\n { slots.details?.(slotProps.value) }\n </div>\n )}\n </div>\n )\n })\n\n return {\n reset,\n resetValidation,\n validate,\n isValid,\n errorMessages,\n }\n },\n})\n\nexport type VInput = InstanceType<typeof VInput>\n"],"mappings":"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"}
@@ -1,13 +1,35 @@
1
1
  import * as vue from 'vue';
2
- import { ComponentPropsOptions, ExtractPropTypes, PropType, JSXComponent, ComputedRef, Ref } from 'vue';
2
+ import { ComponentPropsOptions, ExtractPropTypes, VNodeChild, VNode, JSXComponent, PropType, ComputedRef, Ref } from 'vue';
3
3
 
4
+ type SlotsToProps<U extends RawSlots, T = MakeInternalSlots<U>> = {
5
+ $children?: (VNodeChild | (T extends {
6
+ default: infer V;
7
+ } ? V : {}) | {
8
+ [K in keyof T]?: T[K];
9
+ });
10
+ 'v-slots'?: {
11
+ [K in keyof T]?: T[K] | false;
12
+ };
13
+ } & {
14
+ [K in keyof T as `v-slot:${K & string}`]?: T[K] | false;
15
+ };
16
+ type RawSlots = Record<string, unknown>;
17
+ type Slot<T> = [T] extends [never] ? () => VNodeChild : (arg: T) => VNodeChild;
18
+ type VueSlot<T> = [T] extends [never] ? () => VNode[] : (arg: T) => VNode[];
19
+ type MakeInternalSlots<T extends RawSlots> = {
20
+ [K in keyof T]: Slot<T[K]>;
21
+ };
22
+ type MakeSlots<T extends RawSlots> = {
23
+ [K in keyof T]: VueSlot<T[K]>;
24
+ };
25
+ type GenericProps<Props, Slots extends Record<string, unknown>> = {
26
+ $props: Props & SlotsToProps<Slots>;
27
+ $slots: MakeSlots<Slots>;
28
+ };
4
29
  interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
5
30
  filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
6
31
  }
7
32
 
8
- type EventProp<T extends any[] = any[], F = (...args: T) => any> = F | F[];
9
- declare const EventProp: <T extends any[] = any[]>() => PropType<EventProp<T, (...args: T) => any>>;
10
-
11
33
  type Density = null | 'default' | 'comfortable' | 'compact';
12
34
 
13
35
  type ValidationResult = string | boolean;
@@ -33,6 +55,13 @@ interface VInputSlot {
33
55
  resetValidation: () => void;
34
56
  validate: () => void;
35
57
  }
58
+ type VInputSlots = {
59
+ default: VInputSlot;
60
+ prepend: VInputSlot;
61
+ append: VInputSlot;
62
+ details: VInputSlot;
63
+ message: VMessageSlot;
64
+ };
36
65
  declare const VInput: {
37
66
  new (...args: any[]): {
38
67
  $: vue.ComponentInternalInstance;
@@ -71,36 +100,15 @@ declare const VInput: {
71
100
  name?: string | undefined;
72
101
  label?: string | undefined;
73
102
  class?: any;
74
- modelValue?: any;
75
103
  prependIcon?: IconValue | undefined;
76
104
  appendIcon?: IconValue | undefined;
77
- 'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
78
- 'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
79
- 'onUpdate:focused'?: EventProp<[boolean], (args_0: boolean) => any> | undefined;
105
+ 'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
106
+ 'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined;
107
+ 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
80
108
  validateOn?: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined;
81
109
  validationValue?: any;
82
110
  hint?: string | undefined;
83
111
  hideDetails?: boolean | "auto" | undefined;
84
- $children?: vue.VNodeChild | {
85
- default?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
86
- prepend?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
87
- append?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
88
- details?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
89
- message?: ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
90
- } | ((arg: VInputSlot) => vue.VNodeChild);
91
- 'v-slots'?: {
92
- default?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
93
- prepend?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
94
- append?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
95
- details?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
96
- message?: false | ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
97
- } | undefined;
98
- "v-slot:default"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
99
- "v-slot:prepend"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
100
- "v-slot:append"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
101
- "v-slot:details"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
102
- "v-slot:message"?: false | ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
103
- "onUpdate:modelValue"?: ((val: any) => any) | undefined;
104
112
  } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
105
113
  error: boolean;
106
114
  direction: "horizontal" | "vertical";
@@ -121,40 +129,16 @@ declare const VInput: {
121
129
  name?: string | undefined;
122
130
  label?: string | undefined;
123
131
  class?: any;
124
- modelValue?: any;
125
132
  prependIcon?: IconValue | undefined;
126
133
  appendIcon?: IconValue | undefined;
127
- 'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
128
- 'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
129
- 'onUpdate:focused'?: EventProp<[boolean], (args_0: boolean) => any> | undefined;
134
+ 'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
135
+ 'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined;
136
+ 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
130
137
  validateOn?: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined;
131
138
  validationValue?: any;
132
139
  hint?: string | undefined;
133
140
  hideDetails?: boolean | "auto" | undefined;
134
- } & {
135
- $children?: vue.VNodeChild | {
136
- default?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
137
- prepend?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
138
- append?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
139
- details?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
140
- message?: ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
141
- } | ((arg: VInputSlot) => vue.VNodeChild);
142
- 'v-slots'?: {
143
- default?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
144
- prepend?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
145
- append?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
146
- details?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
147
- message?: false | ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
148
- } | undefined;
149
- } & {
150
- "v-slot:default"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
151
- "v-slot:prepend"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
152
- "v-slot:append"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
153
- "v-slot:details"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
154
- "v-slot:message"?: false | ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
155
- } & {
156
- "onUpdate:modelValue"?: ((val: any) => any) | undefined;
157
- }, "error" | "direction" | "style" | "disabled" | "readonly" | "messages" | "density" | "focused" | "errorMessages" | "maxErrors" | "rules" | "centerAffix" | "hideSpinButtons" | "persistentHint">;
141
+ } & {}, "error" | "direction" | "style" | "disabled" | "readonly" | "messages" | "density" | "focused" | "errorMessages" | "maxErrors" | "rules" | "centerAffix" | "hideSpinButtons" | "persistentHint">;
158
142
  $attrs: {
159
143
  [x: string]: unknown;
160
144
  };
@@ -180,7 +164,7 @@ declare const VInput: {
180
164
  }>;
181
165
  $root: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null;
182
166
  $parent: vue.ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, vue.ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}>, {}, {}> | null;
183
- $emit: (event: "update:modelValue", val: any) => void;
167
+ $emit: (event: string, ...args: any[]) => void;
184
168
  $el: any;
185
169
  $options: vue.ComponentOptionsBase<{
186
170
  error: boolean;
@@ -202,48 +186,24 @@ declare const VInput: {
202
186
  name?: string | undefined;
203
187
  label?: string | undefined;
204
188
  class?: any;
205
- modelValue?: any;
206
189
  prependIcon?: IconValue | undefined;
207
190
  appendIcon?: IconValue | undefined;
208
- 'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
209
- 'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
210
- 'onUpdate:focused'?: EventProp<[boolean], (args_0: boolean) => any> | undefined;
191
+ 'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
192
+ 'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined;
193
+ 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
211
194
  validateOn?: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined;
212
195
  validationValue?: any;
213
196
  hint?: string | undefined;
214
197
  hideDetails?: boolean | "auto" | undefined;
215
- } & {
216
- $children?: vue.VNodeChild | {
217
- default?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
218
- prepend?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
219
- append?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
220
- details?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
221
- message?: ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
222
- } | ((arg: VInputSlot) => vue.VNodeChild);
223
- 'v-slots'?: {
224
- default?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
225
- prepend?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
226
- append?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
227
- details?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
228
- message?: false | ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
229
- } | undefined;
230
- } & {
231
- "v-slot:default"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
232
- "v-slot:prepend"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
233
- "v-slot:append"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
234
- "v-slot:details"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
235
- "v-slot:message"?: false | ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
236
- } & {
237
- "onUpdate:modelValue"?: ((val: any) => any) | undefined;
238
- }, {
198
+ } & {}, {
239
199
  reset: () => void;
240
200
  resetValidation: () => void;
241
201
  validate: (silent?: boolean) => Promise<string[]>;
242
202
  isValid: ComputedRef<boolean | null>;
243
203
  errorMessages: ComputedRef<string[]>;
244
- }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
245
- 'update:modelValue': (val: any) => true;
246
- }, string, {
204
+ }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
205
+ 'update:modelValue': (value: any) => true;
206
+ }, "$children" | "v-slot:default" | "v-slots" | "v-slot:append" | "v-slot:prepend" | "modelValue" | "update:modelValue" | "v-slot:message" | "v-slot:details">, string, {
247
207
  error: boolean;
248
208
  direction: "horizontal" | "vertical";
249
209
  style: vue.StyleValue;
@@ -314,40 +274,16 @@ declare const VInput: {
314
274
  name?: string | undefined;
315
275
  label?: string | undefined;
316
276
  class?: any;
317
- modelValue?: any;
318
277
  prependIcon?: IconValue | undefined;
319
278
  appendIcon?: IconValue | undefined;
320
- 'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
321
- 'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
322
- 'onUpdate:focused'?: EventProp<[boolean], (args_0: boolean) => any> | undefined;
279
+ 'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
280
+ 'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined;
281
+ 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
323
282
  validateOn?: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined;
324
283
  validationValue?: any;
325
284
  hint?: string | undefined;
326
285
  hideDetails?: boolean | "auto" | undefined;
327
- } & {
328
- $children?: vue.VNodeChild | {
329
- default?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
330
- prepend?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
331
- append?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
332
- details?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
333
- message?: ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
334
- } | ((arg: VInputSlot) => vue.VNodeChild);
335
- 'v-slots'?: {
336
- default?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
337
- prepend?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
338
- append?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
339
- details?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
340
- message?: false | ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
341
- } | undefined;
342
- } & {
343
- "v-slot:default"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
344
- "v-slot:prepend"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
345
- "v-slot:append"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
346
- "v-slot:details"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
347
- "v-slot:message"?: false | ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
348
- } & {
349
- "onUpdate:modelValue"?: ((val: any) => any) | undefined;
350
- } & vue.ShallowUnwrapRef<{
286
+ } & {} & vue.ShallowUnwrapRef<{
351
287
  reset: () => void;
352
288
  resetValidation: () => void;
353
289
  validate: (silent?: boolean) => Promise<string[]>;
@@ -377,48 +313,24 @@ declare const VInput: {
377
313
  name?: string | undefined;
378
314
  label?: string | undefined;
379
315
  class?: any;
380
- modelValue?: any;
381
316
  prependIcon?: IconValue | undefined;
382
317
  appendIcon?: IconValue | undefined;
383
- 'onClick:append'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
384
- 'onClick:prepend'?: EventProp<[MouseEvent], (args_0: MouseEvent) => any> | undefined;
385
- 'onUpdate:focused'?: EventProp<[boolean], (args_0: boolean) => any> | undefined;
318
+ 'onClick:append'?: ((args_0: MouseEvent) => void) | undefined;
319
+ 'onClick:prepend'?: ((args_0: MouseEvent) => void) | undefined;
320
+ 'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
386
321
  validateOn?: "lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined;
387
322
  validationValue?: any;
388
323
  hint?: string | undefined;
389
324
  hideDetails?: boolean | "auto" | undefined;
390
- } & {
391
- $children?: vue.VNodeChild | {
392
- default?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
393
- prepend?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
394
- append?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
395
- details?: ((arg: VInputSlot) => vue.VNodeChild) | undefined;
396
- message?: ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
397
- } | ((arg: VInputSlot) => vue.VNodeChild);
398
- 'v-slots'?: {
399
- default?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
400
- prepend?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
401
- append?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
402
- details?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
403
- message?: false | ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
404
- } | undefined;
405
- } & {
406
- "v-slot:default"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
407
- "v-slot:prepend"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
408
- "v-slot:append"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
409
- "v-slot:details"?: false | ((arg: VInputSlot) => vue.VNodeChild) | undefined;
410
- "v-slot:message"?: false | ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
411
- } & {
412
- "onUpdate:modelValue"?: ((val: any) => any) | undefined;
413
- }, {
325
+ } & {}, {
414
326
  reset: () => void;
415
327
  resetValidation: () => void;
416
328
  validate: (silent?: boolean) => Promise<string[]>;
417
329
  isValid: ComputedRef<boolean | null>;
418
330
  errorMessages: ComputedRef<string[]>;
419
- }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
420
- 'update:modelValue': (val: any) => true;
421
- }, string, {
331
+ }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Omit<{
332
+ 'update:modelValue': (value: any) => true;
333
+ }, "$children" | "v-slot:default" | "v-slots" | "v-slot:append" | "v-slot:prepend" | "modelValue" | "update:modelValue" | "v-slot:message" | "v-slot:details">, string, {
422
334
  error: boolean;
423
335
  direction: "horizontal" | "vertical";
424
336
  style: vue.StyleValue;
@@ -449,9 +361,15 @@ declare const VInput: {
449
361
  message: (arg: VMessageSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
450
362
  [key: string]: any;
451
363
  }>[];
452
- }>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
364
+ }>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & (new <T_1>(props: {
365
+ modelValue?: T_1 | null | undefined;
366
+ 'onUpdate:modelValue'?: ((value: T_1 | null) => void) | undefined;
367
+ }, slots: VInputSlots) => GenericProps<{
368
+ modelValue?: T_1 | null | undefined;
369
+ 'onUpdate:modelValue'?: ((value: T_1 | null) => void) | undefined;
370
+ }, VInputSlots>) & FilterPropsOptions<{
453
371
  focused: BooleanConstructor;
454
- 'onUpdate:focused': PropType<EventProp<[boolean], (args_0: boolean) => any>>;
372
+ 'onUpdate:focused': PropType<(args_0: boolean) => void>;
455
373
  disabled: {
456
374
  type: PropType<boolean | null>;
457
375
  default: null;
@@ -508,11 +426,11 @@ declare const VInput: {
508
426
  default: string;
509
427
  validator: (v: any) => boolean;
510
428
  };
511
- 'onClick:prepend': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
512
- 'onClick:append': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
429
+ 'onClick:prepend': PropType<(args_0: MouseEvent) => void>;
430
+ 'onClick:append': PropType<(args_0: MouseEvent) => void>;
513
431
  }, vue.ExtractPropTypes<{
514
432
  focused: BooleanConstructor;
515
- 'onUpdate:focused': PropType<EventProp<[boolean], (args_0: boolean) => any>>;
433
+ 'onUpdate:focused': PropType<(args_0: boolean) => void>;
516
434
  disabled: {
517
435
  type: PropType<boolean | null>;
518
436
  default: null;
@@ -569,8 +487,8 @@ declare const VInput: {
569
487
  default: string;
570
488
  validator: (v: any) => boolean;
571
489
  };
572
- 'onClick:prepend': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
573
- 'onClick:append': PropType<EventProp<[MouseEvent], (args_0: MouseEvent) => any>>;
490
+ 'onClick:prepend': PropType<(args_0: MouseEvent) => void>;
491
+ 'onClick:append': PropType<(args_0: MouseEvent) => void>;
574
492
  }>>;
575
493
  type VInput = InstanceType<typeof VInput>;
576
494
 
@@ -7,7 +7,7 @@ import { makeComponentProps } from "../../composables/component.mjs";
7
7
  import { makeGroupProps, useGroup } from "../../composables/group.mjs";
8
8
  import { makeTagProps } from "../../composables/tag.mjs";
9
9
  import { makeThemeProps, provideTheme } from "../../composables/theme.mjs"; // Utilities
10
- import { genericComponent, propsFactory } from "../../util/index.mjs";
10
+ import { genericComponent, propsFactory } from "../../util/index.mjs"; // Types
11
11
  export const VItemGroupSymbol = Symbol.for('vuetify:v-item-group');
12
12
  export const makeVItemGroupProps = propsFactory({
13
13
  ...makeComponentProps(),
@@ -1 +1 @@
1
- {"version":3,"file":"VItemGroup.mjs","names":["makeComponentProps","makeGroupProps","useGroup","makeTagProps","makeThemeProps","provideTheme","genericComponent","propsFactory","VItemGroupSymbol","Symbol","for","makeVItemGroupProps","selectedClass","VItemGroup","name","props","emits","value","setup","_ref","slots","themeClasses","isSelected","select","next","prev","selected","_createVNode","tag","class","style","default"],"sources":["../../../src/components/VItemGroup/VItemGroup.tsx"],"sourcesContent":["// Styles\nimport './VItemGroup.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { genericComponent, propsFactory } from '@/util'\n\nexport const VItemGroupSymbol = Symbol.for('vuetify:v-item-group')\n\nexport const makeVItemGroupProps = propsFactory({\n ...makeComponentProps(),\n ...makeGroupProps({\n selectedClass: 'v-item--selected',\n }),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VItemGroup')\n\ntype VItemGroupSlots = {\n default: {\n isSelected: (id: number) => boolean\n select: (id: number, value: boolean) => void\n next: () => void\n prev: () => void\n selected: readonly number[]\n }\n}\n\nexport const VItemGroup = genericComponent<VItemGroupSlots>()({\n name: 'VItemGroup',\n\n props: makeVItemGroupProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isSelected, select, next, prev, selected } = useGroup(props, VItemGroupSymbol)\n\n return () => (\n <props.tag\n class={[\n 'v-item-group',\n themeClasses.value,\n props.class,\n ]}\n style={ props.style }\n >\n { slots.default?.({\n isSelected,\n select,\n next,\n prev,\n selected: selected.value,\n })}\n </props.tag>\n )\n },\n})\n\nexport type VItemGroup = InstanceType<typeof VItemGroup>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,cAAc,EAAEC,QAAQ;AAAA,SACxBC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY,uCAErC;AAAA,SACSC,gBAAgB,EAAEC,YAAY;AAEvC,OAAO,MAAMC,gBAAgB,GAAGC,MAAM,CAACC,GAAG,CAAC,sBAAsB,CAAC;AAElE,OAAO,MAAMC,mBAAmB,GAAGJ,YAAY,CAAC;EAC9C,GAAGP,kBAAkB,EAAE;EACvB,GAAGC,cAAc,CAAC;IAChBW,aAAa,EAAE;EACjB,CAAC,CAAC;EACF,GAAGT,YAAY,EAAE;EACjB,GAAGC,cAAc;AACnB,CAAC,EAAE,YAAY,CAAC;AAYhB,OAAO,MAAMS,UAAU,GAAGP,gBAAgB,EAAmB,CAAC;EAC5DQ,IAAI,EAAE,YAAY;EAElBC,KAAK,EAAEJ,mBAAmB,EAAE;EAE5BK,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAU,IAAK;EACvC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAEE;IAAa,CAAC,GAAGhB,YAAY,CAACU,KAAK,CAAC;IAC5C,MAAM;MAAEO,UAAU;MAAEC,MAAM;MAAEC,IAAI;MAAEC,IAAI;MAAEC;IAAS,CAAC,GAAGxB,QAAQ,CAACa,KAAK,EAAEP,gBAAgB,CAAC;IAEtF,OAAO,MAAAmB,YAAA,CAAAZ,KAAA,CAAAa,GAAA;MAAA,SAEI,CACL,cAAc,EACdP,YAAY,CAACJ,KAAK,EAClBF,KAAK,CAACc,KAAK,CACZ;MAAA,SACOd,KAAK,CAACe;IAAK;MAAAC,OAAA,EAAAA,CAAA,MAEjBX,KAAK,CAACW,OAAO,GAAG;QAChBT,UAAU;QACVC,MAAM;QACNC,IAAI;QACJC,IAAI;QACJC,QAAQ,EAAEA,QAAQ,CAACT;MACrB,CAAC,CAAC;IAAA,EAEL;EACH;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"VItemGroup.mjs","names":["makeComponentProps","makeGroupProps","useGroup","makeTagProps","makeThemeProps","provideTheme","genericComponent","propsFactory","VItemGroupSymbol","Symbol","for","makeVItemGroupProps","selectedClass","VItemGroup","name","props","emits","value","setup","_ref","slots","themeClasses","isSelected","select","next","prev","selected","_createVNode","tag","class","style","default"],"sources":["../../../src/components/VItemGroup/VItemGroup.tsx"],"sourcesContent":["// Styles\nimport './VItemGroup.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { genericComponent, propsFactory } from '@/util'\n\n// Types\nimport type { GenericProps } from '@/util'\n\nexport const VItemGroupSymbol = Symbol.for('vuetify:v-item-group')\n\nexport const makeVItemGroupProps = propsFactory({\n ...makeComponentProps(),\n ...makeGroupProps({\n selectedClass: 'v-item--selected',\n }),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'VItemGroup')\n\ntype VItemGroupSlots = {\n default: {\n isSelected: (id: number) => boolean\n select: (id: number, value: boolean) => void\n next: () => void\n prev: () => void\n selected: readonly number[]\n }\n}\n\nexport const VItemGroup = genericComponent<new <T>(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (value: T) => void\n },\n slots: VItemGroupSlots,\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VItemGroup',\n\n props: makeVItemGroupProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isSelected, select, next, prev, selected } = useGroup(props, VItemGroupSymbol)\n\n return () => (\n <props.tag\n class={[\n 'v-item-group',\n themeClasses.value,\n props.class,\n ]}\n style={ props.style }\n >\n { slots.default?.({\n isSelected,\n select,\n next,\n prev,\n selected: selected.value,\n })}\n </props.tag>\n )\n },\n})\n\nexport type VItemGroup = InstanceType<typeof VItemGroup>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,cAAc,EAAEC,QAAQ;AAAA,SACxBC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY,uCAErC;AAAA,SACSC,gBAAgB,EAAEC,YAAY,gCAEvC;AAGA,OAAO,MAAMC,gBAAgB,GAAGC,MAAM,CAACC,GAAG,CAAC,sBAAsB,CAAC;AAElE,OAAO,MAAMC,mBAAmB,GAAGJ,YAAY,CAAC;EAC9C,GAAGP,kBAAkB,EAAE;EACvB,GAAGC,cAAc,CAAC;IAChBW,aAAa,EAAE;EACjB,CAAC,CAAC;EACF,GAAGT,YAAY,EAAE;EACjB,GAAGC,cAAc;AACnB,CAAC,EAAE,YAAY,CAAC;AAYhB,OAAO,MAAMS,UAAU,GAAGP,gBAAgB,EAMM,CAAC;EAC/CQ,IAAI,EAAE,YAAY;EAElBC,KAAK,EAAEJ,mBAAmB,EAAE;EAE5BK,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAU,IAAK;EACvC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAEE;IAAa,CAAC,GAAGhB,YAAY,CAACU,KAAK,CAAC;IAC5C,MAAM;MAAEO,UAAU;MAAEC,MAAM;MAAEC,IAAI;MAAEC,IAAI;MAAEC;IAAS,CAAC,GAAGxB,QAAQ,CAACa,KAAK,EAAEP,gBAAgB,CAAC;IAEtF,OAAO,MAAAmB,YAAA,CAAAZ,KAAA,CAAAa,GAAA;MAAA,SAEI,CACL,cAAc,EACdP,YAAY,CAACJ,KAAK,EAClBF,KAAK,CAACc,KAAK,CACZ;MAAA,SACOd,KAAK,CAACe;IAAK;MAAAC,OAAA,EAAAA,CAAA,MAEjBX,KAAK,CAACW,OAAO,GAAG;QAChBT,UAAU;QACVC,MAAM;QACNC,IAAI;QACJC,IAAI;QACJC,QAAQ,EAAEA,QAAQ,CAACT;MACrB,CAAC,CAAC;IAAA,EAEL;EACH;AACF,CAAC,CAAC"}