@oxy.so/bloom 5.1.0 → 5.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 (430) hide show
  1. package/docs/adoption-matrix.mdx +9 -9
  2. package/docs/button.mdx +2 -0
  3. package/docs/card-form.mdx +2 -0
  4. package/docs/chat-composer.mdx +1 -1
  5. package/docs/earnings.mdx +2 -0
  6. package/docs/field.mdx +2 -0
  7. package/docs/label.mdx +2 -0
  8. package/docs/payment-method.mdx +2 -0
  9. package/docs/place-details.mdx +2 -2
  10. package/docs/proof-of-delivery.mdx +4 -0
  11. package/docs/select.mdx +2 -0
  12. package/lib/commonjs/button/Button.js +36 -3
  13. package/lib/commonjs/button/Button.js.map +1 -1
  14. package/lib/commonjs/button/GlyphButton.js +7 -3
  15. package/lib/commonjs/button/GlyphButton.js.map +1 -1
  16. package/lib/commonjs/card-form/shared.js +3 -2
  17. package/lib/commonjs/card-form/shared.js.map +1 -1
  18. package/lib/commonjs/chat-composer/AttachmentMenu.js +8 -227
  19. package/lib/commonjs/chat-composer/AttachmentMenu.js.map +1 -1
  20. package/lib/commonjs/chat-composer/AttachmentMenu.web.js +16 -0
  21. package/lib/commonjs/chat-composer/AttachmentMenu.web.js.map +1 -0
  22. package/lib/commonjs/chat-composer/ChatComposer.js +9 -388
  23. package/lib/commonjs/chat-composer/ChatComposer.js.map +1 -1
  24. package/lib/commonjs/chat-composer/ChatComposer.web.js +16 -0
  25. package/lib/commonjs/chat-composer/ChatComposer.web.js.map +1 -0
  26. package/lib/commonjs/chat-composer/ComposerAttachmentStrip.js +5 -200
  27. package/lib/commonjs/chat-composer/ComposerAttachmentStrip.js.map +1 -1
  28. package/lib/commonjs/chat-composer/ComposerAttachmentStrip.web.js +12 -0
  29. package/lib/commonjs/chat-composer/ComposerAttachmentStrip.web.js.map +1 -0
  30. package/lib/commonjs/chat-composer/ComposerBanner.js +5 -163
  31. package/lib/commonjs/chat-composer/ComposerBanner.js.map +1 -1
  32. package/lib/commonjs/chat-composer/ComposerBanner.web.js +12 -0
  33. package/lib/commonjs/chat-composer/ComposerBanner.web.js.map +1 -0
  34. package/lib/commonjs/chat-composer/EmojiPicker.js +6 -443
  35. package/lib/commonjs/chat-composer/EmojiPicker.js.map +1 -1
  36. package/lib/commonjs/chat-composer/EmojiPicker.web.js +14 -0
  37. package/lib/commonjs/chat-composer/EmojiPicker.web.js.map +1 -0
  38. package/lib/commonjs/chat-composer/MessageContextMenu.js +12 -102
  39. package/lib/commonjs/chat-composer/MessageContextMenu.js.map +1 -1
  40. package/lib/commonjs/chat-composer/MessageContextMenu.web.js +19 -0
  41. package/lib/commonjs/chat-composer/MessageContextMenu.web.js.map +1 -0
  42. package/lib/commonjs/chat-composer/ReactionPicker.js +6 -107
  43. package/lib/commonjs/chat-composer/ReactionPicker.js.map +1 -1
  44. package/lib/commonjs/chat-composer/ReactionPicker.web.js +14 -0
  45. package/lib/commonjs/chat-composer/ReactionPicker.web.js.map +1 -0
  46. package/lib/commonjs/chat-composer/SuggestionList.js +5 -222
  47. package/lib/commonjs/chat-composer/SuggestionList.js.map +1 -1
  48. package/lib/commonjs/chat-composer/SuggestionList.web.js +12 -0
  49. package/lib/commonjs/chat-composer/SuggestionList.web.js.map +1 -0
  50. package/lib/commonjs/chat-composer/VoiceRecorder.js +7 -263
  51. package/lib/commonjs/chat-composer/VoiceRecorder.js.map +1 -1
  52. package/lib/commonjs/chat-composer/VoiceRecorder.web.js +16 -0
  53. package/lib/commonjs/chat-composer/VoiceRecorder.web.js.map +1 -0
  54. package/lib/commonjs/chat-composer/create-attachment-menu.js +243 -0
  55. package/lib/commonjs/chat-composer/create-attachment-menu.js.map +1 -0
  56. package/lib/commonjs/chat-composer/create-chat-composer.js +400 -0
  57. package/lib/commonjs/chat-composer/create-chat-composer.js.map +1 -0
  58. package/lib/commonjs/chat-composer/create-composer-attachment-strip.js +212 -0
  59. package/lib/commonjs/chat-composer/create-composer-attachment-strip.js.map +1 -0
  60. package/lib/commonjs/chat-composer/create-composer-banner.js +176 -0
  61. package/lib/commonjs/chat-composer/create-composer-banner.js.map +1 -0
  62. package/lib/commonjs/chat-composer/create-emoji-picker.js +456 -0
  63. package/lib/commonjs/chat-composer/create-emoji-picker.js.map +1 -0
  64. package/lib/commonjs/chat-composer/create-message-context-menu.js +119 -0
  65. package/lib/commonjs/chat-composer/create-message-context-menu.js.map +1 -0
  66. package/lib/commonjs/chat-composer/create-reaction-picker.js +120 -0
  67. package/lib/commonjs/chat-composer/create-reaction-picker.js.map +1 -0
  68. package/lib/commonjs/chat-composer/create-suggestion-list.js +234 -0
  69. package/lib/commonjs/chat-composer/create-suggestion-list.js.map +1 -0
  70. package/lib/commonjs/chat-composer/create-voice-recorder.js +277 -0
  71. package/lib/commonjs/chat-composer/create-voice-recorder.js.map +1 -0
  72. package/lib/commonjs/chat-composer/index.js +9 -9
  73. package/lib/commonjs/chat-composer/index.web.js +18 -18
  74. package/lib/commonjs/chat-composer/index.web.js.map +1 -1
  75. package/lib/commonjs/earnings/EarningsSummary.js +12 -2
  76. package/lib/commonjs/earnings/EarningsSummary.js.map +1 -1
  77. package/lib/commonjs/field/Field.js +2 -0
  78. package/lib/commonjs/field/Field.js.map +1 -1
  79. package/lib/commonjs/item/Item.js +16 -8
  80. package/lib/commonjs/item/Item.js.map +1 -1
  81. package/lib/commonjs/job-board/JobCard.js +6 -2
  82. package/lib/commonjs/job-board/JobCard.js.map +1 -1
  83. package/lib/commonjs/label/Label.js +2 -1
  84. package/lib/commonjs/label/Label.js.map +1 -1
  85. package/lib/commonjs/listing-details/AmenityList.js +4 -3
  86. package/lib/commonjs/listing-details/AmenityList.js.map +1 -1
  87. package/lib/commonjs/mail-compose/MailComposeSurface.js +1 -1
  88. package/lib/commonjs/overlay/InteractionBoundary.js +28 -0
  89. package/lib/commonjs/overlay/InteractionBoundary.js.map +1 -0
  90. package/lib/commonjs/payment-method/PaymentMethodList.js +3 -2
  91. package/lib/commonjs/payment-method/PaymentMethodList.js.map +1 -1
  92. package/lib/commonjs/place-details/PlaceAmenities.js +17 -6
  93. package/lib/commonjs/place-details/PlaceAmenities.js.map +1 -1
  94. package/lib/commonjs/place-details/PlacePopularTimes.js +7 -1
  95. package/lib/commonjs/place-details/PlacePopularTimes.js.map +1 -1
  96. package/lib/commonjs/proof-of-delivery/ProofOfDelivery.js +10 -1
  97. package/lib/commonjs/proof-of-delivery/ProofOfDelivery.js.map +1 -1
  98. package/lib/commonjs/proof-of-delivery/shared.js +1 -1
  99. package/lib/commonjs/proof-of-delivery/shared.js.map +1 -1
  100. package/lib/commonjs/select/Select.js +7 -4
  101. package/lib/commonjs/select/Select.js.map +1 -1
  102. package/lib/commonjs/select/Select.web.js +7 -4
  103. package/lib/commonjs/select/Select.web.js.map +1 -1
  104. package/lib/commonjs/select/use-required-description.js +37 -0
  105. package/lib/commonjs/select/use-required-description.js.map +1 -0
  106. package/lib/module/button/Button.js +36 -3
  107. package/lib/module/button/Button.js.map +1 -1
  108. package/lib/module/button/GlyphButton.js +7 -3
  109. package/lib/module/button/GlyphButton.js.map +1 -1
  110. package/lib/module/card-form/shared.js +3 -2
  111. package/lib/module/card-form/shared.js.map +1 -1
  112. package/lib/module/chat-composer/AttachmentMenu.js +7 -226
  113. package/lib/module/chat-composer/AttachmentMenu.js.map +1 -1
  114. package/lib/module/chat-composer/AttachmentMenu.web.js +12 -0
  115. package/lib/module/chat-composer/AttachmentMenu.web.js.map +1 -0
  116. package/lib/module/chat-composer/ChatComposer.js +8 -385
  117. package/lib/module/chat-composer/ChatComposer.js.map +1 -1
  118. package/lib/module/chat-composer/ChatComposer.web.js +12 -0
  119. package/lib/module/chat-composer/ChatComposer.web.js.map +1 -0
  120. package/lib/module/chat-composer/ComposerAttachmentStrip.js +4 -196
  121. package/lib/module/chat-composer/ComposerAttachmentStrip.js.map +1 -1
  122. package/lib/module/chat-composer/ComposerAttachmentStrip.web.js +8 -0
  123. package/lib/module/chat-composer/ComposerAttachmentStrip.web.js.map +1 -0
  124. package/lib/module/chat-composer/ComposerBanner.js +4 -162
  125. package/lib/module/chat-composer/ComposerBanner.js.map +1 -1
  126. package/lib/module/chat-composer/ComposerBanner.web.js +8 -0
  127. package/lib/module/chat-composer/ComposerBanner.web.js.map +1 -0
  128. package/lib/module/chat-composer/EmojiPicker.js +5 -440
  129. package/lib/module/chat-composer/EmojiPicker.js.map +1 -1
  130. package/lib/module/chat-composer/EmojiPicker.web.js +10 -0
  131. package/lib/module/chat-composer/EmojiPicker.web.js.map +1 -0
  132. package/lib/module/chat-composer/MessageContextMenu.js +11 -99
  133. package/lib/module/chat-composer/MessageContextMenu.js.map +1 -1
  134. package/lib/module/chat-composer/MessageContextMenu.web.js +15 -0
  135. package/lib/module/chat-composer/MessageContextMenu.web.js.map +1 -0
  136. package/lib/module/chat-composer/ReactionPicker.js +5 -104
  137. package/lib/module/chat-composer/ReactionPicker.js.map +1 -1
  138. package/lib/module/chat-composer/ReactionPicker.web.js +10 -0
  139. package/lib/module/chat-composer/ReactionPicker.web.js.map +1 -0
  140. package/lib/module/chat-composer/SuggestionList.js +4 -219
  141. package/lib/module/chat-composer/SuggestionList.js.map +1 -1
  142. package/lib/module/chat-composer/SuggestionList.web.js +8 -0
  143. package/lib/module/chat-composer/SuggestionList.web.js.map +1 -0
  144. package/lib/module/chat-composer/VoiceRecorder.js +6 -260
  145. package/lib/module/chat-composer/VoiceRecorder.js.map +1 -1
  146. package/lib/module/chat-composer/VoiceRecorder.web.js +12 -0
  147. package/lib/module/chat-composer/VoiceRecorder.web.js.map +1 -0
  148. package/lib/module/chat-composer/create-attachment-menu.js +238 -0
  149. package/lib/module/chat-composer/create-attachment-menu.js.map +1 -0
  150. package/lib/module/chat-composer/create-chat-composer.js +395 -0
  151. package/lib/module/chat-composer/create-chat-composer.js.map +1 -0
  152. package/lib/module/chat-composer/create-composer-attachment-strip.js +206 -0
  153. package/lib/module/chat-composer/create-composer-attachment-strip.js.map +1 -0
  154. package/lib/module/chat-composer/create-composer-banner.js +171 -0
  155. package/lib/module/chat-composer/create-composer-banner.js.map +1 -0
  156. package/lib/module/chat-composer/create-emoji-picker.js +451 -0
  157. package/lib/module/chat-composer/create-emoji-picker.js.map +1 -0
  158. package/lib/module/chat-composer/create-message-context-menu.js +114 -0
  159. package/lib/module/chat-composer/create-message-context-menu.js.map +1 -0
  160. package/lib/module/chat-composer/create-reaction-picker.js +115 -0
  161. package/lib/module/chat-composer/create-reaction-picker.js.map +1 -0
  162. package/lib/module/chat-composer/create-suggestion-list.js +229 -0
  163. package/lib/module/chat-composer/create-suggestion-list.js.map +1 -0
  164. package/lib/module/chat-composer/create-voice-recorder.js +272 -0
  165. package/lib/module/chat-composer/create-voice-recorder.js.map +1 -0
  166. package/lib/module/chat-composer/index.js +9 -9
  167. package/lib/module/chat-composer/index.js.map +1 -1
  168. package/lib/module/chat-composer/index.web.js +9 -9
  169. package/lib/module/chat-composer/index.web.js.map +1 -1
  170. package/lib/module/earnings/EarningsSummary.js +12 -2
  171. package/lib/module/earnings/EarningsSummary.js.map +1 -1
  172. package/lib/module/field/Field.js +2 -0
  173. package/lib/module/field/Field.js.map +1 -1
  174. package/lib/module/item/Item.js +16 -8
  175. package/lib/module/item/Item.js.map +1 -1
  176. package/lib/module/job-board/JobCard.js +6 -2
  177. package/lib/module/job-board/JobCard.js.map +1 -1
  178. package/lib/module/label/Label.js +2 -1
  179. package/lib/module/label/Label.js.map +1 -1
  180. package/lib/module/listing-details/AmenityList.js +4 -3
  181. package/lib/module/listing-details/AmenityList.js.map +1 -1
  182. package/lib/module/mail-compose/MailComposeSurface.js +1 -1
  183. package/lib/module/mail-compose/MailComposeSurface.js.map +1 -1
  184. package/lib/module/overlay/InteractionBoundary.js +25 -0
  185. package/lib/module/overlay/InteractionBoundary.js.map +1 -0
  186. package/lib/module/payment-method/PaymentMethodList.js +3 -2
  187. package/lib/module/payment-method/PaymentMethodList.js.map +1 -1
  188. package/lib/module/place-details/PlaceAmenities.js +15 -4
  189. package/lib/module/place-details/PlaceAmenities.js.map +1 -1
  190. package/lib/module/place-details/PlacePopularTimes.js +7 -1
  191. package/lib/module/place-details/PlacePopularTimes.js.map +1 -1
  192. package/lib/module/proof-of-delivery/ProofOfDelivery.js +10 -1
  193. package/lib/module/proof-of-delivery/ProofOfDelivery.js.map +1 -1
  194. package/lib/module/proof-of-delivery/shared.js +1 -1
  195. package/lib/module/proof-of-delivery/shared.js.map +1 -1
  196. package/lib/module/select/Select.js +7 -4
  197. package/lib/module/select/Select.js.map +1 -1
  198. package/lib/module/select/Select.web.js +7 -4
  199. package/lib/module/select/Select.web.js.map +1 -1
  200. package/lib/module/select/use-required-description.js +33 -0
  201. package/lib/module/select/use-required-description.js.map +1 -0
  202. package/lib/typescript/commonjs/button/Button.d.ts.map +1 -1
  203. package/lib/typescript/commonjs/card-form/shared.d.ts +2 -1
  204. package/lib/typescript/commonjs/card-form/shared.d.ts.map +1 -1
  205. package/lib/typescript/commonjs/chat-composer/AttachmentMenu.d.ts +1 -2
  206. package/lib/typescript/commonjs/chat-composer/AttachmentMenu.d.ts.map +1 -1
  207. package/lib/typescript/commonjs/chat-composer/AttachmentMenu.web.d.ts +2 -0
  208. package/lib/typescript/commonjs/chat-composer/AttachmentMenu.web.d.ts.map +1 -0
  209. package/lib/typescript/commonjs/chat-composer/ChatComposer.d.ts +1 -2
  210. package/lib/typescript/commonjs/chat-composer/ChatComposer.d.ts.map +1 -1
  211. package/lib/typescript/commonjs/chat-composer/ChatComposer.web.d.ts +2 -0
  212. package/lib/typescript/commonjs/chat-composer/ChatComposer.web.d.ts.map +1 -0
  213. package/lib/typescript/commonjs/chat-composer/ComposerAttachmentStrip.d.ts +1 -2
  214. package/lib/typescript/commonjs/chat-composer/ComposerAttachmentStrip.d.ts.map +1 -1
  215. package/lib/typescript/commonjs/chat-composer/ComposerAttachmentStrip.web.d.ts +2 -0
  216. package/lib/typescript/commonjs/chat-composer/ComposerAttachmentStrip.web.d.ts.map +1 -0
  217. package/lib/typescript/commonjs/chat-composer/ComposerBanner.d.ts +1 -2
  218. package/lib/typescript/commonjs/chat-composer/ComposerBanner.d.ts.map +1 -1
  219. package/lib/typescript/commonjs/chat-composer/ComposerBanner.web.d.ts +2 -0
  220. package/lib/typescript/commonjs/chat-composer/ComposerBanner.web.d.ts.map +1 -0
  221. package/lib/typescript/commonjs/chat-composer/EmojiPicker.d.ts +1 -2
  222. package/lib/typescript/commonjs/chat-composer/EmojiPicker.d.ts.map +1 -1
  223. package/lib/typescript/commonjs/chat-composer/EmojiPicker.web.d.ts +2 -0
  224. package/lib/typescript/commonjs/chat-composer/EmojiPicker.web.d.ts.map +1 -0
  225. package/lib/typescript/commonjs/chat-composer/MessageContextMenu.d.ts +1 -2
  226. package/lib/typescript/commonjs/chat-composer/MessageContextMenu.d.ts.map +1 -1
  227. package/lib/typescript/commonjs/chat-composer/MessageContextMenu.web.d.ts +2 -0
  228. package/lib/typescript/commonjs/chat-composer/MessageContextMenu.web.d.ts.map +1 -0
  229. package/lib/typescript/commonjs/chat-composer/ReactionPicker.d.ts +1 -2
  230. package/lib/typescript/commonjs/chat-composer/ReactionPicker.d.ts.map +1 -1
  231. package/lib/typescript/commonjs/chat-composer/ReactionPicker.web.d.ts +2 -0
  232. package/lib/typescript/commonjs/chat-composer/ReactionPicker.web.d.ts.map +1 -0
  233. package/lib/typescript/commonjs/chat-composer/SuggestionList.d.ts +1 -2
  234. package/lib/typescript/commonjs/chat-composer/SuggestionList.d.ts.map +1 -1
  235. package/lib/typescript/commonjs/chat-composer/SuggestionList.web.d.ts +2 -0
  236. package/lib/typescript/commonjs/chat-composer/SuggestionList.web.d.ts.map +1 -0
  237. package/lib/typescript/commonjs/chat-composer/VoiceRecorder.d.ts +1 -2
  238. package/lib/typescript/commonjs/chat-composer/VoiceRecorder.d.ts.map +1 -1
  239. package/lib/typescript/commonjs/chat-composer/VoiceRecorder.web.d.ts +2 -0
  240. package/lib/typescript/commonjs/chat-composer/VoiceRecorder.web.d.ts.map +1 -0
  241. package/lib/typescript/commonjs/chat-composer/create-attachment-menu.d.ts +11 -0
  242. package/lib/typescript/commonjs/chat-composer/create-attachment-menu.d.ts.map +1 -0
  243. package/lib/typescript/commonjs/chat-composer/create-chat-composer.d.ts +11 -0
  244. package/lib/typescript/commonjs/chat-composer/create-chat-composer.d.ts.map +1 -0
  245. package/lib/typescript/commonjs/chat-composer/create-composer-attachment-strip.d.ts +7 -0
  246. package/lib/typescript/commonjs/chat-composer/create-composer-attachment-strip.d.ts.map +1 -0
  247. package/lib/typescript/commonjs/chat-composer/create-composer-banner.d.ts +7 -0
  248. package/lib/typescript/commonjs/chat-composer/create-composer-banner.d.ts.map +1 -0
  249. package/lib/typescript/commonjs/chat-composer/create-emoji-picker.d.ts +9 -0
  250. package/lib/typescript/commonjs/chat-composer/create-emoji-picker.d.ts.map +1 -0
  251. package/lib/typescript/commonjs/chat-composer/create-message-context-menu.d.ts +14 -0
  252. package/lib/typescript/commonjs/chat-composer/create-message-context-menu.d.ts.map +1 -0
  253. package/lib/typescript/commonjs/chat-composer/create-reaction-picker.d.ts +9 -0
  254. package/lib/typescript/commonjs/chat-composer/create-reaction-picker.d.ts.map +1 -0
  255. package/lib/typescript/commonjs/chat-composer/create-suggestion-list.d.ts +7 -0
  256. package/lib/typescript/commonjs/chat-composer/create-suggestion-list.d.ts.map +1 -0
  257. package/lib/typescript/commonjs/chat-composer/create-voice-recorder.d.ts +11 -0
  258. package/lib/typescript/commonjs/chat-composer/create-voice-recorder.d.ts.map +1 -0
  259. package/lib/typescript/commonjs/chat-composer/index.web.d.ts +9 -9
  260. package/lib/typescript/commonjs/chat-composer/index.web.d.ts.map +1 -1
  261. package/lib/typescript/commonjs/earnings/EarningsSummary.d.ts.map +1 -1
  262. package/lib/typescript/commonjs/field/Field.d.ts +1 -1
  263. package/lib/typescript/commonjs/field/Field.d.ts.map +1 -1
  264. package/lib/typescript/commonjs/field/types.d.ts +2 -0
  265. package/lib/typescript/commonjs/field/types.d.ts.map +1 -1
  266. package/lib/typescript/commonjs/floating/types.d.ts +1 -0
  267. package/lib/typescript/commonjs/floating/types.d.ts.map +1 -1
  268. package/lib/typescript/commonjs/item/Item.d.ts.map +1 -1
  269. package/lib/typescript/commonjs/job-board/JobCard.d.ts.map +1 -1
  270. package/lib/typescript/commonjs/label/Label.d.ts +1 -1
  271. package/lib/typescript/commonjs/label/Label.d.ts.map +1 -1
  272. package/lib/typescript/commonjs/label/types.d.ts +2 -0
  273. package/lib/typescript/commonjs/label/types.d.ts.map +1 -1
  274. package/lib/typescript/commonjs/listing-details/AmenityList.d.ts.map +1 -1
  275. package/lib/typescript/commonjs/overlay/InteractionBoundary.d.ts +7 -0
  276. package/lib/typescript/commonjs/overlay/InteractionBoundary.d.ts.map +1 -0
  277. package/lib/typescript/commonjs/payment-method/PaymentMethodList.d.ts.map +1 -1
  278. package/lib/typescript/commonjs/place-details/PlaceAmenities.d.ts.map +1 -1
  279. package/lib/typescript/commonjs/place-details/PlacePopularTimes.d.ts.map +1 -1
  280. package/lib/typescript/commonjs/proof-of-delivery/ProofOfDelivery.d.ts.map +1 -1
  281. package/lib/typescript/commonjs/select/Select.d.ts.map +1 -1
  282. package/lib/typescript/commonjs/select/Select.web.d.ts.map +1 -1
  283. package/lib/typescript/commonjs/select/use-required-description.d.ts +7 -0
  284. package/lib/typescript/commonjs/select/use-required-description.d.ts.map +1 -0
  285. package/lib/typescript/module/button/Button.d.ts.map +1 -1
  286. package/lib/typescript/module/card-form/shared.d.ts +2 -1
  287. package/lib/typescript/module/card-form/shared.d.ts.map +1 -1
  288. package/lib/typescript/module/chat-composer/AttachmentMenu.d.ts +1 -2
  289. package/lib/typescript/module/chat-composer/AttachmentMenu.d.ts.map +1 -1
  290. package/lib/typescript/module/chat-composer/AttachmentMenu.web.d.ts +2 -0
  291. package/lib/typescript/module/chat-composer/AttachmentMenu.web.d.ts.map +1 -0
  292. package/lib/typescript/module/chat-composer/ChatComposer.d.ts +1 -2
  293. package/lib/typescript/module/chat-composer/ChatComposer.d.ts.map +1 -1
  294. package/lib/typescript/module/chat-composer/ChatComposer.web.d.ts +2 -0
  295. package/lib/typescript/module/chat-composer/ChatComposer.web.d.ts.map +1 -0
  296. package/lib/typescript/module/chat-composer/ComposerAttachmentStrip.d.ts +1 -2
  297. package/lib/typescript/module/chat-composer/ComposerAttachmentStrip.d.ts.map +1 -1
  298. package/lib/typescript/module/chat-composer/ComposerAttachmentStrip.web.d.ts +2 -0
  299. package/lib/typescript/module/chat-composer/ComposerAttachmentStrip.web.d.ts.map +1 -0
  300. package/lib/typescript/module/chat-composer/ComposerBanner.d.ts +1 -2
  301. package/lib/typescript/module/chat-composer/ComposerBanner.d.ts.map +1 -1
  302. package/lib/typescript/module/chat-composer/ComposerBanner.web.d.ts +2 -0
  303. package/lib/typescript/module/chat-composer/ComposerBanner.web.d.ts.map +1 -0
  304. package/lib/typescript/module/chat-composer/EmojiPicker.d.ts +1 -2
  305. package/lib/typescript/module/chat-composer/EmojiPicker.d.ts.map +1 -1
  306. package/lib/typescript/module/chat-composer/EmojiPicker.web.d.ts +2 -0
  307. package/lib/typescript/module/chat-composer/EmojiPicker.web.d.ts.map +1 -0
  308. package/lib/typescript/module/chat-composer/MessageContextMenu.d.ts +1 -2
  309. package/lib/typescript/module/chat-composer/MessageContextMenu.d.ts.map +1 -1
  310. package/lib/typescript/module/chat-composer/MessageContextMenu.web.d.ts +2 -0
  311. package/lib/typescript/module/chat-composer/MessageContextMenu.web.d.ts.map +1 -0
  312. package/lib/typescript/module/chat-composer/ReactionPicker.d.ts +1 -2
  313. package/lib/typescript/module/chat-composer/ReactionPicker.d.ts.map +1 -1
  314. package/lib/typescript/module/chat-composer/ReactionPicker.web.d.ts +2 -0
  315. package/lib/typescript/module/chat-composer/ReactionPicker.web.d.ts.map +1 -0
  316. package/lib/typescript/module/chat-composer/SuggestionList.d.ts +1 -2
  317. package/lib/typescript/module/chat-composer/SuggestionList.d.ts.map +1 -1
  318. package/lib/typescript/module/chat-composer/SuggestionList.web.d.ts +2 -0
  319. package/lib/typescript/module/chat-composer/SuggestionList.web.d.ts.map +1 -0
  320. package/lib/typescript/module/chat-composer/VoiceRecorder.d.ts +1 -2
  321. package/lib/typescript/module/chat-composer/VoiceRecorder.d.ts.map +1 -1
  322. package/lib/typescript/module/chat-composer/VoiceRecorder.web.d.ts +2 -0
  323. package/lib/typescript/module/chat-composer/VoiceRecorder.web.d.ts.map +1 -0
  324. package/lib/typescript/module/chat-composer/create-attachment-menu.d.ts +11 -0
  325. package/lib/typescript/module/chat-composer/create-attachment-menu.d.ts.map +1 -0
  326. package/lib/typescript/module/chat-composer/create-chat-composer.d.ts +11 -0
  327. package/lib/typescript/module/chat-composer/create-chat-composer.d.ts.map +1 -0
  328. package/lib/typescript/module/chat-composer/create-composer-attachment-strip.d.ts +7 -0
  329. package/lib/typescript/module/chat-composer/create-composer-attachment-strip.d.ts.map +1 -0
  330. package/lib/typescript/module/chat-composer/create-composer-banner.d.ts +7 -0
  331. package/lib/typescript/module/chat-composer/create-composer-banner.d.ts.map +1 -0
  332. package/lib/typescript/module/chat-composer/create-emoji-picker.d.ts +9 -0
  333. package/lib/typescript/module/chat-composer/create-emoji-picker.d.ts.map +1 -0
  334. package/lib/typescript/module/chat-composer/create-message-context-menu.d.ts +14 -0
  335. package/lib/typescript/module/chat-composer/create-message-context-menu.d.ts.map +1 -0
  336. package/lib/typescript/module/chat-composer/create-reaction-picker.d.ts +9 -0
  337. package/lib/typescript/module/chat-composer/create-reaction-picker.d.ts.map +1 -0
  338. package/lib/typescript/module/chat-composer/create-suggestion-list.d.ts +7 -0
  339. package/lib/typescript/module/chat-composer/create-suggestion-list.d.ts.map +1 -0
  340. package/lib/typescript/module/chat-composer/create-voice-recorder.d.ts +11 -0
  341. package/lib/typescript/module/chat-composer/create-voice-recorder.d.ts.map +1 -0
  342. package/lib/typescript/module/chat-composer/index.web.d.ts +9 -9
  343. package/lib/typescript/module/chat-composer/index.web.d.ts.map +1 -1
  344. package/lib/typescript/module/earnings/EarningsSummary.d.ts.map +1 -1
  345. package/lib/typescript/module/field/Field.d.ts +1 -1
  346. package/lib/typescript/module/field/Field.d.ts.map +1 -1
  347. package/lib/typescript/module/field/types.d.ts +2 -0
  348. package/lib/typescript/module/field/types.d.ts.map +1 -1
  349. package/lib/typescript/module/floating/types.d.ts +1 -0
  350. package/lib/typescript/module/floating/types.d.ts.map +1 -1
  351. package/lib/typescript/module/item/Item.d.ts.map +1 -1
  352. package/lib/typescript/module/job-board/JobCard.d.ts.map +1 -1
  353. package/lib/typescript/module/label/Label.d.ts +1 -1
  354. package/lib/typescript/module/label/Label.d.ts.map +1 -1
  355. package/lib/typescript/module/label/types.d.ts +2 -0
  356. package/lib/typescript/module/label/types.d.ts.map +1 -1
  357. package/lib/typescript/module/listing-details/AmenityList.d.ts.map +1 -1
  358. package/lib/typescript/module/overlay/InteractionBoundary.d.ts +7 -0
  359. package/lib/typescript/module/overlay/InteractionBoundary.d.ts.map +1 -0
  360. package/lib/typescript/module/payment-method/PaymentMethodList.d.ts.map +1 -1
  361. package/lib/typescript/module/place-details/PlaceAmenities.d.ts.map +1 -1
  362. package/lib/typescript/module/place-details/PlacePopularTimes.d.ts.map +1 -1
  363. package/lib/typescript/module/proof-of-delivery/ProofOfDelivery.d.ts.map +1 -1
  364. package/lib/typescript/module/select/Select.d.ts.map +1 -1
  365. package/lib/typescript/module/select/Select.web.d.ts.map +1 -1
  366. package/lib/typescript/module/select/use-required-description.d.ts +7 -0
  367. package/lib/typescript/module/select/use-required-description.d.ts.map +1 -0
  368. package/package.json +1 -1
  369. package/src/__tests__/support/adoption-matrix.ts +708 -0
  370. package/src/__tests__/support/card-surface.ts +17 -0
  371. package/src/__tests__/support/collision-fixture-barrel.ts +20 -0
  372. package/src/__tests__/support/commerce-harness.tsx +97 -0
  373. package/src/__tests__/support/composite.ts +68 -0
  374. package/src/__tests__/support/constructed-style-sheets.ts +68 -0
  375. package/src/__tests__/support/press-host.ts +30 -0
  376. package/src/__tests__/support/rendered-style.ts +99 -0
  377. package/src/__tests__/support/unread-hook-fixture.ts +33 -0
  378. package/src/__tests__/support/worklet-capture-fixture.tsx +28 -0
  379. package/src/button/Button.tsx +35 -10
  380. package/src/button/GlyphButton.tsx +3 -3
  381. package/src/card-form/shared.ts +3 -2
  382. package/src/chat-composer/AttachmentMenu.tsx +2 -214
  383. package/src/chat-composer/AttachmentMenu.web.tsx +5 -0
  384. package/src/chat-composer/ChatComposer.tsx +2 -459
  385. package/src/chat-composer/ChatComposer.web.tsx +6 -0
  386. package/src/chat-composer/ComposerAttachmentStrip.tsx +2 -202
  387. package/src/chat-composer/ComposerAttachmentStrip.web.tsx +4 -0
  388. package/src/chat-composer/ComposerBanner.tsx +2 -157
  389. package/src/chat-composer/ComposerBanner.web.tsx +4 -0
  390. package/src/chat-composer/EmojiPicker.tsx +2 -402
  391. package/src/chat-composer/EmojiPicker.web.tsx +5 -0
  392. package/src/chat-composer/MessageContextMenu.tsx +2 -88
  393. package/src/chat-composer/MessageContextMenu.web.tsx +12 -0
  394. package/src/chat-composer/ReactionPicker.tsx +2 -100
  395. package/src/chat-composer/ReactionPicker.web.tsx +5 -0
  396. package/src/chat-composer/SuggestionList.tsx +2 -209
  397. package/src/chat-composer/SuggestionList.web.tsx +4 -0
  398. package/src/chat-composer/VoiceRecorder.tsx +2 -287
  399. package/src/chat-composer/VoiceRecorder.web.tsx +6 -0
  400. package/src/chat-composer/create-attachment-menu.tsx +228 -0
  401. package/src/chat-composer/create-chat-composer.tsx +473 -0
  402. package/src/chat-composer/create-composer-attachment-strip.tsx +212 -0
  403. package/src/chat-composer/create-composer-banner.tsx +167 -0
  404. package/src/chat-composer/create-emoji-picker.tsx +414 -0
  405. package/src/chat-composer/create-message-context-menu.tsx +112 -0
  406. package/src/chat-composer/create-reaction-picker.tsx +112 -0
  407. package/src/chat-composer/create-suggestion-list.tsx +219 -0
  408. package/src/chat-composer/create-voice-recorder.tsx +301 -0
  409. package/src/chat-composer/index.web.ts +9 -9
  410. package/src/earnings/EarningsSummary.tsx +9 -2
  411. package/src/field/Field.tsx +2 -1
  412. package/src/field/types.ts +2 -0
  413. package/src/floating/types.ts +1 -0
  414. package/src/item/Item.tsx +16 -11
  415. package/src/job-board/JobCard.tsx +4 -1
  416. package/src/label/Label.tsx +2 -1
  417. package/src/label/types.ts +2 -0
  418. package/src/listing-details/AmenityList.tsx +4 -3
  419. package/src/overlay/InteractionBoundary.tsx +24 -0
  420. package/src/payment-method/PaymentMethodList.tsx +2 -1
  421. package/src/place-details/PlaceAmenities.tsx +9 -0
  422. package/src/place-details/PlacePopularTimes.tsx +7 -1
  423. package/src/proof-of-delivery/ProofOfDelivery.tsx +9 -1
  424. package/src/proof-of-delivery/shared.ts +1 -1
  425. package/src/select/Select.tsx +5 -1
  426. package/src/select/Select.web.tsx +5 -1
  427. package/src/select/use-required-description.tsx +20 -0
  428. package/src/theme/__tests__/__fixtures__/golden-resolved-tokens.json +9346 -0
  429. package/src/theme/__tests__/__fixtures__/tonal-glass-primary-failures.json +69 -0
  430. package/src/theme/__tests__/fixtures/color-engine-golden.json +1 -0
@@ -0,0 +1,395 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * The message input bar of a person-to-person chat: a radius-24 pill with a
5
+ * left attach button, an autosizing field, an emoji button and a right control
6
+ * that swaps between a mic (nothing to send) and an accent send disc (there is).
7
+ *
8
+ * Presentational. Every piece of state — the draft, the banners, the pending
9
+ * attachments, which suggestion is highlighted — arrives as a prop, because the
10
+ * app owns drafts per conversation and a composer that kept its own would lose
11
+ * them on every navigation.
12
+ */
13
+ import React, { useCallback, useMemo, useRef, useState } from 'react';
14
+ import { TextInput, View } from 'react-native';
15
+ import Animated, { Easing, useAnimatedStyle, useReducedMotion, useSharedValue, withTiming } from 'react-native-reanimated';
16
+ import { RiAddLine } from "../icons/remix/RiAddLine.js";
17
+ import { RiCameraLine } from "../icons/remix/RiCameraLine.js";
18
+ import { RiEmotionLine } from "../icons/remix/RiEmotionLine.js";
19
+ import { RiForbidLine } from "../icons/remix/RiForbidLine.js";
20
+ import { RiMic2Line } from "../icons/remix/RiMic2Line.js";
21
+ import { RiSendPlaneLine } from "../icons/remix/RiSendPlaneLine.js";
22
+ import { useControllableState } from "../hooks/use-controllable-state.js";
23
+ import { useTextareaAutosize } from "../hooks/use-textarea-autosize.js";
24
+ import { useTheme } from "../theme/use-theme.js";
25
+ import { Text } from "../typography/index.js";
26
+ import { TYPE_SCALE } from "../typography/scale.js";
27
+ import { BAR_PADDING, BAR_RADIUS, chatComposerLabels, CONTROL_SIZE, DEFAULT_MAX_LINES, LINE_HEIGHT, SWAP_MS, resolveChatComposerPalette } from "./shared.js";
28
+ import { dataHook, IS_WEB, useChatComposerWebCss } from "./web-hooks.js";
29
+ import { useMessages } from "../locale/messages.js";
30
+ import { CHAT_COMPOSER_MESSAGES } from "./messages.js";
31
+ import { useCommonMessages } from "../locale/common-messages.js";
32
+
33
+ /** Platform dependencies are bound once; shared rendering adds no wrapper. */
34
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
35
+ export function createChatComposer({
36
+ ComposerAttachmentStrip,
37
+ ComposerIconButton,
38
+ SuggestionList
39
+ }) {
40
+ const EASE_OUT = Easing.bezier(0, 0, 0.2, 1);
41
+
42
+ /**
43
+ * One half of the mic ↔ send crossfade.
44
+ *
45
+ * Two things the fade must not break, neither of which the animation expresses:
46
+ *
47
+ * `pointerEvents` is a PROP, not a style entry — react-native-web drops it from
48
+ * a style object silently, and a hidden layer that still takes the press is a
49
+ * send button that fires when the field is empty.
50
+ *
51
+ * The hidden half leaves the ACCESSIBILITY TREE too. Both halves stay mounted so
52
+ * they can cross-fade, so without this every composer announces "Send" and
53
+ * "Record a voice message" side by side and only one of them does anything.
54
+ * `aria-hidden` is what react-native-web reads and
55
+ * `importantForAccessibility` is what React Native reads; a surface that sets
56
+ * one of the two is hidden on one platform only.
57
+ */
58
+ function SwapLayer({
59
+ shown,
60
+ children
61
+ }) {
62
+ const reducedMotion = useReducedMotion();
63
+ const progress = useSharedValue(shown ? 1 : 0);
64
+ React.useEffect(() => {
65
+ progress.value = reducedMotion ? shown ? 1 : 0 : withTiming(shown ? 1 : 0, {
66
+ duration: SWAP_MS,
67
+ easing: EASE_OUT
68
+ });
69
+ }, [shown, reducedMotion, progress]);
70
+ const animated = useAnimatedStyle(() => ({
71
+ opacity: progress.value
72
+ }), [progress]);
73
+ return /*#__PURE__*/_jsx(Animated.View, {
74
+ pointerEvents: shown ? 'auto' : 'none',
75
+ "aria-hidden": !shown,
76
+ accessibilityElementsHidden: !shown,
77
+ importantForAccessibility: shown ? 'auto' : 'no-hide-descendants',
78
+ style: [{
79
+ position: 'absolute',
80
+ top: 0,
81
+ left: 0
82
+ }, animated],
83
+ children: children
84
+ });
85
+ }
86
+
87
+ /** A DOM keyboard event as react-native-web hands it to `onKeyPress`. */
88
+
89
+ function ChatComposer({
90
+ value,
91
+ defaultValue = '',
92
+ onValueChange,
93
+ placeholder: placeholderProp,
94
+ onSend,
95
+ sendOn = 'enter',
96
+ maxLines = DEFAULT_MAX_LINES,
97
+ minLines = 1,
98
+ disabled = false,
99
+ notice,
100
+ noticeIcon,
101
+ banner,
102
+ attachments,
103
+ onRemoveAttachment,
104
+ leading,
105
+ onAttachPress,
106
+ emojiSlot,
107
+ onEmojiPress,
108
+ onCameraPress,
109
+ onMicPress,
110
+ onMicPressIn,
111
+ onMicPressOut,
112
+ canSend,
113
+ recorder,
114
+ suggestions,
115
+ suggestionKind = 'mention',
116
+ activeIndex = -1,
117
+ onActiveIndexChange,
118
+ onSelectSuggestion,
119
+ onEscape,
120
+ onEditLast,
121
+ showKeyboardHint = false,
122
+ inputRef,
123
+ onFocus,
124
+ onBlur,
125
+ labels: labelOverrides,
126
+ style,
127
+ testID,
128
+ accessibilityLabel
129
+ }) {
130
+ const theme = useTheme();
131
+ const {
132
+ messages
133
+ } = useMessages(CHAT_COMPOSER_MESSAGES);
134
+ const common = useCommonMessages();
135
+ const palette = resolveChatComposerPalette(theme);
136
+ useChatComposerWebCss();
137
+ const labels = useMemo(() => ({
138
+ ...chatComposerLabels(messages, common.send),
139
+ ...labelOverrides
140
+ }), [common.send, labelOverrides, messages]);
141
+ const placeholder = placeholderProp ?? messages.message;
142
+ const [text, setText] = useControllableState({
143
+ value,
144
+ defaultValue,
145
+ onChange: onValueChange
146
+ });
147
+ const localRef = useRef(null);
148
+ const setFieldRef = useCallback(node => {
149
+ localRef.current = node;
150
+ if (inputRef) inputRef.current = node;
151
+ }, [inputRef]);
152
+ const minHeight = Math.max(1, minLines) * LINE_HEIGHT;
153
+ const maxHeight = Math.max(minLines, maxLines) * LINE_HEIGHT;
154
+ const [contentHeight, setContentHeight] = useState(minHeight);
155
+ const height = Math.min(maxHeight, Math.max(minHeight, contentHeight));
156
+
157
+ /**
158
+ * Web autosize measures the node, native reads `onContentSizeChange`.
159
+ *
160
+ * They are not interchangeable: react-native-web reports `scrollHeight`,
161
+ * which never falls below the height already applied, so a field grown to six
162
+ * lines and then emptied would stay six lines tall. `useTextareaAutosize`
163
+ * collapses the node to measure it only when the draft may have got SHORTER —
164
+ * collapsing on every keystroke re-laid-out the whole page three times a key.
165
+ */
166
+ useTextareaAutosize(localRef, text, {
167
+ enabled: IS_WEB,
168
+ height,
169
+ minHeight,
170
+ onMeasure: setContentHeight
171
+ });
172
+ const onContentSizeChange = useCallback(event => {
173
+ if (IS_WEB) return;
174
+ setContentHeight(event.nativeEvent.contentSize.height);
175
+ }, []);
176
+ const trimmed = text.trim();
177
+ const hasAttachments = !!attachments && attachments.length > 0;
178
+ const showSend = canSend ?? (trimmed.length > 0 || hasAttachments);
179
+ const submit = useCallback(() => {
180
+ if (disabled || !showSend) return;
181
+ onSend?.(text);
182
+ if (value === undefined) setText('');
183
+ }, [disabled, showSend, onSend, text, value, setText]);
184
+ const openSuggestions = !!suggestions && suggestions.length > 0;
185
+ const onKeyPress = useCallback(event => {
186
+ if (!IS_WEB) return;
187
+ const native = event.nativeEvent;
188
+ // An IME candidate window is using the same keys; committing a
189
+ // composition must never send the half-written word behind it.
190
+ if (native.isComposing) return;
191
+ const mod = native.metaKey === true || native.ctrlKey === true;
192
+ if (openSuggestions && (native.key === 'ArrowDown' || native.key === 'ArrowUp')) {
193
+ event.preventDefault();
194
+ const count = suggestions?.length ?? 0;
195
+ const step = native.key === 'ArrowDown' ? 1 : -1;
196
+ const from = activeIndex < 0 ? step > 0 ? -1 : 0 : activeIndex;
197
+ onActiveIndexChange?.((from + step + count) % count);
198
+ return;
199
+ }
200
+ if (native.key === 'Escape') {
201
+ event.preventDefault();
202
+ onEscape?.();
203
+ return;
204
+ }
205
+ if (native.key === 'ArrowUp' && text.length === 0) {
206
+ event.preventDefault();
207
+ onEditLast?.();
208
+ return;
209
+ }
210
+ if (native.key !== 'Enter') return;
211
+ if (openSuggestions && activeIndex >= 0) {
212
+ const picked = suggestions?.[activeIndex];
213
+ if (picked && !picked.disabled) {
214
+ event.preventDefault();
215
+ onSelectSuggestion?.(picked, activeIndex);
216
+ return;
217
+ }
218
+ }
219
+ if (sendOn === 'enter' ? native.shiftKey !== true && !mod : mod) {
220
+ event.preventDefault();
221
+ submit();
222
+ }
223
+ }, [activeIndex, onActiveIndexChange, onEditLast, onEscape, onSelectSuggestion, openSuggestions, sendOn, submit, suggestions, text.length]);
224
+ const bar = {
225
+ flexDirection: 'row',
226
+ alignItems: 'flex-end',
227
+ gap: 2,
228
+ minHeight: CONTROL_SIZE + BAR_PADDING * 2,
229
+ borderRadius: BAR_RADIUS,
230
+ borderWidth: 1,
231
+ borderColor: palette.border,
232
+ // A disabled bar changes its FILL rather than its opacity. Dimming the
233
+ // container compounds with each control's own disabled opacity — 0.55 × 0.4
234
+ // put the send disc at 0.22, which reads as a rendering fault rather than a
235
+ // state.
236
+ backgroundColor: disabled ? palette.inset : palette.surface,
237
+ paddingLeft: BAR_PADDING,
238
+ paddingRight: BAR_PADDING,
239
+ paddingTop: BAR_PADDING,
240
+ paddingBottom: BAR_PADDING,
241
+ '--bloom-chat-composer-ring': palette.focusRing
242
+ };
243
+ const NoticeIcon = noticeIcon ?? RiForbidLine;
244
+ return /*#__PURE__*/_jsxs(View, {
245
+ accessibilityLabel: accessibilityLabel,
246
+ style: [{
247
+ width: '100%',
248
+ flexDirection: 'column',
249
+ gap: 6
250
+ }, style],
251
+ testID: testID,
252
+ children: [openSuggestions ? /*#__PURE__*/_jsx(SuggestionList, {
253
+ kind: suggestionKind,
254
+ suggestions: suggestions ?? [],
255
+ activeIndex: activeIndex,
256
+ onActiveIndexChange: onActiveIndexChange,
257
+ onSelectSuggestion: onSelectSuggestion,
258
+ testID: testID ? `${testID}-suggestions` : undefined
259
+ }) : null, banner, hasAttachments ? /*#__PURE__*/_jsx(ComposerAttachmentStrip, {
260
+ attachments: attachments ?? [],
261
+ onRemove: onRemoveAttachment,
262
+ testID: testID ? `${testID}-attachments` : undefined
263
+ }) : null, recorder ?? /*#__PURE__*/_jsx(View, {
264
+ style: bar,
265
+ testID: testID ? `${testID}-bar` : undefined,
266
+ children: notice !== undefined ? /*#__PURE__*/_jsx(View, {
267
+ style: {
268
+ flexDirection: 'row',
269
+ alignItems: 'center',
270
+ justifyContent: 'center',
271
+ gap: 8,
272
+ flexGrow: 1,
273
+ minHeight: CONTROL_SIZE,
274
+ paddingLeft: 12,
275
+ paddingRight: 12
276
+ },
277
+ testID: testID ? `${testID}-notice` : undefined,
278
+ children: typeof notice === 'string' ? /*#__PURE__*/_jsxs(_Fragment, {
279
+ children: [/*#__PURE__*/_jsx(NoticeIcon, {
280
+ width: 16,
281
+ height: 16,
282
+ fill: palette.iconSecondary
283
+ }), /*#__PURE__*/_jsx(Text, {
284
+ variant: "body-2-regular",
285
+ numberOfLines: 2,
286
+ style: {
287
+ color: palette.textSecondary,
288
+ textAlign: 'center'
289
+ },
290
+ children: notice
291
+ })]
292
+ }) : notice
293
+ }) : /*#__PURE__*/_jsxs(_Fragment, {
294
+ children: [leading ?? (onAttachPress ? /*#__PURE__*/_jsx(ComposerIconButton, {
295
+ icon: RiAddLine,
296
+ accessibilityLabel: labels.attach,
297
+ onPress: onAttachPress,
298
+ disabled: disabled,
299
+ iconSize: 22,
300
+ testID: testID ? `${testID}-attach` : undefined
301
+ }) : null), /*#__PURE__*/_jsx(View, {
302
+ style: {
303
+ flexGrow: 1,
304
+ flexShrink: 1,
305
+ justifyContent: 'center',
306
+ minHeight: CONTROL_SIZE,
307
+ paddingLeft: 6,
308
+ paddingRight: 6
309
+ },
310
+ children: /*#__PURE__*/_jsx(TextInput, {
311
+ ref: setFieldRef,
312
+ ...dataHook('bloomChatComposerInput'),
313
+ accessibilityLabel: labels.input,
314
+ multiline: true,
315
+ editable: !disabled,
316
+ value: text,
317
+ onChangeText: setText,
318
+ onKeyPress: onKeyPress,
319
+ onContentSizeChange: onContentSizeChange,
320
+ onFocus: onFocus,
321
+ onBlur: onBlur,
322
+ placeholder: placeholder,
323
+ placeholderTextColor: palette.textPlaceholder,
324
+ selectionColor: palette.accent,
325
+ cursorColor: palette.accent,
326
+ scrollEnabled: height >= maxHeight,
327
+ style: {
328
+ width: '100%',
329
+ height,
330
+ maxHeight,
331
+ padding: 0,
332
+ margin: 0,
333
+ ...TYPE_SCALE['body-regular'],
334
+ fontFamily: IS_WEB ? 'var(--bloom-font-sans)' : 'Inter',
335
+ color: disabled ? palette.textSecondary : palette.text,
336
+ backgroundColor: 'transparent'
337
+ },
338
+ testID: testID ? `${testID}-input` : undefined
339
+ })
340
+ }), onCameraPress ? /*#__PURE__*/_jsx(ComposerIconButton, {
341
+ icon: RiCameraLine,
342
+ accessibilityLabel: labels.camera,
343
+ onPress: onCameraPress,
344
+ disabled: disabled,
345
+ testID: testID ? `${testID}-camera` : undefined
346
+ }) : null, emojiSlot ?? (onEmojiPress ? /*#__PURE__*/_jsx(ComposerIconButton, {
347
+ icon: RiEmotionLine,
348
+ accessibilityLabel: labels.emoji,
349
+ onPress: onEmojiPress,
350
+ disabled: disabled,
351
+ testID: testID ? `${testID}-emoji` : undefined
352
+ }) : null), /*#__PURE__*/_jsxs(View, {
353
+ style: {
354
+ width: CONTROL_SIZE,
355
+ height: CONTROL_SIZE,
356
+ marginLeft: 2
357
+ },
358
+ children: [/*#__PURE__*/_jsx(SwapLayer, {
359
+ shown: showSend,
360
+ children: /*#__PURE__*/_jsx(ComposerIconButton, {
361
+ icon: RiSendPlaneLine,
362
+ tone: "accent",
363
+ accessibilityLabel: labels.send,
364
+ onPress: submit,
365
+ disabled: disabled,
366
+ iconSize: 18,
367
+ testID: testID ? `${testID}-send` : undefined
368
+ })
369
+ }), /*#__PURE__*/_jsx(SwapLayer, {
370
+ shown: !showSend,
371
+ children: /*#__PURE__*/_jsx(ComposerIconButton, {
372
+ icon: RiMic2Line,
373
+ accessibilityLabel: labels.mic,
374
+ onPress: onMicPress,
375
+ onPressIn: onMicPressIn,
376
+ onPressOut: onMicPressOut,
377
+ disabled: disabled,
378
+ testID: testID ? `${testID}-mic` : undefined
379
+ })
380
+ })]
381
+ })]
382
+ })
383
+ }), showKeyboardHint && IS_WEB && notice === undefined ? /*#__PURE__*/_jsx(Text, {
384
+ variant: "caption-2-regular",
385
+ style: {
386
+ color: palette.textPlaceholder,
387
+ paddingLeft: 14
388
+ },
389
+ children: sendOn === 'enter' ? labels.enterHint : labels.modEnterHint
390
+ }) : null]
391
+ });
392
+ }
393
+ return ChatComposer;
394
+ }
395
+ //# sourceMappingURL=create-chat-composer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useCallback","useMemo","useRef","useState","TextInput","View","Animated","Easing","useAnimatedStyle","useReducedMotion","useSharedValue","withTiming","RiAddLine","RiCameraLine","RiEmotionLine","RiForbidLine","RiMic2Line","RiSendPlaneLine","useControllableState","useTextareaAutosize","useTheme","Text","TYPE_SCALE","BAR_PADDING","BAR_RADIUS","chatComposerLabels","CONTROL_SIZE","DEFAULT_MAX_LINES","LINE_HEIGHT","SWAP_MS","resolveChatComposerPalette","dataHook","IS_WEB","useChatComposerWebCss","useMessages","CHAT_COMPOSER_MESSAGES","useCommonMessages","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","createChatComposer","ComposerAttachmentStrip","ComposerIconButton","SuggestionList","EASE_OUT","bezier","SwapLayer","shown","children","reducedMotion","progress","useEffect","value","duration","easing","animated","opacity","pointerEvents","accessibilityElementsHidden","importantForAccessibility","style","position","top","left","ChatComposer","defaultValue","onValueChange","placeholder","placeholderProp","onSend","sendOn","maxLines","minLines","disabled","notice","noticeIcon","banner","attachments","onRemoveAttachment","leading","onAttachPress","emojiSlot","onEmojiPress","onCameraPress","onMicPress","onMicPressIn","onMicPressOut","canSend","recorder","suggestions","suggestionKind","activeIndex","onActiveIndexChange","onSelectSuggestion","onEscape","onEditLast","showKeyboardHint","inputRef","onFocus","onBlur","labels","labelOverrides","testID","accessibilityLabel","theme","messages","common","palette","send","message","text","setText","onChange","localRef","setFieldRef","node","current","minHeight","Math","max","maxHeight","contentHeight","setContentHeight","height","min","enabled","onMeasure","onContentSizeChange","event","nativeEvent","contentSize","trimmed","trim","hasAttachments","length","showSend","submit","undefined","openSuggestions","onKeyPress","native","isComposing","mod","metaKey","ctrlKey","key","preventDefault","count","step","from","picked","shiftKey","bar","flexDirection","alignItems","gap","borderRadius","borderWidth","borderColor","border","backgroundColor","inset","surface","paddingLeft","paddingRight","paddingTop","paddingBottom","focusRing","NoticeIcon","width","kind","onRemove","justifyContent","flexGrow","fill","iconSecondary","variant","numberOfLines","color","textSecondary","textAlign","icon","attach","onPress","iconSize","flexShrink","ref","input","multiline","editable","onChangeText","placeholderTextColor","textPlaceholder","selectionColor","accent","cursorColor","scrollEnabled","padding","margin","fontFamily","camera","emoji","marginLeft","tone","mic","onPressIn","onPressOut","enterHint","modEnterHint"],"sourceRoot":"../../../src","sources":["chat-composer/create-chat-composer.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,206 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * The pending-attachment strip between the banner stack and the bar.
5
+ *
6
+ * The tile geometry and the rounded-rect progress path are `composer-panel`'s —
7
+ * imported rather than retyped, because a second ring drawn from a second path
8
+ * helper is how two composers end up with rings that close at different angles.
9
+ */
10
+ import React from 'react';
11
+ import { Image, Pressable, ScrollView, View } from 'react-native';
12
+ import Svg, { Path } from 'react-native-svg';
13
+ import { ringPath } from "../composer-panel/shared.js";
14
+ import { RiCloseLine } from "../icons/remix/RiCloseLine.js";
15
+ import { RiFileTextLine } from "../icons/remix/RiFileTextLine.js";
16
+ import { useImageResolver } from "../image-resolver/context.js";
17
+ import { useTheme } from "../theme/use-theme.js";
18
+ import { Text } from "../typography/index.js";
19
+ import { TILE, TILE_RADIUS, resolveChatComposerPalette } from "./shared.js";
20
+ import { dataHook } from "./web-hooks.js";
21
+ import { useMessages } from "../locale/messages.js";
22
+ import { CHAT_COMPOSER_MESSAGES } from "./messages.js";
23
+
24
+ /** Platform dependencies are bound once; shared rendering adds no wrapper. */
25
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
26
+ export function createComposerAttachmentStrip({
27
+ ComposerIconButton
28
+ }) {
29
+ function isUrl(value) {
30
+ return /^(https?:)?\/\//.test(value) || value.startsWith('data:') || value.startsWith('file:');
31
+ }
32
+ function Tile({
33
+ attachment,
34
+ size,
35
+ onRemove,
36
+ removeLabel,
37
+ onOpen,
38
+ openLabel,
39
+ testID
40
+ }) {
41
+ const theme = useTheme();
42
+ const palette = resolveChatComposerPalette(theme);
43
+ const resolveImage = useImageResolver();
44
+ const Glyph = attachment.icon ?? RiFileTextLine;
45
+ const uploading = attachment.progress !== undefined;
46
+ const progress = Math.min(100, Math.max(0, attachment.progress ?? 0));
47
+ const radius = TILE_RADIUS - 1;
48
+ const path = ringPath(size, size, 1, radius);
49
+ // No `pathLength` on native, so the dash arithmetic needs the real length:
50
+ // four straight runs plus one full circle of the corner radius.
51
+ const length = 4 * (size - 2 - 2 * radius) + 2 * Math.PI * radius;
52
+ const uri = attachment.source === undefined ? undefined : isUrl(attachment.source) ? attachment.source : resolveImage?.(attachment.source, 'thumb');
53
+
54
+ // The box is a button only where the caller gave it something to do. A tile
55
+ // that is `role="button"` with no handler announces an action that is not
56
+ // there, and one that opens on press without a role is unreachable.
57
+ const Box = onOpen === undefined ? View : Pressable;
58
+ const boxProps = onOpen === undefined ? {} : {
59
+ role: 'button',
60
+ accessibilityLabel: (openLabel ?? (a => a.name))(attachment),
61
+ onPress: () => onOpen(attachment.id)
62
+ };
63
+ return /*#__PURE__*/_jsxs(View, {
64
+ style: {
65
+ width: size,
66
+ gap: 4
67
+ },
68
+ testID: testID,
69
+ children: [/*#__PURE__*/_jsxs(View, {
70
+ style: {
71
+ position: 'relative',
72
+ width: size,
73
+ height: size
74
+ },
75
+ children: [/*#__PURE__*/_jsx(Box, {
76
+ ...boxProps,
77
+ style: {
78
+ width: size,
79
+ height: size,
80
+ borderRadius: TILE_RADIUS,
81
+ borderWidth: 1,
82
+ borderColor: palette.border,
83
+ backgroundColor: palette.inset,
84
+ alignItems: 'center',
85
+ justifyContent: 'center',
86
+ overflow: 'hidden'
87
+ },
88
+ children: uri ? /*#__PURE__*/_jsx(Image, {
89
+ source: {
90
+ uri
91
+ },
92
+ accessibilityIgnoresInvertColors: true,
93
+ style: {
94
+ width: size,
95
+ height: size,
96
+ opacity: uploading ? 0.6 : 1
97
+ }
98
+ }) : /*#__PURE__*/_jsx(Glyph, {
99
+ width: 22,
100
+ height: 22,
101
+ fill: palette.iconSecondary
102
+ })
103
+ }), uploading ? /*#__PURE__*/_jsx(View, {
104
+ ...dataHook('bloomChatComposerRing'),
105
+ pointerEvents: "none",
106
+ style: {
107
+ position: 'absolute',
108
+ top: 0,
109
+ left: 0,
110
+ width: size,
111
+ height: size
112
+ },
113
+ testID: testID ? `${testID}-ring` : undefined,
114
+ children: /*#__PURE__*/_jsx(Svg, {
115
+ width: size,
116
+ height: size,
117
+ children: /*#__PURE__*/_jsx(Path, {
118
+ d: path,
119
+ fill: "none",
120
+ stroke: palette.accent,
121
+ strokeWidth: 2,
122
+ strokeLinecap: "round",
123
+ strokeDasharray: `${length * progress / 100} ${length}`
124
+ })
125
+ })
126
+ }) : null]
127
+ }), onRemove && !uploading ? /*#__PURE__*/_jsx(View, {
128
+ style: {
129
+ position: 'absolute',
130
+ top: -6,
131
+ right: -6
132
+ },
133
+ children: /*#__PURE__*/_jsx(ComposerIconButton, {
134
+ icon: RiCloseLine,
135
+ accessibilityLabel: removeLabel(attachment),
136
+ onPress: () => onRemove(attachment.id),
137
+ size: 20,
138
+ iconSize: 12,
139
+ style: {
140
+ backgroundColor: palette.surface,
141
+ borderWidth: 1,
142
+ borderColor: palette.border
143
+ },
144
+ testID: testID ? `${testID}-remove` : undefined
145
+ })
146
+ }) : null, /*#__PURE__*/_jsx(Text, {
147
+ variant: "caption-2-regular",
148
+ numberOfLines: 1,
149
+ style: {
150
+ color: uploading ? palette.accent : palette.textSecondary
151
+ },
152
+ children: uploading ? `${Math.round(progress)}%` : attachment.caption ?? attachment.name
153
+ })]
154
+ });
155
+ }
156
+ function ComposerAttachmentStrip({
157
+ attachments,
158
+ onRemove,
159
+ onOpen,
160
+ size = TILE,
161
+ removeLabel: removeLabelProp,
162
+ openLabel,
163
+ style,
164
+ testID,
165
+ accessibilityLabel: accessibilityLabelProp
166
+ }) {
167
+ const {
168
+ messages
169
+ } = useMessages(CHAT_COMPOSER_MESSAGES);
170
+ const removeLabel = removeLabelProp ?? (attachment => messages.removeAttachment(attachment.name));
171
+ const accessibilityLabel = accessibilityLabelProp ?? messages.attachments;
172
+ if (attachments.length === 0) return null;
173
+ return /*#__PURE__*/_jsx(ScrollView, {
174
+ ...dataHook('bloomChatComposerScroll'),
175
+ horizontal: true,
176
+ showsHorizontalScrollIndicator: false,
177
+ accessibilityLabel: accessibilityLabel,
178
+ contentContainerStyle: {
179
+ flexDirection: 'row',
180
+ gap: 10,
181
+ // The remove disc hangs 6px past the tile on both axes and a horizontal
182
+ // ScrollView clips its cross axis (`overflow-y: hidden` on web), so the
183
+ // top pad is the disc's overhang plus its border — not a rhythm value.
184
+ paddingLeft: 8,
185
+ paddingRight: 8,
186
+ paddingTop: 10,
187
+ paddingBottom: 2
188
+ },
189
+ style: [{
190
+ flexGrow: 0
191
+ }, style],
192
+ testID: testID,
193
+ children: attachments.map(attachment => /*#__PURE__*/_jsx(Tile, {
194
+ attachment: attachment,
195
+ size: size,
196
+ onRemove: onRemove,
197
+ removeLabel: removeLabel,
198
+ onOpen: onOpen,
199
+ openLabel: openLabel,
200
+ testID: testID ? `${testID}-${attachment.id}` : undefined
201
+ }, attachment.id))
202
+ });
203
+ }
204
+ return ComposerAttachmentStrip;
205
+ }
206
+ //# sourceMappingURL=create-composer-attachment-strip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Image","Pressable","ScrollView","View","Svg","Path","ringPath","RiCloseLine","RiFileTextLine","useImageResolver","useTheme","Text","TILE","TILE_RADIUS","resolveChatComposerPalette","dataHook","useMessages","CHAT_COMPOSER_MESSAGES","jsx","_jsx","jsxs","_jsxs","createComposerAttachmentStrip","ComposerIconButton","isUrl","value","test","startsWith","Tile","attachment","size","onRemove","removeLabel","onOpen","openLabel","testID","theme","palette","resolveImage","Glyph","icon","uploading","progress","undefined","Math","min","max","radius","path","length","PI","uri","source","Box","boxProps","role","accessibilityLabel","a","name","onPress","id","style","width","gap","children","position","height","borderRadius","borderWidth","borderColor","border","backgroundColor","inset","alignItems","justifyContent","overflow","accessibilityIgnoresInvertColors","opacity","fill","iconSecondary","pointerEvents","top","left","d","stroke","accent","strokeWidth","strokeLinecap","strokeDasharray","right","iconSize","surface","variant","numberOfLines","color","textSecondary","round","caption","ComposerAttachmentStrip","attachments","removeLabelProp","accessibilityLabelProp","messages","removeAttachment","horizontal","showsHorizontalScrollIndicator","contentContainerStyle","flexDirection","paddingLeft","paddingRight","paddingTop","paddingBottom","flexGrow","map"],"sourceRoot":"../../../src","sources":["chat-composer/create-composer-attachment-strip.tsx"],"mappings":"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","ignoreList":[]}