@oxyhq/bloom 0.1.15 → 0.1.16

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.
@@ -35,6 +35,7 @@ function SquircleImage({
35
35
  fallbackSource,
36
36
  size,
37
37
  fallbackColor,
38
+ placeholderIcon,
38
39
  onError
39
40
  }) {
40
41
  const svg = getSvgModule();
@@ -42,7 +43,8 @@ function SquircleImage({
42
43
  // Fallback to circle if react-native-svg is not installed
43
44
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(CircleFallback, {
44
45
  size: size,
45
- fallbackColor: fallbackColor
46
+ fallbackColor: fallbackColor,
47
+ icon: placeholderIcon
46
48
  });
47
49
  }
48
50
  const {
@@ -59,7 +61,8 @@ function SquircleImage({
59
61
  if (!href) {
60
62
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(CircleFallback, {
61
63
  size: size,
62
- fallbackColor: fallbackColor
64
+ fallbackColor: fallbackColor,
65
+ icon: placeholderIcon
63
66
  });
64
67
  }
65
68
  return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
@@ -92,7 +95,8 @@ function SquircleImage({
92
95
  }
93
96
  function CircleFallback({
94
97
  size,
95
- fallbackColor
98
+ fallbackColor,
99
+ icon
96
100
  }) {
97
101
  const radius = size / 2;
98
102
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
@@ -100,8 +104,12 @@ function CircleFallback({
100
104
  width: size,
101
105
  height: size,
102
106
  borderRadius: radius,
103
- backgroundColor: fallbackColor
104
- }
107
+ backgroundColor: fallbackColor,
108
+ justifyContent: 'center',
109
+ alignItems: 'center',
110
+ overflow: 'hidden'
111
+ },
112
+ children: icon ?? null
105
113
  });
106
114
  }
107
115
  const AvatarComponent = ({
@@ -114,13 +122,15 @@ const AvatarComponent = ({
114
122
  shape = 'circle',
115
123
  style,
116
124
  imageStyle,
125
+ placeholderColor,
126
+ placeholderIcon,
117
127
  onPress,
118
128
  testID
119
129
  }) => {
120
130
  const [errored, setErrored] = (0, _react.useState)(false);
121
131
  const theme = (0, _useTheme.useTheme)();
122
132
  const radius = size / 2;
123
- const fallbackColor = theme.colors.backgroundTertiary;
133
+ const fallbackColor = placeholderColor || theme.colors.backgroundTertiary;
124
134
 
125
135
  // Reset error state when source changes (e.g., list item recycling
126
136
  // or async URL resolution replacing an initial file ID).
@@ -171,6 +181,7 @@ const AvatarComponent = ({
171
181
  fallbackSource: fallbackSource,
172
182
  size: size,
173
183
  fallbackColor: fallbackColor,
184
+ placeholderIcon: placeholderIcon,
174
185
  onError: () => setErrored(true)
175
186
  }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
176
187
  style: [styles.imageContainer, {
@@ -187,7 +198,8 @@ const AvatarComponent = ({
187
198
  }, imageStyle]
188
199
  }) : /*#__PURE__*/(0, _jsxRuntime.jsx)(CircleFallback, {
189
200
  size: size,
190
- fallbackColor: fallbackColor
201
+ fallbackColor: fallbackColor,
202
+ icon: placeholderIcon
191
203
  })
192
204
  }), verified && verifiedIcon && /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
193
205
  style: [styles.verifiedBadge, {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useTheme","_context","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SQUIRCLE_PATH","clipIdCounter","svgModule","svgModuleResolved","getSvgModule","SquircleImage","uri","fallbackSource","size","fallbackColor","onError","svg","jsx","CircleFallback","Svg","Defs","ClipPath","Path","Image","SvgImage","clipId","useMemo","href","jsxs","Fragment","children","source","style","styles","errorDetector","width","height","viewBox","id","d","preserveAspectRatio","clipPath","radius","View","borderRadius","backgroundColor","AvatarComponent","verified","verifiedIcon","shape","imageStyle","onPress","testID","errored","setErrored","useState","theme","useTheme","colors","backgroundTertiary","prevSourceRef","useRef","prevUriRef","current","imageResolver","useImageResolver","resolvedUri","startsWith","resolvedImageSource","undefined","effectiveUri","imageSource","content","container","imageContainer","resizeMode","StyleSheet","absoluteFillObject","verifiedBadge","TouchableOpacity","create","position","overflow","justifyContent","alignItems","bottom","right","zIndex","opacity","Avatar","exports","memo","displayName"],"sourceRoot":"../../../src","sources":["avatar/Avatar.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAA6D,IAAAI,WAAA,GAAAJ,OAAA;AAAA,SAAAD,wBAAAM,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAR,uBAAA,YAAAA,CAAAM,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAG7D;AACA,MAAMkB,aAAa,GACjB,2PAA2P,GAC3P,gOAAgO,GAChO,gOAAgO,GAChO,iOAAiO;AAEnO,IAAIC,aAAa,GAAG,CAAC;;AAErB;AACA;;AAEA,IAAIC,SAA+B,GAAG,IAAI;AAC1C,IAAIC,iBAAiB,GAAG,KAAK;AAE7B,SAASC,YAAYA,CAAA,EAAyB;EAC5C,IAAI,CAACD,iBAAiB,EAAE;IACtBA,iBAAiB,GAAG,IAAI;IACxB,IAAI;MACFD,SAAS,GAAG1B,OAAO,CAAC,kBAAkB,CAAC;IACzC,CAAC,CAAC,MAAM;MACN0B,SAAS,GAAG,IAAI;IAClB;EACF;EACA,OAAOA,SAAS;AAClB;AAEA,SAASG,aAAaA,CAAC;EACrBC,GAAG;EACHC,cAAc;EACdC,IAAI;EACJC,aAAa;EACbC;AAOF,CAAC,EAAE;EACD,MAAMC,GAAG,GAAGP,YAAY,CAAC,CAAC;EAC1B,IAAI,CAACO,GAAG,EAAE;IACR;IACA,oBAAO,IAAA/B,WAAA,CAAAgC,GAAA,EAACC,cAAc;MAACL,IAAI,EAAEA,IAAK;MAACC,aAAa,EAAEA;IAAc,CAAE,CAAC;EACrE;EAEA,MAAM;IAAElB,OAAO,EAAEuB,GAAG;IAAEC,IAAI;IAAEC,QAAQ;IAAEC,IAAI;IAAEC,KAAK,EAAEC;EAAS,CAAC,GAAGR,GAAG;EACnE,MAAMS,MAAM,GAAG,IAAAC,cAAO,EAAC,MAAM,YAAYpB,aAAa,EAAE,EAAE,EAAE,EAAE,CAAC;EAE/D,MAAMqB,IAAI,GAAGhB,GAAG,GAAG;IAAEA;EAAI,CAAC,GAAGC,cAAc;EAC3C,IAAI,CAACe,IAAI,EAAE;IACT,oBAAO,IAAA1C,WAAA,CAAAgC,GAAA,EAACC,cAAc;MAACL,IAAI,EAAEA,IAAK;MAACC,aAAa,EAAEA;IAAc,CAAE,CAAC;EACrE;EAEA,oBACE,IAAA7B,WAAA,CAAA2C,IAAA,EAAA3C,WAAA,CAAA4C,QAAA;IAAAC,QAAA,GAEGnB,GAAG,iBACF,IAAA1B,WAAA,CAAAgC,GAAA,EAACnC,YAAA,CAAAyC,KAAK;MACJQ,MAAM,EAAE;QAAEpB;MAAI,CAAE;MAChBqB,KAAK,EAAEC,MAAM,CAACC,aAAc;MAC5BnB,OAAO,EAAEA;IAAQ,CAClB,CACF,eACD,IAAA9B,WAAA,CAAA2C,IAAA,EAACT,GAAG;MAACgB,KAAK,EAAEtB,IAAK;MAACuB,MAAM,EAAEvB,IAAK;MAACwB,OAAO,EAAC,SAAS;MAAAP,QAAA,gBAC/C,IAAA7C,WAAA,CAAAgC,GAAA,EAACG,IAAI;QAAAU,QAAA,eACH,IAAA7C,WAAA,CAAAgC,GAAA,EAACI,QAAQ;UAACiB,EAAE,EAAEb,MAAO;UAAAK,QAAA,eACnB,IAAA7C,WAAA,CAAAgC,GAAA,EAACK,IAAI;YAACiB,CAAC,EAAElC;UAAc,CAAE;QAAC,CAClB;MAAC,CACP,CAAC,eACP,IAAApB,WAAA,CAAAgC,GAAA,EAACO,QAAQ;QACPG,IAAI,EAAEA,IAAK;QACXQ,KAAK,EAAE,CAAE;QACTC,MAAM,EAAE,CAAE;QACVI,mBAAmB,EAAC,gBAAgB;QACpCC,QAAQ,EAAE,QAAQhB,MAAM;MAAI,CAC7B,CAAC;IAAA,CACC,CAAC;EAAA,CACN,CAAC;AAEP;AAEA,SAASP,cAAcA,CAAC;EAAEL,IAAI;EAAEC;AAAuD,CAAC,EAAE;EACxF,MAAM4B,MAAM,GAAG7B,IAAI,GAAG,CAAC;EACvB,oBACE,IAAA5B,WAAA,CAAAgC,GAAA,EAACnC,YAAA,CAAA6D,IAAI;IACHX,KAAK,EAAE;MACLG,KAAK,EAAEtB,IAAI;MACXuB,MAAM,EAAEvB,IAAI;MACZ+B,YAAY,EAAEF,MAAM;MACpBG,eAAe,EAAE/B;IACnB;EAAE,CACH,CAAC;AAEN;AAEA,MAAMgC,eAAsC,GAAGA,CAAC;EAC9Cf,MAAM;EACNpB,GAAG;EACHC,cAAc;EACdC,IAAI,GAAG,EAAE;EACTkC,QAAQ,GAAG,KAAK;EAChBC,YAAY;EACZC,KAAK,GAAG,QAAQ;EAChBjB,KAAK;EACLkB,UAAU;EACVC,OAAO;EACPC;AACF,CAAC,KAAK;EACJ,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAC,eAAQ,EAAC,KAAK,CAAC;EAC7C,MAAMC,KAAK,GAAG,IAAAC,kBAAQ,EAAC,CAAC;EACxB,MAAMf,MAAM,GAAG7B,IAAI,GAAG,CAAC;EACvB,MAAMC,aAAa,GAAG0C,KAAK,CAACE,MAAM,CAACC,kBAAkB;;EAErD;EACA;EACA;EACA,MAAMC,aAAa,GAAG,IAAAC,aAAM,EAAC9B,MAAM,CAAC;EACpC,MAAM+B,UAAU,GAAG,IAAAD,aAAM,EAAClD,GAAG,CAAC;EAC9B,IAAIiD,aAAa,CAACG,OAAO,KAAKhC,MAAM,IAAI+B,UAAU,CAACC,OAAO,KAAKpD,GAAG,EAAE;IAClEiD,aAAa,CAACG,OAAO,GAAGhC,MAAM;IAC9B+B,UAAU,CAACC,OAAO,GAAGpD,GAAG;IACxB,IAAI0C,OAAO,EAAE;MACXC,UAAU,CAAC,KAAK,CAAC;IACnB;EACF;EAEA,MAAMU,aAAa,GAAG,IAAAC,yBAAgB,EAAC,CAAC;;EAExC;EACA;EACA;EACA,MAAMC,WAAW,GAAG,IAAAxC,cAAO,EAAC,MAAM;IAChC,IAAI,OAAOK,MAAM,KAAK,QAAQ,EAAE;MAC9B,IAAIA,MAAM,CAACoC,UAAU,CAAC,SAAS,CAAC,IAAIpC,MAAM,CAACoC,UAAU,CAAC,UAAU,CAAC,IAAIpC,MAAM,CAACoC,UAAU,CAAC,OAAO,CAAC,EAAE;QAC/F,OAAOpC,MAAM;MACf;MACA,OAAOiC,aAAa,GAAGjC,MAAM,CAAC;IAChC;IACA,OAAOpB,GAAG;EACZ,CAAC,EAAE,CAACoB,MAAM,EAAEpB,GAAG,EAAEqD,aAAa,CAAC,CAAC;EAEhC,MAAMI,mBAAmB,GAAG,IAAA1C,cAAO,EAAC,MAAM;IACxC,IAAIK,MAAM,IAAI,IAAI,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE,OAAOA,MAAM;IAC/D,OAAOsC,SAAS;EAClB,CAAC,EAAE,CAACtC,MAAM,CAAC,CAAC;EAEZ,MAAMuC,YAAY,GAAGjB,OAAO,GAAGgB,SAAS,GAAGH,WAAW;EAEtD,MAAMK,WAAW,GAAG,IAAA7C,cAAO,EAAC,MAAM;IAChC,IAAI4C,YAAY,EAAE,OAAO;MAAE3D,GAAG,EAAE2D;IAAa,CAAC;IAC9C,IAAIF,mBAAmB,EAAE,OAAOA,mBAAmB;IACnD,OAAOxD,cAAc;EACvB,CAAC,EAAE,CAAC0D,YAAY,EAAEF,mBAAmB,EAAExD,cAAc,CAAC,CAAC;EAEvD,MAAM4D,OAAO,gBACX,IAAAvF,WAAA,CAAA2C,IAAA,EAAC9C,YAAA,CAAA6D,IAAI;IAACX,KAAK,EAAE,CAACC,MAAM,CAACwC,SAAS,EAAE;MAAEtC,KAAK,EAAEtB,IAAI;MAAEuB,MAAM,EAAEvB;IAAK,CAAC,EAAEmB,KAAK,CAAE;IAACoB,MAAM,EAAEA,MAAO;IAAAtB,QAAA,GACnFmB,KAAK,KAAK,UAAU,gBACnB,IAAAhE,WAAA,CAAAgC,GAAA,EAACP,aAAa;MACZC,GAAG,EAAE2D,YAAa;MAClB1D,cAAc,EAAEA,cAAe;MAC/BC,IAAI,EAAEA,IAAK;MACXC,aAAa,EAAEA,aAAc;MAC7BC,OAAO,EAAEA,CAAA,KAAMuC,UAAU,CAAC,IAAI;IAAE,CACjC,CAAC,gBAEF,IAAArE,WAAA,CAAAgC,GAAA,EAACnC,YAAA,CAAA6D,IAAI;MAACX,KAAK,EAAE,CAACC,MAAM,CAACyC,cAAc,EAAE;QAAEvC,KAAK,EAAEtB,IAAI;QAAEuB,MAAM,EAAEvB,IAAI;QAAE+B,YAAY,EAAEF;MAAO,CAAC,CAAE;MAAAZ,QAAA,EACvFyC,WAAW,gBACV,IAAAtF,WAAA,CAAAgC,GAAA,EAACnC,YAAA,CAAAyC,KAAK;QACJQ,MAAM,EAAEwC,WAAY;QACpBxD,OAAO,EAAEA,CAAA,KAAMuC,UAAU,CAAC,IAAI,CAAE;QAChCqB,UAAU,EAAC,OAAO;QAClB3C,KAAK,EAAE,CAAC4C,uBAAU,CAACC,kBAAkB,EAAE;UAAEjC,YAAY,EAAEF;QAAO,CAAC,EAAEQ,UAAU;MAAE,CAC9E,CAAC,gBAEF,IAAAjE,WAAA,CAAAgC,GAAA,EAACC,cAAc;QAACL,IAAI,EAAEA,IAAK;QAACC,aAAa,EAAEA;MAAc,CAAE;IAC5D,CACG,CACP,EAEAiC,QAAQ,IAAIC,YAAY,iBACvB,IAAA/D,WAAA,CAAAgC,GAAA,EAACnC,YAAA,CAAA6D,IAAI;MACHX,KAAK,EAAE,CACLC,MAAM,CAAC6C,aAAa,EACpB;QACE3C,KAAK,EAAEtB,IAAI,GAAG,IAAI;QAClBuB,MAAM,EAAEvB,IAAI,GAAG;MACjB,CAAC,CACD;MAAAiB,QAAA,EAEDkB;IAAY,CACT,CACP;EAAA,CACG,CACP;EAED,IAAIG,OAAO,EAAE;IACX,oBAAO,IAAAlE,WAAA,CAAAgC,GAAA,EAACnC,YAAA,CAAAiG,gBAAgB;MAAC5B,OAAO,EAAEA,OAAQ;MAAArB,QAAA,EAAE0C;IAAO,CAAmB,CAAC;EACzE;EAEA,OAAOA,OAAO;AAChB,CAAC;AAED,MAAMvC,MAAM,GAAG2C,uBAAU,CAACI,MAAM,CAAC;EAC/BP,SAAS,EAAE;IACTQ,QAAQ,EAAE,UAAU;IACpBC,QAAQ,EAAE,SAAS;IACnBC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE;EACd,CAAC;EACDV,cAAc,EAAE;IACdQ,QAAQ,EAAE,QAAQ;IAClBC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE;EACd,CAAC;EACDN,aAAa,EAAE;IACbG,QAAQ,EAAE,UAAU;IACpBI,MAAM,EAAE,CAAC,CAAC;IACVC,KAAK,EAAE,CAAC,CAAC;IACTH,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBG,MAAM,EAAE;EACV,CAAC;EACDrD,aAAa,EAAE;IACb+C,QAAQ,EAAE,UAAU;IACpB9C,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE,CAAC;IACToD,OAAO,EAAE;EACX;AACF,CAAC,CAAC;AAEK,MAAMC,MAAM,GAAAC,OAAA,CAAAD,MAAA,gBAAG,IAAAE,WAAI,EAAC7C,eAAe,CAAC;AAC3C2C,MAAM,CAACG,WAAW,GAAG,QAAQ","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_useTheme","_context","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","SQUIRCLE_PATH","clipIdCounter","svgModule","svgModuleResolved","getSvgModule","SquircleImage","uri","fallbackSource","size","fallbackColor","placeholderIcon","onError","svg","jsx","CircleFallback","icon","Svg","Defs","ClipPath","Path","Image","SvgImage","clipId","useMemo","href","jsxs","Fragment","children","source","style","styles","errorDetector","width","height","viewBox","id","d","preserveAspectRatio","clipPath","radius","View","borderRadius","backgroundColor","justifyContent","alignItems","overflow","AvatarComponent","verified","verifiedIcon","shape","imageStyle","placeholderColor","onPress","testID","errored","setErrored","useState","theme","useTheme","colors","backgroundTertiary","prevSourceRef","useRef","prevUriRef","current","imageResolver","useImageResolver","resolvedUri","startsWith","resolvedImageSource","undefined","effectiveUri","imageSource","content","container","imageContainer","resizeMode","StyleSheet","absoluteFillObject","verifiedBadge","TouchableOpacity","create","position","bottom","right","zIndex","opacity","Avatar","exports","memo","displayName"],"sourceRoot":"../../../src","sources":["avatar/Avatar.tsx"],"mappings":"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","ignoreList":[]}
@@ -30,6 +30,7 @@ function SquircleImage({
30
30
  fallbackSource,
31
31
  size,
32
32
  fallbackColor,
33
+ placeholderIcon,
33
34
  onError
34
35
  }) {
35
36
  const svg = getSvgModule();
@@ -37,7 +38,8 @@ function SquircleImage({
37
38
  // Fallback to circle if react-native-svg is not installed
38
39
  return /*#__PURE__*/_jsx(CircleFallback, {
39
40
  size: size,
40
- fallbackColor: fallbackColor
41
+ fallbackColor: fallbackColor,
42
+ icon: placeholderIcon
41
43
  });
42
44
  }
43
45
  const {
@@ -54,7 +56,8 @@ function SquircleImage({
54
56
  if (!href) {
55
57
  return /*#__PURE__*/_jsx(CircleFallback, {
56
58
  size: size,
57
- fallbackColor: fallbackColor
59
+ fallbackColor: fallbackColor,
60
+ icon: placeholderIcon
58
61
  });
59
62
  }
60
63
  return /*#__PURE__*/_jsxs(_Fragment, {
@@ -87,7 +90,8 @@ function SquircleImage({
87
90
  }
88
91
  function CircleFallback({
89
92
  size,
90
- fallbackColor
93
+ fallbackColor,
94
+ icon
91
95
  }) {
92
96
  const radius = size / 2;
93
97
  return /*#__PURE__*/_jsx(View, {
@@ -95,8 +99,12 @@ function CircleFallback({
95
99
  width: size,
96
100
  height: size,
97
101
  borderRadius: radius,
98
- backgroundColor: fallbackColor
99
- }
102
+ backgroundColor: fallbackColor,
103
+ justifyContent: 'center',
104
+ alignItems: 'center',
105
+ overflow: 'hidden'
106
+ },
107
+ children: icon ?? null
100
108
  });
101
109
  }
102
110
  const AvatarComponent = ({
@@ -109,13 +117,15 @@ const AvatarComponent = ({
109
117
  shape = 'circle',
110
118
  style,
111
119
  imageStyle,
120
+ placeholderColor,
121
+ placeholderIcon,
112
122
  onPress,
113
123
  testID
114
124
  }) => {
115
125
  const [errored, setErrored] = useState(false);
116
126
  const theme = useTheme();
117
127
  const radius = size / 2;
118
- const fallbackColor = theme.colors.backgroundTertiary;
128
+ const fallbackColor = placeholderColor || theme.colors.backgroundTertiary;
119
129
 
120
130
  // Reset error state when source changes (e.g., list item recycling
121
131
  // or async URL resolution replacing an initial file ID).
@@ -166,6 +176,7 @@ const AvatarComponent = ({
166
176
  fallbackSource: fallbackSource,
167
177
  size: size,
168
178
  fallbackColor: fallbackColor,
179
+ placeholderIcon: placeholderIcon,
169
180
  onError: () => setErrored(true)
170
181
  }) : /*#__PURE__*/_jsx(View, {
171
182
  style: [styles.imageContainer, {
@@ -182,7 +193,8 @@ const AvatarComponent = ({
182
193
  }, imageStyle]
183
194
  }) : /*#__PURE__*/_jsx(CircleFallback, {
184
195
  size: size,
185
- fallbackColor: fallbackColor
196
+ fallbackColor: fallbackColor,
197
+ icon: placeholderIcon
186
198
  })
187
199
  }), verified && verifiedIcon && /*#__PURE__*/_jsx(View, {
188
200
  style: [styles.verifiedBadge, {
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","useMemo","useRef","useState","View","Image","StyleSheet","TouchableOpacity","useTheme","useImageResolver","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","SQUIRCLE_PATH","clipIdCounter","svgModule","svgModuleResolved","getSvgModule","require","SquircleImage","uri","fallbackSource","size","fallbackColor","onError","svg","CircleFallback","default","Svg","Defs","ClipPath","Path","SvgImage","clipId","href","children","source","style","styles","errorDetector","width","height","viewBox","id","d","preserveAspectRatio","clipPath","radius","borderRadius","backgroundColor","AvatarComponent","verified","verifiedIcon","shape","imageStyle","onPress","testID","errored","setErrored","theme","colors","backgroundTertiary","prevSourceRef","prevUriRef","current","imageResolver","resolvedUri","startsWith","resolvedImageSource","undefined","effectiveUri","imageSource","content","container","imageContainer","resizeMode","absoluteFillObject","verifiedBadge","create","position","overflow","justifyContent","alignItems","bottom","right","zIndex","opacity","Avatar","displayName"],"sourceRoot":"../../../src","sources":["avatar/Avatar.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","memo","useMemo","useRef","useState","View","Image","StyleSheet","TouchableOpacity","useTheme","useImageResolver","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","SQUIRCLE_PATH","clipIdCounter","svgModule","svgModuleResolved","getSvgModule","require","SquircleImage","uri","fallbackSource","size","fallbackColor","placeholderIcon","onError","svg","CircleFallback","icon","default","Svg","Defs","ClipPath","Path","SvgImage","clipId","href","children","source","style","styles","errorDetector","width","height","viewBox","id","d","preserveAspectRatio","clipPath","radius","borderRadius","backgroundColor","justifyContent","alignItems","overflow","AvatarComponent","verified","verifiedIcon","shape","imageStyle","placeholderColor","onPress","testID","errored","setErrored","theme","colors","backgroundTertiary","prevSourceRef","prevUriRef","current","imageResolver","resolvedUri","startsWith","resolvedImageSource","undefined","effectiveUri","imageSource","content","container","imageContainer","resizeMode","absoluteFillObject","verifiedBadge","create","position","bottom","right","zIndex","opacity","Avatar","displayName"],"sourceRoot":"../../../src","sources":["avatar/Avatar.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../../src/avatar/Avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAK/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAyO3C,eAAO,MAAM,MAAM,yCAAwB,CAAC"}
1
+ {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../../src/avatar/Avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAK/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAmP3C,eAAO,MAAM,MAAM,yCAAwB,CAAC"}
@@ -24,6 +24,10 @@ export interface AvatarProps {
24
24
  style?: StyleProp<ViewStyle>;
25
25
  /** Image style (circle shape only) */
26
26
  imageStyle?: StyleProp<ImageStyle>;
27
+ /** Custom background color for the placeholder circle (overrides theme default) */
28
+ placeholderColor?: string;
29
+ /** Custom icon rendered inside the placeholder circle when no image is available */
30
+ placeholderIcon?: ReactNode;
27
31
  /** Press handler — wraps avatar in TouchableOpacity when provided */
28
32
  onPress?: () => void;
29
33
  testID?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/avatar/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1F,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEhD,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAAC;IAC7C,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8FAA8F;IAC9F,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,wFAAwF;IACxF,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,sBAAsB;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,sCAAsC;IACtC,UAAU,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IACnC,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/avatar/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1F,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEhD,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAAC;IAC7C,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8FAA8F;IAC9F,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,wFAAwF;IACxF,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,sBAAsB;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,sCAAsC;IACtC,UAAU,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IACnC,mFAAmF;IACnF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oFAAoF;IACpF,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -1 +1 @@
1
- {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../../src/avatar/Avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAK/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAyO3C,eAAO,MAAM,MAAM,yCAAwB,CAAC"}
1
+ {"version":3,"file":"Avatar.d.ts","sourceRoot":"","sources":["../../../../src/avatar/Avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAK/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAmP3C,eAAO,MAAM,MAAM,yCAAwB,CAAC"}
@@ -24,6 +24,10 @@ export interface AvatarProps {
24
24
  style?: StyleProp<ViewStyle>;
25
25
  /** Image style (circle shape only) */
26
26
  imageStyle?: StyleProp<ImageStyle>;
27
+ /** Custom background color for the placeholder circle (overrides theme default) */
28
+ placeholderColor?: string;
29
+ /** Custom icon rendered inside the placeholder circle when no image is available */
30
+ placeholderIcon?: ReactNode;
27
31
  /** Press handler — wraps avatar in TouchableOpacity when provided */
28
32
  onPress?: () => void;
29
33
  testID?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/avatar/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1F,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEhD,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAAC;IAC7C,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8FAA8F;IAC9F,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,wFAAwF;IACxF,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,sBAAsB;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,sCAAsC;IACtC,UAAU,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IACnC,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/avatar/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,mBAAmB,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1F,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;AAEhD,MAAM,WAAW,WAAW;IAC1B;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,mBAAmB,GAAG,IAAI,CAAC;IAC7C,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,8FAA8F;IAC9F,cAAc,CAAC,EAAE,mBAAmB,CAAC;IACrC,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,wFAAwF;IACxF,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,sBAAsB;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,sCAAsC;IACtC,UAAU,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IACnC,mFAAmF;IACnF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oFAAoF;IACpF,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@oxyhq/bloom",
3
- "version": "0.1.15",
3
+ "version": "0.1.16",
4
4
  "description": "Bloom UI — Oxy ecosystem component library for React Native + Expo + Web",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -37,18 +37,20 @@ function SquircleImage({
37
37
  fallbackSource,
38
38
  size,
39
39
  fallbackColor,
40
+ placeholderIcon,
40
41
  onError,
41
42
  }: {
42
43
  uri?: string;
43
44
  fallbackSource?: AvatarProps['fallbackSource'];
44
45
  size: number;
45
46
  fallbackColor: string;
47
+ placeholderIcon?: React.ReactNode;
46
48
  onError: () => void;
47
49
  }) {
48
50
  const svg = getSvgModule();
49
51
  if (!svg) {
50
52
  // Fallback to circle if react-native-svg is not installed
51
- return <CircleFallback size={size} fallbackColor={fallbackColor} />;
53
+ return <CircleFallback size={size} fallbackColor={fallbackColor} icon={placeholderIcon} />;
52
54
  }
53
55
 
54
56
  const { default: Svg, Defs, ClipPath, Path, Image: SvgImage } = svg;
@@ -56,7 +58,7 @@ function SquircleImage({
56
58
 
57
59
  const href = uri ? { uri } : fallbackSource;
58
60
  if (!href) {
59
- return <CircleFallback size={size} fallbackColor={fallbackColor} />;
61
+ return <CircleFallback size={size} fallbackColor={fallbackColor} icon={placeholderIcon} />;
60
62
  }
61
63
 
62
64
  return (
@@ -87,7 +89,7 @@ function SquircleImage({
87
89
  );
88
90
  }
89
91
 
90
- function CircleFallback({ size, fallbackColor }: { size: number; fallbackColor: string }) {
92
+ function CircleFallback({ size, fallbackColor, icon }: { size: number; fallbackColor: string; icon?: React.ReactNode }) {
91
93
  const radius = size / 2;
92
94
  return (
93
95
  <View
@@ -96,8 +98,13 @@ function CircleFallback({ size, fallbackColor }: { size: number; fallbackColor:
96
98
  height: size,
97
99
  borderRadius: radius,
98
100
  backgroundColor: fallbackColor,
101
+ justifyContent: 'center',
102
+ alignItems: 'center',
103
+ overflow: 'hidden',
99
104
  }}
100
- />
105
+ >
106
+ {icon ?? null}
107
+ </View>
101
108
  );
102
109
  }
103
110
 
@@ -111,13 +118,15 @@ const AvatarComponent: React.FC<AvatarProps> = ({
111
118
  shape = 'circle',
112
119
  style,
113
120
  imageStyle,
121
+ placeholderColor,
122
+ placeholderIcon,
114
123
  onPress,
115
124
  testID,
116
125
  }) => {
117
126
  const [errored, setErrored] = useState(false);
118
127
  const theme = useTheme();
119
128
  const radius = size / 2;
120
- const fallbackColor = theme.colors.backgroundTertiary;
129
+ const fallbackColor = placeholderColor || theme.colors.backgroundTertiary;
121
130
 
122
131
  // Reset error state when source changes (e.g., list item recycling
123
132
  // or async URL resolution replacing an initial file ID).
@@ -168,6 +177,7 @@ const AvatarComponent: React.FC<AvatarProps> = ({
168
177
  fallbackSource={fallbackSource}
169
178
  size={size}
170
179
  fallbackColor={fallbackColor}
180
+ placeholderIcon={placeholderIcon}
171
181
  onError={() => setErrored(true)}
172
182
  />
173
183
  ) : (
@@ -180,7 +190,7 @@ const AvatarComponent: React.FC<AvatarProps> = ({
180
190
  style={[StyleSheet.absoluteFillObject, { borderRadius: radius }, imageStyle]}
181
191
  />
182
192
  ) : (
183
- <CircleFallback size={size} fallbackColor={fallbackColor} />
193
+ <CircleFallback size={size} fallbackColor={fallbackColor} icon={placeholderIcon} />
184
194
  )}
185
195
  </View>
186
196
  )}
@@ -26,6 +26,10 @@ export interface AvatarProps {
26
26
  style?: StyleProp<ViewStyle>;
27
27
  /** Image style (circle shape only) */
28
28
  imageStyle?: StyleProp<ImageStyle>;
29
+ /** Custom background color for the placeholder circle (overrides theme default) */
30
+ placeholderColor?: string;
31
+ /** Custom icon rendered inside the placeholder circle when no image is available */
32
+ placeholderIcon?: ReactNode;
29
33
  /** Press handler — wraps avatar in TouchableOpacity when provided */
30
34
  onPress?: () => void;
31
35
  testID?: string;