@planningcenter/chat-react-native 3.42.2-qa-821.1 → 3.42.2-qa-staging.4

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 (680) hide show
  1. package/build/components/conversation/attachments/attachment_card.d.ts +3 -3
  2. package/build/components/conversation/attachments/attachment_card.d.ts.map +1 -1
  3. package/build/components/conversation/attachments/attachment_card.js +7 -3
  4. package/build/components/conversation/attachments/attachment_card.js.map +1 -1
  5. package/build/components/conversation/attachments/attachment_deleting_overlay.d.ts +2 -1
  6. package/build/components/conversation/attachments/attachment_deleting_overlay.d.ts.map +1 -1
  7. package/build/components/conversation/attachments/attachment_deleting_overlay.js +7 -12
  8. package/build/components/conversation/attachments/attachment_deleting_overlay.js.map +1 -1
  9. package/build/components/conversation/attachments/audio_attachment.d.ts +2 -1
  10. package/build/components/conversation/attachments/audio_attachment.d.ts.map +1 -1
  11. package/build/components/conversation/attachments/audio_attachment.js +23 -6
  12. package/build/components/conversation/attachments/audio_attachment.js.map +1 -1
  13. package/build/components/conversation/attachments/expanded_link.d.ts +2 -1
  14. package/build/components/conversation/attachments/expanded_link.d.ts.map +1 -1
  15. package/build/components/conversation/attachments/expanded_link.js +8 -2
  16. package/build/components/conversation/attachments/expanded_link.js.map +1 -1
  17. package/build/components/conversation/attachments/generic_file_attachment.d.ts +2 -1
  18. package/build/components/conversation/attachments/generic_file_attachment.d.ts.map +1 -1
  19. package/build/components/conversation/attachments/generic_file_attachment.js +12 -2
  20. package/build/components/conversation/attachments/generic_file_attachment.js.map +1 -1
  21. package/build/components/conversation/attachments/giphy_attachment.d.ts +2 -1
  22. package/build/components/conversation/attachments/giphy_attachment.d.ts.map +1 -1
  23. package/build/components/conversation/attachments/giphy_attachment.js +7 -2
  24. package/build/components/conversation/attachments/giphy_attachment.js.map +1 -1
  25. package/build/components/conversation/attachments/image_attachment.d.ts +2 -1
  26. package/build/components/conversation/attachments/image_attachment.d.ts.map +1 -1
  27. package/build/components/conversation/attachments/image_attachment.js +53 -16
  28. package/build/components/conversation/attachments/image_attachment.js.map +1 -1
  29. package/build/components/conversation/attachments/video_attachment.d.ts +2 -1
  30. package/build/components/conversation/attachments/video_attachment.d.ts.map +1 -1
  31. package/build/components/conversation/attachments/video_attachment.js +13 -3
  32. package/build/components/conversation/attachments/video_attachment.js.map +1 -1
  33. package/build/components/conversation/conversation_start_banner.d.ts +2 -1
  34. package/build/components/conversation/conversation_start_banner.d.ts.map +1 -1
  35. package/build/components/conversation/conversation_start_banner.js +14 -2
  36. package/build/components/conversation/conversation_start_banner.js.map +1 -1
  37. package/build/components/conversation/empty_conversation_blank_state.d.ts +1 -1
  38. package/build/components/conversation/empty_conversation_blank_state.d.ts.map +1 -1
  39. package/build/components/conversation/empty_conversation_blank_state.js +9 -2
  40. package/build/components/conversation/empty_conversation_blank_state.js.map +1 -1
  41. package/build/components/conversation/jump_to_bottom_button.d.ts +1 -1
  42. package/build/components/conversation/jump_to_bottom_button.d.ts.map +1 -1
  43. package/build/components/conversation/jump_to_bottom_button.js +10 -2
  44. package/build/components/conversation/jump_to_bottom_button.js.map +1 -1
  45. package/build/components/conversation/message.d.ts +2 -1
  46. package/build/components/conversation/message.d.ts.map +1 -1
  47. package/build/components/conversation/message.js +53 -2
  48. package/build/components/conversation/message.js.map +1 -1
  49. package/build/components/conversation/message_attachments.d.ts +2 -1
  50. package/build/components/conversation/message_attachments.d.ts.map +1 -1
  51. package/build/components/conversation/message_attachments.js +21 -17
  52. package/build/components/conversation/message_attachments.js.map +1 -1
  53. package/build/components/conversation/message_form/message_form_attachment_file.d.ts +2 -1
  54. package/build/components/conversation/message_form/message_form_attachment_file.d.ts.map +1 -1
  55. package/build/components/conversation/message_form/message_form_attachment_file.js +2 -2
  56. package/build/components/conversation/message_form/message_form_attachment_file.js.map +1 -1
  57. package/build/components/conversation/message_form/message_form_attachment_image.d.ts +2 -1
  58. package/build/components/conversation/message_form/message_form_attachment_image.d.ts.map +1 -1
  59. package/build/components/conversation/message_form/message_form_attachment_image.js +2 -2
  60. package/build/components/conversation/message_form/message_form_attachment_image.js.map +1 -1
  61. package/build/components/conversation/message_form/message_form_attachment_video.d.ts +2 -1
  62. package/build/components/conversation/message_form/message_form_attachment_video.d.ts.map +1 -1
  63. package/build/components/conversation/message_form/message_form_attachment_video.js +2 -2
  64. package/build/components/conversation/message_form/message_form_attachment_video.js.map +1 -1
  65. package/build/components/conversation/message_form.d.ts +6 -5
  66. package/build/components/conversation/message_form.d.ts.map +1 -1
  67. package/build/components/conversation/message_form.js +82 -20
  68. package/build/components/conversation/message_form.js.map +1 -1
  69. package/build/components/conversation/message_markdown.d.ts +2 -1
  70. package/build/components/conversation/message_markdown.d.ts.map +1 -1
  71. package/build/components/conversation/message_markdown.js +16 -8
  72. package/build/components/conversation/message_markdown.js.map +1 -1
  73. package/build/components/conversation/message_reaction.d.ts +2 -1
  74. package/build/components/conversation/message_reaction.d.ts.map +1 -1
  75. package/build/components/conversation/message_reaction.js +5 -3
  76. package/build/components/conversation/message_reaction.js.map +1 -1
  77. package/build/components/conversation/message_read_receipts.d.ts +2 -1
  78. package/build/components/conversation/message_read_receipts.d.ts.map +1 -1
  79. package/build/components/conversation/message_read_receipts.js +13 -3
  80. package/build/components/conversation/message_read_receipts.js.map +1 -1
  81. package/build/components/conversation/messages_disabled_banners.d.ts +7 -3
  82. package/build/components/conversation/messages_disabled_banners.d.ts.map +1 -1
  83. package/build/components/conversation/messages_disabled_banners.js +15 -8
  84. package/build/components/conversation/messages_disabled_banners.js.map +1 -1
  85. package/build/components/conversation/reply_connectors.d.ts +2 -2
  86. package/build/components/conversation/reply_connectors.d.ts.map +1 -1
  87. package/build/components/conversation/reply_connectors.js +50 -18
  88. package/build/components/conversation/reply_connectors.js.map +1 -1
  89. package/build/components/conversation/reply_shadow_message.d.ts +2 -1
  90. package/build/components/conversation/reply_shadow_message.d.ts.map +1 -1
  91. package/build/components/conversation/reply_shadow_message.js +46 -16
  92. package/build/components/conversation/reply_shadow_message.js.map +1 -1
  93. package/build/components/conversation/system_message.d.ts +2 -1
  94. package/build/components/conversation/system_message.d.ts.map +1 -1
  95. package/build/components/conversation/system_message.js +12 -3
  96. package/build/components/conversation/system_message.js.map +1 -1
  97. package/build/components/conversation/typing_indicator.d.ts +2 -1
  98. package/build/components/conversation/typing_indicator.d.ts.map +1 -1
  99. package/build/components/conversation/typing_indicator.js +13 -3
  100. package/build/components/conversation/typing_indicator.js.map +1 -1
  101. package/build/components/conversations/conversation_actions.d.ts +2 -2
  102. package/build/components/conversations/conversation_actions.d.ts.map +1 -1
  103. package/build/components/conversations/conversation_actions.js +10 -4
  104. package/build/components/conversations/conversation_actions.js.map +1 -1
  105. package/build/components/conversations/conversation_preview.d.ts +3 -2
  106. package/build/components/conversations/conversation_preview.d.ts.map +1 -1
  107. package/build/components/conversations/conversation_preview.js +76 -12
  108. package/build/components/conversations/conversation_preview.js.map +1 -1
  109. package/build/components/conversations/conversations.d.ts +1 -1
  110. package/build/components/conversations/conversations.d.ts.map +1 -1
  111. package/build/components/conversations/conversations.js +17 -16
  112. package/build/components/conversations/conversations.js.map +1 -1
  113. package/build/components/conversations/conversations_blank_state.d.ts +2 -1
  114. package/build/components/conversations/conversations_blank_state.d.ts.map +1 -1
  115. package/build/components/conversations/conversations_blank_state.js +12 -2
  116. package/build/components/conversations/conversations_blank_state.js.map +1 -1
  117. package/build/components/conversations/mute_indicator.d.ts +2 -1
  118. package/build/components/conversations/mute_indicator.d.ts.map +1 -1
  119. package/build/components/conversations/mute_indicator.js +2 -2
  120. package/build/components/conversations/mute_indicator.js.map +1 -1
  121. package/build/components/conversations/swipeable_toggle_button.d.ts +2 -1
  122. package/build/components/conversations/swipeable_toggle_button.d.ts.map +1 -1
  123. package/build/components/conversations/swipeable_toggle_button.js +10 -3
  124. package/build/components/conversations/swipeable_toggle_button.js.map +1 -1
  125. package/build/components/conversations/unread_count_badge.d.ts +4 -2
  126. package/build/components/conversations/unread_count_badge.d.ts.map +1 -1
  127. package/build/components/conversations/unread_count_badge.js +12 -7
  128. package/build/components/conversations/unread_count_badge.js.map +1 -1
  129. package/build/components/display/action_button.d.ts +1 -1
  130. package/build/components/display/action_button.d.ts.map +1 -1
  131. package/build/components/display/action_button.js +13 -3
  132. package/build/components/display/action_button.js.map +1 -1
  133. package/build/components/display/adult_requirement_notice.d.ts +2 -1
  134. package/build/components/display/adult_requirement_notice.d.ts.map +1 -1
  135. package/build/components/display/adult_requirement_notice.js +4 -2
  136. package/build/components/display/adult_requirement_notice.js.map +1 -1
  137. package/build/components/display/avatar.d.ts +2 -1
  138. package/build/components/display/avatar.d.ts.map +1 -1
  139. package/build/components/display/avatar.js +7 -2
  140. package/build/components/display/avatar.js.map +1 -1
  141. package/build/components/display/avatar_group.d.ts +2 -1
  142. package/build/components/display/avatar_group.d.ts.map +1 -1
  143. package/build/components/display/avatar_group.js +9 -2
  144. package/build/components/display/avatar_group.js.map +1 -1
  145. package/build/components/display/badge.d.ts +2 -1
  146. package/build/components/display/badge.d.ts.map +1 -1
  147. package/build/components/display/badge.js +37 -6
  148. package/build/components/display/badge.js.map +1 -1
  149. package/build/components/display/banner.d.ts +3 -3
  150. package/build/components/display/banner.d.ts.map +1 -1
  151. package/build/components/display/banner.js +11 -4
  152. package/build/components/display/banner.js.map +1 -1
  153. package/build/components/display/banner_collapsible.d.ts +2 -2
  154. package/build/components/display/banner_collapsible.d.ts.map +1 -1
  155. package/build/components/display/banner_collapsible.js +10 -2
  156. package/build/components/display/banner_collapsible.js.map +1 -1
  157. package/build/components/display/button.d.ts +2 -1
  158. package/build/components/display/button.d.ts.map +1 -1
  159. package/build/components/display/button.js +14 -3
  160. package/build/components/display/button.js.map +1 -1
  161. package/build/components/display/child_notice.d.ts +2 -1
  162. package/build/components/display/child_notice.d.ts.map +1 -1
  163. package/build/components/display/child_notice.js +15 -3
  164. package/build/components/display/child_notice.js.map +1 -1
  165. package/build/components/display/conversation_avatar.d.ts +2 -1
  166. package/build/components/display/conversation_avatar.d.ts.map +1 -1
  167. package/build/components/display/conversation_avatar.js +9 -5
  168. package/build/components/display/conversation_avatar.js.map +1 -1
  169. package/build/components/display/emoji_avatar.d.ts +2 -1
  170. package/build/components/display/emoji_avatar.d.ts.map +1 -1
  171. package/build/components/display/emoji_avatar.js +12 -2
  172. package/build/components/display/emoji_avatar.js.map +1 -1
  173. package/build/components/display/file_attachment_preview.d.ts +1 -1
  174. package/build/components/display/file_attachment_preview.d.ts.map +1 -1
  175. package/build/components/display/file_attachment_preview.js +17 -3
  176. package/build/components/display/file_attachment_preview.js.map +1 -1
  177. package/build/components/display/heading.d.ts +2 -1
  178. package/build/components/display/heading.d.ts.map +1 -1
  179. package/build/components/display/heading.js +4 -2
  180. package/build/components/display/heading.js.map +1 -1
  181. package/build/components/display/icon.d.ts +2 -1
  182. package/build/components/display/icon.d.ts.map +1 -1
  183. package/build/components/display/icon.js +4 -4
  184. package/build/components/display/icon.js.map +1 -1
  185. package/build/components/display/icon_avatar.d.ts +2 -1
  186. package/build/components/display/icon_avatar.d.ts.map +1 -1
  187. package/build/components/display/icon_avatar.js +12 -2
  188. package/build/components/display/icon_avatar.js.map +1 -1
  189. package/build/components/display/icon_button.d.ts +2 -1
  190. package/build/components/display/icon_button.d.ts.map +1 -1
  191. package/build/components/display/icon_button.js +5 -3
  192. package/build/components/display/icon_button.js.map +1 -1
  193. package/build/components/display/image.d.ts +2 -1
  194. package/build/components/display/image.d.ts.map +1 -1
  195. package/build/components/display/image.js +7 -3
  196. package/build/components/display/image.js.map +1 -1
  197. package/build/components/display/image_attachment_preview.d.ts +1 -1
  198. package/build/components/display/image_attachment_preview.d.ts.map +1 -1
  199. package/build/components/display/image_attachment_preview.js +7 -2
  200. package/build/components/display/image_attachment_preview.js.map +1 -1
  201. package/build/components/display/keyboard_view.d.ts +2 -1
  202. package/build/components/display/keyboard_view.d.ts.map +1 -1
  203. package/build/components/display/keyboard_view.js +9 -4
  204. package/build/components/display/keyboard_view.js.map +1 -1
  205. package/build/components/display/person.d.ts +2 -1
  206. package/build/components/display/person.d.ts.map +1 -1
  207. package/build/components/display/person.js +12 -2
  208. package/build/components/display/person.js.map +1 -1
  209. package/build/components/display/platform_modal_header_buttons.d.ts +3 -3
  210. package/build/components/display/platform_modal_header_buttons.d.ts.map +1 -1
  211. package/build/components/display/platform_modal_header_buttons.js +10 -5
  212. package/build/components/display/platform_modal_header_buttons.js.map +1 -1
  213. package/build/components/display/pressable_row.d.ts +1 -1
  214. package/build/components/display/pressable_row.d.ts.map +1 -1
  215. package/build/components/display/pressable_row.js +7 -2
  216. package/build/components/display/pressable_row.js.map +1 -1
  217. package/build/components/display/spinner.d.ts +2 -1
  218. package/build/components/display/spinner.d.ts.map +1 -1
  219. package/build/components/display/spinner.js +9 -3
  220. package/build/components/display/spinner.js.map +1 -1
  221. package/build/components/display/switch.d.ts +2 -1
  222. package/build/components/display/switch.d.ts.map +1 -1
  223. package/build/components/display/switch.js +2 -2
  224. package/build/components/display/switch.js.map +1 -1
  225. package/build/components/display/tabs.d.ts +1 -1
  226. package/build/components/display/tabs.d.ts.map +1 -1
  227. package/build/components/display/tabs.js +31 -21
  228. package/build/components/display/tabs.js.map +1 -1
  229. package/build/components/display/text.d.ts +2 -1
  230. package/build/components/display/text.d.ts.map +1 -1
  231. package/build/components/display/text.js +4 -2
  232. package/build/components/display/text.js.map +1 -1
  233. package/build/components/display/text_button.d.ts +2 -1
  234. package/build/components/display/text_button.d.ts.map +1 -1
  235. package/build/components/display/text_button.js +8 -3
  236. package/build/components/display/text_button.js.map +1 -1
  237. package/build/components/display/text_inline_button.d.ts +2 -1
  238. package/build/components/display/text_inline_button.d.ts.map +1 -1
  239. package/build/components/display/text_inline_button.js +5 -4
  240. package/build/components/display/text_inline_button.js.map +1 -1
  241. package/build/components/display/text_input.d.ts +1 -1
  242. package/build/components/display/text_input.d.ts.map +1 -1
  243. package/build/components/display/text_input.js +1 -2
  244. package/build/components/display/text_input.js.map +1 -1
  245. package/build/components/display/toggle_button.d.ts +2 -1
  246. package/build/components/display/toggle_button.d.ts.map +1 -1
  247. package/build/components/display/toggle_button.js +9 -3
  248. package/build/components/display/toggle_button.js.map +1 -1
  249. package/build/components/display/video_attachment_preview.d.ts +1 -1
  250. package/build/components/display/video_attachment_preview.d.ts.map +1 -1
  251. package/build/components/display/video_attachment_preview.js +20 -3
  252. package/build/components/display/video_attachment_preview.js.map +1 -1
  253. package/build/components/group_conversation_list.d.ts +1 -1
  254. package/build/components/group_conversation_list.d.ts.map +1 -1
  255. package/build/components/group_conversation_list.js +14 -4
  256. package/build/components/group_conversation_list.js.map +1 -1
  257. package/build/components/page/component_error_boundary.d.ts +2 -2
  258. package/build/components/page/component_error_boundary.d.ts.map +1 -1
  259. package/build/components/page/component_error_boundary.js +4 -2
  260. package/build/components/page/component_error_boundary.js.map +1 -1
  261. package/build/components/page/loading.d.ts +2 -1
  262. package/build/components/page/loading.d.ts.map +1 -1
  263. package/build/components/page/loading.js +4 -2
  264. package/build/components/page/loading.js.map +1 -1
  265. package/build/components/page/page_error_boundary.d.ts +2 -2
  266. package/build/components/page/page_error_boundary.d.ts.map +1 -1
  267. package/build/components/page/page_error_boundary.js +32 -11
  268. package/build/components/page/page_error_boundary.js.map +1 -1
  269. package/build/components/primitive/avatar_primitive.js +41 -14
  270. package/build/components/primitive/avatar_primitive.js.map +1 -1
  271. package/build/components/primitive/banner_primitive.js +18 -10
  272. package/build/components/primitive/banner_primitive.js.map +1 -1
  273. package/build/components/primitive/blank_state_primitive.js +12 -8
  274. package/build/components/primitive/blank_state_primitive.js.map +1 -1
  275. package/build/components/primitive/form_sheet.d.ts +1 -1
  276. package/build/components/primitive/form_sheet.d.ts.map +1 -1
  277. package/build/components/primitive/form_sheet.js +22 -9
  278. package/build/components/primitive/form_sheet.js.map +1 -1
  279. package/build/components/safe_area_modal.d.ts +1 -1
  280. package/build/components/safe_area_modal.d.ts.map +1 -1
  281. package/build/components/safe_area_modal.js +3 -2
  282. package/build/components/safe_area_modal.js.map +1 -1
  283. package/build/contexts/api_provider.d.ts +2 -1
  284. package/build/contexts/api_provider.d.ts.map +1 -1
  285. package/build/contexts/api_provider.js +5 -3
  286. package/build/contexts/api_provider.js.map +1 -1
  287. package/build/contexts/chat_context.d.ts +1 -1
  288. package/build/contexts/chat_context.d.ts.map +1 -1
  289. package/build/contexts/chat_context.js +1 -2
  290. package/build/contexts/chat_context.js.map +1 -1
  291. package/build/contexts/conversation_context.d.ts +2 -2
  292. package/build/contexts/conversation_context.d.ts.map +1 -1
  293. package/build/contexts/conversation_context.js +2 -3
  294. package/build/contexts/conversation_context.js.map +1 -1
  295. package/build/contexts/conversations_context.d.ts +2 -2
  296. package/build/contexts/conversations_context.d.ts.map +1 -1
  297. package/build/contexts/conversations_context.js +2 -3
  298. package/build/contexts/conversations_context.js.map +1 -1
  299. package/build/contexts/session_context.d.ts +1 -1
  300. package/build/contexts/session_context.d.ts.map +1 -1
  301. package/build/contexts/session_context.js +2 -3
  302. package/build/contexts/session_context.js.map +1 -1
  303. package/build/hooks/direct_messages/find_direct_message_conversation.d.ts +14 -0
  304. package/build/hooks/direct_messages/find_direct_message_conversation.d.ts.map +1 -0
  305. package/build/hooks/direct_messages/find_direct_message_conversation.js +10 -0
  306. package/build/hooks/direct_messages/find_direct_message_conversation.js.map +1 -0
  307. package/build/hooks/direct_messages/resolve_message_available_members_link.d.ts +16 -0
  308. package/build/hooks/direct_messages/resolve_message_available_members_link.d.ts.map +1 -0
  309. package/build/hooks/direct_messages/resolve_message_available_members_link.js +24 -0
  310. package/build/hooks/direct_messages/resolve_message_available_members_link.js.map +1 -0
  311. package/build/hooks/direct_messages/use_find_or_create_direct_message_conversation.d.ts.map +1 -1
  312. package/build/hooks/direct_messages/use_find_or_create_direct_message_conversation.js +1 -8
  313. package/build/hooks/direct_messages/use_find_or_create_direct_message_conversation.js.map +1 -1
  314. package/build/hooks/direct_messages/use_message_available_members.d.ts +6 -0
  315. package/build/hooks/direct_messages/use_message_available_members.d.ts.map +1 -0
  316. package/build/hooks/direct_messages/use_message_available_members.js +40 -0
  317. package/build/hooks/direct_messages/use_message_available_members.js.map +1 -0
  318. package/build/hooks/direct_messages/use_message_available_members_action.d.ts +6 -0
  319. package/build/hooks/direct_messages/use_message_available_members_action.d.ts.map +1 -0
  320. package/build/hooks/direct_messages/use_message_available_members_action.js +30 -0
  321. package/build/hooks/direct_messages/use_message_available_members_action.js.map +1 -0
  322. package/build/hooks/use_animated_message_background_color.d.ts +2 -2
  323. package/build/hooks/use_conversation.d.ts +1 -1
  324. package/build/hooks/use_conversation.d.ts.map +1 -1
  325. package/build/hooks/use_conversation.js +3 -0
  326. package/build/hooks/use_conversation.js.map +1 -1
  327. package/build/hooks/use_conversation_jolt_events.d.ts.map +1 -1
  328. package/build/hooks/use_conversation_jolt_events.js +4 -19
  329. package/build/hooks/use_conversation_jolt_events.js.map +1 -1
  330. package/build/hooks/use_conversation_membership.d.ts +1 -1
  331. package/build/hooks/use_conversation_membership.d.ts.map +1 -1
  332. package/build/hooks/use_conversation_messages.d.ts +0 -1
  333. package/build/hooks/use_conversation_messages.d.ts.map +1 -1
  334. package/build/hooks/use_conversation_messages.js +2 -2
  335. package/build/hooks/use_conversation_messages.js.map +1 -1
  336. package/build/hooks/use_conversations_actions.d.ts +36 -36
  337. package/build/hooks/use_conversations_actions.d.ts.map +1 -1
  338. package/build/hooks/use_conversations_actions.js +3 -1
  339. package/build/hooks/use_conversations_actions.js.map +1 -1
  340. package/build/hooks/use_mark_latest_message_read.d.ts.map +1 -1
  341. package/build/hooks/use_mark_latest_message_read.js +3 -4
  342. package/build/hooks/use_mark_latest_message_read.js.map +1 -1
  343. package/build/hooks/use_person_settings.d.ts +1 -1
  344. package/build/index.d.ts +1 -2
  345. package/build/index.d.ts.map +1 -1
  346. package/build/index.js.map +1 -1
  347. package/build/navigation/chat_access_gate.d.ts +2 -2
  348. package/build/navigation/chat_access_gate.d.ts.map +1 -1
  349. package/build/navigation/chat_access_gate.js +5 -6
  350. package/build/navigation/chat_access_gate.js.map +1 -1
  351. package/build/navigation/index.d.ts +36 -35
  352. package/build/navigation/index.d.ts.map +1 -1
  353. package/build/navigation/index.js +21 -19
  354. package/build/navigation/index.js.map +1 -1
  355. package/build/navigation/screenLayout.d.ts +2 -2
  356. package/build/navigation/screenLayout.d.ts.map +1 -1
  357. package/build/navigation/screenLayout.js +9 -3
  358. package/build/navigation/screenLayout.js.map +1 -1
  359. package/build/polyfills/events/EventTarget.d.ts +1 -1
  360. package/build/polyfills/events/EventTarget.d.ts.map +1 -1
  361. package/build/polyfills/events/EventTarget.js.map +1 -1
  362. package/build/screens/age_check/age_check_required_screen.d.ts +2 -1
  363. package/build/screens/age_check/age_check_required_screen.d.ts.map +1 -1
  364. package/build/screens/age_check/age_check_required_screen.js +46 -3
  365. package/build/screens/age_check/age_check_required_screen.js.map +1 -1
  366. package/build/screens/age_check/age_check_underage_screen.d.ts +2 -1
  367. package/build/screens/age_check/age_check_underage_screen.d.ts.map +1 -1
  368. package/build/screens/age_check/age_check_underage_screen.js +25 -2
  369. package/build/screens/age_check/age_check_underage_screen.js.map +1 -1
  370. package/build/screens/age_check/components/age_check_select_birthdate_modal.d.ts +2 -1
  371. package/build/screens/age_check/components/age_check_select_birthdate_modal.d.ts.map +1 -1
  372. package/build/screens/age_check/components/age_check_select_birthdate_modal.js +25 -6
  373. package/build/screens/age_check/components/age_check_select_birthdate_modal.js.map +1 -1
  374. package/build/screens/attachment_actions/attachment_actions_screen.d.ts +2 -1
  375. package/build/screens/attachment_actions/attachment_actions_screen.d.ts.map +1 -1
  376. package/build/screens/attachment_actions/attachment_actions_screen.js +5 -3
  377. package/build/screens/attachment_actions/attachment_actions_screen.js.map +1 -1
  378. package/build/screens/avatar_picker/avatar_picker_screen.d.ts +2 -1
  379. package/build/screens/avatar_picker/avatar_picker_screen.d.ts.map +1 -1
  380. package/build/screens/avatar_picker/avatar_picker_screen.js +36 -9
  381. package/build/screens/avatar_picker/avatar_picker_screen.js.map +1 -1
  382. package/build/screens/avatar_picker/avatar_preview.d.ts +1 -1
  383. package/build/screens/avatar_picker/avatar_preview.d.ts.map +1 -1
  384. package/build/screens/avatar_picker/avatar_preview.js +9 -5
  385. package/build/screens/avatar_picker/avatar_preview.js.map +1 -1
  386. package/build/screens/avatar_picker/color_picker.d.ts +2 -1
  387. package/build/screens/avatar_picker/color_picker.d.ts.map +1 -1
  388. package/build/screens/avatar_picker/color_picker.js +5 -4
  389. package/build/screens/avatar_picker/color_picker.js.map +1 -1
  390. package/build/screens/avatar_picker/emoji_tab.d.ts +2 -1
  391. package/build/screens/avatar_picker/emoji_tab.d.ts.map +1 -1
  392. package/build/screens/avatar_picker/emoji_tab.js +13 -12
  393. package/build/screens/avatar_picker/emoji_tab.js.map +1 -1
  394. package/build/screens/avatar_picker/icon_grid.d.ts +2 -1
  395. package/build/screens/avatar_picker/icon_grid.d.ts.map +1 -1
  396. package/build/screens/avatar_picker/icon_grid.js +5 -4
  397. package/build/screens/avatar_picker/icon_grid.js.map +1 -1
  398. package/build/screens/avatar_picker/upload_tab.d.ts +2 -1
  399. package/build/screens/avatar_picker/upload_tab.d.ts.map +1 -1
  400. package/build/screens/avatar_picker/upload_tab.js +4 -3
  401. package/build/screens/avatar_picker/upload_tab.js.map +1 -1
  402. package/build/screens/bug_report_screen.d.ts +2 -1
  403. package/build/screens/bug_report_screen.d.ts.map +1 -1
  404. package/build/screens/bug_report_screen.js +117 -11
  405. package/build/screens/bug_report_screen.js.map +1 -1
  406. package/build/screens/conversation/message_read_receipts_screen.d.ts +2 -1
  407. package/build/screens/conversation/message_read_receipts_screen.d.ts.map +1 -1
  408. package/build/screens/conversation/message_read_receipts_screen.js +20 -4
  409. package/build/screens/conversation/message_read_receipts_screen.js.map +1 -1
  410. package/build/screens/conversation_details_screen.d.ts +2 -1
  411. package/build/screens/conversation_details_screen.d.ts.map +1 -1
  412. package/build/screens/conversation_details_screen.js +106 -43
  413. package/build/screens/conversation_details_screen.js.map +1 -1
  414. package/build/screens/conversation_filter_recipients/components/checkbox_row.d.ts +1 -1
  415. package/build/screens/conversation_filter_recipients/components/checkbox_row.d.ts.map +1 -1
  416. package/build/screens/conversation_filter_recipients/components/checkbox_row.js +9 -3
  417. package/build/screens/conversation_filter_recipients/components/checkbox_row.js.map +1 -1
  418. package/build/screens/conversation_filter_recipients/components/header_row.d.ts +1 -1
  419. package/build/screens/conversation_filter_recipients/components/header_row.d.ts.map +1 -1
  420. package/build/screens/conversation_filter_recipients/components/header_row.js +12 -2
  421. package/build/screens/conversation_filter_recipients/components/header_row.js.map +1 -1
  422. package/build/screens/conversation_filter_recipients/conversation_filter_recipients_screen.d.ts +2 -1
  423. package/build/screens/conversation_filter_recipients/conversation_filter_recipients_screen.d.ts.map +1 -1
  424. package/build/screens/conversation_filter_recipients/conversation_filter_recipients_screen.js +44 -20
  425. package/build/screens/conversation_filter_recipients/conversation_filter_recipients_screen.js.map +1 -1
  426. package/build/screens/conversation_filters/components/conversation_filters.d.ts +2 -1
  427. package/build/screens/conversation_filters/components/conversation_filters.d.ts.map +1 -1
  428. package/build/screens/conversation_filters/components/conversation_filters.js +11 -10
  429. package/build/screens/conversation_filters/components/conversation_filters.js.map +1 -1
  430. package/build/screens/conversation_filters/components/rows.d.ts +6 -6
  431. package/build/screens/conversation_filters/components/rows.d.ts.map +1 -1
  432. package/build/screens/conversation_filters/components/rows.js +34 -7
  433. package/build/screens/conversation_filters/components/rows.js.map +1 -1
  434. package/build/screens/conversation_filters/context/conversation_filter_context.d.ts +1 -1
  435. package/build/screens/conversation_filters/context/conversation_filter_context.d.ts.map +1 -1
  436. package/build/screens/conversation_filters/context/conversation_filter_context.js +1 -2
  437. package/build/screens/conversation_filters/context/conversation_filter_context.js.map +1 -1
  438. package/build/screens/conversation_filters/group_filters.d.ts +2 -1
  439. package/build/screens/conversation_filters/group_filters.d.ts.map +1 -1
  440. package/build/screens/conversation_filters/group_filters.js +2 -2
  441. package/build/screens/conversation_filters/group_filters.js.map +1 -1
  442. package/build/screens/conversation_filters/team_filters.d.ts +2 -1
  443. package/build/screens/conversation_filters/team_filters.d.ts.map +1 -1
  444. package/build/screens/conversation_filters/team_filters.js +2 -2
  445. package/build/screens/conversation_filters/team_filters.js.map +1 -1
  446. package/build/screens/conversation_filters_screen.d.ts +2 -1
  447. package/build/screens/conversation_filters_screen.d.ts.map +1 -1
  448. package/build/screens/conversation_filters_screen.js +16 -4
  449. package/build/screens/conversation_filters_screen.js.map +1 -1
  450. package/build/screens/conversation_new/components/avatar_selection_row.d.ts +3 -2
  451. package/build/screens/conversation_new/components/avatar_selection_row.d.ts.map +1 -1
  452. package/build/screens/conversation_new/components/avatar_selection_row.js +16 -6
  453. package/build/screens/conversation_new/components/avatar_selection_row.js.map +1 -1
  454. package/build/screens/conversation_new/components/filter_by_plan.d.ts +4 -3
  455. package/build/screens/conversation_new/components/filter_by_plan.d.ts.map +1 -1
  456. package/build/screens/conversation_new/components/filter_by_plan.js +46 -22
  457. package/build/screens/conversation_new/components/filter_by_plan.js.map +1 -1
  458. package/build/screens/conversation_new/components/form_list.d.ts +3 -2
  459. package/build/screens/conversation_new/components/form_list.d.ts.map +1 -1
  460. package/build/screens/conversation_new/components/form_list.js +6 -4
  461. package/build/screens/conversation_new/components/form_list.js.map +1 -1
  462. package/build/screens/conversation_new/components/gender_filter_toggle.d.ts +2 -1
  463. package/build/screens/conversation_new/components/gender_filter_toggle.d.ts.map +1 -1
  464. package/build/screens/conversation_new/components/gender_filter_toggle.js +20 -4
  465. package/build/screens/conversation_new/components/gender_filter_toggle.js.map +1 -1
  466. package/build/screens/conversation_new/components/groups_form.d.ts +2 -1
  467. package/build/screens/conversation_new/components/groups_form.d.ts.map +1 -1
  468. package/build/screens/conversation_new/components/groups_form.js +30 -4
  469. package/build/screens/conversation_new/components/groups_form.js.map +1 -1
  470. package/build/screens/conversation_new/components/services_form.d.ts +2 -1
  471. package/build/screens/conversation_new/components/services_form.d.ts.map +1 -1
  472. package/build/screens/conversation_new/components/services_form.js +61 -27
  473. package/build/screens/conversation_new/components/services_form.js.map +1 -1
  474. package/build/screens/conversation_new/components/source_app_error_card.d.ts +1 -1
  475. package/build/screens/conversation_new/components/source_app_error_card.d.ts.map +1 -1
  476. package/build/screens/conversation_new/components/source_app_error_card.js +3 -2
  477. package/build/screens/conversation_new/components/source_app_error_card.js.map +1 -1
  478. package/build/screens/conversation_new/conversation_new_screen.d.ts +2 -1
  479. package/build/screens/conversation_new/conversation_new_screen.d.ts.map +1 -1
  480. package/build/screens/conversation_new/conversation_new_screen.js +4 -4
  481. package/build/screens/conversation_new/conversation_new_screen.js.map +1 -1
  482. package/build/screens/conversation_notification_level_select_screen.d.ts +2 -1
  483. package/build/screens/conversation_notification_level_select_screen.d.ts.map +1 -1
  484. package/build/screens/conversation_notification_level_select_screen.js +6 -4
  485. package/build/screens/conversation_notification_level_select_screen.js.map +1 -1
  486. package/build/screens/conversation_screen.d.ts +3 -2
  487. package/build/screens/conversation_screen.d.ts.map +1 -1
  488. package/build/screens/conversation_screen.js +68 -25
  489. package/build/screens/conversation_screen.js.map +1 -1
  490. package/build/screens/conversation_select_recipients/components/groups_recipient_row.d.ts +1 -1
  491. package/build/screens/conversation_select_recipients/components/groups_recipient_row.d.ts.map +1 -1
  492. package/build/screens/conversation_select_recipients/components/groups_recipient_row.js +1 -2
  493. package/build/screens/conversation_select_recipients/components/groups_recipient_row.js.map +1 -1
  494. package/build/screens/conversation_select_recipients/components/recipient_link_row.d.ts +2 -1
  495. package/build/screens/conversation_select_recipients/components/recipient_link_row.d.ts.map +1 -1
  496. package/build/screens/conversation_select_recipients/components/recipient_link_row.js +15 -2
  497. package/build/screens/conversation_select_recipients/components/recipient_link_row.js.map +1 -1
  498. package/build/screens/conversation_select_recipients/components/restricted_group_row.d.ts +2 -1
  499. package/build/screens/conversation_select_recipients/components/restricted_group_row.d.ts.map +1 -1
  500. package/build/screens/conversation_select_recipients/components/restricted_group_row.js +14 -2
  501. package/build/screens/conversation_select_recipients/components/restricted_group_row.js.map +1 -1
  502. package/build/screens/conversation_select_recipients/components/team_recipient_row.d.ts +1 -1
  503. package/build/screens/conversation_select_recipients/components/team_recipient_row.d.ts.map +1 -1
  504. package/build/screens/conversation_select_recipients/components/team_recipient_row.js +1 -2
  505. package/build/screens/conversation_select_recipients/components/team_recipient_row.js.map +1 -1
  506. package/build/screens/conversation_select_recipients/components/view_more_link_row.d.ts +1 -1
  507. package/build/screens/conversation_select_recipients/components/view_more_link_row.d.ts.map +1 -1
  508. package/build/screens/conversation_select_recipients/components/view_more_link_row.js +5 -2
  509. package/build/screens/conversation_select_recipients/components/view_more_link_row.js.map +1 -1
  510. package/build/screens/conversation_select_recipients/conversation_new_entry_screen.d.ts +2 -1
  511. package/build/screens/conversation_select_recipients/conversation_new_entry_screen.d.ts.map +1 -1
  512. package/build/screens/conversation_select_recipients/conversation_new_entry_screen.js +11 -4
  513. package/build/screens/conversation_select_recipients/conversation_new_entry_screen.js.map +1 -1
  514. package/build/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.d.ts +1 -1
  515. package/build/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.d.ts.map +1 -1
  516. package/build/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.js +96 -13
  517. package/build/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.js.map +1 -1
  518. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.d.ts +2 -1
  519. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.d.ts.map +1 -1
  520. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.js +14 -7
  521. package/build/screens/conversation_select_recipients/conversation_select_group_recipients_screen.js.map +1 -1
  522. package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.d.ts +2 -1
  523. package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.d.ts.map +1 -1
  524. package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.js +18 -15
  525. package/build/screens/conversation_select_recipients/conversation_select_teams_i_lead_recipients_screen.js.map +1 -1
  526. package/build/screens/conversation_select_recipients/types/screen_props.d.ts +2 -0
  527. package/build/screens/conversation_select_recipients/types/screen_props.d.ts.map +1 -1
  528. package/build/screens/conversation_select_recipients/types/screen_props.js.map +1 -1
  529. package/build/screens/conversation_select_type_screen.d.ts +2 -1
  530. package/build/screens/conversation_select_type_screen.d.ts.map +1 -1
  531. package/build/screens/conversation_select_type_screen.js +10 -3
  532. package/build/screens/conversation_select_type_screen.js.map +1 -1
  533. package/build/screens/conversations/components/chat_group_badge.d.ts +2 -1
  534. package/build/screens/conversations/components/chat_group_badge.d.ts.map +1 -1
  535. package/build/screens/conversations/components/chat_group_badge.js +4 -3
  536. package/build/screens/conversations/components/chat_group_badge.js.map +1 -1
  537. package/build/screens/conversations/components/list_header_action_button.d.ts +2 -1
  538. package/build/screens/conversations/components/list_header_action_button.d.ts.map +1 -1
  539. package/build/screens/conversations/components/list_header_action_button.js +5 -3
  540. package/build/screens/conversations/components/list_header_action_button.js.map +1 -1
  541. package/build/screens/conversations/components/list_header_component.d.ts +2 -1
  542. package/build/screens/conversations/components/list_header_component.d.ts.map +1 -1
  543. package/build/screens/conversations/components/list_header_component.js +42 -19
  544. package/build/screens/conversations/components/list_header_component.js.map +1 -1
  545. package/build/screens/conversations/conversations_screen.d.ts +2 -1
  546. package/build/screens/conversations/conversations_screen.d.ts.map +1 -1
  547. package/build/screens/conversations/conversations_screen.js +6 -2
  548. package/build/screens/conversations/conversations_screen.js.map +1 -1
  549. package/build/screens/design_system_screen.d.ts +2 -1
  550. package/build/screens/design_system_screen.d.ts.map +1 -1
  551. package/build/screens/design_system_screen.js +558 -35
  552. package/build/screens/design_system_screen.js.map +1 -1
  553. package/build/screens/get_help_screen.d.ts +1 -1
  554. package/build/screens/get_help_screen.d.ts.map +1 -1
  555. package/build/screens/get_help_screen.js +25 -4
  556. package/build/screens/get_help_screen.js.map +1 -1
  557. package/build/screens/group_notification_level_select_screen.d.ts +2 -1
  558. package/build/screens/group_notification_level_select_screen.d.ts.map +1 -1
  559. package/build/screens/group_notification_level_select_screen.js +4 -2
  560. package/build/screens/group_notification_level_select_screen.js.map +1 -1
  561. package/build/screens/group_notification_settings_screen.d.ts +2 -1
  562. package/build/screens/group_notification_settings_screen.d.ts.map +1 -1
  563. package/build/screens/group_notification_settings_screen.js +25 -3
  564. package/build/screens/group_notification_settings_screen.js.map +1 -1
  565. package/build/screens/message_actions_screen.d.ts +2 -1
  566. package/build/screens/message_actions_screen.d.ts.map +1 -1
  567. package/build/screens/message_actions_screen.js +28 -12
  568. package/build/screens/message_actions_screen.js.map +1 -1
  569. package/build/screens/message_report/components/message_preview.d.ts +2 -1
  570. package/build/screens/message_report/components/message_preview.d.ts.map +1 -1
  571. package/build/screens/message_report/components/message_preview.js +22 -2
  572. package/build/screens/message_report/components/message_preview.js.map +1 -1
  573. package/build/screens/message_report/components/report_reason_list.d.ts +2 -1
  574. package/build/screens/message_report/components/report_reason_list.d.ts.map +1 -1
  575. package/build/screens/message_report/components/report_reason_list.js +13 -4
  576. package/build/screens/message_report/components/report_reason_list.js.map +1 -1
  577. package/build/screens/message_report_screen.d.ts +2 -1
  578. package/build/screens/message_report_screen.d.ts.map +1 -1
  579. package/build/screens/message_report_screen.js +61 -9
  580. package/build/screens/message_report_screen.js.map +1 -1
  581. package/build/screens/not_found.d.ts +2 -1
  582. package/build/screens/not_found.d.ts.map +1 -1
  583. package/build/screens/not_found.js +5 -2
  584. package/build/screens/not_found.js.map +1 -1
  585. package/build/screens/notification_settings/hooks/groups.d.ts +1 -1
  586. package/build/screens/notification_settings/hooks/groups.d.ts.map +1 -1
  587. package/build/screens/notification_settings_screen.d.ts +2 -1
  588. package/build/screens/notification_settings_screen.d.ts.map +1 -1
  589. package/build/screens/notification_settings_screen.js +66 -28
  590. package/build/screens/notification_settings_screen.js.map +1 -1
  591. package/build/screens/preferred_app_selection_screen.d.ts +2 -1
  592. package/build/screens/preferred_app_selection_screen.d.ts.map +1 -1
  593. package/build/screens/preferred_app_selection_screen.js +21 -3
  594. package/build/screens/preferred_app_selection_screen.js.map +1 -1
  595. package/build/screens/reactions_screen.d.ts +2 -1
  596. package/build/screens/reactions_screen.d.ts.map +1 -1
  597. package/build/screens/reactions_screen.js +19 -7
  598. package/build/screens/reactions_screen.js.map +1 -1
  599. package/build/screens/send_giphy_screen.d.ts +2 -1
  600. package/build/screens/send_giphy_screen.d.ts.map +1 -1
  601. package/build/screens/send_giphy_screen.js +31 -5
  602. package/build/screens/send_giphy_screen.js.map +1 -1
  603. package/build/screens/settings_screen.d.ts +2 -1
  604. package/build/screens/settings_screen.d.ts.map +1 -1
  605. package/build/screens/settings_screen.js +26 -4
  606. package/build/screens/settings_screen.js.map +1 -1
  607. package/build/screens/system_message_people_screen.d.ts +2 -1
  608. package/build/screens/system_message_people_screen.d.ts.map +1 -1
  609. package/build/screens/system_message_people_screen.js +10 -4
  610. package/build/screens/system_message_people_screen.js.map +1 -1
  611. package/build/screens/team_conversation_screen.d.ts +1 -1
  612. package/build/screens/team_conversation_screen.d.ts.map +1 -1
  613. package/build/screens/team_conversation_screen.js +12 -4
  614. package/build/screens/team_conversation_screen.js.map +1 -1
  615. package/build/types/resources/conversation.d.ts +10 -1
  616. package/build/types/resources/conversation.d.ts.map +1 -1
  617. package/build/types/resources/conversation.js.map +1 -1
  618. package/build/types/resources/direct_message_candidate.d.ts +1 -0
  619. package/build/types/resources/direct_message_candidate.d.ts.map +1 -1
  620. package/build/types/resources/direct_message_candidate.js.map +1 -1
  621. package/build/types/resources/member.d.ts +1 -0
  622. package/build/types/resources/member.d.ts.map +1 -1
  623. package/build/types/resources/member.js.map +1 -1
  624. package/build/types/resources/member_ability.d.ts +1 -0
  625. package/build/types/resources/member_ability.d.ts.map +1 -1
  626. package/build/types/resources/member_ability.js.map +1 -1
  627. package/build/utils/request/conversation.d.ts.map +1 -1
  628. package/build/utils/request/conversation.js +2 -0
  629. package/build/utils/request/conversation.js.map +1 -1
  630. package/build/utils/response_error.d.ts.map +1 -1
  631. package/build/utils/response_error.js +16 -6
  632. package/build/utils/response_error.js.map +1 -1
  633. package/build/utils/sha_256.js.map +1 -1
  634. package/build/utils/system_messages.d.ts +1 -1
  635. package/build/utils/system_messages.d.ts.map +1 -1
  636. package/build/utils/system_messages.js.map +1 -1
  637. package/build/utils/theme.d.ts +2 -2
  638. package/build/utils/theme.d.ts.map +1 -1
  639. package/build/utils/theme.js.map +1 -1
  640. package/package.json +12 -12
  641. package/src/__tests__/hooks/resolve_message_available_members_link.test.ts +72 -0
  642. package/src/__tests__/hooks/use_attachment_uploader.test.tsx +0 -1
  643. package/src/__tests__/hooks/use_font_scale.test.ts +3 -7
  644. package/src/__tests__/utils/native_adapters/configuration.ts +1 -1
  645. package/src/__tests__/utils/system_messages.ts +1 -1
  646. package/src/__tests__/utils/uri.ts +50 -8
  647. package/src/__utils__/handlers.ts +6 -5
  648. package/src/components/conversation/attachments/attachment_deleting_overlay.tsx +3 -10
  649. package/src/components/conversation/messages_disabled_banners.tsx +31 -4
  650. package/src/components/conversations/conversation_preview.tsx +58 -23
  651. package/src/components/conversations/unread_count_badge.tsx +13 -4
  652. package/src/components/page/__tests__/component_error_boundary.test.tsx +1 -1
  653. package/src/components/page/__tests__/error_boundary.test.tsx +2 -6
  654. package/src/components/page/__tests__/page_error_boundary.test.tsx +1 -1
  655. package/src/hooks/direct_messages/find_direct_message_conversation.ts +16 -0
  656. package/src/hooks/direct_messages/resolve_message_available_members_link.ts +42 -0
  657. package/src/hooks/direct_messages/use_find_or_create_direct_message_conversation.ts +2 -11
  658. package/src/hooks/direct_messages/use_message_available_members.ts +65 -0
  659. package/src/hooks/direct_messages/use_message_available_members_action.ts +34 -0
  660. package/src/hooks/use_conversation.ts +3 -0
  661. package/src/hooks/use_conversation_jolt_events.ts +3 -19
  662. package/src/hooks/use_conversation_messages.ts +5 -6
  663. package/src/hooks/use_conversations_actions.ts +3 -1
  664. package/src/hooks/use_mark_latest_message_read.ts +3 -4
  665. package/src/index.tsx +1 -2
  666. package/src/polyfills/events/EventTarget.ts +1 -1
  667. package/src/screens/conversation_screen.tsx +11 -5
  668. package/src/screens/conversation_select_recipients/conversation_select_direct_message_recipients_screen.tsx +18 -4
  669. package/src/screens/conversation_select_recipients/types/screen_props.tsx +2 -0
  670. package/src/screens/conversations/components/list_header_component.tsx +6 -6
  671. package/src/types/resources/conversation.ts +11 -1
  672. package/src/types/resources/direct_message_candidate.ts +5 -0
  673. package/src/types/resources/member.ts +1 -0
  674. package/src/types/resources/member_ability.ts +1 -0
  675. package/src/utils/__tests__/response_error.test.ts +7 -0
  676. package/src/utils/request/conversation.ts +2 -0
  677. package/src/utils/response_error.ts +18 -7
  678. package/src/utils/sha_256.ts +24 -24
  679. package/src/utils/system_messages.ts +1 -1
  680. package/src/utils/theme.ts +2 -3
@@ -1,5 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { createContext, useContext, useEffect, useState } from 'react';
1
+ import React, { createContext, useContext, useEffect, useState } from 'react';
3
2
  import { StyleSheet, View } from 'react-native';
4
3
  import { useFontScale, useTheme } from '../../hooks';
5
4
  import { MAX_FONT_SIZE_MULTIPLIER } from '../../utils';
@@ -69,37 +68,43 @@ function useAvatarContext() {
69
68
  function AvatarRoot({ children, size = 'md', style, maxFontSizeMultiplier = MAX_FONT_SIZE_MULTIPLIER, minFontSizeMultiplier = undefined, }) {
70
69
  const [allImagesLoaded, setAllImagesLoaded] = useState(false);
71
70
  const styles = useStyles({ size, maxFontSizeMultiplier, minFontSizeMultiplier });
72
- return (_jsx(AvatarContext.Provider, { value: {
71
+ return (<AvatarContext.Provider value={{
73
72
  size,
74
73
  allImagesLoaded,
75
74
  setAllImagesLoaded,
76
75
  maxFontSizeMultiplier,
77
76
  minFontSizeMultiplier,
78
- }, children: _jsx(View, { style: [styles.rootContainer, style], children: children }) }));
77
+ }}>
78
+ <View style={[styles.rootContainer, style]}>{children}</View>
79
+ </AvatarContext.Provider>);
79
80
  }
80
81
  AvatarRoot.displayName = 'Avatar.Root';
81
82
  function AvatarMask({ children, ...props }) {
82
83
  const { size, maxFontSizeMultiplier, minFontSizeMultiplier } = useAvatarContext();
83
84
  const styles = useStyles({ size, maxFontSizeMultiplier, minFontSizeMultiplier });
84
- return (_jsx(View, { style: styles.mask, ...props, children: children }));
85
+ return (<View style={styles.mask} {...props}>
86
+ {children}
87
+ </View>);
85
88
  }
86
89
  AvatarMask.displayName = 'Avatar.Mask';
87
90
  function AvatarImage({ sourceUri, ...props }) {
88
91
  const { size, maxFontSizeMultiplier, minFontSizeMultiplier } = useAvatarContext();
89
92
  const fontScale = useFontScale({ maxFontSizeMultiplier, minFontSizeMultiplier });
90
93
  const scaledAvatarSize = AVATAR_PX[size] * fontScale;
91
- return _jsx(Image, { source: { uri: sourceUri }, loaderSize: scaledAvatarSize, ...props, alt: "" });
94
+ return <Image source={{ uri: sourceUri }} loaderSize={scaledAvatarSize} {...props} alt=""/>;
92
95
  }
93
96
  AvatarImage.displayName = 'Avatar.Image';
94
97
  function AvatarGroupImage({ sourceUri, style, onLoad }) {
95
- return (_jsx(Image, { source: { uri: sourceUri }, hideLoader: true, wrapperStyle: style, onLoad: onLoad, alt: "" }));
98
+ return (<Image source={{ uri: sourceUri }} hideLoader wrapperStyle={style} onLoad={onLoad} alt=""/>);
96
99
  }
97
100
  function AvatarImageFallback({ name = 'general.person' }) {
98
101
  const { size, maxFontSizeMultiplier, minFontSizeMultiplier } = useAvatarContext();
99
102
  const styles = useStyles({ maxFontSizeMultiplier, minFontSizeMultiplier });
100
103
  const fontScale = useFontScale({ maxFontSizeMultiplier, minFontSizeMultiplier });
101
104
  const scaledIconSize = AVATAR_FALLBACK_ICON_PX[size] * fontScale;
102
- return (_jsx(View, { style: styles.fallbackContainer, children: _jsx(Icon, { name: name, size: scaledIconSize, style: styles.fallbackIcon, accessibilityElementsHidden: true }) }));
105
+ return (<View style={styles.fallbackContainer}>
106
+ <Icon name={name} size={scaledIconSize} style={styles.fallbackIcon} accessibilityElementsHidden={true}/>
107
+ </View>);
103
108
  }
104
109
  AvatarImageFallback.displayName = 'Avatar.ImageFallback';
105
110
  function AvatarGroup({ sourceUris }) {
@@ -125,15 +130,35 @@ function AvatarGroup({ sourceUris }) {
125
130
  setAllImagesLoaded(allImagesLoaded);
126
131
  }, [displayUris, hasDisplayUris, loadingStatus, setAllImagesLoaded]);
127
132
  if (displayUris.length === 1) {
128
- return _jsx(AvatarGroupImage, { sourceUri: displayUris[0], onLoad: () => handleImageLoaded(0) });
133
+ return <AvatarGroupImage sourceUri={displayUris[0]} onLoad={() => handleImageLoaded(0)}/>;
129
134
  }
130
135
  if (displayUris.length === 2) {
131
- return (_jsxs(View, { style: styles.groupRow, children: [_jsx(AvatarGroupImage, { sourceUri: displayUris[0], style: styles.halfWidthFullHeight, onLoad: () => handleImageLoaded(0) }), _jsx(AvatarGroupImage, { sourceUri: displayUris[1], style: styles.halfWidthFullHeight, onLoad: () => handleImageLoaded(1) })] }));
136
+ return (<View style={styles.groupRow}>
137
+ <AvatarGroupImage sourceUri={displayUris[0]} style={styles.halfWidthFullHeight} onLoad={() => handleImageLoaded(0)}/>
138
+ <AvatarGroupImage sourceUri={displayUris[1]} style={styles.halfWidthFullHeight} onLoad={() => handleImageLoaded(1)}/>
139
+ </View>);
132
140
  }
133
141
  if (displayUris.length === 3) {
134
- return (_jsx(View, { style: styles.groupColumn, children: _jsxs(View, { style: styles.groupRow, children: [_jsx(AvatarGroupImage, { sourceUri: displayUris[0], style: styles.halfWidthFullHeight, onLoad: () => handleImageLoaded(0) }), _jsxs(View, { style: styles.groupColumn, children: [_jsx(AvatarGroupImage, { sourceUri: displayUris[1], style: styles.fullWidthHalfHeight, onLoad: () => handleImageLoaded(1) }), _jsx(AvatarGroupImage, { sourceUri: displayUris[2], style: styles.fullWidthHalfHeight, onLoad: () => handleImageLoaded(2) })] })] }) }));
142
+ return (<View style={styles.groupColumn}>
143
+ <View style={styles.groupRow}>
144
+ <AvatarGroupImage sourceUri={displayUris[0]} style={styles.halfWidthFullHeight} onLoad={() => handleImageLoaded(0)}/>
145
+ <View style={styles.groupColumn}>
146
+ <AvatarGroupImage sourceUri={displayUris[1]} style={styles.fullWidthHalfHeight} onLoad={() => handleImageLoaded(1)}/>
147
+ <AvatarGroupImage sourceUri={displayUris[2]} style={styles.fullWidthHalfHeight} onLoad={() => handleImageLoaded(2)}/>
148
+ </View>
149
+ </View>
150
+ </View>);
135
151
  }
136
- return (_jsxs(View, { style: styles.groupColumn, children: [_jsxs(View, { style: styles.groupRow, children: [_jsx(AvatarGroupImage, { sourceUri: displayUris[0], style: styles.halfWidthFullHeight, onLoad: () => handleImageLoaded(0) }), _jsx(AvatarGroupImage, { sourceUri: displayUris[1], style: styles.halfWidthFullHeight, onLoad: () => handleImageLoaded(1) })] }), _jsxs(View, { style: styles.groupRow, children: [_jsx(AvatarGroupImage, { sourceUri: displayUris[2], style: styles.halfWidthFullHeight, onLoad: () => handleImageLoaded(2) }), _jsx(AvatarGroupImage, { sourceUri: displayUris[3], style: styles.halfWidthFullHeight, onLoad: () => handleImageLoaded(3) })] })] }));
152
+ return (<View style={styles.groupColumn}>
153
+ <View style={styles.groupRow}>
154
+ <AvatarGroupImage sourceUri={displayUris[0]} style={styles.halfWidthFullHeight} onLoad={() => handleImageLoaded(0)}/>
155
+ <AvatarGroupImage sourceUri={displayUris[1]} style={styles.halfWidthFullHeight} onLoad={() => handleImageLoaded(1)}/>
156
+ </View>
157
+ <View style={styles.groupRow}>
158
+ <AvatarGroupImage sourceUri={displayUris[2]} style={styles.halfWidthFullHeight} onLoad={() => handleImageLoaded(2)}/>
159
+ <AvatarGroupImage sourceUri={displayUris[3]} style={styles.halfWidthFullHeight} onLoad={() => handleImageLoaded(3)}/>
160
+ </View>
161
+ </View>);
137
162
  }
138
163
  AvatarGroup.displayName = 'Avatar.Group';
139
164
  // =================================
@@ -146,13 +171,15 @@ function AvatarGroupLoader() {
146
171
  const scaledSpinnerSize = AVATAR_PX[size] * fontScale;
147
172
  if (allImagesLoaded)
148
173
  return null;
149
- return (_jsx(View, { style: styles.groupLoader, children: _jsx(Spinner, { size: scaledSpinnerSize }) }));
174
+ return (<View style={styles.groupLoader}>
175
+ <Spinner size={scaledSpinnerSize}/>
176
+ </View>);
150
177
  }
151
178
  AvatarGroupLoader.displayName = 'Avatar.GroupLoader';
152
179
  function AvatarPresence({ presence, ...props }) {
153
180
  const { size, maxFontSizeMultiplier, minFontSizeMultiplier } = useAvatarContext();
154
181
  const styles = useStyles({ size, presence, maxFontSizeMultiplier, minFontSizeMultiplier });
155
- return _jsx(View, { style: styles.presence, ...props });
182
+ return <View style={styles.presence} {...props}/>;
156
183
  }
157
184
  AvatarPresence.displayName = 'Avatar.Presence';
158
185
  const useStyles = ({ size = 'md', presence = 'offline', maxFontSizeMultiplier = MAX_FONT_SIZE_MULTIPLIER, minFontSizeMultiplier = undefined, } = {}) => {
@@ -1 +1 @@
1
- {"version":3,"file":"avatar_primitive.js","sourceRoot":"","sources":["../../../src/components/primitive/avatar_primitive.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { createContext, useContext, useEffect, useState } from 'react'\nimport { StyleSheet, View, ViewProps } from 'react-native'\nimport { useFontScale, useTheme } from '../../hooks'\nimport { MAX_FONT_SIZE_MULTIPLIER } from '../../utils'\nimport { Icon, IconString } from '../display/icon'\nimport { Image, ImageProps } from '../display/image'\nimport { Spinner } from '../display/spinner'\n\n// =================================\n// ====== Exports ==================\n// =================================\n\nconst Avatar = {\n Root: AvatarRoot,\n Image: AvatarImage,\n ImageFallback: AvatarImageFallback,\n Presence: AvatarPresence,\n Group: AvatarGroup,\n GroupLoader: AvatarGroupLoader,\n Mask: AvatarMask,\n} as const\n\ntype AvatarComponents = {\n Root: React.FC<AvatarRootProps>\n Image: React.FC<AvatarImageProps>\n ImageFallback: React.FC<AvatarImageFallbackProps>\n Presence: React.FC<AvatarPresenceProps>\n Group: React.FC<AvatarGroupProps>\n GroupLoader: React.FC<Record<string, never>>\n Mask: React.FC<AvatarMaskProps>\n}\n\nexport default Avatar as AvatarComponents\nexport type {\n AvatarImageProps,\n AvatarImageFallbackProps,\n AvatarPresenceProps,\n AvatarGroupProps,\n AvatarMaskProps,\n AvatarRootProps,\n AvatarSize,\n}\n\n// =================================\n// ====== Constants & Types ========\n// =================================\n\nconst AVATAR_SIZES = {\n xs: 'xs',\n sm: 'sm',\n md: 'md',\n lg: 'lg',\n xl: 'xl',\n '2xl': '2xl',\n} as const\n\nconst AVATAR_PRESENCE_TYPES = {\n online: 'online',\n offline: 'offline',\n} as const\n\n// Progrmatically creates type unions\ntype AvatarSize = (typeof AVATAR_SIZES)[keyof typeof AVATAR_SIZES]\ntype AvatarPresenceType = (typeof AVATAR_PRESENCE_TYPES)[keyof typeof AVATAR_PRESENCE_TYPES]\n\nconst AVATAR_PX: Record<AvatarSize, number> = {\n [AVATAR_SIZES.xs]: 20,\n [AVATAR_SIZES.sm]: 24,\n [AVATAR_SIZES.md]: 32,\n [AVATAR_SIZES.lg]: 40,\n [AVATAR_SIZES.xl]: 56,\n [AVATAR_SIZES['2xl']]: 80,\n}\n\nconst AVATAR_PRESENCE_PX: Record<AvatarSize, number> = {\n [AVATAR_SIZES.xs]: 8,\n [AVATAR_SIZES.sm]: 10,\n [AVATAR_SIZES.md]: 12,\n [AVATAR_SIZES.lg]: 14,\n [AVATAR_SIZES.xl]: 16,\n [AVATAR_SIZES['2xl']]: 20,\n}\n\nconst AVATAR_FALLBACK_ICON_PX: Record<AvatarSize, number> = {\n [AVATAR_SIZES.xs]: 10,\n [AVATAR_SIZES.sm]: 12,\n [AVATAR_SIZES.md]: 16,\n [AVATAR_SIZES.lg]: 20,\n [AVATAR_SIZES.xl]: 28,\n [AVATAR_SIZES['2xl']]: 40,\n}\n\n// =================================\n// ====== Context ==================\n// =================================\n\ninterface AvatarContextType {\n size: AvatarSize\n allImagesLoaded: boolean\n setAllImagesLoaded: React.Dispatch<React.SetStateAction<boolean>>\n maxFontSizeMultiplier: number\n minFontSizeMultiplier?: number\n}\n\nconst AvatarContext = createContext<AvatarContextType | null>(null)\n\nfunction useAvatarContext() {\n const context = useContext(AvatarContext)\n if (!context) {\n throw new Error('Avatar components must be used within Avatar.Root')\n }\n return context\n}\n\n// =================================\n// ====== AvatarRoot ===============\n// =================================\n\ninterface AvatarRootProps {\n children: React.ReactNode\n size?: AvatarSize\n style?: ViewProps['style']\n maxFontSizeMultiplier?: number\n minFontSizeMultiplier?: number\n}\n\nfunction AvatarRoot({\n children,\n size = 'md',\n style,\n maxFontSizeMultiplier = MAX_FONT_SIZE_MULTIPLIER,\n minFontSizeMultiplier = undefined,\n}: AvatarRootProps) {\n const [allImagesLoaded, setAllImagesLoaded] = useState(false)\n const styles = useStyles({ size, maxFontSizeMultiplier, minFontSizeMultiplier })\n\n return (\n <AvatarContext.Provider\n value={{\n size,\n allImagesLoaded,\n setAllImagesLoaded,\n maxFontSizeMultiplier,\n minFontSizeMultiplier,\n }}\n >\n <View style={[styles.rootContainer, style]}>{children}</View>\n </AvatarContext.Provider>\n )\n}\n\nAvatarRoot.displayName = 'Avatar.Root'\n\n// =================================\n// ====== AvatarMask ===============\n// =================================\n\ntype AvatarMaskProps = ViewProps\n\nfunction AvatarMask({ children, ...props }: AvatarMaskProps) {\n const { size, maxFontSizeMultiplier, minFontSizeMultiplier } = useAvatarContext()\n const styles = useStyles({ size, maxFontSizeMultiplier, minFontSizeMultiplier })\n\n return (\n <View style={styles.mask} {...props}>\n {children}\n </View>\n )\n}\n\nAvatarMask.displayName = 'Avatar.Mask'\n\n// =================================\n// ====== AvatarImage ============\n// =================================\n\ninterface AvatarImageProps extends Omit<ImageProps, 'source' | 'alt'> {\n sourceUri: string\n}\n\nfunction AvatarImage({ sourceUri, ...props }: AvatarImageProps) {\n const { size, maxFontSizeMultiplier, minFontSizeMultiplier } = useAvatarContext()\n const fontScale = useFontScale({ maxFontSizeMultiplier, minFontSizeMultiplier })\n const scaledAvatarSize = AVATAR_PX[size] * fontScale\n\n return <Image source={{ uri: sourceUri }} loaderSize={scaledAvatarSize} {...props} alt=\"\" />\n}\n\nAvatarImage.displayName = 'Avatar.Image'\n\ninterface AvatarGroupImageProps {\n sourceUri: string\n style?: ImageProps['wrapperStyle']\n onLoad?: () => void\n}\n\nfunction AvatarGroupImage({ sourceUri, style, onLoad }: AvatarGroupImageProps) {\n return (\n <Image source={{ uri: sourceUri }} hideLoader wrapperStyle={style} onLoad={onLoad} alt=\"\" />\n )\n}\n\ninterface AvatarImageFallbackProps {\n name?: IconString\n}\n\nfunction AvatarImageFallback({ name = 'general.person' }: AvatarImageFallbackProps) {\n const { size, maxFontSizeMultiplier, minFontSizeMultiplier } = useAvatarContext()\n const styles = useStyles({ maxFontSizeMultiplier, minFontSizeMultiplier })\n const fontScale = useFontScale({ maxFontSizeMultiplier, minFontSizeMultiplier })\n const scaledIconSize = AVATAR_FALLBACK_ICON_PX[size] * fontScale\n\n return (\n <View style={styles.fallbackContainer}>\n <Icon\n name={name}\n size={scaledIconSize}\n style={styles.fallbackIcon}\n accessibilityElementsHidden={true}\n />\n </View>\n )\n}\n\nAvatarImageFallback.displayName = 'Avatar.ImageFallback'\n\n// =================================\n// ====== AvatarGroup ============\n// =================================\n\ninterface AvatarGroupProps {\n sourceUris: string[]\n}\n\ntype AvatarIndex = 0 | 1 | 2 | 3\n\nfunction AvatarGroup({ sourceUris }: AvatarGroupProps) {\n const { setAllImagesLoaded, maxFontSizeMultiplier, minFontSizeMultiplier } = useAvatarContext()\n const styles = useStyles({ maxFontSizeMultiplier, minFontSizeMultiplier })\n const [loadingStatus, setLoadingStatus] = useState<Record<AvatarIndex, boolean>>({\n 0: false,\n 1: false,\n 2: false,\n 3: false,\n })\n const displayUris = sourceUris.slice(0, 4)\n const hasDisplayUris = displayUris.length > 0\n\n const handleImageLoaded = (index: AvatarIndex) => {\n setLoadingStatus(prev => ({\n ...prev,\n [index]: true,\n }))\n }\n\n useEffect(() => {\n const allImagesLoaded =\n hasDisplayUris &&\n displayUris.every((_, index) => loadingStatus[index as AvatarIndex] === true)\n\n setAllImagesLoaded(allImagesLoaded)\n }, [displayUris, hasDisplayUris, loadingStatus, setAllImagesLoaded])\n\n if (displayUris.length === 1) {\n return <AvatarGroupImage sourceUri={displayUris[0]} onLoad={() => handleImageLoaded(0)} />\n }\n\n if (displayUris.length === 2) {\n return (\n <View style={styles.groupRow}>\n <AvatarGroupImage\n sourceUri={displayUris[0]}\n style={styles.halfWidthFullHeight}\n onLoad={() => handleImageLoaded(0)}\n />\n <AvatarGroupImage\n sourceUri={displayUris[1]}\n style={styles.halfWidthFullHeight}\n onLoad={() => handleImageLoaded(1)}\n />\n </View>\n )\n }\n\n if (displayUris.length === 3) {\n return (\n <View style={styles.groupColumn}>\n <View style={styles.groupRow}>\n <AvatarGroupImage\n sourceUri={displayUris[0]}\n style={styles.halfWidthFullHeight}\n onLoad={() => handleImageLoaded(0)}\n />\n <View style={styles.groupColumn}>\n <AvatarGroupImage\n sourceUri={displayUris[1]}\n style={styles.fullWidthHalfHeight}\n onLoad={() => handleImageLoaded(1)}\n />\n <AvatarGroupImage\n sourceUri={displayUris[2]}\n style={styles.fullWidthHalfHeight}\n onLoad={() => handleImageLoaded(2)}\n />\n </View>\n </View>\n </View>\n )\n }\n\n return (\n <View style={styles.groupColumn}>\n <View style={styles.groupRow}>\n <AvatarGroupImage\n sourceUri={displayUris[0]}\n style={styles.halfWidthFullHeight}\n onLoad={() => handleImageLoaded(0)}\n />\n <AvatarGroupImage\n sourceUri={displayUris[1]}\n style={styles.halfWidthFullHeight}\n onLoad={() => handleImageLoaded(1)}\n />\n </View>\n <View style={styles.groupRow}>\n <AvatarGroupImage\n sourceUri={displayUris[2]}\n style={styles.halfWidthFullHeight}\n onLoad={() => handleImageLoaded(2)}\n />\n <AvatarGroupImage\n sourceUri={displayUris[3]}\n style={styles.halfWidthFullHeight}\n onLoad={() => handleImageLoaded(3)}\n />\n </View>\n </View>\n )\n}\n\nAvatarGroup.displayName = 'Avatar.Group'\n\n// =================================\n// ====== AvatarGroupLoader =========\n// =================================\n\nfunction AvatarGroupLoader() {\n const { size, allImagesLoaded, maxFontSizeMultiplier, minFontSizeMultiplier } = useAvatarContext()\n const styles = useStyles({ size, maxFontSizeMultiplier, minFontSizeMultiplier })\n const fontScale = useFontScale({ maxFontSizeMultiplier, minFontSizeMultiplier })\n const scaledSpinnerSize = AVATAR_PX[size] * fontScale\n\n if (allImagesLoaded) return null\n\n return (\n <View style={styles.groupLoader}>\n <Spinner size={scaledSpinnerSize} />\n </View>\n )\n}\n\nAvatarGroupLoader.displayName = 'Avatar.GroupLoader'\n\n// =================================\n// ====== AvatarPresence =========\n// =================================\n\ninterface AvatarPresenceProps extends ViewProps {\n presence: AvatarPresenceType\n}\n\nfunction AvatarPresence({ presence, ...props }: AvatarPresenceProps) {\n const { size, maxFontSizeMultiplier, minFontSizeMultiplier } = useAvatarContext()\n const styles = useStyles({ size, presence, maxFontSizeMultiplier, minFontSizeMultiplier })\n\n return <View style={styles.presence} {...props} />\n}\n\nAvatarPresence.displayName = 'Avatar.Presence'\n\n// =================================\n// ====== Styles ===================\n// =================================\n\ninterface Styles {\n size?: AvatarSize\n presence?: AvatarPresenceType\n maxFontSizeMultiplier?: number\n minFontSizeMultiplier?: number\n}\n\nconst useStyles = ({\n size = 'md',\n presence = 'offline',\n maxFontSizeMultiplier = MAX_FONT_SIZE_MULTIPLIER,\n minFontSizeMultiplier = undefined,\n}: Styles = {}) => {\n const { colors } = useTheme()\n const fontScale = useFontScale({ maxFontSizeMultiplier, minFontSizeMultiplier })\n const PRESENCE_COLOR = {\n online: colors.fillColorInteractionOnlineDefault,\n offline: colors.iconColorDefaultDisabled,\n }\n const presenceDiameter = AVATAR_PRESENCE_PX[size] * fontScale\n const avatarDiameter = AVATAR_PX[size] * fontScale\n const groupGap = 1\n\n return StyleSheet.create({\n rootContainer: {\n height: avatarDiameter,\n width: avatarDiameter,\n },\n mask: {\n borderRadius: avatarDiameter,\n overflow: 'hidden',\n width: '100%',\n height: '100%',\n },\n presence: {\n height: presenceDiameter,\n width: presenceDiameter,\n backgroundColor: PRESENCE_COLOR[presence],\n borderColor: colors.fillColorNeutral100Inverted,\n borderWidth: 2,\n borderRadius: presenceDiameter,\n position: 'absolute',\n bottom: -1,\n right: -1,\n },\n groupLoader: {\n position: 'absolute',\n borderRadius: avatarDiameter,\n width: avatarDiameter,\n height: avatarDiameter,\n },\n groupColumn: {\n flex: 1,\n gap: groupGap,\n },\n groupRow: {\n flexDirection: 'row',\n flex: 1,\n gap: groupGap,\n },\n halfWidthFullHeight: {\n width: '50%',\n height: '100%',\n },\n fullWidthHalfHeight: {\n width: '100%',\n height: '50%',\n },\n fallbackContainer: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: colors.fillColorNeutral070,\n },\n fallbackIcon: {\n color: colors.iconColorDefaultDim,\n },\n })\n}\n"]}
1
+ {"version":3,"file":"avatar_primitive.js","sourceRoot":"","sources":["../../../src/components/primitive/avatar_primitive.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { createContext, useContext, useEffect, useState } from 'react'\nimport { StyleSheet, View, ViewProps } from 'react-native'\nimport { useFontScale, useTheme } from '../../hooks'\nimport { MAX_FONT_SIZE_MULTIPLIER } from '../../utils'\nimport { Icon, IconString } from '../display/icon'\nimport { Image, ImageProps } from '../display/image'\nimport { Spinner } from '../display/spinner'\n\n// =================================\n// ====== Exports ==================\n// =================================\n\nconst Avatar = {\n Root: AvatarRoot,\n Image: AvatarImage,\n ImageFallback: AvatarImageFallback,\n Presence: AvatarPresence,\n Group: AvatarGroup,\n GroupLoader: AvatarGroupLoader,\n Mask: AvatarMask,\n} as const\n\ntype AvatarComponents = {\n Root: React.FC<AvatarRootProps>\n Image: React.FC<AvatarImageProps>\n ImageFallback: React.FC<AvatarImageFallbackProps>\n Presence: React.FC<AvatarPresenceProps>\n Group: React.FC<AvatarGroupProps>\n GroupLoader: React.FC<Record<string, never>>\n Mask: React.FC<AvatarMaskProps>\n}\n\nexport default Avatar as AvatarComponents\nexport type {\n AvatarImageProps,\n AvatarImageFallbackProps,\n AvatarPresenceProps,\n AvatarGroupProps,\n AvatarMaskProps,\n AvatarRootProps,\n AvatarSize,\n}\n\n// =================================\n// ====== Constants & Types ========\n// =================================\n\nconst AVATAR_SIZES = {\n xs: 'xs',\n sm: 'sm',\n md: 'md',\n lg: 'lg',\n xl: 'xl',\n '2xl': '2xl',\n} as const\n\nconst AVATAR_PRESENCE_TYPES = {\n online: 'online',\n offline: 'offline',\n} as const\n\n// Progrmatically creates type unions\ntype AvatarSize = (typeof AVATAR_SIZES)[keyof typeof AVATAR_SIZES]\ntype AvatarPresenceType = (typeof AVATAR_PRESENCE_TYPES)[keyof typeof AVATAR_PRESENCE_TYPES]\n\nconst AVATAR_PX: Record<AvatarSize, number> = {\n [AVATAR_SIZES.xs]: 20,\n [AVATAR_SIZES.sm]: 24,\n [AVATAR_SIZES.md]: 32,\n [AVATAR_SIZES.lg]: 40,\n [AVATAR_SIZES.xl]: 56,\n [AVATAR_SIZES['2xl']]: 80,\n}\n\nconst AVATAR_PRESENCE_PX: Record<AvatarSize, number> = {\n [AVATAR_SIZES.xs]: 8,\n [AVATAR_SIZES.sm]: 10,\n [AVATAR_SIZES.md]: 12,\n [AVATAR_SIZES.lg]: 14,\n [AVATAR_SIZES.xl]: 16,\n [AVATAR_SIZES['2xl']]: 20,\n}\n\nconst AVATAR_FALLBACK_ICON_PX: Record<AvatarSize, number> = {\n [AVATAR_SIZES.xs]: 10,\n [AVATAR_SIZES.sm]: 12,\n [AVATAR_SIZES.md]: 16,\n [AVATAR_SIZES.lg]: 20,\n [AVATAR_SIZES.xl]: 28,\n [AVATAR_SIZES['2xl']]: 40,\n}\n\n// =================================\n// ====== Context ==================\n// =================================\n\ninterface AvatarContextType {\n size: AvatarSize\n allImagesLoaded: boolean\n setAllImagesLoaded: React.Dispatch<React.SetStateAction<boolean>>\n maxFontSizeMultiplier: number\n minFontSizeMultiplier?: number\n}\n\nconst AvatarContext = createContext<AvatarContextType | null>(null)\n\nfunction useAvatarContext() {\n const context = useContext(AvatarContext)\n if (!context) {\n throw new Error('Avatar components must be used within Avatar.Root')\n }\n return context\n}\n\n// =================================\n// ====== AvatarRoot ===============\n// =================================\n\ninterface AvatarRootProps {\n children: React.ReactNode\n size?: AvatarSize\n style?: ViewProps['style']\n maxFontSizeMultiplier?: number\n minFontSizeMultiplier?: number\n}\n\nfunction AvatarRoot({\n children,\n size = 'md',\n style,\n maxFontSizeMultiplier = MAX_FONT_SIZE_MULTIPLIER,\n minFontSizeMultiplier = undefined,\n}: AvatarRootProps) {\n const [allImagesLoaded, setAllImagesLoaded] = useState(false)\n const styles = useStyles({ size, maxFontSizeMultiplier, minFontSizeMultiplier })\n\n return (\n <AvatarContext.Provider\n value={{\n size,\n allImagesLoaded,\n setAllImagesLoaded,\n maxFontSizeMultiplier,\n minFontSizeMultiplier,\n }}\n >\n <View style={[styles.rootContainer, style]}>{children}</View>\n </AvatarContext.Provider>\n )\n}\n\nAvatarRoot.displayName = 'Avatar.Root'\n\n// =================================\n// ====== AvatarMask ===============\n// =================================\n\ntype AvatarMaskProps = ViewProps\n\nfunction AvatarMask({ children, ...props }: AvatarMaskProps) {\n const { size, maxFontSizeMultiplier, minFontSizeMultiplier } = useAvatarContext()\n const styles = useStyles({ size, maxFontSizeMultiplier, minFontSizeMultiplier })\n\n return (\n <View style={styles.mask} {...props}>\n {children}\n </View>\n )\n}\n\nAvatarMask.displayName = 'Avatar.Mask'\n\n// =================================\n// ====== AvatarImage ============\n// =================================\n\ninterface AvatarImageProps extends Omit<ImageProps, 'source' | 'alt'> {\n sourceUri: string\n}\n\nfunction AvatarImage({ sourceUri, ...props }: AvatarImageProps) {\n const { size, maxFontSizeMultiplier, minFontSizeMultiplier } = useAvatarContext()\n const fontScale = useFontScale({ maxFontSizeMultiplier, minFontSizeMultiplier })\n const scaledAvatarSize = AVATAR_PX[size] * fontScale\n\n return <Image source={{ uri: sourceUri }} loaderSize={scaledAvatarSize} {...props} alt=\"\" />\n}\n\nAvatarImage.displayName = 'Avatar.Image'\n\ninterface AvatarGroupImageProps {\n sourceUri: string\n style?: ImageProps['wrapperStyle']\n onLoad?: () => void\n}\n\nfunction AvatarGroupImage({ sourceUri, style, onLoad }: AvatarGroupImageProps) {\n return (\n <Image source={{ uri: sourceUri }} hideLoader wrapperStyle={style} onLoad={onLoad} alt=\"\" />\n )\n}\n\ninterface AvatarImageFallbackProps {\n name?: IconString\n}\n\nfunction AvatarImageFallback({ name = 'general.person' }: AvatarImageFallbackProps) {\n const { size, maxFontSizeMultiplier, minFontSizeMultiplier } = useAvatarContext()\n const styles = useStyles({ maxFontSizeMultiplier, minFontSizeMultiplier })\n const fontScale = useFontScale({ maxFontSizeMultiplier, minFontSizeMultiplier })\n const scaledIconSize = AVATAR_FALLBACK_ICON_PX[size] * fontScale\n\n return (\n <View style={styles.fallbackContainer}>\n <Icon\n name={name}\n size={scaledIconSize}\n style={styles.fallbackIcon}\n accessibilityElementsHidden={true}\n />\n </View>\n )\n}\n\nAvatarImageFallback.displayName = 'Avatar.ImageFallback'\n\n// =================================\n// ====== AvatarGroup ============\n// =================================\n\ninterface AvatarGroupProps {\n sourceUris: string[]\n}\n\ntype AvatarIndex = 0 | 1 | 2 | 3\n\nfunction AvatarGroup({ sourceUris }: AvatarGroupProps) {\n const { setAllImagesLoaded, maxFontSizeMultiplier, minFontSizeMultiplier } = useAvatarContext()\n const styles = useStyles({ maxFontSizeMultiplier, minFontSizeMultiplier })\n const [loadingStatus, setLoadingStatus] = useState<Record<AvatarIndex, boolean>>({\n 0: false,\n 1: false,\n 2: false,\n 3: false,\n })\n const displayUris = sourceUris.slice(0, 4)\n const hasDisplayUris = displayUris.length > 0\n\n const handleImageLoaded = (index: AvatarIndex) => {\n setLoadingStatus(prev => ({\n ...prev,\n [index]: true,\n }))\n }\n\n useEffect(() => {\n const allImagesLoaded =\n hasDisplayUris &&\n displayUris.every((_, index) => loadingStatus[index as AvatarIndex] === true)\n\n setAllImagesLoaded(allImagesLoaded)\n }, [displayUris, hasDisplayUris, loadingStatus, setAllImagesLoaded])\n\n if (displayUris.length === 1) {\n return <AvatarGroupImage sourceUri={displayUris[0]} onLoad={() => handleImageLoaded(0)} />\n }\n\n if (displayUris.length === 2) {\n return (\n <View style={styles.groupRow}>\n <AvatarGroupImage\n sourceUri={displayUris[0]}\n style={styles.halfWidthFullHeight}\n onLoad={() => handleImageLoaded(0)}\n />\n <AvatarGroupImage\n sourceUri={displayUris[1]}\n style={styles.halfWidthFullHeight}\n onLoad={() => handleImageLoaded(1)}\n />\n </View>\n )\n }\n\n if (displayUris.length === 3) {\n return (\n <View style={styles.groupColumn}>\n <View style={styles.groupRow}>\n <AvatarGroupImage\n sourceUri={displayUris[0]}\n style={styles.halfWidthFullHeight}\n onLoad={() => handleImageLoaded(0)}\n />\n <View style={styles.groupColumn}>\n <AvatarGroupImage\n sourceUri={displayUris[1]}\n style={styles.fullWidthHalfHeight}\n onLoad={() => handleImageLoaded(1)}\n />\n <AvatarGroupImage\n sourceUri={displayUris[2]}\n style={styles.fullWidthHalfHeight}\n onLoad={() => handleImageLoaded(2)}\n />\n </View>\n </View>\n </View>\n )\n }\n\n return (\n <View style={styles.groupColumn}>\n <View style={styles.groupRow}>\n <AvatarGroupImage\n sourceUri={displayUris[0]}\n style={styles.halfWidthFullHeight}\n onLoad={() => handleImageLoaded(0)}\n />\n <AvatarGroupImage\n sourceUri={displayUris[1]}\n style={styles.halfWidthFullHeight}\n onLoad={() => handleImageLoaded(1)}\n />\n </View>\n <View style={styles.groupRow}>\n <AvatarGroupImage\n sourceUri={displayUris[2]}\n style={styles.halfWidthFullHeight}\n onLoad={() => handleImageLoaded(2)}\n />\n <AvatarGroupImage\n sourceUri={displayUris[3]}\n style={styles.halfWidthFullHeight}\n onLoad={() => handleImageLoaded(3)}\n />\n </View>\n </View>\n )\n}\n\nAvatarGroup.displayName = 'Avatar.Group'\n\n// =================================\n// ====== AvatarGroupLoader =========\n// =================================\n\nfunction AvatarGroupLoader() {\n const { size, allImagesLoaded, maxFontSizeMultiplier, minFontSizeMultiplier } = useAvatarContext()\n const styles = useStyles({ size, maxFontSizeMultiplier, minFontSizeMultiplier })\n const fontScale = useFontScale({ maxFontSizeMultiplier, minFontSizeMultiplier })\n const scaledSpinnerSize = AVATAR_PX[size] * fontScale\n\n if (allImagesLoaded) return null\n\n return (\n <View style={styles.groupLoader}>\n <Spinner size={scaledSpinnerSize} />\n </View>\n )\n}\n\nAvatarGroupLoader.displayName = 'Avatar.GroupLoader'\n\n// =================================\n// ====== AvatarPresence =========\n// =================================\n\ninterface AvatarPresenceProps extends ViewProps {\n presence: AvatarPresenceType\n}\n\nfunction AvatarPresence({ presence, ...props }: AvatarPresenceProps) {\n const { size, maxFontSizeMultiplier, minFontSizeMultiplier } = useAvatarContext()\n const styles = useStyles({ size, presence, maxFontSizeMultiplier, minFontSizeMultiplier })\n\n return <View style={styles.presence} {...props} />\n}\n\nAvatarPresence.displayName = 'Avatar.Presence'\n\n// =================================\n// ====== Styles ===================\n// =================================\n\ninterface Styles {\n size?: AvatarSize\n presence?: AvatarPresenceType\n maxFontSizeMultiplier?: number\n minFontSizeMultiplier?: number\n}\n\nconst useStyles = ({\n size = 'md',\n presence = 'offline',\n maxFontSizeMultiplier = MAX_FONT_SIZE_MULTIPLIER,\n minFontSizeMultiplier = undefined,\n}: Styles = {}) => {\n const { colors } = useTheme()\n const fontScale = useFontScale({ maxFontSizeMultiplier, minFontSizeMultiplier })\n const PRESENCE_COLOR = {\n online: colors.fillColorInteractionOnlineDefault,\n offline: colors.iconColorDefaultDisabled,\n }\n const presenceDiameter = AVATAR_PRESENCE_PX[size] * fontScale\n const avatarDiameter = AVATAR_PX[size] * fontScale\n const groupGap = 1\n\n return StyleSheet.create({\n rootContainer: {\n height: avatarDiameter,\n width: avatarDiameter,\n },\n mask: {\n borderRadius: avatarDiameter,\n overflow: 'hidden',\n width: '100%',\n height: '100%',\n },\n presence: {\n height: presenceDiameter,\n width: presenceDiameter,\n backgroundColor: PRESENCE_COLOR[presence],\n borderColor: colors.fillColorNeutral100Inverted,\n borderWidth: 2,\n borderRadius: presenceDiameter,\n position: 'absolute',\n bottom: -1,\n right: -1,\n },\n groupLoader: {\n position: 'absolute',\n borderRadius: avatarDiameter,\n width: avatarDiameter,\n height: avatarDiameter,\n },\n groupColumn: {\n flex: 1,\n gap: groupGap,\n },\n groupRow: {\n flexDirection: 'row',\n flex: 1,\n gap: groupGap,\n },\n halfWidthFullHeight: {\n width: '50%',\n height: '100%',\n },\n fullWidthHalfHeight: {\n width: '100%',\n height: '50%',\n },\n fallbackContainer: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: colors.fillColorNeutral070,\n },\n fallbackIcon: {\n color: colors.iconColorDefaultDim,\n },\n })\n}\n"]}
@@ -1,5 +1,4 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { createContext, useContext } from 'react';
1
+ import React, { createContext, useContext } from 'react';
3
2
  import { Pressable, StyleSheet, View } from 'react-native';
4
3
  import { useCreateAndroidRippleColor, useFontScale } from '../../hooks';
5
4
  import { MAX_FONT_SIZE_MULTIPLIER, platformFontWeightMedium, platformPressedOpacityStyle, } from '../../utils';
@@ -32,13 +31,13 @@ function useBannerContext() {
32
31
  return context;
33
32
  }
34
33
  function BannerRoot({ children, appearance = 'neutral' }) {
35
- return _jsx(BannerContext.Provider, { value: { appearance }, children: children });
34
+ return <BannerContext.Provider value={{ appearance }}>{children}</BannerContext.Provider>;
36
35
  }
37
36
  BannerRoot.displayName = 'Banner.Root';
38
37
  function BannerStaticLayout({ children, style }) {
39
38
  const { appearance } = useBannerContext();
40
39
  const styles = useStyles({ appearance });
41
- return _jsx(View, { style: [styles.staticLayout, style], children: children });
40
+ return <View style={[styles.staticLayout, style]}>{children}</View>;
42
41
  }
43
42
  BannerStaticLayout.displayName = 'Banner.StaticLayout';
44
43
  function BannerCollapsibleLayout({ children, expanded, onPress, style, }) {
@@ -49,12 +48,15 @@ function BannerCollapsibleLayout({ children, expanded, onPress, style, }) {
49
48
  const androidRippleColor = useCreateAndroidRippleColor({
50
49
  color: statusColorMap[appearance].background,
51
50
  });
52
- return (_jsxs(Pressable, { onPress: onPress, style: ({ pressed }) => [styles.staticLayout, pressed && platformPressedOpacityStyle, style], android_ripple: { color: androidRippleColor, borderless: false, foreground: true }, accessibilityState: { expanded }, accessibilityRole: "button", children: [children, _jsx(Icon, { name: iconName, style: styles.icon, maxFontSizeMultiplier: MAX_FONT_SIZE_MULTIPLIER })] }));
51
+ return (<Pressable onPress={onPress} style={({ pressed }) => [styles.staticLayout, pressed && platformPressedOpacityStyle, style]} android_ripple={{ color: androidRippleColor, borderless: false, foreground: true }} accessibilityState={{ expanded }} accessibilityRole="button">
52
+ {children}
53
+ <Icon name={iconName} style={styles.icon} maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER}/>
54
+ </Pressable>);
53
55
  }
54
56
  BannerCollapsibleLayout.displayName = 'Banner.CollapsibleLayout';
55
57
  function BannerContent({ children }) {
56
58
  const styles = useStyles();
57
- return _jsx(View, { style: styles.content, children: children });
59
+ return <View style={styles.content}>{children}</View>;
58
60
  }
59
61
  BannerContent.displayName = 'Banner.Content';
60
62
  function BannerStatusIcon({ iconName }) {
@@ -67,25 +69,31 @@ function BannerStatusIcon({ iconName }) {
67
69
  success: 'general.check',
68
70
  warning: 'general.exclamationTriangle',
69
71
  };
70
- return (_jsx(Icon, { name: iconName || iconNameMap[appearance], style: styles.icon, maxFontSizeMultiplier: 1 }));
72
+ return (<Icon name={iconName || iconNameMap[appearance]} style={styles.icon} maxFontSizeMultiplier={1}/>);
71
73
  }
72
74
  BannerStatusIcon.displayName = 'Banner.StatusIcon';
73
75
  function BannerHeading({ children }) {
74
76
  const { appearance = 'neutral' } = useBannerContext();
75
77
  const styles = useStyles({ appearance });
76
- return (_jsx(Heading, { variant: "h3", style: styles.heading, children: children }));
78
+ return (<Heading variant="h3" style={styles.heading}>
79
+ {children}
80
+ </Heading>);
77
81
  }
78
82
  BannerHeading.displayName = 'Banner.Heading';
79
83
  function BannerText({ children }) {
80
84
  const { appearance = 'neutral' } = useBannerContext();
81
85
  const styles = useStyles({ appearance });
82
- return (_jsx(Text, { variant: "tertiary", style: styles.text, children: children }));
86
+ return (<Text variant="tertiary" style={styles.text}>
87
+ {children}
88
+ </Text>);
83
89
  }
84
90
  BannerText.displayName = 'Banner.Text';
85
91
  function BannerLink({ children, onPress }) {
86
92
  const { appearance = 'neutral' } = useBannerContext();
87
93
  const styles = useStyles({ appearance });
88
- return (_jsx(TextInlineButton, { variant: "tertiary", style: styles.text, onPress: onPress, children: children }));
94
+ return (<TextInlineButton variant="tertiary" style={styles.text} onPress={onPress}>
95
+ {children}
96
+ </TextInlineButton>);
89
97
  }
90
98
  BannerLink.displayName = 'Banner.Link';
91
99
  const useStyles = ({ appearance = 'neutral' } = {}) => {
@@ -1 +1 @@
1
- {"version":3,"file":"banner_primitive.js","sourceRoot":"","sources":["../../../src/components/primitive/banner_primitive.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { createContext, FC, ReactNode, useContext } from 'react'\nimport { Pressable, StyleSheet, View, ViewStyle } from 'react-native'\nimport { useCreateAndroidRippleColor, useFontScale } from '../../hooks'\nimport {\n MAX_FONT_SIZE_MULTIPLIER,\n platformFontWeightMedium,\n platformPressedOpacityStyle,\n} from '../../utils'\nimport { tokens } from '../../vendor/tapestry/tokens'\nimport { Heading } from '../display/heading'\nimport { Icon, IconString } from '../display/icon'\nimport { Text } from '../display/text'\nimport { TextInlineButton } from '../display/text_inline_button'\nimport {\n useStatusColorAppearanceMap,\n type StatusAppearanceUnion,\n} from '../display/utils/status_colors'\n\n// ========================================\n// ====== Exports =========================\n// ========================================\n\nconst Banner = {\n Root: BannerRoot,\n StaticLayout: BannerStaticLayout,\n CollapsibleLayout: BannerCollapsibleLayout,\n Content: BannerContent,\n StatusIcon: BannerStatusIcon,\n Heading: BannerHeading,\n Text: BannerText,\n Link: BannerLink,\n} as const\n\ntype BannerComponents = {\n Root: FC<BannerRootProps>\n StaticLayout: FC<BannerStaticLayoutProps>\n CollapsibleLayout: FC<BannerCollapsibleLayoutProps>\n Content: FC<BannerContentProps>\n StatusIcon: FC<BannerStatusIconProps>\n Heading: FC<BannerHeadingProps>\n Text: FC<BannerTextProps>\n Link: FC<BannerLinkProps>\n}\n\nexport default Banner as BannerComponents\nexport type {\n BannerRootProps,\n BannerStaticLayoutProps,\n BannerCollapsibleLayoutProps,\n BannerContentProps,\n BannerStatusIconProps,\n BannerHeadingProps,\n BannerTextProps,\n BannerLinkProps,\n}\n\n// ========================================\n// ====== Context =========================\n// ========================================\n\ninterface BannerContextType {\n appearance?: StatusAppearanceUnion\n}\n\nconst BannerContext = createContext<BannerContextType | null>(null)\n\nfunction useBannerContext() {\n const context = useContext(BannerContext)\n if (!context) {\n throw new Error('Banner components must be used within Banner.Root')\n }\n return context\n}\n\n// ========================================\n// ====== BannerRoot ======================\n// ========================================\n\ninterface BannerRootProps {\n children: ReactNode\n appearance?: StatusAppearanceUnion\n}\n\nfunction BannerRoot({ children, appearance = 'neutral' }: BannerRootProps) {\n return <BannerContext.Provider value={{ appearance }}>{children}</BannerContext.Provider>\n}\n\nBannerRoot.displayName = 'Banner.Root'\n\n// ========================================\n// ====== BannerStaticLayout ==============\n// ========================================\n\ninterface BannerStaticLayoutProps {\n children: ReactNode\n style?: ViewStyle\n}\n\nfunction BannerStaticLayout({ children, style }: BannerStaticLayoutProps) {\n const { appearance } = useBannerContext()\n const styles = useStyles({ appearance })\n\n return <View style={[styles.staticLayout, style]}>{children}</View>\n}\n\nBannerStaticLayout.displayName = 'Banner.StaticLayout'\n\n// ========================================\n// ====== BannerCollapsibleLayout =========\n// ========================================\n\ninterface BannerCollapsibleLayoutProps {\n children: ReactNode\n expanded?: boolean\n onPress?: () => void\n style?: ViewStyle\n}\n\nfunction BannerCollapsibleLayout({\n children,\n expanded,\n onPress,\n style,\n}: BannerCollapsibleLayoutProps) {\n const { appearance = 'neutral' } = useBannerContext()\n const styles = useStyles({ appearance })\n const iconName = expanded ? 'general.upCaret' : 'general.downCaret'\n const statusColorMap = useStatusColorAppearanceMap()\n const androidRippleColor = useCreateAndroidRippleColor({\n color: statusColorMap[appearance].background,\n })\n\n return (\n <Pressable\n onPress={onPress}\n style={({ pressed }) => [styles.staticLayout, pressed && platformPressedOpacityStyle, style]}\n android_ripple={{ color: androidRippleColor, borderless: false, foreground: true }}\n accessibilityState={{ expanded }}\n accessibilityRole=\"button\"\n >\n {children}\n <Icon name={iconName} style={styles.icon} maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER} />\n </Pressable>\n )\n}\n\nBannerCollapsibleLayout.displayName = 'Banner.CollapsibleLayout'\n\n// ========================================\n// ====== BannerContent ===================\n// ========================================\n\ninterface BannerContentProps {\n children: ReactNode\n}\n\nfunction BannerContent({ children }: BannerContentProps) {\n const styles = useStyles()\n\n return <View style={styles.content}>{children}</View>\n}\n\nBannerContent.displayName = 'Banner.Content'\n\n// ========================================\n// ====== BannerStatusIcon ================\n// ========================================\n\ninterface BannerStatusIconProps {\n iconName?: IconString\n}\n\nfunction BannerStatusIcon({ iconName }: BannerStatusIconProps) {\n const { appearance = 'neutral' } = useBannerContext()\n const styles = useStyles({ appearance })\n\n const iconNameMap = {\n error: 'general.exclamationTriangle',\n info: 'general.outlinedInfoCircle',\n neutral: 'general.outlinedInfoCircle',\n success: 'general.check',\n warning: 'general.exclamationTriangle',\n } as const\n\n return (\n <Icon\n name={iconName || iconNameMap[appearance]}\n style={styles.icon}\n maxFontSizeMultiplier={1}\n />\n )\n}\n\nBannerStatusIcon.displayName = 'Banner.StatusIcon'\n\n// ========================================\n// ====== BannerHeading ===================\n// ========================================\n\ninterface BannerHeadingProps {\n children: ReactNode\n}\n\nfunction BannerHeading({ children }: BannerHeadingProps) {\n const { appearance = 'neutral' } = useBannerContext()\n const styles = useStyles({ appearance })\n\n return (\n <Heading variant=\"h3\" style={styles.heading}>\n {children}\n </Heading>\n )\n}\n\nBannerHeading.displayName = 'Banner.Heading'\n\n// ========================================\n// ====== BannerText ======================\n// ========================================\n\ninterface BannerTextProps {\n children: ReactNode\n}\n\nfunction BannerText({ children }: BannerTextProps) {\n const { appearance = 'neutral' } = useBannerContext()\n const styles = useStyles({ appearance })\n\n return (\n <Text variant=\"tertiary\" style={styles.text}>\n {children}\n </Text>\n )\n}\n\nBannerText.displayName = 'Banner.Text'\n\n// ========================================\n// ====== BannerLink ======================\n// ========================================\n\ninterface BannerLinkProps {\n children: ReactNode\n onPress?: () => void\n}\n\nfunction BannerLink({ children, onPress }: BannerLinkProps) {\n const { appearance = 'neutral' } = useBannerContext()\n const styles = useStyles({ appearance })\n\n return (\n <TextInlineButton variant=\"tertiary\" style={styles.text} onPress={onPress}>\n {children}\n </TextInlineButton>\n )\n}\n\nBannerLink.displayName = 'Banner.Link'\n\n// ========================================\n// ====== Styles ==========================\n// ========================================\n\ninterface Styles {\n appearance?: StatusAppearanceUnion\n}\n\nconst useStyles = ({ appearance = 'neutral' }: Styles = {}) => {\n const statusColorMap = useStatusColorAppearanceMap()\n const fontScale = useFontScale()\n const LINE_HEIGHT_OFFSET = fontScale > 1 ? 0 : 1\n\n return StyleSheet.create({\n staticLayout: {\n flexDirection: 'row',\n backgroundColor: statusColorMap[appearance].background,\n padding: 12,\n gap: 8,\n borderRadius: tokens.borderRadiusMd,\n },\n content: {\n gap: 4,\n flex: 1,\n },\n icon: {\n color: statusColorMap[appearance].icon,\n fontSize: tokens.fontSizeMd,\n marginTop: (4 - LINE_HEIGHT_OFFSET) * fontScale,\n },\n heading: {\n color: statusColorMap[appearance].text,\n fontWeight: platformFontWeightMedium,\n fontSize: tokens.fontSizeMd,\n },\n text: {\n color: statusColorMap[appearance].text,\n },\n })\n}\n"]}
1
+ {"version":3,"file":"banner_primitive.js","sourceRoot":"","sources":["../../../src/components/primitive/banner_primitive.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { createContext, FC, ReactNode, useContext } from 'react'\nimport { Pressable, StyleSheet, View, ViewStyle } from 'react-native'\nimport { useCreateAndroidRippleColor, useFontScale } from '../../hooks'\nimport {\n MAX_FONT_SIZE_MULTIPLIER,\n platformFontWeightMedium,\n platformPressedOpacityStyle,\n} from '../../utils'\nimport { tokens } from '../../vendor/tapestry/tokens'\nimport { Heading } from '../display/heading'\nimport { Icon, IconString } from '../display/icon'\nimport { Text } from '../display/text'\nimport { TextInlineButton } from '../display/text_inline_button'\nimport {\n useStatusColorAppearanceMap,\n type StatusAppearanceUnion,\n} from '../display/utils/status_colors'\n\n// ========================================\n// ====== Exports =========================\n// ========================================\n\nconst Banner = {\n Root: BannerRoot,\n StaticLayout: BannerStaticLayout,\n CollapsibleLayout: BannerCollapsibleLayout,\n Content: BannerContent,\n StatusIcon: BannerStatusIcon,\n Heading: BannerHeading,\n Text: BannerText,\n Link: BannerLink,\n} as const\n\ntype BannerComponents = {\n Root: FC<BannerRootProps>\n StaticLayout: FC<BannerStaticLayoutProps>\n CollapsibleLayout: FC<BannerCollapsibleLayoutProps>\n Content: FC<BannerContentProps>\n StatusIcon: FC<BannerStatusIconProps>\n Heading: FC<BannerHeadingProps>\n Text: FC<BannerTextProps>\n Link: FC<BannerLinkProps>\n}\n\nexport default Banner as BannerComponents\nexport type {\n BannerRootProps,\n BannerStaticLayoutProps,\n BannerCollapsibleLayoutProps,\n BannerContentProps,\n BannerStatusIconProps,\n BannerHeadingProps,\n BannerTextProps,\n BannerLinkProps,\n}\n\n// ========================================\n// ====== Context =========================\n// ========================================\n\ninterface BannerContextType {\n appearance?: StatusAppearanceUnion\n}\n\nconst BannerContext = createContext<BannerContextType | null>(null)\n\nfunction useBannerContext() {\n const context = useContext(BannerContext)\n if (!context) {\n throw new Error('Banner components must be used within Banner.Root')\n }\n return context\n}\n\n// ========================================\n// ====== BannerRoot ======================\n// ========================================\n\ninterface BannerRootProps {\n children: ReactNode\n appearance?: StatusAppearanceUnion\n}\n\nfunction BannerRoot({ children, appearance = 'neutral' }: BannerRootProps) {\n return <BannerContext.Provider value={{ appearance }}>{children}</BannerContext.Provider>\n}\n\nBannerRoot.displayName = 'Banner.Root'\n\n// ========================================\n// ====== BannerStaticLayout ==============\n// ========================================\n\ninterface BannerStaticLayoutProps {\n children: ReactNode\n style?: ViewStyle\n}\n\nfunction BannerStaticLayout({ children, style }: BannerStaticLayoutProps) {\n const { appearance } = useBannerContext()\n const styles = useStyles({ appearance })\n\n return <View style={[styles.staticLayout, style]}>{children}</View>\n}\n\nBannerStaticLayout.displayName = 'Banner.StaticLayout'\n\n// ========================================\n// ====== BannerCollapsibleLayout =========\n// ========================================\n\ninterface BannerCollapsibleLayoutProps {\n children: ReactNode\n expanded?: boolean\n onPress?: () => void\n style?: ViewStyle\n}\n\nfunction BannerCollapsibleLayout({\n children,\n expanded,\n onPress,\n style,\n}: BannerCollapsibleLayoutProps) {\n const { appearance = 'neutral' } = useBannerContext()\n const styles = useStyles({ appearance })\n const iconName = expanded ? 'general.upCaret' : 'general.downCaret'\n const statusColorMap = useStatusColorAppearanceMap()\n const androidRippleColor = useCreateAndroidRippleColor({\n color: statusColorMap[appearance].background,\n })\n\n return (\n <Pressable\n onPress={onPress}\n style={({ pressed }) => [styles.staticLayout, pressed && platformPressedOpacityStyle, style]}\n android_ripple={{ color: androidRippleColor, borderless: false, foreground: true }}\n accessibilityState={{ expanded }}\n accessibilityRole=\"button\"\n >\n {children}\n <Icon name={iconName} style={styles.icon} maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER} />\n </Pressable>\n )\n}\n\nBannerCollapsibleLayout.displayName = 'Banner.CollapsibleLayout'\n\n// ========================================\n// ====== BannerContent ===================\n// ========================================\n\ninterface BannerContentProps {\n children: ReactNode\n}\n\nfunction BannerContent({ children }: BannerContentProps) {\n const styles = useStyles()\n\n return <View style={styles.content}>{children}</View>\n}\n\nBannerContent.displayName = 'Banner.Content'\n\n// ========================================\n// ====== BannerStatusIcon ================\n// ========================================\n\ninterface BannerStatusIconProps {\n iconName?: IconString\n}\n\nfunction BannerStatusIcon({ iconName }: BannerStatusIconProps) {\n const { appearance = 'neutral' } = useBannerContext()\n const styles = useStyles({ appearance })\n\n const iconNameMap = {\n error: 'general.exclamationTriangle',\n info: 'general.outlinedInfoCircle',\n neutral: 'general.outlinedInfoCircle',\n success: 'general.check',\n warning: 'general.exclamationTriangle',\n } as const\n\n return (\n <Icon\n name={iconName || iconNameMap[appearance]}\n style={styles.icon}\n maxFontSizeMultiplier={1}\n />\n )\n}\n\nBannerStatusIcon.displayName = 'Banner.StatusIcon'\n\n// ========================================\n// ====== BannerHeading ===================\n// ========================================\n\ninterface BannerHeadingProps {\n children: ReactNode\n}\n\nfunction BannerHeading({ children }: BannerHeadingProps) {\n const { appearance = 'neutral' } = useBannerContext()\n const styles = useStyles({ appearance })\n\n return (\n <Heading variant=\"h3\" style={styles.heading}>\n {children}\n </Heading>\n )\n}\n\nBannerHeading.displayName = 'Banner.Heading'\n\n// ========================================\n// ====== BannerText ======================\n// ========================================\n\ninterface BannerTextProps {\n children: ReactNode\n}\n\nfunction BannerText({ children }: BannerTextProps) {\n const { appearance = 'neutral' } = useBannerContext()\n const styles = useStyles({ appearance })\n\n return (\n <Text variant=\"tertiary\" style={styles.text}>\n {children}\n </Text>\n )\n}\n\nBannerText.displayName = 'Banner.Text'\n\n// ========================================\n// ====== BannerLink ======================\n// ========================================\n\ninterface BannerLinkProps {\n children: ReactNode\n onPress?: () => void\n}\n\nfunction BannerLink({ children, onPress }: BannerLinkProps) {\n const { appearance = 'neutral' } = useBannerContext()\n const styles = useStyles({ appearance })\n\n return (\n <TextInlineButton variant=\"tertiary\" style={styles.text} onPress={onPress}>\n {children}\n </TextInlineButton>\n )\n}\n\nBannerLink.displayName = 'Banner.Link'\n\n// ========================================\n// ====== Styles ==========================\n// ========================================\n\ninterface Styles {\n appearance?: StatusAppearanceUnion\n}\n\nconst useStyles = ({ appearance = 'neutral' }: Styles = {}) => {\n const statusColorMap = useStatusColorAppearanceMap()\n const fontScale = useFontScale()\n const LINE_HEIGHT_OFFSET = fontScale > 1 ? 0 : 1\n\n return StyleSheet.create({\n staticLayout: {\n flexDirection: 'row',\n backgroundColor: statusColorMap[appearance].background,\n padding: 12,\n gap: 8,\n borderRadius: tokens.borderRadiusMd,\n },\n content: {\n gap: 4,\n flex: 1,\n },\n icon: {\n color: statusColorMap[appearance].icon,\n fontSize: tokens.fontSizeMd,\n marginTop: (4 - LINE_HEIGHT_OFFSET) * fontScale,\n },\n heading: {\n color: statusColorMap[appearance].text,\n fontWeight: platformFontWeightMedium,\n fontSize: tokens.fontSizeMd,\n },\n text: {\n color: statusColorMap[appearance].text,\n },\n })\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import React from 'react';
2
2
  import { View, StyleSheet } from 'react-native';
3
3
  import { useTheme } from '../../hooks';
4
4
  import { Button, Heading, Icon, TextButton, Text, } from '../display';
@@ -17,7 +17,7 @@ const BlankState = {
17
17
  export default BlankState;
18
18
  function BlankStateRoot({ children, style }) {
19
19
  const styles = useStyles();
20
- return _jsx(View, { style: [styles.container, style], children: children });
20
+ return <View style={[styles.container, style]}>{children}</View>;
21
21
  }
22
22
  BlankStateRoot.displayName = 'BlankState.Root';
23
23
  function BlankStateImagery({ name, size = 32, style }) {
@@ -29,30 +29,34 @@ function BlankStateImagery({ name, size = 32, style }) {
29
29
  This first step of using a more abstract component just allows us to keep this component open to change, without being overly perscriptive on how the change should be implomented.
30
30
 
31
31
  */
32
- return _jsx(Icon, { name: name, size: size, style: [styles.imagery, style] });
32
+ return <Icon name={name} size={size} style={[styles.imagery, style]}/>;
33
33
  }
34
34
  BlankStateImagery.displayName = 'BlankState.Imagery';
35
35
  function BlankStateContent({ children, style }) {
36
36
  const styles = useStyles();
37
- return _jsx(View, { style: [styles.content, style], children: children });
37
+ return <View style={[styles.content, style]}>{children}</View>;
38
38
  }
39
39
  BlankStateContent.displayName = 'BlankState.Content';
40
40
  function BlankStateHeading({ children, style }) {
41
41
  const styles = useStyles();
42
- return (_jsx(Heading, { variant: "h3", style: [styles.heading, style], children: children }));
42
+ return (<Heading variant="h3" style={[styles.heading, style]}>
43
+ {children}
44
+ </Heading>);
43
45
  }
44
46
  BlankStateHeading.displayName = 'BlankState.Heading';
45
47
  function BlankStateText({ children, style }) {
46
48
  const styles = useStyles();
47
- return (_jsx(Text, { variant: "tertiary", style: [styles.text, style], children: children }));
49
+ return (<Text variant="tertiary" style={[styles.text, style]}>
50
+ {children}
51
+ </Text>);
48
52
  }
49
53
  BlankStateText.displayName = 'BlankState.Text';
50
54
  function BlankStateButton(props) {
51
- return _jsx(Button, { variant: "outline", size: "sm", ...props });
55
+ return <Button variant="outline" size="sm" {...props}/>;
52
56
  }
53
57
  BlankStateButton.displayName = 'BlankState.Button';
54
58
  function BlankStateTextButton(props) {
55
- return _jsx(TextButton, { variant: "tertiary", ...props });
59
+ return <TextButton variant="tertiary" {...props}/>;
56
60
  }
57
61
  BlankStateTextButton.displayName = 'BlankState.TextButton';
58
62
  // ========================================
@@ -1 +1 @@
1
- {"version":3,"file":"blank_state_primitive.js","sourceRoot":"","sources":["../../../src/components/primitive/blank_state_primitive.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { FC, ReactNode } from 'react'\nimport { View, StyleSheet, ViewStyle } from 'react-native'\nimport { useTheme } from '../../hooks'\nimport {\n Button,\n Heading,\n Icon,\n TextButton,\n Text,\n type ButtonProps,\n type HeadingProps,\n type IconString,\n type IconStyle,\n type TextButtonProps,\n type TextProps,\n} from '../display'\n\n// ========================================\n// ====== Exports =========================\n// ========================================\n\nconst BlankState = {\n Root: BlankStateRoot,\n Imagery: BlankStateImagery,\n Content: BlankStateContent,\n Heading: BlankStateHeading,\n Text: BlankStateText,\n Button: BlankStateButton,\n TextButton: BlankStateTextButton,\n} as const\n\ntype BlankStateComponents = {\n Root: FC<BlankStateRootProps>\n Imagery: FC<BlankStateImageryProps>\n Content: FC<BlankStateContentProps>\n Heading: FC<BlankStateHeadingProps>\n Text: FC<BlankStateTextProps>\n Button: FC<BlankStateButtonProps>\n TextButton: FC<BlankStateTextButtonProps>\n}\n\nexport default BlankState as BlankStateComponents\nexport type {\n BlankStateRootProps,\n BlankStateImageryProps,\n BlankStateContentProps,\n BlankStateHeadingProps,\n BlankStateTextProps,\n BlankStateButtonProps,\n BlankStateTextButtonProps,\n}\n\n// ========================================\n// ====== BlankStateRoot ==================\n// ========================================\n\ninterface BlankStateRootProps {\n children: ReactNode\n style?: ViewStyle\n}\n\nfunction BlankStateRoot({ children, style }: BlankStateRootProps) {\n const styles = useStyles()\n\n return <View style={[styles.container, style]}>{children}</View>\n}\n\nBlankStateRoot.displayName = 'BlankState.Root'\n\n// ========================================\n// ====== BlankStateImagery ===============\n// ========================================\n\ninterface BlankStateImageryProps {\n name: IconString\n size?: number\n style?: IconStyle\n}\n\nfunction BlankStateImagery({ name, size = 32, style }: BlankStateImageryProps) {\n const styles = useStyles()\n\n /*\n NOTE:\n BlankState.Imagery will eventually return more then just an Icon component\n Eventually it will need to return SVG illustrations from the theme or internally for Services Mobile.\n This first step of using a more abstract component just allows us to keep this component open to change, without being overly perscriptive on how the change should be implomented.\n\n*/\n\n return <Icon name={name} size={size} style={[styles.imagery, style]} />\n}\n\nBlankStateImagery.displayName = 'BlankState.Imagery'\n\n// ========================================\n// ====== BlankStateContent ===============\n// ========================================\n\ninterface BlankStateContentProps {\n children: ReactNode\n style?: ViewStyle\n}\n\nfunction BlankStateContent({ children, style }: BlankStateContentProps) {\n const styles = useStyles()\n\n return <View style={[styles.content, style]}>{children}</View>\n}\n\nBlankStateContent.displayName = 'BlankState.Content'\n\n// ========================================\n// ====== BlankStateHeading ===============\n// ========================================\n\ninterface BlankStateHeadingProps {\n children: ReactNode\n style?: HeadingProps['style']\n}\n\nfunction BlankStateHeading({ children, style }: BlankStateHeadingProps) {\n const styles = useStyles()\n\n return (\n <Heading variant=\"h3\" style={[styles.heading, style]}>\n {children}\n </Heading>\n )\n}\n\nBlankStateHeading.displayName = 'BlankState.Heading'\n\n// ========================================\n// ====== BlankStateText ==================\n// ========================================\n\ninterface BlankStateTextProps {\n children: ReactNode\n style?: TextProps['style']\n}\n\nfunction BlankStateText({ children, style }: BlankStateTextProps) {\n const styles = useStyles()\n\n return (\n <Text variant=\"tertiary\" style={[styles.text, style]}>\n {children}\n </Text>\n )\n}\n\nBlankStateText.displayName = 'BlankState.Text'\n\n// ========================================\n// ====== BlankStateButton ================\n// ========================================\n\ninterface BlankStateButtonProps extends ButtonProps {}\n\nfunction BlankStateButton(props: BlankStateButtonProps) {\n return <Button variant=\"outline\" size=\"sm\" {...props} />\n}\n\nBlankStateButton.displayName = 'BlankState.Button'\n\n// ========================================\n// ====== BlankStateTextButton ================\n// ========================================\n\ninterface BlankStateTextButtonProps extends TextButtonProps {}\n\nfunction BlankStateTextButton(props: BlankStateTextButtonProps) {\n return <TextButton variant=\"tertiary\" {...props} />\n}\n\nBlankStateTextButton.displayName = 'BlankState.TextButton'\n\n// ========================================\n// ====== Styles ==========================\n// ========================================\n\nconst useStyles = () => {\n const { colors } = useTheme()\n\n return StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n gap: 16,\n padding: 16,\n },\n imagery: {\n color: colors.iconColorDefaultDisabled,\n },\n content: {\n alignItems: 'center',\n gap: 4,\n maxWidth: 250,\n },\n heading: {\n textAlign: 'center',\n color: colors.textColorDefaultSecondary,\n },\n text: {\n textAlign: 'center',\n color: colors.textColorDefaultSecondary,\n },\n })\n}\n"]}
1
+ {"version":3,"file":"blank_state_primitive.js","sourceRoot":"","sources":["../../../src/components/primitive/blank_state_primitive.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { FC, ReactNode } from 'react'\nimport { View, StyleSheet, ViewStyle } from 'react-native'\nimport { useTheme } from '../../hooks'\nimport {\n Button,\n Heading,\n Icon,\n TextButton,\n Text,\n type ButtonProps,\n type HeadingProps,\n type IconString,\n type IconStyle,\n type TextButtonProps,\n type TextProps,\n} from '../display'\n\n// ========================================\n// ====== Exports =========================\n// ========================================\n\nconst BlankState = {\n Root: BlankStateRoot,\n Imagery: BlankStateImagery,\n Content: BlankStateContent,\n Heading: BlankStateHeading,\n Text: BlankStateText,\n Button: BlankStateButton,\n TextButton: BlankStateTextButton,\n} as const\n\ntype BlankStateComponents = {\n Root: FC<BlankStateRootProps>\n Imagery: FC<BlankStateImageryProps>\n Content: FC<BlankStateContentProps>\n Heading: FC<BlankStateHeadingProps>\n Text: FC<BlankStateTextProps>\n Button: FC<BlankStateButtonProps>\n TextButton: FC<BlankStateTextButtonProps>\n}\n\nexport default BlankState as BlankStateComponents\nexport type {\n BlankStateRootProps,\n BlankStateImageryProps,\n BlankStateContentProps,\n BlankStateHeadingProps,\n BlankStateTextProps,\n BlankStateButtonProps,\n BlankStateTextButtonProps,\n}\n\n// ========================================\n// ====== BlankStateRoot ==================\n// ========================================\n\ninterface BlankStateRootProps {\n children: ReactNode\n style?: ViewStyle\n}\n\nfunction BlankStateRoot({ children, style }: BlankStateRootProps) {\n const styles = useStyles()\n\n return <View style={[styles.container, style]}>{children}</View>\n}\n\nBlankStateRoot.displayName = 'BlankState.Root'\n\n// ========================================\n// ====== BlankStateImagery ===============\n// ========================================\n\ninterface BlankStateImageryProps {\n name: IconString\n size?: number\n style?: IconStyle\n}\n\nfunction BlankStateImagery({ name, size = 32, style }: BlankStateImageryProps) {\n const styles = useStyles()\n\n /*\n NOTE:\n BlankState.Imagery will eventually return more then just an Icon component\n Eventually it will need to return SVG illustrations from the theme or internally for Services Mobile.\n This first step of using a more abstract component just allows us to keep this component open to change, without being overly perscriptive on how the change should be implomented.\n\n*/\n\n return <Icon name={name} size={size} style={[styles.imagery, style]} />\n}\n\nBlankStateImagery.displayName = 'BlankState.Imagery'\n\n// ========================================\n// ====== BlankStateContent ===============\n// ========================================\n\ninterface BlankStateContentProps {\n children: ReactNode\n style?: ViewStyle\n}\n\nfunction BlankStateContent({ children, style }: BlankStateContentProps) {\n const styles = useStyles()\n\n return <View style={[styles.content, style]}>{children}</View>\n}\n\nBlankStateContent.displayName = 'BlankState.Content'\n\n// ========================================\n// ====== BlankStateHeading ===============\n// ========================================\n\ninterface BlankStateHeadingProps {\n children: ReactNode\n style?: HeadingProps['style']\n}\n\nfunction BlankStateHeading({ children, style }: BlankStateHeadingProps) {\n const styles = useStyles()\n\n return (\n <Heading variant=\"h3\" style={[styles.heading, style]}>\n {children}\n </Heading>\n )\n}\n\nBlankStateHeading.displayName = 'BlankState.Heading'\n\n// ========================================\n// ====== BlankStateText ==================\n// ========================================\n\ninterface BlankStateTextProps {\n children: ReactNode\n style?: TextProps['style']\n}\n\nfunction BlankStateText({ children, style }: BlankStateTextProps) {\n const styles = useStyles()\n\n return (\n <Text variant=\"tertiary\" style={[styles.text, style]}>\n {children}\n </Text>\n )\n}\n\nBlankStateText.displayName = 'BlankState.Text'\n\n// ========================================\n// ====== BlankStateButton ================\n// ========================================\n\ninterface BlankStateButtonProps extends ButtonProps {}\n\nfunction BlankStateButton(props: BlankStateButtonProps) {\n return <Button variant=\"outline\" size=\"sm\" {...props} />\n}\n\nBlankStateButton.displayName = 'BlankState.Button'\n\n// ========================================\n// ====== BlankStateTextButton ================\n// ========================================\n\ninterface BlankStateTextButtonProps extends TextButtonProps {}\n\nfunction BlankStateTextButton(props: BlankStateTextButtonProps) {\n return <TextButton variant=\"tertiary\" {...props} />\n}\n\nBlankStateTextButton.displayName = 'BlankState.TextButton'\n\n// ========================================\n// ====== Styles ==========================\n// ========================================\n\nconst useStyles = () => {\n const { colors } = useTheme()\n\n return StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n gap: 16,\n padding: 16,\n },\n imagery: {\n color: colors.iconColorDefaultDisabled,\n },\n content: {\n alignItems: 'center',\n gap: 4,\n maxWidth: 250,\n },\n heading: {\n textAlign: 'center',\n color: colors.textColorDefaultSecondary,\n },\n text: {\n textAlign: 'center',\n color: colors.textColorDefaultSecondary,\n },\n })\n}\n"]}
@@ -29,7 +29,7 @@ interface FormSheetRootProps {
29
29
  contentStyle?: StyleProp<ViewStyle>;
30
30
  showAndroidSheetGrabber?: boolean;
31
31
  }
32
- export declare function FormSheetRoot({ children, style, contentStyle, showAndroidSheetGrabber, }: FormSheetRootProps): import("react/jsx-runtime").JSX.Element;
32
+ export declare function FormSheetRoot({ children, style, contentStyle, showAndroidSheetGrabber, }: FormSheetRootProps): React.JSX.Element;
33
33
  export declare namespace FormSheetRoot {
34
34
  var displayName: string;
35
35
  }
@@ -1 +1 @@
1
- {"version":3,"file":"form_sheet.d.ts","sourceRoot":"","sources":["../../../src/components/primitive/form_sheet.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAA;AAC7E,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACxC,OAAO,EAKL,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,EAAyB,UAAU,EAAoB,MAAM,YAAY,CAAA;AAMhF;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,GAAI,gDAIvC,4BAAiC,KAAG,4BAQrC,CAAA;AAYF,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAA;IAClC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAA;IACtC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAA;IACtC,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAA;IAChD,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,CAAC,CAAA;IACpD,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,8BAA8B,CAAC,CAAA;IAC1D,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAA;CACnD,CAAA;wBAE2B,mBAAmB;AAA/C,wBAA+C;AAC/C,YAAY,EACV,oBAAoB,EACpB,2BAA2B,EAC3B,0BAA0B,EAC1B,oBAAoB,EACpB,8BAA8B,EAC9B,yBAAyB,EACzB,kBAAkB,GACnB,CAAA;AAMD,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,SAAS,CAAA;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAC5B,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IACnC,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAClC;AAED,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,uBAA8B,GAC/B,EAAE,kBAAkB,2CASpB;yBAde,aAAa;;;AAmC7B,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,SAAS,CAAA;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;CAC7B;AAkBD,UAAU,yBAAyB;IACjC,QAAQ,EAAE,SAAS,CAAA;CACpB;AAsBD,UAAU,2BAA2B;IACnC,QAAQ,EAAE,SAAS,CAAA;CACpB;AAiBD,UAAU,8BACR,SAAQ,IAAI,CAAC,eAAe,EAAE,uBAAuB,GAAG,aAAa,CAAC;IACtE,QAAQ,EAAE,MAAM,CAAA;CACjB;AAoBD,UAAU,0BACR,SAAQ,IAAI,CAAC,WAAW,EAAE,uBAAuB,GAAG,aAAa,CAAC;CAAG;AAmBvE,QAAA,MAAM,6BAA6B;;;CAGzB,CAAA;AAEV,KAAK,8BAA8B,GACjC,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,OAAO,6BAA6B,CAAC,CAAA;AAEpF,UAAU,oBAAoB;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,UAAU,CAAA;IACrB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,UAAU,CAAC,EAAE,8BAA8B,CAAA;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB"}
1
+ {"version":3,"file":"form_sheet.d.ts","sourceRoot":"","sources":["../../../src/components/primitive/form_sheet.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAA;AAC7E,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACxC,OAAO,EAKL,KAAK,iBAAiB,EACtB,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,cAAc,CAAA;AAIrB,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,EAAyB,UAAU,EAAoB,MAAM,YAAY,CAAA;AAMhF;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,GAAI,gDAIvC,4BAAiC,KAAG,4BAQrC,CAAA;AAYF,KAAK,mBAAmB,GAAG;IACzB,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAA;IAClC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAA;IACtC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAA;IACtC,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,yBAAyB,CAAC,CAAA;IAChD,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,2BAA2B,CAAC,CAAA;IACpD,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,8BAA8B,CAAC,CAAA;IAC1D,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,0BAA0B,CAAC,CAAA;CACnD,CAAA;wBAE2B,mBAAmB;AAA/C,wBAA+C;AAC/C,YAAY,EACV,oBAAoB,EACpB,2BAA2B,EAC3B,0BAA0B,EAC1B,oBAAoB,EACpB,8BAA8B,EAC9B,yBAAyB,EACzB,kBAAkB,GACnB,CAAA;AAMD,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,SAAS,CAAA;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAC5B,YAAY,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IACnC,uBAAuB,CAAC,EAAE,OAAO,CAAA;CAClC;AAED,wBAAgB,aAAa,CAAC,EAC5B,QAAQ,EACR,KAAK,EACL,YAAY,EACZ,uBAA8B,GAC/B,EAAE,kBAAkB,qBASpB;yBAde,aAAa;;;AAmC7B,UAAU,oBAAoB;IAC5B,QAAQ,EAAE,SAAS,CAAA;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;CAC7B;AAkBD,UAAU,yBAAyB;IACjC,QAAQ,EAAE,SAAS,CAAA;CACpB;AAsBD,UAAU,2BAA2B;IACnC,QAAQ,EAAE,SAAS,CAAA;CACpB;AAiBD,UAAU,8BACR,SAAQ,IAAI,CAAC,eAAe,EAAE,uBAAuB,GAAG,aAAa,CAAC;IACtE,QAAQ,EAAE,MAAM,CAAA;CACjB;AAoBD,UAAU,0BACR,SAAQ,IAAI,CAAC,WAAW,EAAE,uBAAuB,GAAG,aAAa,CAAC;CAAG;AAmBvE,QAAA,MAAM,6BAA6B;;;CAGzB,CAAA;AAEV,KAAK,8BAA8B,GACjC,CAAC,OAAO,6BAA6B,CAAC,CAAC,MAAM,OAAO,6BAA6B,CAAC,CAAA;AAEpF,UAAU,oBAAoB;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,CAAC,EAAE,UAAU,CAAA;IACrB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,iBAAiB,CAAC,EAAE,iBAAiB,CAAA;IACrC,UAAU,CAAC,EAAE,8BAA8B,CAAA;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB"}
@@ -1,5 +1,5 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
1
  import { PlatformPressable, useHeaderHeight } from '@react-navigation/elements';
2
+ import React from 'react';
3
3
  import { Platform, StyleSheet, View, useWindowDimensions, } from 'react-native';
4
4
  import { useSafeAreaInsets } from 'react-native-safe-area-context';
5
5
  import { useTheme } from '../../hooks';
@@ -36,7 +36,10 @@ const FormSheet = {
36
36
  export default FormSheet;
37
37
  export function FormSheetRoot({ children, style, contentStyle, showAndroidSheetGrabber = true, }) {
38
38
  const styles = useStyles();
39
- return (_jsxs(View, { style: [styles.container, style], collapsable: false, children: [_jsx(View, { style: [styles.content, contentStyle], children: children }), showAndroidSheetGrabber && _jsx(AndroidSheetGrabber, {})] }));
39
+ return (<View style={[styles.container, style]} collapsable={false}>
40
+ <View style={[styles.content, contentStyle]}>{children}</View>
41
+ {showAndroidSheetGrabber && <AndroidSheetGrabber />}
42
+ </View>);
40
43
  }
41
44
  FormSheetRoot.displayName = 'FormSheet.Root';
42
45
  // ====================================
@@ -45,31 +48,35 @@ FormSheetRoot.displayName = 'FormSheet.Root';
45
48
  function AndroidSheetGrabber() {
46
49
  const styles = useStyles();
47
50
  return Platform.select({
48
- android: _jsx(View, { style: styles.androidSheetGrabber }),
51
+ android: <View style={styles.androidSheetGrabber}/>,
49
52
  ios: null,
50
53
  });
51
54
  }
52
55
  function FormSheetHeader({ children, style }) {
53
56
  const styles = useStyles();
54
- return (_jsx(View, { style: [styles.header, style], children: _jsx(View, { style: styles.headerContent, children: children }) }));
57
+ return (<View style={[styles.header, style]}>
58
+ <View style={styles.headerContent}>{children}</View>
59
+ </View>);
55
60
  }
56
61
  FormSheetHeader.displayName = 'FormSheet.Header';
57
62
  function FormSheetHeaderTitle({ children }) {
58
63
  const styles = useStyles();
59
- return (_jsx(Heading, { variant: "h3", style: styles.headerTitle, maxFontSizeMultiplier: MAX_FONT_SIZE_MULTIPLIER_LANDMARK, children: children }));
64
+ return (<Heading variant="h3" style={styles.headerTitle} maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK}>
65
+ {children}
66
+ </Heading>);
60
67
  }
61
68
  FormSheetHeaderTitle.displayName = 'FormSheet.HeaderTitle';
62
69
  function FormSheetHeaderActions({ children }) {
63
70
  const styles = useStyles();
64
- return _jsx(View, { style: styles.headerActions, children: children });
71
+ return <View style={styles.headerActions}>{children}</View>;
65
72
  }
66
73
  FormSheetHeaderActions.displayName = 'FormSheet.HeaderActions';
67
74
  function FormSheetHeaderTextButton(props) {
68
- return (_jsx(TextButton, { ...props, maxFontSizeMultiplier: MAX_FONT_SIZE_MULTIPLIER_LANDMARK, accessibilityShowsLargeContentViewer: true, accessibilityLargeContentTitle: props.children }));
75
+ return (<TextButton {...props} maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK} accessibilityShowsLargeContentViewer accessibilityLargeContentTitle={props.children}/>);
69
76
  }
70
77
  FormSheetHeaderTextButton.displayName = 'FormSheet.HeaderTextButton';
71
78
  function FormSheetHeaderButton(props) {
72
- return (_jsx(Button, { ...props, maxFontSizeMultiplier: MAX_FONT_SIZE_MULTIPLIER_LANDMARK, accessibilityShowsLargeContentViewer: true, accessibilityLargeContentTitle: props.title }));
79
+ return (<Button {...props} maxFontSizeMultiplier={MAX_FONT_SIZE_MULTIPLIER_LANDMARK} accessibilityShowsLargeContentViewer accessibilityLargeContentTitle={props.title}/>);
73
80
  }
74
81
  FormSheetHeaderButton.displayName = 'FormSheet.HeaderButton';
75
82
  // ====================================
@@ -81,7 +88,13 @@ const FORM_SHEET_ACTION_APPEARANCES = {
81
88
  };
82
89
  function FormSheetAction({ title, iconName, onPress, accessibilityLabel, accessibilityHint, accessibilityRole = 'button', appearance = 'neutral', disabled = false, disabledReason, }) {
83
90
  const styles = useStyles({ appearance, disabled });
84
- return (_jsxs(PlatformPressable, { onPress: onPress, accessibilityLabel: accessibilityLabel, accessibilityHint: accessibilityHint ?? (disabled && disabledReason ? disabledReason : undefined), accessibilityRole: accessibilityRole, style: styles.actionPressable, disabled: disabled, children: [iconName && (_jsx(Icon, { name: iconName, size: 16, accessibilityElementsHidden: true, style: styles.actionIcon })), _jsxs(View, { style: styles.actionTextBlock, children: [_jsx(Text, { style: styles.actionTitle, children: title }), disabled && disabledReason && (_jsx(Text, { style: styles.actionDisabledReason, children: disabledReason }))] })] }));
91
+ return (<PlatformPressable onPress={onPress} accessibilityLabel={accessibilityLabel} accessibilityHint={accessibilityHint ?? (disabled && disabledReason ? disabledReason : undefined)} accessibilityRole={accessibilityRole} style={styles.actionPressable} disabled={disabled}>
92
+ {iconName && (<Icon name={iconName} size={16} accessibilityElementsHidden style={styles.actionIcon}/>)}
93
+ <View style={styles.actionTextBlock}>
94
+ <Text style={styles.actionTitle}>{title}</Text>
95
+ {disabled && disabledReason && (<Text style={styles.actionDisabledReason}>{disabledReason}</Text>)}
96
+ </View>
97
+ </PlatformPressable>);
85
98
  }
86
99
  FormSheetAction.displayName = 'FormSheet.Action';
87
100
  const useStyles = ({ appearance = 'neutral', disabled = false } = {}) => {