@hanzogui/avatar 8.3.0 → 8.3.2

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.
@@ -0,0 +1,126 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AvatarFallback = exports.AvatarImage = exports.Avatar = exports.createAvatarScope = exports.AvatarFrame = exports.AvatarFallbackFrame = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const core_1 = require("@hanzogui/core");
7
+ const create_context_1 = require("@hanzogui/create-context");
8
+ const helpers_1 = require("@hanzogui/helpers");
9
+ const image_1 = require("@hanzogui/image");
10
+ const shapes_1 = require("@hanzogui/shapes");
11
+ const stacks_1 = require("@hanzogui/stacks");
12
+ const React = tslib_1.__importStar(require("react"));
13
+ const AVATAR_NAME = 'Avatar';
14
+ const [createAvatarContext, createAvatarScope] = (0, create_context_1.createContextScope)(AVATAR_NAME);
15
+ exports.createAvatarScope = createAvatarScope;
16
+ const [AvatarProvider, useAvatarContext] = createAvatarContext(AVATAR_NAME);
17
+ /* -------------------------------------------------------------------------------------------------
18
+ * AvatarImage
19
+ * -----------------------------------------------------------------------------------------------*/
20
+ const IMAGE_NAME = 'AvatarImage';
21
+ const AvatarImage = React.forwardRef((props, forwardedRef) => {
22
+ const { __scopeAvatar, src, source, onLoadingStatusChange = () => { }, ...imageProps } = props;
23
+ const context = useAvatarContext(IMAGE_NAME, __scopeAvatar);
24
+ const [status, setStatus] = React.useState('idle');
25
+ // Support both `src` (web) and `source` (RN) props
26
+ const resolvedSrc = src ||
27
+ (source && typeof source === 'object' && 'uri' in source ? source.uri : source);
28
+ React.useEffect(() => {
29
+ // If src is falsy, immediately set error status so fallback renders
30
+ if (!resolvedSrc) {
31
+ setStatus('error');
32
+ }
33
+ else {
34
+ setStatus('idle');
35
+ }
36
+ }, [resolvedSrc]);
37
+ React.useEffect(() => {
38
+ onLoadingStatusChange(status);
39
+ context.onImageLoadingStatusChange(status);
40
+ }, [status]);
41
+ // Don't render Image if src is falsy to avoid Android warning
42
+ if (!resolvedSrc) {
43
+ return null;
44
+ }
45
+ return ((0, jsx_runtime_1.jsx)(stacks_1.YStack, { fullscreen: true, zIndex: 1, children: (0, jsx_runtime_1.jsx)(image_1.Image, { position: "absolute", top: 0, left: 0, right: 0, bottom: 0, objectFit: "cover",
46
+ // fill the frame. previously the image was sized to
47
+ // getShapeSize(context.size) — but that resolves a numeric `size`
48
+ // (e.g. <Avatar size={16} />) as a size-TOKEN index (tokens.size[16]),
49
+ // so it got the token-scale value (~224px) instead of 16px, blowing
50
+ // the image far past its frame; object-fit:cover then showed a
51
+ // blurry mis-cropped corner. the frame already owns the size, so the
52
+ // image just fills it — correct for numeric and token sizes alike.
53
+ width: "100%", height: "100%", ...imageProps,
54
+ // @ts-ignore
55
+ ref: forwardedRef,
56
+ // @ts-ignore
57
+ src: resolvedSrc,
58
+ // onLoadStart={() => {
59
+ // // setStatus('loading')
60
+ // }}
61
+ onError: () => {
62
+ setStatus('error');
63
+ }, onLoad: () => {
64
+ setStatus('loaded');
65
+ } }) }));
66
+ });
67
+ exports.AvatarImage = AvatarImage;
68
+ AvatarImage.displayName = IMAGE_NAME;
69
+ /* -------------------------------------------------------------------------------------------------
70
+ * AvatarFallback
71
+ * -----------------------------------------------------------------------------------------------*/
72
+ const FALLBACK_NAME = 'AvatarFallback';
73
+ exports.AvatarFallbackFrame = (0, core_1.styled)(stacks_1.YStack, {
74
+ name: FALLBACK_NAME,
75
+ position: 'absolute',
76
+ fullscreen: true,
77
+ zIndex: 0,
78
+ });
79
+ const AvatarFallback = exports.AvatarFallbackFrame.styleable((props, forwardedRef) => {
80
+ const { __scopeAvatar, delayMs, ...fallbackProps } = props;
81
+ const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar);
82
+ const [canRender, setCanRender] = React.useState(delayMs === undefined);
83
+ React.useEffect(() => {
84
+ if (delayMs !== undefined) {
85
+ const timerId = setTimeout(() => setCanRender(true), delayMs);
86
+ return () => clearTimeout(timerId);
87
+ }
88
+ }, [delayMs]);
89
+ return canRender && context.imageLoadingStatus !== 'loaded' ? ((0, jsx_runtime_1.jsx)(exports.AvatarFallbackFrame, { ...fallbackProps, ref: forwardedRef })) : null;
90
+ });
91
+ exports.AvatarFallback = AvatarFallback;
92
+ AvatarFallback.displayName = FALLBACK_NAME;
93
+ /* -------------------------------------------------------------------------------------------------
94
+ * Avatar
95
+ * -----------------------------------------------------------------------------------------------*/
96
+ exports.AvatarFrame = (0, core_1.styled)(shapes_1.Square, {
97
+ name: AVATAR_NAME,
98
+ position: 'relative',
99
+ overflow: 'hidden',
100
+ });
101
+ /**
102
+ * @summary A component that displays an image or a fallback icon.
103
+ * @see — Docs https://hanzogui.dev/ui/avatar
104
+ *
105
+ * @example
106
+ * ```tsx
107
+ * <Avatar circular size="$10">
108
+ * <Avatar.Image
109
+ * aria-label="Cam"
110
+ * src="https://images.unsplash.com/photo-1548142813-c348350df52b?&w=150&h=150&dpr=2&q=80"
111
+ * />
112
+ * <Avatar.Fallback backgroundColor="$blue10" />
113
+ * </Avatar>
114
+ * ```
115
+ */
116
+ const Avatar = (0, helpers_1.withStaticProperties)(React.forwardRef((props, forwardedRef) => {
117
+ const { __scopeAvatar, size = '$true', ...avatarProps } = props;
118
+ const [imageLoadingStatus, setImageLoadingStatus] = React.useState('idle');
119
+ return ((0, jsx_runtime_1.jsx)(AvatarProvider, { size: size, scope: __scopeAvatar, imageLoadingStatus: imageLoadingStatus, onImageLoadingStatusChange: setImageLoadingStatus, children: (0, jsx_runtime_1.jsx)(exports.AvatarFrame, { size: size, ...avatarProps, ref: forwardedRef }) }));
120
+ }), {
121
+ Image: AvatarImage,
122
+ Fallback: AvatarFallback,
123
+ });
124
+ exports.Avatar = Avatar;
125
+ Avatar.displayName = AVATAR_NAME;
126
+ //# sourceMappingURL=Avatar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../../src/Avatar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./Avatar.js"), exports);
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,sDAA4B"}
@@ -0,0 +1 @@
1
+ { "type": "commonjs" }
@@ -0,0 +1,119 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { styled } from '@hanzogui/core';
3
+ import { createContextScope } from '@hanzogui/create-context';
4
+ import { withStaticProperties } from '@hanzogui/helpers';
5
+ import { Image } from '@hanzogui/image';
6
+ import { Square } from '@hanzogui/shapes';
7
+ import { YStack } from '@hanzogui/stacks';
8
+ import * as React from 'react';
9
+ const AVATAR_NAME = 'Avatar';
10
+ const [createAvatarContext, createAvatarScope] = createContextScope(AVATAR_NAME);
11
+ const [AvatarProvider, useAvatarContext] = createAvatarContext(AVATAR_NAME);
12
+ /* -------------------------------------------------------------------------------------------------
13
+ * AvatarImage
14
+ * -----------------------------------------------------------------------------------------------*/
15
+ const IMAGE_NAME = 'AvatarImage';
16
+ const AvatarImage = React.forwardRef((props, forwardedRef) => {
17
+ const { __scopeAvatar, src, source, onLoadingStatusChange = () => { }, ...imageProps } = props;
18
+ const context = useAvatarContext(IMAGE_NAME, __scopeAvatar);
19
+ const [status, setStatus] = React.useState('idle');
20
+ // Support both `src` (web) and `source` (RN) props
21
+ const resolvedSrc = src ||
22
+ (source && typeof source === 'object' && 'uri' in source ? source.uri : source);
23
+ React.useEffect(() => {
24
+ // If src is falsy, immediately set error status so fallback renders
25
+ if (!resolvedSrc) {
26
+ setStatus('error');
27
+ }
28
+ else {
29
+ setStatus('idle');
30
+ }
31
+ }, [resolvedSrc]);
32
+ React.useEffect(() => {
33
+ onLoadingStatusChange(status);
34
+ context.onImageLoadingStatusChange(status);
35
+ }, [status]);
36
+ // Don't render Image if src is falsy to avoid Android warning
37
+ if (!resolvedSrc) {
38
+ return null;
39
+ }
40
+ return (_jsx(YStack, { fullscreen: true, zIndex: 1, children: _jsx(Image, { position: "absolute", top: 0, left: 0, right: 0, bottom: 0, objectFit: "cover",
41
+ // fill the frame. previously the image was sized to
42
+ // getShapeSize(context.size) — but that resolves a numeric `size`
43
+ // (e.g. <Avatar size={16} />) as a size-TOKEN index (tokens.size[16]),
44
+ // so it got the token-scale value (~224px) instead of 16px, blowing
45
+ // the image far past its frame; object-fit:cover then showed a
46
+ // blurry mis-cropped corner. the frame already owns the size, so the
47
+ // image just fills it — correct for numeric and token sizes alike.
48
+ width: "100%", height: "100%", ...imageProps,
49
+ // @ts-ignore
50
+ ref: forwardedRef,
51
+ // @ts-ignore
52
+ src: resolvedSrc,
53
+ // onLoadStart={() => {
54
+ // // setStatus('loading')
55
+ // }}
56
+ onError: () => {
57
+ setStatus('error');
58
+ }, onLoad: () => {
59
+ setStatus('loaded');
60
+ } }) }));
61
+ });
62
+ AvatarImage.displayName = IMAGE_NAME;
63
+ /* -------------------------------------------------------------------------------------------------
64
+ * AvatarFallback
65
+ * -----------------------------------------------------------------------------------------------*/
66
+ const FALLBACK_NAME = 'AvatarFallback';
67
+ export const AvatarFallbackFrame = styled(YStack, {
68
+ name: FALLBACK_NAME,
69
+ position: 'absolute',
70
+ fullscreen: true,
71
+ zIndex: 0,
72
+ });
73
+ const AvatarFallback = AvatarFallbackFrame.styleable((props, forwardedRef) => {
74
+ const { __scopeAvatar, delayMs, ...fallbackProps } = props;
75
+ const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar);
76
+ const [canRender, setCanRender] = React.useState(delayMs === undefined);
77
+ React.useEffect(() => {
78
+ if (delayMs !== undefined) {
79
+ const timerId = setTimeout(() => setCanRender(true), delayMs);
80
+ return () => clearTimeout(timerId);
81
+ }
82
+ }, [delayMs]);
83
+ return canRender && context.imageLoadingStatus !== 'loaded' ? (_jsx(AvatarFallbackFrame, { ...fallbackProps, ref: forwardedRef })) : null;
84
+ });
85
+ AvatarFallback.displayName = FALLBACK_NAME;
86
+ /* -------------------------------------------------------------------------------------------------
87
+ * Avatar
88
+ * -----------------------------------------------------------------------------------------------*/
89
+ export const AvatarFrame = styled(Square, {
90
+ name: AVATAR_NAME,
91
+ position: 'relative',
92
+ overflow: 'hidden',
93
+ });
94
+ /**
95
+ * @summary A component that displays an image or a fallback icon.
96
+ * @see — Docs https://hanzogui.dev/ui/avatar
97
+ *
98
+ * @example
99
+ * ```tsx
100
+ * <Avatar circular size="$10">
101
+ * <Avatar.Image
102
+ * aria-label="Cam"
103
+ * src="https://images.unsplash.com/photo-1548142813-c348350df52b?&w=150&h=150&dpr=2&q=80"
104
+ * />
105
+ * <Avatar.Fallback backgroundColor="$blue10" />
106
+ * </Avatar>
107
+ * ```
108
+ */
109
+ const Avatar = withStaticProperties(React.forwardRef((props, forwardedRef) => {
110
+ const { __scopeAvatar, size = '$true', ...avatarProps } = props;
111
+ const [imageLoadingStatus, setImageLoadingStatus] = React.useState('idle');
112
+ return (_jsx(AvatarProvider, { size: size, scope: __scopeAvatar, imageLoadingStatus: imageLoadingStatus, onImageLoadingStatusChange: setImageLoadingStatus, children: _jsx(AvatarFrame, { size: size, ...avatarProps, ref: forwardedRef }) }));
113
+ }), {
114
+ Image: AvatarImage,
115
+ Fallback: AvatarFallback,
116
+ });
117
+ Avatar.displayName = AVATAR_NAME;
118
+ export { createAvatarScope, Avatar, AvatarImage, AvatarFallback };
119
+ //# sourceMappingURL=Avatar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Avatar.js","sourceRoot":"","sources":["../../src/Avatar.tsx"],"names":[],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -1,2 +1,2 @@
1
- export * from "./Avatar.mjs";
2
- //# sourceMappingURL=index.js.map
1
+ export * from './Avatar.js';
2
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA,cAAc","ignoreList":[]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAc,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hanzogui/avatar",
3
- "version": "8.3.0",
3
+ "version": "8.3.2",
4
4
  "source": "src/index.ts",
5
5
  "files": [
6
6
  "src",
@@ -9,47 +9,47 @@
9
9
  ],
10
10
  "type": "module",
11
11
  "sideEffects": false,
12
- "main": "dist/cjs",
13
- "module": "dist/esm",
12
+ "main": "./dist/cjs/index.js",
13
+ "module": "./dist/esm/index.js",
14
14
  "types": "./types/index.d.ts",
15
15
  "exports": {
16
16
  "./package.json": "./package.json",
17
17
  ".": {
18
18
  "types": "./types/index.d.ts",
19
- "react-native": "./dist/esm/index.native.js",
20
- "browser": "./dist/esm/index.mjs",
21
- "module": "./dist/esm/index.mjs",
22
- "import": "./dist/esm/index.mjs",
23
- "require": "./dist/cjs/index.cjs",
24
- "default": "./dist/esm/index.mjs"
19
+ "react-native": "./dist/esm/index.js",
20
+ "browser": "./dist/esm/index.js",
21
+ "module": "./dist/esm/index.js",
22
+ "import": "./dist/esm/index.js",
23
+ "require": "./dist/cjs/index.js",
24
+ "default": "./dist/esm/index.js"
25
25
  }
26
26
  },
27
27
  "publishConfig": {
28
28
  "access": "public"
29
29
  },
30
30
  "scripts": {
31
- "build": "hanzogui-build",
31
+ "build": "hanzogui-build --skip-native",
32
32
  "watch": "hanzogui-build --watch",
33
33
  "clean": "hanzogui-build clean",
34
34
  "clean:build": "hanzogui-build clean:build"
35
35
  },
36
36
  "dependencies": {
37
- "@hanzogui/core": "8.3.0",
38
- "@hanzogui/create-context": "8.3.0",
39
- "@hanzogui/helpers": "8.3.0",
40
- "@hanzogui/image": "8.3.0",
41
- "@hanzogui/shapes": "8.3.0",
42
- "@hanzogui/stacks": "8.3.0",
43
- "@hanzogui/text": "8.3.0",
44
- "@hanzogui/web": "8.3.0"
37
+ "@hanzogui/core": "8.3.2",
38
+ "@hanzogui/create-context": "8.3.2",
39
+ "@hanzogui/helpers": "8.3.2",
40
+ "@hanzogui/image": "8.3.2",
41
+ "@hanzogui/shapes": "8.3.2",
42
+ "@hanzogui/stacks": "8.3.2",
43
+ "@hanzogui/text": "8.3.2",
44
+ "@hanzogui/web": "8.3.2"
45
45
  },
46
46
  "devDependencies": {
47
- "@hanzogui/build": "8.3.0",
48
- "react": ">=19",
49
- "react-native": "0.83.2"
47
+ "@hanzogui/build": "8.3.2",
48
+ "react": "19.2.8",
49
+ "react-native": "^0.87.1"
50
50
  },
51
51
  "peerDependencies": {
52
- "react": ">=19"
52
+ "react": ">=19.2.8"
53
53
  },
54
54
  "module:jsx": "dist/jsx",
55
55
  "repository": {
package/src/index.ts CHANGED
@@ -1 +1 @@
1
- export * from './Avatar'
1
+ export * from './Avatar.tsx'
package/types/Avatar.d.ts CHANGED
@@ -21,7 +21,7 @@ type AvatarFallbackProps = GetProps<typeof AvatarFallbackFrame> & AvatarFallback
21
21
  declare const AvatarFallback: import("@hanzogui/web").GuiComponent<Omit<import("@hanzogui/web").GetFinalProps<import("@hanzogui/core").RNGuiViewNonStyleProps, import("@hanzogui/web").StackStyleBase, {
22
22
  elevation?: number | SizeTokens | undefined;
23
23
  fullscreen?: boolean | undefined;
24
- }>, "delayMs" | "__scopeAvatar"> & AvatarFallbackExtraProps & {
24
+ }>, "__scopeAvatar" | "delayMs"> & AvatarFallbackExtraProps & {
25
25
  __scopeAvatar?: Scope;
26
26
  }, GuiElement, import("@hanzogui/core").RNGuiViewNonStyleProps & AvatarFallbackExtraProps & {
27
27
  __scopeAvatar?: Scope;
@@ -30,14 +30,14 @@ declare const AvatarFallback: import("@hanzogui/web").GuiComponent<Omit<import("
30
30
  fullscreen?: boolean | undefined;
31
31
  }, import("@hanzogui/web").StaticConfigPublic>;
32
32
  export declare const AvatarFrame: import("@hanzogui/web").GuiComponent<import("@hanzogui/web").TamaDefer, GuiElement, import("@hanzogui/core").RNGuiViewNonStyleProps, import("@hanzogui/web").StackStyleBase, {
33
+ bordered?: boolean | undefined;
34
+ chromeless?: "all" | boolean | undefined;
35
+ circular?: boolean | undefined;
36
+ elevate?: boolean | undefined;
33
37
  elevation?: number | import("@hanzogui/web").SizeTokens | undefined;
38
+ fullscreen?: boolean | undefined;
34
39
  size?: number | import("@hanzogui/web").SizeTokens | undefined;
35
40
  transparent?: boolean | undefined;
36
- fullscreen?: boolean | undefined;
37
- circular?: boolean | undefined;
38
- elevate?: boolean | undefined;
39
- bordered?: boolean | undefined;
40
- chromeless?: boolean | "all" | undefined;
41
41
  }, import("@hanzogui/web").StaticConfigPublic & {
42
42
  memo: true;
43
43
  }>;
@@ -57,33 +57,33 @@ type AvatarProps = GetProps<typeof AvatarFrame>;
57
57
  * </Avatar>
58
58
  * ```
59
59
  */
60
- declare const Avatar: React.ForwardRefExoticComponent<Omit<import("@hanzogui/core").RNGuiViewNonStyleProps, "size" | "elevation" | keyof import("@hanzogui/web").StackStyleBase | "fullscreen" | "transparent" | "circular" | "elevate" | "bordered" | "chromeless"> & import("@hanzogui/web").WithThemeValues<import("@hanzogui/web").StackStyleBase> & {
60
+ declare const Avatar: React.ForwardRefExoticComponent<Omit<import("@hanzogui/core").RNGuiViewNonStyleProps, "bordered" | "chromeless" | "circular" | "elevate" | "elevation" | "fullscreen" | "size" | "transparent" | keyof import("@hanzogui/web").StackStyleBase> & import("@hanzogui/web").WithThemeValues<import("@hanzogui/web").StackStyleBase> & {
61
+ bordered?: boolean | undefined;
62
+ chromeless?: "all" | boolean | undefined;
63
+ circular?: boolean | undefined;
64
+ elevate?: boolean | undefined;
61
65
  elevation?: number | import("@hanzogui/web").SizeTokens | undefined;
66
+ fullscreen?: boolean | undefined;
62
67
  size?: number | import("@hanzogui/web").SizeTokens | undefined;
63
68
  transparent?: boolean | undefined;
64
- fullscreen?: boolean | undefined;
69
+ } & import("@hanzogui/web").WithShorthands<import("@hanzogui/web").WithThemeValues<import("@hanzogui/web").StackStyleBase>> & import("@hanzogui/web").WithPseudoProps<import("@hanzogui/web").WithThemeValues<import("@hanzogui/web").StackStyleBase> & {
70
+ bordered?: boolean | undefined;
71
+ chromeless?: "all" | boolean | undefined;
65
72
  circular?: boolean | undefined;
66
73
  elevate?: boolean | undefined;
67
- bordered?: boolean | undefined;
68
- chromeless?: boolean | "all" | undefined;
69
- } & import("@hanzogui/web").WithShorthands<import("@hanzogui/web").WithThemeValues<import("@hanzogui/web").StackStyleBase>> & import("@hanzogui/web").WithPseudoProps<import("@hanzogui/web").WithThemeValues<import("@hanzogui/web").StackStyleBase> & {
70
74
  elevation?: number | import("@hanzogui/web").SizeTokens | undefined;
75
+ fullscreen?: boolean | undefined;
71
76
  size?: number | import("@hanzogui/web").SizeTokens | undefined;
72
77
  transparent?: boolean | undefined;
73
- fullscreen?: boolean | undefined;
78
+ } & import("@hanzogui/web").WithShorthands<import("@hanzogui/web").WithThemeValues<import("@hanzogui/web").StackStyleBase>>> & import("@hanzogui/web").WithMediaProps<import("@hanzogui/web").WithThemeShorthandsAndPseudos<import("@hanzogui/web").StackStyleBase, {
79
+ bordered?: boolean | undefined;
80
+ chromeless?: "all" | boolean | undefined;
74
81
  circular?: boolean | undefined;
75
82
  elevate?: boolean | undefined;
76
- bordered?: boolean | undefined;
77
- chromeless?: boolean | "all" | undefined;
78
- } & import("@hanzogui/web").WithShorthands<import("@hanzogui/web").WithThemeValues<import("@hanzogui/web").StackStyleBase>>> & import("@hanzogui/web").WithMediaProps<import("@hanzogui/web").WithThemeShorthandsAndPseudos<import("@hanzogui/web").StackStyleBase, {
79
83
  elevation?: number | import("@hanzogui/web").SizeTokens | undefined;
84
+ fullscreen?: boolean | undefined;
80
85
  size?: number | import("@hanzogui/web").SizeTokens | undefined;
81
86
  transparent?: boolean | undefined;
82
- fullscreen?: boolean | undefined;
83
- circular?: boolean | undefined;
84
- elevate?: boolean | undefined;
85
- bordered?: boolean | undefined;
86
- chromeless?: boolean | "all" | undefined;
87
87
  }>> & React.RefAttributes<GuiElement>> & {
88
88
  Image: React.ForwardRefExoticComponent<Partial<ImageProps> & {
89
89
  onLoadingStatusChange?: (status: ImageLoadingStatus) => void;
@@ -91,7 +91,7 @@ declare const Avatar: React.ForwardRefExoticComponent<Omit<import("@hanzogui/cor
91
91
  Fallback: import("@hanzogui/web").GuiComponent<Omit<import("@hanzogui/web").GetFinalProps<import("@hanzogui/core").RNGuiViewNonStyleProps, import("@hanzogui/web").StackStyleBase, {
92
92
  elevation?: number | SizeTokens | undefined;
93
93
  fullscreen?: boolean | undefined;
94
- }>, "delayMs" | "__scopeAvatar"> & AvatarFallbackExtraProps & {
94
+ }>, "__scopeAvatar" | "delayMs"> & AvatarFallbackExtraProps & {
95
95
  __scopeAvatar?: Scope;
96
96
  }, GuiElement, import("@hanzogui/core").RNGuiViewNonStyleProps & AvatarFallbackExtraProps & {
97
97
  __scopeAvatar?: Scope;
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../src/Avatar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEtE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAGrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAIjD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,QAAA,MAA4B,iBAAiB,gDAAmC,CAAA;AAEhF,KAAK,kBAAkB,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAA;AAiBjE,KAAK,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG;IAC5C,qBAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAA;CAC7D,CAAA;AAED,QAAA,MAAM,WAAW;4BAHS,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI;oCA2E7D,CAAA;AAUD,eAAO,MAAM,mBAAmB;;;8CAK9B,CAAA;AAEF,KAAK,wBAAwB,GAAG;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AACD,KAAK,mBAAmB,GAAG,QAAQ,CAAC,OAAO,mBAAmB,CAAC,GAAG,wBAAwB,CAAA;AAE1F,QAAA,MAAM,cAAc;;;;oBAtHwB,KAAK;;oBAAL,KAAK;;;;8CAuI/C,CAAA;AAQF,eAAO,MAAM,WAAW;;;;;;;;;;;EAItB,CAAA;AAEF,KAAK,WAAW,GAAG,QAAQ,CAAC,OAAO,WAAW,CAAC,CAAA;AAE/C;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAjJc,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI;;;;;;wBArBlB,KAAK;;wBAAL,KAAK;;;;;CA4LhD,CAAA;AAID,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,CAAA;AACjE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,CAAA"}
1
+ {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../src/Avatar.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAEtE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAGrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAIjD,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAK9B,QAAA,MAA4B,iBAAiB,gDAAmC,CAAA;AAEhF,KAAK,kBAAkB,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAA;AAiBjE,KAAK,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG;IAC5C,qBAAqB,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAA;CAC7D,CAAA;AAED,QAAA,MAAM,WAAW;4BAHS,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI;oCA2E7D,CAAA;AAUD,eAAO,MAAM,mBAAmB;;;8CAK9B,CAAA;AAEF,KAAK,wBAAwB,GAAG;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AACD,KAAK,mBAAmB,GAAG,QAAQ,CAAC,OAAO,mBAAmB,CAAC,GAAG,wBAAwB,CAAA;AAE1F,QAAA,MAAM,cAAc;;;;oBAtHwB,KAAK;;;;;;8CAuI/C,CAAA;AAQF,eAAO,MAAM,WAAW;;;;;;;;;;;EAItB,CAAA;AAEF,KAAK,WAAW,GAAG,QAAQ,CAAC,OAAO,WAAW,CAAC,CAAA;AAE/C;;;;;;;;;;;;;;GAcG;AACH,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAjJc,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI;;;;;;wBArBlB,KAAK;;;;;;;CA4LhD,CAAA;AAID,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,CAAA;AACjE,YAAY,EAAE,WAAW,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,CAAA"}
package/types/index.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export * from './Avatar';
1
+ export * from './Avatar.tsx';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA"}
@@ -1,160 +0,0 @@
1
- var __create = Object.create;
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __getProtoOf = Object.getPrototypeOf;
6
- var __hasOwnProp = Object.prototype.hasOwnProperty;
7
- var __export = (target, all) => {
8
- for (var name in all) __defProp(target, name, {
9
- get: all[name],
10
- enumerable: true
11
- });
12
- };
13
- var __copyProps = (to, from, except, desc) => {
14
- if (from && typeof from === "object" || typeof from === "function") {
15
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
- get: () => from[key],
17
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
- });
19
- }
20
- return to;
21
- };
22
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
23
- // If the importer is in node compatibility mode or this is not an ESM
24
- // file that has been converted to a CommonJS file using a Babel-
25
- // compatible transform (i.e. "__esModule" has not been set), then set
26
- // "default" to the CommonJS "module.exports" for node compatibility.
27
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
28
- value: mod,
29
- enumerable: true
30
- }) : target, mod));
31
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
32
- value: true
33
- }), mod);
34
- var Avatar_exports = {};
35
- __export(Avatar_exports, {
36
- Avatar: () => Avatar,
37
- AvatarFallback: () => AvatarFallback,
38
- AvatarFallbackFrame: () => AvatarFallbackFrame,
39
- AvatarFrame: () => AvatarFrame,
40
- AvatarImage: () => AvatarImage,
41
- createAvatarScope: () => createAvatarScope
42
- });
43
- module.exports = __toCommonJS(Avatar_exports);
44
- var import_core = require("@hanzogui/core");
45
- var import_create_context = require("@hanzogui/create-context");
46
- var import_helpers = require("@hanzogui/helpers");
47
- var import_image = require("@hanzogui/image");
48
- var import_shapes = require("@hanzogui/shapes");
49
- var import_stacks = require("@hanzogui/stacks");
50
- var React = __toESM(require("react"), 1);
51
- var import_jsx_runtime = require("react/jsx-runtime");
52
- const AVATAR_NAME = "Avatar";
53
- const [createAvatarContext, createAvatarScope] = (0, import_create_context.createContextScope)(AVATAR_NAME);
54
- const [AvatarProvider, useAvatarContext] = createAvatarContext(AVATAR_NAME);
55
- const IMAGE_NAME = "AvatarImage";
56
- const AvatarImage = React.forwardRef((props, forwardedRef) => {
57
- const {
58
- __scopeAvatar,
59
- src,
60
- source,
61
- onLoadingStatusChange = () => {},
62
- ...imageProps
63
- } = props;
64
- const context = useAvatarContext(IMAGE_NAME, __scopeAvatar);
65
- const [status, setStatus] = React.useState("idle");
66
- const resolvedSrc = src || (source && typeof source === "object" && "uri" in source ? source.uri : source);
67
- React.useEffect(() => {
68
- if (!resolvedSrc) {
69
- setStatus("error");
70
- } else {
71
- setStatus("idle");
72
- }
73
- }, [resolvedSrc]);
74
- React.useEffect(() => {
75
- onLoadingStatusChange(status);
76
- context.onImageLoadingStatusChange(status);
77
- }, [status]);
78
- if (!resolvedSrc) {
79
- return null;
80
- }
81
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_stacks.YStack, {
82
- fullscreen: true,
83
- zIndex: 1,
84
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_image.Image, {
85
- position: "absolute",
86
- top: 0,
87
- left: 0,
88
- right: 0,
89
- bottom: 0,
90
- objectFit: "cover",
91
- width: "100%",
92
- height: "100%",
93
- ...imageProps,
94
- ref: forwardedRef,
95
- src: resolvedSrc,
96
- onError: () => {
97
- setStatus("error");
98
- },
99
- onLoad: () => {
100
- setStatus("loaded");
101
- }
102
- })
103
- });
104
- });
105
- AvatarImage.displayName = IMAGE_NAME;
106
- const FALLBACK_NAME = "AvatarFallback";
107
- const AvatarFallbackFrame = (0, import_core.styled)(import_stacks.YStack, {
108
- name: FALLBACK_NAME,
109
- position: "absolute",
110
- fullscreen: true,
111
- zIndex: 0
112
- });
113
- const AvatarFallback = AvatarFallbackFrame.styleable((props, forwardedRef) => {
114
- const {
115
- __scopeAvatar,
116
- delayMs,
117
- ...fallbackProps
118
- } = props;
119
- const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar);
120
- const [canRender, setCanRender] = React.useState(delayMs === void 0);
121
- React.useEffect(() => {
122
- if (delayMs !== void 0) {
123
- const timerId = setTimeout(() => setCanRender(true), delayMs);
124
- return () => clearTimeout(timerId);
125
- }
126
- }, [delayMs]);
127
- return canRender && context.imageLoadingStatus !== "loaded" ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(AvatarFallbackFrame, {
128
- ...fallbackProps,
129
- ref: forwardedRef
130
- }) : null;
131
- });
132
- AvatarFallback.displayName = FALLBACK_NAME;
133
- const AvatarFrame = (0, import_core.styled)(import_shapes.Square, {
134
- name: AVATAR_NAME,
135
- position: "relative",
136
- overflow: "hidden"
137
- });
138
- const Avatar = (0, import_helpers.withStaticProperties)(React.forwardRef((props, forwardedRef) => {
139
- const {
140
- __scopeAvatar,
141
- size = "$true",
142
- ...avatarProps
143
- } = props;
144
- const [imageLoadingStatus, setImageLoadingStatus] = React.useState("idle");
145
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(AvatarProvider, {
146
- size,
147
- scope: __scopeAvatar,
148
- imageLoadingStatus,
149
- onImageLoadingStatusChange: setImageLoadingStatus,
150
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(AvatarFrame, {
151
- size,
152
- ...avatarProps,
153
- ref: forwardedRef
154
- })
155
- });
156
- }), {
157
- Image: AvatarImage,
158
- Fallback: AvatarFallback
159
- });
160
- Avatar.displayName = AVATAR_NAME;