import { Cn as withDirectives, Dt as mergeProps, M as Fragment, W as createBaseVNode, Yn as shallowRef, ar as normalizeClass, cr as toDisplayString, et as createVNode, gn as watch, sr as normalizeStyle } from "./vue.runtime.esm-bundler-BvoXUmaf.js"; import { o as provideDefaults, r as genericComponent, u as propsFactory, v as convertToUnit } from "./defineComponent-D5UWd5Vb.js"; import { t as makeComponentProps } from "./component-W6F5nwNC.js"; import { t as createSimpleFunctional } from "./createSimpleFunctional-DYAlCmHj.js"; import { t as useRender } from "./useRender-DB_YiTtB.js"; import { n as IconValue } from "./icons-czM1t0u4.js"; import { t as VIcon } from "./VIcon-DqvHH35X.js"; import { t as makeTagProps } from "./tag-CIFqtlp2.js"; import { i as provideTheme, r as makeThemeProps } from "./theme-C1b955Ym.js"; import { n as useDimension, t as makeDimensionProps } from "./dimensions-DYqEoPdw.js"; import { n as useLocation, t as makeLocationProps } from "./location-DD-AfEFw.js"; import { n as useRounded, t as makeRoundedProps } from "./rounded-m6mNMWh4.js"; import { t as VDefaultsProvider } from "./VDefaultsProvider-C3Dl0By9.js"; import { t as VImg } from "./VImg-D29ak-Ji.js"; import { n as useBorder, t as makeBorderProps } from "./border-DgwbzrV0.js"; import { n as useDensity, t as makeDensityProps } from "./density-Dey2iIaF.js"; import { n as makeVariantProps, r as useVariant, t as genOverlays } from "./variant-BcdnKFgE.js"; import { t as VAvatar } from "./VAvatar-BHEBKXii.js"; import { r as useLink, t as makeRouterProps } from "./router-CiYG9tKT.js"; import { n as useElevation, t as makeElevationProps } from "./elevation-DF9Lgrr_.js"; import { t as Ripple } from "./ripple-Q8q1hNUv.js"; import { n as makeLoaderProps, r as useLoader, t as LoaderSlot } from "./loader-Dn_UJdiG.js"; import { n as usePosition, t as makePositionProps } from "./position-7CDSPI1P.js"; import "/Users/thackmaster/Development/routie2/frontend/node_modules/vuetify/lib/components/VCard/VCard.css"; //#region node_modules/vuetify/lib/components/VCard/VCardActions.js var makeVCardActionsProps = propsFactory({ ...makeComponentProps(), ...makeTagProps() }, "VCardActions"); var VCardActions = genericComponent()({ name: "VCardActions", props: makeVCardActionsProps(), setup(props, { slots }) { provideDefaults({ VBtn: { slim: true, variant: "text" } }); useRender(() => createVNode(props.tag, { "class": normalizeClass(["v-card-actions", props.class]), "style": normalizeStyle(props.style) }, slots)); return {}; } }); //#endregion //#region node_modules/vuetify/lib/components/VCard/VCardSubtitle.js var makeVCardSubtitleProps = propsFactory({ opacity: [Number, String], ...makeComponentProps(), ...makeTagProps() }, "VCardSubtitle"); var VCardSubtitle = genericComponent()({ name: "VCardSubtitle", props: makeVCardSubtitleProps(), setup(props, { slots }) { useRender(() => createVNode(props.tag, { "class": normalizeClass(["v-card-subtitle", props.class]), "style": normalizeStyle([{ "--v-card-subtitle-opacity": props.opacity }, props.style]) }, slots)); return {}; } }); //#endregion //#region node_modules/vuetify/lib/components/VCard/VCardTitle.js var VCardTitle = createSimpleFunctional("v-card-title"); //#endregion //#region node_modules/vuetify/lib/components/VCard/VCardItem.js var makeCardItemProps = propsFactory({ appendAvatar: String, appendIcon: IconValue, prependAvatar: String, prependIcon: IconValue, subtitle: { type: [ String, Number, Boolean ], default: void 0 }, title: { type: [ String, Number, Boolean ], default: void 0 }, ...makeComponentProps(), ...makeDensityProps(), ...makeTagProps() }, "VCardItem"); var VCardItem = genericComponent()({ name: "VCardItem", props: makeCardItemProps(), setup(props, { slots }) { useRender(() => { const hasPrependMedia = !!(props.prependAvatar || props.prependIcon); const hasPrepend = !!(hasPrependMedia || slots.prepend); const hasAppendMedia = !!(props.appendAvatar || props.appendIcon); const hasAppend = !!(hasAppendMedia || slots.append); const hasTitle = !!(props.title != null || slots.title); const hasSubtitle = !!(props.subtitle != null || slots.subtitle); return createVNode(props.tag, { "class": normalizeClass(["v-card-item", props.class]), "style": normalizeStyle(props.style) }, { default: () => [ hasPrepend && createBaseVNode("div", { "key": "prepend", "class": "v-card-item__prepend" }, [!slots.prepend ? createBaseVNode(Fragment, null, [props.prependAvatar && createVNode(VAvatar, { "key": "prepend-avatar", "density": props.density, "image": props.prependAvatar }, null), props.prependIcon && createVNode(VIcon, { "key": "prepend-icon", "density": props.density, "icon": props.prependIcon }, null)]) : createVNode(VDefaultsProvider, { "key": "prepend-defaults", "disabled": !hasPrependMedia, "defaults": { VAvatar: { density: props.density, image: props.prependAvatar }, VIcon: { density: props.density, icon: props.prependIcon } } }, slots.prepend)]), createBaseVNode("div", { "class": "v-card-item__content" }, [ hasTitle && createVNode(VCardTitle, { "key": "title" }, { default: () => [slots.title?.() ?? toDisplayString(props.title)] }), hasSubtitle && createVNode(VCardSubtitle, { "key": "subtitle" }, { default: () => [slots.subtitle?.() ?? toDisplayString(props.subtitle)] }), slots.default?.() ]), hasAppend && createBaseVNode("div", { "key": "append", "class": "v-card-item__append" }, [!slots.append ? createBaseVNode(Fragment, null, [props.appendIcon && createVNode(VIcon, { "key": "append-icon", "density": props.density, "icon": props.appendIcon }, null), props.appendAvatar && createVNode(VAvatar, { "key": "append-avatar", "density": props.density, "image": props.appendAvatar }, null)]) : createVNode(VDefaultsProvider, { "key": "append-defaults", "disabled": !hasAppendMedia, "defaults": { VAvatar: { density: props.density, image: props.appendAvatar }, VIcon: { density: props.density, icon: props.appendIcon } } }, slots.append)]) ] }); }); return {}; } }); //#endregion //#region node_modules/vuetify/lib/components/VCard/VCardText.js var makeVCardTextProps = propsFactory({ opacity: [Number, String], ...makeComponentProps(), ...makeTagProps() }, "VCardText"); var VCardText = genericComponent()({ name: "VCardText", props: makeVCardTextProps(), setup(props, { slots }) { useRender(() => createVNode(props.tag, { "class": normalizeClass(["v-card-text", props.class]), "style": normalizeStyle([{ "--v-card-text-opacity": props.opacity }, props.style]) }, slots)); return {}; } }); //#endregion //#region node_modules/vuetify/lib/components/VCard/VCard.js var makeVCardProps = propsFactory({ appendAvatar: String, appendIcon: IconValue, disabled: Boolean, flat: Boolean, hover: Boolean, image: String, link: { type: Boolean, default: void 0 }, prependAvatar: String, prependIcon: IconValue, ripple: { type: [Boolean, Object], default: true }, subtitle: { type: [ String, Number, Boolean ], default: void 0 }, text: { type: [ String, Number, Boolean ], default: void 0 }, title: { type: [ String, Number, Boolean ], default: void 0 }, ...makeBorderProps(), ...makeComponentProps(), ...makeDensityProps(), ...makeDimensionProps(), ...makeElevationProps(), ...makeLoaderProps(), ...makeLocationProps(), ...makePositionProps(), ...makeRoundedProps(), ...makeRouterProps(), ...makeTagProps(), ...makeThemeProps(), ...makeVariantProps({ variant: "elevated" }) }, "VCard"); var VCard = genericComponent()({ name: "VCard", directives: { vRipple: Ripple }, props: makeVCardProps(), setup(props, { attrs, slots }) { const { themeClasses } = provideTheme(props); const { borderClasses } = useBorder(props); const { colorClasses, colorStyles, variantClasses } = useVariant(props); const { densityClasses } = useDensity(props); const { dimensionStyles } = useDimension(props); const { elevationClasses } = useElevation(props); const { loaderClasses } = useLoader(props); const { locationStyles } = useLocation(props); const { positionClasses } = usePosition(props); const { roundedClasses } = useRounded(props); const link = useLink(props, attrs); const loadingColor = shallowRef(void 0); watch(() => props.loading, (val, old) => { loadingColor.value = !val && typeof old === "string" ? old : typeof val === "boolean" ? void 0 : val; }, { immediate: true }); useRender(() => { const isLink = props.link !== false && link.isLink.value; const isClickable = !props.disabled && props.link !== false && (props.link || link.isClickable.value); const Tag = isLink ? "a" : props.tag; const hasTitle = !!(slots.title || props.title != null); const hasSubtitle = !!(slots.subtitle || props.subtitle != null); const hasHeader = hasTitle || hasSubtitle; const hasAppend = !!(slots.append || props.appendAvatar || props.appendIcon); const hasPrepend = !!(slots.prepend || props.prependAvatar || props.prependIcon); const hasImage = !!(slots.image || props.image); const hasCardItem = hasHeader || hasPrepend || hasAppend; const hasText = !!(slots.text || props.text != null); return withDirectives(createVNode(Tag, mergeProps(link.linkProps, { "class": [ "v-card", { "v-card--disabled": props.disabled, "v-card--flat": props.flat, "v-card--hover": props.hover && !(props.disabled || props.flat), "v-card--link": isClickable }, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, loaderClasses.value, positionClasses.value, roundedClasses.value, variantClasses.value, props.class ], "style": [ colorStyles.value, dimensionStyles.value, locationStyles.value, { "--v-card-height": convertToUnit(props.height) }, props.style ], "onClick": isClickable && link.navigate.value, "tabindex": props.disabled ? -1 : void 0 }), { default: () => [ hasImage && createBaseVNode("div", { "key": "image", "class": "v-card__image" }, [!slots.image ? createVNode(VImg, { "key": "image-img", "cover": true, "src": props.image }, null) : createVNode(VDefaultsProvider, { "key": "image-defaults", "disabled": !props.image, "defaults": { VImg: { cover: true, src: props.image } } }, slots.image)]), createVNode(LoaderSlot, { "name": "v-card", "active": !!props.loading, "color": loadingColor.value }, { default: slots.loader }), hasCardItem && createVNode(VCardItem, { "key": "item", "prependAvatar": props.prependAvatar, "prependIcon": props.prependIcon, "title": props.title, "subtitle": props.subtitle, "appendAvatar": props.appendAvatar, "appendIcon": props.appendIcon }, { default: slots.item, prepend: slots.prepend, title: slots.title, subtitle: slots.subtitle, append: slots.append }), hasText && createVNode(VCardText, { "key": "text" }, { default: () => [slots.text?.() ?? props.text] }), slots.default?.(), slots.actions && createVNode(VCardActions, null, { default: slots.actions }), genOverlays(isClickable, "v-card") ] }), [[Ripple, isClickable && props.ripple]]); }); return {}; } }); //#endregion export { VCard, VCardActions, VCardItem, VCardSubtitle, VCardText, VCardTitle }; //# sourceMappingURL=vuetify_components_VCard.js.map