@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.
- package/README.md +252 -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 +22 -27
- package/lib/Avatar.js.map +1 -1
- package/lib/Bubble/index.d.ts.map +1 -1
- package/lib/Bubble/index.js +86 -25
- 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.map +1 -1
- package/lib/Chat/index.js +65 -25
- package/lib/Chat/index.js.map +1 -1
- package/lib/Chat/types.d.ts +35 -25
- 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 +29 -1
- package/lib/ChatContext.d.ts.map +1 -1
- package/lib/ChatContext.js +3 -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 +63 -50
- package/lib/Composer.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 +223 -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 +10 -9
- 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 +148 -0
- package/lib/Theme.d.ts.map +1 -0
- package/lib/Theme.js +142 -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 +523 -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 +36 -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 +396 -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/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/useKeyboardVerticalOffset.d.ts +17 -8
- package/lib/hooks/useKeyboardVerticalOffset.d.ts.map +1 -1
- package/lib/hooks/useKeyboardVerticalOffset.js +29 -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 +59 -0
- package/lib/i18n.d.ts.map +1 -0
- package/lib/i18n.js +122 -0
- package/lib/i18n.js.map +1 -0
- package/lib/index.d.ts +17 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +17 -0
- package/lib/index.js.map +1 -1
- 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,148 @@
|
|
|
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 ChatThemeSpacing {
|
|
77
|
+
bubblePaddingV: number;
|
|
78
|
+
bubblePaddingH: number;
|
|
79
|
+
withinGroup: number;
|
|
80
|
+
betweenGroups: number;
|
|
81
|
+
screenEdge: number;
|
|
82
|
+
}
|
|
83
|
+
export interface ChatThemeTextStyle {
|
|
84
|
+
fontSize: number;
|
|
85
|
+
lineHeight?: number;
|
|
86
|
+
fontWeight?: 'normal' | 'bold' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900';
|
|
87
|
+
}
|
|
88
|
+
export interface ChatThemeTypography {
|
|
89
|
+
message: ChatThemeTextStyle;
|
|
90
|
+
time: ChatThemeTextStyle;
|
|
91
|
+
senderName: ChatThemeTextStyle;
|
|
92
|
+
day: ChatThemeTextStyle;
|
|
93
|
+
system: ChatThemeTextStyle;
|
|
94
|
+
}
|
|
95
|
+
export interface ChatThemeComposer {
|
|
96
|
+
/** Resting height of the composer field (single line). */
|
|
97
|
+
minHeight: number;
|
|
98
|
+
/** Max height before the field scrolls internally instead of growing. */
|
|
99
|
+
maxHeight: number;
|
|
100
|
+
/** Horizontal padding inside the field pill. */
|
|
101
|
+
fieldPaddingH: number;
|
|
102
|
+
/** Size of the inset icons (emoji, attachment, camera). */
|
|
103
|
+
insetIconSize: number;
|
|
104
|
+
}
|
|
105
|
+
export interface ChatThemeVoice {
|
|
106
|
+
/** Horizontal slide distance (px) to cancel a recording. */
|
|
107
|
+
cancelThreshold: number;
|
|
108
|
+
/** Vertical slide distance (px) to lock hands-free recording. */
|
|
109
|
+
lockThreshold: number;
|
|
110
|
+
}
|
|
111
|
+
export interface ChatTheme {
|
|
112
|
+
colors: ChatThemeColors;
|
|
113
|
+
radii: ChatThemeRadii;
|
|
114
|
+
spacing: ChatThemeSpacing;
|
|
115
|
+
typography: ChatThemeTypography;
|
|
116
|
+
avatar: ChatThemeAvatar;
|
|
117
|
+
sendButton: {
|
|
118
|
+
size: number;
|
|
119
|
+
};
|
|
120
|
+
composer: ChatThemeComposer;
|
|
121
|
+
voice: ChatThemeVoice;
|
|
122
|
+
}
|
|
123
|
+
export type PartialChatTheme = {
|
|
124
|
+
colors?: Partial<ChatThemeColors>;
|
|
125
|
+
radii?: Partial<ChatThemeRadii>;
|
|
126
|
+
spacing?: Partial<ChatThemeSpacing>;
|
|
127
|
+
typography?: Partial<Record<keyof ChatThemeTypography, Partial<ChatThemeTextStyle>>>;
|
|
128
|
+
avatar?: Partial<ChatThemeAvatar>;
|
|
129
|
+
sendButton?: Partial<{
|
|
130
|
+
size: number;
|
|
131
|
+
}>;
|
|
132
|
+
composer?: Partial<ChatThemeComposer>;
|
|
133
|
+
voice?: Partial<ChatThemeVoice>;
|
|
134
|
+
};
|
|
135
|
+
export declare const defaultLightTheme: ChatTheme;
|
|
136
|
+
export declare const defaultDarkTheme: ChatTheme;
|
|
137
|
+
export interface ChatThemeOverrides {
|
|
138
|
+
light?: PartialChatTheme;
|
|
139
|
+
dark?: PartialChatTheme;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Resolve the active theme for a color scheme, applying the matching override.
|
|
143
|
+
* Used by `Chat` to compute the theme once per change and share it via context.
|
|
144
|
+
*/
|
|
145
|
+
export declare function resolveTheme(colorScheme: 'light' | 'dark' | null | undefined, light?: PartialChatTheme, dark?: PartialChatTheme): ChatTheme;
|
|
146
|
+
/** Deep-merge a partial theme over a base theme (two levels deep). */
|
|
147
|
+
export declare function mergeTheme(base: ChatTheme, override?: PartialChatTheme): ChatTheme;
|
|
148
|
+
//# 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,142 @@
|
|
|
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: 8,
|
|
37
|
+
};
|
|
38
|
+
const sharedTypography = {
|
|
39
|
+
message: { fontSize: 16, lineHeight: 21, fontWeight: '400' },
|
|
40
|
+
time: { fontSize: 12, fontWeight: '400' },
|
|
41
|
+
senderName: { fontSize: 13, fontWeight: '600' },
|
|
42
|
+
day: { fontSize: 13, fontWeight: '600' },
|
|
43
|
+
system: { fontSize: 13, fontWeight: '400' },
|
|
44
|
+
};
|
|
45
|
+
export const defaultLightTheme = {
|
|
46
|
+
colors: {
|
|
47
|
+
accent: '#3390EC',
|
|
48
|
+
background: '#EFEFF4',
|
|
49
|
+
incomingBubble: '#FFFFFF',
|
|
50
|
+
outgoingBubble: '#3390EC',
|
|
51
|
+
incomingText: '#000000',
|
|
52
|
+
outgoingText: '#FFFFFF',
|
|
53
|
+
incomingMeta: '#8E8E93',
|
|
54
|
+
outgoingMeta: 'rgba(255, 255, 255, 0.7)',
|
|
55
|
+
senderName: '#3390EC',
|
|
56
|
+
ticksSent: 'rgba(255, 255, 255, 0.6)',
|
|
57
|
+
ticksRead: '#FFFFFF',
|
|
58
|
+
separator: 'rgba(0, 0, 0, 0.08)',
|
|
59
|
+
inputBackground: '#F2F2F7',
|
|
60
|
+
inputBarBackground: '#FFFFFF',
|
|
61
|
+
inputText: '#000000',
|
|
62
|
+
placeholder: '#8E8E93',
|
|
63
|
+
dayPillBackground: 'rgba(0, 0, 0, 0.3)',
|
|
64
|
+
dayPillText: '#FFFFFF',
|
|
65
|
+
surface: '#FFFFFF',
|
|
66
|
+
reactionBackground: 'rgba(0, 0, 0, 0.06)',
|
|
67
|
+
reactionActiveBackground: 'rgba(51, 144, 236, 0.15)',
|
|
68
|
+
outgoingOverlay: 'rgba(255, 255, 255, 0.15)',
|
|
69
|
+
error: '#E74C3C',
|
|
70
|
+
inputFieldBorder: 'transparent',
|
|
71
|
+
},
|
|
72
|
+
radii: sharedRadii,
|
|
73
|
+
spacing: sharedSpacing,
|
|
74
|
+
typography: sharedTypography,
|
|
75
|
+
avatar: { size: 34, palette: avatarPalette, textColor: '#FFFFFF' },
|
|
76
|
+
sendButton: { size: 36 },
|
|
77
|
+
composer: sharedComposer,
|
|
78
|
+
voice: sharedVoice,
|
|
79
|
+
};
|
|
80
|
+
export const defaultDarkTheme = {
|
|
81
|
+
colors: {
|
|
82
|
+
accent: '#3390EC',
|
|
83
|
+
background: '#0E1621',
|
|
84
|
+
incomingBubble: '#182533',
|
|
85
|
+
outgoingBubble: '#2B5278',
|
|
86
|
+
incomingText: '#FFFFFF',
|
|
87
|
+
outgoingText: '#FFFFFF',
|
|
88
|
+
incomingMeta: '#6D7F8F',
|
|
89
|
+
outgoingMeta: 'rgba(255, 255, 255, 0.55)',
|
|
90
|
+
senderName: '#6FB2F0',
|
|
91
|
+
ticksSent: 'rgba(255, 255, 255, 0.55)',
|
|
92
|
+
ticksRead: '#59ABE8',
|
|
93
|
+
separator: 'rgba(255, 255, 255, 0.1)',
|
|
94
|
+
inputBackground: '#243140',
|
|
95
|
+
inputBarBackground: '#17212B',
|
|
96
|
+
inputText: '#FFFFFF',
|
|
97
|
+
placeholder: '#708499',
|
|
98
|
+
dayPillBackground: 'rgba(255, 255, 255, 0.12)',
|
|
99
|
+
dayPillText: '#FFFFFF',
|
|
100
|
+
surface: '#17212B',
|
|
101
|
+
reactionBackground: 'rgba(255, 255, 255, 0.08)',
|
|
102
|
+
reactionActiveBackground: 'rgba(51, 144, 236, 0.22)',
|
|
103
|
+
outgoingOverlay: 'rgba(255, 255, 255, 0.1)',
|
|
104
|
+
error: '#E74C3C',
|
|
105
|
+
inputFieldBorder: 'transparent',
|
|
106
|
+
},
|
|
107
|
+
radii: sharedRadii,
|
|
108
|
+
spacing: sharedSpacing,
|
|
109
|
+
typography: sharedTypography,
|
|
110
|
+
avatar: { size: 34, palette: avatarPalette, textColor: '#FFFFFF' },
|
|
111
|
+
sendButton: { size: 36 },
|
|
112
|
+
composer: sharedComposer,
|
|
113
|
+
voice: sharedVoice,
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* Resolve the active theme for a color scheme, applying the matching override.
|
|
117
|
+
* Used by `Chat` to compute the theme once per change and share it via context.
|
|
118
|
+
*/
|
|
119
|
+
export function resolveTheme(colorScheme, light, dark) {
|
|
120
|
+
const isDark = colorScheme === 'dark';
|
|
121
|
+
return mergeTheme(isDark ? defaultDarkTheme : defaultLightTheme, isDark ? dark : light);
|
|
122
|
+
}
|
|
123
|
+
/** Deep-merge a partial theme over a base theme (two levels deep). */
|
|
124
|
+
export function mergeTheme(base, override) {
|
|
125
|
+
if (!override)
|
|
126
|
+
return base;
|
|
127
|
+
const mergedTypography = { ...base.typography };
|
|
128
|
+
if (override.typography)
|
|
129
|
+
for (const key of Object.keys(override.typography))
|
|
130
|
+
mergedTypography[key] = { ...base.typography[key], ...override.typography[key] };
|
|
131
|
+
return {
|
|
132
|
+
colors: { ...base.colors, ...override.colors },
|
|
133
|
+
radii: { ...base.radii, ...override.radii },
|
|
134
|
+
spacing: { ...base.spacing, ...override.spacing },
|
|
135
|
+
typography: mergedTypography,
|
|
136
|
+
avatar: { ...base.avatar, ...override.avatar },
|
|
137
|
+
sendButton: { ...base.sendButton, ...override.sendButton },
|
|
138
|
+
composer: { ...base.composer, ...override.composer },
|
|
139
|
+
voice: { ...base.voice, ...override.voice },
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
//# 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"}
|