@contentful/f36-card 4.56.1 → 4.57.0

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
@@ -10,12 +10,12 @@ import { Heading, Text, Subheading, Paragraph } from '@contentful/f36-typography
10
10
  import { IconButton } from '@contentful/f36-button';
11
11
  import { MoreHorizontalIcon } from '@contentful/f36-icons';
12
12
  import { Menu } from '@contentful/f36-menu';
13
- import Pr from 'truncate';
13
+ import Ar from 'truncate';
14
14
  import { Tooltip } from '@contentful/f36-tooltip';
15
15
 
16
- var jr=Object.defineProperty,Yr=Object.defineProperties;var Kr=Object.getOwnPropertyDescriptors;var $=Object.getOwnPropertySymbols;var ir=Object.prototype.hasOwnProperty,dr=Object.prototype.propertyIsEnumerable;var sr=(r,e,t)=>e in r?jr(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,d=(r,e)=>{for(var t in e||(e={}))ir.call(e,t)&&sr(r,t,e[t]);if($)for(var t of $(e))dr.call(e,t)&&sr(r,t,e[t]);return r},f=(r,e)=>Yr(r,Kr(e));var h=(r,e)=>{var t={};for(var o in r)ir.call(r,o)&&e.indexOf(o)<0&&(t[o]=r[o]);if(r!=null&&$)for(var o of $(r))e.indexOf(o)<0&&dr.call(r,o)&&(t[o]=r[o]);return t};var pr=()=>({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 mr=()=>({root:css({minHeight:"auto",padding:n.spacing2Xs,marginLeft:n.spacingXs})});var R=({buttonProps:r,children:e})=>{let t=mr();return B.createElement(Menu,null,B.createElement(Menu.Trigger,null,B.createElement(IconButton,f(d({"aria-label":"Actions",icon:B.createElement(MoreHorizontalIcon,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 ee=()=>({header:css({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:0,paddingRight:n.spacingXs,paddingTop:0})}),j=r=>{r.preventDefault(),r.stopPropagation();},X=r=>{let{icon:e,type:t,actions:o,actionsButtonProps:a,badge:p}=r,l=ee();return B.createElement(Flex,{className:cx(l.header,o&&l.headerWithActions)},B.createElement(Flex,{flexGrow:1},t&&B.createElement(Text,{fontColor:"gray600",isWordBreak:!0},t)),e&&B.createElement(Flex,{alignItems:"center",marginLeft:"spacingXs"},e),p&&B.createElement(Flex,{alignItems:"center",marginLeft:"spacingXs"},p),o&&o.length>0&&B.createElement(Flex,{onClick:j,alignItems:"center"},B.createElement(R,{buttonProps:a},o)))};X.displayName="DefaultCardHeader";var ie="article";function cr(Te,vr){var tr=Te,{actions:r,actionsButtonProps:e,ariaLabel:t,badge:o,children:a,className:p,contentBodyProps:l,header:m,href:y,icon:C,isDragging:s=!1,isHovered:i,isSelected:A=!1,onBlur:w,onClick:E,onFocus:P,onKeyDown:x,onMouseEnter:b,onMouseLeave:v,target:_r,rel:wr,testId:Rr="cf-ui-base-card",title:J,type:Q,withDragHandle:Z,dragHandleRender:rr,isLoading:kr}=tr,er=h(tr,["actions","actionsButtonProps","ariaLabel","badge","children","className","contentBodyProps","header","href","icon","isDragging","isHovered","isSelected","onBlur","onClick","onFocus","onKeyDown","onMouseEnter","onMouseLeave","target","rel","testId","title","type","withDragHandle","dragHandleRender","isLoading"]);let F=pr(),[Fr,or]=useState(i!=null?i:!1),nr=!!(E||y||Z),Nr=!!m,Wr=Q||C||o||r?B.createElement(X,{type:Q,icon:C,badge:o,actions:r,actionsButtonProps:e}):null,Xr=useCallback(u=>{P&&P(u);},[P]),Gr=useCallback(u=>{w&&w(u);},[w]),Ur=useCallback(u=>{or(!0),b&&b(u);},[b]),$r=useCallback(u=>{or(!1),v&&v(u);},[v]),zr=E?u=>{E(u);}:void 0,Or=useCallback(u=>{x&&x(u);},[x]);if(kr)return B.createElement(Skeleton.Container,{className:F.skeleton,svgHeight:"5.6rem"},B.createElement(Skeleton.DisplayText,{numberOfLines:1}),B.createElement(Skeleton.BodyText,{numberOfLines:1,offsetTop:35}));let ar=B.createElement(DragHandle,{className:F.dragHandle,isActive:s,label:"Reorder entry",onClick:j});return B.createElement(Box,f(d({"aria-label":J||t,"aria-pressed":er.as==="button"?A?"true":"false":void 0,as:ie,className:cx(F.root({hasHeader:Nr,isHovered:Fr,isSelected:A}),p),href:y,onBlur:Gr,onClick:zr,onFocus:Xr,onMouseEnter:typeof i=="undefined"&&nr?Ur:void 0,onMouseLeave:typeof i=="undefined"&&nr?$r:void 0,onKeyDown:Or,rel:y&&(wr||"noreferrer"),role:E&&!y?"button":void 0,tabIndex:E?0:void 0,target:_r},er),{ref:vr,testId:Rr,title:J}),Z?rr?rr({drag:ar,isDragging:s}):ar:null,B.createElement("div",{className:F.wrapper,"data-card-part":"wrapper"},m!=null?m:Wr,B.createElement("div",{className:F.contentBody,"data-card-part":"content"},a)))}cr.displayName="BaseCard";var S=forwardRef(cr);var gr=()=>({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 ur=w=>{var E=w,{actions:r,className:e,icon:t=null,isSelected:o,size:a="default",src:p,status:l,title:m,type:y,withDragHandle:C=!1,isLoading:s,testId:i="cf-ui-asset-card"}=E,A=h(E,["actions","className","icon","isSelected","size","src","status","title","type","withDragHandle","isLoading","testId"]);let P=gr(),x=l?B.createElement(EntityStatusBadge,{entityStatus:l}):null,b=t||x||r?B.createElement(X,{icon:t,badge:x,actions:r}):null;return s?B.createElement(Skeleton.Container,{className:P.skeleton,svgWidth:a==="default"?"18rem":"11rem",svgHeight:a==="default"?"18.75rem":"12rem"},B.createElement(Skeleton.Image,{width:"100%",height:"18.75rem"})):B.createElement(S,f(d({},A),{badge:x,className:cx(P.root({size:a}),e),header:b,isSelected:o,title:m,withDragHandle:C,testId:i}),B.createElement(Flex,{alignItems:"center",fullHeight:!0,justifyContent:"center"},B.createElement(Asset,{className:P.asset,src:p,status:l,title:m,type:y})))};var fe=r=>{switch(r){case"large":return n.spacingL;case"none":return 0;default:return n.spacingM}},Er=({padding:r})=>({header:css({gridColumn:"content",gridRow:"header",marginBottom:n.spacingM}),root:css({padding:fe(r)})});function hr(C,y){var s=C,{actions:r,badge:e,icon:t,padding:o="default",title:a,className:p,testId:l="cf-ui-card"}=s,m=h(s,["actions","badge","icon","padding","title","className","testId"]);let i=Er({padding:o}),A=!!(a||t||e||r);return B.createElement(S,f(d({className:cx(i.root,p)},m),{testId:l,header:A&&B.createElement(Flex,{alignItems:"center",className:cx(i.header)},a&&B.createElement(Flex,{as:"header",flexGrow:1},B.createElement(Heading,{marginBottom:"none"},a)),t&&B.createElement(Flex,{alignItems:"center",marginLeft:"spacingXs"},t),e&&B.createElement(Flex,{alignItems:"center",marginLeft:"spacingXs"},e),r&&B.createElement(R,null,r)),ref:y}))}hr.displayName="Card";var br=forwardRef(hr);var Br=()=>({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(d({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 he="article";function Tr({title:r,titleTag:e}){if(!r)return null;let t=Pr(r,255,{});return B.createElement(Subheading,{title:r.length>255?r:"",testId:"title",as:e,marginBottom:"none",isWordBreak:!0},t)}Tr.displayName="EntryCardTitle";function Ir({description:r,size:e}){if(!r||e==="small")return null;let t=Pr(r,95,{});return B.createElement(Paragraph,{marginBottom:"none",isWordBreak:!0},t)}Ir.displayName="EntryCardDescription";function Sr(P,E){var x=P,{actions:r,children:e,className:t,src:o,status:a,thumbnailElement:p,description:l,withDragHandle:m=!1,title:y,titleTag:C="h2",size:s,testId:i="cf-ui-entry-card",contentType:A}=x,w=h(x,["actions","children","className","src","status","thumbnailElement","description","withDragHandle","title","titleTag","size","testId","contentType"]);let b=Br(),v=a?B.createElement(EntityStatusBadge,{entityStatus:a}):null;return B.createElement(S,f(d({as:he},w),{actions:r,badge:v,className:cx(b.root,t),withDragHandle:m,ref:E,type:A,testId:i}),B.createElement(Flex,{alignItems:"center",className:b.content(s),flexDirection:"row"},B.createElement(Flex,{flexDirection:"column",flexGrow:1,gap:"spacingS"},B.createElement(Tr,{title:y,titleTag:C}),B.createElement(Ir,{size:s,description:l}),e),p&&s!=="small"&&B.createElement("figure",{className:b.thumbnail(s)},p)))}Sr.displayName="EntryCard";var Dr=forwardRef(Sr);var Hr=()=>({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 Mr=y=>{var C=y,{actions:r,className:e,children:t,status:o,title:a,isLoading:p,testId:l="cf-ui-inline-entry-card"}=C,m=h(C,["actions","className","children","status","title","isLoading","testId"]);let s=Hr(),i=B.createElement(R,{buttonProps:{className:s.actions}},r);return p?B.createElement(Skeleton.Container,{className:s.skeleton,svgHeight:"1.25rem",svgWidth:"6rem"},B.createElement(Skeleton.BodyText,{numberOfLines:1})):B.createElement(Tooltip,{placement:"bottom",content:a},B.createElement(S,f(d({},m),{className:cx(s.root({status:o}),e),header:i,testId:l}),t||B.createElement(Text,null,a)))};
16
+ var Or=Object.defineProperty,jr=Object.defineProperties;var Yr=Object.getOwnPropertyDescriptors;var $=Object.getOwnPropertySymbols;var ir=Object.prototype.hasOwnProperty,dr=Object.prototype.propertyIsEnumerable;var sr=(r,e,t)=>e in r?Or(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,p=(r,e)=>{for(var t in e||(e={}))ir.call(e,t)&&sr(r,t,e[t]);if($)for(var t of $(e))dr.call(e,t)&&sr(r,t,e[t]);return r},c=(r,e)=>jr(r,Yr(e));var h=(r,e)=>{var t={};for(var o in r)ir.call(r,o)&&e.indexOf(o)<0&&(t[o]=r[o]);if(r!=null&&$)for(var o of $(r))e.indexOf(o)<0&&dr.call(r,o)&&(t[o]=r[o]);return t};var pr=()=>({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 lr=()=>({root:css({minHeight:"auto",padding:n.spacing2Xs})});var R=({buttonProps:r,children:e})=>{let t=lr();return B.createElement(Menu,null,B.createElement(Menu.Trigger,null,B.createElement(IconButton,c(p({"aria-label":"Actions",icon:B.createElement(MoreHorizontalIcon,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 ee=()=>({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})}),j=r=>{r.preventDefault(),r.stopPropagation();},X=r=>{let{icon:e,type:t,actions:o,actionsButtonProps:a,badge:l}=r,m=ee();return B.createElement(Flex,{flexWrap:"wrap",className:cx(m.header,o&&m.headerWithActions)},B.createElement(Flex,{flexGrow:1},t&&B.createElement(Text,{fontColor:"gray600",isWordBreak:!0},t)),e&&B.createElement(Flex,{alignItems:"center"},e),l&&B.createElement(Flex,{alignItems:"center"},l),o&&o.length>0&&B.createElement(Flex,{onClick:j,alignItems:"center"},B.createElement(R,{buttonProps:a},o)))};X.displayName="DefaultCardHeader";var ie="article";function fr(Te,kr){var tr=Te,{actions:r,actionsButtonProps:e,ariaLabel:t,badge:o,children:a,className:l,contentBodyProps:m,header:f,href:y,icon:C,isDragging:s=!1,isHovered:d,isSelected:A=!1,onBlur:w,onClick:E,onFocus:P,onKeyDown:x,onMouseEnter:b,onMouseLeave:v,target:Lr,rel:_r,testId:wr="cf-ui-base-card",title:J,type:Q,withDragHandle:Z,dragHandleRender:rr,isLoading:Rr}=tr,er=h(tr,["actions","actionsButtonProps","ariaLabel","badge","children","className","contentBodyProps","header","href","icon","isDragging","isHovered","isSelected","onBlur","onClick","onFocus","onKeyDown","onMouseEnter","onMouseLeave","target","rel","testId","title","type","withDragHandle","dragHandleRender","isLoading"]);let F=pr(),[vr,or]=useState(d!=null?d:!1),nr=!!(E||y||Z),Fr=!!f,Nr=Q||C||o||r?B.createElement(X,{type:Q,icon:C,badge:o,actions:r,actionsButtonProps:e}):null,Wr=useCallback(u=>{P&&P(u);},[P]),Xr=useCallback(u=>{w&&w(u);},[w]),Gr=useCallback(u=>{or(!0),b&&b(u);},[b]),Ur=useCallback(u=>{or(!1),v&&v(u);},[v]),$r=E?u=>{E(u);}:void 0,zr=useCallback(u=>{x&&x(u);},[x]);if(Rr)return B.createElement(Skeleton.Container,{className:F.skeleton,svgHeight:"5.6rem"},B.createElement(Skeleton.DisplayText,{numberOfLines:1}),B.createElement(Skeleton.BodyText,{numberOfLines:1,offsetTop:35}));let ar=B.createElement(DragHandle,{className:F.dragHandle,isActive:s,label:"Reorder entry",onClick:j});return B.createElement(Box,c(p({"aria-label":J||t,"aria-pressed":er.as==="button"?A?"true":"false":void 0,as:ie,className:cx(F.root({hasHeader:Fr,isHovered:vr,isSelected:A}),l),href:y,onBlur:Xr,onClick:$r,onFocus:Wr,onMouseEnter:typeof d=="undefined"&&nr?Gr:void 0,onMouseLeave:typeof d=="undefined"&&nr?Ur:void 0,onKeyDown:zr,rel:y&&(_r||"noreferrer"),role:E&&!y?"button":void 0,tabIndex:E?0:void 0,target:Lr},er),{ref:kr,testId:wr,title:J}),Z?rr?rr({drag:ar,isDragging:s}):ar:null,B.createElement("div",{className:F.wrapper,"data-card-part":"wrapper"},f!=null?f:Nr,B.createElement("div",{className:F.contentBody,"data-card-part":"content"},a)))}fr.displayName="BaseCard";var S=forwardRef(fr);var cr=()=>({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 yr=w=>{var E=w,{actions:r,className:e,icon:t=null,isSelected:o,size:a="default",src:l,status:m,title:f,type:y,withDragHandle:C=!1,isLoading:s,testId:d="cf-ui-asset-card"}=E,A=h(E,["actions","className","icon","isSelected","size","src","status","title","type","withDragHandle","isLoading","testId"]);let P=cr(),x=m?B.createElement(EntityStatusBadge,{entityStatus:m}):null,b=t||x||r?B.createElement(X,{icon:t,badge:x,actions:r}):null;return s?B.createElement(Skeleton.Container,{className:P.skeleton,svgWidth:a==="default"?"18rem":"11rem",svgHeight:a==="default"?"18.75rem":"12rem"},B.createElement(Skeleton.Image,{width:"100%",height:"18.75rem"})):B.createElement(S,c(p({},A),{badge:x,className:cx(P.root({size:a}),e),header:b,isSelected:o,title:f,withDragHandle:C,testId:d}),B.createElement(Flex,{alignItems:"center",fullHeight:!0,justifyContent:"center"},B.createElement(Asset,{className:P.asset,src:l,status:m,title:f,type:y})))};var fe=r=>{switch(r){case"large":return n.spacingL;case"none":return 0;default:return n.spacingM}},Cr=({padding:r})=>({header:css({gridColumn:"content",gridRow:"header",marginBottom:n.spacingM}),root:css({padding:fe(r)})});function xr(C,y){var s=C,{actions:r,badge:e,icon:t,padding:o="default",title:a,className:l,testId:m="cf-ui-card"}=s,f=h(s,["actions","badge","icon","padding","title","className","testId"]);let d=Cr({padding:o}),A=!!(a||t||e||r);return B.createElement(S,c(p({className:cx(d.root,l)},f),{testId:m,header:A&&B.createElement(Flex,{alignItems:"center",className:cx(d.header)},a&&B.createElement(Flex,{as:"header",flexGrow:1},B.createElement(Heading,{marginBottom:"none"},a)),t&&B.createElement(Flex,{alignItems:"center",marginLeft:"spacingXs"},t),e&&B.createElement(Flex,{alignItems:"center",marginLeft:"spacingXs"},e),r&&B.createElement(R,null,r)),ref:y}))}xr.displayName="Card";var hr=forwardRef(xr);var br=()=>({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(p({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 he="article";function Pr({title:r,titleTag:e}){if(!r)return null;let t=Ar(r,255,{});return B.createElement(Subheading,{title:r.length>255?r:"",testId:"title",as:e,marginBottom:"none",isWordBreak:!0},t)}Pr.displayName="EntryCardTitle";function Tr({description:r,size:e}){if(!r||e==="small")return null;let t=Ar(r,95,{});return B.createElement(Paragraph,{marginBottom:"none",isWordBreak:!0},t)}Tr.displayName="EntryCardDescription";function Ir(P,E){var x=P,{actions:r,children:e,className:t,src:o,status:a,thumbnailElement:l,description:m,withDragHandle:f=!1,title:y,titleTag:C="h2",size:s,testId:d="cf-ui-entry-card",contentType:A}=x,w=h(x,["actions","children","className","src","status","thumbnailElement","description","withDragHandle","title","titleTag","size","testId","contentType"]);let b=br(),v=a?B.createElement(EntityStatusBadge,{entityStatus:a}):null;return B.createElement(S,c(p({as:he},w),{actions:r,badge:v,className:cx(b.root,t),withDragHandle:f,ref:E,type:A,testId:d}),B.createElement(Flex,{alignItems:"center",className:b.content(s),flexDirection:"row"},B.createElement(Flex,{flexDirection:"column",flexGrow:1,gap:"spacingS"},B.createElement(Pr,{title:y,titleTag:C}),B.createElement(Tr,{size:s,description:m}),e),l&&s!=="small"&&B.createElement("figure",{className:b.thumbnail(s)},l)))}Ir.displayName="EntryCard";var Sr=forwardRef(Ir);var Dr=()=>({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 Mr=y=>{var C=y,{actions:r,className:e,children:t,status:o,title:a,isLoading:l,testId:m="cf-ui-inline-entry-card"}=C,f=h(C,["actions","className","children","status","title","isLoading","testId"]);let s=Dr(),d=B.createElement(R,{buttonProps:{className:s.actions}},r);return l?B.createElement(Skeleton.Container,{className:s.skeleton,svgHeight:"1.25rem",svgWidth:"6rem"},B.createElement(Skeleton.BodyText,{numberOfLines:1})):B.createElement(Tooltip,{placement:"bottom",content:a},B.createElement(S,c(p({},f),{className:cx(s.root({status:o}),e),header:d,testId:m}),t||B.createElement(Text,null,a)))};
18
18
 
19
- export { ur as AssetCard, br as Card, Dr as EntryCard, Mr as InlineEntryCard };
19
+ export { yr as AssetCard, hr as Card, Sr as EntryCard, Mr as InlineEntryCard };
20
20
  //# sourceMappingURL=out.js.map
21
21
  //# 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","MoreHorizontalIcon","Menu","getCardActionsStyles","CardActions","buttonProps","children","__spreadProps","__spreadValues","getHeaderStyles","stopEvents","e","DefaultCardHeader","props","icon","type","actions","actionsButtonProps","badge","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","Heading","getCardPaddingValue","padding","getCardStyles","_Card","Card","truncate","Subheading","Paragraph","getEntryCardStyles","ENTRY_CARD_DEFAULT_TAG","EntryCardTitle","titleTag","truncatedTitle","EntryCardDescription","description","truncatedDescription","_EntryCard","thumbnailElement","contentType","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, 'badge' | '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 ...otherProps\n}: AssetCardInternalProps) => {\n const styles = getAssetCardStyles();\n const badge = status ? <EntityStatusBadge entityStatus={status} /> : 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 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 ? (\n <DefaultCardHeader\n type={type}\n icon={icon}\n badge={badge}\n actions={actions}\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 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: 0,\n paddingRight: tokens.spacingXs,\n paddingTop: 0,\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' | 'icon' | 'badge' | 'actions' | 'actionsButtonProps'\n >,\n) => {\n const { icon, type, actions, actionsButtonProps, badge } = props;\n const styles = getHeaderStyles();\n return (\n <Flex className={cx(styles.header, actions && styles.headerWithActions)}>\n <Flex flexGrow={1}>\n {type && (\n <Text fontColor=\"gray600\" isWordBreak>\n {type}\n </Text>\n )}\n </Flex>\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 && actions.length > 0 && (\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 </Flex>\n );\n};\n\nDefaultCardHeader.displayName = 'DefaultCardHeader';\n","import React from 'react';\nimport { IconButton, type ButtonProps } from '@contentful/f36-button';\nimport { MoreHorizontalIcon } 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={<MoreHorizontalIcon />}\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 marginLeft: tokens.spacingXs,\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 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 ...otherProps\n }: EntryCardProps<E>,\n forwardedRef: React.Ref<any>,\n) {\n const styles = getEntryCardStyles();\n const badge = status ? <EntityStatusBadge entityStatus={status} /> : null;\n\n return (\n <BaseCard\n as={ENTRY_CARD_DEFAULT_TAG}\n {...otherProps}\n actions={actions}\n badge={badge}\n className={cx(styles.root, className)}\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.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","MoreHorizontalIcon","Menu","getCardActionsStyles","CardActions","buttonProps","children","__spreadProps","__spreadValues","getHeaderStyles","stopEvents","e","DefaultCardHeader","props","icon","type","actions","actionsButtonProps","badge","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","Heading","getCardPaddingValue","padding","getCardStyles","_Card","Card","truncate","Subheading","Paragraph","getEntryCardStyles","ENTRY_CARD_DEFAULT_TAG","EntryCardTitle","titleTag","truncatedTitle","EntryCardDescription","description","truncatedDescription","_EntryCard","thumbnailElement","contentType","EntryCard","Tooltip","getEntityStatusStyles","getInlineEntryCardStyles","statusColors","InlineEntryCard"],"mappings":"8lBAAA,OAAOA,MAAW,QAClB,OAAS,MAAAC,OAAU,UACnB,OAAS,QAAAC,OAAY,uBACrB,OAAS,qBAAAC,OAAyB,wBAClC,OAAS,SAAAC,OAA+C,wBACxD,OAAS,YAAAC,OAAgB,2BCLzB,OAAS,MAAAJ,OAAU,UACnB,OAAOD,GACL,cAAAM,GACA,eAAAC,EACA,YAAAC,OAKK,QACP,OACE,OAAAC,OAGK,uBACP,OAAS,cAAAC,OAAkB,8BAC3B,OAAS,YAAAL,MAAgB,2BChBzB,OAAS,OAAAM,MAAW,UAEpB,OAAOC,MAAY,yBAEZ,IAAMC,GAAoB,KACxB,CACL,YAAaF,EAAI,CACf,WAAY,UACZ,QAAS,UACT,WAAY,SACd,CAAC,EACD,QAASA,EAAI,CACX,KAAM,QACN,QAAS,OACT,iBAAkB,yCAClB,oBAAqB,+BACvB,CAAC,EACD,WAAYA,EAAI,CACd,uBAAwBC,EAAO,mBAC/B,oBAAqBA,EAAO,mBAC5B,OAAQ,MACV,CAAC,EACD,KAAM,CAAC,CAAE,UAAAE,EAAW,UAAAC,EAAW,WAAAC,CAAW,IAAM,CAC9C,IAAMC,EAAyC,CAC7C,gBAAiBL,EAAO,WACxB,YAAaA,EAAO,QACpB,aAAcA,EAAO,mBACrB,YAAa,QACb,YAAa,EACb,MAAOA,EAAO,QACd,QAAS,OACT,UAAW,OACX,MAAO,OACP,SAAUA,EAAO,UACjB,WAAYA,EAAO,iBACnB,SAAU,WACV,eAAgB,OAChB,OAAQ,EACR,WAAY,gBAAgBA,EAAO,yBAAyB,IAAIA,EAAO,uBAAuB;AAAA,iBACrFA,EAAO,uBAAuB,IAAIA,EAAO,uBAAuB,GAEzE,UAAWD,EAAI,CACb,YAAaK,EAAaJ,EAAO,QAAUA,EAAO,QAClD,UAAWA,EAAO,YAClB,QAAS,MACX,CAAC,EACD,8BAA+BD,EAAI,CACjC,YAAaK,EAAaJ,EAAO,QAAUA,EAAO,QAClD,UAAW,OACb,CAAC,EACD,kBAAmBD,EAAI,CACrB,YAAaC,EAAO,QACpB,UAAWA,EAAO,WACpB,CAAC,CACH,EAEA,OAAKE,IACHG,EAAO,WAAaL,EAAO,UAGzBG,IACFE,EAAO,YAAcL,EAAO,QAC5BK,EAAO,OAAS,WAGdD,IACFC,EAAO,gBAAkBL,EAAO,QAChCK,EAAO,YAAcL,EAAO,SAGvBD,EAAIM,CAAM,CACnB,EACA,SAAUN,EAAI,CACZ,OAAQ,aAAaC,EAAO,OAAO,GACnC,aAAcA,EAAO,mBACrB,QAASA,EAAO,QAClB,CAAC,CACH,GC7EF,OAAOZ,MAAW,QAClB,OAAS,QAAAE,MAAY,uBACrB,OAAS,QAAAgB,OAAY,6BCFrB,OAAOlB,MAAW,QAClB,OAAS,cAAAmB,OAAoC,yBAC7C,OAAS,sBAAAC,OAA0B,wBACnC,OAAS,QAAAC,MAAY,uBACrB,OAAS,MAAApB,OAAU,UCJnB,OAAS,OAAAU,OAAW,UACpB,OAAOC,OAAY,yBAEZ,IAAMU,GAAuB,KAC3B,CACL,KAAMX,GAAI,CACR,UAAW,OACX,QAASC,GAAO,UAClB,CAAC,CACH,GDOK,IAAMW,EAAc,CAAC,CAC1B,YAAAC,EACA,SAAAC,CACF,IAA4C,CAC1C,IAAMR,EAASK,GAAqB,EAEpC,OACEtB,EAAA,cAACqB,EAAA,KACCrB,EAAA,cAACqB,EAAK,QAAL,KACCrB,EAAA,cAACmB,GAAAO,EAAAC,EAAA,CACC,aAAW,UACX,KAAM3B,EAAA,cAACoB,GAAA,IAAmB,GACtBI,GAHL,CAIC,UAAWvB,GAAGgB,EAAO,KAAMO,GAAA,YAAAA,EAAa,SAAS,EACjD,KAAK,QACL,QAAQ,cACR,OAAO,sBACT,CACF,EACAxB,EAAA,cAACqB,EAAK,KAAL,KAAWI,CAAS,CACvB,CAEJ,EDlCA,OAAOb,MAAY,yBAEnB,OAAS,MAAAX,GAAI,OAAAU,OAAW,UAIxB,IAAMiB,GAAkB,KACf,CACL,OAAQjB,GAAI,CACV,UAAWC,EAAO,UAClB,OAAQA,EAAO,WACf,WAAY,SACZ,kBAAmBA,EAAO,QAC1B,kBAAmB,QACnB,kBAAmB,EACnB,oBAAqBA,EAAO,mBAC5B,qBAAsBA,EAAO,mBAC7B,UAAW,aACX,MAAOA,EAAO,QACd,SAAUA,EAAO,UACjB,WAAYA,EAAO,iBACnB,WAAY,UACZ,QAAS,SACT,WAAYA,EAAO,YACnB,cAAeA,EAAO,UACtB,YAAaA,EAAO,SACpB,aAAcA,EAAO,UACrB,WAAYA,EAAO,UACnB,UAAW,MACb,CAAC,EACD,kBAAmBD,GAAI,CACrB,cAAeC,EAAO,WACtB,aAAcA,EAAO,UACrB,WAAYA,EAAO,UACrB,CAAC,CACH,GAGWiB,EAAcC,GAAqC,CAC9DA,EAAE,eAAe,EACjBA,EAAE,gBAAgB,CACpB,EAEaC,EACXC,GAIG,CACH,GAAM,CAAE,KAAAC,EAAM,KAAAC,EAAM,QAAAC,EAAS,mBAAAC,EAAoB,MAAAC,CAAM,EAAIL,EACrDf,EAASW,GAAgB,EAC/B,OACE5B,EAAA,cAACE,EAAA,CACC,SAAS,OACT,UAAWD,GAAGgB,EAAO,OAAQkB,GAAWlB,EAAO,iBAAiB,GAEhEjB,EAAA,cAACE,EAAA,CAAK,SAAU,GACbgC,GACClC,EAAA,cAACkB,GAAA,CAAK,UAAU,UAAU,YAAW,IAClCgB,CACH,CAEJ,EACCD,GAAQjC,EAAA,cAACE,EAAA,CAAK,WAAW,UAAU+B,CAAK,EACxCI,GAASrC,EAAA,cAACE,EAAA,CAAK,WAAW,UAAUmC,CAAM,EAC1CF,GAAWA,EAAQ,OAAS,GAC3BnC,EAAA,cAACE,EAAA,CAEC,QAAS2B,EACT,WAAW,UAEX7B,EAAA,cAACuB,EAAA,CAAY,YAAaa,GAAqBD,CAAQ,CACzD,CAEJ,CAEJ,EAEAJ,EAAkB,YAAc,oBF3DzB,IAAMO,GAAwB,UAMrC,SAASC,GACPC,GA8BAC,GACA,CA/BA,IAAAC,GAAAF,GACE,SAAAL,EACA,mBAAAC,EACA,UAAAO,EACA,MAAAN,EACA,SAAAZ,EACA,UAAAmB,EACA,iBAAAC,EACA,OAAAC,EACA,KAAAC,EACA,KAAAd,EACA,WAAAe,EAAa,GACb,UAAWC,EACX,WAAAjC,EAAa,GACb,OAAAkC,EACA,QAAAC,EACA,QAAAC,EACA,UAAAC,EACA,aAAAC,EACA,aAAAC,EACA,OAAAC,GACA,IAAAC,GACA,OAAAC,GAAS,kBACT,MAAAC,EACA,KAAAzB,EACA,eAAA0B,EACA,iBAAAC,GACA,UAAAC,EAzDJ,EA8BEpB,GA4BKqB,GAAAC,EA5BLtB,GA4BK,CA3BH,UACA,qBACA,YACA,QACA,WACA,YACA,mBACA,SACA,OACA,OACA,aACA,YACA,aACA,SACA,UACA,UACA,YACA,eACA,eACA,SACA,MACA,SACA,QACA,OACA,iBACA,mBACA,cAKF,IAAMzB,EAASJ,GAAkB,EAC3B,CAACE,GAAWkD,EAAY,EAAIzD,GAASyC,GAAA,KAAAA,EAAiB,EAAK,EAC3DiB,GAAgB,GAAQf,GAAWJ,GAAQa,GAC3C9C,GAAY,EAAQgC,EACpBqB,GACJjC,GAAQD,GAAQI,GAASF,EACvBnC,EAAA,cAAC+B,EAAA,CACC,KAAMG,EACN,KAAMD,EACN,MAAOI,EACP,QAASF,EACT,mBAAoBC,EACtB,EACE,KAEAgC,GAAc7D,EACjB8D,GAAU,CACLjB,GACFA,EAAQiB,CAAK,CAEjB,EACA,CAACjB,CAAO,CACV,EAEMkB,GAAa/D,EAChB8D,GAAU,CACLnB,GACFA,EAAOmB,CAAK,CAEhB,EACA,CAACnB,CAAM,CACT,EAEMqB,GAAmBhE,EACtB8D,GAAU,CACTJ,GAAa,EAAI,EAEbX,GACFA,EAAae,CAAK,CAEtB,EACA,CAACf,CAAY,CACf,EAEMkB,GAAmBjE,EACtB8D,GAAU,CACTJ,GAAa,EAAK,EAEdV,GACFA,EAAac,CAAK,CAEtB,EACA,CAACd,CAAY,CACf,EAEMkB,GAActB,EACfkB,GAAmC,CAClClB,EAAQkB,CAAK,CACf,EACA,OAEEK,GAAgBnE,EACnB8D,GAAU,CACLhB,GACFA,EAAUgB,CAAK,CAEnB,EACA,CAAChB,CAAS,CACZ,EAEA,GAAIS,GACF,OACE9D,EAAA,cAACK,EAAS,UAAT,CAAmB,UAAWY,EAAO,SAAU,UAAU,UACxDjB,EAAA,cAACK,EAAS,YAAT,CAAqB,cAAe,EAAG,EACxCL,EAAA,cAACK,EAAS,SAAT,CAAkB,cAAe,EAAG,UAAW,GAAI,CACtD,EAIJ,IAAMsE,GACJ3E,EAAA,cAACU,GAAA,CACC,UAAWO,EAAO,WAClB,SAAU+B,EACV,MAAM,gBACN,QAASnB,EACX,EAGF,OACE7B,EAAA,cAACS,GAAAiB,EAAAC,EAAA,CACC,aAAYgC,GAAShB,EACrB,eACEoB,GAAW,KAAO,SAAY/C,EAAa,OAAS,QAAW,OAEjE,GAAIsB,GACJ,UAAWrC,GACTgB,EAAO,KAAK,CACV,UAAAH,GACA,UAAAC,GACA,WAAAC,CACF,CAAC,EACD4B,CACF,EACA,KAAMG,EACN,OAAQuB,GACR,QAASG,GACT,QAASL,GACT,aACE,OAAOnB,GAAkB,aAAeiB,GACpCK,GACA,OAEN,aACE,OAAOtB,GAAkB,aAAeiB,GACpCM,GACA,OAEN,UAAWE,GACX,IAAK3B,IAASU,IAAO,cACrB,KAAMN,GAAW,CAACJ,EAAO,SAAW,OACpC,SAAUI,EAAU,EAAI,OACxB,OAAQK,IACJO,IAjCL,CAkCC,IAAKtB,GACL,OAAQiB,GACR,MAAOC,IAENC,EACGC,GACEA,GAAiB,CAAE,KAAAc,GAAM,WAAA3B,CAAW,CAAC,EACrC2B,GACF,KACJ3E,EAAA,cAAC,OAAI,UAAWiB,EAAO,QAAS,iBAAe,WAC5C6B,GAAA,KAAAA,EAAUqB,GACXnE,EAAA,cAAC,OAAI,UAAWiB,EAAO,YAAa,iBAAe,WAChDQ,CACH,CACF,CACF,CAEJ,CAEAc,GAAU,YAAc,WAEjB,IAAMqC,EAGTtE,GAAWiC,EAAS,EKjNxB,OAAO3B,MAAY,yBACnB,OAAS,OAAAD,MAAW,UAEb,IAAMkE,GAAqB,KACzB,CACL,KAAM,CAAC,CAAE,KAAAC,CAAK,IACZnE,EAAI,CACF,QAAS,cACT,MAAO,OACP,aAAcC,EAAO,mBACrB,SAAU,sBAAsBA,EAAO,eAAe,KACtD,OACEkE,IAAS,QACL,sBAAsBlE,EAAO,eAAe,KAC5C,sBAAsBA,EAAO,eAAe,KAClD,QAAS,EACT,UAAW,QACb,CAAC,EACH,MAAOD,EAAI,CACT,OAAQ,MACV,CAAC,EACD,SAAUA,EAAI,CACZ,OAAQ,aAAaC,EAAO,OAAO,GACnC,aAAcA,EAAO,mBACrB,QAASA,EAAO,QAClB,CAAC,CACH,GNDK,IAAMmE,GAAavC,GAcI,CAdJ,IAAAE,EAAAF,EACxB,SAAAL,EACA,UAAAS,EACA,KAAAX,EAAO,KACP,WAAAjB,EACA,KAAA8D,EAAO,UACP,IAAAE,EACA,OAAAC,EACA,MAAAtB,EACA,KAAAzB,EACA,eAAA0B,EAAiB,GACjB,UAAAE,EACA,OAAAJ,EAAS,kBArCX,EAyB0BhB,EAarBqB,EAAAC,EAbqBtB,EAarB,CAZH,UACA,YACA,OACA,aACA,OACA,MACA,SACA,QACA,OACA,iBACA,YACA,WAGA,IAAMzB,EAAS4D,GAAmB,EAC5BxC,EAAQ4C,EAASjF,EAAA,cAACG,GAAA,CAAkB,aAAc8E,EAAQ,EAAK,KAC/DnC,EACJb,GAAQI,GAASF,EACfnC,EAAA,cAAC+B,EAAA,CAAkB,KAAME,EAAM,MAAOI,EAAO,QAASF,EAAS,EAC7D,KAEN,OAAI2B,EAEA9D,EAAA,cAACK,GAAS,UAAT,CACC,UAAWY,EAAO,SAClB,SAAU6D,IAAS,UAAY,QAAU,QACzC,UAAWA,IAAS,UAAY,WAAa,SAE7C9E,EAAA,cAACK,GAAS,MAAT,CAAe,MAAM,OAAO,OAAO,WAAW,CACjD,EAKFL,EAAA,cAAC4E,EAAAlD,EAAAC,EAAA,GACKoC,GADL,CAEC,MAAO1B,EACP,UAAWpC,GAAGgB,EAAO,KAAK,CAAE,KAAA6D,CAAK,CAAC,EAAGlC,CAAS,EAC9C,OAAQE,EACR,WAAY9B,EACZ,MAAO2C,EACP,eAAgBC,EAChB,OAAQF,IAER1D,EAAA,cAACE,GAAA,CAAK,WAAW,SAAS,WAAU,GAAC,eAAe,UAClDF,EAAA,cAACI,GAAA,CACC,UAAWa,EAAO,MAClB,IAAK+D,EACL,OAAQC,EACR,MAAOtB,EACP,KAAMzB,EACR,CACF,CACF,CAEJ,EOjFA,OAAOlC,GAAS,cAAAM,OAAkB,QAClC,OAAS,MAAAL,OAAU,UACnB,OACE,QAAAC,MAIK,uBACP,OAAS,WAAAgF,OAAe,6BCRxB,OAAS,OAAAvE,OAAW,UACpB,OAAOC,MAAY,yBAGnB,IAAMuE,GAAuBC,GAAkC,CAC7D,OAAQA,EAAS,CACf,IAAK,QACH,OAAOxE,EAAO,SAChB,IAAK,OACH,MAAO,GACT,QACE,OAAOA,EAAO,QAClB,CACF,EAEayE,GAAgB,CAAC,CAAE,QAAAD,CAAQ,KAAO,CAC7C,OAAQzE,GAAI,CACV,WAAY,UACZ,QAAS,SACT,aAAcC,EAAO,QACvB,CAAC,EACD,KAAMD,GAAI,CACR,QAASwE,GAAoBC,CAAO,CACtC,CAAC,CACH,GDYA,SAASE,GACP9C,EAUAC,EACA,CAXA,IAAAC,EAAAF,EACE,SAAAL,EACA,MAAAE,EACA,KAAAJ,EACA,QAAAmD,EAAU,UACV,MAAAzB,EACA,UAAAf,EACA,OAAAc,EAAS,YA5Cb,EAqCEhB,EAQKqB,EAAAC,EARLtB,EAQK,CAPH,UACA,QACA,OACA,UACA,QACA,YACA,WAKF,IAAMzB,EAASoE,GAAc,CAAE,QAAAD,CAAQ,CAAC,EAClCtE,EAAY,GAAQ6C,GAAS1B,GAAQI,GAASF,GAEpD,OACEnC,EAAA,cAAC4E,EAAAlD,EAAAC,EAAA,CACC,UAAW1B,GAAGgB,EAAO,KAAM2B,CAAS,GAChCmB,GAFL,CAGC,OAAQL,EACR,OACE5C,GACEd,EAAA,cAACE,EAAA,CAAK,WAAW,SAAS,UAAWD,GAAGgB,EAAO,MAAM,GAClD0C,GACC3D,EAAA,cAACE,EAAA,CAAK,GAAG,SAAS,SAAU,GAC1BF,EAAA,cAACkF,GAAA,CAAQ,aAAa,QAAQvB,CAAM,CACtC,EAED1B,GACCjC,EAAA,cAACE,EAAA,CAAK,WAAW,SAAS,WAAW,aAClC+B,CACH,EAEDI,GACCrC,EAAA,cAACE,EAAA,CAAK,WAAW,SAAS,WAAW,aAClCmC,CACH,EAEDF,GAAWnC,EAAA,cAACuB,EAAA,KAAaY,CAAQ,CACpC,EAGJ,IAAKM,GACP,CAEJ,CAEA6C,GAAM,YAAc,OAEb,IAAMC,GAGTjF,GAAWgF,EAAK,EEzFpB,OAAOtF,GAAS,cAAAM,OAAkB,QAClC,OAAOkF,OAAc,WACrB,OAAS,MAAAvF,OAAU,UACnB,OACE,QAAAC,OAIK,uBACP,OAAS,qBAAAC,OAAyB,wBAClC,OACE,cAAAsF,GACA,aAAAC,OAEK,6BCdP,OAAS,OAAA/E,MAAW,UACpB,OAAOC,MAAY,yBAIZ,IAAM+E,GAAqB,KACzB,CACL,cAAehF,EAAI,CACjB,uBAAwB,EACxB,wBAAyB,EACzB,oBAAqB,EACrB,qBAAsBC,EAAO,kBAC/B,CAAC,EACD,QAAUkE,GACRnE,EAAI,CACF,WAAY,UACZ,UAAWmE,IAAS,QAAUlE,EAAO,UAAYA,EAAO,SACxD,aAAckE,IAAS,QAAU,aAAalE,EAAO,SAAS,IAAM,CACtE,CAAC,EACH,KAAMD,EAAI,CACR,QAAS,EACT,6BAA8B,CAC5B,cAAeC,EAAO,SACtB,YAAaA,EAAO,SACpB,aAAcA,EAAO,QACvB,CACF,CAAC,EACD,OAAQD,EAAI,CACV,kBAAmB,EACnB,kBAAmBC,EAAO,QAC1B,kBAAmB,QACnB,UAAW,OACX,cAAeA,EAAO,UACtB,YAAaA,EAAO,SACpB,aAAcA,EAAO,SACvB,CAAC,EACD,UAAYkE,GACVnE,EAAIgB,EAAA,CACF,OAAQ,SAASf,EAAO,QAAQ,GAChC,QAAS,EACT,SAAU,SACV,SAAU,WACV,IAAK,CACH,MAAO,OACP,OAAQ,OACR,UAAW,QACX,SAAU,WACV,OAAQ,CACV,GACIkE,IAAS,QACT,CACE,OAAQ,OACR,MAAO,MACT,EACA,CACE,OAAQ,OACR,MAAO,MACT,EACL,CACL,GDvCF,IAAMc,GAAyB,UAM/B,SAASC,GAAe,CACtB,MAAAlC,EACA,SAAAmC,CACF,EAGG,CACD,GAAI,CAACnC,EACH,OAAO,KAGT,IAAMoC,EAAiBP,GAAS7B,EAAO,IAAK,CAAC,CAAC,EAE9C,OACE3D,EAAA,cAACyF,GAAA,CACC,MAAO9B,EAAM,OAAS,IAAMA,EAAQ,GACpC,OAAO,QACP,GAAImC,EACJ,aAAa,OACb,YAAW,IAEVC,CACH,CAEJ,CAEAF,GAAe,YAAc,iBAE7B,SAASG,GAAqB,CAC5B,YAAAC,EACA,KAAAnB,CACF,EAGG,CACD,GAAI,CAACmB,GAAenB,IAAS,QAC3B,OAAO,KAGT,IAAMoB,EAAuBV,GAASS,EAAa,GAAI,CAAC,CAAC,EAEzD,OACEjG,EAAA,cAAC0F,GAAA,CAAU,aAAa,OAAO,YAAW,IACvCQ,CACH,CAEJ,CAEAF,GAAqB,YAAc,uBAEnC,SAASG,GAGP3D,EAgBAC,EACA,CAjBA,IAAAC,EAAAF,EACE,SAAAL,EACA,SAAAV,EACA,UAAAmB,EACA,IAAAoC,EACA,OAAAC,EACA,iBAAAmB,EACA,YAAAH,EACA,eAAArC,EAAiB,GACjB,MAAAD,EACA,SAAAmC,EAAW,KACX,KAAAhB,EACA,OAAApB,EAAS,mBACT,YAAA2C,CA5FJ,EA+EE3D,EAcKqB,EAAAC,EAdLtB,EAcK,CAbH,UACA,WACA,YACA,MACA,SACA,mBACA,cACA,iBACA,QACA,WACA,OACA,SACA,gBAKF,IAAMzB,EAAS0E,GAAmB,EAC5BtD,EAAQ4C,EAASjF,EAAA,cAACG,GAAA,CAAkB,aAAc8E,EAAQ,EAAK,KAErE,OACEjF,EAAA,cAAC4E,EAAAlD,EAAAC,EAAA,CACC,GAAIiE,IACA7B,GAFL,CAGC,QAAS5B,EACT,MAAOE,EACP,UAAWpC,GAAGgB,EAAO,KAAM2B,CAAS,EACpC,eAAgBgB,EAChB,IAAKnB,EACL,KAAM4D,EACN,OAAQ3C,IAER1D,EAAA,cAACE,GAAA,CACC,WAAW,SACX,UAAWe,EAAO,QAAQ6D,CAAI,EAC9B,cAAc,OAEd9E,EAAA,cAACE,GAAA,CAAK,cAAc,SAAS,SAAU,EAAG,IAAI,YAC5CF,EAAA,cAAC6F,GAAA,CAAe,MAAOlC,EAAO,SAAUmC,EAAU,EAClD9F,EAAA,cAACgG,GAAA,CAAqB,KAAMlB,EAAM,YAAamB,EAAa,EAC3DxE,CACH,EAEC2E,GAAoBtB,IAAS,SAC5B9E,EAAA,cAAC,UAAO,UAAWiB,EAAO,UAAU6D,CAAI,GAAIsB,CAAiB,CAEjE,CACF,CAEJ,CAEAD,GAAW,YAAc,YAElB,IAAMG,GAGThG,GAAW6F,EAAU,EExIzB,OAAOnG,MAAW,QAClB,OAAS,MAAAC,OAAU,UACnB,OAAS,WAAAsG,OAAe,0BACxB,OAAS,QAAArF,OAAY,6BACrB,OAAS,YAAAb,OAAgB,2BCJzB,OAAS,OAAAM,MAAW,UACpB,OAAOC,MAAY,yBACnB,OAAS,yBAAA4F,OAA6B,uBAI/B,IAAMC,GAA2B,KAC/B,CACL,QAAS9F,EAAI,CACX,QAAS,OACT,QAAS,EACT,WAAYC,EAAO,UACnB,UAAW,MACb,CAAC,EACD,KAAM,CAAC,CAAE,OAAAqE,CAAO,IAAkD,CAChE,IAAMyB,EAAeF,GAAsB,CAAE,OAAAvB,CAAO,CAAC,EAErD,OAAOtE,EAAI,CACT,uBAAwB,EACxB,oBAAqB,EACrB,QAAS,cACT,MAAO,OACP,cAAe,SACf,cAAe,EACf,WAAY,EACZ,YAAaC,EAAO,SACpB,aAAcA,EAAO,WACrB,6BAA8B,CAC5B,QAAS,cACT,cAAe,aACjB,EACA,YAAa,CACX,gBAAiB8F,EAAa,MAC9B,OAAQ,EACR,QAAS,KACT,QAAS,QACT,KAAM,EACN,SAAU,WACV,IAAK,EACL,MAAO9F,EAAO,UAChB,CACF,CAAC,CACH,EACA,SAAUD,EAAI,CACZ,QAAS,cACT,OAAQ,aAAaC,EAAO,OAAO,GACnC,qBAAsBA,EAAO,mBAC7B,wBAAyBA,EAAO,mBAChC,QAASA,EAAO,SAClB,CAAC,CACH,GD/BK,IAAM+F,GAAmBnE,GASI,CATJ,IAAAE,EAAAF,EAC9B,SAAAL,EACA,UAAAS,EACA,SAAAnB,EACA,OAAAwD,EACA,MAAAtB,EACA,UAAAG,EACA,OAAAJ,EAAS,yBA1BX,EAmBgChB,EAQ3BqB,EAAAC,EAR2BtB,EAQ3B,CAPH,UACA,YACA,WACA,SACA,QACA,YACA,WAGA,IAAMzB,EAASwF,GAAyB,EAClC3D,EACJ9C,EAAA,cAACuB,EAAA,CAAY,YAAa,CAAE,UAAWN,EAAO,OAAQ,GACnDkB,CACH,EAGF,OAAI2B,EAEA9D,EAAA,cAACK,GAAS,UAAT,CACC,UAAWY,EAAO,SAClB,UAAU,UACV,SAAS,QAETjB,EAAA,cAACK,GAAS,SAAT,CAAkB,cAAe,EAAG,CACvC,EAKFL,EAAA,cAACuG,GAAA,CAAQ,UAAU,SAAS,QAAS5C,GACnC3D,EAAA,cAAC4E,EAAAlD,EAAAC,EAAA,GACKoC,GADL,CAEC,UAAW9D,GAAGgB,EAAO,KAAK,CAAE,OAAAgE,CAAO,CAAC,EAAGrC,CAAS,EAChD,OAAQE,EACR,OAAQY,IAEPjC,GAAYzB,EAAA,cAACkB,GAAA,KAAMyC,CAAM,CAC5B,CACF,CAEJ","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, 'badge' | '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 ...otherProps\n}: AssetCardInternalProps) => {\n const styles = getAssetCardStyles();\n const badge = status ? <EntityStatusBadge entityStatus={status} /> : 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 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 ? (\n <DefaultCardHeader\n type={type}\n icon={icon}\n badge={badge}\n actions={actions}\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' | 'icon' | 'badge' | 'actions' | 'actionsButtonProps'\n >,\n) => {\n const { icon, type, actions, actionsButtonProps, badge } = props;\n const styles = getHeaderStyles();\n return (\n <Flex\n flexWrap=\"wrap\"\n className={cx(styles.header, actions && styles.headerWithActions)}\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 {actions && actions.length > 0 && (\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 </Flex>\n );\n};\n\nDefaultCardHeader.displayName = 'DefaultCardHeader';\n","import React from 'react';\nimport { IconButton, type ButtonProps } from '@contentful/f36-button';\nimport { MoreHorizontalIcon } 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={<MoreHorizontalIcon />}\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 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 ...otherProps\n }: EntryCardProps<E>,\n forwardedRef: React.Ref<any>,\n) {\n const styles = getEntryCardStyles();\n const badge = status ? <EntityStatusBadge entityStatus={status} /> : null;\n\n return (\n <BaseCard\n as={ENTRY_CARD_DEFAULT_TAG}\n {...otherProps}\n actions={actions}\n badge={badge}\n className={cx(styles.root, className)}\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"]}
package/dist/index.js CHANGED
@@ -12,21 +12,21 @@ var f36Typography = require('@contentful/f36-typography');
12
12
  var f36Button = require('@contentful/f36-button');
13
13
  var f36Icons = require('@contentful/f36-icons');
14
14
  var f36Menu = require('@contentful/f36-menu');
15
- var Pr = require('truncate');
15
+ var Ar = require('truncate');
16
16
  var f36Tooltip = require('@contentful/f36-tooltip');
17
17
 
18
18
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
19
19
 
20
20
  var B__default = /*#__PURE__*/_interopDefault(B);
21
21
  var n__default = /*#__PURE__*/_interopDefault(n);
22
- var Pr__default = /*#__PURE__*/_interopDefault(Pr);
22
+ var Ar__default = /*#__PURE__*/_interopDefault(Ar);
23
23
 
24
- var jr=Object.defineProperty,Yr=Object.defineProperties;var Kr=Object.getOwnPropertyDescriptors;var $=Object.getOwnPropertySymbols;var ir=Object.prototype.hasOwnProperty,dr=Object.prototype.propertyIsEnumerable;var sr=(r,e,t)=>e in r?jr(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,d=(r,e)=>{for(var t in e||(e={}))ir.call(e,t)&&sr(r,t,e[t]);if($)for(var t of $(e))dr.call(e,t)&&sr(r,t,e[t]);return r},f=(r,e)=>Yr(r,Kr(e));var h=(r,e)=>{var t={};for(var o in r)ir.call(r,o)&&e.indexOf(o)<0&&(t[o]=r[o]);if(r!=null&&$)for(var o of $(r))e.indexOf(o)<0&&dr.call(r,o)&&(t[o]=r[o]);return t};var pr=()=>({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 mr=()=>({root:emotion.css({minHeight:"auto",padding:n__default.default.spacing2Xs,marginLeft:n__default.default.spacingXs})});var R=({buttonProps:r,children:e})=>{let t=mr();return B__default.default.createElement(f36Menu.Menu,null,B__default.default.createElement(f36Menu.Menu.Trigger,null,B__default.default.createElement(f36Button.IconButton,f(d({"aria-label":"Actions",icon:B__default.default.createElement(f36Icons.MoreHorizontalIcon,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 ee=()=>({header:emotion.css({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:0,paddingRight:n__default.default.spacingXs,paddingTop:0})}),j=r=>{r.preventDefault(),r.stopPropagation();},X=r=>{let{icon:e,type:t,actions:o,actionsButtonProps:a,badge:p}=r,l=ee();return B__default.default.createElement(f36Core.Flex,{className:emotion.cx(l.header,o&&l.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",marginLeft:"spacingXs"},e),p&&B__default.default.createElement(f36Core.Flex,{alignItems:"center",marginLeft:"spacingXs"},p),o&&o.length>0&&B__default.default.createElement(f36Core.Flex,{onClick:j,alignItems:"center"},B__default.default.createElement(R,{buttonProps:a},o)))};X.displayName="DefaultCardHeader";var ie="article";function cr(Te,vr){var tr=Te,{actions:r,actionsButtonProps:e,ariaLabel:t,badge:o,children:a,className:p,contentBodyProps:l,header:m,href:y,icon:C,isDragging:s=!1,isHovered:i,isSelected:A=!1,onBlur:w,onClick:E,onFocus:P,onKeyDown:x,onMouseEnter:b,onMouseLeave:v,target:_r,rel:wr,testId:Rr="cf-ui-base-card",title:J,type:Q,withDragHandle:Z,dragHandleRender:rr,isLoading:kr}=tr,er=h(tr,["actions","actionsButtonProps","ariaLabel","badge","children","className","contentBodyProps","header","href","icon","isDragging","isHovered","isSelected","onBlur","onClick","onFocus","onKeyDown","onMouseEnter","onMouseLeave","target","rel","testId","title","type","withDragHandle","dragHandleRender","isLoading"]);let F=pr(),[Fr,or]=B.useState(i!=null?i:!1),nr=!!(E||y||Z),Nr=!!m,Wr=Q||C||o||r?B__default.default.createElement(X,{type:Q,icon:C,badge:o,actions:r,actionsButtonProps:e}):null,Xr=B.useCallback(u=>{P&&P(u);},[P]),Gr=B.useCallback(u=>{w&&w(u);},[w]),Ur=B.useCallback(u=>{or(!0),b&&b(u);},[b]),$r=B.useCallback(u=>{or(!1),v&&v(u);},[v]),zr=E?u=>{E(u);}:void 0,Or=B.useCallback(u=>{x&&x(u);},[x]);if(kr)return B__default.default.createElement(f36Skeleton.Skeleton.Container,{className:F.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 ar=B__default.default.createElement(f36DragHandle.DragHandle,{className:F.dragHandle,isActive:s,label:"Reorder entry",onClick:j});return B__default.default.createElement(f36Core.Box,f(d({"aria-label":J||t,"aria-pressed":er.as==="button"?A?"true":"false":void 0,as:ie,className:emotion.cx(F.root({hasHeader:Nr,isHovered:Fr,isSelected:A}),p),href:y,onBlur:Gr,onClick:zr,onFocus:Xr,onMouseEnter:typeof i=="undefined"&&nr?Ur:void 0,onMouseLeave:typeof i=="undefined"&&nr?$r:void 0,onKeyDown:Or,rel:y&&(wr||"noreferrer"),role:E&&!y?"button":void 0,tabIndex:E?0:void 0,target:_r},er),{ref:vr,testId:Rr,title:J}),Z?rr?rr({drag:ar,isDragging:s}):ar:null,B__default.default.createElement("div",{className:F.wrapper,"data-card-part":"wrapper"},m!=null?m:Wr,B__default.default.createElement("div",{className:F.contentBody,"data-card-part":"content"},a)))}cr.displayName="BaseCard";var S=B.forwardRef(cr);var gr=()=>({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 ur=w=>{var E=w,{actions:r,className:e,icon:t=null,isSelected:o,size:a="default",src:p,status:l,title:m,type:y,withDragHandle:C=!1,isLoading:s,testId:i="cf-ui-asset-card"}=E,A=h(E,["actions","className","icon","isSelected","size","src","status","title","type","withDragHandle","isLoading","testId"]);let P=gr(),x=l?B__default.default.createElement(f36Badge.EntityStatusBadge,{entityStatus:l}):null,b=t||x||r?B__default.default.createElement(X,{icon:t,badge:x,actions:r}):null;return s?B__default.default.createElement(f36Skeleton.Skeleton.Container,{className:P.skeleton,svgWidth:a==="default"?"18rem":"11rem",svgHeight:a==="default"?"18.75rem":"12rem"},B__default.default.createElement(f36Skeleton.Skeleton.Image,{width:"100%",height:"18.75rem"})):B__default.default.createElement(S,f(d({},A),{badge:x,className:emotion.cx(P.root({size:a}),e),header:b,isSelected:o,title:m,withDragHandle:C,testId:i}),B__default.default.createElement(f36Core.Flex,{alignItems:"center",fullHeight:!0,justifyContent:"center"},B__default.default.createElement(f36Asset.Asset,{className:P.asset,src:p,status:l,title:m,type:y})))};var fe=r=>{switch(r){case"large":return n__default.default.spacingL;case"none":return 0;default:return n__default.default.spacingM}},Er=({padding:r})=>({header:emotion.css({gridColumn:"content",gridRow:"header",marginBottom:n__default.default.spacingM}),root:emotion.css({padding:fe(r)})});function hr(C,y){var s=C,{actions:r,badge:e,icon:t,padding:o="default",title:a,className:p,testId:l="cf-ui-card"}=s,m=h(s,["actions","badge","icon","padding","title","className","testId"]);let i=Er({padding:o}),A=!!(a||t||e||r);return B__default.default.createElement(S,f(d({className:emotion.cx(i.root,p)},m),{testId:l,header:A&&B__default.default.createElement(f36Core.Flex,{alignItems:"center",className:emotion.cx(i.header)},a&&B__default.default.createElement(f36Core.Flex,{as:"header",flexGrow:1},B__default.default.createElement(f36Typography.Heading,{marginBottom:"none"},a)),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(R,null,r)),ref:y}))}hr.displayName="Card";var br=B.forwardRef(hr);var Br=()=>({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(d({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 he="article";function Tr({title:r,titleTag:e}){if(!r)return null;let t=Pr__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)}Tr.displayName="EntryCardTitle";function Ir({description:r,size:e}){if(!r||e==="small")return null;let t=Pr__default.default(r,95,{});return B__default.default.createElement(f36Typography.Paragraph,{marginBottom:"none",isWordBreak:!0},t)}Ir.displayName="EntryCardDescription";function Sr(P,E){var x=P,{actions:r,children:e,className:t,src:o,status:a,thumbnailElement:p,description:l,withDragHandle:m=!1,title:y,titleTag:C="h2",size:s,testId:i="cf-ui-entry-card",contentType:A}=x,w=h(x,["actions","children","className","src","status","thumbnailElement","description","withDragHandle","title","titleTag","size","testId","contentType"]);let b=Br(),v=a?B__default.default.createElement(f36Badge.EntityStatusBadge,{entityStatus:a}):null;return B__default.default.createElement(S,f(d({as:he},w),{actions:r,badge:v,className:emotion.cx(b.root,t),withDragHandle:m,ref:E,type:A,testId:i}),B__default.default.createElement(f36Core.Flex,{alignItems:"center",className:b.content(s),flexDirection:"row"},B__default.default.createElement(f36Core.Flex,{flexDirection:"column",flexGrow:1,gap:"spacingS"},B__default.default.createElement(Tr,{title:y,titleTag:C}),B__default.default.createElement(Ir,{size:s,description:l}),e),p&&s!=="small"&&B__default.default.createElement("figure",{className:b.thumbnail(s)},p)))}Sr.displayName="EntryCard";var Dr=B.forwardRef(Sr);var Hr=()=>({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 Mr=y=>{var C=y,{actions:r,className:e,children:t,status:o,title:a,isLoading:p,testId:l="cf-ui-inline-entry-card"}=C,m=h(C,["actions","className","children","status","title","isLoading","testId"]);let s=Hr(),i=B__default.default.createElement(R,{buttonProps:{className:s.actions}},r);return p?B__default.default.createElement(f36Skeleton.Skeleton.Container,{className:s.skeleton,svgHeight:"1.25rem",svgWidth:"6rem"},B__default.default.createElement(f36Skeleton.Skeleton.BodyText,{numberOfLines:1})):B__default.default.createElement(f36Tooltip.Tooltip,{placement:"bottom",content:a},B__default.default.createElement(S,f(d({},m),{className:emotion.cx(s.root({status:o}),e),header:i,testId:l}),t||B__default.default.createElement(f36Typography.Text,null,a)))};
24
+ var Or=Object.defineProperty,jr=Object.defineProperties;var Yr=Object.getOwnPropertyDescriptors;var $=Object.getOwnPropertySymbols;var ir=Object.prototype.hasOwnProperty,dr=Object.prototype.propertyIsEnumerable;var sr=(r,e,t)=>e in r?Or(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t,p=(r,e)=>{for(var t in e||(e={}))ir.call(e,t)&&sr(r,t,e[t]);if($)for(var t of $(e))dr.call(e,t)&&sr(r,t,e[t]);return r},c=(r,e)=>jr(r,Yr(e));var h=(r,e)=>{var t={};for(var o in r)ir.call(r,o)&&e.indexOf(o)<0&&(t[o]=r[o]);if(r!=null&&$)for(var o of $(r))e.indexOf(o)<0&&dr.call(r,o)&&(t[o]=r[o]);return t};var pr=()=>({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 lr=()=>({root:emotion.css({minHeight:"auto",padding:n__default.default.spacing2Xs})});var R=({buttonProps:r,children:e})=>{let t=lr();return B__default.default.createElement(f36Menu.Menu,null,B__default.default.createElement(f36Menu.Menu.Trigger,null,B__default.default.createElement(f36Button.IconButton,c(p({"aria-label":"Actions",icon:B__default.default.createElement(f36Icons.MoreHorizontalIcon,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 ee=()=>({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})}),j=r=>{r.preventDefault(),r.stopPropagation();},X=r=>{let{icon:e,type:t,actions:o,actionsButtonProps:a,badge:l}=r,m=ee();return B__default.default.createElement(f36Core.Flex,{flexWrap:"wrap",className:emotion.cx(m.header,o&&m.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),l&&B__default.default.createElement(f36Core.Flex,{alignItems:"center"},l),o&&o.length>0&&B__default.default.createElement(f36Core.Flex,{onClick:j,alignItems:"center"},B__default.default.createElement(R,{buttonProps:a},o)))};X.displayName="DefaultCardHeader";var ie="article";function fr(Te,kr){var tr=Te,{actions:r,actionsButtonProps:e,ariaLabel:t,badge:o,children:a,className:l,contentBodyProps:m,header:f,href:y,icon:C,isDragging:s=!1,isHovered:d,isSelected:A=!1,onBlur:w,onClick:E,onFocus:P,onKeyDown:x,onMouseEnter:b,onMouseLeave:v,target:Lr,rel:_r,testId:wr="cf-ui-base-card",title:J,type:Q,withDragHandle:Z,dragHandleRender:rr,isLoading:Rr}=tr,er=h(tr,["actions","actionsButtonProps","ariaLabel","badge","children","className","contentBodyProps","header","href","icon","isDragging","isHovered","isSelected","onBlur","onClick","onFocus","onKeyDown","onMouseEnter","onMouseLeave","target","rel","testId","title","type","withDragHandle","dragHandleRender","isLoading"]);let F=pr(),[vr,or]=B.useState(d!=null?d:!1),nr=!!(E||y||Z),Fr=!!f,Nr=Q||C||o||r?B__default.default.createElement(X,{type:Q,icon:C,badge:o,actions:r,actionsButtonProps:e}):null,Wr=B.useCallback(u=>{P&&P(u);},[P]),Xr=B.useCallback(u=>{w&&w(u);},[w]),Gr=B.useCallback(u=>{or(!0),b&&b(u);},[b]),Ur=B.useCallback(u=>{or(!1),v&&v(u);},[v]),$r=E?u=>{E(u);}:void 0,zr=B.useCallback(u=>{x&&x(u);},[x]);if(Rr)return B__default.default.createElement(f36Skeleton.Skeleton.Container,{className:F.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 ar=B__default.default.createElement(f36DragHandle.DragHandle,{className:F.dragHandle,isActive:s,label:"Reorder entry",onClick:j});return B__default.default.createElement(f36Core.Box,c(p({"aria-label":J||t,"aria-pressed":er.as==="button"?A?"true":"false":void 0,as:ie,className:emotion.cx(F.root({hasHeader:Fr,isHovered:vr,isSelected:A}),l),href:y,onBlur:Xr,onClick:$r,onFocus:Wr,onMouseEnter:typeof d=="undefined"&&nr?Gr:void 0,onMouseLeave:typeof d=="undefined"&&nr?Ur:void 0,onKeyDown:zr,rel:y&&(_r||"noreferrer"),role:E&&!y?"button":void 0,tabIndex:E?0:void 0,target:Lr},er),{ref:kr,testId:wr,title:J}),Z?rr?rr({drag:ar,isDragging:s}):ar:null,B__default.default.createElement("div",{className:F.wrapper,"data-card-part":"wrapper"},f!=null?f:Nr,B__default.default.createElement("div",{className:F.contentBody,"data-card-part":"content"},a)))}fr.displayName="BaseCard";var S=B.forwardRef(fr);var cr=()=>({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 yr=w=>{var E=w,{actions:r,className:e,icon:t=null,isSelected:o,size:a="default",src:l,status:m,title:f,type:y,withDragHandle:C=!1,isLoading:s,testId:d="cf-ui-asset-card"}=E,A=h(E,["actions","className","icon","isSelected","size","src","status","title","type","withDragHandle","isLoading","testId"]);let P=cr(),x=m?B__default.default.createElement(f36Badge.EntityStatusBadge,{entityStatus:m}):null,b=t||x||r?B__default.default.createElement(X,{icon:t,badge:x,actions:r}):null;return s?B__default.default.createElement(f36Skeleton.Skeleton.Container,{className:P.skeleton,svgWidth:a==="default"?"18rem":"11rem",svgHeight:a==="default"?"18.75rem":"12rem"},B__default.default.createElement(f36Skeleton.Skeleton.Image,{width:"100%",height:"18.75rem"})):B__default.default.createElement(S,c(p({},A),{badge:x,className:emotion.cx(P.root({size:a}),e),header:b,isSelected:o,title:f,withDragHandle:C,testId:d}),B__default.default.createElement(f36Core.Flex,{alignItems:"center",fullHeight:!0,justifyContent:"center"},B__default.default.createElement(f36Asset.Asset,{className:P.asset,src:l,status:m,title:f,type:y})))};var fe=r=>{switch(r){case"large":return n__default.default.spacingL;case"none":return 0;default:return n__default.default.spacingM}},Cr=({padding:r})=>({header:emotion.css({gridColumn:"content",gridRow:"header",marginBottom:n__default.default.spacingM}),root:emotion.css({padding:fe(r)})});function xr(C,y){var s=C,{actions:r,badge:e,icon:t,padding:o="default",title:a,className:l,testId:m="cf-ui-card"}=s,f=h(s,["actions","badge","icon","padding","title","className","testId"]);let d=Cr({padding:o}),A=!!(a||t||e||r);return B__default.default.createElement(S,c(p({className:emotion.cx(d.root,l)},f),{testId:m,header:A&&B__default.default.createElement(f36Core.Flex,{alignItems:"center",className:emotion.cx(d.header)},a&&B__default.default.createElement(f36Core.Flex,{as:"header",flexGrow:1},B__default.default.createElement(f36Typography.Heading,{marginBottom:"none"},a)),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(R,null,r)),ref:y}))}xr.displayName="Card";var hr=B.forwardRef(xr);var br=()=>({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(p({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 he="article";function Pr({title:r,titleTag:e}){if(!r)return null;let t=Ar__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)}Pr.displayName="EntryCardTitle";function Tr({description:r,size:e}){if(!r||e==="small")return null;let t=Ar__default.default(r,95,{});return B__default.default.createElement(f36Typography.Paragraph,{marginBottom:"none",isWordBreak:!0},t)}Tr.displayName="EntryCardDescription";function Ir(P,E){var x=P,{actions:r,children:e,className:t,src:o,status:a,thumbnailElement:l,description:m,withDragHandle:f=!1,title:y,titleTag:C="h2",size:s,testId:d="cf-ui-entry-card",contentType:A}=x,w=h(x,["actions","children","className","src","status","thumbnailElement","description","withDragHandle","title","titleTag","size","testId","contentType"]);let b=br(),v=a?B__default.default.createElement(f36Badge.EntityStatusBadge,{entityStatus:a}):null;return B__default.default.createElement(S,c(p({as:he},w),{actions:r,badge:v,className:emotion.cx(b.root,t),withDragHandle:f,ref:E,type:A,testId:d}),B__default.default.createElement(f36Core.Flex,{alignItems:"center",className:b.content(s),flexDirection:"row"},B__default.default.createElement(f36Core.Flex,{flexDirection:"column",flexGrow:1,gap:"spacingS"},B__default.default.createElement(Pr,{title:y,titleTag:C}),B__default.default.createElement(Tr,{size:s,description:m}),e),l&&s!=="small"&&B__default.default.createElement("figure",{className:b.thumbnail(s)},l)))}Ir.displayName="EntryCard";var Sr=B.forwardRef(Ir);var Dr=()=>({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 Mr=y=>{var C=y,{actions:r,className:e,children:t,status:o,title:a,isLoading:l,testId:m="cf-ui-inline-entry-card"}=C,f=h(C,["actions","className","children","status","title","isLoading","testId"]);let s=Dr(),d=B__default.default.createElement(R,{buttonProps:{className:s.actions}},r);return l?B__default.default.createElement(f36Skeleton.Skeleton.Container,{className:s.skeleton,svgHeight:"1.25rem",svgWidth:"6rem"},B__default.default.createElement(f36Skeleton.Skeleton.BodyText,{numberOfLines:1})):B__default.default.createElement(f36Tooltip.Tooltip,{placement:"bottom",content:a},B__default.default.createElement(S,c(p({},f),{className:emotion.cx(s.root({status:o}),e),header:d,testId:m}),t||B__default.default.createElement(f36Typography.Text,null,a)))};
26
26
 
27
- exports.AssetCard = ur;
28
- exports.Card = br;
29
- exports.EntryCard = Dr;
27
+ exports.AssetCard = yr;
28
+ exports.Card = hr;
29
+ exports.EntryCard = Sr;
30
30
  exports.InlineEntryCard = Mr;
31
31
  //# sourceMappingURL=out.js.map
32
32
  //# 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","MoreHorizontalIcon","Menu","getCardActionsStyles","CardActions","buttonProps","children","__spreadProps","__spreadValues","getHeaderStyles","stopEvents","e","DefaultCardHeader","props","icon","type","actions","actionsButtonProps","badge","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","Heading","getCardPaddingValue","padding","getCardStyles","_Card","Card","truncate","Subheading","Paragraph","getEntryCardStyles","ENTRY_CARD_DEFAULT_TAG","EntryCardTitle","titleTag","truncatedTitle","EntryCardDescription","description","truncatedDescription","_EntryCard","thumbnailElement","contentType","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, 'badge' | '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 ...otherProps\n}: AssetCardInternalProps) => {\n const styles = getAssetCardStyles();\n const badge = status ? <EntityStatusBadge entityStatus={status} /> : 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 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 ? (\n <DefaultCardHeader\n type={type}\n icon={icon}\n badge={badge}\n actions={actions}\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 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: 0,\n paddingRight: tokens.spacingXs,\n paddingTop: 0,\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' | 'icon' | 'badge' | 'actions' | 'actionsButtonProps'\n >,\n) => {\n const { icon, type, actions, actionsButtonProps, badge } = props;\n const styles = getHeaderStyles();\n return (\n <Flex className={cx(styles.header, actions && styles.headerWithActions)}>\n <Flex flexGrow={1}>\n {type && (\n <Text fontColor=\"gray600\" isWordBreak>\n {type}\n </Text>\n )}\n </Flex>\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 && actions.length > 0 && (\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 </Flex>\n );\n};\n\nDefaultCardHeader.displayName = 'DefaultCardHeader';\n","import React from 'react';\nimport { IconButton, type ButtonProps } from '@contentful/f36-button';\nimport { MoreHorizontalIcon } 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={<MoreHorizontalIcon />}\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 marginLeft: tokens.spacingXs,\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 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 ...otherProps\n }: EntryCardProps<E>,\n forwardedRef: React.Ref<any>,\n) {\n const styles = getEntryCardStyles();\n const badge = status ? <EntityStatusBadge entityStatus={status} /> : null;\n\n return (\n <BaseCard\n as={ENTRY_CARD_DEFAULT_TAG}\n {...otherProps}\n actions={actions}\n badge={badge}\n className={cx(styles.root, className)}\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.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","MoreHorizontalIcon","Menu","getCardActionsStyles","CardActions","buttonProps","children","__spreadProps","__spreadValues","getHeaderStyles","stopEvents","e","DefaultCardHeader","props","icon","type","actions","actionsButtonProps","badge","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","Heading","getCardPaddingValue","padding","getCardStyles","_Card","Card","truncate","Subheading","Paragraph","getEntryCardStyles","ENTRY_CARD_DEFAULT_TAG","EntryCardTitle","titleTag","truncatedTitle","EntryCardDescription","description","truncatedDescription","_EntryCard","thumbnailElement","contentType","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, 'badge' | '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 ...otherProps\n}: AssetCardInternalProps) => {\n const styles = getAssetCardStyles();\n const badge = status ? <EntityStatusBadge entityStatus={status} /> : 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 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 ? (\n <DefaultCardHeader\n type={type}\n icon={icon}\n badge={badge}\n actions={actions}\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' | 'icon' | 'badge' | 'actions' | 'actionsButtonProps'\n >,\n) => {\n const { icon, type, actions, actionsButtonProps, badge } = props;\n const styles = getHeaderStyles();\n return (\n <Flex\n flexWrap=\"wrap\"\n className={cx(styles.header, actions && styles.headerWithActions)}\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 {actions && actions.length > 0 && (\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 </Flex>\n );\n};\n\nDefaultCardHeader.displayName = 'DefaultCardHeader';\n","import React from 'react';\nimport { IconButton, type ButtonProps } from '@contentful/f36-button';\nimport { MoreHorizontalIcon } 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={<MoreHorizontalIcon />}\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 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 ...otherProps\n }: EntryCardProps<E>,\n forwardedRef: React.Ref<any>,\n) {\n const styles = getEntryCardStyles();\n const badge = status ? <EntityStatusBadge entityStatus={status} /> : null;\n\n return (\n <BaseCard\n as={ENTRY_CARD_DEFAULT_TAG}\n {...otherProps}\n actions={actions}\n badge={badge}\n className={cx(styles.root, className)}\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"]}
package/package.json CHANGED
@@ -1,23 +1,23 @@
1
1
  {
2
2
  "name": "@contentful/f36-card",
3
- "version": "4.56.1",
3
+ "version": "4.57.0",
4
4
  "description": "Forma 36: Card components",
5
5
  "scripts": {
6
6
  "build": "tsup"
7
7
  },
8
8
  "dependencies": {
9
- "@contentful/f36-asset": "^4.56.1",
10
- "@contentful/f36-badge": "^4.56.1",
11
- "@contentful/f36-button": "^4.56.1",
12
- "@contentful/f36-core": "^4.56.1",
13
- "@contentful/f36-drag-handle": "^4.56.1",
14
- "@contentful/f36-icon": "^4.56.1",
9
+ "@contentful/f36-asset": "^4.57.0",
10
+ "@contentful/f36-badge": "^4.57.0",
11
+ "@contentful/f36-button": "^4.57.0",
12
+ "@contentful/f36-core": "^4.57.0",
13
+ "@contentful/f36-drag-handle": "^4.57.0",
14
+ "@contentful/f36-icon": "^4.57.0",
15
15
  "@contentful/f36-icons": "^4.27.0",
16
- "@contentful/f36-menu": "^4.56.1",
17
- "@contentful/f36-skeleton": "^4.56.1",
18
- "@contentful/f36-tokens": "^4.0.2",
19
- "@contentful/f36-tooltip": "^4.56.1",
20
- "@contentful/f36-typography": "^4.56.1",
16
+ "@contentful/f36-menu": "^4.57.0",
17
+ "@contentful/f36-skeleton": "^4.57.0",
18
+ "@contentful/f36-tokens": "^4.0.3",
19
+ "@contentful/f36-tooltip": "^4.57.0",
20
+ "@contentful/f36-typography": "^4.57.0",
21
21
  "emotion": "^10.0.17",
22
22
  "truncate": "^3.0.0"
23
23
  },
@@ -40,7 +40,7 @@
40
40
  "url": "https://github.com/contentful/forma-36"
41
41
  },
42
42
  "publishConfig": {
43
- "access": "public",
44
- "registry": "https://npm.pkg.github.com/"
43
+ "registry": "https://npm.pkg.github.com/",
44
+ "access": "public"
45
45
  }
46
46
  }