UNPKG

@scania/tegel

Version:
1 lines 4.16 kB
import{r as d,c as e,h as a,H as r,g as t}from"./p-2049fab2.js";import{g as s}from"./p-11648030.js";import{h as i}from"./p-ae110fc2.js";const o=class{constructor(r){d(this,r),this.tdsClick=e(this,"tdsClick",6),this.handleClick=()=>{this.tdsClick.emit({cardId:this.cardId})},this.getCardHeader=()=>{const d=i("header",this.host),e=i("subheader",this.host),r=i("thumbnail",this.host);return a("div",{class:"card-header"},r&&a("slot",{name:"thumbnail"}),a("div",{class:"header-subheader",id:`header-${this.cardId}`},this.header&&a("span",{class:"header"},this.header),d&&a("slot",{name:"header"}),this.subheader&&a("span",{class:"subheader"},this.subheader),e&&a("slot",{name:"subheader"})))},this.getCardContent=()=>{const d=i("body",this.host),e=i("body-image",this.host),r=i("actions",this.host),t=`body-${this.cardId}`;return a("div",{class:this.stretch&&"stretch","aria-describedby":d?t:null},"below-header"===this.imagePlacement&&this.getCardHeader(),a("div",{class:"card-body",id:t},e&&a("slot",{name:"body-image"}),this.bodyImg&&a("img",{class:"card-body-img",src:this.bodyImg,alt:this.bodyImgAlt}),"above-header"===this.imagePlacement&&this.getCardHeader(),this.bodyDivider&&a("tds-divider",null),d&&a("slot",{name:"body"})),r&&a("slot",{name:"actions"}))},this.modeVariant=null,this.imagePlacement="below-header",this.header=void 0,this.subheader=void 0,this.bodyImg=void 0,this.bodyImgAlt=void 0,this.bodyDivider=!1,this.clickable=!1,this.stretch=!1,this.cardId=s()}render(){const d={card:!0,clickable:this.clickable,[this.imagePlacement]:!this.stretch,[`${this.imagePlacement}-stretch`]:this.stretch};return a(r,{key:"39dde374a44320884af4b8a0da33e24c983417c5",class:this.modeVariant&&`tds-mode-variant-${this.modeVariant}`},this.clickable?a("button",{class:d,onClick:this.handleClick,"aria-label":this.header?this.header:`Card ${this.cardId}`,"aria-describedby":`header-${this.cardId}`},this.getCardContent()):a("div",{class:d},this.getCardContent()))}get host(){return t(this)}};o.style=".card{box-sizing:border-box;box-shadow:var(--tds-card-box);background-color:var(--tds-card-background);display:block;border-radius:4px;overflow:hidden}.card *{box-sizing:border-box}.card.clickable:hover{box-shadow:var(--tds-card-box-hover);cursor:pointer}.card .card-header{font:var(--tds-headline-06);letter-spacing:var(--tds-headline-06-ls);padding:16px;display:flex;align-items:center}.card .card-header slot[name=thumbnail]::slotted(*){width:36px;height:36px;border-radius:100%;margin-right:16px}.card .card-header .card-top-header{padding-left:16px;display:flex;flex-direction:column}.card .card-header .card-top-header.no-header-img{padding-left:0}.card .card-header.below{padding-top:16px}.card .header-subheader{display:flex;flex-direction:column;width:100%;gap:4px}.card .header-subheader .header,.card .header-subheader slot[name=header]{color:var(--tds-card-headline)}.card .header-subheader .subheader,.card .header-subheader slot[name=subheader]{color:var(--tds-card-sub-headline)}.card .card-body-img{width:100%}.card .tds-divider{margin:16px 16px 0;background-color:var(--tds-card-divider);height:1px}.card .card-body{display:block;word-wrap:break-word}.card slot[name=body]::slotted(*){font:var(--tds-detail-03) !important;letter-spacing:var(--tds-detail-03-ls) !important;color:var(--tds-card-body-color);padding:0 16px;margin-bottom:16px;margin-top:16px;max-width:336px}.card slot[name=actions]::slotted(*){display:flex;padding:16px;color:var(--tds-card-icon-color)}button{width:100%;border:none;text-align:left;padding:0}button:focus-visible{outline:2px solid var(--tds-blue-400);outline-offset:-2px}button:active{box-shadow:var(--tds-card-box-pressed)}.below-header-stretch,.above-header-stretch{display:flex;flex-direction:column}.below-header-stretch .stretch,.above-header-stretch .stretch{display:flex;flex-direction:column;flex-grow:1;width:100%}.below-header-stretch .card-body,.above-header-stretch .card-body{display:flex;flex-direction:column;flex-grow:1}.below-header-stretch .card-body slot[name=body]::slotted(*),.above-header-stretch .card-body slot[name=body]::slotted(*){max-width:unset;flex-grow:1}";export{o as tds_card}