{"version":3,"file":"VCardItem.mjs","names":["VAvatar","VCardSubtitle","VCardTitle","VDefaultsProvider","IconValue","makeDensityProps","genericComponent","useRender","VCardItem","name","props","appendAvatar","String","appendIcon","prependAvatar","prependIcon","subtitle","title","setup","slots","hasPrepend","prepend","hasAppend","append","hasTitle","hasSubtitle","density","icon","image","VIcon","default"],"sources":["../../../src/components/VCard/VCardItem.tsx"],"sourcesContent":["// Components\nimport { VAvatar } from '../VAvatar'\nimport { VCardSubtitle } from './VCardSubtitle'\nimport { VCardTitle } from './VCardTitle'\nimport { VDefaultsProvider } from '../VDefaultsProvider'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeDensityProps } from '@/composables/density'\n\n// Utility\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { MakeSlots } from '@/util'\n\nexport type VCardItemSlots = MakeSlots<{\n  default: []\n  prepend: []\n  append: []\n  title: []\n  subtitle: []\n}>\n\nexport const VCardItem = genericComponent<VCardItemSlots>()({\n  name: 'VCardItem',\n\n  props: {\n    appendAvatar: String,\n    appendIcon: IconValue,\n    prependAvatar: String,\n    prependIcon: IconValue,\n    subtitle: String,\n    title: String,\n\n    ...makeDensityProps(),\n  },\n\n  setup (props, { slots }) {\n    useRender(() => {\n      const hasPrepend = !!(props.prependAvatar || props.prependIcon || slots.prepend)\n      const hasAppend = !!(props.appendAvatar || props.appendIcon || slots.append)\n      const hasTitle = !!(props.title || slots.title)\n      const hasSubtitle = !!(props.subtitle || slots.subtitle)\n\n      return (\n        <div class=\"v-card-item\">\n          { hasPrepend && (\n            <VDefaultsProvider\n              key=\"prepend\"\n              defaults={{\n                VAvatar: {\n                  density: props.density,\n                  icon: props.prependIcon,\n                  image: props.prependAvatar,\n                },\n                VIcon: {\n                  density: props.density,\n                  icon: props.prependIcon,\n                },\n              }}\n            >\n              <div class=\"v-card-item__prepend\">\n                { slots.prepend?.() ?? (<VAvatar />) }\n              </div>\n            </VDefaultsProvider>\n          ) }\n\n          <div class=\"v-card-item__content\">\n            { hasTitle && (\n              <VCardTitle key=\"title\">\n                { slots.title?.() ?? props.title}\n              </VCardTitle>\n            ) }\n\n            { hasSubtitle && (\n              <VCardSubtitle key=\"subtitle\">\n                { slots.subtitle?.() ?? props.subtitle }\n              </VCardSubtitle>\n            ) }\n\n            { slots.default?.() }\n          </div>\n\n          { hasAppend && (\n            <VDefaultsProvider\n              key=\"append\"\n              defaults={{\n                VAvatar: {\n                  density: props.density,\n                  icon: props.appendIcon,\n                  image: props.appendAvatar,\n                },\n                VIcon: {\n                  density: props.density,\n                  icon: props.appendIcon,\n                },\n              }}\n            >\n              <div class=\"v-card-item__append\">\n                { slots.append?.() ?? (<VAvatar />) }\n              </div>\n            </VDefaultsProvider>\n          ) }\n        </div>\n      )\n    })\n\n    return {}\n  },\n})\n\nexport type VCardItem = InstanceType<typeof VCardItem>\n"],"mappings":";AAAA;AAAA,SACSA,OAAO;AAAA,SACPC,aAAa;AAAA,SACbC,UAAU;AAAA,SACVC,iBAAiB,0CAE1B;AAAA,SACSC,SAAS;AAAA,SACTC,gBAAgB,yCAEzB;AAAA,SACSC,gBAAgB,EAAEC,SAAS,gCAEpC;AAWA,OAAO,MAAMC,SAAS,GAAGF,gBAAgB,EAAkB,CAAC;EAC1DG,IAAI,EAAE,WAAW;EAEjBC,KAAK,EAAE;IACLC,YAAY,EAAEC,MAAM;IACpBC,UAAU,EAAET,SAAS;IACrBU,aAAa,EAAEF,MAAM;IACrBG,WAAW,EAAEX,SAAS;IACtBY,QAAQ,EAAEJ,MAAM;IAChBK,KAAK,EAAEL,MAAM;IAEb,GAAGP,gBAAgB;EACrB,CAAC;EAEDa,KAAK,CAAER,KAAK,QAAa;IAAA,IAAX;MAAES;IAAM,CAAC;IACrBZ,SAAS,CAAC,MAAM;MACd,MAAMa,UAAU,GAAG,CAAC,EAAEV,KAAK,CAACI,aAAa,IAAIJ,KAAK,CAACK,WAAW,IAAII,KAAK,CAACE,OAAO,CAAC;MAChF,MAAMC,SAAS,GAAG,CAAC,EAAEZ,KAAK,CAACC,YAAY,IAAID,KAAK,CAACG,UAAU,IAAIM,KAAK,CAACI,MAAM,CAAC;MAC5E,MAAMC,QAAQ,GAAG,CAAC,EAAEd,KAAK,CAACO,KAAK,IAAIE,KAAK,CAACF,KAAK,CAAC;MAC/C,MAAMQ,WAAW,GAAG,CAAC,EAAEf,KAAK,CAACM,QAAQ,IAAIG,KAAK,CAACH,QAAQ,CAAC;MAExD;QAAA,SACa;MAAa,IACpBI,UAAU;QAAA,OAEJ,SAAS;QAAA,YACH;UACRpB,OAAO,EAAE;YACP0B,OAAO,EAAEhB,KAAK,CAACgB,OAAO;YACtBC,IAAI,EAAEjB,KAAK,CAACK,WAAW;YACvBa,KAAK,EAAElB,KAAK,CAACI;UACf,CAAC;UACDe,KAAK,EAAE;YACLH,OAAO,EAAEhB,KAAK,CAACgB,OAAO;YACtBC,IAAI,EAAEjB,KAAK,CAACK;UACd;QACF;MAAC;QAAA;UAAA,SAEU;QAAsB,IAC7BI,KAAK,CAACE,OAAO,IAAI,qCAAiB;MAAA,EAGzC;QAAA,SAEU;MAAsB,IAC7BG,QAAQ;QAAA,OACQ;MAAO;QAAA,gBACnBL,KAAK,CAACF,KAAK,IAAI,IAAIP,KAAK,CAACO,KAAK;MAAA,EAEnC,EAECQ,WAAW;QAAA,OACQ;MAAU;QAAA,gBACzBN,KAAK,CAACH,QAAQ,IAAI,IAAIN,KAAK,CAACM,QAAQ;MAAA,EAEzC,EAECG,KAAK,CAACW,OAAO,IAAI,IAGnBR,SAAS;QAAA,OAEH,QAAQ;QAAA,YACF;UACRtB,OAAO,EAAE;YACP0B,OAAO,EAAEhB,KAAK,CAACgB,OAAO;YACtBC,IAAI,EAAEjB,KAAK,CAACG,UAAU;YACtBe,KAAK,EAAElB,KAAK,CAACC;UACf,CAAC;UACDkB,KAAK,EAAE;YACLH,OAAO,EAAEhB,KAAK,CAACgB,OAAO;YACtBC,IAAI,EAAEjB,KAAK,CAACG;UACd;QACF;MAAC;QAAA;UAAA,SAEU;QAAqB,IAC5BM,KAAK,CAACI,MAAM,IAAI,qCAAiB;MAAA,EAGxC;IAGP,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}