UNPKG

vuetify

Version:

Vue Material Component Framework

81 lines 2.73 kB
import { createVNode as _createVNode } from "vue"; // Components import { VAvatar } from "../VAvatar/index.mjs"; import { VCardSubtitle } from "./VCardSubtitle.mjs"; import { VCardTitle } from "./VCardTitle.mjs"; import { VDefaultsProvider } from "../VDefaultsProvider/index.mjs"; // Composables import { IconValue } from "../../composables/icons.mjs"; import { makeDensityProps } from "../../composables/density.mjs"; // Utility import { genericComponent, useRender } from "../../util/index.mjs"; // Types export const VCardItem = genericComponent()({ name: 'VCardItem', props: { appendAvatar: String, appendIcon: IconValue, prependAvatar: String, prependIcon: IconValue, subtitle: String, title: String, ...makeDensityProps() }, setup(props, _ref) { let { slots } = _ref; useRender(() => { const hasPrepend = !!(props.prependAvatar || props.prependIcon || slots.prepend); const hasAppend = !!(props.appendAvatar || props.appendIcon || slots.append); const hasTitle = !!(props.title || slots.title); const hasSubtitle = !!(props.subtitle || slots.subtitle); return _createVNode("div", { "class": "v-card-item" }, [hasPrepend && _createVNode(VDefaultsProvider, { "key": "prepend", "defaults": { VAvatar: { density: props.density, icon: props.prependIcon, image: props.prependAvatar }, VIcon: { density: props.density, icon: props.prependIcon } } }, { default: () => [_createVNode("div", { "class": "v-card-item__prepend" }, [slots.prepend?.() ?? _createVNode(VAvatar, null, null)])] }), _createVNode("div", { "class": "v-card-item__content" }, [hasTitle && _createVNode(VCardTitle, { "key": "title" }, { default: () => [slots.title?.() ?? props.title] }), hasSubtitle && _createVNode(VCardSubtitle, { "key": "subtitle" }, { default: () => [slots.subtitle?.() ?? props.subtitle] }), slots.default?.()]), hasAppend && _createVNode(VDefaultsProvider, { "key": "append", "defaults": { VAvatar: { density: props.density, icon: props.appendIcon, image: props.appendAvatar }, VIcon: { density: props.density, icon: props.appendIcon } } }, { default: () => [_createVNode("div", { "class": "v-card-item__append" }, [slots.append?.() ?? _createVNode(VAvatar, null, null)])] })]); }); return {}; } }); //# sourceMappingURL=VCardItem.mjs.map