UNPKG

ivt

Version:

Ivt Components Library

3 lines (2 loc) 2.54 kB
import*as e from"react";import{c as r}from"../chunks/index-Dr5ObK3L.mjs";import{u as a}from"../chunks/index-DSUHCtxx.mjs";import{u as t}from"../chunks/index-0-u0cdz8.mjs";import{P as n}from"../chunks/index-DiPp8h7C.mjs";import{r as s}from"../chunks/index-CmQIO6_E.mjs";import{jsx as o}from"react/jsx-runtime";import{c as i}from"../chunks/utils-C-nkZ_Ir.mjs";import"react-dom";import"@radix-ui/react-slot";import"../chunks/bundle-mjs-DHbvkKp4.mjs";var l=s();function u(){return()=>{}}var c="Avatar",[m,d]=r(c),[f,p]=m(c),v=e.forwardRef((r,a)=>{const{__scopeAvatar:t,...s}=r,[i,l]=e.useState("idle");return o(f,{scope:t,imageLoadingStatus:i,onImageLoadingStatusChange:l,children:o(n.span,{...s,ref:a})})});v.displayName=c;var g="AvatarImage",h=e.forwardRef((r,s)=>{const{__scopeAvatar:i,src:c,onLoadingStatusChange:m=()=>{},...d}=r,f=p(g,i),v=function(r,{referrerPolicy:a,crossOrigin:n}){const s=l.useSyncExternalStore(u,()=>!0,()=>!1),o=e.useRef(null),i=s?(o.current||(o.current=new window.Image),o.current):null,[c,m]=e.useState(()=>j(i,r));return t(()=>{m(j(i,r))},[i,r]),t(()=>{const e=e=>()=>{m(e)};if(!i)return;const r=e("loaded"),t=e("error");return i.addEventListener("load",r),i.addEventListener("error",t),a&&(i.referrerPolicy=a),"string"==typeof n&&(i.crossOrigin=n),()=>{i.removeEventListener("load",r),i.removeEventListener("error",t)}},[i,n,a]),c}(c,d),h=a(e=>{m(e),f.onImageLoadingStatusChange(e)});return t(()=>{"idle"!==v&&h(v)},[v,h]),"loaded"===v?o(n.img,{...d,ref:s,src:c}):null});h.displayName=g;var w="AvatarFallback",x=e.forwardRef((r,a)=>{const{__scopeAvatar:t,delayMs:s,...i}=r,l=p(w,t),[u,c]=e.useState(void 0===s);return e.useEffect(()=>{if(void 0!==s){const e=window.setTimeout(()=>c(!0),s);return()=>window.clearTimeout(e)}},[s]),u&&"loaded"!==l.imageLoadingStatus?o(n.span,{...i,ref:a}):null});function j(e,r){return e?r?(e.src!==r&&(e.src=r),e.complete&&e.naturalWidth>0?"loaded":"loading"):"error":"idle"}x.displayName=w;var k=v,S=h,y=x;function E({className:r,...a}){return e.createElement(k,{"data-slot":"avatar",className:i("relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",r),...a})}function L({className:r,...a}){return e.createElement(S,{"data-slot":"avatar-image",className:i("aspect-square h-full w-full",r),...a})}function N({className:r,...a}){return e.createElement(y,{"data-slot":"avatar-fallback",className:i("bg-muted flex h-full w-full items-center justify-center rounded-full",r),...a})}export{E as Avatar,N as AvatarFallback,L as AvatarImage}; //# sourceMappingURL=index.mjs.map