@kesha-antonov/react-native-chat 4.2.0 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (237) hide show
  1. package/README.md +252 -47
  2. package/lib/Actions.d.ts +5 -5
  3. package/lib/Actions.d.ts.map +1 -1
  4. package/lib/Actions.js +28 -39
  5. package/lib/Actions.js.map +1 -1
  6. package/lib/Avatar.d.ts.map +1 -1
  7. package/lib/Avatar.js +22 -27
  8. package/lib/Avatar.js.map +1 -1
  9. package/lib/Bubble/index.d.ts.map +1 -1
  10. package/lib/Bubble/index.js +86 -25
  11. package/lib/Bubble/index.js.map +1 -1
  12. package/lib/Bubble/styles.d.ts +28 -11
  13. package/lib/Bubble/styles.d.ts.map +1 -1
  14. package/lib/Bubble/styles.js +108 -80
  15. package/lib/Bubble/styles.js.map +1 -1
  16. package/lib/Bubble/types.d.ts +12 -7
  17. package/lib/Bubble/types.d.ts.map +1 -1
  18. package/lib/Chat/ChatKeyboardAvoidingView.d.ts +8 -3
  19. package/lib/Chat/ChatKeyboardAvoidingView.d.ts.map +1 -1
  20. package/lib/Chat/ChatKeyboardAvoidingView.js +3 -5
  21. package/lib/Chat/ChatKeyboardAvoidingView.js.map +1 -1
  22. package/lib/Chat/index.d.ts.map +1 -1
  23. package/lib/Chat/index.js +65 -25
  24. package/lib/Chat/index.js.map +1 -1
  25. package/lib/Chat/types.d.ts +35 -25
  26. package/lib/Chat/types.d.ts.map +1 -1
  27. package/lib/ChatAvatar.d.ts.map +1 -1
  28. package/lib/ChatAvatar.js +11 -17
  29. package/lib/ChatAvatar.js.map +1 -1
  30. package/lib/ChatContext.d.ts +29 -1
  31. package/lib/ChatContext.d.ts.map +1 -1
  32. package/lib/ChatContext.js +3 -0
  33. package/lib/ChatContext.js.map +1 -1
  34. package/lib/Color.d.ts.map +1 -1
  35. package/lib/Color.js +6 -2
  36. package/lib/Color.js.map +1 -1
  37. package/lib/Composer.d.ts +14 -1
  38. package/lib/Composer.d.ts.map +1 -1
  39. package/lib/Composer.js +63 -50
  40. package/lib/Composer.js.map +1 -1
  41. package/lib/Day/index.d.ts.map +1 -1
  42. package/lib/Day/index.js +7 -3
  43. package/lib/Day/index.js.map +1 -1
  44. package/lib/Day/styles.d.ts +6 -7
  45. package/lib/Day/styles.d.ts.map +1 -1
  46. package/lib/Day/styles.js +11 -13
  47. package/lib/Day/styles.js.map +1 -1
  48. package/lib/Icons.d.ts +24 -0
  49. package/lib/Icons.d.ts.map +1 -0
  50. package/lib/Icons.js +2 -0
  51. package/lib/Icons.js.map +1 -0
  52. package/lib/InputToolbar.d.ts +18 -5
  53. package/lib/InputToolbar.d.ts.map +1 -1
  54. package/lib/InputToolbar.js +223 -19
  55. package/lib/InputToolbar.js.map +1 -1
  56. package/lib/LoadEarlierMessages.d.ts.map +1 -1
  57. package/lib/LoadEarlierMessages.js +12 -7
  58. package/lib/LoadEarlierMessages.js.map +1 -1
  59. package/lib/Message/index.d.ts.map +1 -1
  60. package/lib/Message/index.js +10 -9
  61. package/lib/Message/index.js.map +1 -1
  62. package/lib/Message/styles.js +2 -2
  63. package/lib/Message/styles.js.map +1 -1
  64. package/lib/MessageAudio.d.ts +2 -1
  65. package/lib/MessageAudio.d.ts.map +1 -1
  66. package/lib/MessageAudio.js +121 -19
  67. package/lib/MessageAudio.js.map +1 -1
  68. package/lib/MessageLocation.d.ts +9 -0
  69. package/lib/MessageLocation.d.ts.map +1 -0
  70. package/lib/MessageLocation.js +85 -0
  71. package/lib/MessageLocation.js.map +1 -0
  72. package/lib/MessageText.d.ts +12 -1
  73. package/lib/MessageText.d.ts.map +1 -1
  74. package/lib/MessageText.js +38 -11
  75. package/lib/MessageText.js.map +1 -1
  76. package/lib/MessageVideo.d.ts +2 -1
  77. package/lib/MessageVideo.d.ts.map +1 -1
  78. package/lib/MessageVideo.js +156 -18
  79. package/lib/MessageVideo.js.map +1 -1
  80. package/lib/MessagesContainer/components/Item/index.d.ts +2 -1
  81. package/lib/MessagesContainer/components/Item/index.d.ts.map +1 -1
  82. package/lib/MessagesContainer/components/Item/index.js +23 -1
  83. package/lib/MessagesContainer/components/Item/index.js.map +1 -1
  84. package/lib/MessagesContainer/index.d.ts.map +1 -1
  85. package/lib/MessagesContainer/index.js +24 -11
  86. package/lib/MessagesContainer/index.js.map +1 -1
  87. package/lib/MessagesContainer/styles.d.ts +23 -3
  88. package/lib/MessagesContainer/styles.d.ts.map +1 -1
  89. package/lib/MessagesContainer/styles.js +25 -5
  90. package/lib/MessagesContainer/styles.js.map +1 -1
  91. package/lib/Models.d.ts +72 -0
  92. package/lib/Models.d.ts.map +1 -1
  93. package/lib/QuickReplies.d.ts +1 -1
  94. package/lib/QuickReplies.d.ts.map +1 -1
  95. package/lib/QuickReplies.js +13 -7
  96. package/lib/QuickReplies.js.map +1 -1
  97. package/lib/Reactions/MessageReactions.d.ts.map +1 -1
  98. package/lib/Reactions/MessageReactions.js +11 -10
  99. package/lib/Reactions/MessageReactions.js.map +1 -1
  100. package/lib/Reactions/ReactionPicker.d.ts.map +1 -1
  101. package/lib/Reactions/ReactionPicker.js +5 -3
  102. package/lib/Reactions/ReactionPicker.js.map +1 -1
  103. package/lib/Send.d.ts +2 -2
  104. package/lib/Send.d.ts.map +1 -1
  105. package/lib/Send.js +37 -37
  106. package/lib/Send.js.map +1 -1
  107. package/lib/SystemMessage.d.ts.map +1 -1
  108. package/lib/SystemMessage.js +8 -5
  109. package/lib/SystemMessage.js.map +1 -1
  110. package/lib/Theme.d.ts +148 -0
  111. package/lib/Theme.d.ts.map +1 -0
  112. package/lib/Theme.js +142 -0
  113. package/lib/Theme.js.map +1 -0
  114. package/lib/Time.d.ts.map +1 -1
  115. package/lib/Time.js +7 -5
  116. package/lib/Time.js.map +1 -1
  117. package/lib/TypingIndicator/index.d.ts.map +1 -1
  118. package/lib/TypingIndicator/index.js +4 -1
  119. package/lib/TypingIndicator/index.js.map +1 -1
  120. package/lib/TypingIndicator/styles.d.ts +2 -2
  121. package/lib/TypingIndicator/styles.d.ts.map +1 -1
  122. package/lib/TypingIndicator/styles.js +4 -5
  123. package/lib/TypingIndicator/styles.js.map +1 -1
  124. package/lib/components/AttachmentSheet.d.ts +28 -0
  125. package/lib/components/AttachmentSheet.d.ts.map +1 -0
  126. package/lib/components/AttachmentSheet.js +177 -0
  127. package/lib/components/AttachmentSheet.js.map +1 -0
  128. package/lib/components/BasicMarkdown.d.ts +12 -0
  129. package/lib/components/BasicMarkdown.d.ts.map +1 -0
  130. package/lib/components/BasicMarkdown.js +220 -0
  131. package/lib/components/BasicMarkdown.js.map +1 -0
  132. package/lib/components/ContextMenu.d.ts +25 -0
  133. package/lib/components/ContextMenu.d.ts.map +1 -0
  134. package/lib/components/ContextMenu.js +122 -0
  135. package/lib/components/ContextMenu.js.map +1 -0
  136. package/lib/components/Icon.d.ts +17 -0
  137. package/lib/components/Icon.d.ts.map +1 -0
  138. package/lib/components/Icon.js +19 -0
  139. package/lib/components/Icon.js.map +1 -0
  140. package/lib/components/LucideIcon.d.ts +10 -0
  141. package/lib/components/LucideIcon.d.ts.map +1 -0
  142. package/lib/components/LucideIcon.js +118 -0
  143. package/lib/components/LucideIcon.js.map +1 -0
  144. package/lib/components/MarkdownMessageText.d.ts +19 -0
  145. package/lib/components/MarkdownMessageText.d.ts.map +1 -0
  146. package/lib/components/MarkdownMessageText.js +35 -0
  147. package/lib/components/MarkdownMessageText.js.map +1 -0
  148. package/lib/components/MediaCard.d.ts +19 -0
  149. package/lib/components/MediaCard.d.ts.map +1 -0
  150. package/lib/components/MediaCard.js +102 -0
  151. package/lib/components/MediaCard.js.map +1 -0
  152. package/lib/components/MediaControls.d.ts +41 -0
  153. package/lib/components/MediaControls.d.ts.map +1 -0
  154. package/lib/components/MediaControls.js +523 -0
  155. package/lib/components/MediaControls.js.map +1 -0
  156. package/lib/components/MessageReply.d.ts.map +1 -1
  157. package/lib/components/MessageReply.js +11 -9
  158. package/lib/components/MessageReply.js.map +1 -1
  159. package/lib/components/ReplyPreview.d.ts +3 -1
  160. package/lib/components/ReplyPreview.d.ts.map +1 -1
  161. package/lib/components/ReplyPreview.js +36 -36
  162. package/lib/components/ReplyPreview.js.map +1 -1
  163. package/lib/components/SendIcon.d.ts +13 -0
  164. package/lib/components/SendIcon.d.ts.map +1 -0
  165. package/lib/components/SendIcon.js +37 -0
  166. package/lib/components/SendIcon.js.map +1 -0
  167. package/lib/components/Ticks.d.ts +25 -0
  168. package/lib/components/Ticks.d.ts.map +1 -0
  169. package/lib/components/Ticks.js +102 -0
  170. package/lib/components/Ticks.js.map +1 -0
  171. package/lib/components/VideoNoteOverlay.d.ts +25 -0
  172. package/lib/components/VideoNoteOverlay.d.ts.map +1 -0
  173. package/lib/components/VideoNoteOverlay.js +151 -0
  174. package/lib/components/VideoNoteOverlay.js.map +1 -0
  175. package/lib/components/VideoNoteRecorder.d.ts +19 -0
  176. package/lib/components/VideoNoteRecorder.d.ts.map +1 -0
  177. package/lib/components/VideoNoteRecorder.js +634 -0
  178. package/lib/components/VideoNoteRecorder.js.map +1 -0
  179. package/lib/components/VideoRecordButton.d.ts +29 -0
  180. package/lib/components/VideoRecordButton.d.ts.map +1 -0
  181. package/lib/components/VideoRecordButton.js +117 -0
  182. package/lib/components/VideoRecordButton.js.map +1 -0
  183. package/lib/components/VoiceMessageInput.d.ts +33 -0
  184. package/lib/components/VoiceMessageInput.d.ts.map +1 -0
  185. package/lib/components/VoiceMessageInput.js +396 -0
  186. package/lib/components/VoiceMessageInput.js.map +1 -0
  187. package/lib/components/WaveformPlayer.d.ts +19 -0
  188. package/lib/components/WaveformPlayer.d.ts.map +1 -0
  189. package/lib/components/WaveformPlayer.js +367 -0
  190. package/lib/components/WaveformPlayer.js.map +1 -0
  191. package/lib/components/mediaPalette.d.ts +23 -0
  192. package/lib/components/mediaPalette.d.ts.map +1 -0
  193. package/lib/components/mediaPalette.js +16 -0
  194. package/lib/components/mediaPalette.js.map +1 -0
  195. package/lib/components/mediaPlayback.d.ts +22 -0
  196. package/lib/components/mediaPlayback.d.ts.map +1 -0
  197. package/lib/components/mediaPlayback.js +34 -0
  198. package/lib/components/mediaPlayback.js.map +1 -0
  199. package/lib/hooks/useColorScheme.d.ts +9 -2
  200. package/lib/hooks/useColorScheme.d.ts.map +1 -1
  201. package/lib/hooks/useColorScheme.js +9 -3
  202. package/lib/hooks/useColorScheme.js.map +1 -1
  203. package/lib/hooks/useIcons.d.ts +4 -0
  204. package/lib/hooks/useIcons.d.ts.map +1 -0
  205. package/lib/hooks/useIcons.js +8 -0
  206. package/lib/hooks/useIcons.js.map +1 -0
  207. package/lib/hooks/useKeyboardVerticalOffset.d.ts +17 -8
  208. package/lib/hooks/useKeyboardVerticalOffset.d.ts.map +1 -1
  209. package/lib/hooks/useKeyboardVerticalOffset.js +29 -8
  210. package/lib/hooks/useKeyboardVerticalOffset.js.map +1 -1
  211. package/lib/hooks/useLabels.d.ts +4 -0
  212. package/lib/hooks/useLabels.d.ts.map +1 -0
  213. package/lib/hooks/useLabels.js +8 -0
  214. package/lib/hooks/useLabels.js.map +1 -0
  215. package/lib/hooks/useTheme.d.ts +21 -0
  216. package/lib/hooks/useTheme.d.ts.map +1 -0
  217. package/lib/hooks/useTheme.js +32 -0
  218. package/lib/hooks/useTheme.js.map +1 -0
  219. package/lib/i18n.d.ts +59 -0
  220. package/lib/i18n.d.ts.map +1 -0
  221. package/lib/i18n.js +122 -0
  222. package/lib/i18n.js.map +1 -0
  223. package/lib/index.d.ts +17 -0
  224. package/lib/index.d.ts.map +1 -1
  225. package/lib/index.js +17 -0
  226. package/lib/index.js.map +1 -1
  227. package/lib/types.d.ts +2 -1
  228. package/lib/types.d.ts.map +1 -1
  229. package/package.json +99 -44
  230. package/lib/MessageReply.d.ts +0 -15
  231. package/lib/MessageReply.d.ts.map +0 -1
  232. package/lib/MessageReply.js +0 -102
  233. package/lib/MessageReply.js.map +0 -1
  234. package/lib/ReplyPreview.d.ts +0 -14
  235. package/lib/ReplyPreview.d.ts.map +0 -1
  236. package/lib/ReplyPreview.js +0 -94
  237. package/lib/ReplyPreview.js.map +0 -1
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { IconName } from '../Icons';
3
+ export declare const isSvgAvailable: boolean;
4
+ export interface LucideIconProps {
5
+ name: IconName;
6
+ color: string;
7
+ size: number;
8
+ }
9
+ export declare const LucideIcon: ({ name, color, size }: LucideIconProps) => React.ReactElement | null;
10
+ //# sourceMappingURL=LucideIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LucideIcon.d.ts","sourceRoot":"","sources":["../../src/components/LucideIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AA0BnC,eAAO,MAAM,cAAc,SAAkB,CAAA;AAuF7C,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,QAAQ,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;CACb;AAED,eAAO,MAAM,UAAU,GAAI,uBAAuB,eAAe,KAAG,KAAK,CAAC,YAAY,GAAG,IAoBxF,CAAA"}
@@ -0,0 +1,118 @@
1
+ import React from 'react';
2
+ // Optional react-native-svg, resolved through a try/catch require so the bundle
3
+ // works whether or not it's installed. When present, all built-in icons render
4
+ // as their official Lucide glyphs (https://lucide.dev); otherwise the caller's
5
+ // drawn fallback is used, so there's never a hard dependency.
6
+ let Svg = null;
7
+ let Path = null;
8
+ let Circle = null;
9
+ let Rect = null;
10
+ let Line = null;
11
+ let Polyline = null;
12
+ let Polygon = null;
13
+ try {
14
+ const svg = require('react-native-svg');
15
+ Svg = svg.default ?? svg.Svg;
16
+ Path = svg.Path;
17
+ Circle = svg.Circle;
18
+ Rect = svg.Rect;
19
+ Line = svg.Line;
20
+ Polyline = svg.Polyline;
21
+ Polygon = svg.Polygon;
22
+ }
23
+ catch {
24
+ Svg = null;
25
+ }
26
+ export const isSvgAvailable = !!(Svg && Path);
27
+ // Icons drawn as solid shapes (play/pause read better filled on a button).
28
+ const FILLED = new Set(['play', 'pause']);
29
+ // Lucide glyph geometry (24x24 viewBox), one entry per IconName. Copied verbatim
30
+ // from lucide.dev so the icons match the design system exactly.
31
+ const glyphs = {
32
+ send: () => [
33
+ <Path key='a' d='M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z'/>,
34
+ <Path key='b' d='m21.854 2.147-10.94 10.939'/>,
35
+ ],
36
+ mic: () => [
37
+ <Path key='a' d='M12 2a3 3 0 0 0-3 3v7a3 3 0 0 0 6 0V5a3 3 0 0 0-3-3Z'/>,
38
+ <Path key='b' d='M19 10v2a7 7 0 0 1-14 0v-2'/>,
39
+ <Line key='c' x1={12} x2={12} y1={19} y2={22}/>,
40
+ ],
41
+ camera: () => [
42
+ <Path key='a' d='M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z'/>,
43
+ <Circle key='b' cx={12} cy={13} r={3}/>,
44
+ ],
45
+ play: () => [
46
+ <Polygon key='a' points='6 3 20 12 6 21 6 3'/>,
47
+ ],
48
+ pause: () => [
49
+ <Rect key='a' x={14} y={3} width={4} height={18} rx={1}/>,
50
+ <Rect key='b' x={6} y={3} width={4} height={18} rx={1}/>,
51
+ ],
52
+ close: () => [
53
+ <Path key='a' d='M18 6 6 18'/>,
54
+ <Path key='b' d='m6 6 12 12'/>,
55
+ ],
56
+ chevronLeft: () => [
57
+ <Path key='a' d='m15 18-6-6 6-6'/>,
58
+ ],
59
+ chevronDown: () => [
60
+ <Path key='a' d='m6 9 6 6 6-6'/>,
61
+ ],
62
+ clock: () => [
63
+ <Circle key='a' cx={12} cy={12} r={10}/>,
64
+ <Polyline key='b' points='12 6 12 12 16 14'/>,
65
+ ],
66
+ check: () => [
67
+ <Path key='a' d='M20 6 9 17l-5-5'/>,
68
+ ],
69
+ checkAll: () => [
70
+ <Path key='a' d='M18 6 7 17l-5-5'/>,
71
+ <Path key='b' d='m22 10-7.5 7.5L13 16'/>,
72
+ ],
73
+ pin: () => [
74
+ <Path key='a' d='M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0'/>,
75
+ <Circle key='b' cx={12} cy={10} r={3}/>,
76
+ ],
77
+ plus: () => [
78
+ <Path key='a' d='M5 12h14'/>,
79
+ <Path key='b' d='M12 5v14'/>,
80
+ ],
81
+ emoji: () => [
82
+ <Circle key='a' cx={12} cy={12} r={10}/>,
83
+ <Path key='b' d='M8 14s1.5 2 4 2 4-2 4-2'/>,
84
+ <Line key='c' x1={9} x2={9.01} y1={9} y2={9}/>,
85
+ <Line key='d' x1={15} x2={15.01} y1={9} y2={9}/>,
86
+ ],
87
+ paperclip: () => [
88
+ <Path key='a' d='m21.44 11.05-9.19 9.19a6 6 0 0 1-8.49-8.49l8.57-8.57A4 4 0 1 1 18 8.84l-8.59 8.57a2 2 0 0 1-2.83-2.83l8.49-8.48'/>,
89
+ ],
90
+ reply: () => [
91
+ <Polyline key='a' points='9 17 4 12 9 7'/>,
92
+ <Path key='b' d='M20 18v-2a4 4 0 0 0-4-4H4'/>,
93
+ ],
94
+ pencil: () => [
95
+ <Path key='a' d='M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z'/>,
96
+ <Path key='b' d='m15 5 4 4'/>,
97
+ ],
98
+ lock: () => [
99
+ <Rect key='a' x={3} y={11} width={18} height={11} rx={2} ry={2}/>,
100
+ <Path key='b' d='M7 11V7a5 5 0 0 1 10 0v4'/>,
101
+ ],
102
+ trash: () => [
103
+ <Path key='a' d='M3 6h18'/>,
104
+ <Path key='b' d='M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6'/>,
105
+ <Path key='c' d='M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2'/>,
106
+ <Line key='d' x1={10} x2={10} y1={11} y2={17}/>,
107
+ <Line key='e' x1={14} x2={14} y1={11} y2={17}/>,
108
+ ],
109
+ };
110
+ export const LucideIcon = ({ name, color, size }) => {
111
+ if (!isSvgAvailable)
112
+ return null;
113
+ const filled = FILLED.has(name);
114
+ return (<Svg width={size} height={size} viewBox='0 0 24 24' fill={filled ? color : 'none'} stroke={filled ? 'none' : color} strokeWidth={2} strokeLinecap='round' strokeLinejoin='round'>
115
+ {glyphs[name]()}
116
+ </Svg>);
117
+ };
118
+ //# sourceMappingURL=LucideIcon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LucideIcon.js","sourceRoot":"","sources":["../../src/components/LucideIcon.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import { StyleProp, TextStyle, ViewStyle } from 'react-native';
3
+ export declare const isMarkdownAvailable: boolean;
4
+ export interface MarkdownMessageTextProps {
5
+ text: string;
6
+ isStreaming?: boolean;
7
+ /** Base text style (color/size) derived from the theme. */
8
+ textStyle?: StyleProp<TextStyle>;
9
+ containerStyle?: StyleProp<ViewStyle>;
10
+ /** Escape hatch: extra props forwarded to the Streamdown component (theming, rules, etc.). */
11
+ componentProps?: Record<string, unknown>;
12
+ }
13
+ /**
14
+ * Renders message text as markdown via react-native-streamdown. Only used when
15
+ * the package is installed and markdown is enabled; otherwise MessageText falls
16
+ * back to its plain-text LinkParser path.
17
+ */
18
+ export declare const MarkdownMessageText: ({ text, isStreaming, textStyle, containerStyle, componentProps, }: MarkdownMessageTextProps) => React.JSX.Element | null;
19
+ //# sourceMappingURL=MarkdownMessageText.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkdownMessageText.d.ts","sourceRoot":"","sources":["../../src/components/MarkdownMessageText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,SAAS,EAAQ,SAAS,EAAQ,SAAS,EAAE,MAAM,cAAc,CAAA;AAiB1E,eAAO,MAAM,mBAAmB,SAAe,CAAA;AAE/C,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,2DAA2D;IAC3D,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IAChC,cAAc,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;IACrC,8FAA8F;IAC9F,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACzC;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,mEAMjC,wBAAwB,6BAgB1B,CAAA"}
@@ -0,0 +1,35 @@
1
+ import React from 'react';
2
+ import { Text, View } from 'react-native';
3
+ import { StreamingCursor } from './StreamingCursor';
4
+ // Optional markdown renderer for AI/streamed replies. Resolved through a
5
+ // try/catch require so the bundle works whether or not the consumer installed
6
+ // `react-native-streamdown` (Metro treats try/catch-wrapped requires as optional
7
+ // dependencies). Streamdown renders streaming-incomplete markdown gracefully
8
+ // (unterminated code fences, half-written bold, partial tables).
9
+ let streamdown = null;
10
+ try {
11
+ streamdown = require('react-native-streamdown');
12
+ }
13
+ catch {
14
+ streamdown = null;
15
+ }
16
+ const Streamdown = streamdown?.Streamdown ?? streamdown?.default ?? null;
17
+ export const isMarkdownAvailable = !!Streamdown;
18
+ /**
19
+ * Renders message text as markdown via react-native-streamdown. Only used when
20
+ * the package is installed and markdown is enabled; otherwise MessageText falls
21
+ * back to its plain-text LinkParser path.
22
+ */
23
+ export const MarkdownMessageText = ({ text, isStreaming, textStyle, containerStyle, componentProps, }) => {
24
+ if (!Streamdown)
25
+ return null;
26
+ return (<View style={containerStyle}>
27
+ <Streamdown style={textStyle} {...componentProps}>
28
+ {text}
29
+ </Streamdown>
30
+ {isStreaming && (<Text style={textStyle}>
31
+ <StreamingCursor />
32
+ </Text>)}
33
+ </View>);
34
+ };
35
+ //# sourceMappingURL=MarkdownMessageText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkdownMessageText.js","sourceRoot":"","sources":["../../src/components/MarkdownMessageText.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAa,IAAI,EAAa,IAAI,EAAa,MAAM,cAAc,CAAA;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,yEAAyE;AACzE,8EAA8E;AAC9E,iFAAiF;AACjF,6EAA6E;AAC7E,iEAAiE;AACjE,IAAI,UAAU,GAAQ,IAAI,CAAA;AAC1B,IAAI,CAAC;IACH,UAAU,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAA;AACjD,CAAC;AAAC,MAAM,CAAC;IACP,UAAU,GAAG,IAAI,CAAA;AACnB,CAAC;AAED,MAAM,UAAU,GAAG,UAAU,EAAE,UAAU,IAAI,UAAU,EAAE,OAAO,IAAI,IAAI,CAAA;AAExE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,UAAU,CAAA;AAY/C;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,EAClC,IAAI,EACJ,WAAW,EACX,SAAS,EACT,cAAc,EACd,cAAc,GACW,EAAE,EAAE;IAC7B,IAAI,CAAC,UAAU;QACb,OAAO,IAAI,CAAA;IAEb,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,CAAC,CAC1B;MAAA,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,cAAc,CAAC,CAC/C;QAAA,CAAC,IAAI,CACP;MAAA,EAAE,UAAU,CACZ;MAAA,CAAC,WAAW,IAAI,CACd,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CACrB;UAAA,CAAC,eAAe,CAAC,AAAD,EAClB;QAAA,EAAE,IAAI,CAAC,CACR,CACH;IAAA,EAAE,IAAI,CAAC,CACR,CAAA;AACH,CAAC,CAAA"}
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import { StyleProp, ViewStyle } from 'react-native';
3
+ export interface MediaCardProps {
4
+ kind: 'video' | 'audio';
5
+ /** Media URL; opened with Linking when pressed (unless onPress is provided). */
6
+ uri?: string;
7
+ position?: 'left' | 'right';
8
+ label?: string;
9
+ onPress?: () => void;
10
+ style?: StyleProp<ViewStyle>;
11
+ }
12
+ /**
13
+ * Lightweight, dependency-free media placeholder used when the optional
14
+ * expo-video / expo-audio players are not installed. It is a real, usable
15
+ * default: tapping plays the media in the system player via Linking (or fires
16
+ * the supplied onPress).
17
+ */
18
+ export declare const MediaCard: ({ kind, uri, position, label, onPress, style }: MediaCardProps) => React.JSX.Element;
19
+ //# sourceMappingURL=MediaCard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaCard.d.ts","sourceRoot":"","sources":["../../src/components/MediaCard.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsB,MAAM,OAAO,CAAA;AAC1C,OAAO,EAAsB,SAAS,EAA0B,SAAS,EAAE,MAAM,cAAc,CAAA;AAS/F,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,GAAG,OAAO,CAAA;IACvB,gFAAgF;IAChF,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAA;CAC7B;AAED;;;;;GAKG;AACH,eAAO,MAAM,SAAS,GAAI,gDAAyD,cAAc,sBA6ChG,CAAA"}
@@ -0,0 +1,102 @@
1
+ import React, { useCallback } from 'react';
2
+ import { Linking, Pressable, StyleSheet, Text, View } from 'react-native';
3
+ import { useLabels } from '../hooks/useLabels';
4
+ import { useThemedStyles } from '../hooks/useTheme';
5
+ import { Icon } from './Icon';
6
+ import { PlayIcon } from './MediaControls';
7
+ import { getMediaPalette } from './mediaPalette';
8
+ /**
9
+ * Lightweight, dependency-free media placeholder used when the optional
10
+ * expo-video / expo-audio players are not installed. It is a real, usable
11
+ * default: tapping plays the media in the system player via Linking (or fires
12
+ * the supplied onPress).
13
+ */
14
+ export const MediaCard = ({ kind, uri, position = 'left', label, onPress, style }) => {
15
+ const styles = useThemedStyles(position === 'right' ? createRightStyles : createLeftStyles);
16
+ const labels = useLabels();
17
+ const handlePress = useCallback(() => {
18
+ if (onPress) {
19
+ onPress();
20
+ return;
21
+ }
22
+ if (uri)
23
+ Linking.openURL(uri).catch(() => { });
24
+ }, [onPress, uri]);
25
+ const defaultLabel = kind === 'video' ? labels.video : labels.voiceMessage;
26
+ if (kind === 'video')
27
+ return (<Pressable onPress={handlePress} accessibilityRole='button' accessibilityLabel={label ?? defaultLabel} style={[styles.videoCard, style]}>
28
+ <View style={styles.playCircleLarge}>
29
+ <Icon name='play' color={styles.glyphColor.color} size={20} fallback={<PlayIcon color={styles.glyphColor.color} size={20}/>}/>
30
+ </View>
31
+ <Text style={styles.videoLabel} numberOfLines={1}>{label ?? defaultLabel}</Text>
32
+ </Pressable>);
33
+ return (<Pressable onPress={handlePress} accessibilityRole='button' accessibilityLabel={label ?? defaultLabel} style={[styles.audioRow, style]}>
34
+ <View style={styles.playCircle}>
35
+ <Icon name='play' color={styles.glyphColor.color} size={14} fallback={<PlayIcon color={styles.glyphColor.color} size={14}/>}/>
36
+ </View>
37
+ <View style={styles.audioTrack}/>
38
+ <Text style={styles.audioLabel} numberOfLines={1}>{label ?? defaultLabel}</Text>
39
+ </Pressable>);
40
+ };
41
+ const makeStyles = (theme, position) => {
42
+ const overlay = position === 'right' ? theme.colors.outgoingOverlay : theme.colors.reactionBackground;
43
+ const textColor = position === 'right' ? theme.colors.outgoingText : theme.colors.incomingText;
44
+ const palette = getMediaPalette(theme, position);
45
+ return StyleSheet.create({
46
+ // Carries the glyph color out of JSX and into the stylesheet.
47
+ glyphColor: {
48
+ color: palette.glyph,
49
+ },
50
+ videoCard: {
51
+ width: 220,
52
+ height: 140,
53
+ borderRadius: 12,
54
+ backgroundColor: overlay,
55
+ alignItems: 'center',
56
+ justifyContent: 'center',
57
+ margin: 6,
58
+ },
59
+ videoLabel: {
60
+ marginTop: 8,
61
+ fontSize: 13,
62
+ color: textColor,
63
+ },
64
+ playCircleLarge: {
65
+ width: 52,
66
+ height: 52,
67
+ borderRadius: 26,
68
+ backgroundColor: palette.control,
69
+ alignItems: 'center',
70
+ justifyContent: 'center',
71
+ },
72
+ audioRow: {
73
+ flexDirection: 'row',
74
+ alignItems: 'center',
75
+ paddingVertical: 6,
76
+ paddingHorizontal: 8,
77
+ minWidth: 180,
78
+ gap: 10,
79
+ },
80
+ playCircle: {
81
+ width: 36,
82
+ height: 36,
83
+ borderRadius: 18,
84
+ backgroundColor: palette.control,
85
+ alignItems: 'center',
86
+ justifyContent: 'center',
87
+ },
88
+ audioTrack: {
89
+ flex: 1,
90
+ height: 3,
91
+ borderRadius: 2,
92
+ backgroundColor: overlay,
93
+ },
94
+ audioLabel: {
95
+ fontSize: 12,
96
+ color: textColor,
97
+ },
98
+ });
99
+ };
100
+ const createLeftStyles = (theme) => makeStyles(theme, 'left');
101
+ const createRightStyles = (theme) => makeStyles(theme, 'right');
102
+ //# sourceMappingURL=MediaCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaCard.js","sourceRoot":"","sources":["../../src/components/MediaCard.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import React from 'react';
2
+ export interface MediaIconProps {
3
+ color?: string;
4
+ /** Icon height; defaults to 14. */
5
+ size?: number;
6
+ }
7
+ /** Right-pointing play triangle drawn with borders (no SVG dependency). */
8
+ export declare const PlayIcon: ({ color, size }: MediaIconProps) => React.JSX.Element;
9
+ /** Two-bar pause glyph. */
10
+ export declare const PauseIcon: ({ color, size }: MediaIconProps) => React.JSX.Element;
11
+ /** An "X" close glyph drawn with two crossed bars. */
12
+ export declare const CloseIcon: ({ color, size }: MediaIconProps) => React.JSX.Element;
13
+ /** A chevron drawn with two borders. `direction` points it left, down or up. */
14
+ export declare const ChevronIcon: ({ color, size, direction }: MediaIconProps & {
15
+ direction?: "left" | "down" | "up";
16
+ }) => React.JSX.Element;
17
+ /** A "+" glyph drawn with two crossed bars. */
18
+ export declare const PlusIcon: ({ color, size }: MediaIconProps) => React.JSX.Element;
19
+ /** A simple map-pin (teardrop head + inner dot) drawn with Views. */
20
+ export declare const PinIcon: ({ color, size }: MediaIconProps) => React.JSX.Element;
21
+ /** Microphone glyph (capsule body + stand) drawn with Views. */
22
+ export declare const MicIcon: ({ color, size }: MediaIconProps) => React.JSX.Element;
23
+ /** Camera glyph (body + lens) drawn with Views. */
24
+ export declare const CameraIcon: ({ color, size }: MediaIconProps) => React.JSX.Element;
25
+ /** A smiley face (circle outline + eyes + mouth). */
26
+ export declare const EmojiIcon: ({ color, size }: MediaIconProps) => React.JSX.Element;
27
+ /** A paperclip approximation: a rounded three-sided loop, tilted. */
28
+ export declare const PaperclipIcon: ({ color, size }: MediaIconProps) => React.JSX.Element;
29
+ /** A reply corner-arrow. */
30
+ export declare const ReplyArrowIcon: ({ color, size }: MediaIconProps) => React.JSX.Element;
31
+ /** A pencil (tilted body + tip). */
32
+ export declare const PencilIcon: ({ color, size }: MediaIconProps) => React.JSX.Element;
33
+ /** A padlock (body + shackle). */
34
+ export declare const LockIcon: ({ color, size }: MediaIconProps) => React.JSX.Element;
35
+ /** Camera-flip: a camera body with a circular arrow around it. */
36
+ export declare const FlipCameraIcon: ({ color, size }: MediaIconProps) => React.JSX.Element;
37
+ /** A lightning bolt, drawn as two offset triangles. */
38
+ export declare const FlashIcon: ({ color, size }: MediaIconProps) => React.JSX.Element;
39
+ /** A trash can (lid bar + body). */
40
+ export declare const TrashIcon: ({ color, size }: MediaIconProps) => React.JSX.Element;
41
+ //# sourceMappingURL=MediaControls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaControls.d.ts","sourceRoot":"","sources":["../../src/components/MediaControls.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAA;AAGtC,MAAM,WAAW,cAAc;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,2EAA2E;AAC3E,eAAO,MAAM,QAAQ,GAAI,iBAA+B,cAAc,sBAGrE,CAAA;AAED,2BAA2B;AAC3B,eAAO,MAAM,SAAS,GAAI,iBAA+B,cAAc,sBAQtE,CAAA;AA8BD,sDAAsD;AACtD,eAAO,MAAM,SAAS,GAAI,iBAA+B,cAAc,sBAQtE,CAAA;AAED,gFAAgF;AAChF,eAAO,MAAM,WAAW,GAAI,4BAAmD,cAAc,GAAG;IAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;CAAE,sBAGrI,CAAA;AAED,+CAA+C;AAC/C,eAAO,MAAM,QAAQ,GAAI,iBAA+B,cAAc,sBAQrE,CAAA;AAED,qEAAqE;AACrE,eAAO,MAAM,OAAO,GAAI,iBAA+B,cAAc,sBAUpE,CAAA;AAED,gEAAgE;AAChE,eAAO,MAAM,OAAO,GAAI,iBAA+B,cAAc,sBASpE,CAAA;AAED,mDAAmD;AACnD,eAAO,MAAM,UAAU,GAAI,iBAA+B,cAAc,sBAOvE,CAAA;AAuJD,qDAAqD;AACrD,eAAO,MAAM,SAAS,GAAI,iBAA+B,cAAc,sBAWtE,CAAA;AAED,qEAAqE;AACrE,eAAO,MAAM,aAAa,GAAI,iBAA+B,cAAc,sBAO1E,CAAA;AAED,4BAA4B;AAC5B,eAAO,MAAM,cAAc,GAAI,iBAA+B,cAAc,sBAQ3E,CAAA;AAED,oCAAoC;AACpC,eAAO,MAAM,UAAU,GAAI,iBAA+B,cAAc,sBAOvE,CAAA;AAED,kCAAkC;AAClC,eAAO,MAAM,QAAQ,GAAI,iBAA+B,cAAc,sBAQrE,CAAA;AAED,kEAAkE;AAClE,eAAO,MAAM,cAAc,GAAI,iBAA+B,cAAc,sBAS3E,CAAA;AAED,uDAAuD;AACvD,eAAO,MAAM,SAAS,GAAI,iBAA+B,cAAc,sBAQtE,CAAA;AA2ED,oCAAoC;AACpC,eAAO,MAAM,SAAS,GAAI,iBAA+B,cAAc,sBAQtE,CAAA"}