@oxyhq/bloom 0.26.1 → 0.28.0

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.
Files changed (300) hide show
  1. package/lib/commonjs/animated-check/AnimatedCheck.js +162 -0
  2. package/lib/commonjs/animated-check/AnimatedCheck.js.map +1 -0
  3. package/lib/commonjs/animated-check/index.js +13 -0
  4. package/lib/commonjs/animated-check/index.js.map +1 -0
  5. package/lib/commonjs/avatar/Avatar.js +67 -96
  6. package/lib/commonjs/avatar/Avatar.js.map +1 -1
  7. package/lib/commonjs/avatar/AvatarRing.js +183 -0
  8. package/lib/commonjs/avatar/AvatarRing.js.map +1 -0
  9. package/lib/commonjs/avatar/index.js.map +1 -1
  10. package/lib/commonjs/avatar/squircle-path.js +14 -0
  11. package/lib/commonjs/avatar/squircle-path.js.map +1 -0
  12. package/lib/commonjs/avatar/svg-module.js +15 -0
  13. package/lib/commonjs/avatar/svg-module.js.map +1 -0
  14. package/lib/commonjs/dialog/placement.js +9 -7
  15. package/lib/commonjs/dialog/placement.js.map +1 -1
  16. package/lib/commonjs/fill/index.js.map +1 -1
  17. package/lib/commonjs/hooks/index.js +20 -0
  18. package/lib/commonjs/hooks/index.js.map +1 -1
  19. package/lib/commonjs/hooks/useGutters.js +106 -0
  20. package/lib/commonjs/hooks/useGutters.js.map +1 -0
  21. package/lib/commonjs/hooks/useHaptics.js +69 -0
  22. package/lib/commonjs/hooks/useHaptics.js.map +1 -0
  23. package/lib/commonjs/hooks/useInteractionState.js +8 -2
  24. package/lib/commonjs/hooks/useInteractionState.js.map +1 -1
  25. package/lib/commonjs/index.js +155 -63
  26. package/lib/commonjs/index.js.map +1 -1
  27. package/lib/commonjs/index.web.js +155 -63
  28. package/lib/commonjs/index.web.js.map +1 -1
  29. package/lib/commonjs/media-inset-border/MediaInsetBorder.js +50 -0
  30. package/lib/commonjs/media-inset-border/MediaInsetBorder.js.map +1 -0
  31. package/lib/commonjs/media-inset-border/index.js +13 -0
  32. package/lib/commonjs/media-inset-border/index.js.map +1 -0
  33. package/lib/commonjs/motion/ScreenTransition.js +46 -0
  34. package/lib/commonjs/motion/ScreenTransition.js.map +1 -0
  35. package/lib/commonjs/motion/index.js +32 -0
  36. package/lib/commonjs/motion/index.js.map +1 -0
  37. package/lib/commonjs/motion/motion.js +93 -0
  38. package/lib/commonjs/motion/motion.js.map +1 -0
  39. package/lib/commonjs/pressable-scale/PressableScale.js +75 -0
  40. package/lib/commonjs/pressable-scale/PressableScale.js.map +1 -0
  41. package/lib/commonjs/pressable-scale/index.js +13 -0
  42. package/lib/commonjs/pressable-scale/index.js.map +1 -0
  43. package/lib/commonjs/pressable-with-hover/PressableWithHover.js +36 -0
  44. package/lib/commonjs/pressable-with-hover/PressableWithHover.js.map +1 -0
  45. package/lib/commonjs/pressable-with-hover/index.js +13 -0
  46. package/lib/commonjs/pressable-with-hover/index.js.map +1 -0
  47. package/lib/commonjs/styles/breakpoints.js +24 -0
  48. package/lib/commonjs/styles/breakpoints.js.map +1 -0
  49. package/lib/commonjs/styles/index.js +7 -0
  50. package/lib/commonjs/styles/index.js.map +1 -1
  51. package/lib/commonjs/subtle-hover/SubtleHover.js +69 -0
  52. package/lib/commonjs/subtle-hover/SubtleHover.js.map +1 -0
  53. package/lib/commonjs/subtle-hover/index.js +13 -0
  54. package/lib/commonjs/subtle-hover/index.js.map +1 -0
  55. package/lib/commonjs/theme/build-theme.js +2 -0
  56. package/lib/commonjs/theme/build-theme.js.map +1 -1
  57. package/lib/commonjs/theme/gradients.js +39 -0
  58. package/lib/commonjs/theme/gradients.js.map +1 -0
  59. package/lib/commonjs/theme/index.js +7 -0
  60. package/lib/commonjs/theme/index.js.map +1 -1
  61. package/lib/module/animated-check/AnimatedCheck.js +157 -0
  62. package/lib/module/animated-check/AnimatedCheck.js.map +1 -0
  63. package/lib/module/animated-check/index.js +4 -0
  64. package/lib/module/animated-check/index.js.map +1 -0
  65. package/lib/module/avatar/Avatar.js +66 -96
  66. package/lib/module/avatar/Avatar.js.map +1 -1
  67. package/lib/module/avatar/AvatarRing.js +177 -0
  68. package/lib/module/avatar/AvatarRing.js.map +1 -0
  69. package/lib/module/avatar/index.js.map +1 -1
  70. package/lib/module/avatar/squircle-path.js +10 -0
  71. package/lib/module/avatar/squircle-path.js.map +1 -0
  72. package/lib/module/avatar/svg-module.js +11 -0
  73. package/lib/module/avatar/svg-module.js.map +1 -0
  74. package/lib/module/dialog/placement.js +9 -7
  75. package/lib/module/dialog/placement.js.map +1 -1
  76. package/lib/module/fill/index.js.map +1 -1
  77. package/lib/module/hooks/index.js +2 -0
  78. package/lib/module/hooks/index.js.map +1 -1
  79. package/lib/module/hooks/useGutters.js +103 -0
  80. package/lib/module/hooks/useGutters.js.map +1 -0
  81. package/lib/module/hooks/useHaptics.js +65 -0
  82. package/lib/module/hooks/useHaptics.js.map +1 -0
  83. package/lib/module/hooks/useInteractionState.js +10 -3
  84. package/lib/module/hooks/useInteractionState.js.map +1 -1
  85. package/lib/module/index.js +10 -1
  86. package/lib/module/index.js.map +1 -1
  87. package/lib/module/index.web.js +10 -1
  88. package/lib/module/index.web.js.map +1 -1
  89. package/lib/module/media-inset-border/MediaInsetBorder.js +47 -0
  90. package/lib/module/media-inset-border/MediaInsetBorder.js.map +1 -0
  91. package/lib/module/media-inset-border/index.js +4 -0
  92. package/lib/module/media-inset-border/index.js.map +1 -0
  93. package/lib/module/motion/ScreenTransition.js +40 -0
  94. package/lib/module/motion/ScreenTransition.js.map +1 -0
  95. package/lib/module/motion/index.js +5 -0
  96. package/lib/module/motion/index.js.map +1 -0
  97. package/lib/module/motion/motion.js +87 -0
  98. package/lib/module/motion/motion.js.map +1 -0
  99. package/lib/module/pressable-scale/PressableScale.js +72 -0
  100. package/lib/module/pressable-scale/PressableScale.js.map +1 -0
  101. package/lib/module/pressable-scale/index.js +4 -0
  102. package/lib/module/pressable-scale/index.js.map +1 -0
  103. package/lib/module/pressable-with-hover/PressableWithHover.js +31 -0
  104. package/lib/module/pressable-with-hover/PressableWithHover.js.map +1 -0
  105. package/lib/module/pressable-with-hover/index.js +4 -0
  106. package/lib/module/pressable-with-hover/index.js.map +1 -0
  107. package/lib/module/styles/breakpoints.js +20 -0
  108. package/lib/module/styles/breakpoints.js.map +1 -0
  109. package/lib/module/styles/index.js +1 -0
  110. package/lib/module/styles/index.js.map +1 -1
  111. package/lib/module/subtle-hover/SubtleHover.js +66 -0
  112. package/lib/module/subtle-hover/SubtleHover.js.map +1 -0
  113. package/lib/module/subtle-hover/index.js +4 -0
  114. package/lib/module/subtle-hover/index.js.map +1 -0
  115. package/lib/module/theme/build-theme.js +2 -0
  116. package/lib/module/theme/build-theme.js.map +1 -1
  117. package/lib/module/theme/gradients.js +35 -0
  118. package/lib/module/theme/gradients.js.map +1 -0
  119. package/lib/module/theme/index.js +1 -0
  120. package/lib/module/theme/index.js.map +1 -1
  121. package/lib/typescript/commonjs/animated-check/AnimatedCheck.d.ts +18 -0
  122. package/lib/typescript/commonjs/animated-check/AnimatedCheck.d.ts.map +1 -0
  123. package/lib/typescript/commonjs/animated-check/index.d.ts +3 -0
  124. package/lib/typescript/commonjs/animated-check/index.d.ts.map +1 -0
  125. package/lib/typescript/commonjs/avatar/Avatar.d.ts.map +1 -1
  126. package/lib/typescript/commonjs/avatar/AvatarRing.d.ts +27 -0
  127. package/lib/typescript/commonjs/avatar/AvatarRing.d.ts.map +1 -0
  128. package/lib/typescript/commonjs/avatar/index.d.ts +1 -1
  129. package/lib/typescript/commonjs/avatar/index.d.ts.map +1 -1
  130. package/lib/typescript/commonjs/avatar/squircle-path.d.ts +8 -0
  131. package/lib/typescript/commonjs/avatar/squircle-path.d.ts.map +1 -0
  132. package/lib/typescript/commonjs/avatar/svg-module.d.ts +8 -0
  133. package/lib/typescript/commonjs/avatar/svg-module.d.ts.map +1 -0
  134. package/lib/typescript/commonjs/avatar/types.d.ts +30 -0
  135. package/lib/typescript/commonjs/avatar/types.d.ts.map +1 -1
  136. package/lib/typescript/commonjs/dialog/placement.d.ts +8 -7
  137. package/lib/typescript/commonjs/dialog/placement.d.ts.map +1 -1
  138. package/lib/typescript/commonjs/fill/index.d.ts +2 -2
  139. package/lib/typescript/commonjs/fill/index.d.ts.map +1 -1
  140. package/lib/typescript/commonjs/hooks/index.d.ts +4 -0
  141. package/lib/typescript/commonjs/hooks/index.d.ts.map +1 -1
  142. package/lib/typescript/commonjs/hooks/useGutters.d.ts +32 -0
  143. package/lib/typescript/commonjs/hooks/useGutters.d.ts.map +1 -0
  144. package/lib/typescript/commonjs/hooks/useHaptics.d.ts +28 -0
  145. package/lib/typescript/commonjs/hooks/useHaptics.d.ts.map +1 -0
  146. package/lib/typescript/commonjs/hooks/useInteractionState.d.ts +6 -0
  147. package/lib/typescript/commonjs/hooks/useInteractionState.d.ts.map +1 -1
  148. package/lib/typescript/commonjs/index.d.ts +16 -0
  149. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  150. package/lib/typescript/commonjs/index.web.d.ts +16 -0
  151. package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
  152. package/lib/typescript/commonjs/media-inset-border/MediaInsetBorder.d.ts +26 -0
  153. package/lib/typescript/commonjs/media-inset-border/MediaInsetBorder.d.ts.map +1 -0
  154. package/lib/typescript/commonjs/media-inset-border/index.d.ts +3 -0
  155. package/lib/typescript/commonjs/media-inset-border/index.d.ts.map +1 -0
  156. package/lib/typescript/commonjs/motion/ScreenTransition.d.ts +33 -0
  157. package/lib/typescript/commonjs/motion/ScreenTransition.d.ts.map +1 -0
  158. package/lib/typescript/commonjs/motion/index.d.ts +4 -0
  159. package/lib/typescript/commonjs/motion/index.d.ts.map +1 -0
  160. package/lib/typescript/commonjs/motion/motion.d.ts +24 -0
  161. package/lib/typescript/commonjs/motion/motion.d.ts.map +1 -0
  162. package/lib/typescript/commonjs/pressable-scale/PressableScale.d.ts +21 -0
  163. package/lib/typescript/commonjs/pressable-scale/PressableScale.d.ts.map +1 -0
  164. package/lib/typescript/commonjs/pressable-scale/index.d.ts +3 -0
  165. package/lib/typescript/commonjs/pressable-scale/index.d.ts.map +1 -0
  166. package/lib/typescript/commonjs/pressable-with-hover/PressableWithHover.d.ts +18 -0
  167. package/lib/typescript/commonjs/pressable-with-hover/PressableWithHover.d.ts.map +1 -0
  168. package/lib/typescript/commonjs/pressable-with-hover/index.d.ts +3 -0
  169. package/lib/typescript/commonjs/pressable-with-hover/index.d.ts.map +1 -0
  170. package/lib/typescript/commonjs/styles/breakpoints.d.ts +18 -0
  171. package/lib/typescript/commonjs/styles/breakpoints.d.ts.map +1 -0
  172. package/lib/typescript/commonjs/styles/index.d.ts +2 -0
  173. package/lib/typescript/commonjs/styles/index.d.ts.map +1 -1
  174. package/lib/typescript/commonjs/subtle-hover/SubtleHover.d.ts +32 -0
  175. package/lib/typescript/commonjs/subtle-hover/SubtleHover.d.ts.map +1 -0
  176. package/lib/typescript/commonjs/subtle-hover/index.d.ts +3 -0
  177. package/lib/typescript/commonjs/subtle-hover/index.d.ts.map +1 -0
  178. package/lib/typescript/commonjs/theme/build-theme.d.ts.map +1 -1
  179. package/lib/typescript/commonjs/theme/gradients.d.ts +12 -0
  180. package/lib/typescript/commonjs/theme/gradients.d.ts.map +1 -0
  181. package/lib/typescript/commonjs/theme/index.d.ts +2 -1
  182. package/lib/typescript/commonjs/theme/index.d.ts.map +1 -1
  183. package/lib/typescript/commonjs/theme/types.d.ts +11 -0
  184. package/lib/typescript/commonjs/theme/types.d.ts.map +1 -1
  185. package/lib/typescript/module/animated-check/AnimatedCheck.d.ts +18 -0
  186. package/lib/typescript/module/animated-check/AnimatedCheck.d.ts.map +1 -0
  187. package/lib/typescript/module/animated-check/index.d.ts +3 -0
  188. package/lib/typescript/module/animated-check/index.d.ts.map +1 -0
  189. package/lib/typescript/module/avatar/Avatar.d.ts.map +1 -1
  190. package/lib/typescript/module/avatar/AvatarRing.d.ts +27 -0
  191. package/lib/typescript/module/avatar/AvatarRing.d.ts.map +1 -0
  192. package/lib/typescript/module/avatar/index.d.ts +1 -1
  193. package/lib/typescript/module/avatar/index.d.ts.map +1 -1
  194. package/lib/typescript/module/avatar/squircle-path.d.ts +8 -0
  195. package/lib/typescript/module/avatar/squircle-path.d.ts.map +1 -0
  196. package/lib/typescript/module/avatar/svg-module.d.ts +8 -0
  197. package/lib/typescript/module/avatar/svg-module.d.ts.map +1 -0
  198. package/lib/typescript/module/avatar/types.d.ts +30 -0
  199. package/lib/typescript/module/avatar/types.d.ts.map +1 -1
  200. package/lib/typescript/module/dialog/placement.d.ts +8 -7
  201. package/lib/typescript/module/dialog/placement.d.ts.map +1 -1
  202. package/lib/typescript/module/fill/index.d.ts +2 -2
  203. package/lib/typescript/module/fill/index.d.ts.map +1 -1
  204. package/lib/typescript/module/hooks/index.d.ts +4 -0
  205. package/lib/typescript/module/hooks/index.d.ts.map +1 -1
  206. package/lib/typescript/module/hooks/useGutters.d.ts +32 -0
  207. package/lib/typescript/module/hooks/useGutters.d.ts.map +1 -0
  208. package/lib/typescript/module/hooks/useHaptics.d.ts +28 -0
  209. package/lib/typescript/module/hooks/useHaptics.d.ts.map +1 -0
  210. package/lib/typescript/module/hooks/useInteractionState.d.ts +6 -0
  211. package/lib/typescript/module/hooks/useInteractionState.d.ts.map +1 -1
  212. package/lib/typescript/module/index.d.ts +16 -0
  213. package/lib/typescript/module/index.d.ts.map +1 -1
  214. package/lib/typescript/module/index.web.d.ts +16 -0
  215. package/lib/typescript/module/index.web.d.ts.map +1 -1
  216. package/lib/typescript/module/media-inset-border/MediaInsetBorder.d.ts +26 -0
  217. package/lib/typescript/module/media-inset-border/MediaInsetBorder.d.ts.map +1 -0
  218. package/lib/typescript/module/media-inset-border/index.d.ts +3 -0
  219. package/lib/typescript/module/media-inset-border/index.d.ts.map +1 -0
  220. package/lib/typescript/module/motion/ScreenTransition.d.ts +33 -0
  221. package/lib/typescript/module/motion/ScreenTransition.d.ts.map +1 -0
  222. package/lib/typescript/module/motion/index.d.ts +4 -0
  223. package/lib/typescript/module/motion/index.d.ts.map +1 -0
  224. package/lib/typescript/module/motion/motion.d.ts +24 -0
  225. package/lib/typescript/module/motion/motion.d.ts.map +1 -0
  226. package/lib/typescript/module/pressable-scale/PressableScale.d.ts +21 -0
  227. package/lib/typescript/module/pressable-scale/PressableScale.d.ts.map +1 -0
  228. package/lib/typescript/module/pressable-scale/index.d.ts +3 -0
  229. package/lib/typescript/module/pressable-scale/index.d.ts.map +1 -0
  230. package/lib/typescript/module/pressable-with-hover/PressableWithHover.d.ts +18 -0
  231. package/lib/typescript/module/pressable-with-hover/PressableWithHover.d.ts.map +1 -0
  232. package/lib/typescript/module/pressable-with-hover/index.d.ts +3 -0
  233. package/lib/typescript/module/pressable-with-hover/index.d.ts.map +1 -0
  234. package/lib/typescript/module/styles/breakpoints.d.ts +18 -0
  235. package/lib/typescript/module/styles/breakpoints.d.ts.map +1 -0
  236. package/lib/typescript/module/styles/index.d.ts +2 -0
  237. package/lib/typescript/module/styles/index.d.ts.map +1 -1
  238. package/lib/typescript/module/subtle-hover/SubtleHover.d.ts +32 -0
  239. package/lib/typescript/module/subtle-hover/SubtleHover.d.ts.map +1 -0
  240. package/lib/typescript/module/subtle-hover/index.d.ts +3 -0
  241. package/lib/typescript/module/subtle-hover/index.d.ts.map +1 -0
  242. package/lib/typescript/module/theme/build-theme.d.ts.map +1 -1
  243. package/lib/typescript/module/theme/gradients.d.ts +12 -0
  244. package/lib/typescript/module/theme/gradients.d.ts.map +1 -0
  245. package/lib/typescript/module/theme/index.d.ts +2 -1
  246. package/lib/typescript/module/theme/index.d.ts.map +1 -1
  247. package/lib/typescript/module/theme/types.d.ts +11 -0
  248. package/lib/typescript/module/theme/types.d.ts.map +1 -1
  249. package/package.json +73 -1
  250. package/src/__tests__/AnimatedCheck.test.tsx +31 -0
  251. package/src/__tests__/MediaInsetBorder.test.tsx +36 -0
  252. package/src/__tests__/Motion.test.tsx +58 -0
  253. package/src/__tests__/PressableScale.test.tsx +29 -0
  254. package/src/__tests__/PressableWithHover.test.tsx +48 -0
  255. package/src/__tests__/SubtleHover.test.tsx +42 -0
  256. package/src/__tests__/theme-gradients.test.ts +31 -0
  257. package/src/__tests__/theme.test.ts +3 -0
  258. package/src/__tests__/useGutters.test.ts +58 -0
  259. package/src/__tests__/useHaptics.test.tsx +58 -0
  260. package/src/__tests__/useInteractionState.test.ts +27 -0
  261. package/src/animated-check/AnimatedCheck.stories.tsx +60 -0
  262. package/src/animated-check/AnimatedCheck.tsx +173 -0
  263. package/src/animated-check/index.ts +2 -0
  264. package/src/avatar/Avatar.stories.tsx +95 -0
  265. package/src/avatar/Avatar.tsx +61 -110
  266. package/src/avatar/AvatarRing.tsx +170 -0
  267. package/src/avatar/index.ts +6 -1
  268. package/src/avatar/squircle-path.ts +11 -0
  269. package/src/avatar/svg-module.ts +11 -0
  270. package/src/avatar/types.ts +32 -0
  271. package/src/dialog/placement.ts +10 -7
  272. package/src/fill/index.tsx +2 -2
  273. package/src/hooks/index.ts +4 -0
  274. package/src/hooks/useGutters.ts +99 -0
  275. package/src/hooks/useHaptics.tsx +69 -0
  276. package/src/hooks/useInteractionState.ts +8 -2
  277. package/src/index.ts +20 -0
  278. package/src/index.web.ts +20 -0
  279. package/src/media-inset-border/MediaInsetBorder.stories.tsx +60 -0
  280. package/src/media-inset-border/MediaInsetBorder.tsx +72 -0
  281. package/src/media-inset-border/index.ts +2 -0
  282. package/src/motion/Motion.stories.tsx +99 -0
  283. package/src/motion/ScreenTransition.tsx +71 -0
  284. package/src/motion/index.ts +3 -0
  285. package/src/motion/motion.ts +75 -0
  286. package/src/pressable-scale/PressableScale.stories.tsx +71 -0
  287. package/src/pressable-scale/PressableScale.tsx +103 -0
  288. package/src/pressable-scale/index.ts +2 -0
  289. package/src/pressable-with-hover/PressableWithHover.stories.tsx +43 -0
  290. package/src/pressable-with-hover/PressableWithHover.tsx +43 -0
  291. package/src/pressable-with-hover/index.ts +2 -0
  292. package/src/styles/breakpoints.ts +18 -0
  293. package/src/styles/index.ts +2 -0
  294. package/src/subtle-hover/SubtleHover.stories.tsx +72 -0
  295. package/src/subtle-hover/SubtleHover.tsx +90 -0
  296. package/src/subtle-hover/index.ts +2 -0
  297. package/src/theme/build-theme.ts +2 -0
  298. package/src/theme/gradients.ts +61 -0
  299. package/src/theme/index.ts +2 -1
  300. package/src/theme/types.ts +13 -0
@@ -0,0 +1,157 @@
1
+ "use strict";
2
+
3
+ import React, { forwardRef, useCallback, useImperativeHandle, useMemo } from 'react';
4
+ import { StyleSheet, Text } from 'react-native';
5
+ import Animated, { Easing, useAnimatedProps, useSharedValue, withDelay, withTiming } from 'react-native-reanimated';
6
+ import { getSvgModule } from "../avatar/svg-module.js";
7
+ import { useTheme } from "../theme/index.js";
8
+
9
+ /** The resolved `react-native-svg` module (non-null branch). */
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ /** Square viewBox the ring + check are drawn on. */
12
+ const VIEW_BOX = 52;
13
+ /** Ring radius within the viewBox. */
14
+ const CIRCLE_RADIUS = 24;
15
+ /** Ring circumference (2·π·r ≈ 150.8) rounded up so the dash fully hides it. */
16
+ const CIRCLE_LENGTH = 166;
17
+ /** Approximate path length of the check stroke. */
18
+ const CHECK_LENGTH = 48;
19
+ /** The check glyph, drawn on the 52×52 canvas. */
20
+ const CHECK_PATH = 'M14.1 27.2l7.1 7.2 16.7-16.8';
21
+ const STROKE_WIDTH = 4;
22
+ /** Ring draw-on duration (ms). */
23
+ const CIRCLE_DURATION = 500;
24
+ /** Check draw-on duration (ms), started once the ring completes. */
25
+ const CHECK_DURATION = 300;
26
+ // `Animated.createAnimatedComponent` must be called once per underlying
27
+ // component (calling it per-render would remount and break the animation).
28
+ // react-native-svg is a lazy/optional peer, so we build the animated wrappers
29
+ // the first time it resolves and cache them at module scope.
30
+ function buildAnimatedSvg(svg) {
31
+ return {
32
+ Circle: Animated.createAnimatedComponent(svg.Circle),
33
+ Path: Animated.createAnimatedComponent(svg.Path)
34
+ };
35
+ }
36
+ let animatedSvgCache = null;
37
+ function getAnimatedSvg(svg) {
38
+ if (!animatedSvgCache) animatedSvgCache = buildAnimatedSvg(svg);
39
+ return animatedSvgCache;
40
+ }
41
+ /** The animated SVG implementation, rendered only when react-native-svg exists. */
42
+ const AnimatedCheckSvg = /*#__PURE__*/forwardRef(function AnimatedCheckSvg({
43
+ size,
44
+ color,
45
+ svg
46
+ }, ref) {
47
+ const {
48
+ default: Svg
49
+ } = svg;
50
+ const {
51
+ Circle,
52
+ Path
53
+ } = getAnimatedSvg(svg);
54
+ const circleProgress = useSharedValue(0);
55
+ const checkProgress = useSharedValue(0);
56
+ const circleAnimatedProps = useAnimatedProps(() => ({
57
+ strokeDashoffset: CIRCLE_LENGTH - circleProgress.value * CIRCLE_LENGTH
58
+ }));
59
+ const checkAnimatedProps = useAnimatedProps(() => ({
60
+ strokeDashoffset: CHECK_LENGTH - CHECK_LENGTH * checkProgress.value
61
+ }));
62
+ const play = useCallback(() => {
63
+ circleProgress.value = 0;
64
+ checkProgress.value = 0;
65
+ circleProgress.value = withTiming(1, {
66
+ duration: CIRCLE_DURATION,
67
+ easing: Easing.linear
68
+ });
69
+ checkProgress.value = withDelay(CIRCLE_DURATION, withTiming(1, {
70
+ duration: CHECK_DURATION,
71
+ easing: Easing.linear
72
+ }));
73
+ }, [circleProgress, checkProgress]);
74
+ useImperativeHandle(ref, () => ({
75
+ play
76
+ }), [play]);
77
+ return /*#__PURE__*/_jsxs(Svg, {
78
+ fill: "none",
79
+ viewBox: `0 0 ${VIEW_BOX} ${VIEW_BOX}`,
80
+ width: size,
81
+ height: size,
82
+ children: [/*#__PURE__*/_jsx(Circle, {
83
+ animatedProps: circleAnimatedProps,
84
+ cx: VIEW_BOX / 2,
85
+ cy: VIEW_BOX / 2,
86
+ r: CIRCLE_RADIUS,
87
+ fill: "none",
88
+ stroke: color,
89
+ strokeWidth: STROKE_WIDTH,
90
+ strokeDasharray: CIRCLE_LENGTH
91
+ }), /*#__PURE__*/_jsx(Path, {
92
+ animatedProps: checkAnimatedProps,
93
+ d: CHECK_PATH,
94
+ stroke: color,
95
+ strokeWidth: STROKE_WIDTH,
96
+ strokeDasharray: CHECK_LENGTH
97
+ })]
98
+ });
99
+ });
100
+ /**
101
+ * Static fallback rendered when react-native-svg is unavailable (e.g. a web
102
+ * bundle that omits the optional peer). Draws a plain Unicode check so the
103
+ * component still communicates "done"; `play()` is a no-op.
104
+ */
105
+ const StaticCheck = /*#__PURE__*/forwardRef(function StaticCheck({
106
+ size,
107
+ color
108
+ }, ref) {
109
+ useImperativeHandle(ref, () => ({
110
+ play: () => undefined
111
+ }), []);
112
+ return /*#__PURE__*/_jsx(Text, {
113
+ accessibilityElementsHidden: true,
114
+ style: [styles.staticCheck, {
115
+ width: size,
116
+ fontSize: size * 0.8,
117
+ lineHeight: size,
118
+ color
119
+ }],
120
+ children: '✓'
121
+ });
122
+ });
123
+
124
+ /**
125
+ * A draw-on checkmark: a ring strokes on, then the check strokes in. Expose a
126
+ * ref and call `ref.current?.play()` to (re)play — e.g. on a successful submit.
127
+ * Ported from Bluesky's `AnimatedCheck`.
128
+ */
129
+ export const AnimatedCheck = /*#__PURE__*/forwardRef(function AnimatedCheck({
130
+ size = 24,
131
+ color
132
+ }, ref) {
133
+ const theme = useTheme();
134
+ const resolvedColor = color ?? theme.colors.success;
135
+ const svg = useMemo(() => getSvgModule(), []);
136
+ if (!svg) {
137
+ return /*#__PURE__*/_jsx(StaticCheck, {
138
+ ref: ref,
139
+ size: size,
140
+ color: resolvedColor
141
+ });
142
+ }
143
+ return /*#__PURE__*/_jsx(AnimatedCheckSvg, {
144
+ ref: ref,
145
+ size: size,
146
+ color: resolvedColor,
147
+ svg: svg
148
+ });
149
+ });
150
+ AnimatedCheck.displayName = 'AnimatedCheck';
151
+ const styles = StyleSheet.create({
152
+ staticCheck: {
153
+ textAlign: 'center',
154
+ fontWeight: '700'
155
+ }
156
+ });
157
+ //# sourceMappingURL=AnimatedCheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","forwardRef","useCallback","useImperativeHandle","useMemo","StyleSheet","Text","Animated","Easing","useAnimatedProps","useSharedValue","withDelay","withTiming","getSvgModule","useTheme","jsx","_jsx","jsxs","_jsxs","VIEW_BOX","CIRCLE_RADIUS","CIRCLE_LENGTH","CHECK_LENGTH","CHECK_PATH","STROKE_WIDTH","CIRCLE_DURATION","CHECK_DURATION","buildAnimatedSvg","svg","Circle","createAnimatedComponent","Path","animatedSvgCache","getAnimatedSvg","AnimatedCheckSvg","size","color","ref","default","Svg","circleProgress","checkProgress","circleAnimatedProps","strokeDashoffset","value","checkAnimatedProps","play","duration","easing","linear","fill","viewBox","width","height","children","animatedProps","cx","cy","r","stroke","strokeWidth","strokeDasharray","d","StaticCheck","undefined","accessibilityElementsHidden","style","styles","staticCheck","fontSize","lineHeight","AnimatedCheck","theme","resolvedColor","colors","success","displayName","create","textAlign","fontWeight"],"sourceRoot":"../../../src","sources":["animated-check/AnimatedCheck.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { AnimatedCheck } from "./AnimatedCheck.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AnimatedCheck"],"sourceRoot":"../../../src","sources":["animated-check/index.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,oBAAiB","ignoreList":[]}
@@ -5,9 +5,11 @@ import { View, Image, StyleSheet, Text, TouchableOpacity } from 'react-native';
5
5
  import { useTheme } from "../theme/use-theme.js";
6
6
  import { useImageResolver } from "../image-resolver/context.js";
7
7
  import { Z_INDEX } from "../styles/z-index.js";
8
- import { lazyRequire } from "../utils/lazy-require.js";
9
8
  import { useAvatarPlaceholder } from "./placeholder-context.js";
10
9
  import { LiveBadge } from "./LiveBadge.js";
10
+ import { AvatarRing, getRingOuterSize } from "./AvatarRing.js";
11
+ import { getSvgModule } from "./svg-module.js";
12
+ import { SQUIRCLE_PATH } from "./squircle-path.js";
11
13
  // Google Contacts-inspired palette used to pick a deterministic background
12
14
  // color for name-based placeholder avatars.
13
15
  const NAME_AVATAR_COLORS = ['#D93025', '#E8710A', '#F9AB00', '#1E8E3E', '#12B5CB', '#1A73E8', '#7627BB', '#C5221F', '#0B8043', '#A142F4'];
@@ -32,24 +34,8 @@ function getNameColor(name) {
32
34
  // `.jpg` asset import (and no ambient `*.jpg` module declaration) is required for
33
35
  // consumers compiling Bloom's source files directly.
34
36
  import DEFAULT_AVATAR_IMAGE from "./default-avatar.js";
35
-
36
- // Squircle clip path normalized to 0–1 coordinate space (viewBox="0 0 1 1").
37
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
38
- const SQUIRCLE_PATH = 'M0 0.5 L0.00122 0.31674 L0.00489 0.25123 L0.01103 0.20331 L0.01969 0.16478 L0.03097 0.13257 L0.04495 0.10518 L0.0618 0.08177 L0.08177 0.0618 L0.10518 0.04495 L0.13257 0.03097 L0.16478 0.01969 L0.20331 0.01103 L0.25123 0.00489 L0.31674 0.00122 L0.5 0' + ' L0.68895 0.0014 L0.7564 0.00561 L0.80559 0.01267 L0.84499 0.02264 L0.87771 0.03564 L0.9053 0.05181 L0.92862 0.07138 L0.94819 0.0947 L0.96436 0.12228 L0.97736 0.15501 L0.98733 0.19441 L0.99439 0.2436 L0.9986 0.31105 L1 0.5' + ' L0.9986 0.68895 L0.99439 0.7564 L0.98733 0.80559 L0.97736 0.84499 L0.96436 0.87771 L0.94819 0.9053 L0.92862 0.92862 L0.9053 0.94819 L0.87771 0.96436 L0.84499 0.97736 L0.80559 0.98733 L0.7564 0.99439 L0.68895 0.9986 L0.5 1' + ' L0.31105 0.9986 L0.2436 0.99439 L0.19441 0.98733 L0.15501 0.97736 L0.12228 0.96436 L0.0947 0.94819 L0.07138 0.92862 L0.05181 0.9053 L0.03564 0.87771 L0.02264 0.84499 L0.01267 0.80559 L0.00561 0.7564 L0.0014 0.68895 L0 0.5Z';
37
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
39
38
  let clipIdCounter = 0;
40
-
41
- // Lazy-loaded SVG components for squircle shape.
42
- // Returns null if react-native-svg is not installed.
43
-
44
- const getSvgModule = lazyRequire('react-native-svg');
45
-
46
- /**
47
- * Live-ring drawing config passed down to shape renderers.
48
- * - `color`: resolved ring color (theme `negative` or `liveColor` override).
49
- * - `strokeWidth`: stroke width in the squircle's 0–1 path coordinate space.
50
- * - `borderWidth`: ring border width in pixels for the circle fallback.
51
- */
52
-
53
39
  function SquircleImage({
54
40
  uri,
55
41
  fallbackSource,
@@ -57,24 +43,18 @@ function SquircleImage({
57
43
  fallbackColor,
58
44
  placeholderIcon,
59
45
  name,
60
- onError,
61
- liveRing
46
+ onError
62
47
  }) {
48
+ const clipId = useMemo(() => `bloom-sqc${clipIdCounter++}`, []);
63
49
  const svg = getSvgModule();
64
50
  if (!svg) {
65
- // Fallback to circle if react-native-svg is not installed. The circle
66
- // fallback also gets a circle live ring (matching its rendered shape).
67
- return /*#__PURE__*/_jsxs(_Fragment, {
68
- children: [/*#__PURE__*/_jsx(CircleFallback, {
69
- size: size,
70
- fallbackColor: fallbackColor,
71
- icon: placeholderIcon,
72
- name: name
73
- }), liveRing && /*#__PURE__*/_jsx(CircleLiveRing, {
74
- radius: size / 2,
75
- color: liveRing.color,
76
- borderWidth: liveRing.borderWidth
77
- })]
51
+ // Fallback to a circle if react-native-svg is not installed. The ring (if
52
+ // any) is drawn separately by AvatarRing, which also degrades to a circle.
53
+ return /*#__PURE__*/_jsx(CircleFallback, {
54
+ size: size,
55
+ fallbackColor: fallbackColor,
56
+ icon: placeholderIcon,
57
+ name: name
78
58
  });
79
59
  }
80
60
  const {
@@ -84,22 +64,15 @@ function SquircleImage({
84
64
  Path,
85
65
  Image: SvgImage
86
66
  } = svg;
87
- const clipId = useMemo(() => `bloom-sqc${clipIdCounter++}`, []);
88
67
  const href = uri ? {
89
68
  uri
90
69
  } : fallbackSource;
91
70
  if (!href) {
92
- return /*#__PURE__*/_jsxs(_Fragment, {
93
- children: [/*#__PURE__*/_jsx(CircleFallback, {
94
- size: size,
95
- fallbackColor: fallbackColor,
96
- icon: placeholderIcon,
97
- name: name
98
- }), liveRing && /*#__PURE__*/_jsx(CircleLiveRing, {
99
- radius: size / 2,
100
- color: liveRing.color,
101
- borderWidth: liveRing.borderWidth
102
- })]
71
+ return /*#__PURE__*/_jsx(CircleFallback, {
72
+ size: size,
73
+ fallbackColor: fallbackColor,
74
+ icon: placeholderIcon,
75
+ name: name
103
76
  });
104
77
  }
105
78
  return /*#__PURE__*/_jsxs(_Fragment, {
@@ -126,11 +99,6 @@ function SquircleImage({
126
99
  height: 1,
127
100
  preserveAspectRatio: "xMidYMid slice",
128
101
  clipPath: `url(#${clipId})`
129
- }), liveRing && /*#__PURE__*/_jsx(Path, {
130
- d: SQUIRCLE_PATH,
131
- fill: "none",
132
- stroke: liveRing.color,
133
- strokeWidth: liveRing.strokeWidth
134
102
  })]
135
103
  })]
136
104
  });
@@ -179,28 +147,6 @@ function CircleFallback({
179
147
  }))
180
148
  });
181
149
  }
182
-
183
- /**
184
- * Solid live ring for circular avatars — an absolutely-positioned inset-0
185
- * overlay whose border overlays the avatar edge (drawn on top of the image,
186
- * never a border on the image itself). Also used as the fallback ring for a
187
- * squircle avatar when react-native-svg is unavailable.
188
- */
189
- function CircleLiveRing({
190
- radius,
191
- color,
192
- borderWidth
193
- }) {
194
- return /*#__PURE__*/_jsx(View, {
195
- style: [StyleSheet.absoluteFill, {
196
- borderRadius: radius,
197
- borderColor: color,
198
- borderWidth,
199
- zIndex: Z_INDEX.raised,
200
- pointerEvents: 'none'
201
- }]
202
- });
203
- }
204
150
  const AvatarComponent = ({
205
151
  source,
206
152
  uri,
@@ -220,6 +166,7 @@ const AvatarComponent = ({
220
166
  hideLiveBadge = false,
221
167
  liveLabel = 'LIVE',
222
168
  liveColor,
169
+ ring,
223
170
  testID
224
171
  }) => {
225
172
  const [errored, setErrored] = useState(false);
@@ -277,26 +224,40 @@ const AvatarComponent = ({
277
224
  return fallbackSource;
278
225
  }, [effectiveUri, resolvedImageSource, fallbackSource]);
279
226
 
280
- // Live indicator (modeled on Bluesky): a solid ring around the avatar plus,
281
- // unless suppressed, a "LIVE" pill hanging off the bottom-center. Colors come
282
- // from the theme (`negative` / `negativeForeground`) with an optional
283
- // `liveColor` override. The badge is only shown for `size > 16`.
284
- const liveRingColor = liveColor ?? theme.colors.negative;
285
- const liveBorderWidth = size > 16 ? 2 : 1;
286
- const liveRing = live ? {
287
- color: liveRingColor,
288
- // The squircle path is in 0–1 space; center-stroking it and letting the
289
- // viewport clip the outer half yields a ~`liveBorderWidth`-px inset ring.
290
- strokeWidth: liveBorderWidth / size * 2,
291
- borderWidth: liveBorderWidth
227
+ // Resolve a SINGLE ring config shared by `live` and the public `ring` prop.
228
+ // An explicit `ring` wins for geometry and colors; otherwise `live` derives a
229
+ // solid theme-`negative` ring (modeled on Bluesky's live indicator). The
230
+ // "LIVE" badge stays independently controlled by `live` / `hideLiveBadge` and
231
+ // uses the theme `negative` color regardless of the ring's colors.
232
+ const liveBadgeColor = liveColor ?? theme.colors.negative;
233
+ const resolvedRing = ring ? ring : live ? {
234
+ colors: liveBadgeColor,
235
+ width: size > 16 ? 2 : 1,
236
+ gap: 0
292
237
  } : undefined;
238
+ const ringWidth = resolvedRing?.width ?? (size > 16 ? 2 : 1);
239
+ const ringGap = resolvedRing?.gap ?? 0;
240
+ // When gap > 0 the ring sits outside the avatar and the footprint grows so the
241
+ // avatar can be centered inside; gap 0 overlays the edge (footprint unchanged).
242
+ const outer = resolvedRing ? getRingOuterSize(size, ringWidth, ringGap) : size;
293
243
  const showLiveBadge = live && size > 16 && !hideLiveBadge;
294
- const content = /*#__PURE__*/_jsxs(View, {
295
- style: [styles.container, {
244
+ const ringElement = resolvedRing ? /*#__PURE__*/_jsx(AvatarRing, {
245
+ size: size,
246
+ shape: shape,
247
+ colors: resolvedRing.colors,
248
+ width: ringWidth,
249
+ gap: ringGap,
250
+ gradientDirection: resolvedRing.gradientDirection ?? 'diagonal'
251
+ }) : null;
252
+
253
+ // The avatar box holds the image and the badges (which hug the avatar). When
254
+ // gap > 0 this box is centered inside the larger container; when gap is 0 it
255
+ // fills the container exactly.
256
+ const avatarBox = /*#__PURE__*/_jsxs(View, {
257
+ style: [styles.avatarBox, {
296
258
  width: size,
297
259
  height: size
298
- }, style],
299
- testID: testID,
260
+ }],
300
261
  children: [shape === 'squircle' ? /*#__PURE__*/_jsx(SquircleImage, {
301
262
  uri: effectiveUri,
302
263
  fallbackSource: fallbackSource,
@@ -304,8 +265,7 @@ const AvatarComponent = ({
304
265
  fallbackColor: fallbackColor,
305
266
  placeholderIcon: resolvedPlaceholderIcon,
306
267
  name: name,
307
- onError: () => setErrored(true),
308
- liveRing: liveRing
268
+ onError: () => setErrored(true)
309
269
  }) : /*#__PURE__*/_jsx(View, {
310
270
  style: [styles.imageContainer, {
311
271
  width: size,
@@ -325,11 +285,7 @@ const AvatarComponent = ({
325
285
  icon: resolvedPlaceholderIcon,
326
286
  name: name
327
287
  })
328
- }), live && shape !== 'squircle' && /*#__PURE__*/_jsx(CircleLiveRing, {
329
- radius: radius,
330
- color: liveRingColor,
331
- borderWidth: liveBorderWidth
332
- }), verified && verifiedIcon && /*#__PURE__*/_jsx(View, {
288
+ }), ringGap === 0 ? ringElement : null, verified && verifiedIcon && /*#__PURE__*/_jsx(View, {
333
289
  style: [styles.verifiedBadge, {
334
290
  width: size * 0.36,
335
291
  height: size * 0.36
@@ -338,10 +294,18 @@ const AvatarComponent = ({
338
294
  }), showLiveBadge && /*#__PURE__*/_jsx(LiveBadge, {
339
295
  variant: size > 32 ? 'small' : 'tiny',
340
296
  label: liveLabel,
341
- backgroundColor: liveRingColor,
297
+ backgroundColor: liveBadgeColor,
342
298
  textColor: theme.colors.negativeForeground
343
299
  })]
344
300
  });
301
+ const content = /*#__PURE__*/_jsxs(View, {
302
+ style: [styles.container, {
303
+ width: outer,
304
+ height: outer
305
+ }, style],
306
+ testID: testID,
307
+ children: [ringGap > 0 ? ringElement : null, avatarBox]
308
+ });
345
309
  if (onPress) {
346
310
  return /*#__PURE__*/_jsx(TouchableOpacity, {
347
311
  onPress: onPress,
@@ -357,6 +321,12 @@ const styles = StyleSheet.create({
357
321
  justifyContent: 'center',
358
322
  alignItems: 'center'
359
323
  },
324
+ avatarBox: {
325
+ position: 'relative',
326
+ overflow: 'visible',
327
+ justifyContent: 'center',
328
+ alignItems: 'center'
329
+ },
360
330
  imageContainer: {
361
331
  overflow: 'hidden',
362
332
  justifyContent: 'center',
@@ -1 +1 @@
1
- {"version":3,"names":["React","memo","useMemo","useRef","useState","View","Image","StyleSheet","Text","TouchableOpacity","useTheme","useImageResolver","Z_INDEX","lazyRequire","useAvatarPlaceholder","LiveBadge","NAME_AVATAR_COLORS","getInitial","name","trimmed","trim","firstCodePoint","toUpperCase","getNameColor","hash","i","length","charCodeAt","index","Math","abs","DEFAULT_AVATAR_IMAGE","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","SQUIRCLE_PATH","clipIdCounter","getSvgModule","SquircleImage","uri","fallbackSource","size","fallbackColor","placeholderIcon","onError","liveRing","svg","children","CircleFallback","icon","CircleLiveRing","radius","color","borderWidth","default","Svg","Defs","ClipPath","Path","SvgImage","clipId","href","source","style","styles","errorDetector","width","height","viewBox","id","d","preserveAspectRatio","clipPath","fill","stroke","strokeWidth","hasName","initialStyle","fontSize","round","fontWeight","lineHeight","textAlign","includeFontPadding","borderRadius","backgroundColor","justifyContent","alignItems","overflow","allowFontScaling","numberOfLines","resizeMode","absoluteFill","borderColor","zIndex","raised","pointerEvents","AvatarComponent","variant","verified","verifiedIcon","shape","imageStyle","placeholderColor","onPress","live","hideLiveBadge","liveLabel","liveColor","testID","errored","setErrored","theme","placeholderConfig","colors","backgroundTertiary","resolvedPlaceholderIcon","undefined","prevSourceRef","prevUriRef","prevVariantRef","current","imageResolver","resolvedUri","startsWith","resolvedImageSource","effectiveUri","imageSource","liveRingColor","negative","liveBorderWidth","showLiveBadge","content","container","imageContainer","verifiedBadge","label","textColor","negativeForeground","create","position","bottom","right","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","Text","TouchableOpacity","useTheme","useImageResolver","Z_INDEX","useAvatarPlaceholder","LiveBadge","AvatarRing","getRingOuterSize","getSvgModule","SQUIRCLE_PATH","NAME_AVATAR_COLORS","getInitial","name","trimmed","trim","firstCodePoint","toUpperCase","getNameColor","hash","i","length","charCodeAt","index","Math","abs","DEFAULT_AVATAR_IMAGE","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","clipIdCounter","SquircleImage","uri","fallbackSource","size","fallbackColor","placeholderIcon","onError","clipId","svg","CircleFallback","icon","default","Svg","Defs","ClipPath","Path","SvgImage","href","children","source","style","styles","errorDetector","width","height","viewBox","id","d","preserveAspectRatio","clipPath","radius","hasName","initialStyle","color","fontSize","round","fontWeight","lineHeight","textAlign","includeFontPadding","borderRadius","backgroundColor","justifyContent","alignItems","overflow","allowFontScaling","numberOfLines","resizeMode","AvatarComponent","variant","verified","verifiedIcon","shape","imageStyle","placeholderColor","onPress","live","hideLiveBadge","liveLabel","liveColor","ring","testID","errored","setErrored","theme","placeholderConfig","colors","backgroundTertiary","resolvedPlaceholderIcon","undefined","prevSourceRef","prevUriRef","prevVariantRef","current","imageResolver","resolvedUri","startsWith","resolvedImageSource","effectiveUri","imageSource","liveBadgeColor","negative","resolvedRing","gap","ringWidth","ringGap","outer","showLiveBadge","ringElement","gradientDirection","avatarBox","imageContainer","absoluteFill","verifiedBadge","label","textColor","negativeForeground","content","container","create","position","bottom","right","zIndex","raised","opacity","Avatar","displayName"],"sourceRoot":"../../../src","sources":["avatar/Avatar.tsx"],"mappings":"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","ignoreList":[]}