{"version":3,"sources":["jsdelivr-header.js","/npm/@radix-ui/react-avatar@1.2.0/src/index.ts","/npm/@radix-ui/react-avatar@1.2.0/src/avatar.tsx"],"names":[],"mappings":"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","file":"/npm/@radix-ui/react-avatar@1.2.0/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.48.0.\n * Original file: /npm/@radix-ui/react-avatar@1.2.0/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use client';\nexport {\n  createAvatarScope,\n  //\n  Avatar,\n  AvatarImage,\n  AvatarFallback,\n  //\n  Root,\n  Image,\n  Fallback,\n} from './avatar';\nexport type { AvatarProps, AvatarImageProps, AvatarFallbackProps } from './avatar';\n","import * as React from 'react';\nimport { createContextScope } from '@radix-ui/react-context';\nimport { useCallbackRef } from '@radix-ui/react-use-callback-ref';\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport { Primitive } from '@radix-ui/react-primitive';\n\nimport type { Scope } from '@radix-ui/react-context';\n\n/* -------------------------------------------------------------------------------------------------\n * Avatar\n * -----------------------------------------------------------------------------------------------*/\n\nconst AVATAR_NAME = 'Avatar';\n\ntype ScopedProps<P> = P & { __scopeAvatar?: Scope };\nconst [createAvatarContext, createAvatarScope] = createContextScope(AVATAR_NAME);\n\ntype ImageLoadingStatus = 'idle' | 'loading' | 'loaded' | 'error';\n\ntype AvatarContextValue = {\n  imageLoadingStatus: ImageLoadingStatus;\n  setImageLoadingStatus: React.Dispatch<React.SetStateAction<ImageLoadingStatus>>;\n  imageCount: number;\n  setImageCount: React.Dispatch<React.SetStateAction<number>>;\n};\n\nconst STATIC_IMAGE_COUNT_STATE: [number, React.Dispatch<React.SetStateAction<number>>] = [\n  0,\n  () => void 0,\n];\n\nconst [AvatarProvider, useAvatarContext] = createAvatarContext<AvatarContextValue>(AVATAR_NAME);\n\ntype AvatarElement = React.ComponentRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = React.ComponentPropsWithoutRef<typeof Primitive.span>;\ninterface AvatarProps extends PrimitiveSpanProps {}\n\nconst Avatar = React.forwardRef<AvatarElement, AvatarProps>(\n  (props: ScopedProps<AvatarProps>, forwardedRef) => {\n    const { __scopeAvatar, ...avatarProps } = props;\n    const [imageLoadingStatus, setImageLoadingStatus] = React.useState<ImageLoadingStatus>('idle');\n    const [imageCount, setImageCount] = useImageCount();\n\n    return (\n      <AvatarProvider\n        scope={__scopeAvatar}\n        imageLoadingStatus={imageLoadingStatus}\n        setImageLoadingStatus={setImageLoadingStatus}\n        imageCount={imageCount}\n        setImageCount={setImageCount}\n      >\n        <Primitive.span {...avatarProps} ref={forwardedRef} />\n      </AvatarProvider>\n    );\n  },\n);\n\nAvatar.displayName = AVATAR_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AvatarImage\n * -----------------------------------------------------------------------------------------------*/\n\nconst IMAGE_NAME = 'AvatarImage';\n\ntype AvatarImageElement = React.ComponentRef<typeof Primitive.img>;\ntype PrimitiveImageProps = React.ComponentPropsWithoutRef<typeof Primitive.img>;\ninterface AvatarImageProps extends PrimitiveImageProps {\n  onLoadingStatusChange?: (status: ImageLoadingStatus) => void;\n}\n\nconst AvatarImage = React.forwardRef<AvatarImageElement, AvatarImageProps>(\n  (props: ScopedProps<AvatarImageProps>, forwardedRef) => {\n    const { __scopeAvatar, src, onLoadingStatusChange, ...imageProps } = props;\n    const context = useAvatarContext(IMAGE_NAME, __scopeAvatar);\n    useUpdateImageCount(context.setImageCount);\n\n    const imageLoadingStatus = useImageLoadingStatus(src, {\n      referrerPolicy: imageProps.referrerPolicy,\n      crossOrigin: imageProps.crossOrigin,\n      loadingStatus: context.imageLoadingStatus,\n      setLoadingStatus: context.setImageLoadingStatus,\n    });\n    const handleLoadingStatusChange = useCallbackRef((status: ImageLoadingStatus) => {\n      onLoadingStatusChange?.(status);\n    });\n\n    const loadingStatusRef = React.useRef<ImageLoadingStatus>(imageLoadingStatus);\n\n    useLayoutEffect(() => {\n      const previousLoadingStatus = loadingStatusRef.current;\n      loadingStatusRef.current = imageLoadingStatus;\n\n      if (imageLoadingStatus !== previousLoadingStatus) {\n        handleLoadingStatusChange(imageLoadingStatus);\n      }\n    }, [imageLoadingStatus, handleLoadingStatusChange]);\n\n    return imageLoadingStatus === 'loaded' ? (\n      <Primitive.img {...imageProps} ref={forwardedRef} src={src} />\n    ) : null;\n  },\n);\n\nAvatarImage.displayName = IMAGE_NAME;\n\n/* -------------------------------------------------------------------------------------------------\n * AvatarFallback\n * -----------------------------------------------------------------------------------------------*/\n\nconst FALLBACK_NAME = 'AvatarFallback';\n\ntype AvatarFallbackElement = React.ComponentRef<typeof Primitive.span>;\ninterface AvatarFallbackProps extends PrimitiveSpanProps {\n  delayMs?: number;\n}\n\nconst AvatarFallback = React.forwardRef<AvatarFallbackElement, AvatarFallbackProps>(\n  (props: ScopedProps<AvatarFallbackProps>, forwardedRef) => {\n    const { __scopeAvatar, delayMs, ...fallbackProps } = props;\n    const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar);\n    const [canRender, setCanRender] = React.useState(delayMs === undefined);\n\n    React.useEffect(() => {\n      if (delayMs !== undefined) {\n        const timerId = window.setTimeout(() => setCanRender(true), delayMs);\n        return () => window.clearTimeout(timerId);\n      }\n    }, [delayMs]);\n\n    return canRender && context.imageLoadingStatus !== 'loaded' ? (\n      <Primitive.span {...fallbackProps} ref={forwardedRef} />\n    ) : null;\n  },\n);\n\nAvatarFallback.displayName = FALLBACK_NAME;\n\n/* -----------------------------------------------------------------------------------------------*/\n\nfunction useImageLoadingStatus(\n  src: string | undefined,\n  {\n    loadingStatus,\n    setLoadingStatus,\n    referrerPolicy,\n    crossOrigin,\n  }: {\n    referrerPolicy: React.HTMLAttributeReferrerPolicy | undefined;\n    crossOrigin: string | undefined;\n    loadingStatus: ImageLoadingStatus;\n    setLoadingStatus: React.Dispatch<React.SetStateAction<ImageLoadingStatus>>;\n  },\n) {\n  useLayoutEffect(() => {\n    if (!src) {\n      setLoadingStatus('error');\n      return;\n    }\n\n    const image = new window.Image();\n    const handleLoad = (event: Event) => {\n      const image = event.currentTarget as HTMLImageElement;\n      setLoadingStatus(getImageLoadingStatus(image));\n    };\n    const handleError = () => setLoadingStatus('error');\n    image.addEventListener('load', handleLoad);\n    image.addEventListener('error', handleError);\n    if (referrerPolicy) {\n      image.referrerPolicy = referrerPolicy;\n    }\n    image.crossOrigin = crossOrigin ?? null;\n    image.src = src;\n\n    setLoadingStatus(getImageLoadingStatus(image));\n    return () => {\n      image.removeEventListener('load', handleLoad);\n      image.removeEventListener('error', handleError);\n      setLoadingStatus('idle');\n    };\n  }, [src, crossOrigin, referrerPolicy, setLoadingStatus]);\n\n  return loadingStatus;\n}\n\nfunction getImageLoadingStatus(image: HTMLImageElement) {\n  return image.complete ? (image.naturalWidth > 0 ? 'loaded' : 'error') : 'loading';\n}\n\n// Image count is only used in development to warn about multiple images, which\n// is unsupported. Gating behind a development flag to avoid performance\n// overhead in production is safe because useState is guaranteed to run\n// consistently in the same environment.\n// oxlint-disable react-hooks/rules-of-hooks\nfunction useImageCount() {\n  let state = STATIC_IMAGE_COUNT_STATE;\n  if (process.env.NODE_ENV !== 'production') {\n    state = React.useState(0);\n    const [imageCount] = state;\n    const hasWarnedRef = React.useRef(false);\n    React.useEffect(() => {\n      if (imageCount > 1 && !hasWarnedRef.current) {\n        hasWarnedRef.current = true;\n        console.warn(\n          'Avatar: Only one `Avatar.Image` component should be rendered per `Avatar.Root`, but multiple were detected. This will lead to unexpected behavior.',\n        );\n      }\n    }, [imageCount]);\n  }\n\n  return state;\n}\n\nfunction useUpdateImageCount(setImageCount: React.Dispatch<React.SetStateAction<number>>) {\n  if (process.env.NODE_ENV !== 'production') {\n    React.useEffect(() => {\n      setImageCount((imageCount) => imageCount + 1);\n      return () => {\n        setImageCount((imageCount) => imageCount - 1);\n      };\n    }, [setImageCount]);\n  }\n}\n// oxlint-enable react-hooks/rules-of-hooks\n\nexport {\n  createAvatarScope,\n  //\n  Avatar,\n  AvatarImage,\n  AvatarFallback,\n  //\n  Avatar as Root,\n  AvatarImage as Image,\n  AvatarFallback as Fallback,\n};\nexport type { AvatarProps, AvatarImageProps, AvatarFallbackProps };\n"]}