@oxy.so/bloom 7.0.1 → 7.1.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.
Files changed (519) hide show
  1. package/assets/character-runtime/README.md +55 -0
  2. package/assets/character-runtime/appearance-codec.mjs +149 -0
  3. package/assets/character-runtime/integrity.json +6 -0
  4. package/assets/character-runtime/legacy-engine.mjs +105 -0
  5. package/assets/character-runtime/legacy-geometry.mjs +166 -0
  6. package/assets/character-runtime/legacy-worker.mjs +85 -0
  7. package/assets/character-runtime/managed-avatar.mjs +258 -0
  8. package/assets/character-runtime/orbit-characters.data +0 -0
  9. package/assets/character-runtime/orbit-characters.mjs +30 -0
  10. package/assets/character-runtime/orbit-characters.wasm +0 -0
  11. package/assets/character-runtime/preparation-worker.mjs +19 -0
  12. package/assets/character-runtime/render-budget.mjs +144 -0
  13. package/assets/character-runtime/runtime.mjs +851 -0
  14. package/assets/character-runtime/thumbnails/eyes/crescent_inset.png +0 -0
  15. package/assets/character-runtime/thumbnails/eyes/dots.png +0 -0
  16. package/assets/character-runtime/thumbnails/eyes/double_highlights.png +0 -0
  17. package/assets/character-runtime/thumbnails/eyes/highlight_capsules.png +0 -0
  18. package/assets/character-runtime/thumbnails/eyes/oval.png +0 -0
  19. package/assets/character-runtime/thumbnails/eyes/round_inset.png +0 -0
  20. package/assets/character-runtime/thumbnails/eyes/sleepy_lids.png +0 -0
  21. package/assets/character-runtime/thumbnails/eyes/sparkle_capsules.png +0 -0
  22. package/assets/character-runtime/thumbnails/eyes/swept_lids.png +0 -0
  23. package/assets/character-runtime/thumbnails/shapes/capsule.png +0 -0
  24. package/assets/character-runtime/thumbnails/shapes/circle.png +0 -0
  25. package/assets/character-runtime/thumbnails/shapes/circle_two_ears.png +0 -0
  26. package/assets/character-runtime/thumbnails/shapes/four_lobed_butterfly.png +0 -0
  27. package/assets/character-runtime/thumbnails/shapes/heart.png +0 -0
  28. package/assets/character-runtime/thumbnails/shapes/rounded_cube.png +0 -0
  29. package/assets/character-runtime/thumbnails/shapes/rounded_diamond.png +0 -0
  30. package/assets/character-runtime/thumbnails/shapes/rounded_head_two_ears.png +0 -0
  31. package/assets/character-runtime/thumbnails/shapes/rounded_triangle.png +0 -0
  32. package/assets/character-runtime/thumbnails/shapes/six_lobed_flower.png +0 -0
  33. package/assets/character-runtime/thumbnails/shapes/twelve_scalloped_rosette.png +0 -0
  34. package/docs/adoption-matrix.mdx +9 -9
  35. package/docs/agent-avatar.mdx +44 -10
  36. package/docs/agent-creator.mdx +12 -4
  37. package/docs/multi-agent-chat.mdx +12 -0
  38. package/docs/project-board.mdx +3 -3
  39. package/lib/commonjs/agent-avatar/AgentAvatar.js +15 -203
  40. package/lib/commonjs/agent-avatar/AgentAvatar.js.map +1 -1
  41. package/lib/commonjs/agent-avatar/AgentAvatarProvider.js +69 -0
  42. package/lib/commonjs/agent-avatar/AgentAvatarProvider.js.map +1 -0
  43. package/lib/commonjs/agent-avatar/CharacterAvatar.js +212 -0
  44. package/lib/commonjs/agent-avatar/CharacterAvatar.js.map +1 -0
  45. package/lib/commonjs/agent-avatar/ProceduralAvatar.js +216 -0
  46. package/lib/commonjs/agent-avatar/ProceduralAvatar.js.map +1 -0
  47. package/lib/commonjs/agent-avatar/artwork.js +4 -3
  48. package/lib/commonjs/agent-avatar/artwork.js.map +1 -1
  49. package/lib/commonjs/agent-avatar/avatar-color.js +16 -0
  50. package/lib/commonjs/agent-avatar/avatar-color.js.map +1 -0
  51. package/lib/commonjs/agent-avatar/character-html.js +25 -0
  52. package/lib/commonjs/agent-avatar/character-html.js.map +1 -0
  53. package/lib/commonjs/agent-avatar/character-runtime-module.js +39 -0
  54. package/lib/commonjs/agent-avatar/character-runtime-module.js.map +1 -0
  55. package/lib/commonjs/agent-avatar/character-webview.js +18 -0
  56. package/lib/commonjs/agent-avatar/character-webview.js.map +1 -0
  57. package/lib/commonjs/agent-avatar/config-character.js +36 -0
  58. package/lib/commonjs/agent-avatar/config-character.js.map +1 -0
  59. package/lib/commonjs/agent-avatar/context.js +6 -1
  60. package/lib/commonjs/agent-avatar/context.js.map +1 -1
  61. package/lib/commonjs/agent-avatar/index.js +7 -0
  62. package/lib/commonjs/agent-avatar/index.js.map +1 -1
  63. package/lib/commonjs/agent-avatar/legacy-contours.js +57 -0
  64. package/lib/commonjs/agent-avatar/legacy-contours.js.map +1 -0
  65. package/lib/commonjs/agent-avatar/legacy-recipe.js +112 -0
  66. package/lib/commonjs/agent-avatar/legacy-recipe.js.map +1 -0
  67. package/lib/commonjs/agent-avatar/messages.js +2 -1
  68. package/lib/commonjs/agent-avatar/messages.js.map +1 -1
  69. package/lib/commonjs/agent-avatar/model.js +2 -0
  70. package/lib/commonjs/agent-avatar/model.js.map +1 -1
  71. package/lib/commonjs/agent-creator/AgentCreatorBase.js +251 -25
  72. package/lib/commonjs/agent-creator/AgentCreatorBase.js.map +1 -1
  73. package/lib/commonjs/agent-creator/CharacterControls.js +115 -0
  74. package/lib/commonjs/agent-creator/CharacterControls.js.map +1 -0
  75. package/lib/commonjs/agent-creator/EmotionPicker.js +51 -18
  76. package/lib/commonjs/agent-creator/EmotionPicker.js.map +1 -1
  77. package/lib/commonjs/agent-creator/ShapeArc.js +56 -26
  78. package/lib/commonjs/agent-creator/ShapeArc.js.map +1 -1
  79. package/lib/commonjs/agent-creator/ShapeSilhouette.js +62 -0
  80. package/lib/commonjs/agent-creator/ShapeSilhouette.js.map +1 -0
  81. package/lib/commonjs/agent-creator/constants.js +48 -1
  82. package/lib/commonjs/agent-creator/constants.js.map +1 -1
  83. package/lib/commonjs/agent-creator/messages.js +9 -0
  84. package/lib/commonjs/agent-creator/messages.js.map +1 -1
  85. package/lib/commonjs/agent-creator/shared.js +7 -10
  86. package/lib/commonjs/agent-creator/shared.js.map +1 -1
  87. package/lib/commonjs/agent-thinking/AgentThinking.js +4 -62
  88. package/lib/commonjs/agent-thinking/AgentThinking.js.map +1 -1
  89. package/lib/commonjs/agent-thinking/ThinkingLabel.js +77 -0
  90. package/lib/commonjs/agent-thinking/ThinkingLabel.js.map +1 -0
  91. package/lib/commonjs/chart-cards/TokensChartCard.js +20 -5
  92. package/lib/commonjs/chart-cards/TokensChartCard.js.map +1 -1
  93. package/lib/commonjs/locale/translations/ar.js +11 -1
  94. package/lib/commonjs/locale/translations/ar.js.map +1 -1
  95. package/lib/commonjs/locale/translations/bn.js +11 -1
  96. package/lib/commonjs/locale/translations/bn.js.map +1 -1
  97. package/lib/commonjs/locale/translations/ca.js +11 -1
  98. package/lib/commonjs/locale/translations/ca.js.map +1 -1
  99. package/lib/commonjs/locale/translations/de.js +11 -1
  100. package/lib/commonjs/locale/translations/de.js.map +1 -1
  101. package/lib/commonjs/locale/translations/es.js +11 -1
  102. package/lib/commonjs/locale/translations/es.js.map +1 -1
  103. package/lib/commonjs/locale/translations/fr.js +11 -1
  104. package/lib/commonjs/locale/translations/fr.js.map +1 -1
  105. package/lib/commonjs/locale/translations/hi.js +11 -1
  106. package/lib/commonjs/locale/translations/hi.js.map +1 -1
  107. package/lib/commonjs/locale/translations/id.js +11 -1
  108. package/lib/commonjs/locale/translations/id.js.map +1 -1
  109. package/lib/commonjs/locale/translations/it.js +11 -1
  110. package/lib/commonjs/locale/translations/it.js.map +1 -1
  111. package/lib/commonjs/locale/translations/ja.js +11 -1
  112. package/lib/commonjs/locale/translations/ja.js.map +1 -1
  113. package/lib/commonjs/locale/translations/pt.js +11 -1
  114. package/lib/commonjs/locale/translations/pt.js.map +1 -1
  115. package/lib/commonjs/locale/translations/ru.js +11 -1
  116. package/lib/commonjs/locale/translations/ru.js.map +1 -1
  117. package/lib/commonjs/locale/translations/tr.js +11 -1
  118. package/lib/commonjs/locale/translations/tr.js.map +1 -1
  119. package/lib/commonjs/locale/translations/zh.js +11 -1
  120. package/lib/commonjs/locale/translations/zh.js.map +1 -1
  121. package/lib/commonjs/multi-agent-chat/AvatarHandoff.js +2 -4
  122. package/lib/commonjs/multi-agent-chat/AvatarHandoff.js.map +1 -1
  123. package/lib/commonjs/multi-agent-chat/ChatAgentProfile.js +97 -0
  124. package/lib/commonjs/multi-agent-chat/ChatAgentProfile.js.map +1 -0
  125. package/lib/commonjs/multi-agent-chat/EditorRail.js +4 -0
  126. package/lib/commonjs/multi-agent-chat/EditorRail.js.map +1 -1
  127. package/lib/commonjs/multi-agent-chat/MultiAgentChatBase.js +89 -126
  128. package/lib/commonjs/multi-agent-chat/MultiAgentChatBase.js.map +1 -1
  129. package/lib/commonjs/multi-agent-chat/ReplyRow.js +8 -11
  130. package/lib/commonjs/multi-agent-chat/ReplyRow.js.map +1 -1
  131. package/lib/commonjs/multi-agent-chat/handoff.js +5 -5
  132. package/lib/commonjs/multi-agent-chat/handoff.js.map +1 -1
  133. package/lib/commonjs/project-board/CreateTicketDialog.js +33 -2
  134. package/lib/commonjs/project-board/CreateTicketDialog.js.map +1 -1
  135. package/lib/commonjs/project-board/ProjectBoardBase.js +137 -38
  136. package/lib/commonjs/project-board/ProjectBoardBase.js.map +1 -1
  137. package/lib/commonjs/project-board/TicketCornerGenieSurface.web.js +34 -28
  138. package/lib/commonjs/project-board/TicketCornerGenieSurface.web.js.map +1 -1
  139. package/lib/commonjs/project-board/TicketDetailDialog.js +6 -3
  140. package/lib/commonjs/project-board/TicketDetailDialog.js.map +1 -1
  141. package/lib/commonjs/project-board/TicketGenieSurface.js +17 -7
  142. package/lib/commonjs/project-board/TicketGenieSurface.js.map +1 -1
  143. package/lib/commonjs/project-board/TicketGenieSurface.web.js +1 -1
  144. package/lib/commonjs/project-board/TicketGenieSurface.web.js.map +1 -1
  145. package/lib/commonjs/project-board/TicketPresence.js +125 -0
  146. package/lib/commonjs/project-board/TicketPresence.js.map +1 -0
  147. package/lib/commonjs/project-board/TicketTokenChart.js +23 -0
  148. package/lib/commonjs/project-board/TicketTokenChart.js.map +1 -0
  149. package/lib/commonjs/project-board/context.js +3 -1
  150. package/lib/commonjs/project-board/context.js.map +1 -1
  151. package/lib/commonjs/search/Search.js +12 -3
  152. package/lib/commonjs/search/Search.js.map +1 -1
  153. package/lib/commonjs/sidebar/SidebarToolbar.js +28 -14
  154. package/lib/commonjs/sidebar/SidebarToolbar.js.map +1 -1
  155. package/lib/commonjs/text-field/TextField.js +13 -7
  156. package/lib/commonjs/text-field/TextField.js.map +1 -1
  157. package/lib/module/agent-avatar/AgentAvatar.js +16 -204
  158. package/lib/module/agent-avatar/AgentAvatar.js.map +1 -1
  159. package/lib/module/agent-avatar/AgentAvatarProvider.js +65 -0
  160. package/lib/module/agent-avatar/AgentAvatarProvider.js.map +1 -0
  161. package/lib/module/agent-avatar/CharacterAvatar.js +208 -0
  162. package/lib/module/agent-avatar/CharacterAvatar.js.map +1 -0
  163. package/lib/module/agent-avatar/ProceduralAvatar.js +212 -0
  164. package/lib/module/agent-avatar/ProceduralAvatar.js.map +1 -0
  165. package/lib/module/agent-avatar/artwork.js +3 -3
  166. package/lib/module/agent-avatar/artwork.js.map +1 -1
  167. package/lib/module/agent-avatar/avatar-color.js +12 -0
  168. package/lib/module/agent-avatar/avatar-color.js.map +1 -0
  169. package/lib/module/agent-avatar/character-html.js +19 -0
  170. package/lib/module/agent-avatar/character-html.js.map +1 -0
  171. package/lib/module/agent-avatar/character-runtime-module.js +35 -0
  172. package/lib/module/agent-avatar/character-runtime-module.js.map +1 -0
  173. package/lib/module/agent-avatar/character-webview.js +14 -0
  174. package/lib/module/agent-avatar/character-webview.js.map +1 -0
  175. package/lib/module/agent-avatar/config-character.js +32 -0
  176. package/lib/module/agent-avatar/config-character.js.map +1 -0
  177. package/lib/module/agent-avatar/context.js +5 -0
  178. package/lib/module/agent-avatar/context.js.map +1 -1
  179. package/lib/module/agent-avatar/index.js +1 -0
  180. package/lib/module/agent-avatar/index.js.map +1 -1
  181. package/lib/module/agent-avatar/legacy-contours.js +53 -0
  182. package/lib/module/agent-avatar/legacy-contours.js.map +1 -0
  183. package/lib/module/agent-avatar/legacy-recipe.js +104 -0
  184. package/lib/module/agent-avatar/legacy-recipe.js.map +1 -0
  185. package/lib/module/agent-avatar/messages.js +2 -1
  186. package/lib/module/agent-avatar/messages.js.map +1 -1
  187. package/lib/module/agent-avatar/model.js +2 -0
  188. package/lib/module/agent-avatar/model.js.map +1 -1
  189. package/lib/module/agent-creator/AgentCreatorBase.js +248 -22
  190. package/lib/module/agent-creator/AgentCreatorBase.js.map +1 -1
  191. package/lib/module/agent-creator/CharacterControls.js +112 -0
  192. package/lib/module/agent-creator/CharacterControls.js.map +1 -0
  193. package/lib/module/agent-creator/EmotionPicker.js +52 -19
  194. package/lib/module/agent-creator/EmotionPicker.js.map +1 -1
  195. package/lib/module/agent-creator/ShapeArc.js +58 -28
  196. package/lib/module/agent-creator/ShapeArc.js.map +1 -1
  197. package/lib/module/agent-creator/ShapeSilhouette.js +57 -0
  198. package/lib/module/agent-creator/ShapeSilhouette.js.map +1 -0
  199. package/lib/module/agent-creator/constants.js +47 -0
  200. package/lib/module/agent-creator/constants.js.map +1 -1
  201. package/lib/module/agent-creator/messages.js +9 -0
  202. package/lib/module/agent-creator/messages.js.map +1 -1
  203. package/lib/module/agent-creator/shared.js +1 -9
  204. package/lib/module/agent-creator/shared.js.map +1 -1
  205. package/lib/module/agent-thinking/AgentThinking.js +5 -63
  206. package/lib/module/agent-thinking/AgentThinking.js.map +1 -1
  207. package/lib/module/agent-thinking/ThinkingLabel.js +73 -0
  208. package/lib/module/agent-thinking/ThinkingLabel.js.map +1 -0
  209. package/lib/module/chart-cards/TokensChartCard.js +20 -5
  210. package/lib/module/chart-cards/TokensChartCard.js.map +1 -1
  211. package/lib/module/locale/translations/ar.js +11 -1
  212. package/lib/module/locale/translations/ar.js.map +1 -1
  213. package/lib/module/locale/translations/bn.js +11 -1
  214. package/lib/module/locale/translations/bn.js.map +1 -1
  215. package/lib/module/locale/translations/ca.js +11 -1
  216. package/lib/module/locale/translations/ca.js.map +1 -1
  217. package/lib/module/locale/translations/de.js +11 -1
  218. package/lib/module/locale/translations/de.js.map +1 -1
  219. package/lib/module/locale/translations/es.js +11 -1
  220. package/lib/module/locale/translations/es.js.map +1 -1
  221. package/lib/module/locale/translations/fr.js +11 -1
  222. package/lib/module/locale/translations/fr.js.map +1 -1
  223. package/lib/module/locale/translations/hi.js +11 -1
  224. package/lib/module/locale/translations/hi.js.map +1 -1
  225. package/lib/module/locale/translations/id.js +11 -1
  226. package/lib/module/locale/translations/id.js.map +1 -1
  227. package/lib/module/locale/translations/it.js +11 -1
  228. package/lib/module/locale/translations/it.js.map +1 -1
  229. package/lib/module/locale/translations/ja.js +11 -1
  230. package/lib/module/locale/translations/ja.js.map +1 -1
  231. package/lib/module/locale/translations/pt.js +11 -1
  232. package/lib/module/locale/translations/pt.js.map +1 -1
  233. package/lib/module/locale/translations/ru.js +11 -1
  234. package/lib/module/locale/translations/ru.js.map +1 -1
  235. package/lib/module/locale/translations/tr.js +11 -1
  236. package/lib/module/locale/translations/tr.js.map +1 -1
  237. package/lib/module/locale/translations/zh.js +11 -1
  238. package/lib/module/locale/translations/zh.js.map +1 -1
  239. package/lib/module/multi-agent-chat/AvatarHandoff.js +3 -5
  240. package/lib/module/multi-agent-chat/AvatarHandoff.js.map +1 -1
  241. package/lib/module/multi-agent-chat/ChatAgentProfile.js +94 -0
  242. package/lib/module/multi-agent-chat/ChatAgentProfile.js.map +1 -0
  243. package/lib/module/multi-agent-chat/EditorRail.js +4 -0
  244. package/lib/module/multi-agent-chat/EditorRail.js.map +1 -1
  245. package/lib/module/multi-agent-chat/MultiAgentChatBase.js +89 -126
  246. package/lib/module/multi-agent-chat/MultiAgentChatBase.js.map +1 -1
  247. package/lib/module/multi-agent-chat/ReplyRow.js +9 -12
  248. package/lib/module/multi-agent-chat/ReplyRow.js.map +1 -1
  249. package/lib/module/multi-agent-chat/handoff.js +4 -4
  250. package/lib/module/multi-agent-chat/handoff.js.map +1 -1
  251. package/lib/module/project-board/CreateTicketDialog.js +33 -2
  252. package/lib/module/project-board/CreateTicketDialog.js.map +1 -1
  253. package/lib/module/project-board/ProjectBoardBase.js +138 -39
  254. package/lib/module/project-board/ProjectBoardBase.js.map +1 -1
  255. package/lib/module/project-board/TicketCornerGenieSurface.web.js +35 -29
  256. package/lib/module/project-board/TicketCornerGenieSurface.web.js.map +1 -1
  257. package/lib/module/project-board/TicketDetailDialog.js +7 -4
  258. package/lib/module/project-board/TicketDetailDialog.js.map +1 -1
  259. package/lib/module/project-board/TicketGenieSurface.js +17 -7
  260. package/lib/module/project-board/TicketGenieSurface.js.map +1 -1
  261. package/lib/module/project-board/TicketGenieSurface.web.js +1 -1
  262. package/lib/module/project-board/TicketGenieSurface.web.js.map +1 -1
  263. package/lib/module/project-board/TicketPresence.js +119 -0
  264. package/lib/module/project-board/TicketPresence.js.map +1 -0
  265. package/lib/module/project-board/TicketTokenChart.js +20 -0
  266. package/lib/module/project-board/TicketTokenChart.js.map +1 -0
  267. package/lib/module/project-board/context.js +2 -0
  268. package/lib/module/project-board/context.js.map +1 -1
  269. package/lib/module/search/Search.js +12 -3
  270. package/lib/module/search/Search.js.map +1 -1
  271. package/lib/module/sidebar/SidebarToolbar.js +29 -15
  272. package/lib/module/sidebar/SidebarToolbar.js.map +1 -1
  273. package/lib/module/text-field/TextField.js +13 -7
  274. package/lib/module/text-field/TextField.js.map +1 -1
  275. package/lib/typescript/commonjs/agent-avatar/AgentAvatar.d.ts +2 -2
  276. package/lib/typescript/commonjs/agent-avatar/AgentAvatar.d.ts.map +1 -1
  277. package/lib/typescript/commonjs/agent-avatar/AgentAvatarProvider.d.ts +4 -0
  278. package/lib/typescript/commonjs/agent-avatar/AgentAvatarProvider.d.ts.map +1 -0
  279. package/lib/typescript/commonjs/agent-avatar/CharacterAvatar.d.ts +4 -0
  280. package/lib/typescript/commonjs/agent-avatar/CharacterAvatar.d.ts.map +1 -0
  281. package/lib/typescript/commonjs/agent-avatar/ProceduralAvatar.d.ts +6 -0
  282. package/lib/typescript/commonjs/agent-avatar/ProceduralAvatar.d.ts.map +1 -0
  283. package/lib/typescript/commonjs/agent-avatar/artwork.d.ts +2 -1
  284. package/lib/typescript/commonjs/agent-avatar/artwork.d.ts.map +1 -1
  285. package/lib/typescript/commonjs/agent-avatar/avatar-color.d.ts +3 -0
  286. package/lib/typescript/commonjs/agent-avatar/avatar-color.d.ts.map +1 -0
  287. package/lib/typescript/commonjs/agent-avatar/character-html.d.ts +4 -0
  288. package/lib/typescript/commonjs/agent-avatar/character-html.d.ts.map +1 -0
  289. package/lib/typescript/commonjs/agent-avatar/character-runtime-module.d.ts +2 -0
  290. package/lib/typescript/commonjs/agent-avatar/character-runtime-module.d.ts.map +1 -0
  291. package/lib/typescript/commonjs/agent-avatar/character-webview.d.ts +24 -0
  292. package/lib/typescript/commonjs/agent-avatar/character-webview.d.ts.map +1 -0
  293. package/lib/typescript/commonjs/agent-avatar/config-character.d.ts +11 -0
  294. package/lib/typescript/commonjs/agent-avatar/config-character.d.ts.map +1 -0
  295. package/lib/typescript/commonjs/agent-avatar/context.d.ts +15 -0
  296. package/lib/typescript/commonjs/agent-avatar/context.d.ts.map +1 -1
  297. package/lib/typescript/commonjs/agent-avatar/index.d.ts +3 -1
  298. package/lib/typescript/commonjs/agent-avatar/index.d.ts.map +1 -1
  299. package/lib/typescript/commonjs/agent-avatar/legacy-contours.d.ts +5 -0
  300. package/lib/typescript/commonjs/agent-avatar/legacy-contours.d.ts.map +1 -0
  301. package/lib/typescript/commonjs/agent-avatar/legacy-recipe.d.ts +40 -0
  302. package/lib/typescript/commonjs/agent-avatar/legacy-recipe.d.ts.map +1 -0
  303. package/lib/typescript/commonjs/agent-avatar/messages.d.ts +1 -0
  304. package/lib/typescript/commonjs/agent-avatar/messages.d.ts.map +1 -1
  305. package/lib/typescript/commonjs/agent-avatar/model.d.ts +3 -0
  306. package/lib/typescript/commonjs/agent-avatar/model.d.ts.map +1 -1
  307. package/lib/typescript/commonjs/agent-avatar/types.d.ts +10 -1
  308. package/lib/typescript/commonjs/agent-avatar/types.d.ts.map +1 -1
  309. package/lib/typescript/commonjs/agent-creator/AgentCreatorBase.d.ts.map +1 -1
  310. package/lib/typescript/commonjs/agent-creator/CharacterControls.d.ts +8 -0
  311. package/lib/typescript/commonjs/agent-creator/CharacterControls.d.ts.map +1 -0
  312. package/lib/typescript/commonjs/agent-creator/EmotionPicker.d.ts +12 -1
  313. package/lib/typescript/commonjs/agent-creator/EmotionPicker.d.ts.map +1 -1
  314. package/lib/typescript/commonjs/agent-creator/ShapeArc.d.ts +11 -2
  315. package/lib/typescript/commonjs/agent-creator/ShapeArc.d.ts.map +1 -1
  316. package/lib/typescript/commonjs/agent-creator/ShapeSilhouette.d.ts +6 -0
  317. package/lib/typescript/commonjs/agent-creator/ShapeSilhouette.d.ts.map +1 -0
  318. package/lib/typescript/commonjs/agent-creator/constants.d.ts +44 -0
  319. package/lib/typescript/commonjs/agent-creator/constants.d.ts.map +1 -1
  320. package/lib/typescript/commonjs/agent-creator/context.d.ts +9 -0
  321. package/lib/typescript/commonjs/agent-creator/context.d.ts.map +1 -1
  322. package/lib/typescript/commonjs/agent-creator/messages.d.ts +10 -0
  323. package/lib/typescript/commonjs/agent-creator/messages.d.ts.map +1 -1
  324. package/lib/typescript/commonjs/agent-creator/shared.d.ts +1 -1
  325. package/lib/typescript/commonjs/agent-creator/shared.d.ts.map +1 -1
  326. package/lib/typescript/commonjs/agent-thinking/AgentThinking.d.ts.map +1 -1
  327. package/lib/typescript/commonjs/agent-thinking/ThinkingLabel.d.ts +7 -0
  328. package/lib/typescript/commonjs/agent-thinking/ThinkingLabel.d.ts.map +1 -0
  329. package/lib/typescript/commonjs/chart-cards/TokensChartCard.d.ts +3 -1
  330. package/lib/typescript/commonjs/chart-cards/TokensChartCard.d.ts.map +1 -1
  331. package/lib/typescript/commonjs/locale/translations/ar.d.ts.map +1 -1
  332. package/lib/typescript/commonjs/locale/translations/bn.d.ts.map +1 -1
  333. package/lib/typescript/commonjs/locale/translations/ca.d.ts.map +1 -1
  334. package/lib/typescript/commonjs/locale/translations/de.d.ts.map +1 -1
  335. package/lib/typescript/commonjs/locale/translations/es.d.ts.map +1 -1
  336. package/lib/typescript/commonjs/locale/translations/fr.d.ts.map +1 -1
  337. package/lib/typescript/commonjs/locale/translations/hi.d.ts.map +1 -1
  338. package/lib/typescript/commonjs/locale/translations/id.d.ts.map +1 -1
  339. package/lib/typescript/commonjs/locale/translations/it.d.ts.map +1 -1
  340. package/lib/typescript/commonjs/locale/translations/ja.d.ts.map +1 -1
  341. package/lib/typescript/commonjs/locale/translations/pt.d.ts.map +1 -1
  342. package/lib/typescript/commonjs/locale/translations/ru.d.ts.map +1 -1
  343. package/lib/typescript/commonjs/locale/translations/tr.d.ts.map +1 -1
  344. package/lib/typescript/commonjs/locale/translations/zh.d.ts.map +1 -1
  345. package/lib/typescript/commonjs/multi-agent-chat/AvatarHandoff.d.ts.map +1 -1
  346. package/lib/typescript/commonjs/multi-agent-chat/ChatAgentProfile.d.ts +11 -0
  347. package/lib/typescript/commonjs/multi-agent-chat/ChatAgentProfile.d.ts.map +1 -0
  348. package/lib/typescript/commonjs/multi-agent-chat/EditorRail.d.ts.map +1 -1
  349. package/lib/typescript/commonjs/multi-agent-chat/MultiAgentChatBase.d.ts.map +1 -1
  350. package/lib/typescript/commonjs/multi-agent-chat/ReplyRow.d.ts.map +1 -1
  351. package/lib/typescript/commonjs/multi-agent-chat/handoff.d.ts +2 -2
  352. package/lib/typescript/commonjs/multi-agent-chat/handoff.d.ts.map +1 -1
  353. package/lib/typescript/commonjs/project-board/CreateTicketDialog.d.ts.map +1 -1
  354. package/lib/typescript/commonjs/project-board/ProjectBoardBase.d.ts.map +1 -1
  355. package/lib/typescript/commonjs/project-board/TicketCornerGenieSurface.web.d.ts.map +1 -1
  356. package/lib/typescript/commonjs/project-board/TicketDetailDialog.d.ts.map +1 -1
  357. package/lib/typescript/commonjs/project-board/TicketGenieSurface.d.ts.map +1 -1
  358. package/lib/typescript/commonjs/project-board/TicketPresence.d.ts +17 -0
  359. package/lib/typescript/commonjs/project-board/TicketPresence.d.ts.map +1 -0
  360. package/lib/typescript/commonjs/project-board/TicketTokenChart.d.ts +5 -0
  361. package/lib/typescript/commonjs/project-board/TicketTokenChart.d.ts.map +1 -0
  362. package/lib/typescript/commonjs/project-board/context.d.ts +2 -0
  363. package/lib/typescript/commonjs/project-board/context.d.ts.map +1 -1
  364. package/lib/typescript/commonjs/search/Search.d.ts.map +1 -1
  365. package/lib/typescript/commonjs/sidebar/SidebarToolbar.d.ts.map +1 -1
  366. package/lib/typescript/commonjs/text-field/TextField.d.ts.map +1 -1
  367. package/lib/typescript/module/agent-avatar/AgentAvatar.d.ts +2 -2
  368. package/lib/typescript/module/agent-avatar/AgentAvatar.d.ts.map +1 -1
  369. package/lib/typescript/module/agent-avatar/AgentAvatarProvider.d.ts +4 -0
  370. package/lib/typescript/module/agent-avatar/AgentAvatarProvider.d.ts.map +1 -0
  371. package/lib/typescript/module/agent-avatar/CharacterAvatar.d.ts +4 -0
  372. package/lib/typescript/module/agent-avatar/CharacterAvatar.d.ts.map +1 -0
  373. package/lib/typescript/module/agent-avatar/ProceduralAvatar.d.ts +6 -0
  374. package/lib/typescript/module/agent-avatar/ProceduralAvatar.d.ts.map +1 -0
  375. package/lib/typescript/module/agent-avatar/artwork.d.ts +2 -1
  376. package/lib/typescript/module/agent-avatar/artwork.d.ts.map +1 -1
  377. package/lib/typescript/module/agent-avatar/avatar-color.d.ts +3 -0
  378. package/lib/typescript/module/agent-avatar/avatar-color.d.ts.map +1 -0
  379. package/lib/typescript/module/agent-avatar/character-html.d.ts +4 -0
  380. package/lib/typescript/module/agent-avatar/character-html.d.ts.map +1 -0
  381. package/lib/typescript/module/agent-avatar/character-runtime-module.d.ts +2 -0
  382. package/lib/typescript/module/agent-avatar/character-runtime-module.d.ts.map +1 -0
  383. package/lib/typescript/module/agent-avatar/character-webview.d.ts +24 -0
  384. package/lib/typescript/module/agent-avatar/character-webview.d.ts.map +1 -0
  385. package/lib/typescript/module/agent-avatar/config-character.d.ts +11 -0
  386. package/lib/typescript/module/agent-avatar/config-character.d.ts.map +1 -0
  387. package/lib/typescript/module/agent-avatar/context.d.ts +15 -0
  388. package/lib/typescript/module/agent-avatar/context.d.ts.map +1 -1
  389. package/lib/typescript/module/agent-avatar/index.d.ts +3 -1
  390. package/lib/typescript/module/agent-avatar/index.d.ts.map +1 -1
  391. package/lib/typescript/module/agent-avatar/legacy-contours.d.ts +5 -0
  392. package/lib/typescript/module/agent-avatar/legacy-contours.d.ts.map +1 -0
  393. package/lib/typescript/module/agent-avatar/legacy-recipe.d.ts +40 -0
  394. package/lib/typescript/module/agent-avatar/legacy-recipe.d.ts.map +1 -0
  395. package/lib/typescript/module/agent-avatar/messages.d.ts +1 -0
  396. package/lib/typescript/module/agent-avatar/messages.d.ts.map +1 -1
  397. package/lib/typescript/module/agent-avatar/model.d.ts +3 -0
  398. package/lib/typescript/module/agent-avatar/model.d.ts.map +1 -1
  399. package/lib/typescript/module/agent-avatar/types.d.ts +10 -1
  400. package/lib/typescript/module/agent-avatar/types.d.ts.map +1 -1
  401. package/lib/typescript/module/agent-creator/AgentCreatorBase.d.ts.map +1 -1
  402. package/lib/typescript/module/agent-creator/CharacterControls.d.ts +8 -0
  403. package/lib/typescript/module/agent-creator/CharacterControls.d.ts.map +1 -0
  404. package/lib/typescript/module/agent-creator/EmotionPicker.d.ts +12 -1
  405. package/lib/typescript/module/agent-creator/EmotionPicker.d.ts.map +1 -1
  406. package/lib/typescript/module/agent-creator/ShapeArc.d.ts +11 -2
  407. package/lib/typescript/module/agent-creator/ShapeArc.d.ts.map +1 -1
  408. package/lib/typescript/module/agent-creator/ShapeSilhouette.d.ts +6 -0
  409. package/lib/typescript/module/agent-creator/ShapeSilhouette.d.ts.map +1 -0
  410. package/lib/typescript/module/agent-creator/constants.d.ts +44 -0
  411. package/lib/typescript/module/agent-creator/constants.d.ts.map +1 -1
  412. package/lib/typescript/module/agent-creator/context.d.ts +9 -0
  413. package/lib/typescript/module/agent-creator/context.d.ts.map +1 -1
  414. package/lib/typescript/module/agent-creator/messages.d.ts +10 -0
  415. package/lib/typescript/module/agent-creator/messages.d.ts.map +1 -1
  416. package/lib/typescript/module/agent-creator/shared.d.ts +1 -1
  417. package/lib/typescript/module/agent-creator/shared.d.ts.map +1 -1
  418. package/lib/typescript/module/agent-thinking/AgentThinking.d.ts.map +1 -1
  419. package/lib/typescript/module/agent-thinking/ThinkingLabel.d.ts +7 -0
  420. package/lib/typescript/module/agent-thinking/ThinkingLabel.d.ts.map +1 -0
  421. package/lib/typescript/module/chart-cards/TokensChartCard.d.ts +3 -1
  422. package/lib/typescript/module/chart-cards/TokensChartCard.d.ts.map +1 -1
  423. package/lib/typescript/module/locale/translations/ar.d.ts.map +1 -1
  424. package/lib/typescript/module/locale/translations/bn.d.ts.map +1 -1
  425. package/lib/typescript/module/locale/translations/ca.d.ts.map +1 -1
  426. package/lib/typescript/module/locale/translations/de.d.ts.map +1 -1
  427. package/lib/typescript/module/locale/translations/es.d.ts.map +1 -1
  428. package/lib/typescript/module/locale/translations/fr.d.ts.map +1 -1
  429. package/lib/typescript/module/locale/translations/hi.d.ts.map +1 -1
  430. package/lib/typescript/module/locale/translations/id.d.ts.map +1 -1
  431. package/lib/typescript/module/locale/translations/it.d.ts.map +1 -1
  432. package/lib/typescript/module/locale/translations/ja.d.ts.map +1 -1
  433. package/lib/typescript/module/locale/translations/pt.d.ts.map +1 -1
  434. package/lib/typescript/module/locale/translations/ru.d.ts.map +1 -1
  435. package/lib/typescript/module/locale/translations/tr.d.ts.map +1 -1
  436. package/lib/typescript/module/locale/translations/zh.d.ts.map +1 -1
  437. package/lib/typescript/module/multi-agent-chat/AvatarHandoff.d.ts.map +1 -1
  438. package/lib/typescript/module/multi-agent-chat/ChatAgentProfile.d.ts +11 -0
  439. package/lib/typescript/module/multi-agent-chat/ChatAgentProfile.d.ts.map +1 -0
  440. package/lib/typescript/module/multi-agent-chat/EditorRail.d.ts.map +1 -1
  441. package/lib/typescript/module/multi-agent-chat/MultiAgentChatBase.d.ts.map +1 -1
  442. package/lib/typescript/module/multi-agent-chat/ReplyRow.d.ts.map +1 -1
  443. package/lib/typescript/module/multi-agent-chat/handoff.d.ts +2 -2
  444. package/lib/typescript/module/multi-agent-chat/handoff.d.ts.map +1 -1
  445. package/lib/typescript/module/project-board/CreateTicketDialog.d.ts.map +1 -1
  446. package/lib/typescript/module/project-board/ProjectBoardBase.d.ts.map +1 -1
  447. package/lib/typescript/module/project-board/TicketCornerGenieSurface.web.d.ts.map +1 -1
  448. package/lib/typescript/module/project-board/TicketDetailDialog.d.ts.map +1 -1
  449. package/lib/typescript/module/project-board/TicketGenieSurface.d.ts.map +1 -1
  450. package/lib/typescript/module/project-board/TicketPresence.d.ts +17 -0
  451. package/lib/typescript/module/project-board/TicketPresence.d.ts.map +1 -0
  452. package/lib/typescript/module/project-board/TicketTokenChart.d.ts +5 -0
  453. package/lib/typescript/module/project-board/TicketTokenChart.d.ts.map +1 -0
  454. package/lib/typescript/module/project-board/context.d.ts +2 -0
  455. package/lib/typescript/module/project-board/context.d.ts.map +1 -1
  456. package/lib/typescript/module/search/Search.d.ts.map +1 -1
  457. package/lib/typescript/module/sidebar/SidebarToolbar.d.ts.map +1 -1
  458. package/lib/typescript/module/text-field/TextField.d.ts.map +1 -1
  459. package/package.json +8 -3
  460. package/src/agent-avatar/AgentAvatar.tsx +16 -296
  461. package/src/agent-avatar/AgentAvatarProvider.tsx +79 -0
  462. package/src/agent-avatar/CharacterAvatar.tsx +260 -0
  463. package/src/agent-avatar/ProceduralAvatar.tsx +303 -0
  464. package/src/agent-avatar/artwork.ts +3 -3
  465. package/src/agent-avatar/avatar-color.ts +17 -0
  466. package/src/agent-avatar/character-html.ts +21 -0
  467. package/src/agent-avatar/character-runtime-module.ts +37 -0
  468. package/src/agent-avatar/character-webview.ts +24 -0
  469. package/src/agent-avatar/config-character.ts +40 -0
  470. package/src/agent-avatar/context.ts +17 -0
  471. package/src/agent-avatar/index.ts +4 -1
  472. package/src/agent-avatar/legacy-contours.ts +76 -0
  473. package/src/agent-avatar/legacy-recipe.ts +123 -0
  474. package/src/agent-avatar/messages.ts +1 -0
  475. package/src/agent-avatar/model.ts +5 -0
  476. package/src/agent-avatar/types.ts +12 -1
  477. package/src/agent-creator/AgentCreatorBase.tsx +338 -39
  478. package/src/agent-creator/CharacterControls.tsx +150 -0
  479. package/src/agent-creator/EmotionPicker.tsx +43 -21
  480. package/src/agent-creator/ShapeArc.tsx +83 -29
  481. package/src/agent-creator/ShapeSilhouette.tsx +65 -0
  482. package/src/agent-creator/constants.ts +30 -0
  483. package/src/agent-creator/messages.ts +19 -0
  484. package/src/agent-creator/shared.ts +1 -15
  485. package/src/agent-thinking/AgentThinking.tsx +7 -70
  486. package/src/agent-thinking/ThinkingLabel.tsx +74 -0
  487. package/src/chart-cards/TokensChartCard.tsx +10 -6
  488. package/src/locale/translations/ar.ts +10 -1
  489. package/src/locale/translations/bn.ts +10 -1
  490. package/src/locale/translations/ca.ts +10 -1
  491. package/src/locale/translations/de.ts +10 -1
  492. package/src/locale/translations/es.ts +10 -1
  493. package/src/locale/translations/fr.ts +10 -1
  494. package/src/locale/translations/hi.ts +10 -1
  495. package/src/locale/translations/id.ts +10 -1
  496. package/src/locale/translations/it.ts +10 -1
  497. package/src/locale/translations/ja.ts +10 -1
  498. package/src/locale/translations/pt.ts +10 -1
  499. package/src/locale/translations/ru.ts +10 -1
  500. package/src/locale/translations/tr.ts +10 -1
  501. package/src/locale/translations/zh.ts +10 -1
  502. package/src/multi-agent-chat/AvatarHandoff.tsx +2 -5
  503. package/src/multi-agent-chat/ChatAgentProfile.tsx +116 -0
  504. package/src/multi-agent-chat/EditorRail.tsx +2 -0
  505. package/src/multi-agent-chat/MultiAgentChatBase.tsx +123 -175
  506. package/src/multi-agent-chat/ReplyRow.tsx +10 -9
  507. package/src/multi-agent-chat/handoff.ts +4 -4
  508. package/src/project-board/CreateTicketDialog.tsx +28 -4
  509. package/src/project-board/ProjectBoardBase.tsx +115 -21
  510. package/src/project-board/TicketCornerGenieSurface.web.tsx +11 -6
  511. package/src/project-board/TicketDetailDialog.tsx +5 -4
  512. package/src/project-board/TicketGenieSurface.tsx +9 -0
  513. package/src/project-board/TicketGenieSurface.web.tsx +1 -1
  514. package/src/project-board/TicketPresence.tsx +137 -0
  515. package/src/project-board/TicketTokenChart.tsx +14 -0
  516. package/src/project-board/context.ts +2 -0
  517. package/src/search/Search.tsx +6 -5
  518. package/src/sidebar/SidebarToolbar.tsx +27 -15
  519. package/src/text-field/TextField.tsx +12 -7
@@ -1,5 +1,5 @@
1
1
  import React, { memo, useEffect, useState } from 'react';
2
- import { Platform, View, type TextStyle, type ViewStyle } from 'react-native';
2
+ import { Platform, View, type ViewStyle } from 'react-native';
3
3
  import Svg, { Path } from 'react-native-svg';
4
4
  import Animated, {
5
5
  Easing,
@@ -15,11 +15,11 @@ import Animated, {
15
15
  } from 'react-native-reanimated';
16
16
 
17
17
  import { useMessages } from '../locale/messages';
18
- import { adoptStyleSheet } from '../styles/adopt-style-sheet';
19
18
  import { withAlpha } from '../theme/color-utils';
20
19
  import type { Theme } from '../theme/types';
21
20
  import { useTheme } from '../theme/use-theme';
22
- import { TYPE_SCALE, Text } from '../typography';
21
+ import { Text } from '../typography';
22
+ import { ThinkingLabel } from './ThinkingLabel';
23
23
  import { AGENT_THINKING_MESSAGES } from './messages';
24
24
  import type { AgentThinkingProps, AgentThinkingTone, AgentThinkingVariant } from './types';
25
25
 
@@ -70,52 +70,6 @@ function resolveTone(theme: Theme, tone: AgentThinkingTone): string {
70
70
  }
71
71
  }
72
72
 
73
- // ---------------------------------------------------------------------------
74
- // Web shimmer (the label). `background-clip: text` has no React Native
75
- // equivalent, so native renders the label in the flat tone — the same resting
76
- // state used under reduced motion.
77
- // ---------------------------------------------------------------------------
78
-
79
- const STYLE_ID = 'bloom-agent-thinking-web-css';
80
- const LABEL_SELECTOR = '[data-bloom-agent-thinking-label]';
81
- /**
82
- * `color` is `!important` because react-native-web writes the `Text`'s own
83
- * colour inline, and an inline declaration outranks any sheet rule without it.
84
- */
85
- const WEB_CSS = `
86
- @keyframes bloom-agent-thinking-shimmer {
87
- from { background-position: 200% center; }
88
- to { background-position: -100% center; }
89
- }
90
- ${LABEL_SELECTOR} {
91
- color: transparent !important;
92
- background-image: linear-gradient(
93
- 100deg,
94
- var(--bloom-agent-thinking-soft) 30%,
95
- var(--bloom-agent-thinking-tone) 50%,
96
- var(--bloom-agent-thinking-soft) 70%
97
- );
98
- background-position: 200% center;
99
- background-size: 300% 100%;
100
- background-clip: text;
101
- -webkit-background-clip: text;
102
- animation: bloom-agent-thinking-shimmer 2.6s linear infinite;
103
- will-change: background-position;
104
- }
105
- @media (prefers-reduced-motion: reduce) {
106
- ${LABEL_SELECTOR} {
107
- color: var(--bloom-agent-thinking-tone) !important;
108
- background-image: none;
109
- animation: none;
110
- }
111
- }
112
- `;
113
-
114
- type ShimmerTextStyle = TextStyle & {
115
- '--bloom-agent-thinking-tone'?: string;
116
- '--bloom-agent-thinking-soft'?: string;
117
- };
118
-
119
73
  // ---------------------------------------------------------------------------
120
74
  // Dots (wave / spin)
121
75
  // ---------------------------------------------------------------------------
@@ -442,21 +396,6 @@ function AgentThinkingComponent({
442
396
  const theme = useTheme();
443
397
  const reducedMotion = useReducedMotion();
444
398
  const color = resolveTone(theme, tone ?? VARIANT_TONE[variant]);
445
- // Read at render, not import, so a host that flips `Platform.OS` (tests) is honoured.
446
- const shimmering = Platform.OS === 'web' && shimmer;
447
-
448
- useEffect(() => {
449
- if (shimmering) adoptStyleSheet(STYLE_ID, WEB_CSS);
450
- }, [shimmering]);
451
-
452
- const labelStyle: ShimmerTextStyle = shimmering
453
- ? {
454
- ...TYPE_SCALE['body-medium'],
455
- color,
456
- '--bloom-agent-thinking-tone': color,
457
- '--bloom-agent-thinking-soft': withAlpha(color, 0.55),
458
- }
459
- : { ...TYPE_SCALE['body-medium'], color };
460
399
 
461
400
  return (
462
401
  <View
@@ -478,15 +417,13 @@ function AgentThinkingComponent({
478
417
  {variant === 'infinity' && (
479
418
  <InfinityIndicator color={color} reducedMotion={reducedMotion} />
480
419
  )}
481
- <Text
420
+ <ThinkingLabel
482
421
  testID={testID ? `${testID}-label` : undefined}
483
- style={labelStyle}
484
- {...(shimmering
485
- ? ({ dataSet: { bloomAgentThinkingLabel: '' } } as Record<string, unknown>)
486
- : {})}
422
+ color={color}
423
+ shimmer={shimmer}
487
424
  >
488
425
  {label}
489
- </Text>
426
+ </ThinkingLabel>
490
427
  {showTimer && <ElapsedTimer color={resolveTone(theme, 'subtle')} />}
491
428
  </View>
492
429
  );
@@ -0,0 +1,74 @@
1
+ import { useEffect } from 'react';
2
+ import { Platform, type TextStyle } from 'react-native';
3
+ import { adoptStyleSheet } from '../styles/adopt-style-sheet';
4
+ import { withAlpha } from '../theme/color-utils';
5
+ import { Text, type TextProps } from '../typography';
6
+
7
+ const STYLE_ID = 'bloom-agent-thinking-web-css';
8
+ const LABEL_SELECTOR = '[data-bloom-agent-thinking-label]';
9
+ /**
10
+ * `color` is `!important` because react-native-web writes the `Text`'s own
11
+ * colour inline, and an inline declaration outranks any sheet rule without it.
12
+ */
13
+ const WEB_CSS = `
14
+ @keyframes bloom-agent-thinking-shimmer {
15
+ from { background-position: 200% center; }
16
+ to { background-position: -100% center; }
17
+ }
18
+ ${LABEL_SELECTOR} {
19
+ color: transparent !important;
20
+ background-image: linear-gradient(
21
+ 100deg,
22
+ var(--bloom-agent-thinking-soft) 30%,
23
+ var(--bloom-agent-thinking-tone) 50%,
24
+ var(--bloom-agent-thinking-soft) 70%
25
+ );
26
+ background-position: 200% center;
27
+ background-size: 300% 100%;
28
+ background-clip: text;
29
+ -webkit-background-clip: text;
30
+ animation: bloom-agent-thinking-shimmer 2.6s linear infinite;
31
+ will-change: background-position;
32
+ }
33
+ @media (prefers-reduced-motion: reduce) {
34
+ ${LABEL_SELECTOR} {
35
+ color: var(--bloom-agent-thinking-tone) !important;
36
+ background-image: none;
37
+ animation: none;
38
+ }
39
+ }
40
+ `;
41
+
42
+ type ShimmerTextStyle = TextStyle & {
43
+ '--bloom-agent-thinking-tone'?: string;
44
+ '--bloom-agent-thinking-soft'?: string;
45
+ };
46
+
47
+ /** Shared thinking label; native and reduced motion retain the flat tone. */
48
+ export function ThinkingLabel({
49
+ color,
50
+ shimmer = true,
51
+ variant = 'body-medium',
52
+ style,
53
+ ...props
54
+ }: TextProps & { color: string; shimmer?: boolean }) {
55
+ const shimmering = Platform.OS === 'web' && shimmer;
56
+ useEffect(() => {
57
+ if (shimmering) adoptStyleSheet(STYLE_ID, WEB_CSS);
58
+ }, [shimmering]);
59
+ const labelStyle: ShimmerTextStyle = shimmering
60
+ ? {
61
+ color,
62
+ '--bloom-agent-thinking-tone': color,
63
+ '--bloom-agent-thinking-soft': withAlpha(color, 0.55),
64
+ }
65
+ : { color };
66
+ return (
67
+ <Text
68
+ {...props}
69
+ variant={variant}
70
+ style={[labelStyle, style]}
71
+ {...(shimmering ? { dataSet: { bloomAgentThinkingLabel: '' } } : {})}
72
+ />
73
+ );
74
+ }
@@ -83,6 +83,8 @@ export interface TokensChartCardProps {
83
83
  /** Axis labels under the plot's edges. Default `"Jun 14"` / `"Today"` — pass your own. */
84
84
  startLabel?: string;
85
85
  endLabel?: string;
86
+ /** Animate the plot reveal. False paints the complete plot without scheduling frames. */
87
+ animate?: boolean;
86
88
  /** Plot height. Default 200. */
87
89
  plotHeight?: number;
88
90
  /** Line colour (and the area's). Default purple-400. */
@@ -161,23 +163,24 @@ export function tokensAreaPath(points: readonly Point[], baseY: number): string
161
163
 
162
164
  /** A 0 → 1 clock over `duration` on `easing`, started on mount. Snaps when `skip`. */
163
165
  function useReveal(skip: boolean): number {
164
- const [progress, setProgress] = useState(skip ? 1 : 0);
166
+ const [frame, setFrame] = useState({ skip, progress: skip ? 1 : 0 });
165
167
  useEffect(() => {
166
168
  if (skip || typeof requestAnimationFrame !== 'function') {
167
- setProgress(1);
169
+ setFrame((previous) => previous.skip && previous.progress === 1 ? previous : { skip: true, progress: 1 });
168
170
  return;
169
171
  }
172
+ setFrame({ skip: false, progress: 0 });
170
173
  const start = Date.now();
171
174
  let raf = 0;
172
175
  const tick = () => {
173
176
  const t = Math.min(1, (Date.now() - start) / REVEAL_MS);
174
- setProgress(REVEAL_EASE(t));
177
+ setFrame({ skip: false, progress: REVEAL_EASE(t) });
175
178
  if (t < 1) raf = requestAnimationFrame(tick);
176
179
  };
177
180
  raf = requestAnimationFrame(tick);
178
181
  return () => cancelAnimationFrame(raf);
179
182
  }, [skip]);
180
- return skip ? 1 : progress;
183
+ return skip ? 1 : frame.skip ? 0 : frame.progress;
181
184
  }
182
185
 
183
186
  export function TokensChartCard({
@@ -190,6 +193,7 @@ export function TokensChartCard({
190
193
  startLabel: startLabelProp,
191
194
  endLabel: endLabelProp,
192
195
  plotHeight = TOKENS_PLOT_HEIGHT,
196
+ animate = true,
193
197
  color,
194
198
  activeColor,
195
199
  activeIndex: controlledIndex,
@@ -209,7 +213,7 @@ export function TokensChartCard({
209
213
  const reducedMotion = useReducedMotion();
210
214
  const [size, setSize] = useState<{ width: number; height: number } | null>(null);
211
215
  const [activeIndex, setActiveIndex] = useActiveIndex(data.length, controlledIndex, onActiveIndexChange);
212
- const reveal = useReveal(reducedMotion);
216
+ const reveal = useReveal(reducedMotion || !animate);
213
217
 
214
218
  const colors = useMemo(() => {
215
219
  return {
@@ -336,7 +340,7 @@ export function TokensChartCard({
336
340
  <Stop offset="1" stopColor={colors.line} stopOpacity={0} />
337
341
  </LinearGradient>
338
342
  <ClipPath id={`${id}-reveal`}>
339
- <Rect x={0} y={0} width={size.width * reveal} height={size.height} />
343
+ <Rect testID={testID ? `${testID}-reveal` : undefined} x={0} y={0} width={size.width * reveal} height={size.height} />
340
344
  </ClipPath>
341
345
  </Defs>
342
346
  <G clipPath={`url(#${id}-reveal)`}>
@@ -26,6 +26,15 @@ const MESSAGE_MEDIA_MESSAGES__items = (n: number) =>
26
26
  });
27
27
 
28
28
  const AGENT_CREATOR_MESSAGES: Translations['AGENT_CREATOR_MESSAGES'] = {
29
+ reaction: "تفاعل",
30
+ working: "اعمل",
31
+ avatarStyle: "نمط الصورة الرمزية",
32
+ proceduralAvatar: "الصورة الرمزية الحالية",
33
+ betaPreset: "شخصية جاهزة (تجريبية)",
34
+ betaEyes: "نمط العيون",
35
+ eyewear: "نظارات",
36
+ accessory: "إكسسوار",
37
+ characterOption: (_category, _id, title) => String(title),
29
38
  editor: "محرر الوكيل",
30
39
  newBot: "روبوت جديد",
31
40
  closeEditor: "إغلاق محرر الوكيل",
@@ -2814,7 +2823,7 @@ const translations: Translations = {
2814
2823
  },
2815
2824
 
2816
2825
  AGENT_CREATOR_MESSAGES,
2817
- AGENT_AVATAR_MESSAGES: { label: "صورة الوكيل" },
2826
+ AGENT_AVATAR_MESSAGES: { label: "صورة الوكيل", unavailable: "الصورة الرمزية غير متاحة", },
2818
2827
  COMMON_MESSAGES,
2819
2828
  SURFACES_MESSAGES,
2820
2829
  CONTACT_CARD_MESSAGES,
@@ -16,6 +16,15 @@ import { has as vendorCard_has, counted as vendorCard_counted } from '../../vend
16
16
  const CALL_UI_MESSAGES__CORNERS = { 'top-left': 'উপরে বাঁয়ে', 'top-right': 'উপরে ডানে', 'bottom-left': 'নিচে বাঁয়ে', 'bottom-right': 'নিচে ডানে' };
17
17
 
18
18
  const AGENT_CREATOR_MESSAGES: Translations['AGENT_CREATOR_MESSAGES'] = {
19
+ reaction: "প্রতিক্রিয়া দেখান",
20
+ working: "কাজ করুন",
21
+ avatarStyle: "অবতারের ধরন",
22
+ proceduralAvatar: "বর্তমান অবতার",
23
+ betaPreset: "প্রস্তুত চরিত্র (বিটা)",
24
+ betaEyes: "চোখের ধরন",
25
+ eyewear: "চশমা",
26
+ accessory: "অনুষঙ্গ",
27
+ characterOption: (_category, _id, title) => String(title),
19
28
  editor: "এজেন্ট সম্পাদক",
20
29
  newBot: "নতুন বট",
21
30
  closeEditor: "এজেন্ট সম্পাদক বন্ধ করুন",
@@ -2472,7 +2481,7 @@ const translations: Translations = {
2472
2481
  },
2473
2482
 
2474
2483
  AGENT_CREATOR_MESSAGES,
2475
- AGENT_AVATAR_MESSAGES: { label: "এজেন্টের অবতার" },
2484
+ AGENT_AVATAR_MESSAGES: { label: "এজেন্টের অবতার", unavailable: "অবতার উপলব্ধ নেই", },
2476
2485
  COMMON_MESSAGES,
2477
2486
  SURFACES_MESSAGES,
2478
2487
  CONTACT_CARD_MESSAGES,
@@ -23,6 +23,15 @@ const CALL_UI_MESSAGES__CORNERS = {
23
23
  const MESSAGE_MEDIA_MESSAGES__items = (n: number) => plural('ca', n, { one: '{n} element', other: '{n} elements' });
24
24
 
25
25
  const AGENT_CREATOR_MESSAGES: Translations['AGENT_CREATOR_MESSAGES'] = {
26
+ reaction: "Reacció",
27
+ working: "Treballa",
28
+ avatarStyle: "Estil de l’avatar",
29
+ proceduralAvatar: "Avatar actual",
30
+ betaPreset: "Personatge predefinit (beta)",
31
+ betaEyes: "Estil dels ulls",
32
+ eyewear: "Ulleres",
33
+ accessory: "Accessori",
34
+ characterOption: (_category, _id, title) => String(title),
26
35
  editor: "Editor de l’agent",
27
36
  newBot: "Bot nou",
28
37
  closeEditor: "Tanca l’editor de l’agent",
@@ -2481,7 +2490,7 @@ const translations: Translations = {
2481
2490
  },
2482
2491
 
2483
2492
  AGENT_CREATOR_MESSAGES,
2484
- AGENT_AVATAR_MESSAGES: { label: "Avatar de l’agent" },
2493
+ AGENT_AVATAR_MESSAGES: { label: "Avatar de l’agent", unavailable: "Avatar no disponible", },
2485
2494
  COMMON_MESSAGES,
2486
2495
  SURFACES_MESSAGES,
2487
2496
  CONTACT_CARD_MESSAGES,
@@ -18,6 +18,15 @@ const CALL_UI_MESSAGES__CORNERS = { 'top-left': 'oben links', 'top-right': 'oben
18
18
  const MESSAGE_MEDIA_MESSAGES__items = (n: number) => plural('de', n, { one: '{n} Element', other: '{n} Elemente' });
19
19
 
20
20
  const AGENT_CREATOR_MESSAGES: Translations['AGENT_CREATOR_MESSAGES'] = {
21
+ reaction: "Reagieren",
22
+ working: "Arbeiten",
23
+ avatarStyle: "Avatar-Stil",
24
+ proceduralAvatar: "Aktueller Avatar",
25
+ betaPreset: "Charaktervorlage (Beta)",
26
+ betaEyes: "Augenstil",
27
+ eyewear: "Brille",
28
+ accessory: "Accessoire",
29
+ characterOption: (_category, _id, title) => String(title),
21
30
  editor: "Agenten-Editor",
22
31
  newBot: "Neuer Bot",
23
32
  closeEditor: "Agenten-Editor schließen",
@@ -2484,7 +2493,7 @@ const translations: Translations = {
2484
2493
  },
2485
2494
 
2486
2495
  AGENT_CREATOR_MESSAGES,
2487
- AGENT_AVATAR_MESSAGES: { label: "Agentenavatar" },
2496
+ AGENT_AVATAR_MESSAGES: { label: "Agentenavatar", unavailable: "Avatar nicht verfügbar", },
2488
2497
  COMMON_MESSAGES,
2489
2498
  SURFACES_MESSAGES,
2490
2499
  CONTACT_CARD_MESSAGES,
@@ -23,6 +23,15 @@ const CALL_UI_MESSAGES__CORNERS = {
23
23
  const MESSAGE_MEDIA_MESSAGES__items = (n: number) => plural('es', n, { one: '{n} elemento', other: '{n} elementos' });
24
24
 
25
25
  const AGENT_CREATOR_MESSAGES: Translations['AGENT_CREATOR_MESSAGES'] = {
26
+ reaction: "Reacción",
27
+ working: "Trabajar",
28
+ avatarStyle: "Estilo del avatar",
29
+ proceduralAvatar: "Avatar actual",
30
+ betaPreset: "Personaje predefinido (beta)",
31
+ betaEyes: "Estilo de ojos",
32
+ eyewear: "Gafas",
33
+ accessory: "Accesorio",
34
+ characterOption: (_category, _id, title) => String(title),
26
35
  editor: "Editor del agente",
27
36
  newBot: "Nuevo bot",
28
37
  closeEditor: "Cerrar editor del agente",
@@ -2481,7 +2490,7 @@ const translations: Translations = {
2481
2490
  },
2482
2491
 
2483
2492
  AGENT_CREATOR_MESSAGES,
2484
- AGENT_AVATAR_MESSAGES: { label: "Avatar del agente" },
2493
+ AGENT_AVATAR_MESSAGES: { label: "Avatar del agente", unavailable: "Avatar no disponible", },
2485
2494
  COMMON_MESSAGES,
2486
2495
  SURFACES_MESSAGES,
2487
2496
  CONTACT_CARD_MESSAGES,
@@ -23,6 +23,15 @@ const CALL_UI_MESSAGES__CORNERS = {
23
23
  const MESSAGE_MEDIA_MESSAGES__items = (n: number) => plural('fr', n, { one: '{n} élément', other: '{n} éléments' });
24
24
 
25
25
  const AGENT_CREATOR_MESSAGES: Translations['AGENT_CREATOR_MESSAGES'] = {
26
+ reaction: "Réagir",
27
+ working: "Travailler",
28
+ avatarStyle: "Style de l’avatar",
29
+ proceduralAvatar: "Avatar actuel",
30
+ betaPreset: "Personnage prédéfini (bêta)",
31
+ betaEyes: "Style des yeux",
32
+ eyewear: "Lunettes",
33
+ accessory: "Accessoire",
34
+ characterOption: (_category, _id, title) => String(title),
26
35
  editor: "Éditeur de l’agent",
27
36
  newBot: "Nouveau bot",
28
37
  closeEditor: "Fermer l’éditeur de l’agent",
@@ -2496,7 +2505,7 @@ const translations: Translations = {
2496
2505
  },
2497
2506
 
2498
2507
  AGENT_CREATOR_MESSAGES,
2499
- AGENT_AVATAR_MESSAGES: { label: "Avatar de l’agent" },
2508
+ AGENT_AVATAR_MESSAGES: { label: "Avatar de l’agent", unavailable: "Avatar indisponible", },
2500
2509
  COMMON_MESSAGES,
2501
2510
  SURFACES_MESSAGES,
2502
2511
  CONTACT_CARD_MESSAGES,
@@ -16,6 +16,15 @@ import { has as vendorCard_has, counted as vendorCard_counted } from '../../vend
16
16
  const CALL_UI_MESSAGES__CORNERS = { 'top-left': 'ऊपर बाएं', 'top-right': 'ऊपर दाएं', 'bottom-left': 'नीचे बाएं', 'bottom-right': 'नीचे दाएं' };
17
17
 
18
18
  const AGENT_CREATOR_MESSAGES: Translations['AGENT_CREATOR_MESSAGES'] = {
19
+ reaction: "प्रतिक्रिया दें",
20
+ working: "काम करें",
21
+ avatarStyle: "अवतार शैली",
22
+ proceduralAvatar: "वर्तमान अवतार",
23
+ betaPreset: "तैयार पात्र (बीटा)",
24
+ betaEyes: "आँखों की शैली",
25
+ eyewear: "चश्मा",
26
+ accessory: "सहायक वस्तु",
27
+ characterOption: (_category, _id, title) => String(title),
19
28
  editor: "एजेंट संपादक",
20
29
  newBot: "नया बॉट",
21
30
  closeEditor: "एजेंट संपादक बंद करें",
@@ -2474,7 +2483,7 @@ const translations: Translations = {
2474
2483
  },
2475
2484
 
2476
2485
  AGENT_CREATOR_MESSAGES,
2477
- AGENT_AVATAR_MESSAGES: { label: "एजेंट अवतार" },
2486
+ AGENT_AVATAR_MESSAGES: { label: "एजेंट अवतार", unavailable: "अवतार उपलब्ध नहीं है", },
2478
2487
  COMMON_MESSAGES,
2479
2488
  SURFACES_MESSAGES,
2480
2489
  CONTACT_CARD_MESSAGES,
@@ -16,6 +16,15 @@ import { has as vendorCard_has, counted as vendorCard_counted } from '../../vend
16
16
  const CALL_UI_MESSAGES__CORNERS = { 'top-left': 'kiri atas', 'top-right': 'kanan atas', 'bottom-left': 'kiri bawah', 'bottom-right': 'kanan bawah' };
17
17
 
18
18
  const AGENT_CREATOR_MESSAGES: Translations['AGENT_CREATOR_MESSAGES'] = {
19
+ reaction: "Bereaksi",
20
+ working: "Bekerja",
21
+ avatarStyle: "Gaya avatar",
22
+ proceduralAvatar: "Avatar saat ini",
23
+ betaPreset: "Karakter bawaan (beta)",
24
+ betaEyes: "Gaya mata",
25
+ eyewear: "Kacamata",
26
+ accessory: "Aksesori",
27
+ characterOption: (_category, _id, title) => String(title),
19
28
  editor: "Editor agen",
20
29
  newBot: "Bot baru",
21
30
  closeEditor: "Tutup editor agen",
@@ -2471,7 +2480,7 @@ const translations: Translations = {
2471
2480
  },
2472
2481
 
2473
2482
  AGENT_CREATOR_MESSAGES,
2474
- AGENT_AVATAR_MESSAGES: { label: "Avatar agen" },
2483
+ AGENT_AVATAR_MESSAGES: { label: "Avatar agen", unavailable: "Avatar tidak tersedia", },
2475
2484
  COMMON_MESSAGES,
2476
2485
  SURFACES_MESSAGES,
2477
2486
  CONTACT_CARD_MESSAGES,
@@ -23,6 +23,15 @@ const CALL_UI_MESSAGES__CORNERS = {
23
23
  const MESSAGE_MEDIA_MESSAGES__items = (n: number) => plural('it', n, { one: '{n} elemento', other: '{n} elementi' });
24
24
 
25
25
  const AGENT_CREATOR_MESSAGES: Translations['AGENT_CREATOR_MESSAGES'] = {
26
+ reaction: "Reagisci",
27
+ working: "Lavora",
28
+ avatarStyle: "Stile dell’avatar",
29
+ proceduralAvatar: "Avatar attuale",
30
+ betaPreset: "Personaggio predefinito (beta)",
31
+ betaEyes: "Stile degli occhi",
32
+ eyewear: "Occhiali",
33
+ accessory: "Accessorio",
34
+ characterOption: (_category, _id, title) => String(title),
26
35
  editor: "Editor dell’agente",
27
36
  newBot: "Nuovo bot",
28
37
  closeEditor: "Chiudi l’editor dell’agente",
@@ -2481,7 +2490,7 @@ const translations: Translations = {
2481
2490
  },
2482
2491
 
2483
2492
  AGENT_CREATOR_MESSAGES,
2484
- AGENT_AVATAR_MESSAGES: { label: "Avatar dell’agente" },
2493
+ AGENT_AVATAR_MESSAGES: { label: "Avatar dell’agente", unavailable: "Avatar non disponibile", },
2485
2494
  COMMON_MESSAGES,
2486
2495
  SURFACES_MESSAGES,
2487
2496
  CONTACT_CARD_MESSAGES,
@@ -16,6 +16,15 @@ import { has as vendorCard_has, counted as vendorCard_counted } from '../../vend
16
16
  const CALL_UI_MESSAGES__CORNERS = { 'top-left': '左上', 'top-right': '右上', 'bottom-left': '左下', 'bottom-right': '右下' };
17
17
 
18
18
  const AGENT_CREATOR_MESSAGES: Translations['AGENT_CREATOR_MESSAGES'] = {
19
+ reaction: "リアクション",
20
+ working: "作業する",
21
+ avatarStyle: "アバターのスタイル",
22
+ proceduralAvatar: "現在のアバター",
23
+ betaPreset: "キャラクタープリセット(ベータ)",
24
+ betaEyes: "目のスタイル",
25
+ eyewear: "眼鏡",
26
+ accessory: "アクセサリー",
27
+ characterOption: (_category, _id, title) => String(title),
19
28
  editor: "エージェント編集",
20
29
  newBot: "新しいボット",
21
30
  closeEditor: "エージェント編集を閉じる",
@@ -2472,7 +2481,7 @@ const translations: Translations = {
2472
2481
  },
2473
2482
 
2474
2483
  AGENT_CREATOR_MESSAGES,
2475
- AGENT_AVATAR_MESSAGES: { label: "エージェントのアバター" },
2484
+ AGENT_AVATAR_MESSAGES: { label: "エージェントのアバター", unavailable: "アバターを表示できません", },
2476
2485
  COMMON_MESSAGES,
2477
2486
  SURFACES_MESSAGES,
2478
2487
  CONTACT_CARD_MESSAGES,
@@ -23,6 +23,15 @@ const CALL_UI_MESSAGES__CORNERS = {
23
23
  const MESSAGE_MEDIA_MESSAGES__items = (n: number) => plural('pt', n, { one: '{n} item', other: '{n} itens' });
24
24
 
25
25
  const AGENT_CREATOR_MESSAGES: Translations['AGENT_CREATOR_MESSAGES'] = {
26
+ reaction: "Reagir",
27
+ working: "Trabalhar",
28
+ avatarStyle: "Estilo do avatar",
29
+ proceduralAvatar: "Avatar atual",
30
+ betaPreset: "Personagem predefinido (beta)",
31
+ betaEyes: "Estilo dos olhos",
32
+ eyewear: "Óculos",
33
+ accessory: "Acessório",
34
+ characterOption: (_category, _id, title) => String(title),
26
35
  editor: "Editor do agente",
27
36
  newBot: "Novo bot",
28
37
  closeEditor: "Fechar editor do agente",
@@ -2484,7 +2493,7 @@ const translations: Translations = {
2484
2493
  },
2485
2494
 
2486
2495
  AGENT_CREATOR_MESSAGES,
2487
- AGENT_AVATAR_MESSAGES: { label: "Avatar do agente" },
2496
+ AGENT_AVATAR_MESSAGES: { label: "Avatar do agente", unavailable: "Avatar indisponível", },
2488
2497
  COMMON_MESSAGES,
2489
2498
  SURFACES_MESSAGES,
2490
2499
  CONTACT_CARD_MESSAGES,
@@ -19,6 +19,15 @@ const MESSAGE_MEDIA_MESSAGES__items = (n: number) =>
19
19
  plural('ru', n, { one: '{n} элемент', few: '{n} элемента', many: '{n} элементов', other: '{n} элемента' });
20
20
 
21
21
  const AGENT_CREATOR_MESSAGES: Translations['AGENT_CREATOR_MESSAGES'] = {
22
+ reaction: "Реакция",
23
+ working: "Работать",
24
+ avatarStyle: "Стиль аватара",
25
+ proceduralAvatar: "Текущий аватар",
26
+ betaPreset: "Готовый персонаж (бета)",
27
+ betaEyes: "Стиль глаз",
28
+ eyewear: "Очки",
29
+ accessory: "Аксессуар",
30
+ characterOption: (_category, _id, title) => String(title),
22
31
  editor: "Редактор агента",
23
32
  newBot: "Новый бот",
24
33
  closeEditor: "Закрыть редактор агента",
@@ -2567,7 +2576,7 @@ const translations: Translations = {
2567
2576
  },
2568
2577
 
2569
2578
  AGENT_CREATOR_MESSAGES,
2570
- AGENT_AVATAR_MESSAGES: { label: "Аватар агента" },
2579
+ AGENT_AVATAR_MESSAGES: { label: "Аватар агента", unavailable: "Аватар недоступен", },
2571
2580
  COMMON_MESSAGES,
2572
2581
  SURFACES_MESSAGES,
2573
2582
  CONTACT_CARD_MESSAGES,
@@ -16,6 +16,15 @@ import { has as vendorCard_has, counted as vendorCard_counted } from '../../vend
16
16
  const CALL_UI_MESSAGES__CORNERS = { 'top-left': 'sol üst', 'top-right': 'sağ üst', 'bottom-left': 'sol alt', 'bottom-right': 'sağ alt' };
17
17
 
18
18
  const AGENT_CREATOR_MESSAGES: Translations['AGENT_CREATOR_MESSAGES'] = {
19
+ reaction: "Tepki ver",
20
+ working: "Çalış",
21
+ avatarStyle: "Avatar stili",
22
+ proceduralAvatar: "Mevcut avatar",
23
+ betaPreset: "Hazır karakter (beta)",
24
+ betaEyes: "Göz stili",
25
+ eyewear: "Gözlük",
26
+ accessory: "Aksesuar",
27
+ characterOption: (_category, _id, title) => String(title),
19
28
  editor: "Ajan düzenleyici",
20
29
  newBot: "Yeni bot",
21
30
  closeEditor: "Ajan düzenleyiciyi kapat",
@@ -2472,7 +2481,7 @@ const translations: Translations = {
2472
2481
  },
2473
2482
 
2474
2483
  AGENT_CREATOR_MESSAGES,
2475
- AGENT_AVATAR_MESSAGES: { label: "Ajan avatarı" },
2484
+ AGENT_AVATAR_MESSAGES: { label: "Ajan avatarı", unavailable: "Avatar kullanılamıyor", },
2476
2485
  COMMON_MESSAGES,
2477
2486
  SURFACES_MESSAGES,
2478
2487
  CONTACT_CARD_MESSAGES,
@@ -16,6 +16,15 @@ import { has as vendorCard_has, counted as vendorCard_counted } from '../../vend
16
16
  const CALL_UI_MESSAGES__CORNERS = { 'top-left': '左上角', 'top-right': '右上角', 'bottom-left': '左下角', 'bottom-right': '右下角' };
17
17
 
18
18
  const AGENT_CREATOR_MESSAGES: Translations['AGENT_CREATOR_MESSAGES'] = {
19
+ reaction: "做出反应",
20
+ working: "工作",
21
+ avatarStyle: "头像风格",
22
+ proceduralAvatar: "当前头像",
23
+ betaPreset: "预设角色(测试版)",
24
+ betaEyes: "眼睛风格",
25
+ eyewear: "眼镜",
26
+ accessory: "配饰",
27
+ characterOption: (_category, _id, title) => String(title),
19
28
  editor: "智能体编辑器",
20
29
  newBot: "新机器人",
21
30
  closeEditor: "关闭智能体编辑器",
@@ -2456,7 +2465,7 @@ const translations: Translations = {
2456
2465
  },
2457
2466
 
2458
2467
  AGENT_CREATOR_MESSAGES,
2459
- AGENT_AVATAR_MESSAGES: { label: "智能体头像" },
2468
+ AGENT_AVATAR_MESSAGES: { label: "智能体头像", unavailable: "头像不可用", },
2460
2469
  COMMON_MESSAGES,
2461
2470
  SURFACES_MESSAGES,
2462
2471
  CONTACT_CARD_MESSAGES,
@@ -12,13 +12,12 @@ import Animated, {
12
12
  } from 'react-native-reanimated';
13
13
  import { AgentAvatar } from '../agent-avatar';
14
14
  import { Drawing } from '../agent-avatar/SvgDrawing';
15
- import { useIsRtl } from '../hooks/use-is-rtl';
16
15
  import { OverlayRoot } from '../overlay';
17
16
  import { StyledView } from '../styles/styled-primitives';
18
17
  import { useChatComponents } from './context';
19
18
  import {
20
19
  avatarFlightPoint,
21
- badgeFlightTarget,
20
+ profileFlightTarget,
22
21
  measureAvatar,
23
22
  type AvatarHandoffState,
24
23
  type AvatarRect,
@@ -133,7 +132,6 @@ export function AvatarHandoff({
133
132
  onFinish: () => void;
134
133
  }) {
135
134
  const { FlightHost } = useChatComponents();
136
- const rtl = useIsRtl();
137
135
  const [destinations, setDestinations] = useState<Record<string, AvatarRect>>(
138
136
  {},
139
137
  );
@@ -151,7 +149,7 @@ export function AvatarHandoff({
151
149
  rect &&
152
150
  handoff.kind === 'first' &&
153
151
  avatar.agent.id !== handoff.responderId
154
- ? badgeFlightTarget(rect, rtl)
152
+ ? profileFlightTarget(rect)
155
153
  : rect,
156
154
  ] as const;
157
155
  }),
@@ -187,7 +185,6 @@ export function AvatarHandoff({
187
185
  onFinish,
188
186
  width,
189
187
  height,
190
- rtl,
191
188
  ]);
192
189
  const relative = (rect: AvatarRect): AvatarRect =>
193
190
  Platform.OS === 'web' || !origin