@oxy.so/bloom 6.1.0 → 6.3.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 (230) hide show
  1. package/README.md +1 -1
  2. package/docs/adoption-matrix.mdx +4 -3
  3. package/docs/chat-composer.mdx +5 -1
  4. package/docs/cover-header.mdx +56 -0
  5. package/docs/message-media.mdx +1 -1
  6. package/lib/commonjs/ai-profile-card/AiProfileCard.js +186 -263
  7. package/lib/commonjs/ai-profile-card/AiProfileCard.js.map +1 -1
  8. package/lib/commonjs/chat-composer/SuggestionList.js +3 -1
  9. package/lib/commonjs/chat-composer/SuggestionList.js.map +1 -1
  10. package/lib/commonjs/chat-composer/SuggestionList.web.js +3 -1
  11. package/lib/commonjs/chat-composer/SuggestionList.web.js.map +1 -1
  12. package/lib/commonjs/chat-composer/create-suggestion-list.js +64 -10
  13. package/lib/commonjs/chat-composer/create-suggestion-list.js.map +1 -1
  14. package/lib/commonjs/chat-composer/messages.js +7 -0
  15. package/lib/commonjs/chat-composer/messages.js.map +1 -1
  16. package/lib/commonjs/cover-header/CoverHeader.js +83 -0
  17. package/lib/commonjs/cover-header/CoverHeader.js.map +1 -0
  18. package/lib/commonjs/cover-header/CoverImage.js +72 -0
  19. package/lib/commonjs/cover-header/CoverImage.js.map +1 -0
  20. package/lib/commonjs/cover-header/index.js +13 -0
  21. package/lib/commonjs/cover-header/index.js.map +1 -0
  22. package/lib/commonjs/cover-header/types.js +6 -0
  23. package/lib/commonjs/cover-header/types.js.map +1 -0
  24. package/lib/commonjs/index.js +951 -939
  25. package/lib/commonjs/index.js.map +1 -1
  26. package/lib/commonjs/index.web.js +951 -939
  27. package/lib/commonjs/index.web.js.map +1 -1
  28. package/lib/commonjs/locale/translations/ar.js +7 -0
  29. package/lib/commonjs/locale/translations/ar.js.map +1 -1
  30. package/lib/commonjs/locale/translations/bn.js +7 -0
  31. package/lib/commonjs/locale/translations/bn.js.map +1 -1
  32. package/lib/commonjs/locale/translations/ca.js +7 -0
  33. package/lib/commonjs/locale/translations/ca.js.map +1 -1
  34. package/lib/commonjs/locale/translations/de.js +7 -0
  35. package/lib/commonjs/locale/translations/de.js.map +1 -1
  36. package/lib/commonjs/locale/translations/es.js +7 -0
  37. package/lib/commonjs/locale/translations/es.js.map +1 -1
  38. package/lib/commonjs/locale/translations/fr.js +7 -0
  39. package/lib/commonjs/locale/translations/fr.js.map +1 -1
  40. package/lib/commonjs/locale/translations/hi.js +7 -0
  41. package/lib/commonjs/locale/translations/hi.js.map +1 -1
  42. package/lib/commonjs/locale/translations/id.js +7 -0
  43. package/lib/commonjs/locale/translations/id.js.map +1 -1
  44. package/lib/commonjs/locale/translations/it.js +7 -0
  45. package/lib/commonjs/locale/translations/it.js.map +1 -1
  46. package/lib/commonjs/locale/translations/ja.js +7 -0
  47. package/lib/commonjs/locale/translations/ja.js.map +1 -1
  48. package/lib/commonjs/locale/translations/pt.js +7 -0
  49. package/lib/commonjs/locale/translations/pt.js.map +1 -1
  50. package/lib/commonjs/locale/translations/ru.js +7 -0
  51. package/lib/commonjs/locale/translations/ru.js.map +1 -1
  52. package/lib/commonjs/locale/translations/tr.js +7 -0
  53. package/lib/commonjs/locale/translations/tr.js.map +1 -1
  54. package/lib/commonjs/locale/translations/zh.js +7 -0
  55. package/lib/commonjs/locale/translations/zh.js.map +1 -1
  56. package/lib/commonjs/message-bubble/MessageBubble.js +17 -11
  57. package/lib/commonjs/message-bubble/MessageBubble.js.map +1 -1
  58. package/lib/commonjs/message-media/StickerMessage.js +1 -1
  59. package/lib/commonjs/settings-modal/SettingsModal.js +19 -9
  60. package/lib/commonjs/settings-modal/SettingsModal.js.map +1 -1
  61. package/lib/module/ai-profile-card/AiProfileCard.js +185 -262
  62. package/lib/module/ai-profile-card/AiProfileCard.js.map +1 -1
  63. package/lib/module/chat-composer/SuggestionList.js +3 -1
  64. package/lib/module/chat-composer/SuggestionList.js.map +1 -1
  65. package/lib/module/chat-composer/SuggestionList.web.js +3 -1
  66. package/lib/module/chat-composer/SuggestionList.web.js.map +1 -1
  67. package/lib/module/chat-composer/create-suggestion-list.js +64 -10
  68. package/lib/module/chat-composer/create-suggestion-list.js.map +1 -1
  69. package/lib/module/chat-composer/messages.js +7 -0
  70. package/lib/module/chat-composer/messages.js.map +1 -1
  71. package/lib/module/cover-header/CoverHeader.js +78 -0
  72. package/lib/module/cover-header/CoverHeader.js.map +1 -0
  73. package/lib/module/cover-header/CoverImage.js +68 -0
  74. package/lib/module/cover-header/CoverImage.js.map +1 -0
  75. package/lib/module/cover-header/index.js +4 -0
  76. package/lib/module/cover-header/index.js.map +1 -0
  77. package/lib/module/cover-header/types.js +4 -0
  78. package/lib/module/cover-header/types.js.map +1 -0
  79. package/lib/module/index.js +1 -0
  80. package/lib/module/index.js.map +1 -1
  81. package/lib/module/index.web.js +1 -0
  82. package/lib/module/index.web.js.map +1 -1
  83. package/lib/module/locale/translations/ar.js +7 -0
  84. package/lib/module/locale/translations/ar.js.map +1 -1
  85. package/lib/module/locale/translations/bn.js +7 -0
  86. package/lib/module/locale/translations/bn.js.map +1 -1
  87. package/lib/module/locale/translations/ca.js +7 -0
  88. package/lib/module/locale/translations/ca.js.map +1 -1
  89. package/lib/module/locale/translations/de.js +7 -0
  90. package/lib/module/locale/translations/de.js.map +1 -1
  91. package/lib/module/locale/translations/es.js +7 -0
  92. package/lib/module/locale/translations/es.js.map +1 -1
  93. package/lib/module/locale/translations/fr.js +7 -0
  94. package/lib/module/locale/translations/fr.js.map +1 -1
  95. package/lib/module/locale/translations/hi.js +7 -0
  96. package/lib/module/locale/translations/hi.js.map +1 -1
  97. package/lib/module/locale/translations/id.js +7 -0
  98. package/lib/module/locale/translations/id.js.map +1 -1
  99. package/lib/module/locale/translations/it.js +7 -0
  100. package/lib/module/locale/translations/it.js.map +1 -1
  101. package/lib/module/locale/translations/ja.js +7 -0
  102. package/lib/module/locale/translations/ja.js.map +1 -1
  103. package/lib/module/locale/translations/pt.js +7 -0
  104. package/lib/module/locale/translations/pt.js.map +1 -1
  105. package/lib/module/locale/translations/ru.js +7 -0
  106. package/lib/module/locale/translations/ru.js.map +1 -1
  107. package/lib/module/locale/translations/tr.js +7 -0
  108. package/lib/module/locale/translations/tr.js.map +1 -1
  109. package/lib/module/locale/translations/zh.js +7 -0
  110. package/lib/module/locale/translations/zh.js.map +1 -1
  111. package/lib/module/message-bubble/MessageBubble.js +17 -11
  112. package/lib/module/message-bubble/MessageBubble.js.map +1 -1
  113. package/lib/module/message-media/StickerMessage.js +1 -1
  114. package/lib/module/settings-modal/SettingsModal.js +19 -9
  115. package/lib/module/settings-modal/SettingsModal.js.map +1 -1
  116. package/lib/typescript/commonjs/ai-profile-card/AiProfileCard.d.ts.map +1 -1
  117. package/lib/typescript/commonjs/chat-composer/SuggestionList.d.ts +1 -1
  118. package/lib/typescript/commonjs/chat-composer/SuggestionList.d.ts.map +1 -1
  119. package/lib/typescript/commonjs/chat-composer/SuggestionList.web.d.ts +1 -1
  120. package/lib/typescript/commonjs/chat-composer/SuggestionList.web.d.ts.map +1 -1
  121. package/lib/typescript/commonjs/chat-composer/create-suggestion-list.d.ts +4 -2
  122. package/lib/typescript/commonjs/chat-composer/create-suggestion-list.d.ts.map +1 -1
  123. package/lib/typescript/commonjs/chat-composer/messages.d.ts +6 -0
  124. package/lib/typescript/commonjs/chat-composer/messages.d.ts.map +1 -1
  125. package/lib/typescript/commonjs/chat-composer/types.d.ts +17 -0
  126. package/lib/typescript/commonjs/chat-composer/types.d.ts.map +1 -1
  127. package/lib/typescript/commonjs/cover-header/CoverHeader.d.ts +21 -0
  128. package/lib/typescript/commonjs/cover-header/CoverHeader.d.ts.map +1 -0
  129. package/lib/typescript/commonjs/cover-header/CoverImage.d.ts +11 -0
  130. package/lib/typescript/commonjs/cover-header/CoverImage.d.ts.map +1 -0
  131. package/lib/typescript/commonjs/cover-header/index.d.ts +3 -0
  132. package/lib/typescript/commonjs/cover-header/index.d.ts.map +1 -0
  133. package/lib/typescript/commonjs/cover-header/types.d.ts +33 -0
  134. package/lib/typescript/commonjs/cover-header/types.d.ts.map +1 -0
  135. package/lib/typescript/commonjs/index.d.ts +1 -0
  136. package/lib/typescript/commonjs/index.d.ts.map +1 -1
  137. package/lib/typescript/commonjs/index.web.d.ts +1 -0
  138. package/lib/typescript/commonjs/index.web.d.ts.map +1 -1
  139. package/lib/typescript/commonjs/locale/translations/ar.d.ts.map +1 -1
  140. package/lib/typescript/commonjs/locale/translations/bn.d.ts.map +1 -1
  141. package/lib/typescript/commonjs/locale/translations/ca.d.ts.map +1 -1
  142. package/lib/typescript/commonjs/locale/translations/de.d.ts.map +1 -1
  143. package/lib/typescript/commonjs/locale/translations/es.d.ts.map +1 -1
  144. package/lib/typescript/commonjs/locale/translations/fr.d.ts.map +1 -1
  145. package/lib/typescript/commonjs/locale/translations/hi.d.ts.map +1 -1
  146. package/lib/typescript/commonjs/locale/translations/id.d.ts.map +1 -1
  147. package/lib/typescript/commonjs/locale/translations/it.d.ts.map +1 -1
  148. package/lib/typescript/commonjs/locale/translations/ja.d.ts.map +1 -1
  149. package/lib/typescript/commonjs/locale/translations/pt.d.ts.map +1 -1
  150. package/lib/typescript/commonjs/locale/translations/ru.d.ts.map +1 -1
  151. package/lib/typescript/commonjs/locale/translations/tr.d.ts.map +1 -1
  152. package/lib/typescript/commonjs/locale/translations/zh.d.ts.map +1 -1
  153. package/lib/typescript/commonjs/message-bubble/MessageBubble.d.ts.map +1 -1
  154. package/lib/typescript/commonjs/message-bubble/types.d.ts +13 -6
  155. package/lib/typescript/commonjs/message-bubble/types.d.ts.map +1 -1
  156. package/lib/typescript/commonjs/message-media/StickerMessage.d.ts +1 -1
  157. package/lib/typescript/commonjs/settings-modal/SettingsModal.d.ts.map +1 -1
  158. package/lib/typescript/module/ai-profile-card/AiProfileCard.d.ts.map +1 -1
  159. package/lib/typescript/module/chat-composer/SuggestionList.d.ts +1 -1
  160. package/lib/typescript/module/chat-composer/SuggestionList.d.ts.map +1 -1
  161. package/lib/typescript/module/chat-composer/SuggestionList.web.d.ts +1 -1
  162. package/lib/typescript/module/chat-composer/SuggestionList.web.d.ts.map +1 -1
  163. package/lib/typescript/module/chat-composer/create-suggestion-list.d.ts +4 -2
  164. package/lib/typescript/module/chat-composer/create-suggestion-list.d.ts.map +1 -1
  165. package/lib/typescript/module/chat-composer/messages.d.ts +6 -0
  166. package/lib/typescript/module/chat-composer/messages.d.ts.map +1 -1
  167. package/lib/typescript/module/chat-composer/types.d.ts +17 -0
  168. package/lib/typescript/module/chat-composer/types.d.ts.map +1 -1
  169. package/lib/typescript/module/cover-header/CoverHeader.d.ts +21 -0
  170. package/lib/typescript/module/cover-header/CoverHeader.d.ts.map +1 -0
  171. package/lib/typescript/module/cover-header/CoverImage.d.ts +11 -0
  172. package/lib/typescript/module/cover-header/CoverImage.d.ts.map +1 -0
  173. package/lib/typescript/module/cover-header/index.d.ts +3 -0
  174. package/lib/typescript/module/cover-header/index.d.ts.map +1 -0
  175. package/lib/typescript/module/cover-header/types.d.ts +33 -0
  176. package/lib/typescript/module/cover-header/types.d.ts.map +1 -0
  177. package/lib/typescript/module/index.d.ts +1 -0
  178. package/lib/typescript/module/index.d.ts.map +1 -1
  179. package/lib/typescript/module/index.web.d.ts +1 -0
  180. package/lib/typescript/module/index.web.d.ts.map +1 -1
  181. package/lib/typescript/module/locale/translations/ar.d.ts.map +1 -1
  182. package/lib/typescript/module/locale/translations/bn.d.ts.map +1 -1
  183. package/lib/typescript/module/locale/translations/ca.d.ts.map +1 -1
  184. package/lib/typescript/module/locale/translations/de.d.ts.map +1 -1
  185. package/lib/typescript/module/locale/translations/es.d.ts.map +1 -1
  186. package/lib/typescript/module/locale/translations/fr.d.ts.map +1 -1
  187. package/lib/typescript/module/locale/translations/hi.d.ts.map +1 -1
  188. package/lib/typescript/module/locale/translations/id.d.ts.map +1 -1
  189. package/lib/typescript/module/locale/translations/it.d.ts.map +1 -1
  190. package/lib/typescript/module/locale/translations/ja.d.ts.map +1 -1
  191. package/lib/typescript/module/locale/translations/pt.d.ts.map +1 -1
  192. package/lib/typescript/module/locale/translations/ru.d.ts.map +1 -1
  193. package/lib/typescript/module/locale/translations/tr.d.ts.map +1 -1
  194. package/lib/typescript/module/locale/translations/zh.d.ts.map +1 -1
  195. package/lib/typescript/module/message-bubble/MessageBubble.d.ts.map +1 -1
  196. package/lib/typescript/module/message-bubble/types.d.ts +13 -6
  197. package/lib/typescript/module/message-bubble/types.d.ts.map +1 -1
  198. package/lib/typescript/module/message-media/StickerMessage.d.ts +1 -1
  199. package/lib/typescript/module/settings-modal/SettingsModal.d.ts.map +1 -1
  200. package/package.json +18 -1
  201. package/src/ai-profile-card/AiProfileCard.tsx +159 -241
  202. package/src/chat-composer/SuggestionList.tsx +2 -1
  203. package/src/chat-composer/SuggestionList.web.tsx +2 -1
  204. package/src/chat-composer/create-suggestion-list.tsx +54 -8
  205. package/src/chat-composer/messages.ts +9 -0
  206. package/src/chat-composer/types.ts +17 -0
  207. package/src/cover-header/CoverHeader.tsx +75 -0
  208. package/src/cover-header/CoverImage.tsx +60 -0
  209. package/src/cover-header/index.ts +3 -0
  210. package/src/cover-header/types.ts +30 -0
  211. package/src/index.ts +1 -0
  212. package/src/index.web.ts +1 -0
  213. package/src/locale/translations/ar.ts +3 -0
  214. package/src/locale/translations/bn.ts +3 -0
  215. package/src/locale/translations/ca.ts +3 -0
  216. package/src/locale/translations/de.ts +3 -0
  217. package/src/locale/translations/es.ts +3 -0
  218. package/src/locale/translations/fr.ts +3 -0
  219. package/src/locale/translations/hi.ts +3 -0
  220. package/src/locale/translations/id.ts +3 -0
  221. package/src/locale/translations/it.ts +3 -0
  222. package/src/locale/translations/ja.ts +3 -0
  223. package/src/locale/translations/pt.ts +3 -0
  224. package/src/locale/translations/ru.ts +3 -0
  225. package/src/locale/translations/tr.ts +3 -0
  226. package/src/locale/translations/zh.ts +3 -0
  227. package/src/message-bubble/MessageBubble.tsx +17 -11
  228. package/src/message-bubble/types.ts +13 -6
  229. package/src/message-media/StickerMessage.tsx +1 -1
  230. package/src/settings-modal/SettingsModal.tsx +19 -9
@@ -152,6 +152,11 @@ export function SettingsModal({
152
152
  const isControlled = controlledOpen !== undefined;
153
153
 
154
154
  const [mounted, setMounted] = useState(controlledOpen === true);
155
+ // Whether the modal is WANTED open. It leads `visible`, which only turns true
156
+ // a painted frame after mount: a close requested inside that window (Escape
157
+ // pressed the moment the panel appears) must cancel the pending enter, not be
158
+ // overwritten by it.
159
+ const [wanted, setWanted] = useState(controlledOpen === true);
155
160
  const [visible, setVisible] = useState(false);
156
161
  // Bumped by every open, so reopening during an exit replays the enter.
157
162
  const [openCount, setOpenCount] = useState(0);
@@ -186,38 +191,43 @@ export function SettingsModal({
186
191
  setInternalPage(defaultPageRef.current);
187
192
  setCompactPageOpen(initialViewRef.current === 'page');
188
193
  setMounted(true);
194
+ setWanted(true);
189
195
  setOpenCount((count) => count + 1);
190
196
  }, []);
191
197
 
192
198
  const hide = useCallback(() => {
199
+ setWanted(false);
193
200
  setVisible(false);
194
201
  }, []);
195
202
 
196
- // Enter: once mounted, the hidden frame commits, then the transition runs.
203
+ // Enter: once mounted, the hidden frame commits, then the transition runs —
204
+ // unless a close arrived first, which cancels the pending frame.
197
205
  useEffect(() => {
198
- if (!mounted) return;
206
+ if (!mounted || !wanted) return;
199
207
  return afterPaint(() => setVisible(true));
200
- }, [mounted, openCount]);
208
+ }, [mounted, wanted, openCount]);
201
209
 
202
- // Exit: unmount only after the reverse transition. `visible` goes false
203
- // before `mounted` does, so this runs for every close.
210
+ // Exit: `wanted` and `visible` go false before `mounted` does, so this runs
211
+ // for every close. A modal that was shown unmounts after the reverse
212
+ // transition; one closed before it ever became visible has nothing to
213
+ // animate and unmounts at once.
204
214
  const wasVisible = useRef(false);
205
215
  useEffect(() => {
206
216
  if (visible) {
207
217
  wasVisible.current = true;
208
218
  return;
209
219
  }
210
- if (!mounted || !wasVisible.current) return;
220
+ if (!mounted || wanted) return;
211
221
  const timer = setTimeout(
212
222
  () => {
213
223
  wasVisible.current = false;
214
224
  setMounted(false);
215
225
  if (!isControlledRef.current) onCloseRef.current?.();
216
226
  },
217
- reducedMotion ? 0 : UNMOUNT_MS,
227
+ reducedMotion || !wasVisible.current ? 0 : UNMOUNT_MS,
218
228
  );
219
229
  return () => clearTimeout(timer);
220
- }, [visible, mounted, reducedMotion]);
230
+ }, [visible, mounted, wanted, reducedMotion]);
221
231
 
222
232
  // Controlled mode mirrors `open` into the same two-phase lifecycle.
223
233
  useEffect(() => {
@@ -348,7 +358,7 @@ export function SettingsModal({
348
358
  {IS_WEB ? (
349
359
  <ModalKeyboard
350
360
  panelRef={panelRef}
351
- closing={!visible && wasVisible.current}
361
+ closing={!wanted}
352
362
  dismissible
353
363
  dismiss={requestClose}
354
364
  />