@stencil/react-output-target
Version:
React output target for @stencil/core components.
3 lines (2 loc) • 932 B
JavaScript
;const h=require("@lit/react"),n=require("react"),p=s=>s?s.split(/\s+/).filter(Boolean):[],w=(s,r,l)=>{const o=new Set(p(r)),u=new Set(p(l)),c=[];for(const e of s)o.has(e)?(c.push(e),o.delete(e)):u.has(e)||c.push(e);for(const e of o)c.push(e);return c.join(" ")},g=typeof window<"u"?n.useLayoutEffect:n.useEffect,v=({defineCustomElement:s,tagName:r,transformTag:l,...o})=>{typeof s<"u"&&s();const u=l?l(r):r,c=h.createComponent({...o,tagName:u}),e=n.forwardRef((N,a)=>{const{className:C,class:d,...y}=N,i=C??d??"",m=n.useRef(null),f=n.useRef("");g(()=>{const t=m.current;t===null||i===f.current||(t.className=w(Array.from(t.classList),i,f.current),f.current=i)});const R=n.useCallback(t=>{m.current=t,typeof a=="function"?a(t):a!=null&&(a.current=t)},[a]);return n.createElement(c,{...y,ref:R})});return e.displayName=o.displayName??u,e};exports.createComponent=v;
//# sourceMappingURL=create-component-CKOVldUI.cjs.map