@contentful/f36-card 5.6.0 → 6.0.0-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/esm/index.js CHANGED
@@ -1,21 +1,3 @@
1
- import b, { forwardRef, useState, useCallback } from 'react';
2
- import { cx, css } from 'emotion';
3
- import { Box, Flex, getEntityStatusStyles } from '@contentful/f36-core';
4
- import { EntityStatusBadge } from '@contentful/f36-badge';
5
- import { Asset } from '@contentful/f36-asset';
6
- import { Skeleton } from '@contentful/f36-skeleton';
7
- import { DragHandle } from '@contentful/f36-drag-handle';
8
- import n from '@contentful/f36-tokens';
9
- import { Heading, Text, Subheading, Paragraph } from '@contentful/f36-typography';
10
- import { IconButton } from '@contentful/f36-button';
11
- import { DotsThreeIcon } from '@contentful/f36-icons';
12
- import { Menu } from '@contentful/f36-menu';
13
- import Tr from 'truncate';
14
- import { Tooltip } from '@contentful/f36-tooltip';
15
-
16
- var jr=Object.defineProperty,Yr=Object.defineProperties;var Kr=Object.getOwnPropertyDescriptors;var z=Object.getOwnPropertySymbols;var pr=Object.prototype.hasOwnProperty,lr=Object.prototype.propertyIsEnumerable;var dr=(r,e,t)=>e in r?jr(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,l=(r,e)=>{for(var t in e||(e={}))pr.call(e,t)&&dr(r,t,e[t]);if(z)for(var t of z(e))lr.call(e,t)&&dr(r,t,e[t]);return r},y=(r,e)=>Yr(r,Kr(e));var h=(r,e)=>{var t={};for(var o in r)pr.call(r,o)&&e.indexOf(o)<0&&(t[o]=r[o]);if(r!=null&&z)for(var o of z(r))e.indexOf(o)<0&&lr.call(r,o)&&(t[o]=r[o]);return t};var mr=()=>({contentBody:css({gridColumn:"content",gridRow:"content",whiteSpace:"initial"}),wrapper:css({flex:"1 1 0",display:"grid",gridTemplateRows:"[header] auto [content] minmax(0, 1fr)",gridTemplateColumns:"auto [content] minmax(0, 1fr)"}),dragHandle:css({borderBottomLeftRadius:n.borderRadiusMedium,borderTopLeftRadius:n.borderRadiusMedium,cursor:"grab"}),root:({hasHeader:r,isHovered:e,isSelected:t})=>{let o={backgroundColor:n.colorWhite,borderColor:n.gray300,borderRadius:n.borderRadiusMedium,borderStyle:"solid",borderWidth:1,color:n.gray900,display:"flex",textAlign:"left",width:"100%",fontSize:n.fontSizeM,fontWeight:n.fontWeightNormal,position:"relative",textDecoration:"none",margin:0,transition:`border-color ${n.transitionDurationDefault} ${n.transitionEasingDefault},
17
- box-shadow ${n.transitionDurationShort} ${n.transitionEasingDefault}`,"&:focus":css({borderColor:t?n.blue100:n.blue500,boxShadow:n.glowPrimary,outline:"none"}),"&:focus:not(:focus-visible)":css({borderColor:t?n.blue500:n.gray300,boxShadow:"unset"}),"&:focus-visible":css({borderColor:n.blue500,boxShadow:n.glowPrimary})};return r||(o.paddingTop=n.spacingM),e&&(o.borderColor=n.blue500,o.cursor="pointer"),t&&(o.backgroundColor=n.blue100,o.borderColor=n.blue500),css(o)},skeleton:css({border:`1px solid ${n.gray300}`,borderRadius:n.borderRadiusMedium,padding:n.spacingM})});var cr=()=>({root:css({minHeight:"auto",padding:n.spacing2Xs})});var v=({buttonProps:r,children:e})=>{let t=cr();return b.createElement(Menu,null,b.createElement(Menu.Trigger,null,b.createElement(IconButton,y(l({"aria-label":"Actions",icon:b.createElement(DotsThreeIcon,null)},r),{className:cx(t.root,r==null?void 0:r.className),size:"small",variant:"transparent",testId:"cf-ui-card-actions"}))),b.createElement(Menu.List,null,e))};var te=()=>({header:css({columnGap:n.spacingXs,rowGap:n.spacing2Xs,alignItems:"center",borderBottomColor:n.gray200,borderBottomStyle:"solid",borderBottomWidth:1,borderTopLeftRadius:n.borderRadiusMedium,borderTopRightRadius:n.borderRadiusMedium,boxSizing:"border-box",color:n.gray600,fontSize:n.fontSizeM,fontWeight:n.fontWeightNormal,gridColumn:"content",gridRow:"header",lineHeight:n.lineHeightM,paddingBottom:n.spacingXs,paddingLeft:n.spacingM,paddingRight:n.spacingXs,paddingTop:n.spacingXs,minHeight:"37px"}),headerWithActions:css({paddingBottom:n.spacing2Xs,paddingRight:n.spacingXs,paddingTop:n.spacing2Xs})}),O=r=>{r.preventDefault(),r.stopPropagation();},G=r=>{let{icon:e,type:t,actions:o,actionsButtonProps:s,badge:m,customActionButton:i}=r,d=te(),c=()=>i?b.createElement(Flex,{onClick:O,alignItems:"center"},i):o&&o.length>0?b.createElement(Flex,{onClick:O,alignItems:"center"},b.createElement(v,{buttonProps:s},o)):null;return b.createElement(Flex,{flexWrap:"wrap",className:cx(d.header,(o||i)&&d.headerWithActions)},b.createElement(Flex,{flexGrow:1},t&&b.createElement(Text,{fontColor:"gray600",isWordBreak:!0},t)),e&&b.createElement(Flex,{alignItems:"center"},e),m&&b.createElement(Flex,{alignItems:"center"},m),c())};G.displayName="DefaultCardHeader";var de="article";function gr(Ie,vr){var nr=Ie,{actions:r,actionsButtonProps:e,ariaLabel:t,badge:o,children:s,className:m,contentBodyProps:i,customActionButton:d,header:c,href:g,icon:f,isDragging:p=!1,isHovered:u,isSelected:R=!1,onBlur:M,onClick:x,onFocus:B,onKeyDown:A,onMouseEnter:P,onMouseLeave:L,target:Y,rel:wr,testId:kr="cf-ui-base-card",title:Z,type:rr,withDragHandle:er,dragHandleRender:tr,isLoading:Rr}=nr,or=h(nr,["actions","actionsButtonProps","ariaLabel","badge","children","className","contentBodyProps","customActionButton","header","href","icon","isDragging","isHovered","isSelected","onBlur","onClick","onFocus","onKeyDown","onMouseEnter","onMouseLeave","target","rel","testId","title","type","withDragHandle","dragHandleRender","isLoading"]);let W=mr(),[Fr,ar]=useState(u!=null?u:!1),sr=!!(x||g||er),Nr=!!c,Wr=rr||f||o||r||d?b.createElement(G,{type:rr,icon:f,badge:o,actions:r,customActionButton:d,actionsButtonProps:e}):null,Xr=useCallback(E=>{B&&B(E);},[B]),Gr=useCallback(E=>{M&&M(E);},[M]),Ur=useCallback(E=>{ar(!0),P&&P(E);},[P]),$r=useCallback(E=>{ar(!1),L&&L(E);},[L]),zr=x?E=>{x(E);}:void 0,Or=useCallback(E=>{A&&A(E);},[A]);if(Rr)return b.createElement(Skeleton.Container,{className:W.skeleton,svgHeight:"5.6rem"},b.createElement(Skeleton.DisplayText,{numberOfLines:1}),b.createElement(Skeleton.BodyText,{numberOfLines:1,offsetTop:35}));let ir=b.createElement(DragHandle,{className:W.dragHandle,isActive:p,label:"Reorder entry",onClick:O});return b.createElement(Box,y(l({"aria-label":Z||t,"aria-pressed":or.as==="button"?R?"true":"false":void 0,as:de,className:cx(W.root({hasHeader:Nr,isHovered:Fr,isSelected:R}),m),href:g,onBlur:Gr,onClick:zr,onFocus:Xr,onMouseEnter:typeof u=="undefined"&&sr?Ur:void 0,onMouseLeave:typeof u=="undefined"&&sr?$r:void 0,onKeyDown:Or,rel:g&&(wr||"noreferrer"),role:x&&!g?"button":void 0,tabIndex:x?0:void 0,target:Y},or),{ref:vr,testId:kr,title:Z}),er?tr?tr({drag:ir,isDragging:p}):ir:null,b.createElement("div",{className:W.wrapper,"data-card-part":"wrapper"},c!=null?c:Wr,b.createElement("div",{className:W.contentBody,"data-card-part":"content"},s)))}gr.displayName="BaseCard";var D=forwardRef(gr);var ur=()=>({root:({size:r})=>css({display:"inline-flex",width:"auto",borderRadius:n.borderRadiusMedium,minWidth:`calc(1rem * (120 / ${n.fontBaseDefault}))`,height:r==="small"?`calc(1rem * (188 / ${n.fontBaseDefault}))`:`calc(1rem * (300 / ${n.fontBaseDefault}))`,padding:0,textAlign:"center"}),asset:css({height:"100%"}),skeleton:css({border:`1px solid ${n.gray300}`,borderRadius:n.borderRadiusMedium,padding:n.spacingM})});var Cr=M=>{var x=M,{actions:r,className:e,icon:t=null,isSelected:o,size:s="default",src:m,status:i,title:d,type:c,withDragHandle:g=!1,isLoading:f,testId:p="cf-ui-asset-card",badge:u}=x,R=h(x,["actions","className","icon","isSelected","size","src","status","title","type","withDragHandle","isLoading","testId","badge"]);let B=ur(),A=u||(i?b.createElement(EntityStatusBadge,{entityStatus:i}):null),P=t||A||r?b.createElement(G,{icon:t,badge:A,actions:r}):null;return f?b.createElement(Skeleton.Container,{className:B.skeleton,svgWidth:s==="default"?"18rem":"11rem",svgHeight:s==="default"?"18.75rem":"12rem"},b.createElement(Skeleton.Image,{width:"100%",height:"18.75rem"})):b.createElement(D,y(l({},R),{badge:A,className:cx(B.root({size:s}),e),header:P,isSelected:o,title:d,withDragHandle:g,testId:p}),b.createElement(Flex,{alignItems:"center",fullHeight:!0,justifyContent:"center"},b.createElement(Asset,{className:B.asset,src:m,status:i,title:d,type:c})))};var fe=r=>{switch(r){case"large":return n.spacingL;case"none":return 0;default:return n.spacingM}},xr=({padding:r})=>({header:css({gridColumn:"content",gridRow:"header",marginBottom:n.spacingM}),root:css({padding:fe(r)})});function Br(g,c){var f=g,{actions:r,badge:e,icon:t,padding:o="default",title:s,className:m,testId:i="cf-ui-card"}=f,d=h(f,["actions","badge","icon","padding","title","className","testId"]);let p=xr({padding:o}),u=!!(s||t||e||r);return b.createElement(D,y(l({className:cx(p.root,m)},d),{testId:i,header:u&&b.createElement(Flex,{alignItems:"center",className:cx(p.header)},s&&b.createElement(Flex,{as:"header",flexGrow:1},b.createElement(Heading,{marginBottom:"none"},s)),t&&b.createElement(Flex,{alignItems:"center",marginLeft:"spacingXs"},t),e&&b.createElement(Flex,{alignItems:"center",marginLeft:"spacingXs"},e),r&&b.createElement(v,null,r)),ref:c}))}Br.displayName="Card";var br=forwardRef(Br);var Ar=()=>({actionsButton:css({borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:n.borderRadiusMedium}),content:r=>css({gridColumn:"content",marginTop:r==="small"?n.spacingXs:n.spacingS,marginBottom:r==="small"?`calc(-1 * ${n.spacingXs})`:0}),root:css({padding:0,'[data-card-part="content"]':{paddingBottom:n.spacingM,paddingLeft:n.spacingM,paddingRight:n.spacingM}}),header:css({borderBottomWidth:1,borderBottomColor:n.gray200,borderBottomStyle:"solid",minHeight:"auto",paddingBottom:n.spacingXs,paddingLeft:n.spacingM,paddingRight:n.spacingXs}),thumbnail:r=>css(l({margin:`0 0 0 ${n.spacingS}`,padding:0,overflow:"hidden",position:"relative",img:{width:"100%",height:"100%",objectFit:"cover",position:"absolute",zIndex:1}},r==="small"?{height:"40px",width:"40px"}:{height:"70px",width:"70px"}))});var Be="article";function Ir({title:r,titleTag:e}){if(!r)return null;let t=Tr(r,255,{});return b.createElement(Subheading,{title:r.length>255?r:"",testId:"title",as:e,marginBottom:"none",isWordBreak:!0},t)}Ir.displayName="EntryCardTitle";function Sr({description:r,size:e}){if(!r||e==="small")return null;let t=Tr(r,95,{});return b.createElement(Paragraph,{marginBottom:"none",isWordBreak:!0},t)}Sr.displayName="EntryCardDescription";function Dr(A,B){var P=A,{actions:r,children:e,className:t,customActionButton:o,src:s,status:m,thumbnailElement:i,description:d,withDragHandle:c=!1,title:g,titleTag:f="h2",size:p,testId:u="cf-ui-entry-card",contentType:R,badge:M}=P,x=h(P,["actions","children","className","customActionButton","src","status","thumbnailElement","description","withDragHandle","title","titleTag","size","testId","contentType","badge"]);let L=Ar(),Y=m?b.createElement(EntityStatusBadge,{entityStatus:m}):null;return b.createElement(D,y(l({as:Be},x),{actions:r,badge:M||Y,className:cx(L.root,t),customActionButton:o,withDragHandle:c,ref:B,type:R,testId:u}),b.createElement(Flex,{alignItems:"center",className:L.content(p),flexDirection:"row"},b.createElement(Flex,{flexDirection:"column",flexGrow:1,gap:"spacingS"},b.createElement(Ir,{title:g,titleTag:f}),b.createElement(Sr,{size:p,description:d}),e),i&&p!=="small"&&b.createElement("figure",{className:L.thumbnail(p)},i)))}Dr.displayName="EntryCard";var Hr=forwardRef(Dr);var Mr=()=>({actions:css({display:"flex",padding:0,marginLeft:n.spacingXs,minHeight:"auto"}),root:({status:r})=>{let e=getEntityStatusStyles({status:r});return css({borderBottomLeftRadius:0,borderTopLeftRadius:0,display:"inline-flex",width:"auto",verticalAlign:"middle",paddingBottom:0,paddingTop:0,paddingLeft:n.spacingS,paddingRight:n.spacing2Xs,'[data-card-part="wrapper"]':{display:"inline-flex",flexDirection:"row-reverse"},"&::before":{backgroundColor:e.color,bottom:0,content:'""',display:"block",left:0,position:"absolute",top:0,width:n.spacing2Xs}})},skeleton:css({display:"inline-flex",border:`1px solid ${n.gray300}`,borderTopRightRadius:n.borderRadiusMedium,borderBottomRightRadius:n.borderRadiusMedium,padding:n.spacingXs})});var _r=c=>{var g=c,{actions:r,className:e,children:t,status:o,title:s,isLoading:m,testId:i="cf-ui-inline-entry-card"}=g,d=h(g,["actions","className","children","status","title","isLoading","testId"]);let f=Mr(),p=b.createElement(v,{buttonProps:{className:f.actions}},r);return m?b.createElement(Skeleton.Container,{className:f.skeleton,svgHeight:"1.25rem",svgWidth:"6rem"},b.createElement(Skeleton.BodyText,{numberOfLines:1})):b.createElement(Tooltip,{placement:"bottom",content:s},b.createElement(D,y(l({},d),{className:cx(f.root({status:o}),e),header:p,testId:i}),t||b.createElement(Text,null,s)))};
18
-
19
- export { Cr as AssetCard, br as Card, Hr as EntryCard, _r as InlineEntryCard };
20
- //# sourceMappingURL=out.js.map
1
+ import m,{forwardRef,useState,useCallback}from'react';import {css,cx}from'@emotion/css';import {Box,Flex,getEntityStatusStyles}from'@contentful/f36-core';import {EntityStatusBadge}from'@contentful/f36-badge';import {Asset}from'@contentful/f36-asset';import {Skeleton}from'@contentful/f36-skeleton';import {DragHandle}from'@contentful/f36-drag-handle';import o from'@contentful/f36-tokens';import {Heading,Text,Subheading,Paragraph}from'@contentful/f36-typography';import {IconButton}from'@contentful/f36-button';import {DotsThreeIcon}from'@contentful/f36-icons';import {Menu}from'@contentful/f36-menu';import Nr from'truncate';import {Tooltip}from'@contentful/f36-tooltip';var ee=Object.defineProperty,te=Object.defineProperties;var oe=Object.getOwnPropertyDescriptors;var O=Object.getOwnPropertySymbols;var Er=Object.prototype.hasOwnProperty,xr=Object.prototype.propertyIsEnumerable;var Cr=(r,e,t)=>e in r?ee(r,e,{enumerable:true,configurable:true,writable:true,value:t}):r[e]=t,a=(r,e)=>{for(var t in e||(e={}))Er.call(e,t)&&Cr(r,t,e[t]);if(O)for(var t of O(e))xr.call(e,t)&&Cr(r,t,e[t]);return r},p=(r,e)=>te(r,oe(e));var x=(r,e)=>{var t={};for(var n in r)Er.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&O)for(var n of O(r))e.indexOf(n)<0&&xr.call(r,n)&&(t[n]=r[n]);return t};var hr=()=>({contentBody:css({gridColumn:"content",gridRow:"content",whiteSpace:"initial"}),wrapper:css({flex:"1 1 0",display:"grid",gridTemplateRows:"[header] auto [content] minmax(0, 1fr)",gridTemplateColumns:"auto [content] minmax(0, 1fr)"}),dragHandle:css({borderBottomLeftRadius:o.borderRadiusMedium,borderTopLeftRadius:o.borderRadiusMedium,cursor:"grab"}),skeleton:css({border:`1px solid ${o.gray300}`,borderRadius:o.borderRadiusMedium,padding:o.spacingM})}),Br=(r,e,t)=>({root:css(p(a(a({backgroundColor:o.colorWhite,borderColor:o.gray300,borderRadius:o.borderRadiusMedium,borderStyle:"solid",borderWidth:1,color:o.gray900,display:"flex",textAlign:"left",width:"100%",fontSize:o.fontSizeM,fontWeight:o.fontWeightNormal,position:"relative",textDecoration:"none",margin:0,transition:`border-color ${o.transitionDurationDefault} ${o.transitionEasingDefault},
2
+ box-shadow ${o.transitionDurationShort} ${o.transitionEasingDefault}`,paddingTop:r?0:o.spacingM},e&&{borderColor:o.blue500,cursor:"pointer"}),t&&{backgroundColor:o.blue100,borderColor:o.blue500}),{"&:focus":css({borderColor:t?o.blue100:o.blue500,boxShadow:o.glowPrimary,outline:"none"}),"&:focus:not(:focus-visible)":css({borderColor:t?o.blue500:o.gray300,boxShadow:"unset"}),"&:focus-visible":css({borderColor:o.blue500,boxShadow:o.glowPrimary})}))});var br=()=>({root:css({minHeight:"auto",padding:o.spacing2Xs})});var k=({buttonProps:r,children:e})=>{let t=br();return m.createElement(Menu,null,m.createElement(Menu.Trigger,null,m.createElement(IconButton,p(a({},r),{"aria-label":"Actions",icon:m.createElement(DotsThreeIcon,null),className:cx(t.root,r==null?void 0:r.className),size:"small",variant:"transparent",testId:"cf-ui-card-actions"}))),m.createElement(Menu.List,null,e))};k.displayName="CardActions";var Pr=()=>({header:css({columnGap:o.spacingXs,rowGap:o.spacing2Xs,alignItems:"center",borderBottomColor:o.gray200,borderBottomStyle:"solid",borderBottomWidth:1,borderTopLeftRadius:o.borderRadiusMedium,borderTopRightRadius:o.borderRadiusMedium,boxSizing:"border-box",color:o.gray600,fontSize:o.fontSizeM,fontWeight:o.fontWeightNormal,gridColumn:"content",gridRow:"header",lineHeight:o.lineHeightM,paddingBottom:o.spacingXs,paddingLeft:o.spacingM,paddingRight:o.spacingXs,paddingTop:o.spacingXs,minHeight:"37px"}),headerWithActions:css({paddingBottom:o.spacing2Xs,paddingRight:o.spacingXs,paddingTop:o.spacing2Xs})});var Y=r=>{r.preventDefault(),r.stopPropagation();},G=r=>{let{icon:e,type:t,actions:n,actionsButtonProps:c,badge:f,customActionButton:i}=r,d=Pr(),y=()=>i?m.createElement(Flex,{onClick:Y,alignItems:"center"},i):n&&n.length>0?m.createElement(Flex,{onClick:Y,alignItems:"center"},m.createElement(k,{buttonProps:c},n)):null;return m.createElement(Flex,{flexWrap:"wrap",className:cx(d.header,(n||i)&&d.headerWithActions)},m.createElement(Flex,{flexGrow:1},t&&m.createElement(Text,{fontColor:"gray600",isWordBreak:true},t)),e&&m.createElement(Flex,{alignItems:"center"},e),f&&m.createElement(Flex,{alignItems:"center"},f),y())};G.displayName="DefaultCardHeader";var ge="article";function Tr(ke,V){var pr=ke,{actions:r,actionsButtonProps:e,ariaLabel:t,badge:n,children:c,className:f,customActionButton:i,header:d,href:y,icon:E,isDragging:g=false,isHovered:s,isSelected:h=false,onBlur:L,onClick:B,onFocus:P,onKeyDown:b,onMouseEnter:T,onMouseLeave:I,target:R,rel:W,testId:zr="cf-ui-base-card",title:ar,type:sr,withDragHandle:ir,dragHandleRender:dr,isLoading:Or,as:Yr}=pr,K=x(pr,["actions","actionsButtonProps","ariaLabel","badge","children","className","customActionButton","header","href","icon","isDragging","isHovered","isSelected","onBlur","onClick","onFocus","onKeyDown","onMouseEnter","onMouseLeave","target","rel","testId","title","type","withDragHandle","dragHandleRender","isLoading","as"]);let z=hr(),[jr,lr]=useState(s!=null?s:false),Kr=!!(B||y||ir),Vr=!!d,qr=sr||E||n||r||i?m.createElement(G,{type:sr,icon:E,badge:n,actions:r,customActionButton:i,actionsButtonProps:e}):null,mr=useCallback(C=>{P&&P(C);},[P]),cr=useCallback(C=>{L&&L(C);},[L]),fr=useCallback(C=>{lr(true),T&&T(C);},[T]),gr=useCallback(C=>{lr(false),I&&I(C);},[I]),Jr=B?C=>{B(C);}:void 0,Qr=useCallback(C=>{b&&b(C);},[b]);if(Or)return m.createElement(Skeleton.Container,{className:z.skeleton,svgHeight:"5.6rem"},m.createElement(Skeleton.DisplayText,{numberOfLines:1}),m.createElement(Skeleton.BodyText,{numberOfLines:1,offsetTop:35}));let ur=m.createElement(DragHandle,{className:z.dragHandle,isActive:g,label:"Reorder entry",onClick:Y}),q=()=>m.createElement(m.Fragment,null,ir?dr?dr({drag:ur,isDragging:g}):ur:null,m.createElement("div",{className:z.wrapper,"data-card-part":"wrapper"},d!=null?d:qr,m.createElement("div",{className:z.contentBody,"data-card-part":"content"},c))),yr=Yr||ge,Zr=Br(Vr,jr,h),J={testId:zr,className:cx(Zr.root,f),"aria-label":ar||t,title:ar},re={href:y,target:R,rel:W!=null?W:"noreferrer"};if(yr==="a")return m.createElement(Box,a(p(a(a({as:"a"},re),J),{ref:V,onFocus:mr,onBlur:cr,onMouseEnter:typeof s=="undefined"?fr:void 0,onMouseLeave:typeof s=="undefined"?gr:void 0}),K),m.createElement(q,null));let Q=yr;return Kr?m.createElement(Box,a(p(a({as:Q},J),{"aria-pressed":Q==="button"?!!h:void 0,onBlur:cr,onClick:Jr,onFocus:mr,onMouseEnter:typeof s=="undefined"?fr:void 0,onMouseLeave:typeof s=="undefined"?gr:void 0,onKeyDown:Qr,role:B?"button":void 0,tabIndex:B?0:void 0,ref:V}),K),m.createElement(q,null)):m.createElement(Box,p(a(a({as:Q},J),K),{ref:V}),m.createElement(q,null))}Tr.displayName="BaseCard";var M=m.forwardRef(Tr);var Ir=()=>({root:({size:r})=>css({display:"inline-flex",width:"auto",borderRadius:o.borderRadiusMedium,minWidth:`calc(1rem * (120 / ${o.fontBaseDefault}))`,height:r==="small"?`calc(1rem * (188 / ${o.fontBaseDefault}))`:`calc(1rem * (300 / ${o.fontBaseDefault}))`,padding:0,textAlign:"center"}),asset:css({height:"100%"}),skeleton:css({border:`1px solid ${o.gray300}`,borderRadius:o.borderRadiusMedium,padding:o.spacingM})});var Dr=B=>{var P=B,{actions:r,className:e,icon:t=null,isSelected:n,size:c="default",src:f,status:i,title:d,type:y,withDragHandle:E=false,isLoading:g,testId:s="cf-ui-asset-card",badge:h}=P,L=x(P,["actions","className","icon","isSelected","size","src","status","title","type","withDragHandle","isLoading","testId","badge"]);let b=Ir(),T=h||(i?m.createElement(EntityStatusBadge,{entityStatus:i}):null),I=t||T||r?m.createElement(G,{icon:t,badge:T,actions:r}):null;return g?m.createElement(Skeleton.Container,{className:b.skeleton,svgWidth:c==="default"?"18rem":"11rem",svgHeight:c==="default"?"18.75rem":"12rem"},m.createElement(Skeleton.Image,{width:"100%",height:"18.75rem"})):m.createElement(M,p(a({},L),{badge:T,className:cx(b.root({size:c}),e),header:I,isSelected:n,title:d,withDragHandle:E,testId:s}),m.createElement(Flex,{alignItems:"center",fullHeight:true,justifyContent:"center"},m.createElement(Asset,{className:b.asset,src:f,status:i,title:d,type:y})))};var xe=r=>{switch(r){case "large":return o.spacingL;case "none":return 0;default:return o.spacingM}},Hr=({padding:r})=>({header:css({gridColumn:"content",gridRow:"header",marginBottom:o.spacingM}),root:css({padding:xe(r)})});function kr(E,y){var g=E,{actions:r,badge:e,icon:t,padding:n="default",title:c,className:f,testId:i="cf-ui-card"}=g,d=x(g,["actions","badge","icon","padding","title","className","testId"]);let s=Hr({padding:n}),h=!!(c||t||e||r);return m.createElement(M,p(a({className:cx(s.root,f)},d),{testId:i,header:h&&m.createElement(Flex,{alignItems:"center",className:cx(s.header)},c&&m.createElement(Flex,{as:"header",flexGrow:1},m.createElement(Heading,{marginBottom:"none"},c)),t&&m.createElement(Flex,{alignItems:"center",marginLeft:"spacingXs"},t),e&&m.createElement(Flex,{alignItems:"center",marginLeft:"spacingXs"},e),r&&m.createElement(k,null,r)),ref:y}))}kr.displayName="Card";var wr=forwardRef(kr);var _r=()=>({actionsButton:css({borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:o.borderRadiusMedium}),content:r=>css({gridColumn:"content",marginTop:r==="small"?o.spacingXs:o.spacingS,marginBottom:r==="small"?`calc(-1 * ${o.spacingXs})`:0}),root:css({padding:0,'[data-card-part="content"]':{paddingBottom:o.spacingM,paddingLeft:o.spacingM,paddingRight:o.spacingM}}),header:css({borderBottomWidth:1,borderBottomColor:o.gray200,borderBottomStyle:"solid",minHeight:"auto",paddingBottom:o.spacingXs,paddingLeft:o.spacingM,paddingRight:o.spacingXs}),thumbnail:r=>css(a({margin:`0 0 0 ${o.spacingS}`,padding:0,overflow:"hidden",position:"relative",img:{width:"100%",height:"100%",objectFit:"cover",position:"absolute",zIndex:1}},r==="small"?{height:"40px",width:"40px"}:{height:"70px",width:"70px"}))});var Se="article";function vr({title:r,titleTag:e}){if(!r)return null;let t=Nr(r,255,{});return m.createElement(Subheading,{title:r.length>255?r:"",testId:"title",as:e,marginBottom:"none",isWordBreak:true},t)}vr.displayName="EntryCardTitle";function Rr({description:r,size:e}){if(!r||e==="small")return null;let t=Nr(r,95,{});return m.createElement(Paragraph,{marginBottom:"none",isWordBreak:true},t)}Rr.displayName="EntryCardDescription";function Wr(T,b){var I=T,{actions:r,children:e,className:t,customActionButton:n,src:c,status:f,thumbnailElement:i,description:d,withDragHandle:y=false,title:E,titleTag:g="h2",size:s,testId:h="cf-ui-entry-card",contentType:L,badge:B}=I,P=x(I,["actions","children","className","customActionButton","src","status","thumbnailElement","description","withDragHandle","title","titleTag","size","testId","contentType","badge"]);let R=_r(),W=f?m.createElement(EntityStatusBadge,{entityStatus:f}):null;return m.createElement(M,p(a({as:Se},P),{actions:r,badge:B||W,className:cx(R.root,t),customActionButton:n,withDragHandle:y,ref:b,type:L,testId:h}),m.createElement(Flex,{alignItems:"center",className:R.content(s),flexDirection:"row"},m.createElement(Flex,{flexDirection:"column",flexGrow:1,gap:"spacingS"},m.createElement(vr,{title:E,titleTag:g}),m.createElement(Rr,{size:s,description:d}),e),i&&s!=="small"&&m.createElement("figure",{className:R.thumbnail(s)},i)))}Wr.displayName="EntryCard";var Xr=forwardRef(Wr);var Gr=()=>({actions:css({display:"flex",padding:0,marginLeft:o.spacingXs,minHeight:"auto"}),root:({status:r})=>{let e=getEntityStatusStyles({status:r});return css({borderBottomLeftRadius:0,borderTopLeftRadius:0,display:"inline-flex",width:"auto",verticalAlign:"middle",paddingBottom:0,paddingTop:0,paddingLeft:o.spacingS,paddingRight:o.spacing2Xs,'[data-card-part="wrapper"]':{display:"inline-flex",flexDirection:"row-reverse"},"&::before":{backgroundColor:e.color,bottom:0,content:'""',display:"block",left:0,position:"absolute",top:0,width:o.spacing2Xs}})},skeleton:css({display:"inline-flex",border:`1px solid ${o.gray300}`,borderTopRightRadius:o.borderRadiusMedium,borderBottomRightRadius:o.borderRadiusMedium,padding:o.spacingXs})});var $r=y=>{var E=y,{actions:r,className:e,children:t,status:n,title:c,isLoading:f,testId:i="cf-ui-inline-entry-card"}=E,d=x(E,["actions","className","children","status","title","isLoading","testId"]);let g=Gr(),s=m.createElement(k,{buttonProps:{className:g.actions}},r);return f?m.createElement(Skeleton.Container,{className:g.skeleton,svgHeight:"1.25rem",svgWidth:"6rem"},m.createElement(Skeleton.BodyText,{numberOfLines:1})):m.createElement(Tooltip,{placement:"bottom",content:c},m.createElement(M,p(a({},d),{className:cx(g.root({status:n}),e),header:s,testId:i}),t||m.createElement(Text,null,c)))};export{Dr as AssetCard,wr as Card,Xr as EntryCard,$r as InlineEntryCard};//# sourceMappingURL=index.js.map
21
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/AssetCard/AssetCard.tsx","../../src/BaseCard/BaseCard.tsx","../../src/BaseCard/BaseCard.styles.ts","../../src/BaseCard/DefaultCardHeader.tsx","../../src/BaseCard/CardActions.tsx","../../src/BaseCard/CardActions.styles.ts","../../src/AssetCard/AssetCard.styles.ts","../../src/Card/Card.tsx","../../src/Card/Card.styles.ts","../../src/EntryCard/EntryCard.tsx","../../src/EntryCard/EntryCard.styles.ts","../../src/InlineEntryCard/InlineEntryCard.tsx","../../src/InlineEntryCard/InlineEntryCard.styles.ts"],"names":["React","cx","Flex","EntityStatusBadge","Asset","Skeleton","forwardRef","useCallback","useState","Box","DragHandle","css","tokens","getBaseCardStyles","hasHeader","isHovered","isSelected","styles","Text","IconButton","DotsThreeIcon","Menu","getCardActionsStyles","CardActions","buttonProps","children","__spreadProps","__spreadValues","getHeaderStyles","stopEvents","e","DefaultCardHeader","props","icon","type","actions","actionsButtonProps","badge","customActionButton","renderActionButton","BASE_CARD_DEFAULT_TAG","_BaseCard","_a","forwardedRef","_b","ariaLabel","className","contentBodyProps","header","href","isDragging","isHoveredProp","onBlur","onClick","onFocus","onKeyDown","onMouseEnter","onMouseLeave","target","rel","testId","title","withDragHandle","dragHandleRender","isLoading","otherProps","__objRest","setIsHovered","isInteractive","defaultHeader","handleFocus","event","handleBlur","handleMouseEnter","handleMouseLeave","handleClick","handleKeyDown","drag","BaseCard","getAssetCardStyles","size","AssetCard","src","status","customBadge","Heading","getCardPaddingValue","padding","getCardStyles","_Card","Card","truncate","Subheading","Paragraph","getEntryCardStyles","ENTRY_CARD_DEFAULT_TAG","EntryCardTitle","titleTag","truncatedTitle","EntryCardDescription","description","truncatedDescription","_EntryCard","thumbnailElement","contentType","entryStatusBadge","EntryCard","Tooltip","getEntityStatusStyles","getInlineEntryCardStyles","statusColors","InlineEntryCard"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { cx } from 'emotion';\nimport { Flex } from '@contentful/f36-core';\nimport { EntityStatusBadge } from '@contentful/f36-badge';\nimport { Asset, type AssetStatus, type AssetType } from '@contentful/f36-asset';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { BaseCard } from '../BaseCard/BaseCard';\nimport type { BaseCardInternalProps } from '../BaseCard/BaseCard.types';\nimport { getAssetCardStyles } from './AssetCard.styles';\nimport { DefaultCardHeader } from '../BaseCard/DefaultCardHeader';\n\nexport interface AssetCardInternalProps\n extends Omit<BaseCardInternalProps, 'header' | 'padding' | 'ref'> {\n size?: 'small' | 'default';\n src?: string;\n status?: AssetStatus;\n /**\n * Type of the entity represented by the card. Shown in the header of the card\n */\n type?: AssetType;\n}\n\nexport type AssetCardProps = AssetCardInternalProps;\n\nexport const AssetCard = ({\n actions,\n className,\n icon = null,\n isSelected,\n size = 'default',\n src,\n status,\n title,\n type,\n withDragHandle = false,\n isLoading,\n testId = 'cf-ui-asset-card',\n badge: customBadge,\n ...otherProps\n}: AssetCardInternalProps) => {\n const styles = getAssetCardStyles();\n const badge = customBadge ? (\n customBadge\n ) : status ? (\n <EntityStatusBadge entityStatus={status} />\n ) : null;\n const header =\n icon || badge || actions ? (\n <DefaultCardHeader icon={icon} badge={badge} actions={actions} />\n ) : null;\n\n if (isLoading) {\n return (\n <Skeleton.Container\n className={styles.skeleton}\n svgWidth={size === 'default' ? '18rem' : '11rem'}\n svgHeight={size === 'default' ? '18.75rem' : '12rem'}\n >\n <Skeleton.Image width=\"100%\" height=\"18.75rem\" />\n </Skeleton.Container>\n );\n }\n\n return (\n <BaseCard\n {...otherProps}\n badge={badge}\n className={cx(styles.root({ size }), className)}\n header={header}\n isSelected={isSelected}\n title={title}\n withDragHandle={withDragHandle}\n testId={testId}\n >\n <Flex alignItems=\"center\" fullHeight justifyContent=\"center\">\n <Asset\n className={styles.asset}\n src={src}\n status={status}\n title={title}\n type={type}\n />\n </Flex>\n </BaseCard>\n );\n};\n","import { cx } from 'emotion';\nimport React, {\n forwardRef,\n useCallback,\n useState,\n type FocusEventHandler,\n type KeyboardEventHandler,\n type MouseEvent,\n type MouseEventHandler,\n} from 'react';\nimport {\n Box,\n type PolymorphicComponent,\n type PolymorphicProps,\n} from '@contentful/f36-core';\nimport { DragHandle } from '@contentful/f36-drag-handle';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { getBaseCardStyles } from './BaseCard.styles';\n\nimport { DefaultCardHeader, stopEvents } from './DefaultCardHeader';\nimport type { BaseCardInternalProps } from './BaseCard.types';\n\nexport const BASE_CARD_DEFAULT_TAG = 'article';\n\nexport type BaseCardProps<\n E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG,\n> = PolymorphicProps<BaseCardInternalProps, E>;\n\nfunction _BaseCard<E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG>(\n {\n actions,\n actionsButtonProps,\n ariaLabel,\n badge,\n children,\n className,\n contentBodyProps,\n customActionButton,\n header,\n href,\n icon,\n isDragging = false,\n isHovered: isHoveredProp,\n isSelected = false,\n onBlur,\n onClick,\n onFocus,\n onKeyDown,\n onMouseEnter,\n onMouseLeave,\n target,\n rel,\n testId = 'cf-ui-base-card',\n title,\n type,\n withDragHandle,\n dragHandleRender,\n isLoading,\n ...otherProps\n }: BaseCardProps<E>,\n forwardedRef: React.Ref<HTMLElement>,\n) {\n const styles = getBaseCardStyles();\n const [isHovered, setIsHovered] = useState(isHoveredProp ?? false);\n const isInteractive = Boolean(onClick || href || withDragHandle);\n const hasHeader = Boolean(header);\n const defaultHeader =\n type || icon || badge || actions || customActionButton ? (\n <DefaultCardHeader\n type={type}\n icon={icon}\n badge={badge}\n actions={actions}\n customActionButton={customActionButton}\n actionsButtonProps={actionsButtonProps}\n />\n ) : null;\n\n const handleFocus = useCallback<FocusEventHandler<HTMLElement>>(\n (event) => {\n if (onFocus) {\n onFocus(event);\n }\n },\n [onFocus],\n );\n\n const handleBlur = useCallback<FocusEventHandler<HTMLElement>>(\n (event) => {\n if (onBlur) {\n onBlur(event);\n }\n },\n [onBlur],\n );\n\n const handleMouseEnter = useCallback<MouseEventHandler<HTMLElement>>(\n (event) => {\n setIsHovered(true);\n\n if (onMouseEnter) {\n onMouseEnter(event);\n }\n },\n [onMouseEnter],\n );\n\n const handleMouseLeave = useCallback<MouseEventHandler<HTMLElement>>(\n (event) => {\n setIsHovered(false);\n\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n },\n [onMouseLeave],\n );\n\n const handleClick = onClick\n ? (event: MouseEvent<HTMLElement>) => {\n onClick(event);\n }\n : undefined;\n\n const handleKeyDown = useCallback<KeyboardEventHandler<HTMLElement>>(\n (event) => {\n if (onKeyDown) {\n onKeyDown(event);\n }\n },\n [onKeyDown],\n );\n\n if (isLoading) {\n return (\n <Skeleton.Container className={styles.skeleton} svgHeight=\"5.6rem\">\n <Skeleton.DisplayText numberOfLines={1} />\n <Skeleton.BodyText numberOfLines={1} offsetTop={35} />\n </Skeleton.Container>\n );\n }\n\n const drag = (\n <DragHandle\n className={styles.dragHandle}\n isActive={isDragging}\n label=\"Reorder entry\"\n onClick={stopEvents}\n />\n );\n\n return (\n <Box\n aria-label={title || ariaLabel}\n aria-pressed={\n otherProps.as === 'button' ? (isSelected ? 'true' : 'false') : undefined\n }\n as={BASE_CARD_DEFAULT_TAG}\n className={cx(\n styles.root({\n hasHeader,\n isHovered,\n isSelected,\n }),\n className,\n )}\n href={href}\n onBlur={handleBlur}\n onClick={handleClick}\n onFocus={handleFocus}\n onMouseEnter={\n typeof isHoveredProp === 'undefined' && isInteractive\n ? handleMouseEnter\n : undefined\n }\n onMouseLeave={\n typeof isHoveredProp === 'undefined' && isInteractive\n ? handleMouseLeave\n : undefined\n }\n onKeyDown={handleKeyDown}\n rel={href && (rel || 'noreferrer')}\n role={onClick && !href ? 'button' : undefined}\n tabIndex={onClick ? 0 : undefined}\n target={target}\n {...otherProps}\n ref={forwardedRef}\n testId={testId}\n title={title}\n >\n {withDragHandle\n ? dragHandleRender\n ? dragHandleRender({ drag, isDragging })\n : drag\n : null}\n <div className={styles.wrapper} data-card-part=\"wrapper\">\n {header ?? defaultHeader}\n <div className={styles.contentBody} data-card-part=\"content\">\n {children}\n </div>\n </div>\n </Box>\n );\n}\n\n_BaseCard.displayName = 'BaseCard';\n\nexport const BaseCard: PolymorphicComponent<\n BaseCardInternalProps,\n typeof BASE_CARD_DEFAULT_TAG\n> = forwardRef(_BaseCard);\n","import { css } from 'emotion';\nimport type { ObjectInterpolation } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getBaseCardStyles = () => {\n return {\n contentBody: css({\n gridColumn: 'content',\n gridRow: 'content',\n whiteSpace: 'initial',\n }),\n wrapper: css({\n flex: '1 1 0',\n display: 'grid',\n gridTemplateRows: '[header] auto [content] minmax(0, 1fr)',\n gridTemplateColumns: 'auto [content] minmax(0, 1fr)',\n }),\n dragHandle: css({\n borderBottomLeftRadius: tokens.borderRadiusMedium,\n borderTopLeftRadius: tokens.borderRadiusMedium,\n cursor: 'grab',\n }),\n root: ({ hasHeader, isHovered, isSelected }) => {\n const styles: ObjectInterpolation<undefined> = {\n backgroundColor: tokens.colorWhite,\n borderColor: tokens.gray300,\n borderRadius: tokens.borderRadiusMedium,\n borderStyle: 'solid',\n borderWidth: 1,\n color: tokens.gray900,\n display: 'flex',\n textAlign: 'left',\n width: '100%',\n fontSize: tokens.fontSizeM,\n fontWeight: tokens.fontWeightNormal,\n position: 'relative',\n textDecoration: 'none',\n margin: 0, // remove the default button margin in Safari.\n transition: `border-color ${tokens.transitionDurationDefault} ${tokens.transitionEasingDefault},\n box-shadow ${tokens.transitionDurationShort} ${tokens.transitionEasingDefault}`,\n\n '&:focus': css({\n borderColor: isSelected ? tokens.blue100 : tokens.blue500,\n boxShadow: tokens.glowPrimary,\n outline: 'none',\n }),\n '&:focus:not(:focus-visible)': css({\n borderColor: isSelected ? tokens.blue500 : tokens.gray300,\n boxShadow: 'unset',\n }),\n '&:focus-visible': css({\n borderColor: tokens.blue500,\n boxShadow: tokens.glowPrimary,\n }),\n };\n\n if (!hasHeader) {\n styles.paddingTop = tokens.spacingM;\n }\n\n if (isHovered) {\n styles.borderColor = tokens.blue500;\n styles.cursor = 'pointer';\n }\n\n if (isSelected) {\n styles.backgroundColor = tokens.blue100;\n styles.borderColor = tokens.blue500;\n }\n\n return css(styles);\n },\n skeleton: css({\n border: `1px solid ${tokens.gray300}`,\n borderRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingM,\n }),\n };\n};\n","import React from 'react';\nimport { Flex } from '@contentful/f36-core';\nimport { Text } from '@contentful/f36-typography';\nimport { CardActions } from './CardActions';\nimport tokens from '@contentful/f36-tokens';\n\nimport { cx, css } from 'emotion';\n\nimport { BaseCardInternalProps } from './BaseCard.types';\n\nconst getHeaderStyles = () => {\n return {\n header: css({\n columnGap: tokens.spacingXs,\n rowGap: tokens.spacing2Xs,\n alignItems: 'center',\n borderBottomColor: tokens.gray200,\n borderBottomStyle: 'solid',\n borderBottomWidth: 1,\n borderTopLeftRadius: tokens.borderRadiusMedium,\n borderTopRightRadius: tokens.borderRadiusMedium,\n boxSizing: 'border-box',\n color: tokens.gray600,\n fontSize: tokens.fontSizeM,\n fontWeight: tokens.fontWeightNormal,\n gridColumn: 'content',\n gridRow: 'header',\n lineHeight: tokens.lineHeightM,\n paddingBottom: tokens.spacingXs,\n paddingLeft: tokens.spacingM,\n paddingRight: tokens.spacingXs,\n paddingTop: tokens.spacingXs,\n minHeight: '37px',\n }),\n headerWithActions: css({\n paddingBottom: tokens.spacing2Xs,\n paddingRight: tokens.spacingXs,\n paddingTop: tokens.spacing2Xs,\n }),\n };\n};\n\nexport const stopEvents = (e: React.MouseEvent<HTMLElement>) => {\n e.preventDefault();\n e.stopPropagation();\n};\n\nexport const DefaultCardHeader = (\n props: Pick<\n BaseCardInternalProps,\n | 'type'\n | 'icon'\n | 'badge'\n | 'actions'\n | 'actionsButtonProps'\n | 'customActionButton'\n >,\n) => {\n const { icon, type, actions, actionsButtonProps, badge, customActionButton } =\n props;\n const styles = getHeaderStyles();\n\n const renderActionButton = () => {\n if (customActionButton) {\n return (\n <Flex\n // don't propagate click event, so onClick handler on the card is not triggered\n onClick={stopEvents}\n alignItems=\"center\"\n >\n {customActionButton}\n </Flex>\n );\n }\n if (actions && actions.length > 0) {\n return (\n <Flex\n // don't propagate click event, so onClick handler on the card is not triggered\n onClick={stopEvents}\n alignItems=\"center\"\n >\n <CardActions buttonProps={actionsButtonProps}>{actions}</CardActions>\n </Flex>\n );\n }\n\n return null;\n };\n\n return (\n <Flex\n flexWrap=\"wrap\"\n className={cx(\n styles.header,\n (actions || customActionButton) && styles.headerWithActions,\n )}\n >\n <Flex flexGrow={1}>\n {type && (\n <Text fontColor=\"gray600\" isWordBreak>\n {type}\n </Text>\n )}\n </Flex>\n {icon && <Flex alignItems=\"center\">{icon}</Flex>}\n {badge && <Flex alignItems=\"center\">{badge}</Flex>}\n {renderActionButton()}\n </Flex>\n );\n};\n\nDefaultCardHeader.displayName = 'DefaultCardHeader';\n","import React from 'react';\nimport { IconButton, type ButtonProps } from '@contentful/f36-button';\nimport { DotsThreeIcon } from '@contentful/f36-icons';\nimport { Menu } from '@contentful/f36-menu';\nimport { cx } from 'emotion';\n\nimport { getCardActionsStyles } from './CardActions.styles';\n\nexport type CardActionsProps = {\n buttonProps?: Partial<Omit<ButtonProps<'button'>, 'ref'>>;\n /**\n * Child elements to be rendered in the component\n */\n children: React.ReactNodeArray;\n};\n\nexport const CardActions = ({\n buttonProps,\n children,\n}: CardActionsProps): React.ReactElement => {\n const styles = getCardActionsStyles();\n\n return (\n <Menu>\n <Menu.Trigger>\n <IconButton\n aria-label=\"Actions\"\n icon={<DotsThreeIcon />}\n {...buttonProps}\n className={cx(styles.root, buttonProps?.className)}\n size=\"small\"\n variant=\"transparent\"\n testId=\"cf-ui-card-actions\"\n />\n </Menu.Trigger>\n <Menu.List>{children}</Menu.List>\n </Menu>\n );\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getCardActionsStyles = () => {\n return {\n root: css({\n minHeight: 'auto',\n padding: tokens.spacing2Xs,\n }),\n };\n};\n","import tokens from '@contentful/f36-tokens';\nimport { css } from 'emotion';\n\nexport const getAssetCardStyles = () => {\n return {\n root: ({ size }) =>\n css({\n display: 'inline-flex',\n width: 'auto',\n borderRadius: tokens.borderRadiusMedium,\n minWidth: `calc(1rem * (120 / ${tokens.fontBaseDefault}))`,\n height:\n size === 'small'\n ? `calc(1rem * (188 / ${tokens.fontBaseDefault}))`\n : `calc(1rem * (300 / ${tokens.fontBaseDefault}))`,\n padding: 0,\n textAlign: 'center',\n }),\n asset: css({\n height: '100%',\n }),\n skeleton: css({\n border: `1px solid ${tokens.gray300}`,\n borderRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingM,\n }),\n };\n};\n","import React, { forwardRef } from 'react';\nimport { cx } from 'emotion';\nimport {\n Flex,\n type PolymorphicComponent,\n type PolymorphicProps,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { Heading } from '@contentful/f36-typography';\n\nimport { BaseCard, BASE_CARD_DEFAULT_TAG } from '../BaseCard/BaseCard';\nimport type { BaseCardInternalProps } from '../BaseCard/BaseCard.types';\nimport { CardActions } from '../BaseCard/CardActions';\nimport { getCardStyles } from './Card.styles';\n\ntype BaseProps = Omit<\n BaseCardInternalProps,\n 'header' | 'withDragHandle' | 'ref' | 'src' | 'type'\n> & {\n /**\n * Padding size to apply to the component\n *\n * @default default\n */\n padding?: 'default' | 'large' | 'none';\n};\n\ntype BasePropsWithDragHandle = Omit<BaseProps, 'padding'> &\n Pick<BaseCardInternalProps, 'withDragHandle'> & { padding: 'none' };\n\nexport type CardInternalProps = BaseProps | BasePropsWithDragHandle;\n\nexport type CardProps<\n E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG,\n> = PolymorphicProps<CardInternalProps, E>;\n\nfunction _Card<E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG>(\n {\n actions,\n badge,\n icon,\n padding = 'default',\n title,\n className,\n testId = 'cf-ui-card',\n ...otherProps\n }: CardProps<E>,\n forwardedRef: React.Ref<HTMLElement>,\n) {\n const styles = getCardStyles({ padding });\n const hasHeader = Boolean(title || icon || badge || actions);\n\n return (\n <BaseCard\n className={cx(styles.root, className)}\n {...otherProps}\n testId={testId}\n header={\n hasHeader && (\n <Flex alignItems=\"center\" className={cx(styles.header)}>\n {title && (\n <Flex as=\"header\" flexGrow={1}>\n <Heading marginBottom=\"none\">{title}</Heading>\n </Flex>\n )}\n {icon && (\n <Flex alignItems=\"center\" marginLeft=\"spacingXs\">\n {icon}\n </Flex>\n )}\n {badge && (\n <Flex alignItems=\"center\" marginLeft=\"spacingXs\">\n {badge}\n </Flex>\n )}\n {actions && <CardActions>{actions}</CardActions>}\n </Flex>\n )\n }\n ref={forwardedRef}\n />\n );\n}\n\n_Card.displayName = 'Card';\n\nexport const Card: PolymorphicComponent<\n ExpandProps<CardInternalProps>,\n typeof BASE_CARD_DEFAULT_TAG\n> = forwardRef(_Card);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { CardProps } from '..';\n\nconst getCardPaddingValue = (padding: CardProps['padding']) => {\n switch (padding) {\n case 'large':\n return tokens.spacingL;\n case 'none':\n return 0;\n default:\n return tokens.spacingM;\n }\n};\n\nexport const getCardStyles = ({ padding }) => ({\n header: css({\n gridColumn: 'content',\n gridRow: 'header',\n marginBottom: tokens.spacingM,\n }),\n root: css({\n padding: getCardPaddingValue(padding),\n }),\n});\n","import React, { forwardRef } from 'react';\nimport truncate from 'truncate';\nimport { cx } from 'emotion';\nimport {\n Flex,\n type ExpandProps,\n type PolymorphicComponent,\n type PolymorphicProps,\n} from '@contentful/f36-core';\nimport { EntityStatusBadge } from '@contentful/f36-badge';\nimport {\n Subheading,\n Paragraph,\n type HeadingElement,\n} from '@contentful/f36-typography';\n\nimport { BaseCard } from '../BaseCard/BaseCard';\nimport { getEntryCardStyles } from './EntryCard.styles';\nimport { EntryCardInternalProps, EntryCardSize } from './EntryCard.types';\n\nconst ENTRY_CARD_DEFAULT_TAG = 'article';\n\nexport type EntryCardProps<\n E extends React.ElementType = typeof ENTRY_CARD_DEFAULT_TAG,\n> = PolymorphicProps<EntryCardInternalProps, E>;\n\nfunction EntryCardTitle({\n title,\n titleTag,\n}: {\n title?: string;\n titleTag: HeadingElement;\n}) {\n if (!title) {\n return null;\n }\n\n const truncatedTitle = truncate(title, 255, {});\n\n return (\n <Subheading\n title={title.length > 255 ? title : ''}\n testId=\"title\"\n as={titleTag}\n marginBottom=\"none\"\n isWordBreak\n >\n {truncatedTitle}\n </Subheading>\n );\n}\n\nEntryCardTitle.displayName = 'EntryCardTitle';\n\nfunction EntryCardDescription({\n description,\n size,\n}: {\n size: EntryCardSize;\n description?: string;\n}) {\n if (!description || size === 'small') {\n return null;\n }\n\n const truncatedDescription = truncate(description, 95, {});\n\n return (\n <Paragraph marginBottom=\"none\" isWordBreak>\n {truncatedDescription}\n </Paragraph>\n );\n}\n\nEntryCardDescription.displayName = 'EntryCardDescription';\n\nfunction _EntryCard<\n E extends React.ElementType = typeof ENTRY_CARD_DEFAULT_TAG,\n>(\n {\n actions,\n children,\n className,\n customActionButton,\n src,\n status,\n thumbnailElement,\n description,\n withDragHandle = false,\n title,\n titleTag = 'h2',\n size,\n testId = 'cf-ui-entry-card',\n contentType,\n badge,\n ...otherProps\n }: EntryCardProps<E>,\n forwardedRef: React.Ref<any>,\n) {\n const styles = getEntryCardStyles();\n const entryStatusBadge = status ? (\n <EntityStatusBadge entityStatus={status} />\n ) : null;\n\n return (\n <BaseCard\n as={ENTRY_CARD_DEFAULT_TAG}\n {...otherProps}\n actions={actions}\n badge={badge ? badge : entryStatusBadge}\n className={cx(styles.root, className)}\n customActionButton={customActionButton}\n withDragHandle={withDragHandle}\n ref={forwardedRef}\n type={contentType}\n testId={testId}\n >\n <Flex\n alignItems=\"center\"\n className={styles.content(size)}\n flexDirection=\"row\"\n >\n <Flex flexDirection=\"column\" flexGrow={1} gap=\"spacingS\">\n <EntryCardTitle title={title} titleTag={titleTag} />\n <EntryCardDescription size={size} description={description} />\n {children}\n </Flex>\n\n {thumbnailElement && size !== 'small' && (\n <figure className={styles.thumbnail(size)}>{thumbnailElement}</figure>\n )}\n </Flex>\n </BaseCard>\n );\n}\n\n_EntryCard.displayName = 'EntryCard';\n\nexport const EntryCard: PolymorphicComponent<\n ExpandProps<EntryCardInternalProps>,\n typeof ENTRY_CARD_DEFAULT_TAG\n> = forwardRef(_EntryCard);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nimport type { EntryCardSize } from './EntryCard.types';\n\nexport const getEntryCardStyles = () => {\n return {\n actionsButton: css({\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n borderTopLeftRadius: 0,\n borderTopRightRadius: tokens.borderRadiusMedium,\n }),\n content: (size?: EntryCardSize) =>\n css({\n gridColumn: 'content',\n marginTop: size === 'small' ? tokens.spacingXs : tokens.spacingS,\n marginBottom: size === 'small' ? `calc(-1 * ${tokens.spacingXs})` : 0,\n }),\n root: css({\n padding: 0,\n '[data-card-part=\"content\"]': {\n paddingBottom: tokens.spacingM,\n paddingLeft: tokens.spacingM,\n paddingRight: tokens.spacingM,\n },\n }),\n header: css({\n borderBottomWidth: 1,\n borderBottomColor: tokens.gray200,\n borderBottomStyle: 'solid',\n minHeight: 'auto',\n paddingBottom: tokens.spacingXs,\n paddingLeft: tokens.spacingM,\n paddingRight: tokens.spacingXs,\n }),\n thumbnail: (size?: EntryCardSize) =>\n css({\n margin: `0 0 0 ${tokens.spacingS}`,\n padding: 0,\n overflow: 'hidden',\n position: 'relative',\n img: {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n position: 'absolute',\n zIndex: 1,\n },\n ...(size === 'small'\n ? {\n height: '40px',\n width: '40px',\n }\n : {\n height: '70px',\n width: '70px',\n }),\n }),\n };\n};\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { Tooltip } from '@contentful/f36-tooltip';\nimport { Text } from '@contentful/f36-typography';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { BaseCard } from '../BaseCard/BaseCard';\nimport type { BaseCardDragHandleProps } from '../BaseCard/BaseCard.types';\nimport type { EntryCardInternalProps } from '../EntryCard/EntryCard.types';\nimport { getInlineEntryCardStyles } from './InlineEntryCard.styles';\nimport { CardActions } from '../BaseCard/CardActions';\n\nexport type InlineEntryCardInternalProps = Omit<\n EntryCardInternalProps,\n 'icon' | 'ref' | 'src' | 'size' | 'type' | keyof BaseCardDragHandleProps\n>;\n\nexport type InlineEntryCardProps = InlineEntryCardInternalProps;\n\nexport const InlineEntryCard = ({\n actions,\n className,\n children,\n status,\n title,\n isLoading,\n testId = 'cf-ui-inline-entry-card',\n ...otherProps\n}: InlineEntryCardInternalProps) => {\n const styles = getInlineEntryCardStyles();\n const header = (\n <CardActions buttonProps={{ className: styles.actions }}>\n {actions}\n </CardActions>\n );\n\n if (isLoading) {\n return (\n <Skeleton.Container\n className={styles.skeleton}\n svgHeight=\"1.25rem\"\n svgWidth=\"6rem\"\n >\n <Skeleton.BodyText numberOfLines={1} />\n </Skeleton.Container>\n );\n }\n\n return (\n <Tooltip placement=\"bottom\" content={title}>\n <BaseCard\n {...otherProps}\n className={cx(styles.root({ status }), className)}\n header={header}\n testId={testId}\n >\n {children || <Text>{title}</Text>}\n </BaseCard>\n </Tooltip>\n );\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { getEntityStatusStyles } from '@contentful/f36-core';\n\nimport type { InlineEntryCardProps } from './InlineEntryCard';\n\nexport const getInlineEntryCardStyles = () => {\n return {\n actions: css({\n display: 'flex',\n padding: 0,\n marginLeft: tokens.spacingXs,\n minHeight: 'auto',\n }),\n root: ({ status }: { status: InlineEntryCardProps['status'] }) => {\n const statusColors = getEntityStatusStyles({ status });\n\n return css({\n borderBottomLeftRadius: 0,\n borderTopLeftRadius: 0,\n display: 'inline-flex',\n width: 'auto',\n verticalAlign: 'middle',\n paddingBottom: 0,\n paddingTop: 0,\n paddingLeft: tokens.spacingS,\n paddingRight: tokens.spacing2Xs,\n '[data-card-part=\"wrapper\"]': {\n display: 'inline-flex',\n flexDirection: 'row-reverse',\n },\n '&::before': {\n backgroundColor: statusColors.color,\n bottom: 0,\n content: '\"\"',\n display: 'block',\n left: 0,\n position: 'absolute',\n top: 0,\n width: tokens.spacing2Xs,\n },\n });\n },\n skeleton: css({\n display: 'inline-flex',\n border: `1px solid ${tokens.gray300}`,\n borderTopRightRadius: tokens.borderRadiusMedium,\n borderBottomRightRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingXs,\n }),\n };\n};\n"]}
1
+ {"version":3,"sources":["../../src/AssetCard/AssetCard.tsx","../../src/BaseCard/BaseCard.styles.ts","../../src/BaseCard/CardActions.styles.ts","../../src/BaseCard/CardActions.tsx","../../src/BaseCard/DefaultCardHeader.styles.ts","../../src/BaseCard/DefaultCardHeader.tsx","../../src/BaseCard/BaseCard.tsx","../../src/AssetCard/AssetCard.styles.ts","../../src/Card/Card.styles.ts","../../src/Card/Card.tsx","../../src/EntryCard/EntryCard.styles.ts","../../src/EntryCard/EntryCard.tsx","../../src/InlineEntryCard/InlineEntryCard.styles.ts","../../src/InlineEntryCard/InlineEntryCard.tsx"],"names":["getBaseCardStyles","css","tokens","getRootStyles","hasHeader","isHovered","isSelected","__spreadProps","__spreadValues","getCardActionsStyles","CardActions","buttonProps","children","styles","React","Menu","IconButton","DotsThreeIcon","cx","getHeaderStyles","stopEvents","e","DefaultCardHeader","props","icon","type","actions","actionsButtonProps","badge","customActionButton","renderActionButton","Flex","Text","BASE_CARD_DEFAULT_TAG","BaseCardBase","_a","forwardedRef","_b","ariaLabel","className","header","href","isDragging","isHoveredProp","onBlur","onClick","onFocus","onKeyDown","onMouseEnter","onMouseLeave","target","rel","testId","title","withDragHandle","dragHandleRender","isLoading","as","otherProps","__objRest","setIsHovered","useState","isInteractive","defaultHeader","handleFocus","useCallback","event","handleBlur","handleMouseEnter","handleMouseLeave","handleClick","handleKeyDown","Skeleton","drag","DragHandle","CardInner","Element","rootStyles","baseProps","anchorProps","Box","nonAnchorElement","BaseCard","getAssetCardStyles","size","AssetCard","src","status","customBadge","EntityStatusBadge","Asset","getCardPaddingValue","padding","getCardStyles","CardBase","Heading","Card","forwardRef","getEntryCardStyles","ENTRY_CARD_DEFAULT_TAG","EntryCardTitle","titleTag","truncatedTitle","truncate","Subheading","EntryCardDescription","description","truncatedDescription","Paragraph","EntryCardBase","thumbnailElement","contentType","entryStatusBadge","EntryCard","getInlineEntryCardStyles","statusColors","getEntityStatusStyles","InlineEntryCard","Tooltip"],"mappings":"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","file":"index.js","sourcesContent":["import React from 'react';\nimport { cx } from '@emotion/css';\nimport { Flex } from '@contentful/f36-core';\nimport { EntityStatusBadge } from '@contentful/f36-badge';\nimport { Asset, type AssetStatus, type AssetType } from '@contentful/f36-asset';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { BaseCard } from '../BaseCard/BaseCard';\nimport type { BaseCardInternalProps } from '../BaseCard/BaseCard.types';\nimport { getAssetCardStyles } from './AssetCard.styles';\nimport { DefaultCardHeader } from '../BaseCard/DefaultCardHeader';\n\nexport interface AssetCardInternalProps\n extends Omit<BaseCardInternalProps, 'header' | 'padding' | 'ref'> {\n size?: 'small' | 'default';\n src?: string;\n status?: AssetStatus;\n /**\n * Type of the entity represented by the card. Shown in the header of the card\n */\n type?: AssetType;\n}\n\nexport type AssetCardProps = AssetCardInternalProps;\n\nexport const AssetCard = ({\n actions,\n className,\n icon = null,\n isSelected,\n size = 'default',\n src,\n status,\n title,\n type,\n withDragHandle = false,\n isLoading,\n testId = 'cf-ui-asset-card',\n badge: customBadge,\n ...otherProps\n}: AssetCardInternalProps) => {\n const styles = getAssetCardStyles();\n const badge = customBadge ? (\n customBadge\n ) : status ? (\n <EntityStatusBadge entityStatus={status} />\n ) : null;\n const header =\n icon || badge || actions ? (\n <DefaultCardHeader icon={icon} badge={badge} actions={actions} />\n ) : null;\n\n if (isLoading) {\n return (\n <Skeleton.Container\n className={styles.skeleton}\n svgWidth={size === 'default' ? '18rem' : '11rem'}\n svgHeight={size === 'default' ? '18.75rem' : '12rem'}\n >\n <Skeleton.Image width=\"100%\" height=\"18.75rem\" />\n </Skeleton.Container>\n );\n }\n\n return (\n <BaseCard\n {...otherProps}\n badge={badge}\n className={cx(styles.root({ size }), className)}\n header={header}\n isSelected={isSelected}\n title={title}\n withDragHandle={withDragHandle}\n testId={testId}\n >\n <Flex alignItems=\"center\" fullHeight justifyContent=\"center\">\n <Asset\n className={styles.asset}\n src={src}\n status={status}\n title={title}\n type={type}\n />\n </Flex>\n </BaseCard>\n );\n};\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getBaseCardStyles = () => {\n return {\n contentBody: css({\n gridColumn: 'content',\n gridRow: 'content',\n whiteSpace: 'initial',\n }),\n wrapper: css({\n flex: '1 1 0',\n display: 'grid',\n gridTemplateRows: '[header] auto [content] minmax(0, 1fr)',\n gridTemplateColumns: 'auto [content] minmax(0, 1fr)',\n }),\n dragHandle: css({\n borderBottomLeftRadius: tokens.borderRadiusMedium,\n borderTopLeftRadius: tokens.borderRadiusMedium,\n cursor: 'grab',\n }),\n skeleton: css({\n border: `1px solid ${tokens.gray300}`,\n borderRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingM,\n }),\n };\n};\n\nexport const getRootStyles = (\n hasHeader: boolean,\n isHovered: boolean,\n isSelected: boolean,\n) => {\n return {\n root: css({\n backgroundColor: tokens.colorWhite,\n borderColor: tokens.gray300,\n borderRadius: tokens.borderRadiusMedium,\n borderStyle: 'solid',\n borderWidth: 1,\n color: tokens.gray900,\n display: 'flex',\n textAlign: 'left',\n width: '100%',\n fontSize: tokens.fontSizeM,\n fontWeight: tokens.fontWeightNormal,\n position: 'relative',\n textDecoration: 'none',\n margin: 0, // remove the default button margin in Safari.\n transition: `border-color ${tokens.transitionDurationDefault} ${tokens.transitionEasingDefault},\n box-shadow ${tokens.transitionDurationShort} ${tokens.transitionEasingDefault}`,\n paddingTop: hasHeader ? 0 : tokens.spacingM,\n ...(isHovered && {\n borderColor: tokens.blue500,\n cursor: 'pointer',\n }),\n ...(isSelected && {\n backgroundColor: tokens.blue100,\n borderColor: tokens.blue500,\n }),\n '&:focus': css({\n borderColor: isSelected ? tokens.blue100 : tokens.blue500,\n boxShadow: tokens.glowPrimary,\n outline: 'none',\n }),\n '&:focus:not(:focus-visible)': css({\n borderColor: isSelected ? tokens.blue500 : tokens.gray300,\n boxShadow: 'unset',\n }),\n '&:focus-visible': css({\n borderColor: tokens.blue500,\n boxShadow: tokens.glowPrimary,\n }),\n }),\n };\n};\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getCardActionsStyles = () => {\n return {\n root: css({\n minHeight: 'auto',\n padding: tokens.spacing2Xs,\n }),\n };\n};\n","import React from 'react';\nimport { IconButton, type ButtonProps } from '@contentful/f36-button';\nimport { DotsThreeIcon } from '@contentful/f36-icons';\nimport { Menu } from '@contentful/f36-menu';\nimport { cx } from '@emotion/css';\n\nimport { getCardActionsStyles } from './CardActions.styles';\n\nexport type CardActionsProps = {\n buttonProps?: Partial<Omit<ButtonProps<'button'>, 'ref'>>;\n /**\n * Child elements to be rendered in the component\n */\n children: React.ReactNode[];\n};\n\nexport const CardActions = ({\n buttonProps,\n children,\n}: CardActionsProps): React.ReactElement => {\n const styles = getCardActionsStyles();\n\n return (\n <Menu>\n <Menu.Trigger>\n <IconButton\n {...buttonProps}\n aria-label=\"Actions\"\n icon={<DotsThreeIcon />}\n className={cx(styles.root, buttonProps?.className)}\n size=\"small\"\n variant=\"transparent\"\n testId=\"cf-ui-card-actions\"\n />\n </Menu.Trigger>\n <Menu.List>{children}</Menu.List>\n </Menu>\n );\n};\n\nCardActions.displayName = 'CardActions';\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getHeaderStyles = () => {\n return {\n header: css({\n columnGap: tokens.spacingXs,\n rowGap: tokens.spacing2Xs,\n alignItems: 'center',\n borderBottomColor: tokens.gray200,\n borderBottomStyle: 'solid',\n borderBottomWidth: 1,\n borderTopLeftRadius: tokens.borderRadiusMedium,\n borderTopRightRadius: tokens.borderRadiusMedium,\n boxSizing: 'border-box',\n color: tokens.gray600,\n fontSize: tokens.fontSizeM,\n fontWeight: tokens.fontWeightNormal,\n gridColumn: 'content',\n gridRow: 'header',\n lineHeight: tokens.lineHeightM,\n paddingBottom: tokens.spacingXs,\n paddingLeft: tokens.spacingM,\n paddingRight: tokens.spacingXs,\n paddingTop: tokens.spacingXs,\n minHeight: '37px',\n }),\n headerWithActions: css({\n paddingBottom: tokens.spacing2Xs,\n paddingRight: tokens.spacingXs,\n paddingTop: tokens.spacing2Xs,\n }),\n };\n};\n","import React from 'react';\nimport { Flex } from '@contentful/f36-core';\nimport { Text } from '@contentful/f36-typography';\nimport { CardActions } from './CardActions';\nimport { cx } from '@emotion/css';\nimport { getHeaderStyles } from './DefaultCardHeader.styles';\nimport { BaseCardInternalProps } from './BaseCard.types';\n\nexport const stopEvents = (e: React.MouseEvent<HTMLElement>) => {\n e.preventDefault();\n e.stopPropagation();\n};\n\nexport const DefaultCardHeader = (\n props: Pick<\n BaseCardInternalProps,\n | 'type'\n | 'icon'\n | 'badge'\n | 'actions'\n | 'actionsButtonProps'\n | 'customActionButton'\n >,\n) => {\n const { icon, type, actions, actionsButtonProps, badge, customActionButton } =\n props;\n const styles = getHeaderStyles();\n\n const renderActionButton = () => {\n if (customActionButton) {\n return (\n <Flex\n // don't propagate click event, so onClick handler on the card is not triggered\n onClick={stopEvents}\n alignItems=\"center\"\n >\n {customActionButton}\n </Flex>\n );\n }\n if (actions && actions.length > 0) {\n return (\n <Flex\n // don't propagate click event, so onClick handler on the card is not triggered\n onClick={stopEvents}\n alignItems=\"center\"\n >\n <CardActions buttonProps={actionsButtonProps}>{actions}</CardActions>\n </Flex>\n );\n }\n\n return null;\n };\n\n return (\n <Flex\n flexWrap=\"wrap\"\n className={cx(\n styles.header,\n (actions || customActionButton) && styles.headerWithActions,\n )}\n >\n <Flex flexGrow={1}>\n {type && (\n <Text fontColor=\"gray600\" isWordBreak>\n {type}\n </Text>\n )}\n </Flex>\n {icon && <Flex alignItems=\"center\">{icon}</Flex>}\n {badge && <Flex alignItems=\"center\">{badge}</Flex>}\n {renderActionButton()}\n </Flex>\n );\n};\n\nDefaultCardHeader.displayName = 'DefaultCardHeader';\n","import { cx } from '@emotion/css';\nimport React, {\n useCallback,\n useState,\n type FocusEventHandler,\n type KeyboardEventHandler,\n type MouseEvent,\n type MouseEventHandler,\n} from 'react';\nimport {\n Box,\n type PolymorphicComponent,\n type PolymorphicProps,\n} from '@contentful/f36-core';\nimport { DragHandle } from '@contentful/f36-drag-handle';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { getBaseCardStyles, getRootStyles } from './BaseCard.styles';\n\nimport { DefaultCardHeader, stopEvents } from './DefaultCardHeader';\nimport type { BaseCardInternalProps, CardElement } from './BaseCard.types';\n\nexport const BASE_CARD_DEFAULT_TAG = 'article';\n\nexport type BaseCardProps<\n E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG,\n> = PolymorphicProps<BaseCardInternalProps, E>;\n\nfunction BaseCardBase<\n E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG,\n>(\n {\n actions,\n actionsButtonProps,\n ariaLabel,\n badge,\n children,\n className,\n customActionButton,\n header,\n href,\n icon,\n isDragging = false,\n isHovered: isHoveredProp,\n isSelected = false,\n onBlur,\n onClick,\n onFocus,\n onKeyDown,\n onMouseEnter,\n onMouseLeave,\n target,\n rel,\n testId = 'cf-ui-base-card',\n title,\n type,\n withDragHandle,\n dragHandleRender,\n isLoading,\n as,\n ...otherProps\n }: BaseCardProps<E>,\n forwardedRef: React.Ref<HTMLElement>,\n) {\n const styles = getBaseCardStyles();\n const [isHovered, setIsHovered] = useState(isHoveredProp ?? false);\n const isInteractive = Boolean(onClick || href || withDragHandle);\n const hasHeader = Boolean(header);\n const defaultHeader =\n type || icon || badge || actions || customActionButton ? (\n <DefaultCardHeader\n type={type}\n icon={icon}\n badge={badge}\n actions={actions}\n customActionButton={customActionButton}\n actionsButtonProps={actionsButtonProps}\n />\n ) : null;\n\n const handleFocus = useCallback<FocusEventHandler<HTMLElement>>(\n (event) => {\n if (onFocus) {\n onFocus(event);\n }\n },\n [onFocus],\n );\n\n const handleBlur = useCallback<FocusEventHandler<HTMLElement>>(\n (event) => {\n if (onBlur) {\n onBlur(event);\n }\n },\n [onBlur],\n );\n\n const handleMouseEnter = useCallback<MouseEventHandler<HTMLElement>>(\n (event) => {\n setIsHovered(true);\n\n if (onMouseEnter) {\n onMouseEnter(event);\n }\n },\n [onMouseEnter],\n );\n\n const handleMouseLeave = useCallback<MouseEventHandler<HTMLElement>>(\n (event) => {\n setIsHovered(false);\n\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n },\n [onMouseLeave],\n );\n\n const handleClick = onClick\n ? (event: MouseEvent<HTMLElement>) => {\n onClick(event);\n }\n : undefined;\n\n const handleKeyDown = useCallback<KeyboardEventHandler<HTMLElement>>(\n (event) => {\n if (onKeyDown) {\n onKeyDown(event);\n }\n },\n [onKeyDown],\n );\n\n if (isLoading) {\n return (\n <Skeleton.Container className={styles.skeleton} svgHeight=\"5.6rem\">\n <Skeleton.DisplayText numberOfLines={1} />\n <Skeleton.BodyText numberOfLines={1} offsetTop={35} />\n </Skeleton.Container>\n );\n }\n\n const drag = (\n <DragHandle\n className={styles.dragHandle}\n isActive={isDragging}\n label=\"Reorder entry\"\n onClick={stopEvents}\n />\n );\n\n const CardInner = () => (\n <>\n {withDragHandle\n ? dragHandleRender\n ? dragHandleRender({ drag, isDragging })\n : drag\n : null}\n <div className={styles.wrapper} data-card-part=\"wrapper\">\n {header ?? defaultHeader}\n <div className={styles.contentBody} data-card-part=\"content\">\n {children}\n </div>\n </div>\n </>\n );\n\n const Element = as || BASE_CARD_DEFAULT_TAG;\n\n /** Seperate the Props based on the Element Type */\n\n const rootStyles = getRootStyles(hasHeader, isHovered, isSelected);\n\n const baseProps = {\n testId,\n className: cx(rootStyles.root, className),\n 'aria-label': title || ariaLabel,\n title,\n };\n\n // anchor exclusive properties\n const anchorProps = {\n href,\n target,\n rel: rel ?? 'noreferrer',\n } as Pick<\n React.AnchorHTMLAttributes<HTMLAnchorElement>,\n 'href' | 'rel' | 'target'\n >;\n\n if (Element === 'a') {\n return (\n <Box\n as=\"a\"\n {...anchorProps}\n {...baseProps}\n ref={forwardedRef as React.Ref<HTMLAnchorElement>}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onMouseEnter={\n typeof isHoveredProp === 'undefined' ? handleMouseEnter : undefined\n }\n onMouseLeave={\n typeof isHoveredProp === 'undefined' ? handleMouseLeave : undefined\n }\n {...otherProps}\n >\n <CardInner />\n </Box>\n );\n }\n\n // Narrow the element type after early-return anchor case to exclude 'a'\n const nonAnchorElement = Element as Exclude<CardElement, 'a'>;\n\n if (isInteractive) {\n return (\n <Box\n as={nonAnchorElement}\n {...baseProps}\n aria-pressed={nonAnchorElement === 'button' ? !!isSelected : undefined}\n onBlur={handleBlur}\n onClick={handleClick}\n onFocus={handleFocus}\n onMouseEnter={\n typeof isHoveredProp === 'undefined' ? handleMouseEnter : undefined\n }\n onMouseLeave={\n typeof isHoveredProp === 'undefined' ? handleMouseLeave : undefined\n }\n onKeyDown={handleKeyDown}\n role={onClick ? 'button' : undefined}\n tabIndex={onClick ? 0 : undefined}\n ref={forwardedRef}\n {...otherProps}\n >\n <CardInner />\n </Box>\n );\n }\n return (\n <Box\n as={nonAnchorElement}\n {...baseProps}\n {...otherProps}\n ref={forwardedRef}\n >\n <CardInner />\n </Box>\n );\n}\n\nBaseCardBase.displayName = 'BaseCard';\n\nexport const BaseCard = React.forwardRef(BaseCardBase) as PolymorphicComponent<\n BaseCardInternalProps,\n typeof BASE_CARD_DEFAULT_TAG\n>;\n","import tokens from '@contentful/f36-tokens';\nimport { css } from '@emotion/css';\n\nexport const getAssetCardStyles = () => {\n return {\n root: ({ size }) =>\n css({\n display: 'inline-flex',\n width: 'auto',\n borderRadius: tokens.borderRadiusMedium,\n minWidth: `calc(1rem * (120 / ${tokens.fontBaseDefault}))`,\n height:\n size === 'small'\n ? `calc(1rem * (188 / ${tokens.fontBaseDefault}))`\n : `calc(1rem * (300 / ${tokens.fontBaseDefault}))`,\n padding: 0,\n textAlign: 'center',\n }),\n asset: css({\n height: '100%',\n }),\n skeleton: css({\n border: `1px solid ${tokens.gray300}`,\n borderRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingM,\n }),\n };\n};\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\nimport { CardProps } from '..';\n\nconst getCardPaddingValue = (padding: CardProps['padding']) => {\n switch (padding) {\n case 'large':\n return tokens.spacingL;\n case 'none':\n return 0;\n default:\n return tokens.spacingM;\n }\n};\n\nexport const getCardStyles = ({ padding }) => ({\n header: css({\n gridColumn: 'content',\n gridRow: 'header',\n marginBottom: tokens.spacingM,\n }),\n root: css({\n padding: getCardPaddingValue(padding),\n }),\n});\n","import React, { forwardRef } from 'react';\nimport { cx } from '@emotion/css';\nimport {\n Flex,\n type PolymorphicComponent,\n type PolymorphicProps,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { Heading } from '@contentful/f36-typography';\n\nimport { BaseCard, BASE_CARD_DEFAULT_TAG } from '../BaseCard/BaseCard';\nimport type { BaseCardInternalProps } from '../BaseCard/BaseCard.types';\nimport { CardActions } from '../BaseCard/CardActions';\nimport { getCardStyles } from './Card.styles';\n\ntype BaseProps = Omit<\n BaseCardInternalProps,\n 'header' | 'withDragHandle' | 'ref' | 'src' | 'type'\n> & {\n /**\n * Padding size to apply to the component\n *\n * @default default\n */\n padding?: 'default' | 'large' | 'none';\n};\n\ntype BasePropsWithDragHandle = Omit<BaseProps, 'padding'> &\n Pick<BaseCardInternalProps, 'withDragHandle'> & { padding: 'none' };\n\nexport type CardInternalProps = BaseProps | BasePropsWithDragHandle;\n\nexport type CardProps<\n E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG,\n> = PolymorphicProps<CardInternalProps, E>;\n\nfunction CardBase<E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG>(\n {\n actions,\n badge,\n icon,\n padding = 'default',\n title,\n className,\n testId = 'cf-ui-card',\n ...otherProps\n }: CardProps<E>,\n forwardedRef: React.Ref<HTMLElement>,\n) {\n const styles = getCardStyles({ padding });\n const hasHeader = Boolean(title || icon || badge || actions);\n\n return (\n // @ts-expect-error this beast of polymorphic component needs a deeper refactor.\n <BaseCard\n className={cx(styles.root, className)}\n {...otherProps}\n testId={testId}\n header={\n hasHeader && (\n <Flex alignItems=\"center\" className={cx(styles.header)}>\n {title && (\n <Flex as=\"header\" flexGrow={1}>\n <Heading marginBottom=\"none\">{title}</Heading>\n </Flex>\n )}\n {icon && (\n <Flex alignItems=\"center\" marginLeft=\"spacingXs\">\n {icon}\n </Flex>\n )}\n {badge && (\n <Flex alignItems=\"center\" marginLeft=\"spacingXs\">\n {badge}\n </Flex>\n )}\n {actions && <CardActions>{actions}</CardActions>}\n </Flex>\n )\n }\n ref={forwardedRef}\n />\n );\n}\n\nCardBase.displayName = 'Card';\n\nexport const Card = forwardRef(CardBase) as PolymorphicComponent<\n ExpandProps<CardInternalProps>,\n typeof BASE_CARD_DEFAULT_TAG\n>;\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\n\nimport type { EntryCardSize } from './EntryCard.types';\n\nexport const getEntryCardStyles = () => {\n return {\n actionsButton: css({\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n borderTopLeftRadius: 0,\n borderTopRightRadius: tokens.borderRadiusMedium,\n }),\n content: (size?: EntryCardSize) =>\n css({\n gridColumn: 'content',\n marginTop: size === 'small' ? tokens.spacingXs : tokens.spacingS,\n marginBottom: size === 'small' ? `calc(-1 * ${tokens.spacingXs})` : 0,\n }),\n root: css({\n padding: 0,\n '[data-card-part=\"content\"]': {\n paddingBottom: tokens.spacingM,\n paddingLeft: tokens.spacingM,\n paddingRight: tokens.spacingM,\n },\n }),\n header: css({\n borderBottomWidth: 1,\n borderBottomColor: tokens.gray200,\n borderBottomStyle: 'solid',\n minHeight: 'auto',\n paddingBottom: tokens.spacingXs,\n paddingLeft: tokens.spacingM,\n paddingRight: tokens.spacingXs,\n }),\n thumbnail: (size?: EntryCardSize) =>\n css({\n margin: `0 0 0 ${tokens.spacingS}`,\n padding: 0,\n overflow: 'hidden',\n position: 'relative',\n img: {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n position: 'absolute',\n zIndex: 1,\n },\n ...(size === 'small'\n ? {\n height: '40px',\n width: '40px',\n }\n : {\n height: '70px',\n width: '70px',\n }),\n }),\n };\n};\n","import React, { forwardRef } from 'react';\nimport truncate from 'truncate';\nimport { cx } from '@emotion/css';\nimport {\n Flex,\n type ExpandProps,\n type PolymorphicComponent,\n type PolymorphicProps,\n} from '@contentful/f36-core';\nimport { EntityStatusBadge } from '@contentful/f36-badge';\nimport {\n Subheading,\n Paragraph,\n type HeadingElement,\n} from '@contentful/f36-typography';\n\nimport { BaseCard } from '../BaseCard/BaseCard';\nimport { getEntryCardStyles } from './EntryCard.styles';\nimport { EntryCardInternalProps, EntryCardSize } from './EntryCard.types';\n\nconst ENTRY_CARD_DEFAULT_TAG = 'article';\n\nexport type EntryCardProps<\n E extends React.ElementType = typeof ENTRY_CARD_DEFAULT_TAG,\n> = PolymorphicProps<EntryCardInternalProps, E>;\n\nfunction EntryCardTitle({\n title,\n titleTag,\n}: {\n title?: string;\n titleTag: HeadingElement;\n}) {\n if (!title) {\n return null;\n }\n\n const truncatedTitle = truncate(title, 255, {});\n\n return (\n <Subheading\n title={title.length > 255 ? title : ''}\n testId=\"title\"\n as={titleTag}\n marginBottom=\"none\"\n isWordBreak\n >\n {truncatedTitle}\n </Subheading>\n );\n}\n\nEntryCardTitle.displayName = 'EntryCardTitle';\n\nfunction EntryCardDescription({\n description,\n size,\n}: {\n size: EntryCardSize;\n description?: string;\n}) {\n if (!description || size === 'small') {\n return null;\n }\n\n const truncatedDescription = truncate(description, 95, {});\n\n return (\n <Paragraph marginBottom=\"none\" isWordBreak>\n {truncatedDescription}\n </Paragraph>\n );\n}\n\nEntryCardDescription.displayName = 'EntryCardDescription';\n\nfunction EntryCardBase<\n E extends React.ElementType = typeof ENTRY_CARD_DEFAULT_TAG,\n>(\n {\n actions,\n children,\n className,\n customActionButton,\n src,\n status,\n thumbnailElement,\n description,\n withDragHandle = false,\n title,\n titleTag = 'h2',\n size,\n testId = 'cf-ui-entry-card',\n contentType,\n badge,\n ...otherProps\n }: EntryCardProps<E>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n forwardedRef: React.Ref<any>,\n) {\n const styles = getEntryCardStyles();\n const entryStatusBadge = status ? (\n <EntityStatusBadge entityStatus={status} />\n ) : null;\n\n return (\n // @ts-expect-error this beast of polymorphic component needs a deeper refactor.\n <BaseCard\n as={ENTRY_CARD_DEFAULT_TAG}\n {...otherProps}\n actions={actions}\n badge={badge ? badge : entryStatusBadge}\n className={cx(styles.root, className)}\n customActionButton={customActionButton}\n withDragHandle={withDragHandle}\n ref={forwardedRef}\n type={contentType}\n testId={testId}\n >\n <Flex\n alignItems=\"center\"\n className={styles.content(size)}\n flexDirection=\"row\"\n >\n <Flex flexDirection=\"column\" flexGrow={1} gap=\"spacingS\">\n <EntryCardTitle title={title} titleTag={titleTag} />\n <EntryCardDescription size={size} description={description} />\n {children}\n </Flex>\n\n {thumbnailElement && size !== 'small' && (\n <figure className={styles.thumbnail(size)}>{thumbnailElement}</figure>\n )}\n </Flex>\n </BaseCard>\n );\n}\n\nEntryCardBase.displayName = 'EntryCard';\n\nexport const EntryCard = forwardRef(EntryCardBase) as PolymorphicComponent<\n ExpandProps<EntryCardInternalProps>,\n typeof ENTRY_CARD_DEFAULT_TAG\n>;\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\nimport { getEntityStatusStyles } from '@contentful/f36-core';\n\nimport type { InlineEntryCardProps } from './InlineEntryCard';\n\nexport const getInlineEntryCardStyles = () => {\n return {\n actions: css({\n display: 'flex',\n padding: 0,\n marginLeft: tokens.spacingXs,\n minHeight: 'auto',\n }),\n root: ({ status }: { status: InlineEntryCardProps['status'] }) => {\n const statusColors = getEntityStatusStyles({ status });\n\n return css({\n borderBottomLeftRadius: 0,\n borderTopLeftRadius: 0,\n display: 'inline-flex',\n width: 'auto',\n verticalAlign: 'middle',\n paddingBottom: 0,\n paddingTop: 0,\n paddingLeft: tokens.spacingS,\n paddingRight: tokens.spacing2Xs,\n '[data-card-part=\"wrapper\"]': {\n display: 'inline-flex',\n flexDirection: 'row-reverse',\n },\n '&::before': {\n backgroundColor: statusColors.color,\n bottom: 0,\n content: '\"\"',\n display: 'block',\n left: 0,\n position: 'absolute',\n top: 0,\n width: tokens.spacing2Xs,\n },\n });\n },\n skeleton: css({\n display: 'inline-flex',\n border: `1px solid ${tokens.gray300}`,\n borderTopRightRadius: tokens.borderRadiusMedium,\n borderBottomRightRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingXs,\n }),\n };\n};\n","import React from 'react';\nimport { cx } from '@emotion/css';\nimport { Tooltip } from '@contentful/f36-tooltip';\nimport { Text } from '@contentful/f36-typography';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { BaseCard } from '../BaseCard/BaseCard';\nimport type { BaseCardDragHandleProps } from '../BaseCard/BaseCard.types';\nimport type { EntryCardInternalProps } from '../EntryCard/EntryCard.types';\nimport { getInlineEntryCardStyles } from './InlineEntryCard.styles';\nimport { CardActions } from '../BaseCard/CardActions';\n\nexport type InlineEntryCardInternalProps = Omit<\n EntryCardInternalProps,\n 'icon' | 'ref' | 'src' | 'size' | 'type' | keyof BaseCardDragHandleProps\n>;\n\nexport type InlineEntryCardProps = InlineEntryCardInternalProps;\n\nexport const InlineEntryCard = ({\n actions,\n className,\n children,\n status,\n title,\n isLoading,\n testId = 'cf-ui-inline-entry-card',\n ...otherProps\n}: InlineEntryCardInternalProps) => {\n const styles = getInlineEntryCardStyles();\n const header = (\n <CardActions buttonProps={{ className: styles.actions }}>\n {actions}\n </CardActions>\n );\n\n if (isLoading) {\n return (\n <Skeleton.Container\n className={styles.skeleton}\n svgHeight=\"1.25rem\"\n svgWidth=\"6rem\"\n >\n <Skeleton.BodyText numberOfLines={1} />\n </Skeleton.Container>\n );\n }\n\n return (\n <Tooltip placement=\"bottom\" content={title}>\n <BaseCard\n {...otherProps}\n className={cx(styles.root({ status }), className)}\n header={header}\n testId={testId}\n >\n {children || <Text>{title}</Text>}\n </BaseCard>\n </Tooltip>\n );\n};\n"]}
package/dist/index.d.mts CHANGED
@@ -1,11 +1,11 @@
1
- import { AssetStatus, AssetType } from '@contentful/f36-asset';
2
1
  import React$1, { ReactNode, ReactElement, MouseEventHandler } from 'react';
2
+ import { AssetStatus, AssetType } from '@contentful/f36-asset';
3
3
  import { ButtonProps } from '@contentful/f36-button';
4
- import { CommonProps, MarginProps, PolymorphicProps, PolymorphicComponent, ExpandProps, EntityStatus } from '@contentful/f36-core';
4
+ import { CommonProps, MarginProps, PolymorphicComponent, ExpandProps, PolymorphicProps, EntityStatus } from '@contentful/f36-core';
5
5
  import { HeadingElement } from '@contentful/f36-typography';
6
6
 
7
- declare type CardElement = 'a' | 'article' | 'button' | 'div' | 'fieldset';
8
- declare type BaseCardDragHandleProps = {
7
+ type CardElement = 'a' | 'article' | 'button' | 'div' | 'fieldset';
8
+ type BaseCardDragHandleProps = {
9
9
  /**
10
10
  * Render the component with a drag handle
11
11
  */
@@ -22,11 +22,11 @@ declare type BaseCardDragHandleProps = {
22
22
  drag: React.ReactElement;
23
23
  }) => React.ReactElement;
24
24
  };
25
- declare type BaseCardInternalProps = CommonProps & MarginProps & BaseCardDragHandleProps & {
25
+ type BaseCardInternalProps = CommonProps & MarginProps & BaseCardDragHandleProps & {
26
26
  /**
27
27
  * An array of Menu elements used to render an actions menu
28
28
  */
29
- actions?: React.ReactNodeArray;
29
+ actions?: ReactNode[];
30
30
  /**
31
31
  * Handle tag for Card component
32
32
  */
@@ -98,12 +98,12 @@ interface AssetCardInternalProps extends Omit<BaseCardInternalProps, 'header' |
98
98
  */
99
99
  type?: AssetType;
100
100
  }
101
- declare type AssetCardProps = AssetCardInternalProps;
102
- declare const AssetCard: ({ actions, className, icon, isSelected, size, src, status, title, type, withDragHandle, isLoading, testId, badge: customBadge, ...otherProps }: AssetCardInternalProps) => JSX.Element;
101
+ type AssetCardProps = AssetCardInternalProps;
102
+ declare const AssetCard: ({ actions, className, icon, isSelected, size, src, status, title, type, withDragHandle, isLoading, testId, badge: customBadge, ...otherProps }: AssetCardInternalProps) => React$1.JSX.Element;
103
103
 
104
104
  declare const BASE_CARD_DEFAULT_TAG = "article";
105
105
 
106
- declare type BaseProps = Omit<BaseCardInternalProps, 'header' | 'withDragHandle' | 'ref' | 'src' | 'type'> & {
106
+ type BaseProps = Omit<BaseCardInternalProps, 'header' | 'withDragHandle' | 'ref' | 'src' | 'type'> & {
107
107
  /**
108
108
  * Padding size to apply to the component
109
109
  *
@@ -111,15 +111,15 @@ declare type BaseProps = Omit<BaseCardInternalProps, 'header' | 'withDragHandle'
111
111
  */
112
112
  padding?: 'default' | 'large' | 'none';
113
113
  };
114
- declare type BasePropsWithDragHandle = Omit<BaseProps, 'padding'> & Pick<BaseCardInternalProps, 'withDragHandle'> & {
114
+ type BasePropsWithDragHandle = Omit<BaseProps, 'padding'> & Pick<BaseCardInternalProps, 'withDragHandle'> & {
115
115
  padding: 'none';
116
116
  };
117
- declare type CardInternalProps = BaseProps | BasePropsWithDragHandle;
118
- declare type CardProps<E extends React$1.ElementType = typeof BASE_CARD_DEFAULT_TAG> = PolymorphicProps<CardInternalProps, E>;
117
+ type CardInternalProps = BaseProps | BasePropsWithDragHandle;
118
+ type CardProps<E extends React$1.ElementType = typeof BASE_CARD_DEFAULT_TAG> = PolymorphicProps<CardInternalProps, E>;
119
119
  declare const Card: PolymorphicComponent<ExpandProps<CardInternalProps>, typeof BASE_CARD_DEFAULT_TAG>;
120
120
 
121
- declare type EntryCardSize = 'default' | 'small' | 'auto';
122
- declare type EntryCardInternalProps = Omit<BaseCardInternalProps, 'header' | 'padding' | 'ref' | 'type' | 'title'> & {
121
+ type EntryCardSize = 'default' | 'small' | 'auto';
122
+ type EntryCardInternalProps = Omit<BaseCardInternalProps, 'header' | 'padding' | 'ref' | 'type' | 'title'> & {
123
123
  /**
124
124
  * The title of the entry, it will be used as the value for the tooltip
125
125
  */
@@ -151,11 +151,11 @@ declare type EntryCardInternalProps = Omit<BaseCardInternalProps, 'header' | 'pa
151
151
  };
152
152
 
153
153
  declare const ENTRY_CARD_DEFAULT_TAG = "article";
154
- declare type EntryCardProps<E extends React$1.ElementType = typeof ENTRY_CARD_DEFAULT_TAG> = PolymorphicProps<EntryCardInternalProps, E>;
154
+ type EntryCardProps<E extends React$1.ElementType = typeof ENTRY_CARD_DEFAULT_TAG> = PolymorphicProps<EntryCardInternalProps, E>;
155
155
  declare const EntryCard: PolymorphicComponent<ExpandProps<EntryCardInternalProps>, typeof ENTRY_CARD_DEFAULT_TAG>;
156
156
 
157
- declare type InlineEntryCardInternalProps = Omit<EntryCardInternalProps, 'icon' | 'ref' | 'src' | 'size' | 'type' | keyof BaseCardDragHandleProps>;
158
- declare type InlineEntryCardProps = InlineEntryCardInternalProps;
159
- declare const InlineEntryCard: ({ actions, className, children, status, title, isLoading, testId, ...otherProps }: InlineEntryCardInternalProps) => JSX.Element;
157
+ type InlineEntryCardInternalProps = Omit<EntryCardInternalProps, 'icon' | 'ref' | 'src' | 'size' | 'type' | keyof BaseCardDragHandleProps>;
158
+ type InlineEntryCardProps = InlineEntryCardInternalProps;
159
+ declare const InlineEntryCard: ({ actions, className, children, status, title, isLoading, testId, ...otherProps }: InlineEntryCardInternalProps) => React$1.JSX.Element;
160
160
 
161
- export { AssetCard, AssetCardProps, Card, CardProps, EntryCard, EntryCardProps, InlineEntryCard, InlineEntryCardProps };
161
+ export { AssetCard, type AssetCardProps, Card, type CardProps, EntryCard, type EntryCardProps, InlineEntryCard, type InlineEntryCardProps };
package/dist/index.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- import { AssetStatus, AssetType } from '@contentful/f36-asset';
2
1
  import React$1, { ReactNode, ReactElement, MouseEventHandler } from 'react';
2
+ import { AssetStatus, AssetType } from '@contentful/f36-asset';
3
3
  import { ButtonProps } from '@contentful/f36-button';
4
- import { CommonProps, MarginProps, PolymorphicProps, PolymorphicComponent, ExpandProps, EntityStatus } from '@contentful/f36-core';
4
+ import { CommonProps, MarginProps, PolymorphicComponent, ExpandProps, PolymorphicProps, EntityStatus } from '@contentful/f36-core';
5
5
  import { HeadingElement } from '@contentful/f36-typography';
6
6
 
7
- declare type CardElement = 'a' | 'article' | 'button' | 'div' | 'fieldset';
8
- declare type BaseCardDragHandleProps = {
7
+ type CardElement = 'a' | 'article' | 'button' | 'div' | 'fieldset';
8
+ type BaseCardDragHandleProps = {
9
9
  /**
10
10
  * Render the component with a drag handle
11
11
  */
@@ -22,11 +22,11 @@ declare type BaseCardDragHandleProps = {
22
22
  drag: React.ReactElement;
23
23
  }) => React.ReactElement;
24
24
  };
25
- declare type BaseCardInternalProps = CommonProps & MarginProps & BaseCardDragHandleProps & {
25
+ type BaseCardInternalProps = CommonProps & MarginProps & BaseCardDragHandleProps & {
26
26
  /**
27
27
  * An array of Menu elements used to render an actions menu
28
28
  */
29
- actions?: React.ReactNodeArray;
29
+ actions?: ReactNode[];
30
30
  /**
31
31
  * Handle tag for Card component
32
32
  */
@@ -98,12 +98,12 @@ interface AssetCardInternalProps extends Omit<BaseCardInternalProps, 'header' |
98
98
  */
99
99
  type?: AssetType;
100
100
  }
101
- declare type AssetCardProps = AssetCardInternalProps;
102
- declare const AssetCard: ({ actions, className, icon, isSelected, size, src, status, title, type, withDragHandle, isLoading, testId, badge: customBadge, ...otherProps }: AssetCardInternalProps) => JSX.Element;
101
+ type AssetCardProps = AssetCardInternalProps;
102
+ declare const AssetCard: ({ actions, className, icon, isSelected, size, src, status, title, type, withDragHandle, isLoading, testId, badge: customBadge, ...otherProps }: AssetCardInternalProps) => React$1.JSX.Element;
103
103
 
104
104
  declare const BASE_CARD_DEFAULT_TAG = "article";
105
105
 
106
- declare type BaseProps = Omit<BaseCardInternalProps, 'header' | 'withDragHandle' | 'ref' | 'src' | 'type'> & {
106
+ type BaseProps = Omit<BaseCardInternalProps, 'header' | 'withDragHandle' | 'ref' | 'src' | 'type'> & {
107
107
  /**
108
108
  * Padding size to apply to the component
109
109
  *
@@ -111,15 +111,15 @@ declare type BaseProps = Omit<BaseCardInternalProps, 'header' | 'withDragHandle'
111
111
  */
112
112
  padding?: 'default' | 'large' | 'none';
113
113
  };
114
- declare type BasePropsWithDragHandle = Omit<BaseProps, 'padding'> & Pick<BaseCardInternalProps, 'withDragHandle'> & {
114
+ type BasePropsWithDragHandle = Omit<BaseProps, 'padding'> & Pick<BaseCardInternalProps, 'withDragHandle'> & {
115
115
  padding: 'none';
116
116
  };
117
- declare type CardInternalProps = BaseProps | BasePropsWithDragHandle;
118
- declare type CardProps<E extends React$1.ElementType = typeof BASE_CARD_DEFAULT_TAG> = PolymorphicProps<CardInternalProps, E>;
117
+ type CardInternalProps = BaseProps | BasePropsWithDragHandle;
118
+ type CardProps<E extends React$1.ElementType = typeof BASE_CARD_DEFAULT_TAG> = PolymorphicProps<CardInternalProps, E>;
119
119
  declare const Card: PolymorphicComponent<ExpandProps<CardInternalProps>, typeof BASE_CARD_DEFAULT_TAG>;
120
120
 
121
- declare type EntryCardSize = 'default' | 'small' | 'auto';
122
- declare type EntryCardInternalProps = Omit<BaseCardInternalProps, 'header' | 'padding' | 'ref' | 'type' | 'title'> & {
121
+ type EntryCardSize = 'default' | 'small' | 'auto';
122
+ type EntryCardInternalProps = Omit<BaseCardInternalProps, 'header' | 'padding' | 'ref' | 'type' | 'title'> & {
123
123
  /**
124
124
  * The title of the entry, it will be used as the value for the tooltip
125
125
  */
@@ -151,11 +151,11 @@ declare type EntryCardInternalProps = Omit<BaseCardInternalProps, 'header' | 'pa
151
151
  };
152
152
 
153
153
  declare const ENTRY_CARD_DEFAULT_TAG = "article";
154
- declare type EntryCardProps<E extends React$1.ElementType = typeof ENTRY_CARD_DEFAULT_TAG> = PolymorphicProps<EntryCardInternalProps, E>;
154
+ type EntryCardProps<E extends React$1.ElementType = typeof ENTRY_CARD_DEFAULT_TAG> = PolymorphicProps<EntryCardInternalProps, E>;
155
155
  declare const EntryCard: PolymorphicComponent<ExpandProps<EntryCardInternalProps>, typeof ENTRY_CARD_DEFAULT_TAG>;
156
156
 
157
- declare type InlineEntryCardInternalProps = Omit<EntryCardInternalProps, 'icon' | 'ref' | 'src' | 'size' | 'type' | keyof BaseCardDragHandleProps>;
158
- declare type InlineEntryCardProps = InlineEntryCardInternalProps;
159
- declare const InlineEntryCard: ({ actions, className, children, status, title, isLoading, testId, ...otherProps }: InlineEntryCardInternalProps) => JSX.Element;
157
+ type InlineEntryCardInternalProps = Omit<EntryCardInternalProps, 'icon' | 'ref' | 'src' | 'size' | 'type' | keyof BaseCardDragHandleProps>;
158
+ type InlineEntryCardProps = InlineEntryCardInternalProps;
159
+ declare const InlineEntryCard: ({ actions, className, children, status, title, isLoading, testId, ...otherProps }: InlineEntryCardInternalProps) => React$1.JSX.Element;
160
160
 
161
- export { AssetCard, AssetCardProps, Card, CardProps, EntryCard, EntryCardProps, InlineEntryCard, InlineEntryCardProps };
161
+ export { AssetCard, type AssetCardProps, Card, type CardProps, EntryCard, type EntryCardProps, InlineEntryCard, type InlineEntryCardProps };
package/dist/index.js CHANGED
@@ -1,32 +1,3 @@
1
- 'use strict';
2
-
3
- var b = require('react');
4
- var emotion = require('emotion');
5
- var f36Core = require('@contentful/f36-core');
6
- var f36Badge = require('@contentful/f36-badge');
7
- var f36Asset = require('@contentful/f36-asset');
8
- var f36Skeleton = require('@contentful/f36-skeleton');
9
- var f36DragHandle = require('@contentful/f36-drag-handle');
10
- var n = require('@contentful/f36-tokens');
11
- var f36Typography = require('@contentful/f36-typography');
12
- var f36Button = require('@contentful/f36-button');
13
- var f36Icons = require('@contentful/f36-icons');
14
- var f36Menu = require('@contentful/f36-menu');
15
- var Tr = require('truncate');
16
- var f36Tooltip = require('@contentful/f36-tooltip');
17
-
18
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
19
-
20
- var b__default = /*#__PURE__*/_interopDefault(b);
21
- var n__default = /*#__PURE__*/_interopDefault(n);
22
- var Tr__default = /*#__PURE__*/_interopDefault(Tr);
23
-
24
- var jr=Object.defineProperty,Yr=Object.defineProperties;var Kr=Object.getOwnPropertyDescriptors;var z=Object.getOwnPropertySymbols;var pr=Object.prototype.hasOwnProperty,lr=Object.prototype.propertyIsEnumerable;var dr=(r,e,t)=>e in r?jr(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,l=(r,e)=>{for(var t in e||(e={}))pr.call(e,t)&&dr(r,t,e[t]);if(z)for(var t of z(e))lr.call(e,t)&&dr(r,t,e[t]);return r},y=(r,e)=>Yr(r,Kr(e));var h=(r,e)=>{var t={};for(var o in r)pr.call(r,o)&&e.indexOf(o)<0&&(t[o]=r[o]);if(r!=null&&z)for(var o of z(r))e.indexOf(o)<0&&lr.call(r,o)&&(t[o]=r[o]);return t};var mr=()=>({contentBody:emotion.css({gridColumn:"content",gridRow:"content",whiteSpace:"initial"}),wrapper:emotion.css({flex:"1 1 0",display:"grid",gridTemplateRows:"[header] auto [content] minmax(0, 1fr)",gridTemplateColumns:"auto [content] minmax(0, 1fr)"}),dragHandle:emotion.css({borderBottomLeftRadius:n__default.default.borderRadiusMedium,borderTopLeftRadius:n__default.default.borderRadiusMedium,cursor:"grab"}),root:({hasHeader:r,isHovered:e,isSelected:t})=>{let o={backgroundColor:n__default.default.colorWhite,borderColor:n__default.default.gray300,borderRadius:n__default.default.borderRadiusMedium,borderStyle:"solid",borderWidth:1,color:n__default.default.gray900,display:"flex",textAlign:"left",width:"100%",fontSize:n__default.default.fontSizeM,fontWeight:n__default.default.fontWeightNormal,position:"relative",textDecoration:"none",margin:0,transition:`border-color ${n__default.default.transitionDurationDefault} ${n__default.default.transitionEasingDefault},
25
- box-shadow ${n__default.default.transitionDurationShort} ${n__default.default.transitionEasingDefault}`,"&:focus":emotion.css({borderColor:t?n__default.default.blue100:n__default.default.blue500,boxShadow:n__default.default.glowPrimary,outline:"none"}),"&:focus:not(:focus-visible)":emotion.css({borderColor:t?n__default.default.blue500:n__default.default.gray300,boxShadow:"unset"}),"&:focus-visible":emotion.css({borderColor:n__default.default.blue500,boxShadow:n__default.default.glowPrimary})};return r||(o.paddingTop=n__default.default.spacingM),e&&(o.borderColor=n__default.default.blue500,o.cursor="pointer"),t&&(o.backgroundColor=n__default.default.blue100,o.borderColor=n__default.default.blue500),emotion.css(o)},skeleton:emotion.css({border:`1px solid ${n__default.default.gray300}`,borderRadius:n__default.default.borderRadiusMedium,padding:n__default.default.spacingM})});var cr=()=>({root:emotion.css({minHeight:"auto",padding:n__default.default.spacing2Xs})});var v=({buttonProps:r,children:e})=>{let t=cr();return b__default.default.createElement(f36Menu.Menu,null,b__default.default.createElement(f36Menu.Menu.Trigger,null,b__default.default.createElement(f36Button.IconButton,y(l({"aria-label":"Actions",icon:b__default.default.createElement(f36Icons.DotsThreeIcon,null)},r),{className:emotion.cx(t.root,r==null?void 0:r.className),size:"small",variant:"transparent",testId:"cf-ui-card-actions"}))),b__default.default.createElement(f36Menu.Menu.List,null,e))};var te=()=>({header:emotion.css({columnGap:n__default.default.spacingXs,rowGap:n__default.default.spacing2Xs,alignItems:"center",borderBottomColor:n__default.default.gray200,borderBottomStyle:"solid",borderBottomWidth:1,borderTopLeftRadius:n__default.default.borderRadiusMedium,borderTopRightRadius:n__default.default.borderRadiusMedium,boxSizing:"border-box",color:n__default.default.gray600,fontSize:n__default.default.fontSizeM,fontWeight:n__default.default.fontWeightNormal,gridColumn:"content",gridRow:"header",lineHeight:n__default.default.lineHeightM,paddingBottom:n__default.default.spacingXs,paddingLeft:n__default.default.spacingM,paddingRight:n__default.default.spacingXs,paddingTop:n__default.default.spacingXs,minHeight:"37px"}),headerWithActions:emotion.css({paddingBottom:n__default.default.spacing2Xs,paddingRight:n__default.default.spacingXs,paddingTop:n__default.default.spacing2Xs})}),O=r=>{r.preventDefault(),r.stopPropagation();},G=r=>{let{icon:e,type:t,actions:o,actionsButtonProps:s,badge:m,customActionButton:i}=r,d=te(),c=()=>i?b__default.default.createElement(f36Core.Flex,{onClick:O,alignItems:"center"},i):o&&o.length>0?b__default.default.createElement(f36Core.Flex,{onClick:O,alignItems:"center"},b__default.default.createElement(v,{buttonProps:s},o)):null;return b__default.default.createElement(f36Core.Flex,{flexWrap:"wrap",className:emotion.cx(d.header,(o||i)&&d.headerWithActions)},b__default.default.createElement(f36Core.Flex,{flexGrow:1},t&&b__default.default.createElement(f36Typography.Text,{fontColor:"gray600",isWordBreak:!0},t)),e&&b__default.default.createElement(f36Core.Flex,{alignItems:"center"},e),m&&b__default.default.createElement(f36Core.Flex,{alignItems:"center"},m),c())};G.displayName="DefaultCardHeader";var de="article";function gr(Ie,vr){var nr=Ie,{actions:r,actionsButtonProps:e,ariaLabel:t,badge:o,children:s,className:m,contentBodyProps:i,customActionButton:d,header:c,href:g,icon:f,isDragging:p=!1,isHovered:u,isSelected:R=!1,onBlur:M,onClick:x,onFocus:B,onKeyDown:A,onMouseEnter:P,onMouseLeave:L,target:Y,rel:wr,testId:kr="cf-ui-base-card",title:Z,type:rr,withDragHandle:er,dragHandleRender:tr,isLoading:Rr}=nr,or=h(nr,["actions","actionsButtonProps","ariaLabel","badge","children","className","contentBodyProps","customActionButton","header","href","icon","isDragging","isHovered","isSelected","onBlur","onClick","onFocus","onKeyDown","onMouseEnter","onMouseLeave","target","rel","testId","title","type","withDragHandle","dragHandleRender","isLoading"]);let W=mr(),[Fr,ar]=b.useState(u!=null?u:!1),sr=!!(x||g||er),Nr=!!c,Wr=rr||f||o||r||d?b__default.default.createElement(G,{type:rr,icon:f,badge:o,actions:r,customActionButton:d,actionsButtonProps:e}):null,Xr=b.useCallback(E=>{B&&B(E);},[B]),Gr=b.useCallback(E=>{M&&M(E);},[M]),Ur=b.useCallback(E=>{ar(!0),P&&P(E);},[P]),$r=b.useCallback(E=>{ar(!1),L&&L(E);},[L]),zr=x?E=>{x(E);}:void 0,Or=b.useCallback(E=>{A&&A(E);},[A]);if(Rr)return b__default.default.createElement(f36Skeleton.Skeleton.Container,{className:W.skeleton,svgHeight:"5.6rem"},b__default.default.createElement(f36Skeleton.Skeleton.DisplayText,{numberOfLines:1}),b__default.default.createElement(f36Skeleton.Skeleton.BodyText,{numberOfLines:1,offsetTop:35}));let ir=b__default.default.createElement(f36DragHandle.DragHandle,{className:W.dragHandle,isActive:p,label:"Reorder entry",onClick:O});return b__default.default.createElement(f36Core.Box,y(l({"aria-label":Z||t,"aria-pressed":or.as==="button"?R?"true":"false":void 0,as:de,className:emotion.cx(W.root({hasHeader:Nr,isHovered:Fr,isSelected:R}),m),href:g,onBlur:Gr,onClick:zr,onFocus:Xr,onMouseEnter:typeof u=="undefined"&&sr?Ur:void 0,onMouseLeave:typeof u=="undefined"&&sr?$r:void 0,onKeyDown:Or,rel:g&&(wr||"noreferrer"),role:x&&!g?"button":void 0,tabIndex:x?0:void 0,target:Y},or),{ref:vr,testId:kr,title:Z}),er?tr?tr({drag:ir,isDragging:p}):ir:null,b__default.default.createElement("div",{className:W.wrapper,"data-card-part":"wrapper"},c!=null?c:Wr,b__default.default.createElement("div",{className:W.contentBody,"data-card-part":"content"},s)))}gr.displayName="BaseCard";var D=b.forwardRef(gr);var ur=()=>({root:({size:r})=>emotion.css({display:"inline-flex",width:"auto",borderRadius:n__default.default.borderRadiusMedium,minWidth:`calc(1rem * (120 / ${n__default.default.fontBaseDefault}))`,height:r==="small"?`calc(1rem * (188 / ${n__default.default.fontBaseDefault}))`:`calc(1rem * (300 / ${n__default.default.fontBaseDefault}))`,padding:0,textAlign:"center"}),asset:emotion.css({height:"100%"}),skeleton:emotion.css({border:`1px solid ${n__default.default.gray300}`,borderRadius:n__default.default.borderRadiusMedium,padding:n__default.default.spacingM})});var Cr=M=>{var x=M,{actions:r,className:e,icon:t=null,isSelected:o,size:s="default",src:m,status:i,title:d,type:c,withDragHandle:g=!1,isLoading:f,testId:p="cf-ui-asset-card",badge:u}=x,R=h(x,["actions","className","icon","isSelected","size","src","status","title","type","withDragHandle","isLoading","testId","badge"]);let B=ur(),A=u||(i?b__default.default.createElement(f36Badge.EntityStatusBadge,{entityStatus:i}):null),P=t||A||r?b__default.default.createElement(G,{icon:t,badge:A,actions:r}):null;return f?b__default.default.createElement(f36Skeleton.Skeleton.Container,{className:B.skeleton,svgWidth:s==="default"?"18rem":"11rem",svgHeight:s==="default"?"18.75rem":"12rem"},b__default.default.createElement(f36Skeleton.Skeleton.Image,{width:"100%",height:"18.75rem"})):b__default.default.createElement(D,y(l({},R),{badge:A,className:emotion.cx(B.root({size:s}),e),header:P,isSelected:o,title:d,withDragHandle:g,testId:p}),b__default.default.createElement(f36Core.Flex,{alignItems:"center",fullHeight:!0,justifyContent:"center"},b__default.default.createElement(f36Asset.Asset,{className:B.asset,src:m,status:i,title:d,type:c})))};var fe=r=>{switch(r){case"large":return n__default.default.spacingL;case"none":return 0;default:return n__default.default.spacingM}},xr=({padding:r})=>({header:emotion.css({gridColumn:"content",gridRow:"header",marginBottom:n__default.default.spacingM}),root:emotion.css({padding:fe(r)})});function Br(g,c){var f=g,{actions:r,badge:e,icon:t,padding:o="default",title:s,className:m,testId:i="cf-ui-card"}=f,d=h(f,["actions","badge","icon","padding","title","className","testId"]);let p=xr({padding:o}),u=!!(s||t||e||r);return b__default.default.createElement(D,y(l({className:emotion.cx(p.root,m)},d),{testId:i,header:u&&b__default.default.createElement(f36Core.Flex,{alignItems:"center",className:emotion.cx(p.header)},s&&b__default.default.createElement(f36Core.Flex,{as:"header",flexGrow:1},b__default.default.createElement(f36Typography.Heading,{marginBottom:"none"},s)),t&&b__default.default.createElement(f36Core.Flex,{alignItems:"center",marginLeft:"spacingXs"},t),e&&b__default.default.createElement(f36Core.Flex,{alignItems:"center",marginLeft:"spacingXs"},e),r&&b__default.default.createElement(v,null,r)),ref:c}))}Br.displayName="Card";var br=b.forwardRef(Br);var Ar=()=>({actionsButton:emotion.css({borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:n__default.default.borderRadiusMedium}),content:r=>emotion.css({gridColumn:"content",marginTop:r==="small"?n__default.default.spacingXs:n__default.default.spacingS,marginBottom:r==="small"?`calc(-1 * ${n__default.default.spacingXs})`:0}),root:emotion.css({padding:0,'[data-card-part="content"]':{paddingBottom:n__default.default.spacingM,paddingLeft:n__default.default.spacingM,paddingRight:n__default.default.spacingM}}),header:emotion.css({borderBottomWidth:1,borderBottomColor:n__default.default.gray200,borderBottomStyle:"solid",minHeight:"auto",paddingBottom:n__default.default.spacingXs,paddingLeft:n__default.default.spacingM,paddingRight:n__default.default.spacingXs}),thumbnail:r=>emotion.css(l({margin:`0 0 0 ${n__default.default.spacingS}`,padding:0,overflow:"hidden",position:"relative",img:{width:"100%",height:"100%",objectFit:"cover",position:"absolute",zIndex:1}},r==="small"?{height:"40px",width:"40px"}:{height:"70px",width:"70px"}))});var Be="article";function Ir({title:r,titleTag:e}){if(!r)return null;let t=Tr__default.default(r,255,{});return b__default.default.createElement(f36Typography.Subheading,{title:r.length>255?r:"",testId:"title",as:e,marginBottom:"none",isWordBreak:!0},t)}Ir.displayName="EntryCardTitle";function Sr({description:r,size:e}){if(!r||e==="small")return null;let t=Tr__default.default(r,95,{});return b__default.default.createElement(f36Typography.Paragraph,{marginBottom:"none",isWordBreak:!0},t)}Sr.displayName="EntryCardDescription";function Dr(A,B){var P=A,{actions:r,children:e,className:t,customActionButton:o,src:s,status:m,thumbnailElement:i,description:d,withDragHandle:c=!1,title:g,titleTag:f="h2",size:p,testId:u="cf-ui-entry-card",contentType:R,badge:M}=P,x=h(P,["actions","children","className","customActionButton","src","status","thumbnailElement","description","withDragHandle","title","titleTag","size","testId","contentType","badge"]);let L=Ar(),Y=m?b__default.default.createElement(f36Badge.EntityStatusBadge,{entityStatus:m}):null;return b__default.default.createElement(D,y(l({as:Be},x),{actions:r,badge:M||Y,className:emotion.cx(L.root,t),customActionButton:o,withDragHandle:c,ref:B,type:R,testId:u}),b__default.default.createElement(f36Core.Flex,{alignItems:"center",className:L.content(p),flexDirection:"row"},b__default.default.createElement(f36Core.Flex,{flexDirection:"column",flexGrow:1,gap:"spacingS"},b__default.default.createElement(Ir,{title:g,titleTag:f}),b__default.default.createElement(Sr,{size:p,description:d}),e),i&&p!=="small"&&b__default.default.createElement("figure",{className:L.thumbnail(p)},i)))}Dr.displayName="EntryCard";var Hr=b.forwardRef(Dr);var Mr=()=>({actions:emotion.css({display:"flex",padding:0,marginLeft:n__default.default.spacingXs,minHeight:"auto"}),root:({status:r})=>{let e=f36Core.getEntityStatusStyles({status:r});return emotion.css({borderBottomLeftRadius:0,borderTopLeftRadius:0,display:"inline-flex",width:"auto",verticalAlign:"middle",paddingBottom:0,paddingTop:0,paddingLeft:n__default.default.spacingS,paddingRight:n__default.default.spacing2Xs,'[data-card-part="wrapper"]':{display:"inline-flex",flexDirection:"row-reverse"},"&::before":{backgroundColor:e.color,bottom:0,content:'""',display:"block",left:0,position:"absolute",top:0,width:n__default.default.spacing2Xs}})},skeleton:emotion.css({display:"inline-flex",border:`1px solid ${n__default.default.gray300}`,borderTopRightRadius:n__default.default.borderRadiusMedium,borderBottomRightRadius:n__default.default.borderRadiusMedium,padding:n__default.default.spacingXs})});var _r=c=>{var g=c,{actions:r,className:e,children:t,status:o,title:s,isLoading:m,testId:i="cf-ui-inline-entry-card"}=g,d=h(g,["actions","className","children","status","title","isLoading","testId"]);let f=Mr(),p=b__default.default.createElement(v,{buttonProps:{className:f.actions}},r);return m?b__default.default.createElement(f36Skeleton.Skeleton.Container,{className:f.skeleton,svgHeight:"1.25rem",svgWidth:"6rem"},b__default.default.createElement(f36Skeleton.Skeleton.BodyText,{numberOfLines:1})):b__default.default.createElement(f36Tooltip.Tooltip,{placement:"bottom",content:s},b__default.default.createElement(D,y(l({},d),{className:emotion.cx(f.root({status:o}),e),header:p,testId:i}),t||b__default.default.createElement(f36Typography.Text,null,s)))};
26
-
27
- exports.AssetCard = Cr;
28
- exports.Card = br;
29
- exports.EntryCard = Hr;
30
- exports.InlineEntryCard = _r;
31
- //# sourceMappingURL=out.js.map
1
+ 'use strict';var m=require('react'),css=require('@emotion/css'),f36Core=require('@contentful/f36-core'),f36Badge=require('@contentful/f36-badge'),f36Asset=require('@contentful/f36-asset'),f36Skeleton=require('@contentful/f36-skeleton'),f36DragHandle=require('@contentful/f36-drag-handle'),o=require('@contentful/f36-tokens'),f36Typography=require('@contentful/f36-typography'),f36Button=require('@contentful/f36-button'),f36Icons=require('@contentful/f36-icons'),f36Menu=require('@contentful/f36-menu'),Nr=require('truncate'),f36Tooltip=require('@contentful/f36-tooltip');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var m__default=/*#__PURE__*/_interopDefault(m);var o__default=/*#__PURE__*/_interopDefault(o);var Nr__default=/*#__PURE__*/_interopDefault(Nr);var ee=Object.defineProperty,te=Object.defineProperties;var oe=Object.getOwnPropertyDescriptors;var O=Object.getOwnPropertySymbols;var Er=Object.prototype.hasOwnProperty,xr=Object.prototype.propertyIsEnumerable;var Cr=(r,e,t)=>e in r?ee(r,e,{enumerable:true,configurable:true,writable:true,value:t}):r[e]=t,a=(r,e)=>{for(var t in e||(e={}))Er.call(e,t)&&Cr(r,t,e[t]);if(O)for(var t of O(e))xr.call(e,t)&&Cr(r,t,e[t]);return r},p=(r,e)=>te(r,oe(e));var x=(r,e)=>{var t={};for(var n in r)Er.call(r,n)&&e.indexOf(n)<0&&(t[n]=r[n]);if(r!=null&&O)for(var n of O(r))e.indexOf(n)<0&&xr.call(r,n)&&(t[n]=r[n]);return t};var hr=()=>({contentBody:css.css({gridColumn:"content",gridRow:"content",whiteSpace:"initial"}),wrapper:css.css({flex:"1 1 0",display:"grid",gridTemplateRows:"[header] auto [content] minmax(0, 1fr)",gridTemplateColumns:"auto [content] minmax(0, 1fr)"}),dragHandle:css.css({borderBottomLeftRadius:o__default.default.borderRadiusMedium,borderTopLeftRadius:o__default.default.borderRadiusMedium,cursor:"grab"}),skeleton:css.css({border:`1px solid ${o__default.default.gray300}`,borderRadius:o__default.default.borderRadiusMedium,padding:o__default.default.spacingM})}),Br=(r,e,t)=>({root:css.css(p(a(a({backgroundColor:o__default.default.colorWhite,borderColor:o__default.default.gray300,borderRadius:o__default.default.borderRadiusMedium,borderStyle:"solid",borderWidth:1,color:o__default.default.gray900,display:"flex",textAlign:"left",width:"100%",fontSize:o__default.default.fontSizeM,fontWeight:o__default.default.fontWeightNormal,position:"relative",textDecoration:"none",margin:0,transition:`border-color ${o__default.default.transitionDurationDefault} ${o__default.default.transitionEasingDefault},
2
+ box-shadow ${o__default.default.transitionDurationShort} ${o__default.default.transitionEasingDefault}`,paddingTop:r?0:o__default.default.spacingM},e&&{borderColor:o__default.default.blue500,cursor:"pointer"}),t&&{backgroundColor:o__default.default.blue100,borderColor:o__default.default.blue500}),{"&:focus":css.css({borderColor:t?o__default.default.blue100:o__default.default.blue500,boxShadow:o__default.default.glowPrimary,outline:"none"}),"&:focus:not(:focus-visible)":css.css({borderColor:t?o__default.default.blue500:o__default.default.gray300,boxShadow:"unset"}),"&:focus-visible":css.css({borderColor:o__default.default.blue500,boxShadow:o__default.default.glowPrimary})}))});var br=()=>({root:css.css({minHeight:"auto",padding:o__default.default.spacing2Xs})});var k=({buttonProps:r,children:e})=>{let t=br();return m__default.default.createElement(f36Menu.Menu,null,m__default.default.createElement(f36Menu.Menu.Trigger,null,m__default.default.createElement(f36Button.IconButton,p(a({},r),{"aria-label":"Actions",icon:m__default.default.createElement(f36Icons.DotsThreeIcon,null),className:css.cx(t.root,r==null?void 0:r.className),size:"small",variant:"transparent",testId:"cf-ui-card-actions"}))),m__default.default.createElement(f36Menu.Menu.List,null,e))};k.displayName="CardActions";var Pr=()=>({header:css.css({columnGap:o__default.default.spacingXs,rowGap:o__default.default.spacing2Xs,alignItems:"center",borderBottomColor:o__default.default.gray200,borderBottomStyle:"solid",borderBottomWidth:1,borderTopLeftRadius:o__default.default.borderRadiusMedium,borderTopRightRadius:o__default.default.borderRadiusMedium,boxSizing:"border-box",color:o__default.default.gray600,fontSize:o__default.default.fontSizeM,fontWeight:o__default.default.fontWeightNormal,gridColumn:"content",gridRow:"header",lineHeight:o__default.default.lineHeightM,paddingBottom:o__default.default.spacingXs,paddingLeft:o__default.default.spacingM,paddingRight:o__default.default.spacingXs,paddingTop:o__default.default.spacingXs,minHeight:"37px"}),headerWithActions:css.css({paddingBottom:o__default.default.spacing2Xs,paddingRight:o__default.default.spacingXs,paddingTop:o__default.default.spacing2Xs})});var Y=r=>{r.preventDefault(),r.stopPropagation();},G=r=>{let{icon:e,type:t,actions:n,actionsButtonProps:c,badge:f,customActionButton:i}=r,d=Pr(),y=()=>i?m__default.default.createElement(f36Core.Flex,{onClick:Y,alignItems:"center"},i):n&&n.length>0?m__default.default.createElement(f36Core.Flex,{onClick:Y,alignItems:"center"},m__default.default.createElement(k,{buttonProps:c},n)):null;return m__default.default.createElement(f36Core.Flex,{flexWrap:"wrap",className:css.cx(d.header,(n||i)&&d.headerWithActions)},m__default.default.createElement(f36Core.Flex,{flexGrow:1},t&&m__default.default.createElement(f36Typography.Text,{fontColor:"gray600",isWordBreak:true},t)),e&&m__default.default.createElement(f36Core.Flex,{alignItems:"center"},e),f&&m__default.default.createElement(f36Core.Flex,{alignItems:"center"},f),y())};G.displayName="DefaultCardHeader";var ge="article";function Tr(ke,V){var pr=ke,{actions:r,actionsButtonProps:e,ariaLabel:t,badge:n,children:c,className:f,customActionButton:i,header:d,href:y,icon:E,isDragging:g=false,isHovered:s,isSelected:h=false,onBlur:L,onClick:B,onFocus:P,onKeyDown:b,onMouseEnter:T,onMouseLeave:I,target:R,rel:W,testId:zr="cf-ui-base-card",title:ar,type:sr,withDragHandle:ir,dragHandleRender:dr,isLoading:Or,as:Yr}=pr,K=x(pr,["actions","actionsButtonProps","ariaLabel","badge","children","className","customActionButton","header","href","icon","isDragging","isHovered","isSelected","onBlur","onClick","onFocus","onKeyDown","onMouseEnter","onMouseLeave","target","rel","testId","title","type","withDragHandle","dragHandleRender","isLoading","as"]);let z=hr(),[jr,lr]=m.useState(s!=null?s:false),Kr=!!(B||y||ir),Vr=!!d,qr=sr||E||n||r||i?m__default.default.createElement(G,{type:sr,icon:E,badge:n,actions:r,customActionButton:i,actionsButtonProps:e}):null,mr=m.useCallback(C=>{P&&P(C);},[P]),cr=m.useCallback(C=>{L&&L(C);},[L]),fr=m.useCallback(C=>{lr(true),T&&T(C);},[T]),gr=m.useCallback(C=>{lr(false),I&&I(C);},[I]),Jr=B?C=>{B(C);}:void 0,Qr=m.useCallback(C=>{b&&b(C);},[b]);if(Or)return m__default.default.createElement(f36Skeleton.Skeleton.Container,{className:z.skeleton,svgHeight:"5.6rem"},m__default.default.createElement(f36Skeleton.Skeleton.DisplayText,{numberOfLines:1}),m__default.default.createElement(f36Skeleton.Skeleton.BodyText,{numberOfLines:1,offsetTop:35}));let ur=m__default.default.createElement(f36DragHandle.DragHandle,{className:z.dragHandle,isActive:g,label:"Reorder entry",onClick:Y}),q=()=>m__default.default.createElement(m__default.default.Fragment,null,ir?dr?dr({drag:ur,isDragging:g}):ur:null,m__default.default.createElement("div",{className:z.wrapper,"data-card-part":"wrapper"},d!=null?d:qr,m__default.default.createElement("div",{className:z.contentBody,"data-card-part":"content"},c))),yr=Yr||ge,Zr=Br(Vr,jr,h),J={testId:zr,className:css.cx(Zr.root,f),"aria-label":ar||t,title:ar},re={href:y,target:R,rel:W!=null?W:"noreferrer"};if(yr==="a")return m__default.default.createElement(f36Core.Box,a(p(a(a({as:"a"},re),J),{ref:V,onFocus:mr,onBlur:cr,onMouseEnter:typeof s=="undefined"?fr:void 0,onMouseLeave:typeof s=="undefined"?gr:void 0}),K),m__default.default.createElement(q,null));let Q=yr;return Kr?m__default.default.createElement(f36Core.Box,a(p(a({as:Q},J),{"aria-pressed":Q==="button"?!!h:void 0,onBlur:cr,onClick:Jr,onFocus:mr,onMouseEnter:typeof s=="undefined"?fr:void 0,onMouseLeave:typeof s=="undefined"?gr:void 0,onKeyDown:Qr,role:B?"button":void 0,tabIndex:B?0:void 0,ref:V}),K),m__default.default.createElement(q,null)):m__default.default.createElement(f36Core.Box,p(a(a({as:Q},J),K),{ref:V}),m__default.default.createElement(q,null))}Tr.displayName="BaseCard";var M=m__default.default.forwardRef(Tr);var Ir=()=>({root:({size:r})=>css.css({display:"inline-flex",width:"auto",borderRadius:o__default.default.borderRadiusMedium,minWidth:`calc(1rem * (120 / ${o__default.default.fontBaseDefault}))`,height:r==="small"?`calc(1rem * (188 / ${o__default.default.fontBaseDefault}))`:`calc(1rem * (300 / ${o__default.default.fontBaseDefault}))`,padding:0,textAlign:"center"}),asset:css.css({height:"100%"}),skeleton:css.css({border:`1px solid ${o__default.default.gray300}`,borderRadius:o__default.default.borderRadiusMedium,padding:o__default.default.spacingM})});var Dr=B=>{var P=B,{actions:r,className:e,icon:t=null,isSelected:n,size:c="default",src:f,status:i,title:d,type:y,withDragHandle:E=false,isLoading:g,testId:s="cf-ui-asset-card",badge:h}=P,L=x(P,["actions","className","icon","isSelected","size","src","status","title","type","withDragHandle","isLoading","testId","badge"]);let b=Ir(),T=h||(i?m__default.default.createElement(f36Badge.EntityStatusBadge,{entityStatus:i}):null),I=t||T||r?m__default.default.createElement(G,{icon:t,badge:T,actions:r}):null;return g?m__default.default.createElement(f36Skeleton.Skeleton.Container,{className:b.skeleton,svgWidth:c==="default"?"18rem":"11rem",svgHeight:c==="default"?"18.75rem":"12rem"},m__default.default.createElement(f36Skeleton.Skeleton.Image,{width:"100%",height:"18.75rem"})):m__default.default.createElement(M,p(a({},L),{badge:T,className:css.cx(b.root({size:c}),e),header:I,isSelected:n,title:d,withDragHandle:E,testId:s}),m__default.default.createElement(f36Core.Flex,{alignItems:"center",fullHeight:true,justifyContent:"center"},m__default.default.createElement(f36Asset.Asset,{className:b.asset,src:f,status:i,title:d,type:y})))};var xe=r=>{switch(r){case "large":return o__default.default.spacingL;case "none":return 0;default:return o__default.default.spacingM}},Hr=({padding:r})=>({header:css.css({gridColumn:"content",gridRow:"header",marginBottom:o__default.default.spacingM}),root:css.css({padding:xe(r)})});function kr(E,y){var g=E,{actions:r,badge:e,icon:t,padding:n="default",title:c,className:f,testId:i="cf-ui-card"}=g,d=x(g,["actions","badge","icon","padding","title","className","testId"]);let s=Hr({padding:n}),h=!!(c||t||e||r);return m__default.default.createElement(M,p(a({className:css.cx(s.root,f)},d),{testId:i,header:h&&m__default.default.createElement(f36Core.Flex,{alignItems:"center",className:css.cx(s.header)},c&&m__default.default.createElement(f36Core.Flex,{as:"header",flexGrow:1},m__default.default.createElement(f36Typography.Heading,{marginBottom:"none"},c)),t&&m__default.default.createElement(f36Core.Flex,{alignItems:"center",marginLeft:"spacingXs"},t),e&&m__default.default.createElement(f36Core.Flex,{alignItems:"center",marginLeft:"spacingXs"},e),r&&m__default.default.createElement(k,null,r)),ref:y}))}kr.displayName="Card";var wr=m.forwardRef(kr);var _r=()=>({actionsButton:css.css({borderBottomLeftRadius:0,borderBottomRightRadius:0,borderTopLeftRadius:0,borderTopRightRadius:o__default.default.borderRadiusMedium}),content:r=>css.css({gridColumn:"content",marginTop:r==="small"?o__default.default.spacingXs:o__default.default.spacingS,marginBottom:r==="small"?`calc(-1 * ${o__default.default.spacingXs})`:0}),root:css.css({padding:0,'[data-card-part="content"]':{paddingBottom:o__default.default.spacingM,paddingLeft:o__default.default.spacingM,paddingRight:o__default.default.spacingM}}),header:css.css({borderBottomWidth:1,borderBottomColor:o__default.default.gray200,borderBottomStyle:"solid",minHeight:"auto",paddingBottom:o__default.default.spacingXs,paddingLeft:o__default.default.spacingM,paddingRight:o__default.default.spacingXs}),thumbnail:r=>css.css(a({margin:`0 0 0 ${o__default.default.spacingS}`,padding:0,overflow:"hidden",position:"relative",img:{width:"100%",height:"100%",objectFit:"cover",position:"absolute",zIndex:1}},r==="small"?{height:"40px",width:"40px"}:{height:"70px",width:"70px"}))});var Se="article";function vr({title:r,titleTag:e}){if(!r)return null;let t=Nr__default.default(r,255,{});return m__default.default.createElement(f36Typography.Subheading,{title:r.length>255?r:"",testId:"title",as:e,marginBottom:"none",isWordBreak:true},t)}vr.displayName="EntryCardTitle";function Rr({description:r,size:e}){if(!r||e==="small")return null;let t=Nr__default.default(r,95,{});return m__default.default.createElement(f36Typography.Paragraph,{marginBottom:"none",isWordBreak:true},t)}Rr.displayName="EntryCardDescription";function Wr(T,b){var I=T,{actions:r,children:e,className:t,customActionButton:n,src:c,status:f,thumbnailElement:i,description:d,withDragHandle:y=false,title:E,titleTag:g="h2",size:s,testId:h="cf-ui-entry-card",contentType:L,badge:B}=I,P=x(I,["actions","children","className","customActionButton","src","status","thumbnailElement","description","withDragHandle","title","titleTag","size","testId","contentType","badge"]);let R=_r(),W=f?m__default.default.createElement(f36Badge.EntityStatusBadge,{entityStatus:f}):null;return m__default.default.createElement(M,p(a({as:Se},P),{actions:r,badge:B||W,className:css.cx(R.root,t),customActionButton:n,withDragHandle:y,ref:b,type:L,testId:h}),m__default.default.createElement(f36Core.Flex,{alignItems:"center",className:R.content(s),flexDirection:"row"},m__default.default.createElement(f36Core.Flex,{flexDirection:"column",flexGrow:1,gap:"spacingS"},m__default.default.createElement(vr,{title:E,titleTag:g}),m__default.default.createElement(Rr,{size:s,description:d}),e),i&&s!=="small"&&m__default.default.createElement("figure",{className:R.thumbnail(s)},i)))}Wr.displayName="EntryCard";var Xr=m.forwardRef(Wr);var Gr=()=>({actions:css.css({display:"flex",padding:0,marginLeft:o__default.default.spacingXs,minHeight:"auto"}),root:({status:r})=>{let e=f36Core.getEntityStatusStyles({status:r});return css.css({borderBottomLeftRadius:0,borderTopLeftRadius:0,display:"inline-flex",width:"auto",verticalAlign:"middle",paddingBottom:0,paddingTop:0,paddingLeft:o__default.default.spacingS,paddingRight:o__default.default.spacing2Xs,'[data-card-part="wrapper"]':{display:"inline-flex",flexDirection:"row-reverse"},"&::before":{backgroundColor:e.color,bottom:0,content:'""',display:"block",left:0,position:"absolute",top:0,width:o__default.default.spacing2Xs}})},skeleton:css.css({display:"inline-flex",border:`1px solid ${o__default.default.gray300}`,borderTopRightRadius:o__default.default.borderRadiusMedium,borderBottomRightRadius:o__default.default.borderRadiusMedium,padding:o__default.default.spacingXs})});var $r=y=>{var E=y,{actions:r,className:e,children:t,status:n,title:c,isLoading:f,testId:i="cf-ui-inline-entry-card"}=E,d=x(E,["actions","className","children","status","title","isLoading","testId"]);let g=Gr(),s=m__default.default.createElement(k,{buttonProps:{className:g.actions}},r);return f?m__default.default.createElement(f36Skeleton.Skeleton.Container,{className:g.skeleton,svgHeight:"1.25rem",svgWidth:"6rem"},m__default.default.createElement(f36Skeleton.Skeleton.BodyText,{numberOfLines:1})):m__default.default.createElement(f36Tooltip.Tooltip,{placement:"bottom",content:c},m__default.default.createElement(M,p(a({},d),{className:css.cx(g.root({status:n}),e),header:s,testId:i}),t||m__default.default.createElement(f36Typography.Text,null,c)))};exports.AssetCard=Dr;exports.Card=wr;exports.EntryCard=Xr;exports.InlineEntryCard=$r;//# sourceMappingURL=index.js.map
32
3
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/AssetCard/AssetCard.tsx","../src/BaseCard/BaseCard.tsx","../src/BaseCard/BaseCard.styles.ts","../src/BaseCard/DefaultCardHeader.tsx","../src/BaseCard/CardActions.tsx","../src/BaseCard/CardActions.styles.ts","../src/AssetCard/AssetCard.styles.ts","../src/Card/Card.tsx","../src/Card/Card.styles.ts","../src/EntryCard/EntryCard.tsx","../src/EntryCard/EntryCard.styles.ts","../src/InlineEntryCard/InlineEntryCard.tsx","../src/InlineEntryCard/InlineEntryCard.styles.ts"],"names":["React","cx","Flex","EntityStatusBadge","Asset","Skeleton","forwardRef","useCallback","useState","Box","DragHandle","css","tokens","getBaseCardStyles","hasHeader","isHovered","isSelected","styles","Text","IconButton","DotsThreeIcon","Menu","getCardActionsStyles","CardActions","buttonProps","children","__spreadProps","__spreadValues","getHeaderStyles","stopEvents","e","DefaultCardHeader","props","icon","type","actions","actionsButtonProps","badge","customActionButton","renderActionButton","BASE_CARD_DEFAULT_TAG","_BaseCard","_a","forwardedRef","_b","ariaLabel","className","contentBodyProps","header","href","isDragging","isHoveredProp","onBlur","onClick","onFocus","onKeyDown","onMouseEnter","onMouseLeave","target","rel","testId","title","withDragHandle","dragHandleRender","isLoading","otherProps","__objRest","setIsHovered","isInteractive","defaultHeader","handleFocus","event","handleBlur","handleMouseEnter","handleMouseLeave","handleClick","handleKeyDown","drag","BaseCard","getAssetCardStyles","size","AssetCard","src","status","customBadge","Heading","getCardPaddingValue","padding","getCardStyles","_Card","Card","truncate","Subheading","Paragraph","getEntryCardStyles","ENTRY_CARD_DEFAULT_TAG","EntryCardTitle","titleTag","truncatedTitle","EntryCardDescription","description","truncatedDescription","_EntryCard","thumbnailElement","contentType","entryStatusBadge","EntryCard","Tooltip","getEntityStatusStyles","getInlineEntryCardStyles","statusColors","InlineEntryCard"],"mappings":"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","sourcesContent":["import React from 'react';\nimport { cx } from 'emotion';\nimport { Flex } from '@contentful/f36-core';\nimport { EntityStatusBadge } from '@contentful/f36-badge';\nimport { Asset, type AssetStatus, type AssetType } from '@contentful/f36-asset';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { BaseCard } from '../BaseCard/BaseCard';\nimport type { BaseCardInternalProps } from '../BaseCard/BaseCard.types';\nimport { getAssetCardStyles } from './AssetCard.styles';\nimport { DefaultCardHeader } from '../BaseCard/DefaultCardHeader';\n\nexport interface AssetCardInternalProps\n extends Omit<BaseCardInternalProps, 'header' | 'padding' | 'ref'> {\n size?: 'small' | 'default';\n src?: string;\n status?: AssetStatus;\n /**\n * Type of the entity represented by the card. Shown in the header of the card\n */\n type?: AssetType;\n}\n\nexport type AssetCardProps = AssetCardInternalProps;\n\nexport const AssetCard = ({\n actions,\n className,\n icon = null,\n isSelected,\n size = 'default',\n src,\n status,\n title,\n type,\n withDragHandle = false,\n isLoading,\n testId = 'cf-ui-asset-card',\n badge: customBadge,\n ...otherProps\n}: AssetCardInternalProps) => {\n const styles = getAssetCardStyles();\n const badge = customBadge ? (\n customBadge\n ) : status ? (\n <EntityStatusBadge entityStatus={status} />\n ) : null;\n const header =\n icon || badge || actions ? (\n <DefaultCardHeader icon={icon} badge={badge} actions={actions} />\n ) : null;\n\n if (isLoading) {\n return (\n <Skeleton.Container\n className={styles.skeleton}\n svgWidth={size === 'default' ? '18rem' : '11rem'}\n svgHeight={size === 'default' ? '18.75rem' : '12rem'}\n >\n <Skeleton.Image width=\"100%\" height=\"18.75rem\" />\n </Skeleton.Container>\n );\n }\n\n return (\n <BaseCard\n {...otherProps}\n badge={badge}\n className={cx(styles.root({ size }), className)}\n header={header}\n isSelected={isSelected}\n title={title}\n withDragHandle={withDragHandle}\n testId={testId}\n >\n <Flex alignItems=\"center\" fullHeight justifyContent=\"center\">\n <Asset\n className={styles.asset}\n src={src}\n status={status}\n title={title}\n type={type}\n />\n </Flex>\n </BaseCard>\n );\n};\n","import { cx } from 'emotion';\nimport React, {\n forwardRef,\n useCallback,\n useState,\n type FocusEventHandler,\n type KeyboardEventHandler,\n type MouseEvent,\n type MouseEventHandler,\n} from 'react';\nimport {\n Box,\n type PolymorphicComponent,\n type PolymorphicProps,\n} from '@contentful/f36-core';\nimport { DragHandle } from '@contentful/f36-drag-handle';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { getBaseCardStyles } from './BaseCard.styles';\n\nimport { DefaultCardHeader, stopEvents } from './DefaultCardHeader';\nimport type { BaseCardInternalProps } from './BaseCard.types';\n\nexport const BASE_CARD_DEFAULT_TAG = 'article';\n\nexport type BaseCardProps<\n E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG,\n> = PolymorphicProps<BaseCardInternalProps, E>;\n\nfunction _BaseCard<E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG>(\n {\n actions,\n actionsButtonProps,\n ariaLabel,\n badge,\n children,\n className,\n contentBodyProps,\n customActionButton,\n header,\n href,\n icon,\n isDragging = false,\n isHovered: isHoveredProp,\n isSelected = false,\n onBlur,\n onClick,\n onFocus,\n onKeyDown,\n onMouseEnter,\n onMouseLeave,\n target,\n rel,\n testId = 'cf-ui-base-card',\n title,\n type,\n withDragHandle,\n dragHandleRender,\n isLoading,\n ...otherProps\n }: BaseCardProps<E>,\n forwardedRef: React.Ref<HTMLElement>,\n) {\n const styles = getBaseCardStyles();\n const [isHovered, setIsHovered] = useState(isHoveredProp ?? false);\n const isInteractive = Boolean(onClick || href || withDragHandle);\n const hasHeader = Boolean(header);\n const defaultHeader =\n type || icon || badge || actions || customActionButton ? (\n <DefaultCardHeader\n type={type}\n icon={icon}\n badge={badge}\n actions={actions}\n customActionButton={customActionButton}\n actionsButtonProps={actionsButtonProps}\n />\n ) : null;\n\n const handleFocus = useCallback<FocusEventHandler<HTMLElement>>(\n (event) => {\n if (onFocus) {\n onFocus(event);\n }\n },\n [onFocus],\n );\n\n const handleBlur = useCallback<FocusEventHandler<HTMLElement>>(\n (event) => {\n if (onBlur) {\n onBlur(event);\n }\n },\n [onBlur],\n );\n\n const handleMouseEnter = useCallback<MouseEventHandler<HTMLElement>>(\n (event) => {\n setIsHovered(true);\n\n if (onMouseEnter) {\n onMouseEnter(event);\n }\n },\n [onMouseEnter],\n );\n\n const handleMouseLeave = useCallback<MouseEventHandler<HTMLElement>>(\n (event) => {\n setIsHovered(false);\n\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n },\n [onMouseLeave],\n );\n\n const handleClick = onClick\n ? (event: MouseEvent<HTMLElement>) => {\n onClick(event);\n }\n : undefined;\n\n const handleKeyDown = useCallback<KeyboardEventHandler<HTMLElement>>(\n (event) => {\n if (onKeyDown) {\n onKeyDown(event);\n }\n },\n [onKeyDown],\n );\n\n if (isLoading) {\n return (\n <Skeleton.Container className={styles.skeleton} svgHeight=\"5.6rem\">\n <Skeleton.DisplayText numberOfLines={1} />\n <Skeleton.BodyText numberOfLines={1} offsetTop={35} />\n </Skeleton.Container>\n );\n }\n\n const drag = (\n <DragHandle\n className={styles.dragHandle}\n isActive={isDragging}\n label=\"Reorder entry\"\n onClick={stopEvents}\n />\n );\n\n return (\n <Box\n aria-label={title || ariaLabel}\n aria-pressed={\n otherProps.as === 'button' ? (isSelected ? 'true' : 'false') : undefined\n }\n as={BASE_CARD_DEFAULT_TAG}\n className={cx(\n styles.root({\n hasHeader,\n isHovered,\n isSelected,\n }),\n className,\n )}\n href={href}\n onBlur={handleBlur}\n onClick={handleClick}\n onFocus={handleFocus}\n onMouseEnter={\n typeof isHoveredProp === 'undefined' && isInteractive\n ? handleMouseEnter\n : undefined\n }\n onMouseLeave={\n typeof isHoveredProp === 'undefined' && isInteractive\n ? handleMouseLeave\n : undefined\n }\n onKeyDown={handleKeyDown}\n rel={href && (rel || 'noreferrer')}\n role={onClick && !href ? 'button' : undefined}\n tabIndex={onClick ? 0 : undefined}\n target={target}\n {...otherProps}\n ref={forwardedRef}\n testId={testId}\n title={title}\n >\n {withDragHandle\n ? dragHandleRender\n ? dragHandleRender({ drag, isDragging })\n : drag\n : null}\n <div className={styles.wrapper} data-card-part=\"wrapper\">\n {header ?? defaultHeader}\n <div className={styles.contentBody} data-card-part=\"content\">\n {children}\n </div>\n </div>\n </Box>\n );\n}\n\n_BaseCard.displayName = 'BaseCard';\n\nexport const BaseCard: PolymorphicComponent<\n BaseCardInternalProps,\n typeof BASE_CARD_DEFAULT_TAG\n> = forwardRef(_BaseCard);\n","import { css } from 'emotion';\nimport type { ObjectInterpolation } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getBaseCardStyles = () => {\n return {\n contentBody: css({\n gridColumn: 'content',\n gridRow: 'content',\n whiteSpace: 'initial',\n }),\n wrapper: css({\n flex: '1 1 0',\n display: 'grid',\n gridTemplateRows: '[header] auto [content] minmax(0, 1fr)',\n gridTemplateColumns: 'auto [content] minmax(0, 1fr)',\n }),\n dragHandle: css({\n borderBottomLeftRadius: tokens.borderRadiusMedium,\n borderTopLeftRadius: tokens.borderRadiusMedium,\n cursor: 'grab',\n }),\n root: ({ hasHeader, isHovered, isSelected }) => {\n const styles: ObjectInterpolation<undefined> = {\n backgroundColor: tokens.colorWhite,\n borderColor: tokens.gray300,\n borderRadius: tokens.borderRadiusMedium,\n borderStyle: 'solid',\n borderWidth: 1,\n color: tokens.gray900,\n display: 'flex',\n textAlign: 'left',\n width: '100%',\n fontSize: tokens.fontSizeM,\n fontWeight: tokens.fontWeightNormal,\n position: 'relative',\n textDecoration: 'none',\n margin: 0, // remove the default button margin in Safari.\n transition: `border-color ${tokens.transitionDurationDefault} ${tokens.transitionEasingDefault},\n box-shadow ${tokens.transitionDurationShort} ${tokens.transitionEasingDefault}`,\n\n '&:focus': css({\n borderColor: isSelected ? tokens.blue100 : tokens.blue500,\n boxShadow: tokens.glowPrimary,\n outline: 'none',\n }),\n '&:focus:not(:focus-visible)': css({\n borderColor: isSelected ? tokens.blue500 : tokens.gray300,\n boxShadow: 'unset',\n }),\n '&:focus-visible': css({\n borderColor: tokens.blue500,\n boxShadow: tokens.glowPrimary,\n }),\n };\n\n if (!hasHeader) {\n styles.paddingTop = tokens.spacingM;\n }\n\n if (isHovered) {\n styles.borderColor = tokens.blue500;\n styles.cursor = 'pointer';\n }\n\n if (isSelected) {\n styles.backgroundColor = tokens.blue100;\n styles.borderColor = tokens.blue500;\n }\n\n return css(styles);\n },\n skeleton: css({\n border: `1px solid ${tokens.gray300}`,\n borderRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingM,\n }),\n };\n};\n","import React from 'react';\nimport { Flex } from '@contentful/f36-core';\nimport { Text } from '@contentful/f36-typography';\nimport { CardActions } from './CardActions';\nimport tokens from '@contentful/f36-tokens';\n\nimport { cx, css } from 'emotion';\n\nimport { BaseCardInternalProps } from './BaseCard.types';\n\nconst getHeaderStyles = () => {\n return {\n header: css({\n columnGap: tokens.spacingXs,\n rowGap: tokens.spacing2Xs,\n alignItems: 'center',\n borderBottomColor: tokens.gray200,\n borderBottomStyle: 'solid',\n borderBottomWidth: 1,\n borderTopLeftRadius: tokens.borderRadiusMedium,\n borderTopRightRadius: tokens.borderRadiusMedium,\n boxSizing: 'border-box',\n color: tokens.gray600,\n fontSize: tokens.fontSizeM,\n fontWeight: tokens.fontWeightNormal,\n gridColumn: 'content',\n gridRow: 'header',\n lineHeight: tokens.lineHeightM,\n paddingBottom: tokens.spacingXs,\n paddingLeft: tokens.spacingM,\n paddingRight: tokens.spacingXs,\n paddingTop: tokens.spacingXs,\n minHeight: '37px',\n }),\n headerWithActions: css({\n paddingBottom: tokens.spacing2Xs,\n paddingRight: tokens.spacingXs,\n paddingTop: tokens.spacing2Xs,\n }),\n };\n};\n\nexport const stopEvents = (e: React.MouseEvent<HTMLElement>) => {\n e.preventDefault();\n e.stopPropagation();\n};\n\nexport const DefaultCardHeader = (\n props: Pick<\n BaseCardInternalProps,\n | 'type'\n | 'icon'\n | 'badge'\n | 'actions'\n | 'actionsButtonProps'\n | 'customActionButton'\n >,\n) => {\n const { icon, type, actions, actionsButtonProps, badge, customActionButton } =\n props;\n const styles = getHeaderStyles();\n\n const renderActionButton = () => {\n if (customActionButton) {\n return (\n <Flex\n // don't propagate click event, so onClick handler on the card is not triggered\n onClick={stopEvents}\n alignItems=\"center\"\n >\n {customActionButton}\n </Flex>\n );\n }\n if (actions && actions.length > 0) {\n return (\n <Flex\n // don't propagate click event, so onClick handler on the card is not triggered\n onClick={stopEvents}\n alignItems=\"center\"\n >\n <CardActions buttonProps={actionsButtonProps}>{actions}</CardActions>\n </Flex>\n );\n }\n\n return null;\n };\n\n return (\n <Flex\n flexWrap=\"wrap\"\n className={cx(\n styles.header,\n (actions || customActionButton) && styles.headerWithActions,\n )}\n >\n <Flex flexGrow={1}>\n {type && (\n <Text fontColor=\"gray600\" isWordBreak>\n {type}\n </Text>\n )}\n </Flex>\n {icon && <Flex alignItems=\"center\">{icon}</Flex>}\n {badge && <Flex alignItems=\"center\">{badge}</Flex>}\n {renderActionButton()}\n </Flex>\n );\n};\n\nDefaultCardHeader.displayName = 'DefaultCardHeader';\n","import React from 'react';\nimport { IconButton, type ButtonProps } from '@contentful/f36-button';\nimport { DotsThreeIcon } from '@contentful/f36-icons';\nimport { Menu } from '@contentful/f36-menu';\nimport { cx } from 'emotion';\n\nimport { getCardActionsStyles } from './CardActions.styles';\n\nexport type CardActionsProps = {\n buttonProps?: Partial<Omit<ButtonProps<'button'>, 'ref'>>;\n /**\n * Child elements to be rendered in the component\n */\n children: React.ReactNodeArray;\n};\n\nexport const CardActions = ({\n buttonProps,\n children,\n}: CardActionsProps): React.ReactElement => {\n const styles = getCardActionsStyles();\n\n return (\n <Menu>\n <Menu.Trigger>\n <IconButton\n aria-label=\"Actions\"\n icon={<DotsThreeIcon />}\n {...buttonProps}\n className={cx(styles.root, buttonProps?.className)}\n size=\"small\"\n variant=\"transparent\"\n testId=\"cf-ui-card-actions\"\n />\n </Menu.Trigger>\n <Menu.List>{children}</Menu.List>\n </Menu>\n );\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getCardActionsStyles = () => {\n return {\n root: css({\n minHeight: 'auto',\n padding: tokens.spacing2Xs,\n }),\n };\n};\n","import tokens from '@contentful/f36-tokens';\nimport { css } from 'emotion';\n\nexport const getAssetCardStyles = () => {\n return {\n root: ({ size }) =>\n css({\n display: 'inline-flex',\n width: 'auto',\n borderRadius: tokens.borderRadiusMedium,\n minWidth: `calc(1rem * (120 / ${tokens.fontBaseDefault}))`,\n height:\n size === 'small'\n ? `calc(1rem * (188 / ${tokens.fontBaseDefault}))`\n : `calc(1rem * (300 / ${tokens.fontBaseDefault}))`,\n padding: 0,\n textAlign: 'center',\n }),\n asset: css({\n height: '100%',\n }),\n skeleton: css({\n border: `1px solid ${tokens.gray300}`,\n borderRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingM,\n }),\n };\n};\n","import React, { forwardRef } from 'react';\nimport { cx } from 'emotion';\nimport {\n Flex,\n type PolymorphicComponent,\n type PolymorphicProps,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { Heading } from '@contentful/f36-typography';\n\nimport { BaseCard, BASE_CARD_DEFAULT_TAG } from '../BaseCard/BaseCard';\nimport type { BaseCardInternalProps } from '../BaseCard/BaseCard.types';\nimport { CardActions } from '../BaseCard/CardActions';\nimport { getCardStyles } from './Card.styles';\n\ntype BaseProps = Omit<\n BaseCardInternalProps,\n 'header' | 'withDragHandle' | 'ref' | 'src' | 'type'\n> & {\n /**\n * Padding size to apply to the component\n *\n * @default default\n */\n padding?: 'default' | 'large' | 'none';\n};\n\ntype BasePropsWithDragHandle = Omit<BaseProps, 'padding'> &\n Pick<BaseCardInternalProps, 'withDragHandle'> & { padding: 'none' };\n\nexport type CardInternalProps = BaseProps | BasePropsWithDragHandle;\n\nexport type CardProps<\n E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG,\n> = PolymorphicProps<CardInternalProps, E>;\n\nfunction _Card<E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG>(\n {\n actions,\n badge,\n icon,\n padding = 'default',\n title,\n className,\n testId = 'cf-ui-card',\n ...otherProps\n }: CardProps<E>,\n forwardedRef: React.Ref<HTMLElement>,\n) {\n const styles = getCardStyles({ padding });\n const hasHeader = Boolean(title || icon || badge || actions);\n\n return (\n <BaseCard\n className={cx(styles.root, className)}\n {...otherProps}\n testId={testId}\n header={\n hasHeader && (\n <Flex alignItems=\"center\" className={cx(styles.header)}>\n {title && (\n <Flex as=\"header\" flexGrow={1}>\n <Heading marginBottom=\"none\">{title}</Heading>\n </Flex>\n )}\n {icon && (\n <Flex alignItems=\"center\" marginLeft=\"spacingXs\">\n {icon}\n </Flex>\n )}\n {badge && (\n <Flex alignItems=\"center\" marginLeft=\"spacingXs\">\n {badge}\n </Flex>\n )}\n {actions && <CardActions>{actions}</CardActions>}\n </Flex>\n )\n }\n ref={forwardedRef}\n />\n );\n}\n\n_Card.displayName = 'Card';\n\nexport const Card: PolymorphicComponent<\n ExpandProps<CardInternalProps>,\n typeof BASE_CARD_DEFAULT_TAG\n> = forwardRef(_Card);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { CardProps } from '..';\n\nconst getCardPaddingValue = (padding: CardProps['padding']) => {\n switch (padding) {\n case 'large':\n return tokens.spacingL;\n case 'none':\n return 0;\n default:\n return tokens.spacingM;\n }\n};\n\nexport const getCardStyles = ({ padding }) => ({\n header: css({\n gridColumn: 'content',\n gridRow: 'header',\n marginBottom: tokens.spacingM,\n }),\n root: css({\n padding: getCardPaddingValue(padding),\n }),\n});\n","import React, { forwardRef } from 'react';\nimport truncate from 'truncate';\nimport { cx } from 'emotion';\nimport {\n Flex,\n type ExpandProps,\n type PolymorphicComponent,\n type PolymorphicProps,\n} from '@contentful/f36-core';\nimport { EntityStatusBadge } from '@contentful/f36-badge';\nimport {\n Subheading,\n Paragraph,\n type HeadingElement,\n} from '@contentful/f36-typography';\n\nimport { BaseCard } from '../BaseCard/BaseCard';\nimport { getEntryCardStyles } from './EntryCard.styles';\nimport { EntryCardInternalProps, EntryCardSize } from './EntryCard.types';\n\nconst ENTRY_CARD_DEFAULT_TAG = 'article';\n\nexport type EntryCardProps<\n E extends React.ElementType = typeof ENTRY_CARD_DEFAULT_TAG,\n> = PolymorphicProps<EntryCardInternalProps, E>;\n\nfunction EntryCardTitle({\n title,\n titleTag,\n}: {\n title?: string;\n titleTag: HeadingElement;\n}) {\n if (!title) {\n return null;\n }\n\n const truncatedTitle = truncate(title, 255, {});\n\n return (\n <Subheading\n title={title.length > 255 ? title : ''}\n testId=\"title\"\n as={titleTag}\n marginBottom=\"none\"\n isWordBreak\n >\n {truncatedTitle}\n </Subheading>\n );\n}\n\nEntryCardTitle.displayName = 'EntryCardTitle';\n\nfunction EntryCardDescription({\n description,\n size,\n}: {\n size: EntryCardSize;\n description?: string;\n}) {\n if (!description || size === 'small') {\n return null;\n }\n\n const truncatedDescription = truncate(description, 95, {});\n\n return (\n <Paragraph marginBottom=\"none\" isWordBreak>\n {truncatedDescription}\n </Paragraph>\n );\n}\n\nEntryCardDescription.displayName = 'EntryCardDescription';\n\nfunction _EntryCard<\n E extends React.ElementType = typeof ENTRY_CARD_DEFAULT_TAG,\n>(\n {\n actions,\n children,\n className,\n customActionButton,\n src,\n status,\n thumbnailElement,\n description,\n withDragHandle = false,\n title,\n titleTag = 'h2',\n size,\n testId = 'cf-ui-entry-card',\n contentType,\n badge,\n ...otherProps\n }: EntryCardProps<E>,\n forwardedRef: React.Ref<any>,\n) {\n const styles = getEntryCardStyles();\n const entryStatusBadge = status ? (\n <EntityStatusBadge entityStatus={status} />\n ) : null;\n\n return (\n <BaseCard\n as={ENTRY_CARD_DEFAULT_TAG}\n {...otherProps}\n actions={actions}\n badge={badge ? badge : entryStatusBadge}\n className={cx(styles.root, className)}\n customActionButton={customActionButton}\n withDragHandle={withDragHandle}\n ref={forwardedRef}\n type={contentType}\n testId={testId}\n >\n <Flex\n alignItems=\"center\"\n className={styles.content(size)}\n flexDirection=\"row\"\n >\n <Flex flexDirection=\"column\" flexGrow={1} gap=\"spacingS\">\n <EntryCardTitle title={title} titleTag={titleTag} />\n <EntryCardDescription size={size} description={description} />\n {children}\n </Flex>\n\n {thumbnailElement && size !== 'small' && (\n <figure className={styles.thumbnail(size)}>{thumbnailElement}</figure>\n )}\n </Flex>\n </BaseCard>\n );\n}\n\n_EntryCard.displayName = 'EntryCard';\n\nexport const EntryCard: PolymorphicComponent<\n ExpandProps<EntryCardInternalProps>,\n typeof ENTRY_CARD_DEFAULT_TAG\n> = forwardRef(_EntryCard);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nimport type { EntryCardSize } from './EntryCard.types';\n\nexport const getEntryCardStyles = () => {\n return {\n actionsButton: css({\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n borderTopLeftRadius: 0,\n borderTopRightRadius: tokens.borderRadiusMedium,\n }),\n content: (size?: EntryCardSize) =>\n css({\n gridColumn: 'content',\n marginTop: size === 'small' ? tokens.spacingXs : tokens.spacingS,\n marginBottom: size === 'small' ? `calc(-1 * ${tokens.spacingXs})` : 0,\n }),\n root: css({\n padding: 0,\n '[data-card-part=\"content\"]': {\n paddingBottom: tokens.spacingM,\n paddingLeft: tokens.spacingM,\n paddingRight: tokens.spacingM,\n },\n }),\n header: css({\n borderBottomWidth: 1,\n borderBottomColor: tokens.gray200,\n borderBottomStyle: 'solid',\n minHeight: 'auto',\n paddingBottom: tokens.spacingXs,\n paddingLeft: tokens.spacingM,\n paddingRight: tokens.spacingXs,\n }),\n thumbnail: (size?: EntryCardSize) =>\n css({\n margin: `0 0 0 ${tokens.spacingS}`,\n padding: 0,\n overflow: 'hidden',\n position: 'relative',\n img: {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n position: 'absolute',\n zIndex: 1,\n },\n ...(size === 'small'\n ? {\n height: '40px',\n width: '40px',\n }\n : {\n height: '70px',\n width: '70px',\n }),\n }),\n };\n};\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { Tooltip } from '@contentful/f36-tooltip';\nimport { Text } from '@contentful/f36-typography';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { BaseCard } from '../BaseCard/BaseCard';\nimport type { BaseCardDragHandleProps } from '../BaseCard/BaseCard.types';\nimport type { EntryCardInternalProps } from '../EntryCard/EntryCard.types';\nimport { getInlineEntryCardStyles } from './InlineEntryCard.styles';\nimport { CardActions } from '../BaseCard/CardActions';\n\nexport type InlineEntryCardInternalProps = Omit<\n EntryCardInternalProps,\n 'icon' | 'ref' | 'src' | 'size' | 'type' | keyof BaseCardDragHandleProps\n>;\n\nexport type InlineEntryCardProps = InlineEntryCardInternalProps;\n\nexport const InlineEntryCard = ({\n actions,\n className,\n children,\n status,\n title,\n isLoading,\n testId = 'cf-ui-inline-entry-card',\n ...otherProps\n}: InlineEntryCardInternalProps) => {\n const styles = getInlineEntryCardStyles();\n const header = (\n <CardActions buttonProps={{ className: styles.actions }}>\n {actions}\n </CardActions>\n );\n\n if (isLoading) {\n return (\n <Skeleton.Container\n className={styles.skeleton}\n svgHeight=\"1.25rem\"\n svgWidth=\"6rem\"\n >\n <Skeleton.BodyText numberOfLines={1} />\n </Skeleton.Container>\n );\n }\n\n return (\n <Tooltip placement=\"bottom\" content={title}>\n <BaseCard\n {...otherProps}\n className={cx(styles.root({ status }), className)}\n header={header}\n testId={testId}\n >\n {children || <Text>{title}</Text>}\n </BaseCard>\n </Tooltip>\n );\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\nimport { getEntityStatusStyles } from '@contentful/f36-core';\n\nimport type { InlineEntryCardProps } from './InlineEntryCard';\n\nexport const getInlineEntryCardStyles = () => {\n return {\n actions: css({\n display: 'flex',\n padding: 0,\n marginLeft: tokens.spacingXs,\n minHeight: 'auto',\n }),\n root: ({ status }: { status: InlineEntryCardProps['status'] }) => {\n const statusColors = getEntityStatusStyles({ status });\n\n return css({\n borderBottomLeftRadius: 0,\n borderTopLeftRadius: 0,\n display: 'inline-flex',\n width: 'auto',\n verticalAlign: 'middle',\n paddingBottom: 0,\n paddingTop: 0,\n paddingLeft: tokens.spacingS,\n paddingRight: tokens.spacing2Xs,\n '[data-card-part=\"wrapper\"]': {\n display: 'inline-flex',\n flexDirection: 'row-reverse',\n },\n '&::before': {\n backgroundColor: statusColors.color,\n bottom: 0,\n content: '\"\"',\n display: 'block',\n left: 0,\n position: 'absolute',\n top: 0,\n width: tokens.spacing2Xs,\n },\n });\n },\n skeleton: css({\n display: 'inline-flex',\n border: `1px solid ${tokens.gray300}`,\n borderTopRightRadius: tokens.borderRadiusMedium,\n borderBottomRightRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingXs,\n }),\n };\n};\n"]}
1
+ {"version":3,"sources":["../src/AssetCard/AssetCard.tsx","../src/BaseCard/BaseCard.styles.ts","../src/BaseCard/CardActions.styles.ts","../src/BaseCard/CardActions.tsx","../src/BaseCard/DefaultCardHeader.styles.ts","../src/BaseCard/DefaultCardHeader.tsx","../src/BaseCard/BaseCard.tsx","../src/AssetCard/AssetCard.styles.ts","../src/Card/Card.styles.ts","../src/Card/Card.tsx","../src/EntryCard/EntryCard.styles.ts","../src/EntryCard/EntryCard.tsx","../src/InlineEntryCard/InlineEntryCard.styles.ts","../src/InlineEntryCard/InlineEntryCard.tsx"],"names":["getBaseCardStyles","css","tokens","getRootStyles","hasHeader","isHovered","isSelected","__spreadProps","__spreadValues","getCardActionsStyles","CardActions","buttonProps","children","styles","React","Menu","IconButton","DotsThreeIcon","cx","getHeaderStyles","stopEvents","e","DefaultCardHeader","props","icon","type","actions","actionsButtonProps","badge","customActionButton","renderActionButton","Flex","Text","BASE_CARD_DEFAULT_TAG","BaseCardBase","_a","forwardedRef","_b","ariaLabel","className","header","href","isDragging","isHoveredProp","onBlur","onClick","onFocus","onKeyDown","onMouseEnter","onMouseLeave","target","rel","testId","title","withDragHandle","dragHandleRender","isLoading","as","otherProps","__objRest","setIsHovered","useState","isInteractive","defaultHeader","handleFocus","useCallback","event","handleBlur","handleMouseEnter","handleMouseLeave","handleClick","handleKeyDown","Skeleton","drag","DragHandle","CardInner","Element","rootStyles","baseProps","anchorProps","Box","nonAnchorElement","BaseCard","getAssetCardStyles","size","AssetCard","src","status","customBadge","EntityStatusBadge","Asset","getCardPaddingValue","padding","getCardStyles","CardBase","Heading","Card","forwardRef","getEntryCardStyles","ENTRY_CARD_DEFAULT_TAG","EntryCardTitle","titleTag","truncatedTitle","truncate","Subheading","EntryCardDescription","description","truncatedDescription","Paragraph","EntryCardBase","thumbnailElement","contentType","entryStatusBadge","EntryCard","getInlineEntryCardStyles","statusColors","getEntityStatusStyles","InlineEntryCard","Tooltip"],"mappings":"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","file":"index.js","sourcesContent":["import React from 'react';\nimport { cx } from '@emotion/css';\nimport { Flex } from '@contentful/f36-core';\nimport { EntityStatusBadge } from '@contentful/f36-badge';\nimport { Asset, type AssetStatus, type AssetType } from '@contentful/f36-asset';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { BaseCard } from '../BaseCard/BaseCard';\nimport type { BaseCardInternalProps } from '../BaseCard/BaseCard.types';\nimport { getAssetCardStyles } from './AssetCard.styles';\nimport { DefaultCardHeader } from '../BaseCard/DefaultCardHeader';\n\nexport interface AssetCardInternalProps\n extends Omit<BaseCardInternalProps, 'header' | 'padding' | 'ref'> {\n size?: 'small' | 'default';\n src?: string;\n status?: AssetStatus;\n /**\n * Type of the entity represented by the card. Shown in the header of the card\n */\n type?: AssetType;\n}\n\nexport type AssetCardProps = AssetCardInternalProps;\n\nexport const AssetCard = ({\n actions,\n className,\n icon = null,\n isSelected,\n size = 'default',\n src,\n status,\n title,\n type,\n withDragHandle = false,\n isLoading,\n testId = 'cf-ui-asset-card',\n badge: customBadge,\n ...otherProps\n}: AssetCardInternalProps) => {\n const styles = getAssetCardStyles();\n const badge = customBadge ? (\n customBadge\n ) : status ? (\n <EntityStatusBadge entityStatus={status} />\n ) : null;\n const header =\n icon || badge || actions ? (\n <DefaultCardHeader icon={icon} badge={badge} actions={actions} />\n ) : null;\n\n if (isLoading) {\n return (\n <Skeleton.Container\n className={styles.skeleton}\n svgWidth={size === 'default' ? '18rem' : '11rem'}\n svgHeight={size === 'default' ? '18.75rem' : '12rem'}\n >\n <Skeleton.Image width=\"100%\" height=\"18.75rem\" />\n </Skeleton.Container>\n );\n }\n\n return (\n <BaseCard\n {...otherProps}\n badge={badge}\n className={cx(styles.root({ size }), className)}\n header={header}\n isSelected={isSelected}\n title={title}\n withDragHandle={withDragHandle}\n testId={testId}\n >\n <Flex alignItems=\"center\" fullHeight justifyContent=\"center\">\n <Asset\n className={styles.asset}\n src={src}\n status={status}\n title={title}\n type={type}\n />\n </Flex>\n </BaseCard>\n );\n};\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getBaseCardStyles = () => {\n return {\n contentBody: css({\n gridColumn: 'content',\n gridRow: 'content',\n whiteSpace: 'initial',\n }),\n wrapper: css({\n flex: '1 1 0',\n display: 'grid',\n gridTemplateRows: '[header] auto [content] minmax(0, 1fr)',\n gridTemplateColumns: 'auto [content] minmax(0, 1fr)',\n }),\n dragHandle: css({\n borderBottomLeftRadius: tokens.borderRadiusMedium,\n borderTopLeftRadius: tokens.borderRadiusMedium,\n cursor: 'grab',\n }),\n skeleton: css({\n border: `1px solid ${tokens.gray300}`,\n borderRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingM,\n }),\n };\n};\n\nexport const getRootStyles = (\n hasHeader: boolean,\n isHovered: boolean,\n isSelected: boolean,\n) => {\n return {\n root: css({\n backgroundColor: tokens.colorWhite,\n borderColor: tokens.gray300,\n borderRadius: tokens.borderRadiusMedium,\n borderStyle: 'solid',\n borderWidth: 1,\n color: tokens.gray900,\n display: 'flex',\n textAlign: 'left',\n width: '100%',\n fontSize: tokens.fontSizeM,\n fontWeight: tokens.fontWeightNormal,\n position: 'relative',\n textDecoration: 'none',\n margin: 0, // remove the default button margin in Safari.\n transition: `border-color ${tokens.transitionDurationDefault} ${tokens.transitionEasingDefault},\n box-shadow ${tokens.transitionDurationShort} ${tokens.transitionEasingDefault}`,\n paddingTop: hasHeader ? 0 : tokens.spacingM,\n ...(isHovered && {\n borderColor: tokens.blue500,\n cursor: 'pointer',\n }),\n ...(isSelected && {\n backgroundColor: tokens.blue100,\n borderColor: tokens.blue500,\n }),\n '&:focus': css({\n borderColor: isSelected ? tokens.blue100 : tokens.blue500,\n boxShadow: tokens.glowPrimary,\n outline: 'none',\n }),\n '&:focus:not(:focus-visible)': css({\n borderColor: isSelected ? tokens.blue500 : tokens.gray300,\n boxShadow: 'unset',\n }),\n '&:focus-visible': css({\n borderColor: tokens.blue500,\n boxShadow: tokens.glowPrimary,\n }),\n }),\n };\n};\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getCardActionsStyles = () => {\n return {\n root: css({\n minHeight: 'auto',\n padding: tokens.spacing2Xs,\n }),\n };\n};\n","import React from 'react';\nimport { IconButton, type ButtonProps } from '@contentful/f36-button';\nimport { DotsThreeIcon } from '@contentful/f36-icons';\nimport { Menu } from '@contentful/f36-menu';\nimport { cx } from '@emotion/css';\n\nimport { getCardActionsStyles } from './CardActions.styles';\n\nexport type CardActionsProps = {\n buttonProps?: Partial<Omit<ButtonProps<'button'>, 'ref'>>;\n /**\n * Child elements to be rendered in the component\n */\n children: React.ReactNode[];\n};\n\nexport const CardActions = ({\n buttonProps,\n children,\n}: CardActionsProps): React.ReactElement => {\n const styles = getCardActionsStyles();\n\n return (\n <Menu>\n <Menu.Trigger>\n <IconButton\n {...buttonProps}\n aria-label=\"Actions\"\n icon={<DotsThreeIcon />}\n className={cx(styles.root, buttonProps?.className)}\n size=\"small\"\n variant=\"transparent\"\n testId=\"cf-ui-card-actions\"\n />\n </Menu.Trigger>\n <Menu.List>{children}</Menu.List>\n </Menu>\n );\n};\n\nCardActions.displayName = 'CardActions';\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getHeaderStyles = () => {\n return {\n header: css({\n columnGap: tokens.spacingXs,\n rowGap: tokens.spacing2Xs,\n alignItems: 'center',\n borderBottomColor: tokens.gray200,\n borderBottomStyle: 'solid',\n borderBottomWidth: 1,\n borderTopLeftRadius: tokens.borderRadiusMedium,\n borderTopRightRadius: tokens.borderRadiusMedium,\n boxSizing: 'border-box',\n color: tokens.gray600,\n fontSize: tokens.fontSizeM,\n fontWeight: tokens.fontWeightNormal,\n gridColumn: 'content',\n gridRow: 'header',\n lineHeight: tokens.lineHeightM,\n paddingBottom: tokens.spacingXs,\n paddingLeft: tokens.spacingM,\n paddingRight: tokens.spacingXs,\n paddingTop: tokens.spacingXs,\n minHeight: '37px',\n }),\n headerWithActions: css({\n paddingBottom: tokens.spacing2Xs,\n paddingRight: tokens.spacingXs,\n paddingTop: tokens.spacing2Xs,\n }),\n };\n};\n","import React from 'react';\nimport { Flex } from '@contentful/f36-core';\nimport { Text } from '@contentful/f36-typography';\nimport { CardActions } from './CardActions';\nimport { cx } from '@emotion/css';\nimport { getHeaderStyles } from './DefaultCardHeader.styles';\nimport { BaseCardInternalProps } from './BaseCard.types';\n\nexport const stopEvents = (e: React.MouseEvent<HTMLElement>) => {\n e.preventDefault();\n e.stopPropagation();\n};\n\nexport const DefaultCardHeader = (\n props: Pick<\n BaseCardInternalProps,\n | 'type'\n | 'icon'\n | 'badge'\n | 'actions'\n | 'actionsButtonProps'\n | 'customActionButton'\n >,\n) => {\n const { icon, type, actions, actionsButtonProps, badge, customActionButton } =\n props;\n const styles = getHeaderStyles();\n\n const renderActionButton = () => {\n if (customActionButton) {\n return (\n <Flex\n // don't propagate click event, so onClick handler on the card is not triggered\n onClick={stopEvents}\n alignItems=\"center\"\n >\n {customActionButton}\n </Flex>\n );\n }\n if (actions && actions.length > 0) {\n return (\n <Flex\n // don't propagate click event, so onClick handler on the card is not triggered\n onClick={stopEvents}\n alignItems=\"center\"\n >\n <CardActions buttonProps={actionsButtonProps}>{actions}</CardActions>\n </Flex>\n );\n }\n\n return null;\n };\n\n return (\n <Flex\n flexWrap=\"wrap\"\n className={cx(\n styles.header,\n (actions || customActionButton) && styles.headerWithActions,\n )}\n >\n <Flex flexGrow={1}>\n {type && (\n <Text fontColor=\"gray600\" isWordBreak>\n {type}\n </Text>\n )}\n </Flex>\n {icon && <Flex alignItems=\"center\">{icon}</Flex>}\n {badge && <Flex alignItems=\"center\">{badge}</Flex>}\n {renderActionButton()}\n </Flex>\n );\n};\n\nDefaultCardHeader.displayName = 'DefaultCardHeader';\n","import { cx } from '@emotion/css';\nimport React, {\n useCallback,\n useState,\n type FocusEventHandler,\n type KeyboardEventHandler,\n type MouseEvent,\n type MouseEventHandler,\n} from 'react';\nimport {\n Box,\n type PolymorphicComponent,\n type PolymorphicProps,\n} from '@contentful/f36-core';\nimport { DragHandle } from '@contentful/f36-drag-handle';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { getBaseCardStyles, getRootStyles } from './BaseCard.styles';\n\nimport { DefaultCardHeader, stopEvents } from './DefaultCardHeader';\nimport type { BaseCardInternalProps, CardElement } from './BaseCard.types';\n\nexport const BASE_CARD_DEFAULT_TAG = 'article';\n\nexport type BaseCardProps<\n E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG,\n> = PolymorphicProps<BaseCardInternalProps, E>;\n\nfunction BaseCardBase<\n E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG,\n>(\n {\n actions,\n actionsButtonProps,\n ariaLabel,\n badge,\n children,\n className,\n customActionButton,\n header,\n href,\n icon,\n isDragging = false,\n isHovered: isHoveredProp,\n isSelected = false,\n onBlur,\n onClick,\n onFocus,\n onKeyDown,\n onMouseEnter,\n onMouseLeave,\n target,\n rel,\n testId = 'cf-ui-base-card',\n title,\n type,\n withDragHandle,\n dragHandleRender,\n isLoading,\n as,\n ...otherProps\n }: BaseCardProps<E>,\n forwardedRef: React.Ref<HTMLElement>,\n) {\n const styles = getBaseCardStyles();\n const [isHovered, setIsHovered] = useState(isHoveredProp ?? false);\n const isInteractive = Boolean(onClick || href || withDragHandle);\n const hasHeader = Boolean(header);\n const defaultHeader =\n type || icon || badge || actions || customActionButton ? (\n <DefaultCardHeader\n type={type}\n icon={icon}\n badge={badge}\n actions={actions}\n customActionButton={customActionButton}\n actionsButtonProps={actionsButtonProps}\n />\n ) : null;\n\n const handleFocus = useCallback<FocusEventHandler<HTMLElement>>(\n (event) => {\n if (onFocus) {\n onFocus(event);\n }\n },\n [onFocus],\n );\n\n const handleBlur = useCallback<FocusEventHandler<HTMLElement>>(\n (event) => {\n if (onBlur) {\n onBlur(event);\n }\n },\n [onBlur],\n );\n\n const handleMouseEnter = useCallback<MouseEventHandler<HTMLElement>>(\n (event) => {\n setIsHovered(true);\n\n if (onMouseEnter) {\n onMouseEnter(event);\n }\n },\n [onMouseEnter],\n );\n\n const handleMouseLeave = useCallback<MouseEventHandler<HTMLElement>>(\n (event) => {\n setIsHovered(false);\n\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n },\n [onMouseLeave],\n );\n\n const handleClick = onClick\n ? (event: MouseEvent<HTMLElement>) => {\n onClick(event);\n }\n : undefined;\n\n const handleKeyDown = useCallback<KeyboardEventHandler<HTMLElement>>(\n (event) => {\n if (onKeyDown) {\n onKeyDown(event);\n }\n },\n [onKeyDown],\n );\n\n if (isLoading) {\n return (\n <Skeleton.Container className={styles.skeleton} svgHeight=\"5.6rem\">\n <Skeleton.DisplayText numberOfLines={1} />\n <Skeleton.BodyText numberOfLines={1} offsetTop={35} />\n </Skeleton.Container>\n );\n }\n\n const drag = (\n <DragHandle\n className={styles.dragHandle}\n isActive={isDragging}\n label=\"Reorder entry\"\n onClick={stopEvents}\n />\n );\n\n const CardInner = () => (\n <>\n {withDragHandle\n ? dragHandleRender\n ? dragHandleRender({ drag, isDragging })\n : drag\n : null}\n <div className={styles.wrapper} data-card-part=\"wrapper\">\n {header ?? defaultHeader}\n <div className={styles.contentBody} data-card-part=\"content\">\n {children}\n </div>\n </div>\n </>\n );\n\n const Element = as || BASE_CARD_DEFAULT_TAG;\n\n /** Seperate the Props based on the Element Type */\n\n const rootStyles = getRootStyles(hasHeader, isHovered, isSelected);\n\n const baseProps = {\n testId,\n className: cx(rootStyles.root, className),\n 'aria-label': title || ariaLabel,\n title,\n };\n\n // anchor exclusive properties\n const anchorProps = {\n href,\n target,\n rel: rel ?? 'noreferrer',\n } as Pick<\n React.AnchorHTMLAttributes<HTMLAnchorElement>,\n 'href' | 'rel' | 'target'\n >;\n\n if (Element === 'a') {\n return (\n <Box\n as=\"a\"\n {...anchorProps}\n {...baseProps}\n ref={forwardedRef as React.Ref<HTMLAnchorElement>}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onMouseEnter={\n typeof isHoveredProp === 'undefined' ? handleMouseEnter : undefined\n }\n onMouseLeave={\n typeof isHoveredProp === 'undefined' ? handleMouseLeave : undefined\n }\n {...otherProps}\n >\n <CardInner />\n </Box>\n );\n }\n\n // Narrow the element type after early-return anchor case to exclude 'a'\n const nonAnchorElement = Element as Exclude<CardElement, 'a'>;\n\n if (isInteractive) {\n return (\n <Box\n as={nonAnchorElement}\n {...baseProps}\n aria-pressed={nonAnchorElement === 'button' ? !!isSelected : undefined}\n onBlur={handleBlur}\n onClick={handleClick}\n onFocus={handleFocus}\n onMouseEnter={\n typeof isHoveredProp === 'undefined' ? handleMouseEnter : undefined\n }\n onMouseLeave={\n typeof isHoveredProp === 'undefined' ? handleMouseLeave : undefined\n }\n onKeyDown={handleKeyDown}\n role={onClick ? 'button' : undefined}\n tabIndex={onClick ? 0 : undefined}\n ref={forwardedRef}\n {...otherProps}\n >\n <CardInner />\n </Box>\n );\n }\n return (\n <Box\n as={nonAnchorElement}\n {...baseProps}\n {...otherProps}\n ref={forwardedRef}\n >\n <CardInner />\n </Box>\n );\n}\n\nBaseCardBase.displayName = 'BaseCard';\n\nexport const BaseCard = React.forwardRef(BaseCardBase) as PolymorphicComponent<\n BaseCardInternalProps,\n typeof BASE_CARD_DEFAULT_TAG\n>;\n","import tokens from '@contentful/f36-tokens';\nimport { css } from '@emotion/css';\n\nexport const getAssetCardStyles = () => {\n return {\n root: ({ size }) =>\n css({\n display: 'inline-flex',\n width: 'auto',\n borderRadius: tokens.borderRadiusMedium,\n minWidth: `calc(1rem * (120 / ${tokens.fontBaseDefault}))`,\n height:\n size === 'small'\n ? `calc(1rem * (188 / ${tokens.fontBaseDefault}))`\n : `calc(1rem * (300 / ${tokens.fontBaseDefault}))`,\n padding: 0,\n textAlign: 'center',\n }),\n asset: css({\n height: '100%',\n }),\n skeleton: css({\n border: `1px solid ${tokens.gray300}`,\n borderRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingM,\n }),\n };\n};\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\nimport { CardProps } from '..';\n\nconst getCardPaddingValue = (padding: CardProps['padding']) => {\n switch (padding) {\n case 'large':\n return tokens.spacingL;\n case 'none':\n return 0;\n default:\n return tokens.spacingM;\n }\n};\n\nexport const getCardStyles = ({ padding }) => ({\n header: css({\n gridColumn: 'content',\n gridRow: 'header',\n marginBottom: tokens.spacingM,\n }),\n root: css({\n padding: getCardPaddingValue(padding),\n }),\n});\n","import React, { forwardRef } from 'react';\nimport { cx } from '@emotion/css';\nimport {\n Flex,\n type PolymorphicComponent,\n type PolymorphicProps,\n type ExpandProps,\n} from '@contentful/f36-core';\nimport { Heading } from '@contentful/f36-typography';\n\nimport { BaseCard, BASE_CARD_DEFAULT_TAG } from '../BaseCard/BaseCard';\nimport type { BaseCardInternalProps } from '../BaseCard/BaseCard.types';\nimport { CardActions } from '../BaseCard/CardActions';\nimport { getCardStyles } from './Card.styles';\n\ntype BaseProps = Omit<\n BaseCardInternalProps,\n 'header' | 'withDragHandle' | 'ref' | 'src' | 'type'\n> & {\n /**\n * Padding size to apply to the component\n *\n * @default default\n */\n padding?: 'default' | 'large' | 'none';\n};\n\ntype BasePropsWithDragHandle = Omit<BaseProps, 'padding'> &\n Pick<BaseCardInternalProps, 'withDragHandle'> & { padding: 'none' };\n\nexport type CardInternalProps = BaseProps | BasePropsWithDragHandle;\n\nexport type CardProps<\n E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG,\n> = PolymorphicProps<CardInternalProps, E>;\n\nfunction CardBase<E extends React.ElementType = typeof BASE_CARD_DEFAULT_TAG>(\n {\n actions,\n badge,\n icon,\n padding = 'default',\n title,\n className,\n testId = 'cf-ui-card',\n ...otherProps\n }: CardProps<E>,\n forwardedRef: React.Ref<HTMLElement>,\n) {\n const styles = getCardStyles({ padding });\n const hasHeader = Boolean(title || icon || badge || actions);\n\n return (\n // @ts-expect-error this beast of polymorphic component needs a deeper refactor.\n <BaseCard\n className={cx(styles.root, className)}\n {...otherProps}\n testId={testId}\n header={\n hasHeader && (\n <Flex alignItems=\"center\" className={cx(styles.header)}>\n {title && (\n <Flex as=\"header\" flexGrow={1}>\n <Heading marginBottom=\"none\">{title}</Heading>\n </Flex>\n )}\n {icon && (\n <Flex alignItems=\"center\" marginLeft=\"spacingXs\">\n {icon}\n </Flex>\n )}\n {badge && (\n <Flex alignItems=\"center\" marginLeft=\"spacingXs\">\n {badge}\n </Flex>\n )}\n {actions && <CardActions>{actions}</CardActions>}\n </Flex>\n )\n }\n ref={forwardedRef}\n />\n );\n}\n\nCardBase.displayName = 'Card';\n\nexport const Card = forwardRef(CardBase) as PolymorphicComponent<\n ExpandProps<CardInternalProps>,\n typeof BASE_CARD_DEFAULT_TAG\n>;\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\n\nimport type { EntryCardSize } from './EntryCard.types';\n\nexport const getEntryCardStyles = () => {\n return {\n actionsButton: css({\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n borderTopLeftRadius: 0,\n borderTopRightRadius: tokens.borderRadiusMedium,\n }),\n content: (size?: EntryCardSize) =>\n css({\n gridColumn: 'content',\n marginTop: size === 'small' ? tokens.spacingXs : tokens.spacingS,\n marginBottom: size === 'small' ? `calc(-1 * ${tokens.spacingXs})` : 0,\n }),\n root: css({\n padding: 0,\n '[data-card-part=\"content\"]': {\n paddingBottom: tokens.spacingM,\n paddingLeft: tokens.spacingM,\n paddingRight: tokens.spacingM,\n },\n }),\n header: css({\n borderBottomWidth: 1,\n borderBottomColor: tokens.gray200,\n borderBottomStyle: 'solid',\n minHeight: 'auto',\n paddingBottom: tokens.spacingXs,\n paddingLeft: tokens.spacingM,\n paddingRight: tokens.spacingXs,\n }),\n thumbnail: (size?: EntryCardSize) =>\n css({\n margin: `0 0 0 ${tokens.spacingS}`,\n padding: 0,\n overflow: 'hidden',\n position: 'relative',\n img: {\n width: '100%',\n height: '100%',\n objectFit: 'cover',\n position: 'absolute',\n zIndex: 1,\n },\n ...(size === 'small'\n ? {\n height: '40px',\n width: '40px',\n }\n : {\n height: '70px',\n width: '70px',\n }),\n }),\n };\n};\n","import React, { forwardRef } from 'react';\nimport truncate from 'truncate';\nimport { cx } from '@emotion/css';\nimport {\n Flex,\n type ExpandProps,\n type PolymorphicComponent,\n type PolymorphicProps,\n} from '@contentful/f36-core';\nimport { EntityStatusBadge } from '@contentful/f36-badge';\nimport {\n Subheading,\n Paragraph,\n type HeadingElement,\n} from '@contentful/f36-typography';\n\nimport { BaseCard } from '../BaseCard/BaseCard';\nimport { getEntryCardStyles } from './EntryCard.styles';\nimport { EntryCardInternalProps, EntryCardSize } from './EntryCard.types';\n\nconst ENTRY_CARD_DEFAULT_TAG = 'article';\n\nexport type EntryCardProps<\n E extends React.ElementType = typeof ENTRY_CARD_DEFAULT_TAG,\n> = PolymorphicProps<EntryCardInternalProps, E>;\n\nfunction EntryCardTitle({\n title,\n titleTag,\n}: {\n title?: string;\n titleTag: HeadingElement;\n}) {\n if (!title) {\n return null;\n }\n\n const truncatedTitle = truncate(title, 255, {});\n\n return (\n <Subheading\n title={title.length > 255 ? title : ''}\n testId=\"title\"\n as={titleTag}\n marginBottom=\"none\"\n isWordBreak\n >\n {truncatedTitle}\n </Subheading>\n );\n}\n\nEntryCardTitle.displayName = 'EntryCardTitle';\n\nfunction EntryCardDescription({\n description,\n size,\n}: {\n size: EntryCardSize;\n description?: string;\n}) {\n if (!description || size === 'small') {\n return null;\n }\n\n const truncatedDescription = truncate(description, 95, {});\n\n return (\n <Paragraph marginBottom=\"none\" isWordBreak>\n {truncatedDescription}\n </Paragraph>\n );\n}\n\nEntryCardDescription.displayName = 'EntryCardDescription';\n\nfunction EntryCardBase<\n E extends React.ElementType = typeof ENTRY_CARD_DEFAULT_TAG,\n>(\n {\n actions,\n children,\n className,\n customActionButton,\n src,\n status,\n thumbnailElement,\n description,\n withDragHandle = false,\n title,\n titleTag = 'h2',\n size,\n testId = 'cf-ui-entry-card',\n contentType,\n badge,\n ...otherProps\n }: EntryCardProps<E>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n forwardedRef: React.Ref<any>,\n) {\n const styles = getEntryCardStyles();\n const entryStatusBadge = status ? (\n <EntityStatusBadge entityStatus={status} />\n ) : null;\n\n return (\n // @ts-expect-error this beast of polymorphic component needs a deeper refactor.\n <BaseCard\n as={ENTRY_CARD_DEFAULT_TAG}\n {...otherProps}\n actions={actions}\n badge={badge ? badge : entryStatusBadge}\n className={cx(styles.root, className)}\n customActionButton={customActionButton}\n withDragHandle={withDragHandle}\n ref={forwardedRef}\n type={contentType}\n testId={testId}\n >\n <Flex\n alignItems=\"center\"\n className={styles.content(size)}\n flexDirection=\"row\"\n >\n <Flex flexDirection=\"column\" flexGrow={1} gap=\"spacingS\">\n <EntryCardTitle title={title} titleTag={titleTag} />\n <EntryCardDescription size={size} description={description} />\n {children}\n </Flex>\n\n {thumbnailElement && size !== 'small' && (\n <figure className={styles.thumbnail(size)}>{thumbnailElement}</figure>\n )}\n </Flex>\n </BaseCard>\n );\n}\n\nEntryCardBase.displayName = 'EntryCard';\n\nexport const EntryCard = forwardRef(EntryCardBase) as PolymorphicComponent<\n ExpandProps<EntryCardInternalProps>,\n typeof ENTRY_CARD_DEFAULT_TAG\n>;\n","import { css } from '@emotion/css';\nimport tokens from '@contentful/f36-tokens';\nimport { getEntityStatusStyles } from '@contentful/f36-core';\n\nimport type { InlineEntryCardProps } from './InlineEntryCard';\n\nexport const getInlineEntryCardStyles = () => {\n return {\n actions: css({\n display: 'flex',\n padding: 0,\n marginLeft: tokens.spacingXs,\n minHeight: 'auto',\n }),\n root: ({ status }: { status: InlineEntryCardProps['status'] }) => {\n const statusColors = getEntityStatusStyles({ status });\n\n return css({\n borderBottomLeftRadius: 0,\n borderTopLeftRadius: 0,\n display: 'inline-flex',\n width: 'auto',\n verticalAlign: 'middle',\n paddingBottom: 0,\n paddingTop: 0,\n paddingLeft: tokens.spacingS,\n paddingRight: tokens.spacing2Xs,\n '[data-card-part=\"wrapper\"]': {\n display: 'inline-flex',\n flexDirection: 'row-reverse',\n },\n '&::before': {\n backgroundColor: statusColors.color,\n bottom: 0,\n content: '\"\"',\n display: 'block',\n left: 0,\n position: 'absolute',\n top: 0,\n width: tokens.spacing2Xs,\n },\n });\n },\n skeleton: css({\n display: 'inline-flex',\n border: `1px solid ${tokens.gray300}`,\n borderTopRightRadius: tokens.borderRadiusMedium,\n borderBottomRightRadius: tokens.borderRadiusMedium,\n padding: tokens.spacingXs,\n }),\n };\n};\n","import React from 'react';\nimport { cx } from '@emotion/css';\nimport { Tooltip } from '@contentful/f36-tooltip';\nimport { Text } from '@contentful/f36-typography';\nimport { Skeleton } from '@contentful/f36-skeleton';\n\nimport { BaseCard } from '../BaseCard/BaseCard';\nimport type { BaseCardDragHandleProps } from '../BaseCard/BaseCard.types';\nimport type { EntryCardInternalProps } from '../EntryCard/EntryCard.types';\nimport { getInlineEntryCardStyles } from './InlineEntryCard.styles';\nimport { CardActions } from '../BaseCard/CardActions';\n\nexport type InlineEntryCardInternalProps = Omit<\n EntryCardInternalProps,\n 'icon' | 'ref' | 'src' | 'size' | 'type' | keyof BaseCardDragHandleProps\n>;\n\nexport type InlineEntryCardProps = InlineEntryCardInternalProps;\n\nexport const InlineEntryCard = ({\n actions,\n className,\n children,\n status,\n title,\n isLoading,\n testId = 'cf-ui-inline-entry-card',\n ...otherProps\n}: InlineEntryCardInternalProps) => {\n const styles = getInlineEntryCardStyles();\n const header = (\n <CardActions buttonProps={{ className: styles.actions }}>\n {actions}\n </CardActions>\n );\n\n if (isLoading) {\n return (\n <Skeleton.Container\n className={styles.skeleton}\n svgHeight=\"1.25rem\"\n svgWidth=\"6rem\"\n >\n <Skeleton.BodyText numberOfLines={1} />\n </Skeleton.Container>\n );\n }\n\n return (\n <Tooltip placement=\"bottom\" content={title}>\n <BaseCard\n {...otherProps}\n className={cx(styles.root({ status }), className)}\n header={header}\n testId={testId}\n >\n {children || <Text>{title}</Text>}\n </BaseCard>\n </Tooltip>\n );\n};\n"]}
package/package.json CHANGED
@@ -1,29 +1,29 @@
1
1
  {
2
2
  "name": "@contentful/f36-card",
3
- "version": "5.6.0",
3
+ "version": "6.0.0-alpha.1",
4
4
  "description": "Forma 36: Card components",
5
5
  "scripts": {
6
6
  "build": "tsup"
7
7
  },
8
8
  "dependencies": {
9
- "@contentful/f36-asset": "^5.6.0",
10
- "@contentful/f36-badge": "^5.6.0",
11
- "@contentful/f36-button": "^5.6.0",
12
- "@contentful/f36-core": "^5.6.0",
13
- "@contentful/f36-drag-handle": "^5.6.0",
14
- "@contentful/f36-icon": "^5.6.0",
15
- "@contentful/f36-icons": "^5.6.0",
16
- "@contentful/f36-menu": "^5.6.0",
17
- "@contentful/f36-skeleton": "^5.6.0",
18
- "@contentful/f36-tokens": "^5.1.0",
19
- "@contentful/f36-tooltip": "^5.6.0",
20
- "@contentful/f36-typography": "^5.6.0",
21
- "emotion": "^10.0.17",
9
+ "@contentful/f36-asset": "^6.0.0-alpha.0",
10
+ "@contentful/f36-badge": "^6.0.0-alpha.0",
11
+ "@contentful/f36-button": "^6.0.0-alpha.0",
12
+ "@contentful/f36-core": "^6.0.0-alpha.0",
13
+ "@contentful/f36-drag-handle": "^6.0.0-alpha.0",
14
+ "@contentful/f36-icon": "^6.0.0-alpha.0",
15
+ "@contentful/f36-icons": "^6.0.0-alpha.0",
16
+ "@contentful/f36-menu": "^6.0.0-alpha.0",
17
+ "@contentful/f36-skeleton": "^6.0.0-alpha.0",
18
+ "@contentful/f36-tokens": "^6.0.0-alpha.0",
19
+ "@contentful/f36-tooltip": "^6.0.0-alpha.0",
20
+ "@contentful/f36-typography": "^6.0.0-alpha.0",
21
+ "@emotion/css": "^11.13.5",
22
22
  "truncate": "^3.0.0"
23
23
  },
24
24
  "peerDependencies": {
25
- "react": ">=16.8",
26
- "react-dom": ">=16.8"
25
+ "react": ">=19.1.0",
26
+ "react-dom": ">=19.1.0"
27
27
  },
28
28
  "license": "MIT",
29
29
  "files": [