@tamagui/avatar 2.7.7 → 3.0.0-beta.1091.1

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.
@@ -7,40 +7,33 @@ var __getOwnPropNames = Object.getOwnPropertyNames;
7
7
  var __getProtoOf = Object.getPrototypeOf;
8
8
  var __hasOwnProp = Object.prototype.hasOwnProperty;
9
9
  var __export = (target, all) => {
10
- for (var name in all) __defProp(target, name, {
11
- get: all[name],
12
- enumerable: true
13
- });
10
+ for (var name in all) __defProp(target, name, {
11
+ get: all[name],
12
+ enumerable: true
13
+ });
14
14
  };
15
15
  var __copyProps = (to, from, except, desc) => {
16
- if (from && typeof from === "object" || typeof from === "function") {
17
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
18
- get: () => from[key],
19
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
20
- });
21
- }
22
- return to;
16
+ if (from && typeof from === "object" || typeof from === "function") {
17
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
18
+ get: () => from[key],
19
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
20
+ });
21
+ }
22
+ return to;
23
23
  };
24
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
25
- // If the importer is in node compatibility mode or this is not an ESM
26
- // file that has been converted to a CommonJS file using a Babel-
27
- // compatible transform (i.e. "__esModule" has not been set), then set
28
- // "default" to the CommonJS "module.exports" for node compatibility.
29
- isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
30
- value: mod,
31
- enumerable: true
24
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
25
+ value: mod,
26
+ enumerable: true
32
27
  }) : target, mod));
33
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
34
- value: true
35
- }), mod);
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
36
29
  var Avatar_exports = {};
37
30
  __export(Avatar_exports, {
38
- Avatar: () => Avatar,
39
- AvatarFallback: () => AvatarFallback,
40
- AvatarFallbackFrame: () => AvatarFallbackFrame,
41
- AvatarFrame: () => AvatarFrame,
42
- AvatarImage: () => AvatarImage,
43
- createAvatarScope: () => createAvatarScope
31
+ Avatar: () => Avatar,
32
+ AvatarFallback: () => AvatarFallback,
33
+ AvatarFallbackFrame: () => AvatarFallbackFrame,
34
+ AvatarFrame: () => AvatarFrame,
35
+ AvatarImage: () => AvatarImage,
36
+ createAvatarScope: () => createAvatarScope
44
37
  });
45
38
  module.exports = __toCommonJS(Avatar_exports);
46
39
  var import_jsx_runtime = require("react/jsx-runtime");
@@ -51,134 +44,105 @@ var import_image = require("@tamagui/image");
51
44
  var import_shapes = require("@tamagui/shapes");
52
45
  var import_stacks = require("@tamagui/stacks");
53
46
  var React = __toESM(require("react"), 1);
54
- function _type_of(obj) {
55
- "@swc/helpers - typeof";
56
-
57
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
58
- }
59
47
  var AVATAR_NAME = "Avatar";
60
48
  var [createAvatarContext, createAvatarScope] = (0, import_create_context.createContextScope)(AVATAR_NAME);
61
49
  var [AvatarProvider, useAvatarContext] = createAvatarContext(AVATAR_NAME);
62
50
  var IMAGE_NAME = "AvatarImage";
63
- var AvatarImage = /* @__PURE__ */React.forwardRef(function (props, forwardedRef) {
64
- var {
65
- __scopeAvatar,
66
- src,
67
- source,
68
- onLoadingStatusChange = function () {},
69
- ...imageProps
70
- } = props;
71
- var context = useAvatarContext(IMAGE_NAME, __scopeAvatar);
72
- var [status, setStatus] = React.useState("idle");
73
- var resolvedSrc = src || (source && (typeof source === "undefined" ? "undefined" : _type_of(source)) === "object" && "uri" in source ? source.uri : source);
74
- React.useEffect(function () {
75
- if (!resolvedSrc) {
76
- setStatus("error");
77
- } else {
78
- setStatus("idle");
79
- }
80
- }, [resolvedSrc]);
81
- React.useEffect(function () {
82
- onLoadingStatusChange(status);
83
- context.onImageLoadingStatusChange(status);
84
- }, [status]);
85
- if (!resolvedSrc) {
86
- return null;
87
- }
88
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_stacks.YStack, {
89
- fullscreen: true,
90
- zIndex: 1,
91
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_image.Image, {
92
- position: "absolute",
93
- top: 0,
94
- left: 0,
95
- right: 0,
96
- bottom: 0,
97
- objectFit: "cover",
98
- // fill the frame. previously the image was sized to
99
- // getShapeSize(context.size) — but that resolves a numeric `size`
100
- // (e.g. <Avatar size={16} />) as a size-TOKEN index (tokens.size[16]),
101
- // so it got the token-scale value (~224px) instead of 16px, blowing
102
- // the image far past its frame; object-fit:cover then showed a
103
- // blurry mis-cropped corner. the frame already owns the size, so the
104
- // image just fills it — correct for numeric and token sizes alike.
105
- width: "100%",
106
- height: "100%",
107
- ...imageProps,
108
- // @ts-ignore
109
- ref: forwardedRef,
110
- // @ts-ignore
111
- src: resolvedSrc,
112
- // onLoadStart={() => {
113
- // // setStatus('loading')
114
- // }}
115
- onError: function () {
116
- setStatus("error");
117
- },
118
- onLoad: function () {
119
- setStatus("loaded");
120
- }
121
- })
122
- });
51
+ var AvatarImage = (0, import_core.createRefComponent)(function(props, forwardedRef) {
52
+ var { __scopeAvatar, src, source, onLoadingStatusChange = function() {}, ...imageProps } = props;
53
+ var context = useAvatarContext(IMAGE_NAME, __scopeAvatar);
54
+ var [status, setStatus] = React.useState("idle");
55
+ var resolvedSrc = src || (source && typeof source === "object" && "uri" in source ? source.uri : source);
56
+ React.useEffect(function() {
57
+ if (!resolvedSrc) {
58
+ setStatus("error");
59
+ } else {
60
+ setStatus("idle");
61
+ }
62
+ }, [resolvedSrc]);
63
+ React.useEffect(function() {
64
+ onLoadingStatusChange(status);
65
+ context.onImageLoadingStatusChange(status);
66
+ }, [status]);
67
+ if (!resolvedSrc) {
68
+ return null;
69
+ }
70
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_stacks.YStack, {
71
+ position: "absolute",
72
+ inset: 0,
73
+ zIndex: 1,
74
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_image.Image, {
75
+ position: "absolute",
76
+ top: 0,
77
+ left: 0,
78
+ right: 0,
79
+ bottom: 0,
80
+ objectFit: "cover",
81
+ width: "100%",
82
+ height: "100%",
83
+ ...imageProps,
84
+ ref: forwardedRef,
85
+ src: resolvedSrc,
86
+ onError: function() {
87
+ setStatus("error");
88
+ },
89
+ onLoad: function() {
90
+ setStatus("loaded");
91
+ }
92
+ })
93
+ });
123
94
  });
124
95
  AvatarImage.displayName = IMAGE_NAME;
125
96
  var FALLBACK_NAME = "AvatarFallback";
126
97
  var AvatarFallbackFrame = (0, import_core.styled)(import_stacks.YStack, {
127
- name: FALLBACK_NAME,
128
- position: "absolute",
129
- fullscreen: true,
130
- zIndex: 0
98
+ displayName: FALLBACK_NAME,
99
+ position: "absolute",
100
+ inset: 0,
101
+ zIndex: 0
131
102
  });
132
- var AvatarFallback = AvatarFallbackFrame.styleable(function (props, forwardedRef) {
133
- var {
134
- __scopeAvatar,
135
- delayMs,
136
- ...fallbackProps
137
- } = props;
138
- var context = useAvatarContext(FALLBACK_NAME, __scopeAvatar);
139
- var [canRender, setCanRender] = React.useState(delayMs === void 0);
140
- React.useEffect(function () {
141
- if (delayMs !== void 0) {
142
- var timerId = setTimeout(function () {
143
- return setCanRender(true);
144
- }, delayMs);
145
- return function () {
146
- return clearTimeout(timerId);
147
- };
148
- }
149
- }, [delayMs]);
150
- return canRender && context.imageLoadingStatus !== "loaded" ? /* @__PURE__ */(0, import_jsx_runtime.jsx)(AvatarFallbackFrame, {
151
- ...fallbackProps,
152
- ref: forwardedRef
153
- }) : null;
103
+ var AvatarFallback = (0, import_core.createStyledHOC)(AvatarFallbackFrame, function(props, forwardedRef) {
104
+ var { __scopeAvatar, delay, ...fallbackProps } = props;
105
+ var context = useAvatarContext(FALLBACK_NAME, __scopeAvatar);
106
+ var [canRender, setCanRender] = React.useState(delay === void 0);
107
+ React.useEffect(function() {
108
+ if (delay !== void 0) {
109
+ var timerId = setTimeout(function() {
110
+ return setCanRender(true);
111
+ }, delay);
112
+ return function() {
113
+ return clearTimeout(timerId);
114
+ };
115
+ }
116
+ }, [delay]);
117
+ return canRender && context.imageLoadingStatus !== "loaded" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AvatarFallbackFrame, {
118
+ ...fallbackProps,
119
+ ref: forwardedRef
120
+ }) : null;
154
121
  });
155
122
  AvatarFallback.displayName = FALLBACK_NAME;
156
123
  var AvatarFrame = (0, import_core.styled)(import_shapes.Square, {
157
- name: AVATAR_NAME,
158
- position: "relative",
159
- overflow: "hidden"
124
+ displayName: AVATAR_NAME,
125
+ position: "relative",
126
+ overflow: "hidden"
160
127
  });
161
- var Avatar = (0, import_helpers.withStaticProperties)(/* @__PURE__ */React.forwardRef(function (props, forwardedRef) {
162
- var {
163
- __scopeAvatar,
164
- size = "$true",
165
- ...avatarProps
166
- } = props;
167
- var [imageLoadingStatus, setImageLoadingStatus] = React.useState("idle");
168
- return /* @__PURE__ */(0, import_jsx_runtime.jsx)(AvatarProvider, {
169
- size,
170
- scope: __scopeAvatar,
171
- imageLoadingStatus,
172
- onImageLoadingStatusChange: setImageLoadingStatus,
173
- children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(AvatarFrame, {
174
- size,
175
- ...avatarProps,
176
- ref: forwardedRef
177
- })
178
- });
128
+ var Avatar = (0, import_helpers.withStaticProperties)((0, import_core.createRefComponent)(function(props, forwardedRef) {
129
+ var { __scopeAvatar, size = true, ...avatarProps } = props;
130
+ var [imageLoadingStatus, setImageLoadingStatus] = React.useState("idle");
131
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AvatarProvider, {
132
+ size,
133
+ scope: __scopeAvatar,
134
+ imageLoadingStatus,
135
+ onImageLoadingStatusChange: setImageLoadingStatus,
136
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AvatarFrame, {
137
+ size,
138
+ ...avatarProps,
139
+ ref: forwardedRef
140
+ })
141
+ });
179
142
  }), {
180
- Image: AvatarImage,
181
- Fallback: AvatarFallback
143
+ Image: AvatarImage,
144
+ Fallback: AvatarFallback
182
145
  });
183
146
  Avatar.displayName = AVATAR_NAME;
147
+
184
148
  //# sourceMappingURL=Avatar.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","Avatar_exports","Avatar","AvatarFallback","AvatarFallbackFrame","AvatarFrame","AvatarImage","createAvatarScope","module","exports","import_jsx_runtime","require","import_core","import_create_context","import_helpers","import_image","import_shapes","import_stacks","React","_type_of","obj","Symbol","constructor","AVATAR_NAME","createAvatarContext","createContextScope","AvatarProvider","useAvatarContext","IMAGE_NAME","forwardRef","props","forwardedRef","__scopeAvatar","src","source","onLoadingStatusChange","imageProps","context","status","setStatus","useState","resolvedSrc","uri","useEffect","onImageLoadingStatusChange","jsx","YStack","fullscreen","zIndex","children","Image","position","top","left","right","bottom","objectFit","width","height","ref","onError","onLoad"],"sources":["../../src/Avatar.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Avatar.native.js","names":[],"sources":["jsx/Avatar.native.js"],"sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar Avatar_exports = {};\n__export(Avatar_exports, {\n Avatar: () => Avatar,\n AvatarFallback: () => AvatarFallback,\n AvatarFallbackFrame: () => AvatarFallbackFrame,\n AvatarFrame: () => AvatarFrame,\n AvatarImage: () => AvatarImage,\n createAvatarScope: () => createAvatarScope\n});\nmodule.exports = __toCommonJS(Avatar_exports);\nvar import_jsx_runtime = require(\"react/jsx-runtime\");\nvar import_core = require(\"@tamagui/core\");\nvar import_create_context = require(\"@tamagui/create-context\");\nvar import_helpers = require(\"@tamagui/helpers\");\nvar import_image = require(\"@tamagui/image\");\nvar import_shapes = require(\"@tamagui/shapes\");\nvar import_stacks = require(\"@tamagui/stacks\");\nvar React = __toESM(require(\"react\"), 1);\nvar AVATAR_NAME = \"Avatar\";\nvar [createAvatarContext, createAvatarScope] = (0, import_create_context.createContextScope)(AVATAR_NAME);\nvar [AvatarProvider, useAvatarContext] = createAvatarContext(AVATAR_NAME);\nvar IMAGE_NAME = \"AvatarImage\";\nvar AvatarImage = (0, import_core.createRefComponent)(function(props, forwardedRef) {\n var { __scopeAvatar, src, source, onLoadingStatusChange = function() {\n }, ...imageProps } = props;\n var context = useAvatarContext(IMAGE_NAME, __scopeAvatar);\n var [status, setStatus] = React.useState(\"idle\");\n var resolvedSrc = src || (source && typeof source === \"object\" && \"uri\" in source ? source.uri : source);\n React.useEffect(function() {\n if (!resolvedSrc) {\n setStatus(\"error\");\n } else {\n setStatus(\"idle\");\n }\n }, [\n resolvedSrc\n ]);\n React.useEffect(function() {\n onLoadingStatusChange(status);\n context.onImageLoadingStatusChange(status);\n }, [\n status\n ]);\n if (!resolvedSrc) {\n return null;\n }\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_stacks.YStack, {\n position: \"absolute\",\n inset: 0,\n zIndex: 1,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_image.Image, {\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n objectFit: \"cover\",\n // fill the frame. previously the image was sized to\n // getShapeSize(context.size) — but that resolves a numeric `size`\n // (e.g. <Avatar size={16} />) as a size-TOKEN index (tokens.size[16]),\n // so it got the token-scale value (~224px) instead of 16px, blowing\n // the image far past its frame; object-fit:cover then showed a\n // blurry mis-cropped corner. the frame already owns the size, so the\n // image just fills it — correct for numeric and token sizes alike.\n width: \"100%\",\n height: \"100%\",\n ...imageProps,\n // @ts-ignore\n ref: forwardedRef,\n // @ts-ignore\n src: resolvedSrc,\n // onLoadStart={() => {\n // // setStatus('loading')\n // }}\n onError: function() {\n setStatus(\"error\");\n },\n onLoad: function() {\n setStatus(\"loaded\");\n }\n })\n });\n});\nAvatarImage.displayName = IMAGE_NAME;\nvar FALLBACK_NAME = \"AvatarFallback\";\nvar AvatarFallbackFrame = (0, import_core.styled)(import_stacks.YStack, {\n displayName: FALLBACK_NAME,\n position: \"absolute\",\n inset: 0,\n zIndex: 0\n});\nvar AvatarFallback = (0, import_core.createStyledHOC)(AvatarFallbackFrame, function(props, forwardedRef) {\n var { __scopeAvatar, delay, ...fallbackProps } = props;\n var context = useAvatarContext(FALLBACK_NAME, __scopeAvatar);\n var [canRender, setCanRender] = React.useState(delay === void 0);\n React.useEffect(function() {\n if (delay !== void 0) {\n var timerId = setTimeout(function() {\n return setCanRender(true);\n }, delay);\n return function() {\n return clearTimeout(timerId);\n };\n }\n }, [\n delay\n ]);\n return canRender && context.imageLoadingStatus !== \"loaded\" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AvatarFallbackFrame, {\n ...fallbackProps,\n ref: forwardedRef\n }) : null;\n});\nAvatarFallback.displayName = FALLBACK_NAME;\nvar AvatarFrame = (0, import_core.styled)(import_shapes.Square, {\n displayName: AVATAR_NAME,\n position: \"relative\",\n overflow: \"hidden\"\n});\nvar Avatar = (0, import_helpers.withStaticProperties)((0, import_core.createRefComponent)(function(props, forwardedRef) {\n var { __scopeAvatar, size = true, ...avatarProps } = props;\n var [imageLoadingStatus, setImageLoadingStatus] = React.useState(\"idle\");\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AvatarProvider, {\n size,\n scope: __scopeAvatar,\n imageLoadingStatus,\n onImageLoadingStatusChange: setImageLoadingStatus,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AvatarFrame, {\n size,\n ...avatarProps,\n ref: forwardedRef\n })\n });\n}), {\n Image: AvatarImage,\n Fallback: AvatarFallback\n});\nAvatar.displayName = AVATAR_NAME;\n//# sourceMappingURL=Avatar.js.map\n"],"mappings":"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"}
package/dist/jsx/index.js CHANGED
@@ -1,2 +1 @@
1
- export * from "./Avatar.mjs";
2
- //# sourceMappingURL=index.js.map
1
+ export * from "./Avatar.mjs"
@@ -1,2 +1 @@
1
- export * from "./Avatar.mjs";
2
- //# sourceMappingURL=index.mjs.map
1
+ export * from "./Avatar.mjs"
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __copyProps = (to, from, except, desc) => {
8
+ if (from && typeof from === "object" || typeof from === "function") {
9
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
10
+ get: () => from[key],
11
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
12
+ });
13
+ }
14
+ return to;
15
+ };
16
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+ var index_exports = {};
19
+ module.exports = __toCommonJS(index_exports);
20
+ __reExport(index_exports, require("./Avatar.native.js"), module.exports);
@@ -5,19 +5,18 @@ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
5
  var __getOwnPropNames = Object.getOwnPropertyNames;
6
6
  var __hasOwnProp = Object.prototype.hasOwnProperty;
7
7
  var __copyProps = (to, from, except, desc) => {
8
- if (from && typeof from === "object" || typeof from === "function") {
9
- for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
10
- get: () => from[key],
11
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
12
- });
13
- }
14
- return to;
8
+ if (from && typeof from === "object" || typeof from === "function") {
9
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
10
+ get: () => from[key],
11
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
12
+ });
13
+ }
14
+ return to;
15
15
  };
16
16
  var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
17
- var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
18
- value: true
19
- }), mod);
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
18
  var index_exports = {};
21
19
  module.exports = __toCommonJS(index_exports);
22
20
  __reExport(index_exports, require("./Avatar.native.js"), module.exports);
21
+
23
22
  //# sourceMappingURL=index.native.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA","ignoreList":[]}
1
+ {"version":3,"file":"index.native.js","names":[],"sources":["jsx/index.native.js"],"sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, \"default\"), secondTarget && __copyProps(secondTarget, mod, \"default\"));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar index_exports = {};\nmodule.exports = __toCommonJS(index_exports);\n__reExport(index_exports, require(\"./Avatar\"), module.exports);\n//# sourceMappingURL=index.js.map\n"],"mappings":";;;AACA,IAAI,YAAY,OAAO;AACvB,IAAI,mBAAmB,OAAO;AAC9B,IAAI,oBAAoB,OAAO;AAC/B,IAAI,eAAe,OAAO,UAAU;AACpC,IAAI,eAAe,IAAI,MAAM,QAAQ,SAAS;CAC5C,IAAI,QAAQ,OAAO,SAAS,YAAY,OAAO,SAAS,YAAY;EAClE,KAAK,IAAI,OAAO,kBAAkB,IAAI,GACpC,IAAI,CAAC,aAAa,KAAK,IAAI,GAAG,KAAK,QAAQ,QACzC,UAAU,IAAI,KAAK;GAAE,WAAW,KAAK;GAAM,YAAY,EAAE,OAAO,iBAAiB,MAAM,GAAG,MAAM,KAAK;EAAW,CAAC;CACvH;CACA,OAAO;AACT;AACA,IAAI,cAAc,QAAQ,KAAK,kBAAkB,YAAY,QAAQ,KAAK,SAAS,GAAG,gBAAgB,YAAY,cAAc,KAAK,SAAS;AAC9I,IAAI,gBAAgB,QAAQ,YAAY,UAAU,CAAC,GAAG,cAAc,EAAE,OAAO,KAAK,CAAC,GAAG,GAAG;AACzF,IAAI,gBAAgB,CAAC;AACrB,OAAO,UAAU,aAAa,aAAa;AAC3C,WAAW,eAAe,QAAQ,oBAAU,GAAG,OAAO,OAAO"}
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@tamagui/avatar",
3
- "version": "2.7.7",
3
+ "version": "3.0.0-beta.1091.1",
4
+ "license": "MIT",
4
5
  "source": "src/index.ts",
5
6
  "files": [
6
7
  "src",
@@ -34,18 +35,18 @@
34
35
  "clean:build": "tamagui-build clean:build"
35
36
  },
36
37
  "dependencies": {
37
- "@tamagui/core": "2.7.7",
38
- "@tamagui/create-context": "2.7.7",
39
- "@tamagui/helpers": "2.7.7",
40
- "@tamagui/image": "2.7.7",
41
- "@tamagui/shapes": "2.7.7",
42
- "@tamagui/stacks": "2.7.7",
43
- "@tamagui/text": "2.7.7"
38
+ "@tamagui/core": "3.0.0-beta.1091.1",
39
+ "@tamagui/create-context": "3.0.0-beta.1091.1",
40
+ "@tamagui/helpers": "3.0.0-beta.1091.1",
41
+ "@tamagui/image": "3.0.0-beta.1091.1",
42
+ "@tamagui/shapes": "3.0.0-beta.1091.1",
43
+ "@tamagui/stacks": "3.0.0-beta.1091.1",
44
+ "@tamagui/text": "3.0.0-beta.1091.1"
44
45
  },
45
46
  "devDependencies": {
46
- "@tamagui/build": "2.7.7",
47
- "react": ">=19",
48
- "react-native": "0.83.2"
47
+ "@tamagui/build": "3.0.0-beta.1091.1",
48
+ "react": "19.2.3",
49
+ "react-native": "0.86.2"
49
50
  },
50
51
  "peerDependencies": {
51
52
  "react": ">=19"
package/src/Avatar.tsx CHANGED
@@ -1,7 +1,7 @@
1
1
  // forked from radix https://github.com/radix-ui/primitives/blob/main/packages/react/avatar/src/Avatar.tsx
2
2
 
3
3
  import type { GetProps, SizeTokens, TamaguiElement } from '@tamagui/core'
4
- import { styled } from '@tamagui/core'
4
+ import { createStyledHOC, styled, createRefComponent } from '@tamagui/core'
5
5
  import type { Scope } from '@tamagui/create-context'
6
6
  import { createContextScope } from '@tamagui/create-context'
7
7
  import { withStaticProperties } from '@tamagui/helpers'
@@ -19,7 +19,8 @@ const [createAvatarContext, createAvatarScope] = createContextScope(AVATAR_NAME)
19
19
  type ImageLoadingStatus = 'idle' | 'loading' | 'loaded' | 'error'
20
20
 
21
21
  type AvatarContextValue = {
22
- size: SizeTokens
22
+ // mirrors the frame's own size prop; nothing reads it for shape math anymore
23
+ size: AvatarProps['size'] | true
23
24
  imageLoadingStatus: ImageLoadingStatus
24
25
  onImageLoadingStatusChange(status: ImageLoadingStatus): void
25
26
  }
@@ -37,7 +38,7 @@ type AvatarImageProps = Partial<ImageProps> & {
37
38
  onLoadingStatusChange?: (status: ImageLoadingStatus) => void
38
39
  }
39
40
 
40
- const AvatarImage = React.forwardRef<TamaguiElement, AvatarImageProps>(
41
+ const AvatarImage = createRefComponent<TamaguiElement, AvatarImageProps>(
41
42
  (props: ScopedProps<AvatarImageProps>, forwardedRef) => {
42
43
  const {
43
44
  __scopeAvatar,
@@ -74,7 +75,7 @@ const AvatarImage = React.forwardRef<TamaguiElement, AvatarImageProps>(
74
75
  }
75
76
 
76
77
  return (
77
- <YStack fullscreen zIndex={1}>
78
+ <YStack position="absolute" inset={0} zIndex={1}>
78
79
  <Image
79
80
  position="absolute"
80
81
  top={0}
@@ -120,35 +121,37 @@ AvatarImage.displayName = IMAGE_NAME
120
121
  const FALLBACK_NAME = 'AvatarFallback'
121
122
 
122
123
  export const AvatarFallbackFrame = styled(YStack, {
123
- name: FALLBACK_NAME,
124
+ displayName: FALLBACK_NAME,
124
125
  position: 'absolute',
125
- fullscreen: true,
126
+ inset: 0,
126
127
  zIndex: 0,
127
128
  })
128
129
 
129
130
  type AvatarFallbackExtraProps = {
130
- delayMs?: number
131
+ /** The delay in milliseconds before the fallback renders. */
132
+ delay?: number
131
133
  }
132
134
  type AvatarFallbackProps = GetProps<typeof AvatarFallbackFrame> & AvatarFallbackExtraProps
133
135
 
134
- const AvatarFallback = AvatarFallbackFrame.styleable<
135
- ScopedProps<AvatarFallbackExtraProps>
136
- >((props, forwardedRef) => {
137
- const { __scopeAvatar, delayMs, ...fallbackProps } = props
138
- const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar)
139
- const [canRender, setCanRender] = React.useState(delayMs === undefined)
140
-
141
- React.useEffect(() => {
142
- if (delayMs !== undefined) {
143
- const timerId = setTimeout(() => setCanRender(true), delayMs)
144
- return () => clearTimeout(timerId)
145
- }
146
- }, [delayMs])
136
+ const AvatarFallback = createStyledHOC(
137
+ AvatarFallbackFrame,
138
+ (props: ScopedProps<AvatarFallbackExtraProps>, forwardedRef) => {
139
+ const { __scopeAvatar, delay, ...fallbackProps } = props
140
+ const context = useAvatarContext(FALLBACK_NAME, __scopeAvatar)
141
+ const [canRender, setCanRender] = React.useState(delay === undefined)
147
142
 
148
- return canRender && context.imageLoadingStatus !== 'loaded' ? (
149
- <AvatarFallbackFrame {...fallbackProps} ref={forwardedRef} />
150
- ) : null
151
- })
143
+ React.useEffect(() => {
144
+ if (delay !== undefined) {
145
+ const timerId = setTimeout(() => setCanRender(true), delay)
146
+ return () => clearTimeout(timerId)
147
+ }
148
+ }, [delay])
149
+
150
+ return canRender && context.imageLoadingStatus !== 'loaded' ? (
151
+ <AvatarFallbackFrame {...fallbackProps} ref={forwardedRef} />
152
+ ) : null
153
+ }
154
+ )
152
155
 
153
156
  AvatarFallback.displayName = FALLBACK_NAME
154
157
 
@@ -157,7 +160,7 @@ AvatarFallback.displayName = FALLBACK_NAME
157
160
  * -----------------------------------------------------------------------------------------------*/
158
161
 
159
162
  export const AvatarFrame = styled(Square, {
160
- name: AVATAR_NAME,
163
+ displayName: AVATAR_NAME,
161
164
  position: 'relative',
162
165
  overflow: 'hidden',
163
166
  })
@@ -170,19 +173,19 @@ type AvatarProps = GetProps<typeof AvatarFrame>
170
173
  *
171
174
  * @example
172
175
  * ```tsx
173
- * <Avatar circular size="$10">
176
+ * <Avatar circular size="10">
174
177
  * <Avatar.Image
175
178
  * aria-label="Cam"
176
179
  * src="https://images.unsplash.com/photo-1548142813-c348350df52b?&w=150&h=150&dpr=2&q=80"
177
180
  * />
178
- * <Avatar.Fallback backgroundColor="$blue10" />
181
+ * <Avatar.Fallback backgroundColor="blue10" />
179
182
  * </Avatar>
180
183
  * ```
181
184
  */
182
185
  const Avatar = withStaticProperties(
183
- React.forwardRef<TamaguiElement, AvatarProps>(
186
+ createRefComponent<TamaguiElement, AvatarProps>(
184
187
  (props: ScopedProps<AvatarProps>, forwardedRef) => {
185
- const { __scopeAvatar, size = '$true', ...avatarProps } = props
188
+ const { __scopeAvatar, size = true, ...avatarProps } = props
186
189
  const [imageLoadingStatus, setImageLoadingStatus] =
187
190
  React.useState<ImageLoadingStatus>('idle')
188
191
  return (