@kesha-antonov/react-native-chat 4.2.0 → 4.4.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.
- package/README.md +253 -47
- package/lib/Actions.d.ts +5 -5
- package/lib/Actions.d.ts.map +1 -1
- package/lib/Actions.js +28 -39
- package/lib/Actions.js.map +1 -1
- package/lib/Avatar.d.ts.map +1 -1
- package/lib/Avatar.js +34 -32
- package/lib/Avatar.js.map +1 -1
- package/lib/Bubble/index.d.ts.map +1 -1
- package/lib/Bubble/index.js +98 -28
- package/lib/Bubble/index.js.map +1 -1
- package/lib/Bubble/styles.d.ts +28 -11
- package/lib/Bubble/styles.d.ts.map +1 -1
- package/lib/Bubble/styles.js +108 -80
- package/lib/Bubble/styles.js.map +1 -1
- package/lib/Bubble/types.d.ts +12 -7
- package/lib/Bubble/types.d.ts.map +1 -1
- package/lib/Chat/ChatKeyboardAvoidingView.d.ts +8 -3
- package/lib/Chat/ChatKeyboardAvoidingView.d.ts.map +1 -1
- package/lib/Chat/ChatKeyboardAvoidingView.js +3 -5
- package/lib/Chat/ChatKeyboardAvoidingView.js.map +1 -1
- package/lib/Chat/index.d.ts +1 -0
- package/lib/Chat/index.d.ts.map +1 -1
- package/lib/Chat/index.js +94 -28
- package/lib/Chat/index.js.map +1 -1
- package/lib/Chat/types.d.ts +66 -24
- package/lib/Chat/types.d.ts.map +1 -1
- package/lib/ChatAvatar.d.ts.map +1 -1
- package/lib/ChatAvatar.js +11 -17
- package/lib/ChatAvatar.js.map +1 -1
- package/lib/ChatContext.d.ts +31 -1
- package/lib/ChatContext.d.ts.map +1 -1
- package/lib/ChatContext.js +4 -0
- package/lib/ChatContext.js.map +1 -1
- package/lib/Color.d.ts.map +1 -1
- package/lib/Color.js +6 -2
- package/lib/Color.js.map +1 -1
- package/lib/Composer.d.ts +14 -1
- package/lib/Composer.d.ts.map +1 -1
- package/lib/Composer.js +68 -50
- package/lib/Composer.js.map +1 -1
- package/lib/Constant.d.ts +1 -0
- package/lib/Constant.d.ts.map +1 -1
- package/lib/Constant.js +1 -0
- package/lib/Constant.js.map +1 -1
- package/lib/Day/index.d.ts.map +1 -1
- package/lib/Day/index.js +7 -3
- package/lib/Day/index.js.map +1 -1
- package/lib/Day/styles.d.ts +6 -7
- package/lib/Day/styles.d.ts.map +1 -1
- package/lib/Day/styles.js +11 -13
- package/lib/Day/styles.js.map +1 -1
- package/lib/Icons.d.ts +24 -0
- package/lib/Icons.d.ts.map +1 -0
- package/lib/Icons.js +2 -0
- package/lib/Icons.js.map +1 -0
- package/lib/InputToolbar.d.ts +18 -5
- package/lib/InputToolbar.d.ts.map +1 -1
- package/lib/InputToolbar.js +246 -19
- package/lib/InputToolbar.js.map +1 -1
- package/lib/LoadEarlierMessages.d.ts.map +1 -1
- package/lib/LoadEarlierMessages.js +12 -7
- package/lib/LoadEarlierMessages.js.map +1 -1
- package/lib/Message/index.d.ts.map +1 -1
- package/lib/Message/index.js +21 -12
- package/lib/Message/index.js.map +1 -1
- package/lib/Message/styles.js +2 -2
- package/lib/Message/styles.js.map +1 -1
- package/lib/MessageAudio.d.ts +2 -1
- package/lib/MessageAudio.d.ts.map +1 -1
- package/lib/MessageAudio.js +121 -19
- package/lib/MessageAudio.js.map +1 -1
- package/lib/MessageLocation.d.ts +9 -0
- package/lib/MessageLocation.d.ts.map +1 -0
- package/lib/MessageLocation.js +85 -0
- package/lib/MessageLocation.js.map +1 -0
- package/lib/MessageText.d.ts +12 -1
- package/lib/MessageText.d.ts.map +1 -1
- package/lib/MessageText.js +38 -11
- package/lib/MessageText.js.map +1 -1
- package/lib/MessageVideo.d.ts +2 -1
- package/lib/MessageVideo.d.ts.map +1 -1
- package/lib/MessageVideo.js +156 -18
- package/lib/MessageVideo.js.map +1 -1
- package/lib/MessagesContainer/components/Item/index.d.ts +2 -1
- package/lib/MessagesContainer/components/Item/index.d.ts.map +1 -1
- package/lib/MessagesContainer/components/Item/index.js +23 -1
- package/lib/MessagesContainer/components/Item/index.js.map +1 -1
- package/lib/MessagesContainer/index.d.ts.map +1 -1
- package/lib/MessagesContainer/index.js +24 -11
- package/lib/MessagesContainer/index.js.map +1 -1
- package/lib/MessagesContainer/styles.d.ts +23 -3
- package/lib/MessagesContainer/styles.d.ts.map +1 -1
- package/lib/MessagesContainer/styles.js +25 -5
- package/lib/MessagesContainer/styles.js.map +1 -1
- package/lib/Models.d.ts +72 -0
- package/lib/Models.d.ts.map +1 -1
- package/lib/QuickReplies.d.ts +1 -1
- package/lib/QuickReplies.d.ts.map +1 -1
- package/lib/QuickReplies.js +13 -7
- package/lib/QuickReplies.js.map +1 -1
- package/lib/Reactions/MessageReactions.d.ts.map +1 -1
- package/lib/Reactions/MessageReactions.js +11 -10
- package/lib/Reactions/MessageReactions.js.map +1 -1
- package/lib/Reactions/ReactionPicker.d.ts.map +1 -1
- package/lib/Reactions/ReactionPicker.js +5 -3
- package/lib/Reactions/ReactionPicker.js.map +1 -1
- package/lib/Send.d.ts +2 -2
- package/lib/Send.d.ts.map +1 -1
- package/lib/Send.js +37 -37
- package/lib/Send.js.map +1 -1
- package/lib/SystemMessage.d.ts.map +1 -1
- package/lib/SystemMessage.js +8 -5
- package/lib/SystemMessage.js.map +1 -1
- package/lib/Theme.d.ts +159 -0
- package/lib/Theme.d.ts.map +1 -0
- package/lib/Theme.js +147 -0
- package/lib/Theme.js.map +1 -0
- package/lib/Time.d.ts.map +1 -1
- package/lib/Time.js +7 -5
- package/lib/Time.js.map +1 -1
- package/lib/TypingIndicator/index.d.ts.map +1 -1
- package/lib/TypingIndicator/index.js +4 -1
- package/lib/TypingIndicator/index.js.map +1 -1
- package/lib/TypingIndicator/styles.d.ts +2 -2
- package/lib/TypingIndicator/styles.d.ts.map +1 -1
- package/lib/TypingIndicator/styles.js +4 -5
- package/lib/TypingIndicator/styles.js.map +1 -1
- package/lib/components/AttachmentSheet.d.ts +28 -0
- package/lib/components/AttachmentSheet.d.ts.map +1 -0
- package/lib/components/AttachmentSheet.js +177 -0
- package/lib/components/AttachmentSheet.js.map +1 -0
- package/lib/components/BasicMarkdown.d.ts +12 -0
- package/lib/components/BasicMarkdown.d.ts.map +1 -0
- package/lib/components/BasicMarkdown.js +220 -0
- package/lib/components/BasicMarkdown.js.map +1 -0
- package/lib/components/ContextMenu.d.ts +25 -0
- package/lib/components/ContextMenu.d.ts.map +1 -0
- package/lib/components/ContextMenu.js +122 -0
- package/lib/components/ContextMenu.js.map +1 -0
- package/lib/components/Icon.d.ts +17 -0
- package/lib/components/Icon.d.ts.map +1 -0
- package/lib/components/Icon.js +19 -0
- package/lib/components/Icon.js.map +1 -0
- package/lib/components/LucideIcon.d.ts +10 -0
- package/lib/components/LucideIcon.d.ts.map +1 -0
- package/lib/components/LucideIcon.js +118 -0
- package/lib/components/LucideIcon.js.map +1 -0
- package/lib/components/MarkdownMessageText.d.ts +19 -0
- package/lib/components/MarkdownMessageText.d.ts.map +1 -0
- package/lib/components/MarkdownMessageText.js +35 -0
- package/lib/components/MarkdownMessageText.js.map +1 -0
- package/lib/components/MediaCard.d.ts +19 -0
- package/lib/components/MediaCard.d.ts.map +1 -0
- package/lib/components/MediaCard.js +102 -0
- package/lib/components/MediaCard.js.map +1 -0
- package/lib/components/MediaControls.d.ts +41 -0
- package/lib/components/MediaControls.d.ts.map +1 -0
- package/lib/components/MediaControls.js +524 -0
- package/lib/components/MediaControls.js.map +1 -0
- package/lib/components/MessageReply.d.ts.map +1 -1
- package/lib/components/MessageReply.js +11 -9
- package/lib/components/MessageReply.js.map +1 -1
- package/lib/components/ReplyPreview.d.ts +3 -1
- package/lib/components/ReplyPreview.d.ts.map +1 -1
- package/lib/components/ReplyPreview.js +37 -36
- package/lib/components/ReplyPreview.js.map +1 -1
- package/lib/components/SendIcon.d.ts +13 -0
- package/lib/components/SendIcon.d.ts.map +1 -0
- package/lib/components/SendIcon.js +37 -0
- package/lib/components/SendIcon.js.map +1 -0
- package/lib/components/Ticks.d.ts +25 -0
- package/lib/components/Ticks.d.ts.map +1 -0
- package/lib/components/Ticks.js +102 -0
- package/lib/components/Ticks.js.map +1 -0
- package/lib/components/VideoNoteOverlay.d.ts +25 -0
- package/lib/components/VideoNoteOverlay.d.ts.map +1 -0
- package/lib/components/VideoNoteOverlay.js +151 -0
- package/lib/components/VideoNoteOverlay.js.map +1 -0
- package/lib/components/VideoNoteRecorder.d.ts +19 -0
- package/lib/components/VideoNoteRecorder.d.ts.map +1 -0
- package/lib/components/VideoNoteRecorder.js +634 -0
- package/lib/components/VideoNoteRecorder.js.map +1 -0
- package/lib/components/VideoRecordButton.d.ts +29 -0
- package/lib/components/VideoRecordButton.d.ts.map +1 -0
- package/lib/components/VideoRecordButton.js +117 -0
- package/lib/components/VideoRecordButton.js.map +1 -0
- package/lib/components/VoiceMessageInput.d.ts +33 -0
- package/lib/components/VoiceMessageInput.d.ts.map +1 -0
- package/lib/components/VoiceMessageInput.js +403 -0
- package/lib/components/VoiceMessageInput.js.map +1 -0
- package/lib/components/WaveformPlayer.d.ts +19 -0
- package/lib/components/WaveformPlayer.d.ts.map +1 -0
- package/lib/components/WaveformPlayer.js +367 -0
- package/lib/components/WaveformPlayer.js.map +1 -0
- package/lib/components/mediaPalette.d.ts +23 -0
- package/lib/components/mediaPalette.d.ts.map +1 -0
- package/lib/components/mediaPalette.js +16 -0
- package/lib/components/mediaPalette.js.map +1 -0
- package/lib/components/mediaPlayback.d.ts +22 -0
- package/lib/components/mediaPlayback.d.ts.map +1 -0
- package/lib/components/mediaPlayback.js +34 -0
- package/lib/components/mediaPlayback.js.map +1 -0
- package/lib/dayjsLocales.d.ts +18 -0
- package/lib/dayjsLocales.d.ts.map +1 -0
- package/lib/dayjsLocales.js +36 -0
- package/lib/dayjsLocales.js.map +1 -0
- package/lib/hooks/useColorScheme.d.ts +9 -2
- package/lib/hooks/useColorScheme.d.ts.map +1 -1
- package/lib/hooks/useColorScheme.js +9 -3
- package/lib/hooks/useColorScheme.js.map +1 -1
- package/lib/hooks/useIcons.d.ts +4 -0
- package/lib/hooks/useIcons.d.ts.map +1 -0
- package/lib/hooks/useIcons.js +8 -0
- package/lib/hooks/useIcons.js.map +1 -0
- package/lib/hooks/useIsRTL.d.ts +3 -0
- package/lib/hooks/useIsRTL.d.ts.map +1 -0
- package/lib/hooks/useIsRTL.js +7 -0
- package/lib/hooks/useIsRTL.js.map +1 -0
- package/lib/hooks/useKeyboardVerticalOffset.d.ts +29 -8
- package/lib/hooks/useKeyboardVerticalOffset.d.ts.map +1 -1
- package/lib/hooks/useKeyboardVerticalOffset.js +41 -8
- package/lib/hooks/useKeyboardVerticalOffset.js.map +1 -1
- package/lib/hooks/useLabels.d.ts +4 -0
- package/lib/hooks/useLabels.d.ts.map +1 -0
- package/lib/hooks/useLabels.js +8 -0
- package/lib/hooks/useLabels.js.map +1 -0
- package/lib/hooks/useTheme.d.ts +21 -0
- package/lib/hooks/useTheme.d.ts.map +1 -0
- package/lib/hooks/useTheme.js +32 -0
- package/lib/hooks/useTheme.js.map +1 -0
- package/lib/i18n.d.ts +66 -0
- package/lib/i18n.d.ts.map +1 -0
- package/lib/i18n.js +53 -0
- package/lib/i18n.js.map +1 -0
- package/lib/index.d.ts +19 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +19 -0
- package/lib/index.js.map +1 -1
- package/lib/locales/ar.d.ts +3 -0
- package/lib/locales/ar.d.ts.map +1 -0
- package/lib/locales/ar.js +22 -0
- package/lib/locales/ar.js.map +1 -0
- package/lib/locales/de.d.ts +3 -0
- package/lib/locales/de.d.ts.map +1 -0
- package/lib/locales/de.js +22 -0
- package/lib/locales/de.js.map +1 -0
- package/lib/locales/es.d.ts +3 -0
- package/lib/locales/es.d.ts.map +1 -0
- package/lib/locales/es.js +22 -0
- package/lib/locales/es.js.map +1 -0
- package/lib/locales/fr.d.ts +3 -0
- package/lib/locales/fr.d.ts.map +1 -0
- package/lib/locales/fr.js +22 -0
- package/lib/locales/fr.js.map +1 -0
- package/lib/locales/hi.d.ts +3 -0
- package/lib/locales/hi.d.ts.map +1 -0
- package/lib/locales/hi.js +22 -0
- package/lib/locales/hi.js.map +1 -0
- package/lib/locales/id.d.ts +3 -0
- package/lib/locales/id.d.ts.map +1 -0
- package/lib/locales/id.js +22 -0
- package/lib/locales/id.js.map +1 -0
- package/lib/locales/index.d.ts +19 -0
- package/lib/locales/index.d.ts.map +1 -0
- package/lib/locales/index.js +39 -0
- package/lib/locales/index.js.map +1 -0
- package/lib/locales/it.d.ts +3 -0
- package/lib/locales/it.d.ts.map +1 -0
- package/lib/locales/it.js +22 -0
- package/lib/locales/it.js.map +1 -0
- package/lib/locales/ja.d.ts +3 -0
- package/lib/locales/ja.d.ts.map +1 -0
- package/lib/locales/ja.js +22 -0
- package/lib/locales/ja.js.map +1 -0
- package/lib/locales/ko.d.ts +3 -0
- package/lib/locales/ko.d.ts.map +1 -0
- package/lib/locales/ko.js +22 -0
- package/lib/locales/ko.js.map +1 -0
- package/lib/locales/nl.d.ts +3 -0
- package/lib/locales/nl.d.ts.map +1 -0
- package/lib/locales/nl.js +22 -0
- package/lib/locales/nl.js.map +1 -0
- package/lib/locales/pl.d.ts +3 -0
- package/lib/locales/pl.d.ts.map +1 -0
- package/lib/locales/pl.js +22 -0
- package/lib/locales/pl.js.map +1 -0
- package/lib/locales/pt.d.ts +3 -0
- package/lib/locales/pt.d.ts.map +1 -0
- package/lib/locales/pt.js +22 -0
- package/lib/locales/pt.js.map +1 -0
- package/lib/locales/ru.d.ts +3 -0
- package/lib/locales/ru.d.ts.map +1 -0
- package/lib/locales/ru.js +22 -0
- package/lib/locales/ru.js.map +1 -0
- package/lib/locales/tr.d.ts +3 -0
- package/lib/locales/tr.d.ts.map +1 -0
- package/lib/locales/tr.js +22 -0
- package/lib/locales/tr.js.map +1 -0
- package/lib/locales/zh.d.ts +3 -0
- package/lib/locales/zh.d.ts.map +1 -0
- package/lib/locales/zh.js +22 -0
- package/lib/locales/zh.js.map +1 -0
- package/lib/rtl.d.ts +18 -0
- package/lib/rtl.d.ts.map +1 -0
- package/lib/rtl.js +31 -0
- package/lib/rtl.js.map +1 -0
- package/lib/types.d.ts +2 -1
- package/lib/types.d.ts.map +1 -1
- package/package.json +99 -44
- package/lib/MessageReply.d.ts +0 -15
- package/lib/MessageReply.d.ts.map +0 -1
- package/lib/MessageReply.js +0 -102
- package/lib/MessageReply.js.map +0 -1
- package/lib/ReplyPreview.d.ts +0 -14
- package/lib/ReplyPreview.d.ts.map +0 -1
- package/lib/ReplyPreview.js +0 -94
- package/lib/ReplyPreview.js.map +0 -1
package/lib/Theme.d.ts
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized design tokens for the chat UI.
|
|
3
|
+
*
|
|
4
|
+
* The defaults below produce a modern, Telegram-inspired look (azure accent,
|
|
5
|
+
* soft 18px bubbles, rounded composer, inline time + vector ticks). Consumers
|
|
6
|
+
* can override any subset through the `theme` / `darkTheme` props on `Chat`;
|
|
7
|
+
* overrides are deep-merged over these defaults, and explicit per-component
|
|
8
|
+
* style props still win over the theme. Components read the resolved theme via
|
|
9
|
+
* the `useTheme` hook.
|
|
10
|
+
*/
|
|
11
|
+
export interface ChatThemeColors {
|
|
12
|
+
/** Accent used for the send button, links, read ticks and active states. */
|
|
13
|
+
accent: string;
|
|
14
|
+
/** Chat list background. Lets white incoming bubbles read on light themes. */
|
|
15
|
+
background: string;
|
|
16
|
+
/** Incoming (left) bubble background. */
|
|
17
|
+
incomingBubble: string;
|
|
18
|
+
/** Outgoing (right) bubble background. */
|
|
19
|
+
outgoingBubble: string;
|
|
20
|
+
/** Incoming message text. */
|
|
21
|
+
incomingText: string;
|
|
22
|
+
/** Outgoing message text. */
|
|
23
|
+
outgoingText: string;
|
|
24
|
+
/** Time/meta text inside incoming bubbles. */
|
|
25
|
+
incomingMeta: string;
|
|
26
|
+
/** Time/meta text inside outgoing bubbles. */
|
|
27
|
+
outgoingMeta: string;
|
|
28
|
+
/** Sender name shown above grouped incoming messages. */
|
|
29
|
+
senderName: string;
|
|
30
|
+
/** Delivery tick color before the message is read. */
|
|
31
|
+
ticksSent: string;
|
|
32
|
+
/** Delivery tick color once the message is read. */
|
|
33
|
+
ticksRead: string;
|
|
34
|
+
/** Hairlines and dividers. */
|
|
35
|
+
separator: string;
|
|
36
|
+
/** Background of the rounded composer field. */
|
|
37
|
+
inputBackground: string;
|
|
38
|
+
/** Background of the whole input bar surrounding the field. */
|
|
39
|
+
inputBarBackground: string;
|
|
40
|
+
/** Composer text color. */
|
|
41
|
+
inputText: string;
|
|
42
|
+
/** Composer placeholder color. */
|
|
43
|
+
placeholder: string;
|
|
44
|
+
/** Translucent day-separator pill background. */
|
|
45
|
+
dayPillBackground: string;
|
|
46
|
+
/** Day-separator pill text. */
|
|
47
|
+
dayPillText: string;
|
|
48
|
+
/** Surface color for floating elements (scroll-to-bottom button, picker). */
|
|
49
|
+
surface: string;
|
|
50
|
+
/** Inactive reaction pill background. */
|
|
51
|
+
reactionBackground: string;
|
|
52
|
+
/** Active (selected) reaction pill background. */
|
|
53
|
+
reactionActiveBackground: string;
|
|
54
|
+
/** Translucent overlay drawn on top of outgoing bubbles (e.g. reply quotes). */
|
|
55
|
+
outgoingOverlay: string;
|
|
56
|
+
/** Error / "not implemented" placeholder text. */
|
|
57
|
+
error: string;
|
|
58
|
+
/** Optional border around the composer field (default transparent). */
|
|
59
|
+
inputFieldBorder: string;
|
|
60
|
+
}
|
|
61
|
+
export interface ChatThemeAvatar {
|
|
62
|
+
size: number;
|
|
63
|
+
/** Background palette for initials avatars, picked deterministically per user. */
|
|
64
|
+
palette: string[];
|
|
65
|
+
/** Initials text color drawn on a palette background. */
|
|
66
|
+
textColor: string;
|
|
67
|
+
}
|
|
68
|
+
export interface ChatThemeRadii {
|
|
69
|
+
bubble: number;
|
|
70
|
+
bubbleGrouped: number;
|
|
71
|
+
inputField: number;
|
|
72
|
+
sendButton: number;
|
|
73
|
+
reaction: number;
|
|
74
|
+
dayPill: number;
|
|
75
|
+
}
|
|
76
|
+
export interface ChatThemeHorizontalEdge {
|
|
77
|
+
left: number;
|
|
78
|
+
right: number;
|
|
79
|
+
}
|
|
80
|
+
export interface ChatThemeSpacing {
|
|
81
|
+
bubblePaddingV: number;
|
|
82
|
+
bubblePaddingH: number;
|
|
83
|
+
withinGroup: number;
|
|
84
|
+
betweenGroups: number;
|
|
85
|
+
/** Horizontal inset applied to the input bar and its accessories (e.g. the reply preview). */
|
|
86
|
+
screenEdge: ChatThemeHorizontalEdge;
|
|
87
|
+
/** Vertical padding of the input bar's primary row (around the composer/actions). */
|
|
88
|
+
inputToolbarPaddingV: number;
|
|
89
|
+
}
|
|
90
|
+
/** Accepted shape for a `screenEdge` override: a single value for both sides, or either side individually. */
|
|
91
|
+
export type ChatThemeScreenEdgeOverride = number | Partial<ChatThemeHorizontalEdge>;
|
|
92
|
+
export interface ChatThemeTextStyle {
|
|
93
|
+
fontSize: number;
|
|
94
|
+
lineHeight?: number;
|
|
95
|
+
fontWeight?: 'normal' | 'bold' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900';
|
|
96
|
+
}
|
|
97
|
+
export interface ChatThemeTypography {
|
|
98
|
+
message: ChatThemeTextStyle;
|
|
99
|
+
time: ChatThemeTextStyle;
|
|
100
|
+
senderName: ChatThemeTextStyle;
|
|
101
|
+
day: ChatThemeTextStyle;
|
|
102
|
+
system: ChatThemeTextStyle;
|
|
103
|
+
}
|
|
104
|
+
export interface ChatThemeComposer {
|
|
105
|
+
/** Resting height of the composer field (single line). */
|
|
106
|
+
minHeight: number;
|
|
107
|
+
/** Max height before the field scrolls internally instead of growing. */
|
|
108
|
+
maxHeight: number;
|
|
109
|
+
/** Horizontal padding inside the field pill. */
|
|
110
|
+
fieldPaddingH: number;
|
|
111
|
+
/** Size of the inset icons (emoji, attachment, camera). */
|
|
112
|
+
insetIconSize: number;
|
|
113
|
+
}
|
|
114
|
+
export interface ChatThemeVoice {
|
|
115
|
+
/** Horizontal slide distance (px) to cancel a recording. */
|
|
116
|
+
cancelThreshold: number;
|
|
117
|
+
/** Vertical slide distance (px) to lock hands-free recording. */
|
|
118
|
+
lockThreshold: number;
|
|
119
|
+
}
|
|
120
|
+
export interface ChatTheme {
|
|
121
|
+
colors: ChatThemeColors;
|
|
122
|
+
radii: ChatThemeRadii;
|
|
123
|
+
spacing: ChatThemeSpacing;
|
|
124
|
+
typography: ChatThemeTypography;
|
|
125
|
+
avatar: ChatThemeAvatar;
|
|
126
|
+
sendButton: {
|
|
127
|
+
size: number;
|
|
128
|
+
};
|
|
129
|
+
composer: ChatThemeComposer;
|
|
130
|
+
voice: ChatThemeVoice;
|
|
131
|
+
}
|
|
132
|
+
export type PartialChatTheme = {
|
|
133
|
+
colors?: Partial<ChatThemeColors>;
|
|
134
|
+
radii?: Partial<ChatThemeRadii>;
|
|
135
|
+
spacing?: Partial<Omit<ChatThemeSpacing, 'screenEdge'>> & {
|
|
136
|
+
screenEdge?: ChatThemeScreenEdgeOverride;
|
|
137
|
+
};
|
|
138
|
+
typography?: Partial<Record<keyof ChatThemeTypography, Partial<ChatThemeTextStyle>>>;
|
|
139
|
+
avatar?: Partial<ChatThemeAvatar>;
|
|
140
|
+
sendButton?: Partial<{
|
|
141
|
+
size: number;
|
|
142
|
+
}>;
|
|
143
|
+
composer?: Partial<ChatThemeComposer>;
|
|
144
|
+
voice?: Partial<ChatThemeVoice>;
|
|
145
|
+
};
|
|
146
|
+
export declare const defaultLightTheme: ChatTheme;
|
|
147
|
+
export declare const defaultDarkTheme: ChatTheme;
|
|
148
|
+
export interface ChatThemeOverrides {
|
|
149
|
+
light?: PartialChatTheme;
|
|
150
|
+
dark?: PartialChatTheme;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Resolve the active theme for a color scheme, applying the matching override.
|
|
154
|
+
* Used by `Chat` to compute the theme once per change and share it via context.
|
|
155
|
+
*/
|
|
156
|
+
export declare function resolveTheme(colorScheme: 'light' | 'dark' | null | undefined, light?: PartialChatTheme, dark?: PartialChatTheme): ChatTheme;
|
|
157
|
+
/** Deep-merge a partial theme over a base theme (two levels deep). */
|
|
158
|
+
export declare function mergeTheme(base: ChatTheme, override?: PartialChatTheme): ChatTheme;
|
|
159
|
+
//# sourceMappingURL=Theme.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Theme.d.ts","sourceRoot":"","sources":["../src/Theme.ts"],"names":[],"mappings":"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"}
|
package/lib/Theme.js
ADDED
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Centralized design tokens for the chat UI.
|
|
3
|
+
*
|
|
4
|
+
* The defaults below produce a modern, Telegram-inspired look (azure accent,
|
|
5
|
+
* soft 18px bubbles, rounded composer, inline time + vector ticks). Consumers
|
|
6
|
+
* can override any subset through the `theme` / `darkTheme` props on `Chat`;
|
|
7
|
+
* overrides are deep-merged over these defaults, and explicit per-component
|
|
8
|
+
* style props still win over the theme. Components read the resolved theme via
|
|
9
|
+
* the `useTheme` hook.
|
|
10
|
+
*/
|
|
11
|
+
// Decorative palette for initials avatars (flatuicolors.com), shared by themes.
|
|
12
|
+
const avatarPalette = ['#E67E22', '#2ECC71', '#3498DB', '#8E44AD', '#E74C3C', '#1ABC9C', '#2C3E50'];
|
|
13
|
+
const sharedRadii = {
|
|
14
|
+
bubble: 18,
|
|
15
|
+
bubbleGrouped: 6,
|
|
16
|
+
inputField: 18,
|
|
17
|
+
sendButton: 18,
|
|
18
|
+
reaction: 14,
|
|
19
|
+
dayPill: 14,
|
|
20
|
+
};
|
|
21
|
+
const sharedComposer = {
|
|
22
|
+
minHeight: 44,
|
|
23
|
+
maxHeight: 120,
|
|
24
|
+
fieldPaddingH: 12,
|
|
25
|
+
insetIconSize: 24,
|
|
26
|
+
};
|
|
27
|
+
const sharedVoice = {
|
|
28
|
+
cancelThreshold: 80,
|
|
29
|
+
lockThreshold: 90,
|
|
30
|
+
};
|
|
31
|
+
const sharedSpacing = {
|
|
32
|
+
bubblePaddingV: 6,
|
|
33
|
+
bubblePaddingH: 12,
|
|
34
|
+
withinGroup: 2,
|
|
35
|
+
betweenGroups: 8,
|
|
36
|
+
screenEdge: { left: 8, right: 8 },
|
|
37
|
+
inputToolbarPaddingV: 8,
|
|
38
|
+
};
|
|
39
|
+
const sharedTypography = {
|
|
40
|
+
message: { fontSize: 16, lineHeight: 21, fontWeight: '400' },
|
|
41
|
+
time: { fontSize: 12, fontWeight: '400' },
|
|
42
|
+
senderName: { fontSize: 13, fontWeight: '600' },
|
|
43
|
+
day: { fontSize: 13, fontWeight: '600' },
|
|
44
|
+
system: { fontSize: 13, fontWeight: '400' },
|
|
45
|
+
};
|
|
46
|
+
export const defaultLightTheme = {
|
|
47
|
+
colors: {
|
|
48
|
+
accent: '#3390EC',
|
|
49
|
+
background: '#EFEFF4',
|
|
50
|
+
incomingBubble: '#FFFFFF',
|
|
51
|
+
outgoingBubble: '#3390EC',
|
|
52
|
+
incomingText: '#000000',
|
|
53
|
+
outgoingText: '#FFFFFF',
|
|
54
|
+
incomingMeta: '#8E8E93',
|
|
55
|
+
outgoingMeta: 'rgba(255, 255, 255, 0.7)',
|
|
56
|
+
senderName: '#3390EC',
|
|
57
|
+
ticksSent: 'rgba(255, 255, 255, 0.6)',
|
|
58
|
+
ticksRead: '#FFFFFF',
|
|
59
|
+
separator: 'rgba(0, 0, 0, 0.08)',
|
|
60
|
+
inputBackground: '#F2F2F7',
|
|
61
|
+
inputBarBackground: '#FFFFFF',
|
|
62
|
+
inputText: '#000000',
|
|
63
|
+
placeholder: '#8E8E93',
|
|
64
|
+
dayPillBackground: 'rgba(0, 0, 0, 0.3)',
|
|
65
|
+
dayPillText: '#FFFFFF',
|
|
66
|
+
surface: '#FFFFFF',
|
|
67
|
+
reactionBackground: 'rgba(0, 0, 0, 0.06)',
|
|
68
|
+
reactionActiveBackground: 'rgba(51, 144, 236, 0.15)',
|
|
69
|
+
outgoingOverlay: 'rgba(255, 255, 255, 0.15)',
|
|
70
|
+
error: '#E74C3C',
|
|
71
|
+
inputFieldBorder: 'transparent',
|
|
72
|
+
},
|
|
73
|
+
radii: sharedRadii,
|
|
74
|
+
spacing: sharedSpacing,
|
|
75
|
+
typography: sharedTypography,
|
|
76
|
+
avatar: { size: 34, palette: avatarPalette, textColor: '#FFFFFF' },
|
|
77
|
+
sendButton: { size: 36 },
|
|
78
|
+
composer: sharedComposer,
|
|
79
|
+
voice: sharedVoice,
|
|
80
|
+
};
|
|
81
|
+
export const defaultDarkTheme = {
|
|
82
|
+
colors: {
|
|
83
|
+
accent: '#3390EC',
|
|
84
|
+
background: '#0E1621',
|
|
85
|
+
incomingBubble: '#182533',
|
|
86
|
+
outgoingBubble: '#2B5278',
|
|
87
|
+
incomingText: '#FFFFFF',
|
|
88
|
+
outgoingText: '#FFFFFF',
|
|
89
|
+
incomingMeta: '#6D7F8F',
|
|
90
|
+
outgoingMeta: 'rgba(255, 255, 255, 0.55)',
|
|
91
|
+
senderName: '#6FB2F0',
|
|
92
|
+
ticksSent: 'rgba(255, 255, 255, 0.55)',
|
|
93
|
+
ticksRead: '#59ABE8',
|
|
94
|
+
separator: 'rgba(255, 255, 255, 0.1)',
|
|
95
|
+
inputBackground: '#243140',
|
|
96
|
+
inputBarBackground: '#17212B',
|
|
97
|
+
inputText: '#FFFFFF',
|
|
98
|
+
placeholder: '#708499',
|
|
99
|
+
dayPillBackground: 'rgba(255, 255, 255, 0.12)',
|
|
100
|
+
dayPillText: '#FFFFFF',
|
|
101
|
+
surface: '#17212B',
|
|
102
|
+
reactionBackground: 'rgba(255, 255, 255, 0.08)',
|
|
103
|
+
reactionActiveBackground: 'rgba(51, 144, 236, 0.22)',
|
|
104
|
+
outgoingOverlay: 'rgba(255, 255, 255, 0.1)',
|
|
105
|
+
error: '#E74C3C',
|
|
106
|
+
inputFieldBorder: 'transparent',
|
|
107
|
+
},
|
|
108
|
+
radii: sharedRadii,
|
|
109
|
+
spacing: sharedSpacing,
|
|
110
|
+
typography: sharedTypography,
|
|
111
|
+
avatar: { size: 34, palette: avatarPalette, textColor: '#FFFFFF' },
|
|
112
|
+
sendButton: { size: 36 },
|
|
113
|
+
composer: sharedComposer,
|
|
114
|
+
voice: sharedVoice,
|
|
115
|
+
};
|
|
116
|
+
/**
|
|
117
|
+
* Resolve the active theme for a color scheme, applying the matching override.
|
|
118
|
+
* Used by `Chat` to compute the theme once per change and share it via context.
|
|
119
|
+
*/
|
|
120
|
+
export function resolveTheme(colorScheme, light, dark) {
|
|
121
|
+
const isDark = colorScheme === 'dark';
|
|
122
|
+
return mergeTheme(isDark ? defaultDarkTheme : defaultLightTheme, isDark ? dark : light);
|
|
123
|
+
}
|
|
124
|
+
/** Deep-merge a partial theme over a base theme (two levels deep). */
|
|
125
|
+
export function mergeTheme(base, override) {
|
|
126
|
+
if (!override)
|
|
127
|
+
return base;
|
|
128
|
+
const mergedTypography = { ...base.typography };
|
|
129
|
+
if (override.typography)
|
|
130
|
+
for (const key of Object.keys(override.typography))
|
|
131
|
+
mergedTypography[key] = { ...base.typography[key], ...override.typography[key] };
|
|
132
|
+
const overrideScreenEdge = override.spacing?.screenEdge;
|
|
133
|
+
const mergedScreenEdge = typeof overrideScreenEdge === 'number'
|
|
134
|
+
? { left: overrideScreenEdge, right: overrideScreenEdge }
|
|
135
|
+
: { ...base.spacing.screenEdge, ...overrideScreenEdge };
|
|
136
|
+
return {
|
|
137
|
+
colors: { ...base.colors, ...override.colors },
|
|
138
|
+
radii: { ...base.radii, ...override.radii },
|
|
139
|
+
spacing: { ...base.spacing, ...override.spacing, screenEdge: mergedScreenEdge },
|
|
140
|
+
typography: mergedTypography,
|
|
141
|
+
avatar: { ...base.avatar, ...override.avatar },
|
|
142
|
+
sendButton: { ...base.sendButton, ...override.sendButton },
|
|
143
|
+
composer: { ...base.composer, ...override.composer },
|
|
144
|
+
voice: { ...base.voice, ...override.voice },
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=Theme.js.map
|
package/lib/Theme.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Theme.js","sourceRoot":"","sources":["../src/Theme.ts"],"names":[],"mappings":"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"}
|
package/lib/Time.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Time.d.ts","sourceRoot":"","sources":["../src/Time.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAA;AACtC,OAAO,EAAoB,SAAS,EAAE,SAAS,EAAS,MAAM,cAAc,CAAA;AAK5E,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"Time.d.ts","sourceRoot":"","sources":["../src/Time.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAkB,MAAM,OAAO,CAAA;AACtC,OAAO,EAAoB,SAAS,EAAE,SAAS,EAAS,MAAM,cAAc,CAAA;AAK5E,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAkBnD,MAAM,WAAW,SAAS,CAAC,QAAQ,SAAS,QAAQ;IAClD,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IAC3B,cAAc,EAAE,QAAQ,CAAA;IACxB,cAAc,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;IAC1C,aAAa,CAAC,EAAE,cAAc,CAAC,SAAS,CAAC,CAAA;IACzC,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,eAAO,MAAM,IAAI,GAAI,QAAQ,SAAS,QAAQ,GAAG,QAAQ,EAAE,0EAMxD,SAAS,CAAC,QAAQ,CAAC,6BA0BrB,CAAA"}
|
package/lib/Time.js
CHANGED
|
@@ -2,23 +2,25 @@ import React, { useMemo } from 'react';
|
|
|
2
2
|
import { StyleSheet, View, Text } from 'react-native';
|
|
3
3
|
import dayjs from 'dayjs';
|
|
4
4
|
import { useChatContext } from './ChatContext';
|
|
5
|
-
import { Color } from './Color';
|
|
6
5
|
import { TIME_FORMAT } from './Constant';
|
|
6
|
+
import { useThemedStyles } from './hooks/useTheme';
|
|
7
7
|
import { getStyleWithPosition } from './styles';
|
|
8
|
-
const
|
|
8
|
+
const createStyles = (theme) => StyleSheet.create({
|
|
9
9
|
text: {
|
|
10
|
-
fontSize:
|
|
10
|
+
fontSize: theme.typography.time.fontSize,
|
|
11
|
+
fontWeight: theme.typography.time.fontWeight,
|
|
11
12
|
textAlign: 'right',
|
|
12
13
|
},
|
|
13
14
|
text_left: {
|
|
14
|
-
color:
|
|
15
|
+
color: theme.colors.incomingMeta,
|
|
15
16
|
},
|
|
16
17
|
text_right: {
|
|
17
|
-
color:
|
|
18
|
+
color: theme.colors.outgoingMeta,
|
|
18
19
|
},
|
|
19
20
|
});
|
|
20
21
|
export const Time = ({ position = 'left', containerStyle, currentMessage, timeFormat = TIME_FORMAT, timeTextStyle, }) => {
|
|
21
22
|
const { getLocale } = useChatContext();
|
|
23
|
+
const styles = useThemedStyles(createStyles);
|
|
22
24
|
const formattedTime = useMemo(() => {
|
|
23
25
|
if (!currentMessage)
|
|
24
26
|
return null;
|
package/lib/Time.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Time.js","sourceRoot":"","sources":["../src/Time.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAyB,IAAI,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Time.js","sourceRoot":"","sources":["../src/Time.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAyB,IAAI,EAAE,MAAM,cAAc,CAAA;AAC5E,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAElD,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAG/C,MAAM,YAAY,GAAG,CAAC,KAAgB,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IAC3D,IAAI,EAAE;QACJ,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ;QACxC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU;QAC5C,SAAS,EAAE,OAAO;KACnB;IACD,SAAS,EAAE;QACT,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;KACjC;IACD,UAAU,EAAE;QACV,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;KACjC;CACF,CAAC,CAAA;AAUF,MAAM,CAAC,MAAM,IAAI,GAAG,CAAuC,EACzD,QAAQ,GAAG,MAAM,EACjB,cAAc,EACd,cAAc,EACd,UAAU,GAAG,WAAW,EACxB,aAAa,GACO,EAAE,EAAE;IACxB,MAAM,EAAE,SAAS,EAAE,GAAG,cAAc,EAAE,CAAA;IACtC,MAAM,MAAM,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;IAE5C,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,EAAE;QACjC,IAAI,CAAC,cAAc;YACjB,OAAO,IAAI,CAAA;QAEb,OAAO,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IAC/E,CAAC,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAA;IAE3C,IAAI,CAAC,cAAc;QACjB,OAAO,IAAI,CAAA;IAEb,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,CAAC,CACtC;MAAA,CAAC,IAAI,CACH,KAAK,CAAC,CAAC;YACL,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC;YAC9C,aAAa,EAAE,CAAC,QAAQ,CAAC;SAC1B,CAAC,CAEF;QAAA,CAAC,aAAa,CAChB;MAAA,EAAE,IAAI,CACR;IAAA,EAAE,IAAI,CAAC,CACR,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/TypingIndicator/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/TypingIndicator/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAA;AAcxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAE9C,cAAc,SAAS,CAAA;AA4EvB,eAAO,MAAM,eAAe,GAAI,qBAAqB,oBAAoB,6BAgExE,CAAA"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import React, { useCallback, useEffect, useState, useMemo } from 'react';
|
|
2
2
|
import { View } from 'react-native';
|
|
3
3
|
import Animated, { runOnJS, useAnimatedStyle, useSharedValue, withDelay, withRepeat, withSequence, withTiming, } from 'react-native-reanimated';
|
|
4
|
+
import { useThemedStyles } from '../hooks/useTheme';
|
|
4
5
|
import stylesCommon from '../styles';
|
|
5
|
-
import
|
|
6
|
+
import { createTypingIndicatorStyles } from './styles';
|
|
6
7
|
export * from './types';
|
|
7
8
|
const DotsAnimation = () => {
|
|
9
|
+
const styles = useThemedStyles(createTypingIndicatorStyles);
|
|
8
10
|
const dot1 = useSharedValue(0);
|
|
9
11
|
const dot2 = useSharedValue(0);
|
|
10
12
|
const dot3 = useSharedValue(0);
|
|
@@ -42,6 +44,7 @@ const DotsAnimation = () => {
|
|
|
42
44
|
</View>);
|
|
43
45
|
};
|
|
44
46
|
export const TypingIndicator = ({ isTyping, style }) => {
|
|
47
|
+
const styles = useThemedStyles(createTypingIndicatorStyles);
|
|
45
48
|
const yCoords = useSharedValue(200);
|
|
46
49
|
const heightScale = useSharedValue(0);
|
|
47
50
|
const marginScale = useSharedValue(0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/TypingIndicator/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AACxE,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAA;AACnC,OAAO,QAAQ,EAAE,EACf,OAAO,EACP,gBAAgB,EAChB,cAAc,EACd,SAAS,EACT,UAAU,EACV,YAAY,EACZ,UAAU,GACX,MAAM,yBAAyB,CAAA;AAChC,OAAO,YAAY,MAAM,WAAW,CAAA;AACpC,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/TypingIndicator/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
import { ChatTheme } from '../Theme';
|
|
2
|
+
export declare const createTypingIndicatorStyles: (theme: ChatTheme) => {
|
|
2
3
|
container: {
|
|
3
4
|
marginLeft: number;
|
|
4
5
|
width: number;
|
|
@@ -17,5 +18,4 @@ declare const _default: {
|
|
|
17
18
|
backgroundColor: string;
|
|
18
19
|
};
|
|
19
20
|
};
|
|
20
|
-
export default _default;
|
|
21
21
|
//# sourceMappingURL=styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/TypingIndicator/styles.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"styles.d.ts","sourceRoot":"","sources":["../../src/TypingIndicator/styles.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEpC,eAAO,MAAM,2BAA2B,GAAI,OAAO,SAAS;;;;;;;;;;;;;;;;;;CAkB1D,CAAA"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { StyleSheet } from 'react-native';
|
|
2
|
-
|
|
3
|
-
export default StyleSheet.create({
|
|
2
|
+
export const createTypingIndicatorStyles = (theme) => StyleSheet.create({
|
|
4
3
|
container: {
|
|
5
4
|
marginLeft: 8,
|
|
6
5
|
width: 45,
|
|
7
|
-
borderRadius:
|
|
8
|
-
backgroundColor:
|
|
6
|
+
borderRadius: theme.radii.bubble,
|
|
7
|
+
backgroundColor: theme.colors.incomingBubble,
|
|
9
8
|
},
|
|
10
9
|
dots: {
|
|
11
10
|
flexDirection: 'row',
|
|
@@ -16,7 +15,7 @@ export default StyleSheet.create({
|
|
|
16
15
|
borderRadius: 4,
|
|
17
16
|
width: 8,
|
|
18
17
|
height: 8,
|
|
19
|
-
backgroundColor:
|
|
18
|
+
backgroundColor: theme.colors.incomingMeta,
|
|
20
19
|
},
|
|
21
20
|
});
|
|
22
21
|
//# sourceMappingURL=styles.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/TypingIndicator/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"styles.js","sourceRoot":"","sources":["../../src/TypingIndicator/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAGzC,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,KAAgB,EAAE,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC;IACjF,SAAS,EAAE;QACT,UAAU,EAAE,CAAC;QACb,KAAK,EAAE,EAAE;QACT,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;QAChC,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc;KAC7C;IACD,IAAI,EAAE;QACJ,aAAa,EAAE,KAAK;KACrB;IACD,GAAG,EAAE;QACH,UAAU,EAAE,CAAC;QACb,WAAW,EAAE,CAAC;QACd,YAAY,EAAE,CAAC;QACf,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,CAAC;QACT,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC,YAAY;KAC3C;CACF,CAAC,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { IconRenderer } from '../Icons';
|
|
3
|
+
export declare const isTrueSheetAvailable: boolean;
|
|
4
|
+
export interface AttachmentAction {
|
|
5
|
+
title: string;
|
|
6
|
+
action: () => void;
|
|
7
|
+
/** Render the title in the destructive color. */
|
|
8
|
+
destructive?: boolean;
|
|
9
|
+
/** Optional icon - when any action has one, the sheet renders as a grid. */
|
|
10
|
+
icon?: IconRenderer;
|
|
11
|
+
/** Tile tint for the grid icon (defaults to the theme accent). */
|
|
12
|
+
color?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface AttachmentSheetProps {
|
|
15
|
+
visible: boolean;
|
|
16
|
+
actions: AttachmentAction[];
|
|
17
|
+
onClose: () => void;
|
|
18
|
+
/** Optional tint for the action labels (defaults to the theme accent). */
|
|
19
|
+
tintColor?: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Telegram-style attachment sheet. Uses the native `react-native-true-sheet`
|
|
23
|
+
* when installed (native grabber, dimmed backdrop, drag-to-dismiss); otherwise
|
|
24
|
+
* falls back to a dependency-free Modal sheet. No Cancel button - dismiss by
|
|
25
|
+
* dragging down or tapping the backdrop.
|
|
26
|
+
*/
|
|
27
|
+
export declare const AttachmentSheet: (props: AttachmentSheetProps) => React.JSX.Element;
|
|
28
|
+
//# sourceMappingURL=AttachmentSheet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AttachmentSheet.d.ts","sourceRoot":"","sources":["../../src/components/AttachmentSheet.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAyC,MAAM,OAAO,CAAA;AAK7D,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAcvC,eAAO,MAAM,oBAAoB,SAAc,CAAA;AAE/C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,IAAI,CAAA;IAClB,iDAAiD;IACjD,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,4EAA4E;IAC5E,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,gBAAgB,EAAE,CAAA;IAC3B,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AA2HD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO,oBAAoB,sBACiC,CAAA"}
|