vuetify 3.3.12 → 3.4.0-alpha.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.
- package/dist/json/attributes.json +152 -16
- package/dist/json/importMap.json +4 -4
- package/dist/json/tags.json +34 -0
- package/dist/json/web-types.json +462 -48
- package/dist/vuetify-labs.css +1718 -606
- package/dist/vuetify-labs.d.ts +880 -276
- package/dist/vuetify-labs.esm.js +373 -189
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +372 -188
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +1591 -479
- package/dist/vuetify.d.ts +865 -267
- package/dist/vuetify.esm.js +373 -189
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +372 -188
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +920 -905
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/index.d.mts +6 -6
- package/lib/components/VAutocomplete/VAutocomplete.mjs +6 -2
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +62 -14
- package/lib/components/VAvatar/VAvatar.mjs +2 -1
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VAvatar/index.d.mts +6 -0
- package/lib/components/VBanner/VBanner.mjs +5 -3
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/index.d.mts +10 -0
- package/lib/components/VBottomNavigation/VBottomNavigation.css +1 -0
- package/lib/components/VBottomNavigation/VBottomNavigation.sass +1 -0
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +9 -4
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/index.d.mts +28 -2
- package/lib/components/VBtn/VBtn.css +3 -0
- package/lib/components/VBtn/VBtn.sass +3 -0
- package/lib/components/VCarousel/index.d.mts +26 -0
- package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckboxBtn.mjs +14 -11
- package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -1
- package/lib/components/VCheckbox/index.d.mts +15 -1
- package/lib/components/VColorPicker/VColorPickerEdit.css +4 -2
- package/lib/components/VColorPicker/VColorPickerPreview.css +16 -6
- package/lib/components/VColorPicker/VColorPickerPreview.mjs +28 -2
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.sass +4 -0
- package/lib/components/VColorPicker/_variables.scss +1 -0
- package/lib/components/VCombobox/VCombobox.mjs +6 -2
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.mts +62 -14
- package/lib/components/VDialog/index.d.mts +41 -20
- package/lib/components/VField/VField.css +11 -6
- package/lib/components/VField/VField.mjs +5 -3
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +1 -0
- package/lib/components/VField/index.d.mts +4 -4
- package/lib/components/VFileInput/VFileInput.css +4 -0
- package/lib/components/VFileInput/VFileInput.sass +5 -1
- package/lib/components/VFileInput/_variables.scss +2 -1
- package/lib/components/VFileInput/index.d.mts +4 -4
- package/lib/components/VGrid/VGrid.css +153 -142
- package/lib/components/VImg/VImg.mjs +13 -1
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/index.d.mts +26 -0
- package/lib/components/VList/VList.css +1 -1
- package/lib/components/VList/VList.sass +1 -1
- package/lib/components/VList/VListItem.css +15 -10
- package/lib/components/VList/VListItem.mjs +6 -3
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +17 -10
- package/lib/components/VList/index.d.mts +12 -12
- package/lib/components/VMenu/VMenu.mjs +4 -3
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.mts +46 -25
- package/lib/components/VNavigationDrawer/VNavigationDrawer.css +0 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +5 -3
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +0 -1
- package/lib/components/VNavigationDrawer/_variables.scss +0 -1
- package/lib/components/VNavigationDrawer/index.d.mts +10 -0
- package/lib/components/VOverlay/VOverlay.mjs +9 -4
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/index.d.mts +17 -8
- package/lib/components/VOverlay/locationStrategies.mjs +9 -9
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/scrollStrategies.mjs +3 -3
- package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +50 -21
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.css +3 -2
- package/lib/components/VRadio/index.d.mts +9 -1
- package/lib/components/VRadioGroup/VRadioGroup.css +6 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -2
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.sass +5 -0
- package/lib/components/VRadioGroup/_variables.scss +3 -1
- package/lib/components/VRadioGroup/index.d.mts +3 -1
- package/lib/components/VRangeSlider/VRangeSlider.mjs +4 -2
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.d.mts +128 -33
- package/lib/components/VSelect/VSelect.mjs +14 -2
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.mts +62 -14
- package/lib/components/VSelectionControl/VSelectionControl.mjs +27 -21
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.mts +33 -25
- package/lib/components/VSlideGroup/VSlideGroup.mjs +5 -3
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.mts +10 -0
- package/lib/components/VSlider/VSlider.mjs +2 -1
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/VSliderThumb.css +8 -4
- package/lib/components/VSlider/VSliderTrack.css +22 -12
- package/lib/components/VSlider/index.d.mts +128 -33
- package/lib/components/VSlider/slider.mjs +5 -1
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSnackbar/index.d.mts +41 -20
- package/lib/components/VSwitch/VSwitch.css +24 -17
- package/lib/components/VSwitch/VSwitch.mjs +37 -28
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.sass +20 -11
- package/lib/components/VSwitch/_variables.scss +18 -6
- package/lib/components/VSwitch/index.d.mts +9 -1
- package/lib/components/VTabs/index.d.mts +10 -0
- package/lib/components/VTextField/VTextField.css +9 -2
- package/lib/components/VTextField/VTextField.mjs +6 -3
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.sass +10 -3
- package/lib/components/VTextField/index.d.mts +22 -16
- package/lib/components/VTextarea/VTextarea.mjs +1 -2
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/index.d.mts +4 -4
- package/lib/components/VTimeline/VTimeline.css +21 -11
- package/lib/components/VTimeline/VTimeline.sass +6 -1
- package/lib/components/VToolbar/VToolbar.css +4 -2
- package/lib/components/VTooltip/index.d.mts +41 -20
- package/lib/components/index.d.mts +836 -265
- package/lib/components/transitions/dialog-transition.mjs +4 -3
- package/lib/components/transitions/dialog-transition.mjs.map +1 -1
- package/lib/components/transitions/index.d.mts +6 -6
- package/lib/composables/defaults.mjs +9 -9
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/directiveComponent.mjs +69 -0
- package/lib/composables/directiveComponent.mjs.map +1 -0
- package/lib/composables/display.mjs +23 -3
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/theme.mjs +7 -7
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/entry-bundler.mjs.map +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/framework.mjs.map +1 -1
- package/lib/iconsets/fa.mjs +2 -1
- package/lib/iconsets/fa.mjs.map +1 -1
- package/lib/iconsets/fa4.mjs +2 -1
- package/lib/iconsets/fa4.mjs.map +1 -1
- package/lib/iconsets/md.mjs +2 -1
- package/lib/iconsets/md.mjs.map +1 -1
- package/lib/iconsets/mdi-svg.mjs +2 -1
- package/lib/iconsets/mdi-svg.mjs.map +1 -1
- package/lib/iconsets/mdi.mjs +2 -1
- package/lib/iconsets/mdi.mjs.map +1 -1
- package/lib/index.d.mts +33 -2
- package/lib/labs/VBottomSheet/index.d.mts +14 -8
- package/lib/labs/VDateInput/index.d.mts +10 -4
- package/lib/labs/VDatePicker/VDatePickerControls.css +1 -1
- package/lib/labs/VOtpInput/index.d.mts +4 -4
- package/lib/labs/components.d.mts +18 -12
- package/lib/locale/af.mjs +1 -0
- package/lib/locale/af.mjs.map +1 -1
- package/lib/locale/ar.mjs +1 -0
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/az.mjs +1 -0
- package/lib/locale/az.mjs.map +1 -1
- package/lib/locale/bg.mjs +1 -0
- package/lib/locale/bg.mjs.map +1 -1
- package/lib/locale/ca.mjs +1 -0
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/locale/ckb.mjs +1 -0
- package/lib/locale/ckb.mjs.map +1 -1
- package/lib/locale/cs.mjs +1 -0
- package/lib/locale/cs.mjs.map +1 -1
- package/lib/locale/da.mjs +1 -0
- package/lib/locale/da.mjs.map +1 -1
- package/lib/locale/de.mjs +1 -0
- package/lib/locale/de.mjs.map +1 -1
- package/lib/locale/el.mjs +1 -0
- package/lib/locale/el.mjs.map +1 -1
- package/lib/locale/en.mjs +1 -0
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs +1 -0
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/et.mjs +1 -0
- package/lib/locale/et.mjs.map +1 -1
- package/lib/locale/fa.mjs +1 -0
- package/lib/locale/fa.mjs.map +1 -1
- package/lib/locale/fi.mjs +1 -0
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/fr.mjs +1 -0
- package/lib/locale/fr.mjs.map +1 -1
- package/lib/locale/he.mjs +1 -0
- package/lib/locale/he.mjs.map +1 -1
- package/lib/locale/hr.mjs +1 -0
- package/lib/locale/hr.mjs.map +1 -1
- package/lib/locale/hu.mjs +1 -0
- package/lib/locale/hu.mjs.map +1 -1
- package/lib/locale/id.mjs +1 -0
- package/lib/locale/id.mjs.map +1 -1
- package/lib/locale/index.d.mts +42 -0
- package/lib/locale/it.mjs +1 -0
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/ja.mjs +1 -0
- package/lib/locale/ja.mjs.map +1 -1
- package/lib/locale/ko.mjs +1 -0
- package/lib/locale/ko.mjs.map +1 -1
- package/lib/locale/lt.mjs +1 -0
- package/lib/locale/lt.mjs.map +1 -1
- package/lib/locale/lv.mjs +1 -0
- package/lib/locale/lv.mjs.map +1 -1
- package/lib/locale/nl.mjs +1 -0
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/locale/no.mjs +1 -0
- package/lib/locale/no.mjs.map +1 -1
- package/lib/locale/pl.mjs +1 -0
- package/lib/locale/pl.mjs.map +1 -1
- package/lib/locale/pt.mjs +1 -0
- package/lib/locale/pt.mjs.map +1 -1
- package/lib/locale/ro.mjs +1 -0
- package/lib/locale/ro.mjs.map +1 -1
- package/lib/locale/ru.mjs +1 -0
- package/lib/locale/ru.mjs.map +1 -1
- package/lib/locale/sk.mjs +1 -0
- package/lib/locale/sk.mjs.map +1 -1
- package/lib/locale/sl.mjs +1 -0
- package/lib/locale/sl.mjs.map +1 -1
- package/lib/locale/sr-Cyrl.mjs +1 -0
- package/lib/locale/sr-Cyrl.mjs.map +1 -1
- package/lib/locale/sr-Latn.mjs +1 -0
- package/lib/locale/sr-Latn.mjs.map +1 -1
- package/lib/locale/sv.mjs +1 -0
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/locale/th.mjs +1 -0
- package/lib/locale/th.mjs.map +1 -1
- package/lib/locale/tr.mjs +1 -0
- package/lib/locale/tr.mjs.map +1 -1
- package/lib/locale/uk.mjs +1 -0
- package/lib/locale/uk.mjs.map +1 -1
- package/lib/locale/vi.mjs +1 -0
- package/lib/locale/vi.mjs.map +1 -1
- package/lib/locale/zh-Hans.mjs +1 -0
- package/lib/locale/zh-Hans.mjs.map +1 -1
- package/lib/locale/zh-Hant.mjs +1 -0
- package/lib/locale/zh-Hant.mjs.map +1 -1
- package/lib/styles/main.css +1026 -0
- package/lib/styles/settings/_utilities.scss +20 -0
- package/lib/styles/tools/_rtl.sass +4 -2
- package/lib/util/box.mjs +12 -0
- package/lib/util/box.mjs.map +1 -1
- package/lib/util/globals.mjs +1 -0
- package/lib/util/globals.mjs.map +1 -1
- package/lib/util/helpers.mjs +19 -5
- package/lib/util/helpers.mjs.map +1 -1
- package/lib/util/injectSelf.mjs +2 -1
- package/lib/util/injectSelf.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -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","eager","gradient","lazySrc","options","type","Object","default","root","undefined","rootMargin","threshold","sizes","src","srcset","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","complete","onError","onLoad","getSrc","img","timer","timeout","arguments","length","poll","clearTimeout","imgHeight","imgWidth","window","setTimeout","endsWith","startsWith","containClasses","__image","_createVNode","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 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 srcset: 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 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 onLoad()\n } else {\n if (!aspectRatio.value) pollForSize(image.value!)\n getSrc()\n }\n })\n }\n\n function onLoad () {\n getSrc()\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 src={ normalisedSrc.value.src }\n srcset={ normalisedSrc.value.srcset }\n alt={ props.alt }\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 src={ normalisedSrc.value.lazySrc }\n alt={ props.alt }\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","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","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","complete","onError","onLoad","getSrc","img","timer","timeout","arguments","length","poll","clearTimeout","imgHeight","imgWidth","window","setTimeout","endsWith","startsWith","containClasses","__image","_createVNode","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\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 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 onLoad()\n } else {\n if (!aspectRatio.value) pollForSize(image.value!)\n getSrc()\n }\n })\n }\n\n function onLoad () {\n getSrc()\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 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 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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"}
|
|
@@ -21,6 +21,7 @@ declare const VImg: {
|
|
|
21
21
|
component?: vue.Component | undefined;
|
|
22
22
|
}) | undefined;
|
|
23
23
|
style?: vue.StyleValue | undefined;
|
|
24
|
+
draggable?: boolean | "false" | "true" | undefined;
|
|
24
25
|
eager?: boolean | undefined;
|
|
25
26
|
options?: IntersectionObserverInit | undefined;
|
|
26
27
|
cover?: boolean | undefined;
|
|
@@ -43,7 +44,9 @@ declare const VImg: {
|
|
|
43
44
|
error?: (() => vue.VNodeChild) | undefined;
|
|
44
45
|
sources?: (() => vue.VNodeChild) | undefined;
|
|
45
46
|
};
|
|
47
|
+
referrerpolicy?: "origin" | "same-origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url" | undefined;
|
|
46
48
|
alt?: string | undefined;
|
|
49
|
+
crossorigin?: "" | "anonymous" | "use-credentials" | undefined;
|
|
47
50
|
sizes?: string | undefined;
|
|
48
51
|
srcset?: string | undefined;
|
|
49
52
|
ref?: vue.VNodeRef | undefined;
|
|
@@ -143,8 +146,11 @@ declare const VImg: {
|
|
|
143
146
|
maxWidth?: string | number | undefined;
|
|
144
147
|
minHeight?: string | number | undefined;
|
|
145
148
|
minWidth?: string | number | undefined;
|
|
149
|
+
draggable?: boolean | "false" | "true" | undefined;
|
|
146
150
|
class?: any;
|
|
151
|
+
referrerpolicy?: "origin" | "same-origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url" | undefined;
|
|
147
152
|
alt?: string | undefined;
|
|
153
|
+
crossorigin?: "" | "anonymous" | "use-credentials" | undefined;
|
|
148
154
|
sizes?: string | undefined;
|
|
149
155
|
srcset?: string | undefined;
|
|
150
156
|
contentClass?: string | undefined;
|
|
@@ -188,6 +194,7 @@ declare const VImg: {
|
|
|
188
194
|
component?: vue.Component | undefined;
|
|
189
195
|
});
|
|
190
196
|
style: vue.StyleValue;
|
|
197
|
+
draggable: boolean | "false" | "true";
|
|
191
198
|
eager: boolean;
|
|
192
199
|
options: IntersectionObserverInit;
|
|
193
200
|
cover: boolean;
|
|
@@ -243,8 +250,11 @@ declare const VImg: {
|
|
|
243
250
|
maxWidth?: string | number | undefined;
|
|
244
251
|
minHeight?: string | number | undefined;
|
|
245
252
|
minWidth?: string | number | undefined;
|
|
253
|
+
draggable?: boolean | "false" | "true" | undefined;
|
|
246
254
|
class?: any;
|
|
255
|
+
referrerpolicy?: "origin" | "same-origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url" | undefined;
|
|
247
256
|
alt?: string | undefined;
|
|
257
|
+
crossorigin?: "" | "anonymous" | "use-credentials" | undefined;
|
|
248
258
|
sizes?: string | undefined;
|
|
249
259
|
srcset?: string | undefined;
|
|
250
260
|
contentClass?: string | undefined;
|
|
@@ -300,8 +310,11 @@ declare const VImg: {
|
|
|
300
310
|
maxWidth?: string | number | undefined;
|
|
301
311
|
minHeight?: string | number | undefined;
|
|
302
312
|
minWidth?: string | number | undefined;
|
|
313
|
+
draggable?: boolean | "false" | "true" | undefined;
|
|
303
314
|
class?: any;
|
|
315
|
+
referrerpolicy?: "origin" | "same-origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url" | undefined;
|
|
304
316
|
alt?: string | undefined;
|
|
317
|
+
crossorigin?: "" | "anonymous" | "use-credentials" | undefined;
|
|
305
318
|
sizes?: string | undefined;
|
|
306
319
|
srcset?: string | undefined;
|
|
307
320
|
contentClass?: string | undefined;
|
|
@@ -345,6 +358,7 @@ declare const VImg: {
|
|
|
345
358
|
component?: vue.Component | undefined;
|
|
346
359
|
});
|
|
347
360
|
style: vue.StyleValue;
|
|
361
|
+
draggable: boolean | "false" | "true";
|
|
348
362
|
eager: boolean;
|
|
349
363
|
options: IntersectionObserverInit;
|
|
350
364
|
cover: boolean;
|
|
@@ -386,6 +400,10 @@ declare const VImg: {
|
|
|
386
400
|
inline: BooleanConstructor;
|
|
387
401
|
alt: StringConstructor;
|
|
388
402
|
cover: BooleanConstructor;
|
|
403
|
+
draggable: {
|
|
404
|
+
type: PropType<boolean | "false" | "true">;
|
|
405
|
+
default: undefined;
|
|
406
|
+
};
|
|
389
407
|
eager: BooleanConstructor;
|
|
390
408
|
gradient: StringConstructor;
|
|
391
409
|
lazySrc: StringConstructor;
|
|
@@ -402,6 +420,8 @@ declare const VImg: {
|
|
|
402
420
|
type: PropType<string | srcObject>;
|
|
403
421
|
default: string;
|
|
404
422
|
};
|
|
423
|
+
crossorigin: PropType<"" | "anonymous" | "use-credentials">;
|
|
424
|
+
referrerpolicy: PropType<"origin" | "same-origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url">;
|
|
405
425
|
srcset: StringConstructor;
|
|
406
426
|
}, vue.ExtractPropTypes<{
|
|
407
427
|
transition: {
|
|
@@ -427,6 +447,10 @@ declare const VImg: {
|
|
|
427
447
|
inline: BooleanConstructor;
|
|
428
448
|
alt: StringConstructor;
|
|
429
449
|
cover: BooleanConstructor;
|
|
450
|
+
draggable: {
|
|
451
|
+
type: PropType<boolean | "false" | "true">;
|
|
452
|
+
default: undefined;
|
|
453
|
+
};
|
|
430
454
|
eager: BooleanConstructor;
|
|
431
455
|
gradient: StringConstructor;
|
|
432
456
|
lazySrc: StringConstructor;
|
|
@@ -443,6 +467,8 @@ declare const VImg: {
|
|
|
443
467
|
type: PropType<string | srcObject>;
|
|
444
468
|
default: string;
|
|
445
469
|
};
|
|
470
|
+
crossorigin: PropType<"" | "anonymous" | "use-credentials">;
|
|
471
|
+
referrerpolicy: PropType<"origin" | "same-origin" | "no-referrer" | "no-referrer-when-downgrade" | "origin-when-cross-origin" | "strict-origin" | "strict-origin-when-cross-origin" | "unsafe-url">;
|
|
446
472
|
srcset: StringConstructor;
|
|
447
473
|
}>>;
|
|
448
474
|
type VImg = InstanceType<typeof VImg>;
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
padding-inline-start: 8px;
|
|
24
24
|
padding-inline-end: 8px;
|
|
25
25
|
}
|
|
26
|
-
.v-navigation-drawer--rail:not(.v-navigation-drawer--is-hovering) .v-list .v-avatar {
|
|
26
|
+
.v-navigation-drawer--rail:not(.v-navigation-drawer--is-hovering.v-navigation-drawer--expand-on-hover) .v-list .v-avatar {
|
|
27
27
|
--v-avatar-height: 24px;
|
|
28
28
|
}
|
|
29
29
|
.v-list--rounded {
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
padding-inline-start: $list-nav-padding
|
|
22
22
|
padding-inline-end: $list-nav-padding
|
|
23
23
|
|
|
24
|
-
.v-navigation-drawer--rail:not(.v-navigation-drawer--is-hovering) &
|
|
24
|
+
.v-navigation-drawer--rail:not(.v-navigation-drawer--is-hovering.v-navigation-drawer--expand-on-hover) &
|
|
25
25
|
.v-avatar
|
|
26
26
|
--v-avatar-height: 24px
|
|
27
27
|
|
|
@@ -130,12 +130,13 @@
|
|
|
130
130
|
display: flex;
|
|
131
131
|
grid-area: prepend;
|
|
132
132
|
}
|
|
133
|
-
.v-list-item__prepend > .v-
|
|
134
|
-
|
|
133
|
+
.v-list-item__prepend > .v-badge ~ .v-list-item__spacer,
|
|
134
|
+
.v-list-item__prepend > .v-icon ~ .v-list-item__spacer,
|
|
135
|
+
.v-list-item__prepend > .v-tooltip ~ .v-list-item__spacer {
|
|
136
|
+
width: 32px;
|
|
135
137
|
}
|
|
136
|
-
.v-list-item__prepend > .v-
|
|
137
|
-
|
|
138
|
-
margin-inline-end: 32px;
|
|
138
|
+
.v-list-item__prepend > .v-avatar ~ .v-list-item__spacer {
|
|
139
|
+
width: 16px;
|
|
139
140
|
}
|
|
140
141
|
.v-list-item--three-line .v-list-item__prepend {
|
|
141
142
|
align-self: start;
|
|
@@ -147,12 +148,16 @@
|
|
|
147
148
|
align-items: center;
|
|
148
149
|
grid-area: append;
|
|
149
150
|
}
|
|
150
|
-
.v-list-item__append
|
|
151
|
-
|
|
151
|
+
.v-list-item__append .v-list-item__spacer {
|
|
152
|
+
order: -1;
|
|
152
153
|
}
|
|
153
|
-
.v-list-item__append > .v-badge .v-
|
|
154
|
-
.v-list-item__append > .v-icon
|
|
155
|
-
|
|
154
|
+
.v-list-item__append > .v-badge ~ .v-list-item__spacer,
|
|
155
|
+
.v-list-item__append > .v-icon ~ .v-list-item__spacer,
|
|
156
|
+
.v-list-item__append > .v-tooltip ~ .v-list-item__spacer {
|
|
157
|
+
width: 32px;
|
|
158
|
+
}
|
|
159
|
+
.v-list-item__append > .v-avatar ~ .v-list-item__spacer {
|
|
160
|
+
width: 16px;
|
|
156
161
|
}
|
|
157
162
|
.v-list-item--three-line .v-list-item__append {
|
|
158
163
|
align-self: start;
|
|
@@ -178,7 +178,6 @@ export const VListItem = genericComponent()({
|
|
|
178
178
|
"style": [colorStyles.value, dimensionStyles.value, props.style],
|
|
179
179
|
"href": link.href.value,
|
|
180
180
|
"tabindex": isClickable.value ? list ? -2 : 0 : undefined,
|
|
181
|
-
"title": props.title,
|
|
182
181
|
"onClick": onClick,
|
|
183
182
|
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
|
184
183
|
}, {
|
|
@@ -211,7 +210,9 @@ export const VListItem = genericComponent()({
|
|
|
211
210
|
}
|
|
212
211
|
}, {
|
|
213
212
|
default: () => [slots.prepend?.(slotProps.value)]
|
|
214
|
-
})
|
|
213
|
+
}), _createVNode("div", {
|
|
214
|
+
"class": "v-list-item__spacer"
|
|
215
|
+
}, null)]), _createVNode("div", {
|
|
215
216
|
"class": "v-list-item__content",
|
|
216
217
|
"data-no-activator": ""
|
|
217
218
|
}, [hasTitle && _createVNode(VListItemTitle, {
|
|
@@ -255,7 +256,9 @@ export const VListItem = genericComponent()({
|
|
|
255
256
|
}
|
|
256
257
|
}, {
|
|
257
258
|
default: () => [slots.append?.(slotProps.value)]
|
|
258
|
-
})
|
|
259
|
+
}), _createVNode("div", {
|
|
260
|
+
"class": "v-list-item__spacer"
|
|
261
|
+
}, null)])]
|
|
259
262
|
}), [[_resolveDirective("ripple"), isClickable.value && props.ripple]]);
|
|
260
263
|
});
|
|
261
264
|
return {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VListItem.mjs","names":["VListItemSubtitle","VListItemTitle","VAvatar","VDefaultsProvider","VIcon","useList","makeBorderProps","useBorder","makeComponentProps","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","IconValue","useNestedItem","makeRoundedProps","useRounded","makeRouterProps","useLink","makeTagProps","makeThemeProps","provideTheme","genOverlays","makeVariantProps","useVariant","Ripple","computed","watch","deprecate","EventProp","genericComponent","propsFactory","useRender","makeVListItemProps","active","type","Boolean","default","undefined","activeClass","String","activeColor","appendAvatar","appendIcon","baseColor","disabled","lines","link","nav","prependAvatar","prependIcon","ripple","Object","subtitle","Number","title","value","onClick","onClickOnce","variant","VListItem","name","directives","props","emits","click","e","setup","_ref","attrs","slots","emit","id","href","select","isSelected","isIndeterminate","isGroupActivator","root","parent","openOnSelect","list","isActive","isLink","isClickable","roundedProps","rounded","color","variantProps","val","open","immediate","themeClasses","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","dimensionStyles","elevationClasses","roundedClasses","lineClasses","slotProps","navigate","onKeyDown","key","preventDefault","Tag","tag","hasTitle","hasSubtitle","hasAppendMedia","hasAppend","append","hasPrependMedia","hasPrepend","prepend","updateHasPrepend","_withDirectives","_createVNode","class","style","_Fragment","density","image","icon","VListItemAction","start","end","_resolveDirective"],"sources":["../../../src/components/VList/VListItem.tsx"],"sourcesContent":["// Styles\nimport './VListItem.sass'\n\n// Components\nimport { VListItemSubtitle } from './VListItemSubtitle'\nimport { VListItemTitle } from './VListItemTitle'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useList } from './list'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { useNestedItem } from '@/composables/nested/nested'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed, watch } from 'vue'\nimport { deprecate, EventProp, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\ntype ListItemSlot = {\n isActive: boolean\n isSelected: boolean\n isIndeterminate: boolean\n select: (value: boolean) => void\n}\n\nexport type ListItemTitleSlot = {\n title?: string | number | boolean\n}\n\nexport type ListItemSubtitleSlot = {\n subtitle?: string | number | boolean\n}\n\nexport type VListItemSlots = {\n prepend: ListItemSlot\n append: ListItemSlot\n default: ListItemSlot\n title: ListItemTitleSlot\n subtitle: ListItemSubtitleSlot\n}\n\nexport const makeVListItemProps = propsFactory({\n active: {\n type: Boolean,\n default: undefined,\n },\n activeClass: String,\n /* @deprecated */\n activeColor: String,\n appendAvatar: String,\n appendIcon: IconValue,\n baseColor: String,\n disabled: Boolean,\n lines: String as PropType<'one' | 'two' | 'three'>,\n link: {\n type: Boolean,\n default: undefined,\n },\n nav: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object] as PropType<RippleDirectiveBinding['value']>,\n default: true,\n },\n subtitle: [String, Number, Boolean],\n title: [String, Number, Boolean],\n value: null,\n\n onClick: EventProp<[MouseEvent]>(),\n onClickOnce: EventProp<[MouseEvent]>(),\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VListItem')\n\nexport const VListItem = genericComponent<VListItemSlots>()({\n name: 'VListItem',\n\n directives: { Ripple },\n\n props: makeVListItemProps(),\n\n emits: {\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const link = useLink(props, attrs)\n const id = computed(() => props.value === undefined ? link.href.value : props.value)\n const { select, isSelected, isIndeterminate, isGroupActivator, root, parent, openOnSelect } = useNestedItem(id, false)\n const list = useList()\n const isActive = computed(() =>\n props.active !== false &&\n (props.active || link.isActive?.value || isSelected.value)\n )\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || link.isClickable.value || (props.value != null && !!list))\n )\n\n const roundedProps = computed(() => props.rounded || props.nav)\n const color = computed(() => props.color ?? props.activeColor)\n const variantProps = computed(() => ({\n color: isActive.value ? color.value ?? props.baseColor : props.baseColor,\n variant: props.variant,\n }))\n\n watch(() => link.isActive?.value, val => {\n if (val && parent.value != null) {\n root.open(parent.value, true)\n }\n\n if (val) {\n openOnSelect(val)\n }\n }, { immediate: true })\n\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(roundedProps)\n const lineClasses = computed(() => props.lines ? `v-list-item--${props.lines}-line` : undefined)\n\n const slotProps = computed(() => ({\n isActive: isActive.value,\n select,\n isSelected: isSelected.value,\n isIndeterminate: isIndeterminate.value,\n } satisfies ListItemSlot))\n\n function onClick (e: MouseEvent) {\n emit('click', e)\n\n if (isGroupActivator || !isClickable.value) return\n\n link.navigate?.(e)\n props.value != null && select(!isSelected.value, e)\n }\n\n function onKeyDown (e: KeyboardEvent) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onClick(e as any as MouseEvent)\n }\n }\n\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag\n const hasTitle = (slots.title || props.title)\n const hasSubtitle = (slots.subtitle || props.subtitle)\n const hasAppendMedia = !!(props.appendAvatar || props.appendIcon)\n const hasAppend = !!(hasAppendMedia || slots.append)\n const hasPrependMedia = !!(props.prependAvatar || props.prependIcon)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n\n list?.updateHasPrepend(hasPrepend)\n\n if (props.activeColor) {\n deprecate('active-color', ['color', 'base-color'])\n }\n\n return (\n <Tag\n class={[\n 'v-list-item',\n {\n 'v-list-item--active': isActive.value,\n 'v-list-item--disabled': props.disabled,\n 'v-list-item--link': isClickable.value,\n 'v-list-item--nav': props.nav,\n 'v-list-item--prepend': !hasPrepend && list?.hasPrepend.value,\n [`${props.activeClass}`]: props.activeClass && isActive.value,\n },\n themeClasses.value,\n borderClasses.value,\n colorClasses.value,\n densityClasses.value,\n elevationClasses.value,\n lineClasses.value,\n roundedClasses.value,\n variantClasses.value,\n props.class,\n ]}\n style={[\n colorStyles.value,\n dimensionStyles.value,\n props.style,\n ]}\n href={ link.href.value }\n tabindex={ isClickable.value ? (list ? -2 : 0) : undefined }\n title={ props.title }\n onClick={ onClick }\n onKeydown={ isClickable.value && !isLink.value && onKeyDown }\n v-ripple={ isClickable.value && props.ripple }\n >\n { genOverlays(isClickable.value || isActive.value, 'v-list-item') }\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-list-item__prepend\">\n { !slots.prepend ? (\n <>\n { props.prependAvatar && (\n <VAvatar\n key=\"prepend-avatar\"\n density={ props.density }\n image={ props.prependAvatar }\n />\n )}\n\n { props.prependIcon && (\n <VIcon\n key=\"prepend-icon\"\n density={ props.density }\n icon={ props.prependIcon }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"prepend-defaults\"\n disabled={ !hasPrependMedia }\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.prependAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.prependIcon,\n },\n VListItemAction: {\n start: true,\n },\n }}\n >\n { slots.prepend?.(slotProps.value) }\n </VDefaultsProvider>\n )}\n </div>\n )}\n\n <div class=\"v-list-item__content\" data-no-activator=\"\">\n { hasTitle && (\n <VListItemTitle key=\"title\">\n { slots.title?.({ title: props.title }) ?? props.title }\n </VListItemTitle>\n )}\n\n { hasSubtitle && (\n <VListItemSubtitle key=\"subtitle\">\n { slots.subtitle?.({ subtitle: props.subtitle }) ?? props.subtitle }\n </VListItemSubtitle>\n )}\n\n { slots.default?.(slotProps.value) }\n </div>\n\n { hasAppend && (\n <div key=\"append\" class=\"v-list-item__append\">\n { !slots.append ? (\n <>\n { props.appendIcon && (\n <VIcon\n key=\"append-icon\"\n density={ props.density }\n icon={ props.appendIcon }\n />\n )}\n\n { props.appendAvatar && (\n <VAvatar\n key=\"append-avatar\"\n density={ props.density }\n image={ props.appendAvatar }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"append-defaults\"\n disabled={ !hasAppendMedia }\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.appendAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.appendIcon,\n },\n VListItemAction: {\n end: true,\n },\n }}\n >\n { slots.append?.(slotProps.value) }\n </VDefaultsProvider>\n )}\n </div>\n )}\n </Tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VListItem = InstanceType<typeof VListItem>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VListItem.mjs","names":["VListItemSubtitle","VListItemTitle","VAvatar","VDefaultsProvider","VIcon","useList","makeBorderProps","useBorder","makeComponentProps","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","IconValue","useNestedItem","makeRoundedProps","useRounded","makeRouterProps","useLink","makeTagProps","makeThemeProps","provideTheme","genOverlays","makeVariantProps","useVariant","Ripple","computed","watch","deprecate","EventProp","genericComponent","propsFactory","useRender","makeVListItemProps","active","type","Boolean","default","undefined","activeClass","String","activeColor","appendAvatar","appendIcon","baseColor","disabled","lines","link","nav","prependAvatar","prependIcon","ripple","Object","subtitle","Number","title","value","onClick","onClickOnce","variant","VListItem","name","directives","props","emits","click","e","setup","_ref","attrs","slots","emit","id","href","select","isSelected","isIndeterminate","isGroupActivator","root","parent","openOnSelect","list","isActive","isLink","isClickable","roundedProps","rounded","color","variantProps","val","open","immediate","themeClasses","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","dimensionStyles","elevationClasses","roundedClasses","lineClasses","slotProps","navigate","onKeyDown","key","preventDefault","Tag","tag","hasTitle","hasSubtitle","hasAppendMedia","hasAppend","append","hasPrependMedia","hasPrepend","prepend","updateHasPrepend","_withDirectives","_createVNode","class","style","_Fragment","density","image","icon","VListItemAction","start","end","_resolveDirective"],"sources":["../../../src/components/VList/VListItem.tsx"],"sourcesContent":["// Styles\nimport './VListItem.sass'\n\n// Components\nimport { VListItemSubtitle } from './VListItemSubtitle'\nimport { VListItemTitle } from './VListItemTitle'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useList } from './list'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { useNestedItem } from '@/composables/nested/nested'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed, watch } from 'vue'\nimport { deprecate, EventProp, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\ntype ListItemSlot = {\n isActive: boolean\n isSelected: boolean\n isIndeterminate: boolean\n select: (value: boolean) => void\n}\n\nexport type ListItemTitleSlot = {\n title?: string | number | boolean\n}\n\nexport type ListItemSubtitleSlot = {\n subtitle?: string | number | boolean\n}\n\nexport type VListItemSlots = {\n prepend: ListItemSlot\n append: ListItemSlot\n default: ListItemSlot\n title: ListItemTitleSlot\n subtitle: ListItemSubtitleSlot\n}\n\nexport const makeVListItemProps = propsFactory({\n active: {\n type: Boolean,\n default: undefined,\n },\n activeClass: String,\n /* @deprecated */\n activeColor: String,\n appendAvatar: String,\n appendIcon: IconValue,\n baseColor: String,\n disabled: Boolean,\n lines: String as PropType<'one' | 'two' | 'three'>,\n link: {\n type: Boolean,\n default: undefined,\n },\n nav: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object] as PropType<RippleDirectiveBinding['value']>,\n default: true,\n },\n subtitle: [String, Number, Boolean],\n title: [String, Number, Boolean],\n value: null,\n\n onClick: EventProp<[MouseEvent]>(),\n onClickOnce: EventProp<[MouseEvent]>(),\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VListItem')\n\nexport const VListItem = genericComponent<VListItemSlots>()({\n name: 'VListItem',\n\n directives: { Ripple },\n\n props: makeVListItemProps(),\n\n emits: {\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const link = useLink(props, attrs)\n const id = computed(() => props.value === undefined ? link.href.value : props.value)\n const { select, isSelected, isIndeterminate, isGroupActivator, root, parent, openOnSelect } = useNestedItem(id, false)\n const list = useList()\n const isActive = computed(() =>\n props.active !== false &&\n (props.active || link.isActive?.value || isSelected.value)\n )\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || link.isClickable.value || (props.value != null && !!list))\n )\n\n const roundedProps = computed(() => props.rounded || props.nav)\n const color = computed(() => props.color ?? props.activeColor)\n const variantProps = computed(() => ({\n color: isActive.value ? color.value ?? props.baseColor : props.baseColor,\n variant: props.variant,\n }))\n\n watch(() => link.isActive?.value, val => {\n if (val && parent.value != null) {\n root.open(parent.value, true)\n }\n\n if (val) {\n openOnSelect(val)\n }\n }, { immediate: true })\n\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(roundedProps)\n const lineClasses = computed(() => props.lines ? `v-list-item--${props.lines}-line` : undefined)\n\n const slotProps = computed(() => ({\n isActive: isActive.value,\n select,\n isSelected: isSelected.value,\n isIndeterminate: isIndeterminate.value,\n } satisfies ListItemSlot))\n\n function onClick (e: MouseEvent) {\n emit('click', e)\n\n if (isGroupActivator || !isClickable.value) return\n\n link.navigate?.(e)\n props.value != null && select(!isSelected.value, e)\n }\n\n function onKeyDown (e: KeyboardEvent) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onClick(e as any as MouseEvent)\n }\n }\n\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag\n const hasTitle = (slots.title || props.title)\n const hasSubtitle = (slots.subtitle || props.subtitle)\n const hasAppendMedia = !!(props.appendAvatar || props.appendIcon)\n const hasAppend = !!(hasAppendMedia || slots.append)\n const hasPrependMedia = !!(props.prependAvatar || props.prependIcon)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n\n list?.updateHasPrepend(hasPrepend)\n\n if (props.activeColor) {\n deprecate('active-color', ['color', 'base-color'])\n }\n\n return (\n <Tag\n class={[\n 'v-list-item',\n {\n 'v-list-item--active': isActive.value,\n 'v-list-item--disabled': props.disabled,\n 'v-list-item--link': isClickable.value,\n 'v-list-item--nav': props.nav,\n 'v-list-item--prepend': !hasPrepend && list?.hasPrepend.value,\n [`${props.activeClass}`]: props.activeClass && isActive.value,\n },\n themeClasses.value,\n borderClasses.value,\n colorClasses.value,\n densityClasses.value,\n elevationClasses.value,\n lineClasses.value,\n roundedClasses.value,\n variantClasses.value,\n props.class,\n ]}\n style={[\n colorStyles.value,\n dimensionStyles.value,\n props.style,\n ]}\n href={ link.href.value }\n tabindex={ isClickable.value ? (list ? -2 : 0) : undefined }\n onClick={ onClick }\n onKeydown={ isClickable.value && !isLink.value && onKeyDown }\n v-ripple={ isClickable.value && props.ripple }\n >\n { genOverlays(isClickable.value || isActive.value, 'v-list-item') }\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-list-item__prepend\">\n { !slots.prepend ? (\n <>\n { props.prependAvatar && (\n <VAvatar\n key=\"prepend-avatar\"\n density={ props.density }\n image={ props.prependAvatar }\n />\n )}\n\n { props.prependIcon && (\n <VIcon\n key=\"prepend-icon\"\n density={ props.density }\n icon={ props.prependIcon }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"prepend-defaults\"\n disabled={ !hasPrependMedia }\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.prependAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.prependIcon,\n },\n VListItemAction: {\n start: true,\n },\n }}\n >\n { slots.prepend?.(slotProps.value) }\n </VDefaultsProvider>\n )}\n\n <div class=\"v-list-item__spacer\" />\n </div>\n )}\n\n <div class=\"v-list-item__content\" data-no-activator=\"\">\n { hasTitle && (\n <VListItemTitle key=\"title\">\n { slots.title?.({ title: props.title }) ?? props.title }\n </VListItemTitle>\n )}\n\n { hasSubtitle && (\n <VListItemSubtitle key=\"subtitle\">\n { slots.subtitle?.({ subtitle: props.subtitle }) ?? props.subtitle }\n </VListItemSubtitle>\n )}\n\n { slots.default?.(slotProps.value) }\n </div>\n\n { hasAppend && (\n <div key=\"append\" class=\"v-list-item__append\">\n { !slots.append ? (\n <>\n { props.appendIcon && (\n <VIcon\n key=\"append-icon\"\n density={ props.density }\n icon={ props.appendIcon }\n />\n )}\n\n { props.appendAvatar && (\n <VAvatar\n key=\"append-avatar\"\n density={ props.density }\n image={ props.appendAvatar }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"append-defaults\"\n disabled={ !hasAppendMedia }\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.appendAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.appendIcon,\n },\n VListItemAction: {\n end: true,\n },\n }}\n >\n { slots.append?.(slotProps.value) }\n </VDefaultsProvider>\n )}\n\n <div class=\"v-list-item__spacer\" />\n </div>\n )}\n </Tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VListItem = InstanceType<typeof VListItem>\n"],"mappings":"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"}
|
|
@@ -64,12 +64,14 @@
|
|
|
64
64
|
display: flex
|
|
65
65
|
grid-area: prepend
|
|
66
66
|
|
|
67
|
-
> .v-
|
|
68
|
-
|
|
67
|
+
> .v-badge,
|
|
68
|
+
> .v-icon,
|
|
69
|
+
> .v-tooltip
|
|
70
|
+
~ .v-list-item__spacer
|
|
71
|
+
width: $list-item-icon-margin-start
|
|
69
72
|
|
|
70
|
-
> .v-
|
|
71
|
-
|
|
72
|
-
margin-inline-end: $list-item-icon-margin-end
|
|
73
|
+
> .v-avatar ~ .v-list-item__spacer
|
|
74
|
+
width: $list-item-avatar-margin-start
|
|
73
75
|
|
|
74
76
|
.v-list-item--three-line &
|
|
75
77
|
align-self: start
|
|
@@ -80,12 +82,17 @@
|
|
|
80
82
|
align-items: center
|
|
81
83
|
grid-area: append
|
|
82
84
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
+
.v-list-item__spacer
|
|
86
|
+
order: -1
|
|
85
87
|
|
|
86
|
-
> .v-badge
|
|
87
|
-
> .v-icon
|
|
88
|
-
|
|
88
|
+
> .v-badge,
|
|
89
|
+
> .v-icon,
|
|
90
|
+
> .v-tooltip
|
|
91
|
+
~ .v-list-item__spacer
|
|
92
|
+
width: $list-item-icon-margin-end
|
|
93
|
+
|
|
94
|
+
> .v-avatar ~ .v-list-item__spacer
|
|
95
|
+
width: $list-item-avatar-margin-end
|
|
89
96
|
|
|
90
97
|
.v-list-item--three-line &
|
|
91
98
|
align-self: start
|
|
@@ -158,11 +158,11 @@ declare const VListItem: {
|
|
|
158
158
|
"v-slot:prepend"?: false | ((arg: ListItemSlot) => vue.VNodeChild) | undefined;
|
|
159
159
|
prependIcon?: IconValue | undefined;
|
|
160
160
|
appendIcon?: IconValue | undefined;
|
|
161
|
+
baseColor?: string | undefined;
|
|
161
162
|
activeClass?: string | undefined;
|
|
162
163
|
appendAvatar?: string | undefined;
|
|
163
164
|
prependAvatar?: string | undefined;
|
|
164
165
|
activeColor?: string | undefined;
|
|
165
|
-
baseColor?: string | undefined;
|
|
166
166
|
subtitle?: string | number | boolean | undefined;
|
|
167
167
|
lines?: "one" | "two" | "three" | undefined;
|
|
168
168
|
"v-slot:subtitle"?: false | ((arg: ListItemSubtitleSlot) => vue.VNodeChild) | undefined;
|
|
@@ -229,11 +229,11 @@ declare const VListItem: {
|
|
|
229
229
|
rounded?: string | number | boolean | undefined;
|
|
230
230
|
prependIcon?: IconValue | undefined;
|
|
231
231
|
appendIcon?: IconValue | undefined;
|
|
232
|
+
baseColor?: string | undefined;
|
|
232
233
|
activeClass?: string | undefined;
|
|
233
234
|
appendAvatar?: string | undefined;
|
|
234
235
|
prependAvatar?: string | undefined;
|
|
235
236
|
activeColor?: string | undefined;
|
|
236
|
-
baseColor?: string | undefined;
|
|
237
237
|
subtitle?: string | number | boolean | undefined;
|
|
238
238
|
lines?: "one" | "two" | "three" | undefined;
|
|
239
239
|
} & {
|
|
@@ -347,11 +347,11 @@ declare const VListItem: {
|
|
|
347
347
|
rounded?: string | number | boolean | undefined;
|
|
348
348
|
prependIcon?: IconValue | undefined;
|
|
349
349
|
appendIcon?: IconValue | undefined;
|
|
350
|
+
baseColor?: string | undefined;
|
|
350
351
|
activeClass?: string | undefined;
|
|
351
352
|
appendAvatar?: string | undefined;
|
|
352
353
|
prependAvatar?: string | undefined;
|
|
353
354
|
activeColor?: string | undefined;
|
|
354
|
-
baseColor?: string | undefined;
|
|
355
355
|
subtitle?: string | number | boolean | undefined;
|
|
356
356
|
lines?: "one" | "two" | "three" | undefined;
|
|
357
357
|
} & {
|
|
@@ -416,11 +416,11 @@ declare const VListItem: {
|
|
|
416
416
|
rounded?: string | number | boolean | undefined;
|
|
417
417
|
prependIcon?: IconValue | undefined;
|
|
418
418
|
appendIcon?: IconValue | undefined;
|
|
419
|
+
baseColor?: string | undefined;
|
|
419
420
|
activeClass?: string | undefined;
|
|
420
421
|
appendAvatar?: string | undefined;
|
|
421
422
|
prependAvatar?: string | undefined;
|
|
422
423
|
activeColor?: string | undefined;
|
|
423
|
-
baseColor?: string | undefined;
|
|
424
424
|
subtitle?: string | number | boolean | undefined;
|
|
425
425
|
lines?: "one" | "two" | "three" | undefined;
|
|
426
426
|
} & {
|
|
@@ -774,12 +774,12 @@ declare const VList: {
|
|
|
774
774
|
[key: string]: any;
|
|
775
775
|
}>) => void)[] | undefined;
|
|
776
776
|
bgColor?: string | undefined;
|
|
777
|
+
baseColor?: string | undefined;
|
|
777
778
|
activeClass?: string | undefined;
|
|
778
779
|
opened?: readonly unknown[] | undefined;
|
|
779
780
|
"onUpdate:selected"?: ((val: unknown[]) => any) | undefined;
|
|
780
781
|
"onUpdate:opened"?: ((val: unknown[]) => any) | undefined;
|
|
781
782
|
activeColor?: string | undefined;
|
|
782
|
-
baseColor?: string | undefined;
|
|
783
783
|
"onClick:open"?: ((value: {
|
|
784
784
|
id: unknown;
|
|
785
785
|
value: boolean;
|
|
@@ -912,10 +912,10 @@ declare const VList: {
|
|
|
912
912
|
theme?: string | undefined;
|
|
913
913
|
rounded?: string | number | boolean | undefined;
|
|
914
914
|
bgColor?: string | undefined;
|
|
915
|
+
baseColor?: string | undefined;
|
|
915
916
|
activeClass?: string | undefined;
|
|
916
917
|
opened?: readonly unknown[] | undefined;
|
|
917
918
|
activeColor?: string | undefined;
|
|
918
|
-
baseColor?: string | undefined;
|
|
919
919
|
} & {
|
|
920
920
|
"onUpdate:selected"?: ((val: unknown[]) => any) | undefined;
|
|
921
921
|
"onUpdate:opened"?: ((val: unknown[]) => any) | undefined;
|
|
@@ -1086,10 +1086,10 @@ declare const VList: {
|
|
|
1086
1086
|
theme?: string | undefined;
|
|
1087
1087
|
rounded?: string | number | boolean | undefined;
|
|
1088
1088
|
bgColor?: string | undefined;
|
|
1089
|
+
baseColor?: string | undefined;
|
|
1089
1090
|
activeClass?: string | undefined;
|
|
1090
1091
|
opened?: readonly unknown[] | undefined;
|
|
1091
1092
|
activeColor?: string | undefined;
|
|
1092
|
-
baseColor?: string | undefined;
|
|
1093
1093
|
} & {
|
|
1094
1094
|
"onUpdate:selected"?: ((val: unknown[]) => any) | undefined;
|
|
1095
1095
|
"onUpdate:opened"?: ((val: unknown[]) => any) | undefined;
|
|
@@ -1143,10 +1143,10 @@ declare const VList: {
|
|
|
1143
1143
|
theme?: string | undefined;
|
|
1144
1144
|
rounded?: string | number | boolean | undefined;
|
|
1145
1145
|
bgColor?: string | undefined;
|
|
1146
|
+
baseColor?: string | undefined;
|
|
1146
1147
|
activeClass?: string | undefined;
|
|
1147
1148
|
opened?: readonly unknown[] | undefined;
|
|
1148
1149
|
activeColor?: string | undefined;
|
|
1149
|
-
baseColor?: string | undefined;
|
|
1150
1150
|
} & {
|
|
1151
1151
|
"onUpdate:selected"?: ((val: unknown[]) => any) | undefined;
|
|
1152
1152
|
"onUpdate:opened"?: ((val: unknown[]) => any) | undefined;
|
|
@@ -1518,8 +1518,8 @@ declare const VListGroup: {
|
|
|
1518
1518
|
}>) => void)[] | undefined;
|
|
1519
1519
|
prependIcon?: IconValue | undefined;
|
|
1520
1520
|
appendIcon?: IconValue | undefined;
|
|
1521
|
-
activeColor?: string | undefined;
|
|
1522
1521
|
baseColor?: string | undefined;
|
|
1522
|
+
activeColor?: string | undefined;
|
|
1523
1523
|
"v-slot:activator"?: false | ((arg: {
|
|
1524
1524
|
isOpen: boolean;
|
|
1525
1525
|
props: Record<string, unknown>;
|
|
@@ -1560,8 +1560,8 @@ declare const VListGroup: {
|
|
|
1560
1560
|
class?: any;
|
|
1561
1561
|
prependIcon?: IconValue | undefined;
|
|
1562
1562
|
appendIcon?: IconValue | undefined;
|
|
1563
|
-
activeColor?: string | undefined;
|
|
1564
1563
|
baseColor?: string | undefined;
|
|
1564
|
+
activeColor?: string | undefined;
|
|
1565
1565
|
} & {
|
|
1566
1566
|
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
|
|
1567
1567
|
default?: (() => vue.VNodeChild) | undefined;
|
|
@@ -1634,8 +1634,8 @@ declare const VListGroup: {
|
|
|
1634
1634
|
class?: any;
|
|
1635
1635
|
prependIcon?: IconValue | undefined;
|
|
1636
1636
|
appendIcon?: IconValue | undefined;
|
|
1637
|
-
activeColor?: string | undefined;
|
|
1638
1637
|
baseColor?: string | undefined;
|
|
1638
|
+
activeColor?: string | undefined;
|
|
1639
1639
|
} & {
|
|
1640
1640
|
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
|
|
1641
1641
|
default?: (() => vue.VNodeChild) | undefined;
|
|
@@ -1675,8 +1675,8 @@ declare const VListGroup: {
|
|
|
1675
1675
|
class?: any;
|
|
1676
1676
|
prependIcon?: IconValue | undefined;
|
|
1677
1677
|
appendIcon?: IconValue | undefined;
|
|
1678
|
-
activeColor?: string | undefined;
|
|
1679
1678
|
baseColor?: string | undefined;
|
|
1679
|
+
activeColor?: string | undefined;
|
|
1680
1680
|
} & {
|
|
1681
1681
|
$children?: vue.VNodeChild | (() => vue.VNodeChild) | {
|
|
1682
1682
|
default?: (() => vue.VNodeChild) | undefined;
|
|
@@ -10,7 +10,7 @@ import { makeVOverlayProps } from "../VOverlay/VOverlay.mjs"; // Composables
|
|
|
10
10
|
import { forwardRefs } from "../../composables/forwardRefs.mjs";
|
|
11
11
|
import { useProxiedModel } from "../../composables/proxiedModel.mjs";
|
|
12
12
|
import { useScopeId } from "../../composables/scopeId.mjs"; // Utilities
|
|
13
|
-
import { computed, inject, mergeProps, provide, ref, shallowRef, watch } from 'vue';
|
|
13
|
+
import { computed, inject, mergeProps, nextTick, provide, ref, shallowRef, watch } from 'vue';
|
|
14
14
|
import { VMenuSymbol } from "./shared.mjs";
|
|
15
15
|
import { focusableChildren, focusChild, genericComponent, getNextElement, getUid, omit, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
16
16
|
export const makeVMenuProps = propsFactory({
|
|
@@ -64,10 +64,11 @@ export const VMenu = genericComponent()({
|
|
|
64
64
|
}, 40);
|
|
65
65
|
}
|
|
66
66
|
});
|
|
67
|
-
function onFocusIn(e) {
|
|
67
|
+
async function onFocusIn(e) {
|
|
68
68
|
const before = e.relatedTarget;
|
|
69
69
|
const after = e.target;
|
|
70
|
-
|
|
70
|
+
await nextTick();
|
|
71
|
+
if (isActive.value && before !== after && overlay.value?.contentEl &&
|
|
71
72
|
// We're the topmost menu
|
|
72
73
|
overlay.value?.globalTop &&
|
|
73
74
|
// It isn't the document or the menu body
|