retro-react
Version:
A React component library for building retro-style websites
2 lines (1 loc) • 1.01 kB
JavaScript
;var e=require("../../_virtual/_tslib.js"),s=require("react"),r=require("../../node_modules/@theme-ui/core/jsx-runtime/dist/theme-ui-core-jsx-runtime.esm.js"),i=require("../../utils/classNames.js"),a=require("../../constants/commonClassNames.js"),t=require("./Badge.styled.js");const l=s.forwardRef(((l,o)=>{var{id:n,className:d,color:c="primary",size:u="medium",badgeContent:m,pulse:j=!1,showZero:g=!1,children:p,sx:x}=l,h=e.__rest(l,["id","className","color","size","badgeContent","pulse","showZero","children","sx"]);const b="number"==typeof m?g||m>0:Boolean(m);return p&&(p=s.Children.map(p,(e=>s.isValidElement(e)?s.cloneElement(e,{sx:Object.assign(Object.assign({},e.props.sx),{margin:1})}):e))),r.jsxs("div",Object.assign({style:{position:"relative",display:"inline-flex"}},{children:[p,b?r.jsx(t.Badge,Object.assign({id:n,sx:x,ref:o,$color:c,$pulsate:j,$size:u,className:i.classNames("badge-root",d,a.default),"aria-hidden":"true"},h,{children:m}),void 0):null]}),void 0)}));exports.Badge=l;