@radix-ui/react-avatar 0.1.5-rc.40 → 0.1.5-rc.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"mappings":";;;AAgBA,OAAA,wFAAgF,CAAC;AAEjF,0BAA0B,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAUlE,0BAA0B,MAAM,wBAAwB,CAAC,OAAO,UAAU,IAAI,CAAC,CAAC;AAChF,4BAAsB,SAAQ,kBAAkB;CAAG;AAEnD,OAAA,MAAM,2FAcL,CAAC;AAWF,2BAA2B,MAAM,wBAAwB,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC;AAChF,iCAA2B,SAAQ,mBAAmB;IACpD,qBAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC9D;AAED,OAAA,MAAM,sGAoBL,CAAC;AAWF,oCAA8B,SAAQ,kBAAkB;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,OAAA,MAAM,2GAiBL,CAAC;AAmCF,OAAA,MAAM,yFAAa,CAAC;AACpB,OAAA,MAAM,gGAAmB,CAAC;AAC1B,OAAA,MAAM,qGAAyB,CAAC","sources":["packages/react/avatar/src/packages/react/avatar/src/Avatar.tsx","packages/react/avatar/src/packages/react/avatar/src/index.ts","packages/react/avatar/src/index.ts"],"sourcesContent":[null,null,"export * from './Avatar';\n"],"names":[],"version":3,"file":"index.d.ts.map"}
1
+ {"mappings":";;;AAgBA,OAAA,wFAAgF,CAAC;AAEjF,0BAA0B,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;AAUlE,0BAA0B,MAAM,wBAAwB,CAAC,OAAO,UAAU,IAAI,CAAC,CAAC;AAChF,4BAAsB,SAAQ,kBAAkB;CAAG;AAEnD,OAAA,MAAM,2FAcL,CAAC;AAWF,2BAA2B,MAAM,wBAAwB,CAAC,OAAO,UAAU,GAAG,CAAC,CAAC;AAChF,iCAA2B,SAAQ,mBAAmB;IACpD,qBAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;CAC9D;AAED,OAAA,MAAM,sGAoBL,CAAC;AAWF,oCAA8B,SAAQ,kBAAkB;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,OAAA,MAAM,2GAiBL,CAAC;AAmCF,OAAA,MAAM,yFAAa,CAAC;AACpB,OAAA,MAAM,gGAAmB,CAAC;AAC1B,OAAA,MAAM,qGAAyB,CAAC","sources":["packages/react/avatar/src/packages/react/avatar/src/Avatar.tsx","packages/react/avatar/src/packages/react/avatar/src/index.ts","packages/react/avatar/src/index.ts"],"sourcesContent":[null,null,"export {\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"],"names":[],"version":3,"file":"index.d.ts.map"}
package/dist/index.js CHANGED
@@ -5,37 +5,20 @@ var $6FDFN$radixuireactusecallbackref = require("@radix-ui/react-use-callback-re
5
5
  var $6FDFN$radixuireactuselayouteffect = require("@radix-ui/react-use-layout-effect");
6
6
  var $6FDFN$radixuireactprimitive = require("@radix-ui/react-primitive");
7
7
 
8
- function $parcel$exportWildcard(dest, source) {
9
- Object.keys(source).forEach(function(key) {
10
- if (key === 'default' || key === '__esModule' || dest.hasOwnProperty(key)) {
11
- return;
12
- }
13
-
14
- Object.defineProperty(dest, key, {
15
- enumerable: true,
16
- get: function get() {
17
- return source[key];
18
- }
19
- });
20
- });
21
-
22
- return dest;
8
+ function $parcel$export(e, n, v, s) {
9
+ Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
23
10
  }
24
11
  function $parcel$interopDefault(a) {
25
12
  return a && a.__esModule ? a.default : a;
26
13
  }
27
- function $parcel$export(e, n, v, s) {
28
- Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
29
- }
30
- var $94437fed6c1d6d8a$exports = {};
31
14
 
32
- $parcel$export($94437fed6c1d6d8a$exports, "createAvatarScope", () => $94437fed6c1d6d8a$export$90370d16b488820f);
33
- $parcel$export($94437fed6c1d6d8a$exports, "Avatar", () => $94437fed6c1d6d8a$export$e2255cf6045e8d47);
34
- $parcel$export($94437fed6c1d6d8a$exports, "AvatarImage", () => $94437fed6c1d6d8a$export$2cd8ae1985206fe8);
35
- $parcel$export($94437fed6c1d6d8a$exports, "AvatarFallback", () => $94437fed6c1d6d8a$export$69fffb6a9571fbfe);
36
- $parcel$export($94437fed6c1d6d8a$exports, "Root", () => $94437fed6c1d6d8a$export$be92b6f5f03c0fe9);
37
- $parcel$export($94437fed6c1d6d8a$exports, "Image", () => $94437fed6c1d6d8a$export$3e431a229df88919);
38
- $parcel$export($94437fed6c1d6d8a$exports, "Fallback", () => $94437fed6c1d6d8a$export$fb8d7f40caaeea67);
15
+ $parcel$export(module.exports, "createAvatarScope", () => $94437fed6c1d6d8a$export$90370d16b488820f);
16
+ $parcel$export(module.exports, "Avatar", () => $94437fed6c1d6d8a$export$e2255cf6045e8d47);
17
+ $parcel$export(module.exports, "AvatarImage", () => $94437fed6c1d6d8a$export$2cd8ae1985206fe8);
18
+ $parcel$export(module.exports, "AvatarFallback", () => $94437fed6c1d6d8a$export$69fffb6a9571fbfe);
19
+ $parcel$export(module.exports, "Root", () => $94437fed6c1d6d8a$export$be92b6f5f03c0fe9);
20
+ $parcel$export(module.exports, "Image", () => $94437fed6c1d6d8a$export$3e431a229df88919);
21
+ $parcel$export(module.exports, "Fallback", () => $94437fed6c1d6d8a$export$fb8d7f40caaeea67);
39
22
 
40
23
 
41
24
 
@@ -141,7 +124,6 @@ const $94437fed6c1d6d8a$export$3e431a229df88919 = $94437fed6c1d6d8a$export$2cd8a
141
124
  const $94437fed6c1d6d8a$export$fb8d7f40caaeea67 = $94437fed6c1d6d8a$export$69fffb6a9571fbfe;
142
125
 
143
126
 
144
- $parcel$exportWildcard(module.exports, $94437fed6c1d6d8a$exports);
145
127
 
146
128
 
147
129
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react/avatar/src/index.ts","packages/react/avatar/src/Avatar.tsx"],"sourcesContent":["export * 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 * as Radix from '@radix-ui/react-primitive';\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 onImageLoadingStatusChange(status: ImageLoadingStatus): void;\n};\n\nconst [AvatarProvider, useAvatarContext] = createAvatarContext<AvatarContextValue>(AVATAR_NAME);\n\ntype AvatarElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = Radix.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 return (\n <AvatarProvider\n scope={__scopeAvatar}\n imageLoadingStatus={imageLoadingStatus}\n onImageLoadingStatusChange={setImageLoadingStatus}\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.ElementRef<typeof Primitive.img>;\ntype PrimitiveImageProps = Radix.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 const imageLoadingStatus = useImageLoadingStatus(src);\n const handleLoadingStatusChange = useCallbackRef((status: ImageLoadingStatus) => {\n onLoadingStatusChange(status);\n context.onImageLoadingStatusChange(status);\n });\n\n useLayoutEffect(() => {\n if (imageLoadingStatus !== 'idle') {\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.ElementRef<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(src?: string) {\n const [loadingStatus, setLoadingStatus] = React.useState<ImageLoadingStatus>('idle');\n\n React.useEffect(() => {\n if (!src) {\n setLoadingStatus('error');\n return;\n }\n\n let isMounted = true;\n const image = new window.Image();\n\n const updateStatus = (status: ImageLoadingStatus) => () => {\n if (!isMounted) return;\n setLoadingStatus(status);\n };\n\n setLoadingStatus('loading');\n image.onload = updateStatus('loaded');\n image.onerror = updateStatus('error');\n image.src = src;\n\n return () => {\n isMounted = false;\n };\n }, [src]);\n\n return loadingStatus;\n}\nconst Root = Avatar;\nconst Image = AvatarImage;\nconst Fallback = AvatarFallback;\n\nexport {\n createAvatarScope,\n //\n Avatar,\n AvatarImage,\n AvatarFallback,\n //\n Root,\n Image,\n Fallback,\n};\nexport type { AvatarProps, AvatarImageProps, AvatarFallbackProps };\n"],"names":["React","createContextScope","useCallbackRef","useLayoutEffect","Primitive","AVATAR_NAME","createAvatarContext","createAvatarScope","AvatarProvider","useAvatarContext","Avatar","forwardRef","props","forwardedRef","__scopeAvatar","avatarProps","imageLoadingStatus","setImageLoadingStatus","useState","IMAGE_NAME","AvatarImage","src","onLoadingStatusChange","imageProps","context","useImageLoadingStatus","handleLoadingStatusChange","status","onImageLoadingStatusChange","FALLBACK_NAME","AvatarFallback","delayMs","fallbackProps","canRender","setCanRender","undefined","useEffect","timerId","window","setTimeout","clearTimeout","loadingStatus","setLoadingStatus","isMounted","image","Image","updateStatus","onload","onerror","Root","Fallback"],"version":3,"file":"index.js.map"}
1
+ {"mappings":"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","sources":["packages/react/avatar/src/index.ts","packages/react/avatar/src/Avatar.tsx"],"sourcesContent":["export {\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 * as Radix from '@radix-ui/react-primitive';\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 onImageLoadingStatusChange(status: ImageLoadingStatus): void;\n};\n\nconst [AvatarProvider, useAvatarContext] = createAvatarContext<AvatarContextValue>(AVATAR_NAME);\n\ntype AvatarElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = Radix.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 return (\n <AvatarProvider\n scope={__scopeAvatar}\n imageLoadingStatus={imageLoadingStatus}\n onImageLoadingStatusChange={setImageLoadingStatus}\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.ElementRef<typeof Primitive.img>;\ntype PrimitiveImageProps = Radix.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 const imageLoadingStatus = useImageLoadingStatus(src);\n const handleLoadingStatusChange = useCallbackRef((status: ImageLoadingStatus) => {\n onLoadingStatusChange(status);\n context.onImageLoadingStatusChange(status);\n });\n\n useLayoutEffect(() => {\n if (imageLoadingStatus !== 'idle') {\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.ElementRef<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(src?: string) {\n const [loadingStatus, setLoadingStatus] = React.useState<ImageLoadingStatus>('idle');\n\n React.useEffect(() => {\n if (!src) {\n setLoadingStatus('error');\n return;\n }\n\n let isMounted = true;\n const image = new window.Image();\n\n const updateStatus = (status: ImageLoadingStatus) => () => {\n if (!isMounted) return;\n setLoadingStatus(status);\n };\n\n setLoadingStatus('loading');\n image.onload = updateStatus('loaded');\n image.onerror = updateStatus('error');\n image.src = src;\n\n return () => {\n isMounted = false;\n };\n }, [src]);\n\n return loadingStatus;\n}\nconst Root = Avatar;\nconst Image = AvatarImage;\nconst Fallback = AvatarFallback;\n\nexport {\n createAvatarScope,\n //\n Avatar,\n AvatarImage,\n AvatarFallback,\n //\n Root,\n Image,\n Fallback,\n};\nexport type { AvatarProps, AvatarImageProps, AvatarFallbackProps };\n"],"names":["createAvatarScope","Avatar","AvatarImage","AvatarFallback","Root","Image","Fallback","React","createContextScope","useCallbackRef","useLayoutEffect","Primitive","AVATAR_NAME","createAvatarContext","AvatarProvider","useAvatarContext","forwardRef","props","forwardedRef","__scopeAvatar","avatarProps","imageLoadingStatus","setImageLoadingStatus","useState","IMAGE_NAME","src","onLoadingStatusChange","imageProps","context","useImageLoadingStatus","handleLoadingStatusChange","status","onImageLoadingStatusChange","FALLBACK_NAME","delayMs","fallbackProps","canRender","setCanRender","undefined","useEffect","timerId","window","setTimeout","clearTimeout","loadingStatus","setLoadingStatus","isMounted","image","updateStatus","onload","onerror"],"version":3,"file":"index.js.map"}
@@ -5,18 +5,6 @@ import {useCallbackRef as $8NyvN$useCallbackRef} from "@radix-ui/react-use-callb
5
5
  import {useLayoutEffect as $8NyvN$useLayoutEffect} from "@radix-ui/react-use-layout-effect";
6
6
  import {Primitive as $8NyvN$Primitive} from "@radix-ui/react-primitive";
7
7
 
8
- function $parcel$export(e, n, v, s) {
9
- Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
10
- }
11
- var $cddcb0b647441e34$exports = {};
12
-
13
- $parcel$export($cddcb0b647441e34$exports, "createAvatarScope", () => $cddcb0b647441e34$export$90370d16b488820f);
14
- $parcel$export($cddcb0b647441e34$exports, "Avatar", () => $cddcb0b647441e34$export$e2255cf6045e8d47);
15
- $parcel$export($cddcb0b647441e34$exports, "AvatarImage", () => $cddcb0b647441e34$export$2cd8ae1985206fe8);
16
- $parcel$export($cddcb0b647441e34$exports, "AvatarFallback", () => $cddcb0b647441e34$export$69fffb6a9571fbfe);
17
- $parcel$export($cddcb0b647441e34$exports, "Root", () => $cddcb0b647441e34$export$be92b6f5f03c0fe9);
18
- $parcel$export($cddcb0b647441e34$exports, "Image", () => $cddcb0b647441e34$export$3e431a229df88919);
19
- $parcel$export($cddcb0b647441e34$exports, "Fallback", () => $cddcb0b647441e34$export$fb8d7f40caaeea67);
20
8
 
21
9
 
22
10
 
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react/avatar/src/index.ts","packages/react/avatar/src/Avatar.tsx"],"sourcesContent":["export * 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 * as Radix from '@radix-ui/react-primitive';\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 onImageLoadingStatusChange(status: ImageLoadingStatus): void;\n};\n\nconst [AvatarProvider, useAvatarContext] = createAvatarContext<AvatarContextValue>(AVATAR_NAME);\n\ntype AvatarElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = Radix.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 return (\n <AvatarProvider\n scope={__scopeAvatar}\n imageLoadingStatus={imageLoadingStatus}\n onImageLoadingStatusChange={setImageLoadingStatus}\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.ElementRef<typeof Primitive.img>;\ntype PrimitiveImageProps = Radix.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 const imageLoadingStatus = useImageLoadingStatus(src);\n const handleLoadingStatusChange = useCallbackRef((status: ImageLoadingStatus) => {\n onLoadingStatusChange(status);\n context.onImageLoadingStatusChange(status);\n });\n\n useLayoutEffect(() => {\n if (imageLoadingStatus !== 'idle') {\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.ElementRef<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(src?: string) {\n const [loadingStatus, setLoadingStatus] = React.useState<ImageLoadingStatus>('idle');\n\n React.useEffect(() => {\n if (!src) {\n setLoadingStatus('error');\n return;\n }\n\n let isMounted = true;\n const image = new window.Image();\n\n const updateStatus = (status: ImageLoadingStatus) => () => {\n if (!isMounted) return;\n setLoadingStatus(status);\n };\n\n setLoadingStatus('loading');\n image.onload = updateStatus('loaded');\n image.onerror = updateStatus('error');\n image.src = src;\n\n return () => {\n isMounted = false;\n };\n }, [src]);\n\n return loadingStatus;\n}\nconst Root = Avatar;\nconst Image = AvatarImage;\nconst Fallback = AvatarFallback;\n\nexport {\n createAvatarScope,\n //\n Avatar,\n AvatarImage,\n AvatarFallback,\n //\n Root,\n Image,\n Fallback,\n};\nexport type { AvatarProps, AvatarImageProps, AvatarFallbackProps };\n"],"names":["React","createContextScope","useCallbackRef","useLayoutEffect","Primitive","AVATAR_NAME","createAvatarContext","createAvatarScope","AvatarProvider","useAvatarContext","Avatar","forwardRef","props","forwardedRef","__scopeAvatar","avatarProps","imageLoadingStatus","setImageLoadingStatus","useState","IMAGE_NAME","AvatarImage","src","onLoadingStatusChange","imageProps","context","useImageLoadingStatus","handleLoadingStatusChange","status","onImageLoadingStatusChange","FALLBACK_NAME","AvatarFallback","delayMs","fallbackProps","canRender","setCanRender","undefined","useEffect","timerId","window","setTimeout","clearTimeout","loadingStatus","setLoadingStatus","isMounted","image","Image","updateStatus","onload","onerror","Root","Fallback"],"version":3,"file":"index.module.js.map"}
1
+ {"mappings":"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","sources":["packages/react/avatar/src/index.ts","packages/react/avatar/src/Avatar.tsx"],"sourcesContent":["export {\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 * as Radix from '@radix-ui/react-primitive';\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 onImageLoadingStatusChange(status: ImageLoadingStatus): void;\n};\n\nconst [AvatarProvider, useAvatarContext] = createAvatarContext<AvatarContextValue>(AVATAR_NAME);\n\ntype AvatarElement = React.ElementRef<typeof Primitive.span>;\ntype PrimitiveSpanProps = Radix.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 return (\n <AvatarProvider\n scope={__scopeAvatar}\n imageLoadingStatus={imageLoadingStatus}\n onImageLoadingStatusChange={setImageLoadingStatus}\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.ElementRef<typeof Primitive.img>;\ntype PrimitiveImageProps = Radix.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 const imageLoadingStatus = useImageLoadingStatus(src);\n const handleLoadingStatusChange = useCallbackRef((status: ImageLoadingStatus) => {\n onLoadingStatusChange(status);\n context.onImageLoadingStatusChange(status);\n });\n\n useLayoutEffect(() => {\n if (imageLoadingStatus !== 'idle') {\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.ElementRef<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(src?: string) {\n const [loadingStatus, setLoadingStatus] = React.useState<ImageLoadingStatus>('idle');\n\n React.useEffect(() => {\n if (!src) {\n setLoadingStatus('error');\n return;\n }\n\n let isMounted = true;\n const image = new window.Image();\n\n const updateStatus = (status: ImageLoadingStatus) => () => {\n if (!isMounted) return;\n setLoadingStatus(status);\n };\n\n setLoadingStatus('loading');\n image.onload = updateStatus('loaded');\n image.onerror = updateStatus('error');\n image.src = src;\n\n return () => {\n isMounted = false;\n };\n }, [src]);\n\n return loadingStatus;\n}\nconst Root = Avatar;\nconst Image = AvatarImage;\nconst Fallback = AvatarFallback;\n\nexport {\n createAvatarScope,\n //\n Avatar,\n AvatarImage,\n AvatarFallback,\n //\n Root,\n Image,\n Fallback,\n};\nexport type { AvatarProps, AvatarImageProps, AvatarFallbackProps };\n"],"names":["createAvatarScope","Avatar","AvatarImage","AvatarFallback","Root","Image","Fallback","React","createContextScope","useCallbackRef","useLayoutEffect","Primitive","AVATAR_NAME","createAvatarContext","AvatarProvider","useAvatarContext","forwardRef","props","forwardedRef","__scopeAvatar","avatarProps","imageLoadingStatus","setImageLoadingStatus","useState","IMAGE_NAME","src","onLoadingStatusChange","imageProps","context","useImageLoadingStatus","handleLoadingStatusChange","status","onImageLoadingStatusChange","FALLBACK_NAME","delayMs","fallbackProps","canRender","setCanRender","undefined","useEffect","timerId","window","setTimeout","clearTimeout","loadingStatus","setLoadingStatus","isMounted","image","updateStatus","onload","onerror"],"version":3,"file":"index.module.js.map"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@radix-ui/react-avatar",
3
- "version": "0.1.5-rc.40",
3
+ "version": "0.1.5-rc.43",
4
4
  "license": "MIT",
5
5
  "source": "src/index.ts",
6
6
  "main": "dist/index.js",
@@ -17,10 +17,10 @@
17
17
  },
18
18
  "dependencies": {
19
19
  "@babel/runtime": "^7.13.10",
20
- "@radix-ui/react-context": "0.1.2-rc.40",
21
- "@radix-ui/react-primitive": "0.1.5-rc.40",
22
- "@radix-ui/react-use-callback-ref": "0.1.1-rc.40",
23
- "@radix-ui/react-use-layout-effect": "0.1.1-rc.40"
20
+ "@radix-ui/react-context": "0.1.2-rc.43",
21
+ "@radix-ui/react-primitive": "0.1.5-rc.43",
22
+ "@radix-ui/react-use-callback-ref": "0.1.1-rc.43",
23
+ "@radix-ui/react-use-layout-effect": "0.1.1-rc.43"
24
24
  },
25
25
  "peerDependencies": {
26
26
  "react": "^16.8 || ^17.0 || ^18.0",