UNPKG

@scania/tegel

Version:
1 lines 4.83 kB
import{r as e,c as a,h as d,H as t,a as r}from"./p-9xxNGlso.js";import{g as s}from"./p-Cn4f8w1e.js";import{h as i}from"./p-DDX6uFcm.js";const o=class{constructor(t){e(this,t),this.tdsClick=a(this,"tdsClick",6),this.modeVariant=null,this.imagePlacement="below-header",this.bodyDivider=!1,this.clickable=!1,this.stretch=!1,this.cardId=s(),this.expandable=!1,this.expanded=!1,this.toggleExpand=()=>{this.expandable&&(this.expanded=!this.expanded)},this.handleClick=()=>{this.tdsClick.emit({cardId:this.cardId})},this.getCardHeader=()=>{const e=i("header",this.host),a=i("subheader",this.host),t=i("thumbnail",this.host);return d("div",{class:{"card-header":!0,expandable:this.expandable,expanded:this.expanded}},t&&d("slot",{name:"thumbnail"}),d("div",{class:"header-subheader",id:`header-${this.cardId}`},this.header&&d("span",{class:"header"},this.header),e&&d("slot",{name:"header"}),this.subheader&&d("span",{class:"subheader"},this.subheader),a&&d("slot",{name:"subheader"})),this.expandable&&d("tds-button",{type:"button",variant:"ghost",size:"sm","tds-aria-label":"Toggle card content","aria-expanded":this.expanded?"true":"false",onClick:this.toggleExpand},d("tds-icon",{slot:"icon",size:"16px",name:"chevron_down",svgTitle:"Chevron Down",class:{rotated:this.expanded}})))},this.getCardContent=()=>{const e=i("body",this.host),a=i("body-image",this.host),t=i("actions",this.host),r=`body-${this.cardId}`;return d("div",{class:{stretch:this.stretch},"aria-describedby":e?r:null},"below-header"===this.imagePlacement&&this.getCardHeader(),d("div",{class:"card-body",id:r},a&&d("slot",{name:"body-image"}),this.bodyImg&&d("img",{class:"card-body-img",src:this.bodyImg,alt:this.bodyImgAlt}),"above-header"===this.imagePlacement&&this.getCardHeader(),this.bodyDivider&&d("tds-divider",null),e&&d("slot",{name:"body"})),t&&d("slot",{name:"actions"}))}}render(){const e={card:!0,clickable:this.clickable,[this.imagePlacement]:!this.stretch,[`${this.imagePlacement}-stretch`]:this.stretch},a=this.header?this.header:`Card ${this.cardId}`;return d(t,{key:"a02da4f8704ad22664fec6ba0b97421094e4cda0",class:{[`tds-mode-variant-${this.modeVariant}`]:!!this.modeVariant}},this.clickable?d("button",{class:e,onClick:this.handleClick,"aria-label":a,"aria-describedby":`header-${this.cardId}`},this.getCardContent()):d("div",{class:e},this.getCardContent()))}get host(){return r(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 .card-header.expandable tds-icon{cursor:pointer;margin-left:auto;transition:transform 160ms ease-in-out, opacity 120ms ease-in-out}.card .card-header.expandable tds-icon.rotated{transform:rotate(180deg)}.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}:host([expandable]:not([expanded])) .card-body slot[name=body]{display:none}";export{o as tds_card}