@ebay/ui-core-react
Version:
Skin components build off React
2 lines (1 loc) • 1.34 kB
JavaScript
;const x=require("./tslib.es6-C4EgNkz1.js"),s=require("react"),p=require("classnames"),$=require("./forwardRef-DBQKIlPy.js");require("./array.polyfill.flat-5BAolFdk.js");const k=require("./random-id-DlJj_RWH.js"),C=a=>{var{name:n,className:e,noSkinClasses:l=!1,a11yText:t,a11yVariant:d,forwardedRef:f,__type:u="icon"}=a,m=x.__rest(a,["name","className","noSkinClasses","a11yText","a11yVariant","forwardedRef","__type"]);const[b,y]=s.useState("");s.useEffect(()=>{y(k.randomId())},[]);const o=d==="label",i=t&&`icon-title-${b}`,N=t?{"aria-labelledby":o?void 0:i,"aria-label":o?t:void 0,role:"img"}:{"aria-hidden":!0},r=c(n),g=["icon",`icon--${E(r)||r}`,h(r)].filter(Boolean).join(" "),w=p(e,{[g]:!l}),I=u==="icon"?"icon-":"";return s.createElement("svg",Object.assign({},m,{className:w,xmlns:"http://www.w3.org/2000/svg",focusable:!1,ref:f},N),t&&!o&&s.createElement("title",{id:i},t),s.createElement("use",{xlinkHref:`#${I}${r}`}))};function E(a){const n=a.split("-"),e=n[n.length-1];return e==="colored"?n[n.length-2]:isNaN(Number(e))?"":e}function h(a){const n=a.split("-"),e=n.indexOf("filled");return e===-1?"":`icon--${n.slice(0,e+1).join("-")}`}function c(a){return a.replace(/([0-9]+)/g,(n,e)=>`-${e}`).replace(/([A-Z])/g,(n,e)=>`-${e.toLowerCase()}`)}const q=$.withForwardRef(C);exports.EbayIcon=q;exports.kebabCased=c;