@kesha-antonov/react-native-chat 6.0.0 → 6.1.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 +28 -5
- package/lib/Actions.d.ts.map +1 -1
- package/lib/Actions.js +33 -27
- package/lib/Actions.js.map +1 -1
- package/lib/Chat/Chat.d.ts.map +1 -1
- package/lib/Chat/Chat.js +253 -203
- package/lib/Chat/Chat.js.map +1 -1
- package/lib/Chat/ChatMessageList.d.ts.map +1 -1
- package/lib/Chat/ChatMessageList.js +4 -0
- package/lib/Chat/ChatMessageList.js.map +1 -1
- package/lib/Chat/index.d.ts +9 -1
- package/lib/Chat/index.d.ts.map +1 -1
- package/lib/Chat/index.js +14 -1
- package/lib/Chat/index.js.map +1 -1
- package/lib/Chat/types.d.ts +29 -0
- package/lib/Chat/types.d.ts.map +1 -1
- package/lib/Chat/types.js.map +1 -1
- package/lib/Chat/useMessageActions.d.ts +1 -0
- package/lib/Chat/useMessageActions.d.ts.map +1 -1
- package/lib/Chat/useMessageActions.js +97 -89
- package/lib/Chat/useMessageActions.js.map +1 -1
- package/lib/ChatHeader.d.ts +50 -0
- package/lib/ChatHeader.d.ts.map +1 -0
- package/lib/ChatHeader.js +356 -0
- package/lib/ChatHeader.js.map +1 -0
- package/lib/ChatList/ChatListCell.d.ts +1 -1
- package/lib/ChatList/ChatListCell.d.ts.map +1 -1
- package/lib/ChatList/ChatListCell.js +42 -11
- package/lib/ChatList/ChatListCell.js.map +1 -1
- package/lib/ChatList/index.js +332 -323
- package/lib/ChatList/index.js.map +1 -1
- package/lib/ChatList/types.d.ts +17 -1
- package/lib/ChatList/types.d.ts.map +1 -1
- package/lib/ChatList/types.js.map +1 -1
- package/lib/ChatList/utils.d.ts +4 -1
- package/lib/ChatList/utils.d.ts.map +1 -1
- package/lib/ChatList/utils.js +3 -2
- package/lib/ChatList/utils.js.map +1 -1
- package/lib/Composer.js +5 -1
- package/lib/Composer.js.map +1 -1
- package/lib/InputToolbar/fragments.d.ts +1 -1
- package/lib/InputToolbar/fragments.d.ts.map +1 -1
- package/lib/InputToolbar/fragments.js +9 -7
- package/lib/InputToolbar/fragments.js.map +1 -1
- package/lib/InputToolbar/index.d.ts.map +1 -1
- package/lib/InputToolbar/index.js +3 -2
- package/lib/InputToolbar/index.js.map +1 -1
- package/lib/InputToolbar/types.d.ts +6 -0
- package/lib/InputToolbar/types.d.ts.map +1 -1
- package/lib/InputToolbar/types.js.map +1 -1
- package/lib/InputToolbar/useActionsFragment.d.ts.map +1 -1
- package/lib/InputToolbar/useActionsFragment.js +83 -59
- package/lib/InputToolbar/useActionsFragment.js.map +1 -1
- package/lib/InputToolbar/useKeyboardInset.d.ts +1 -1
- package/lib/InputToolbar/useKeyboardInset.d.ts.map +1 -1
- package/lib/InputToolbar/useKeyboardInset.js +2 -2
- package/lib/InputToolbar/useKeyboardInset.js.map +1 -1
- package/lib/MessageText.d.ts.map +1 -1
- package/lib/MessageText.js +39 -33
- package/lib/MessageText.js.map +1 -1
- package/lib/MessagesContainer/index.d.ts.map +1 -1
- package/lib/MessagesContainer/index.js +113 -94
- package/lib/MessagesContainer/index.js.map +1 -1
- package/lib/MessagesContainer/types.d.ts +5 -2
- package/lib/MessagesContainer/types.d.ts.map +1 -1
- package/lib/MessagesContainer/types.js.map +1 -1
- package/lib/MessagesContainer/useChained.d.ts +6 -0
- package/lib/MessagesContainer/useChained.d.ts.map +1 -0
- package/lib/MessagesContainer/useChained.js +38 -0
- package/lib/MessagesContainer/useChained.js.map +1 -0
- package/lib/MessagesContainer/useListChrome.d.ts.map +1 -1
- package/lib/MessagesContainer/useListChrome.js +1 -1
- package/lib/MessagesContainer/useListChrome.js.map +1 -1
- package/lib/Models.d.ts +2 -1
- package/lib/Models.d.ts.map +1 -1
- package/lib/Models.js.map +1 -1
- package/lib/Send.d.ts.map +1 -1
- package/lib/Send.js +18 -13
- package/lib/Send.js.map +1 -1
- package/lib/Theme.d.ts +11 -0
- package/lib/Theme.d.ts.map +1 -1
- package/lib/Theme.js +17 -1
- package/lib/Theme.js.map +1 -1
- package/lib/attachments/AttachmentButton.js +17 -15
- package/lib/attachments/AttachmentButton.js.map +1 -1
- package/lib/attachments/AttachmentMenu/GalleryGrid.d.ts +3 -1
- package/lib/attachments/AttachmentMenu/GalleryGrid.d.ts.map +1 -1
- package/lib/attachments/AttachmentMenu/GalleryGrid.js +69 -68
- package/lib/attachments/AttachmentMenu/GalleryGrid.js.map +1 -1
- package/lib/attachments/AttachmentMenu/TabPanel.d.ts +3 -1
- package/lib/attachments/AttachmentMenu/TabPanel.d.ts.map +1 -1
- package/lib/attachments/AttachmentMenu/TabPanel.js +23 -21
- package/lib/attachments/AttachmentMenu/TabPanel.js.map +1 -1
- package/lib/attachments/AttachmentMenu/index.d.ts +6 -2
- package/lib/attachments/AttachmentMenu/index.d.ts.map +1 -1
- package/lib/attachments/AttachmentMenu/index.js +259 -247
- package/lib/attachments/AttachmentMenu/index.js.map +1 -1
- package/lib/attachments/buildMessages.d.ts +4 -4
- package/lib/attachments/buildMessages.d.ts.map +1 -1
- package/lib/attachments/buildMessages.js +9 -8
- package/lib/attachments/buildMessages.js.map +1 -1
- package/lib/attachments/types.d.ts +19 -0
- package/lib/attachments/types.d.ts.map +1 -1
- package/lib/attachments/types.js.map +1 -1
- package/lib/components/TouchableOpacity.d.ts +5 -0
- package/lib/components/TouchableOpacity.d.ts.map +1 -1
- package/lib/components/TouchableOpacity.js +59 -54
- package/lib/components/TouchableOpacity.js.map +1 -1
- package/lib/components/defaultMessageActions.d.ts +3 -1
- package/lib/components/defaultMessageActions.d.ts.map +1 -1
- package/lib/components/defaultMessageActions.js +9 -1
- package/lib/components/defaultMessageActions.js.map +1 -1
- package/lib/components/textHighlight.d.ts +14 -0
- package/lib/components/textHighlight.d.ts.map +1 -0
- package/lib/components/textHighlight.js +39 -0
- package/lib/components/textHighlight.js.map +1 -0
- package/lib/hooks/useKeyboardVerticalOffset.d.ts +6 -0
- package/lib/hooks/useKeyboardVerticalOffset.d.ts.map +1 -1
- package/lib/hooks/useKeyboardVerticalOffset.js +35 -13
- package/lib/hooks/useKeyboardVerticalOffset.js.map +1 -1
- package/lib/i18n.d.ts +2 -0
- package/lib/i18n.d.ts.map +1 -1
- package/lib/i18n.js +1 -0
- package/lib/i18n.js.map +1 -1
- package/lib/index.d.ts +3 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/linkParser.d.ts +4 -1
- package/lib/linkParser.d.ts.map +1 -1
- package/lib/linkParser.js +115 -78
- package/lib/linkParser.js.map +1 -1
- package/lib/locales/ar.d.ts.map +1 -1
- package/lib/locales/ar.js +1 -0
- package/lib/locales/ar.js.map +1 -1
- package/lib/locales/de.d.ts.map +1 -1
- package/lib/locales/de.js +1 -0
- package/lib/locales/de.js.map +1 -1
- package/lib/locales/es.d.ts.map +1 -1
- package/lib/locales/es.js +1 -0
- package/lib/locales/es.js.map +1 -1
- package/lib/locales/fr.d.ts.map +1 -1
- package/lib/locales/fr.js +1 -0
- package/lib/locales/fr.js.map +1 -1
- package/lib/locales/hi.d.ts.map +1 -1
- package/lib/locales/hi.js +1 -0
- package/lib/locales/hi.js.map +1 -1
- package/lib/locales/id.d.ts.map +1 -1
- package/lib/locales/id.js +1 -0
- package/lib/locales/id.js.map +1 -1
- package/lib/locales/it.d.ts.map +1 -1
- package/lib/locales/it.js +1 -0
- package/lib/locales/it.js.map +1 -1
- package/lib/locales/ja.d.ts.map +1 -1
- package/lib/locales/ja.js +1 -0
- package/lib/locales/ja.js.map +1 -1
- package/lib/locales/ko.d.ts.map +1 -1
- package/lib/locales/ko.js +1 -0
- package/lib/locales/ko.js.map +1 -1
- package/lib/locales/nl.d.ts.map +1 -1
- package/lib/locales/nl.js +1 -0
- package/lib/locales/nl.js.map +1 -1
- package/lib/locales/pl.d.ts.map +1 -1
- package/lib/locales/pl.js +1 -0
- package/lib/locales/pl.js.map +1 -1
- package/lib/locales/pt.d.ts.map +1 -1
- package/lib/locales/pt.js +1 -0
- package/lib/locales/pt.js.map +1 -1
- package/lib/locales/ru.d.ts.map +1 -1
- package/lib/locales/ru.js +1 -0
- package/lib/locales/ru.js.map +1 -1
- package/lib/locales/tr.d.ts.map +1 -1
- package/lib/locales/tr.js +1 -0
- package/lib/locales/tr.js.map +1 -1
- package/lib/locales/zh.d.ts.map +1 -1
- package/lib/locales/zh.js +1 -0
- package/lib/locales/zh.js.map +1 -1
- package/llms.txt +1 -1
- package/package.json +1 -1
package/lib/Theme.d.ts
CHANGED
|
@@ -314,6 +314,10 @@ export interface ChatThemeChatList {
|
|
|
314
314
|
headerBackground: string;
|
|
315
315
|
/** Header title and icons. */
|
|
316
316
|
headerText: string;
|
|
317
|
+
/** `ChatHeader`'s status line ("last seen", members). */
|
|
318
|
+
headerSubtitle: string;
|
|
319
|
+
/** `ChatHeader`'s status line while it reads "online" or "typing". */
|
|
320
|
+
headerSubtitleActive: string;
|
|
317
321
|
/** Chat names. */
|
|
318
322
|
name: string;
|
|
319
323
|
/** The last message's text. */
|
|
@@ -414,6 +418,11 @@ export interface ChatTheme {
|
|
|
414
418
|
chatList: ChatThemeChatList;
|
|
415
419
|
/** Sender name colors, picked per user id (`avatar_nameInMessage*`); empty uses `colors.senderName`. */
|
|
416
420
|
nameColors: string[];
|
|
421
|
+
/**
|
|
422
|
+
* The text size the user picked, as a multiplier of every size in `typography` (1 by default):
|
|
423
|
+
* messages, times, names, day and service pills, quotes and the composer grow together.
|
|
424
|
+
*/
|
|
425
|
+
textScale?: number;
|
|
417
426
|
}
|
|
418
427
|
export type PartialChatTheme = {
|
|
419
428
|
colors?: Partial<ChatThemeColors>;
|
|
@@ -435,6 +444,8 @@ export type PartialChatTheme = {
|
|
|
435
444
|
attachments?: Partial<ChatThemeAttachments>;
|
|
436
445
|
chatList?: Partial<ChatThemeChatList>;
|
|
437
446
|
nameColors?: string[];
|
|
447
|
+
/** Multiplies every size in `typography`; see `ChatTheme.textScale`. */
|
|
448
|
+
textScale?: number;
|
|
438
449
|
};
|
|
439
450
|
export declare const defaultLightTheme: ChatTheme;
|
|
440
451
|
export declare const defaultDarkTheme: ChatTheme;
|
package/lib/Theme.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Theme.d.ts","sourceRoot":"","sources":["../src/Theme.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Theme.d.ts","sourceRoot":"","sources":["../src/Theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAElD;;;;;;;;;GASG;AAEH,MAAM,WAAW,eAAe;IAC9B,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAA;IACd,sFAAsF;IACtF,UAAU,EAAE,MAAM,CAAA;IAClB,yCAAyC;IACzC,cAAc,EAAE,MAAM,CAAA;IACtB;;;OAGG;IACH,cAAc,EAAE,MAAM,CAAA;IACtB,6BAA6B;IAC7B,YAAY,EAAE,MAAM,CAAA;IACpB,6BAA6B;IAC7B,YAAY,EAAE,MAAM,CAAA;IACpB,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAA;IACpB,8CAA8C;IAC9C,YAAY,EAAE,MAAM,CAAA;IACpB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAA;IAClB,sDAAsD;IACtD,SAAS,EAAE,MAAM,CAAA;IACjB,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAA;IACjB,8BAA8B;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,2CAA2C;IAC3C,eAAe,EAAE,MAAM,CAAA;IACvB,qFAAqF;IACrF,kBAAkB,EAAE,MAAM,CAAA;IAC1B,2BAA2B;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,gFAAgF;IAChF,iBAAiB,EAAE,MAAM,CAAA;IACzB,kCAAkC;IAClC,WAAW,EAAE,MAAM,CAAA;IACnB,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAA;IACf,uEAAuE;IACvE,kBAAkB,EAAE,MAAM,CAAA;IAC1B,qDAAqD;IACrD,wBAAwB,EAAE,MAAM,CAAA;IAChC,uFAAuF;IACvF,eAAe,EAAE,MAAM,CAAA;IACvB,sFAAsF;IACtF,KAAK,EAAE,MAAM,CAAA;IACb,6DAA6D;IAC7D,gBAAgB,EAAE,MAAM,CAAA;IAExB,kCAAkC;IAClC,YAAY,EAAE,MAAM,CAAA;IACpB,kCAAkC;IAClC,YAAY,EAAE,MAAM,CAAA;IACpB,uEAAuE;IACvE,oBAAoB,EAAE,MAAM,CAAA;IAC5B,uEAAuE;IACvE,oBAAoB,EAAE,MAAM,CAAA;IAC5B,yEAAyE;IACzE,sBAAsB,EAAE,MAAM,CAAA;IAC9B,yEAAyE;IACzE,sBAAsB,EAAE,MAAM,CAAA;IAC9B,yCAAyC;IACzC,mBAAmB,EAAE,MAAM,CAAA;IAC3B,6BAA6B;IAC7B,mBAAmB,EAAE,MAAM,CAAA;IAC3B,mCAAmC;IACnC,aAAa,EAAE,MAAM,CAAA;IACrB,uEAAuE;IACvE,iBAAiB,EAAE,MAAM,CAAA;IACzB,uEAAuE;IACvE,iBAAiB,EAAE,MAAM,CAAA;IACzB,4CAA4C;IAC5C,iBAAiB,EAAE,MAAM,CAAA;IACzB,4CAA4C;IAC5C,iBAAiB,EAAE,MAAM,CAAA;IACzB,mFAAmF;IACnF,gBAAgB,EAAE,MAAM,CAAA;IACxB,8DAA8D;IAC9D,oBAAoB,EAAE,MAAM,CAAA;IAC5B,2DAA2D;IAC3D,0BAA0B,EAAE,MAAM,CAAA;IAClC,gDAAgD;IAChD,gBAAgB,EAAE,MAAM,CAAA;IACxB,8DAA8D;IAC9D,oBAAoB,EAAE,MAAM,CAAA;IAC5B,2DAA2D;IAC3D,0BAA0B,EAAE,MAAM,CAAA;IAClC,+DAA+D;IAC/D,kBAAkB,EAAE,MAAM,CAAA;IAC1B,2DAA2D;IAC3D,iBAAiB,EAAE,MAAM,CAAA;IACzB,+DAA+D;IAC/D,kBAAkB,EAAE,MAAM,CAAA;IAC1B,2DAA2D;IAC3D,iBAAiB,EAAE,MAAM,CAAA;IACzB,oEAAoE;IACpE,YAAY,EAAE,MAAM,CAAA;IACpB,sBAAsB;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,qCAAqC;IACrC,wBAAwB,EAAE,MAAM,CAAA;IAChC,gCAAgC;IAChC,kBAAkB,EAAE,MAAM,CAAA;IAC1B,qDAAqD;IACrD,mBAAmB,EAAE,MAAM,CAAA;IAC3B,2BAA2B;IAC3B,uBAAuB,EAAE,MAAM,CAAA;IAC/B,iCAAiC;IACjC,yBAAyB,EAAE,MAAM,CAAA;IACjC,iBAAiB;IACjB,mBAAmB,EAAE,MAAM,CAAA;IAC3B,iBAAiB;IACjB,oBAAoB,EAAE,MAAM,CAAA;IAC5B,wEAAwE;IACxE,iBAAiB,EAAE,MAAM,CAAA;IACzB,oEAAoE;IACpE,sBAAsB,EAAE,MAAM,CAAA;CAC/B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,2EAA2E;IAC3E,OAAO,EAAE,MAAM,EAAE,CAAA;IACjB,gGAAgG;IAChG,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,yDAAyD;IACzD,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAA;IACd,oEAAoE;IACpE,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,qCAAqC;IACrC,KAAK,EAAE,MAAM,CAAA;IACb,wEAAwE;IACxE,UAAU,EAAE,MAAM,CAAA;IAClB,kCAAkC;IAClC,aAAa,EAAE,MAAM,CAAA;IACrB,2BAA2B;IAC3B,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,cAAc,EAAE,MAAM,CAAA;IACtB,oDAAoD;IACpD,mBAAmB,EAAE,MAAM,CAAA;IAC3B,cAAc,EAAE,MAAM,CAAA;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,8FAA8F;IAC9F,UAAU,EAAE,uBAAuB,CAAA;IACnC,gEAAgE;IAChE,oBAAoB,EAAE,MAAM,CAAA;CAC7B;AAED,8GAA8G;AAC9G,MAAM,MAAM,2BAA2B,GAAG,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAA;AAEnF,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EACP,QAAQ,GACR,MAAM,GACN,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,GACL,KAAK,CAAA;CACV;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,kBAAkB,CAAA;IAC3B,IAAI,EAAE,kBAAkB,CAAA;IACxB,UAAU,EAAE,kBAAkB,CAAA;IAC9B,GAAG,EAAE,kBAAkB,CAAA;IACvB,MAAM,EAAE,kBAAkB,CAAA;IAC1B,6BAA6B;IAC7B,SAAS,EAAE,kBAAkB,CAAA;IAC7B,6BAA6B;IAC7B,SAAS,EAAE,kBAAkB,CAAA;IAC7B,gCAAgC;IAChC,aAAa,EAAE,kBAAkB,CAAA;IACjC,qBAAqB;IACrB,QAAQ,EAAE,kBAAkB,CAAA;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAA;IACjB,yEAAyE;IACzE,SAAS,EAAE,MAAM,CAAA;IACjB,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAA;IACrB,2DAA2D;IAC3D,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,cAAc;IAC7B;;;;OAIG;IACH,eAAe,EAAE,MAAM,CAAA;IACvB,iEAAiE;IACjE,aAAa,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,OAAO,EAAE,OAAO,CAAA;IAChB,kFAAkF;IAClF,YAAY,EAAE,OAAO,CAAA;IACrB;;;OAGG;IACH,gBAAgB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;IACjC;;;;OAIG;IACH,oBAAoB,EAAE,QAAQ,GAAG,QAAQ,CAAA;IACzC;;;OAGG;IACH,aAAa,EAAE,MAAM,CAAA;IACrB;;;OAGG;IACH,gBAAgB,EAAE,MAAM,CAAA;IACxB,oGAAoG;IACpG,aAAa,EAAE,MAAM,EAAE,CAAA;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,mEAAmE;IACnE,SAAS,EAAE,OAAO,CAAA;IAClB,mDAAmD;IACnD,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,uFAAuF;IACvF,UAAU,EAAE,OAAO,CAAA;IACnB,gFAAgF;IAChF,OAAO,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAA;IACpC,8CAA8C;IAC9C,cAAc,EAAE,MAAM,CAAA;IACtB,wFAAwF;IACxF,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,wBAAwB;IACxB,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,+BAA+B;IAC/B,YAAY,EAAE,MAAM,CAAA;IACpB,0EAA0E;IAC1E,YAAY,EAAE,MAAM,CAAA;IACpB,4CAA4C;IAC5C,YAAY,EAAE,MAAM,CAAA;IACpB,uBAAuB;IACvB,gBAAgB,EAAE,MAAM,CAAA;IACxB,4BAA4B;IAC5B,UAAU,EAAE,MAAM,CAAA;IAClB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,gDAAgD;IAChD,eAAe,EAAE,MAAM,CAAA;IACvB,qDAAqD;IACrD,QAAQ,EAAE,MAAM,CAAA;IAChB,mEAAmE;IACnE,aAAa,EAAE,MAAM,CAAA;IACrB,wFAAwF;IACxF,QAAQ,EAAE,MAAM,CAAA;IAChB,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,yEAAyE;IACzE,UAAU,EAAE,MAAM,CAAA;IAClB,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAA;IACZ,sDAAsD;IACtD,IAAI,EAAE,MAAM,CAAA;IACZ,4EAA4E;IAC5E,SAAS,EAAE,MAAM,CAAA;IACjB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAA;IACf,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAA;IACnB,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAA;IACb,sDAAsD;IACtD,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,qCAAqC;AACrC,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,MAAM,CAAA;IAClB,gBAAgB,EAAE,MAAM,CAAA;IACxB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAA;IAClB,yDAAyD;IACzD,cAAc,EAAE,MAAM,CAAA;IACtB,sEAAsE;IACtE,oBAAoB,EAAE,MAAM,CAAA;IAC5B,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAA;IACf,sDAAsD;IACtD,YAAY,EAAE,MAAM,CAAA;IACpB,qEAAqE;IACrE,UAAU,EAAE,MAAM,CAAA;IAClB,iBAAiB;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,gBAAgB;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAA;IACb,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,MAAM,CAAA;IAChB,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAA;IACf,sBAAsB;IACtB,WAAW,EAAE,MAAM,CAAA;IACnB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAA;IAChB,oFAAoF;IACpF,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,CAAA;IACtB,0CAA0C;IAC1C,aAAa,EAAE,MAAM,CAAA;IACrB,2BAA2B;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,8FAA8F;IAC9F,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;IACtB,gBAAgB,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAA;IAClB,kDAAkD;IAClD,GAAG,EAAE,MAAM,CAAA;IACX,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAA;IACZ,kEAAkE;IAClE,aAAa,EAAE,MAAM,CAAA;IACrB,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,+DAA+D;IAC/D,aAAa,EAAE,MAAM,CAAA;IACrB,6DAA6D;IAC7D,OAAO,EAAE,MAAM,CAAA;IACf,sEAAsE;IACtE,WAAW,EAAE,MAAM,CAAA;IACnB,0BAA0B;IAC1B,eAAe,EAAE,MAAM,CAAA;IACvB,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAA;IAChB,kCAAkC;IAClC,aAAa,EAAE,MAAM,CAAA;IACrB,wBAAwB;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,4CAA4C;IAC5C,UAAU,EAAE,MAAM,CAAA;IAClB,wBAAwB;IACxB,cAAc,EAAE,MAAM,CAAA;CACvB;AAED,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,cAAc,CAAA;IACrB,OAAO,EAAE,gBAAgB,CAAA;IACzB,UAAU,EAAE,mBAAmB,CAAA;IAC/B,MAAM,EAAE,eAAe,CAAA;IACvB,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5B,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,KAAK,EAAE,cAAc,CAAA;IACrB,MAAM,EAAE,eAAe,CAAA;IACvB,SAAS,EAAE,kBAAkB,CAAA;IAC7B,mCAAmC;IACnC,aAAa,EAAE,sBAAsB,CAAA;IACrC,6CAA6C;IAC7C,WAAW,EAAE,oBAAoB,CAAA;IACjC,oCAAoC;IACpC,WAAW,EAAE,oBAAoB,CAAA;IACjC,kCAAkC;IAClC,QAAQ,EAAE,iBAAiB,CAAA;IAC3B,wGAAwG;IACxG,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC,GAAG;QAAE,UAAU,CAAC,EAAE,2BAA2B,CAAA;KAAE,CAAA;IACtG,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,mBAAmB,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAA;IACpF,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACjC,UAAU,CAAC,EAAE,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;IAC/B,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAA;IACjC,SAAS,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,CAAA;IACvC,aAAa,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAA;IAC/C,WAAW,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAC3C,WAAW,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAA;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAA;IACrC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;IACrB,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAuFD,eAAO,MAAM,iBAAiB,EAAE,SA2J/B,CAAA;AAED,eAAO,MAAM,gBAAgB,EAAE,SAiK9B,CAAA;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,gBAAgB,CAAA;IACxB,IAAI,CAAC,EAAE,gBAAgB,CAAA;CACxB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,WAAW,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EAChD,KAAK,CAAC,EAAE,gBAAgB,EACxB,IAAI,CAAC,EAAE,gBAAgB,GACtB,SAAS,CAGX;AAED,2FAA2F;AAC3F,wBAAgB,UAAU,CAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,gBAAgB,GAAG,SAAS,CA0DnF;AAED,0FAA0F;AAC1F,wBAAgB,iBAAiB,CAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAazF;AAED,4FAA4F;AAC5F,wBAAgB,YAAY,CAAE,KAAK,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAKvF"}
|
package/lib/Theme.js
CHANGED
|
@@ -252,6 +252,8 @@ export const defaultLightTheme = {
|
|
|
252
252
|
background: '#FFFFFF',
|
|
253
253
|
headerBackground: '#FFFFFF',
|
|
254
254
|
headerText: '#1A1D21',
|
|
255
|
+
headerSubtitle: '#79817E',
|
|
256
|
+
headerSubtitleActive: '#298ACF',
|
|
255
257
|
name: '#1A1D21',
|
|
256
258
|
message: '#8E9091',
|
|
257
259
|
senderPrefix: '#298ACF',
|
|
@@ -418,6 +420,8 @@ export const defaultDarkTheme = {
|
|
|
418
420
|
background: '#1D2733',
|
|
419
421
|
headerBackground: '#242D39',
|
|
420
422
|
headerText: '#FFFFFF',
|
|
423
|
+
headerSubtitle: 'rgba(219, 242, 255, 0.49)',
|
|
424
|
+
headerSubtitleActive: '#73BBF7',
|
|
421
425
|
name: '#E9EEF4',
|
|
422
426
|
message: '#7D8B99',
|
|
423
427
|
senderPrefix: '#E9EEF4',
|
|
@@ -482,6 +486,17 @@ export function mergeTheme(base, override) {
|
|
|
482
486
|
...base.typography[key],
|
|
483
487
|
...override.typography[key]
|
|
484
488
|
};
|
|
489
|
+
|
|
490
|
+
// The text size multiplies whatever sizes the merge ends with, the app's own included.
|
|
491
|
+
const textScale = override.textScale ?? base.textScale ?? 1;
|
|
492
|
+
if (textScale !== (base.textScale ?? 1)) for (const key of Object.keys(mergedTypography)) {
|
|
493
|
+
const style = mergedTypography[key];
|
|
494
|
+
mergedTypography[key] = {
|
|
495
|
+
...style,
|
|
496
|
+
fontSize: style.fontSize * textScale,
|
|
497
|
+
lineHeight: style.lineHeight != null ? style.lineHeight * textScale : undefined
|
|
498
|
+
};
|
|
499
|
+
}
|
|
485
500
|
const overrideScreenEdge = override.spacing?.screenEdge;
|
|
486
501
|
const mergedScreenEdge = typeof overrideScreenEdge === 'number' ? {
|
|
487
502
|
left: overrideScreenEdge,
|
|
@@ -554,7 +569,8 @@ export function mergeTheme(base, override) {
|
|
|
554
569
|
...base.chatList,
|
|
555
570
|
...override.chatList
|
|
556
571
|
},
|
|
557
|
-
nameColors
|
|
572
|
+
nameColors,
|
|
573
|
+
textScale
|
|
558
574
|
};
|
|
559
575
|
}
|
|
560
576
|
|
package/lib/Theme.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Theme.js","names":["avatarPaletteDay","avatarPaletteEndDay","avatarPaletteNight","avatarPaletteEndNight","sharedRadii","bubble","bubbleGrouped","inputField","sendButton","reaction","dayPill","media","mediaInner","mediaTimePill","replyQuote","sharedComposer","minHeight","maxHeight","fieldPaddingH","insetIconSize","sharedVoice","cancelThreshold","lockThreshold","sharedSpacing","bubblePaddingV","bubblePaddingBottom","bubblePaddingH","withinGroup","betweenGroups","screenEdge","left","right","inputToolbarPaddingV","sharedTypography","message","fontSize","lineHeight","fontWeight","time","senderName","day","system","replyName","replyText","reactionCount","composer","sharedBubble","hasTail","isTimeInline","outgoingGradientMode","maxWidthInset","bigEmojiMaxCount","bigEmojiSizes","sharedEmojiKeyboardMetrics","defaultHeight","cellSize","emojiSize","defaultLightTheme","colors","accent","background","incomingBubble","outgoingBubble","incomingText","outgoingText","incomingMeta","outgoingMeta","ticksSent","ticksRead","separator","inputBackground","inputBarBackground","inputText","placeholder","dayPillBackground","dayPillText","surface","reactionBackground","reactionActiveBackground","outgoingOverlay","error","inputFieldBorder","incomingLink","outgoingLink","incomingBubbleShadow","outgoingBubbleShadow","incomingBubbleSelected","outgoingBubbleSelected","selectionBackground","mediaTimeBackground","mediaTimeText","incomingReplyLine","incomingReplyName","outgoingReplyLine","outgoingReplyName","incomingReaction","incomingReactionText","incomingReactionTextChosen","outgoingReaction","outgoingReactionText","outgoingReactionTextChosen","incomingVoiceTrack","incomingVoiceFill","outgoingVoiceTrack","outgoingVoiceFill","composerIcon","inputCursor","scrollToBottomBackground","scrollToBottomIcon","scrollToBottomBadge","scrollToBottomBadgeText","unreadSeparatorBackground","unreadSeparatorText","unreadSeparatorArrow","selectionCheckbox","selectionCheckboxCheck","radii","spacing","typography","avatar","size","palette","paletteEnd","textColor","voice","outgoingGradient","wallpaper","isEnabled","isAnimated","pattern","patternOpacity","nameColors","emojiKeyboard","icon","iconSelected","tabIndicator","sectionTitle","searchBackground","searchIcon","searchText","backspace","shadowLine","popupBackground","selector","contextMenu","text","pressed","destructive","scrim","reactionSelected","chatList","headerBackground","headerText","name","senderPrefix","attachment","typing","draft","date","check","badge","badgeMuted","badgeText","muteIcon","pinIcon","verified","online","divider","selectedRow","checkbox","swipeArchive","swipeUnarchive","archiveAvatar","fab","fabIcon","shimmer","shimmerOpacity","shimmerHighlight","attachments","dim","secondaryText","handle","tabBackground","tabText","tabSelected","tabSelectedText","checkboxCheck","cellBackground","sendButtonIcon","defaultDarkTheme","resolveTheme","colorScheme","light","dark","isDark","mergeTheme","base","override","mergedTypography","key","Object","keys","overrideScreenEdge","mergedScreenEdge","undefined","getUserColorIndex","id","count","Number","isFinite","Math","abs","trunc","String","hash","i","length","charCodeAt","getNameColor","theme"],"sources":["../src/Theme.ts"],"sourcesContent":["import { ImageSourcePropType } from 'react-native'\n\n/**\n * Centralized design tokens for the chat UI.\n *\n * The defaults are a classic day theme (pale green outgoing bubbles over the green swirl\n * wallpaper) and a \"Dark Blue\" night theme (a purple-to-blue outgoing gradient fixed to the\n * screen). Consumers can override any subset through the `theme` /\n * `darkTheme` props on `Chat`; overrides are deep-merged over these defaults, and explicit\n * per-component style props still win over the theme. Components read the resolved theme via\n * the `useTheme` hook.\n */\n\nexport interface ChatThemeColors {\n /** Accent used for the send button, record button and active states. */\n accent: string\n /** Chat background, shown when the wallpaper is off (`theme.wallpaper.isEnabled`). */\n background: string\n /** Incoming (left) bubble background. */\n incomingBubble: string\n /**\n * Outgoing (right) bubble background. With `bubble.outgoingGradient` set, the gradient is\n * drawn instead and this is only the base color media controls are tinted with.\n */\n outgoingBubble: string\n /** Incoming message text. */\n incomingText: string\n /** Outgoing message text. */\n outgoingText: string\n /** Time/meta text inside incoming bubbles. */\n incomingMeta: string\n /** Time/meta text inside outgoing bubbles. */\n outgoingMeta: string\n /** Sender name color when `nameColors` is empty. */\n senderName: string\n /** Delivery tick color before the message is read. */\n ticksSent: string\n /** Delivery tick color once the message is read. */\n ticksRead: string\n /** Hairlines and dividers. */\n separator: string\n /** The floating composer pill (at 85%). */\n inputBackground: string\n /** The band behind the composer pill; transparent so the wallpaper shows through. */\n inputBarBackground: string\n /** Composer text color. */\n inputText: string\n /** Composer placeholder color. */\n placeholder: string\n /** Date and service pill background (stands in for a wallpaper-shaded pill). */\n dayPillBackground: string\n /** Date and service pill text. */\n dayPillText: string\n /** Surface color for floating elements (menus, sheets). */\n surface: string\n /** Neutral tint for secondary surfaces (location card, media card). */\n reactionBackground: string\n /** Active tint kept for custom reaction displays. */\n reactionActiveBackground: string\n /** Translucent overlay drawn on top of outgoing bubbles (location and media cards). */\n outgoingOverlay: string\n /** Errors: the failed-message badge, the recording trash can, destructive actions. */\n error: string\n /** Stroke around the composer pill and the glass buttons. */\n inputFieldBorder: string\n\n /** Links in incoming messages. */\n incomingLink: string\n /** Links in outgoing messages. */\n outgoingLink: string\n /** The 1px drop under incoming bubbles; transparent to turn it off. */\n incomingBubbleShadow: string\n /** The 1px drop under outgoing bubbles; transparent to turn it off. */\n outgoingBubbleShadow: string\n /** Incoming bubble tint while selected or flashed after a quote jump. */\n incomingBubbleSelected: string\n /** Outgoing bubble tint while selected or flashed after a quote jump. */\n outgoingBubbleSelected: string\n /** The band across a highlighted row. */\n selectionBackground: string\n /** Time pill over photos. */\n mediaTimeBackground: string\n /** Time and ticks on that pill. */\n mediaTimeText: string\n /** Reply quote line in incoming bubbles when `nameColors` is empty. */\n incomingReplyLine: string\n /** Reply quote name in incoming bubbles when `nameColors` is empty. */\n incomingReplyName: string\n /** Reply quote line in outgoing bubbles. */\n outgoingReplyLine: string\n /** Reply quote name in outgoing bubbles. */\n outgoingReplyName: string\n /** Reaction pill accent in incoming bubbles: solid when chosen, 15.6% when not. */\n incomingReaction: string\n /** Reaction count on an unchosen pill in incoming bubbles. */\n incomingReactionText: string\n /** Reaction count on a chosen pill in incoming bubbles. */\n incomingReactionTextChosen: string\n /** Reaction pill accent in outgoing bubbles. */\n outgoingReaction: string\n /** Reaction count on an unchosen pill in outgoing bubbles. */\n outgoingReactionText: string\n /** Reaction count on a chosen pill in outgoing bubbles. */\n outgoingReactionTextChosen: string\n /** Unplayed voice bars and audio track in incoming bubbles. */\n incomingVoiceTrack: string\n /** Played bars and the play button in incoming bubbles. */\n incomingVoiceFill: string\n /** Unplayed voice bars and audio track in outgoing bubbles. */\n outgoingVoiceTrack: string\n /** Played bars and the play button in outgoing bubbles. */\n outgoingVoiceFill: string\n /** Emoji and attach icons in the composer (`glass_defaultIcon`). */\n composerIcon: string\n /** Composer caret. */\n inputCursor: string\n /** Scroll-to-bottom glass circle. */\n scrollToBottomBackground: string\n /** Scroll-to-bottom chevron. */\n scrollToBottomIcon: string\n /** Unread counter on the scroll-to-bottom button. */\n scrollToBottomBadge: string\n /** Unread counter text. */\n scrollToBottomBadgeText: string\n /** The \"Unread Messages\" bar. */\n unreadSeparatorBackground: string\n /** Its label. */\n unreadSeparatorText: string\n /** Its arrow. */\n unreadSeparatorArrow: string\n /** A selected message's check circle in selection mode (`checkbox`). */\n selectionCheckbox: string\n /** The check mark and the empty circle's ring (`checkboxCheck`). */\n selectionCheckboxCheck: string\n}\n\nexport interface ChatThemeAvatar {\n size: number\n /** Initials avatar colors, picked per user id; the top of the gradient. */\n palette: string[]\n /** Bottom of each initials gradient, matched to `palette` by index; empty draws flat colors. */\n paletteEnd: string[]\n /** Initials text color drawn on a palette background. */\n textColor: string\n}\n\nexport interface ChatThemeRadii {\n bubble: number\n /** The tail-side corners of a bubble facing a grouped neighbour. */\n bubbleGrouped: number\n inputField: number\n sendButton: number\n reaction: number\n dayPill: number\n /** Photo corners inside a bubble. */\n media: number\n /** Photo corners next to other content (a name, a reply, a caption). */\n mediaInner: number\n /** The time pill over a photo. */\n mediaTimePill: number\n /** The reply quote box. */\n replyQuote: number\n}\n\nexport interface ChatThemeHorizontalEdge {\n left: number\n right: number\n}\n\nexport interface ChatThemeSpacing {\n /** Space above the first line of a bubble's text. */\n bubblePaddingV: number\n /** Space below the last line of a bubble's text. */\n bubblePaddingBottom: number\n bubblePaddingH: number\n withinGroup: number\n betweenGroups: number\n /** Horizontal inset applied to the input bar and its accessories (e.g. the reply preview). */\n screenEdge: ChatThemeHorizontalEdge\n /** Gap between the composer pill and the bottom of the chat. */\n inputToolbarPaddingV: number\n}\n\n/** Accepted shape for a `screenEdge` override: a single value for both sides, or either side individually. */\nexport type ChatThemeScreenEdgeOverride = number | Partial<ChatThemeHorizontalEdge>\n\nexport interface ChatThemeTextStyle {\n fontSize: number\n lineHeight?: number\n fontWeight?:\n | 'normal'\n | 'bold'\n | '100'\n | '200'\n | '300'\n | '400'\n | '500'\n | '600'\n | '700'\n | '800'\n | '900'\n}\n\nexport interface ChatThemeTypography {\n message: ChatThemeTextStyle\n time: ChatThemeTextStyle\n senderName: ChatThemeTextStyle\n day: ChatThemeTextStyle\n system: ChatThemeTextStyle\n /** Name in a reply quote. */\n replyName: ChatThemeTextStyle\n /** Text in a reply quote. */\n replyText: ChatThemeTextStyle\n /** Count on a reaction pill. */\n reactionCount: ChatThemeTextStyle\n /** Composer text. */\n composer: ChatThemeTextStyle\n}\n\nexport interface ChatThemeComposer {\n /** Resting height of the composer field (single line). */\n minHeight: number\n /** Max height before the field scrolls internally instead of growing. */\n maxHeight: number\n /** Horizontal padding inside the field pill. */\n fieldPaddingH: number\n /** Size of the inset icons (emoji, attachment, camera). */\n insetIconSize: number\n}\n\nexport interface ChatThemeVoice {\n /**\n * Full slide-to-cancel distance (px), capped at 35% of the window width.\n * Reaching it cancels the take mid-drag; releasing past 55% of\n * it cancels too.\n */\n cancelThreshold: number\n /** Vertical slide distance (px) to lock hands-free recording. */\n lockThreshold: number\n}\n\nexport interface ChatThemeBubble {\n /** Draw a curled tail on the last bubble of each run. */\n hasTail: boolean\n /** Put the time on the last line of text when it fits; `false` gives it a row. */\n isTimeInline: boolean\n /**\n * Gradient stops for outgoing bubbles, top to bottom, or `null` for the solid\n * `colors.outgoingBubble`.\n */\n outgoingGradient: string[] | null\n /**\n * `'screen'`: one gradient spans the message list and each bubble shows its slice, so a\n * bubble changes color as it scrolls. `'bubble'`: every bubble carries the whole\n * gradient, which costs nothing while scrolling.\n */\n outgoingGradientMode: 'screen' | 'bubble'\n /**\n * Text column inset: a bubble's text is at most `min(width, height) - maxWidthInset` wide\n * (80 by default), and narrower by the avatar column when avatars show.\n */\n maxWidthInset: number\n /**\n * Big emoji: a message of at most this many emoji (and nothing else) drops its\n * bubble and draws them large. `0` turns it off.\n */\n bigEmojiMaxCount: number\n /** Font size of big emoji by count: index 0 for one emoji, the last entry for that many or more. */\n bigEmojiSizes: number[]\n}\n\nexport interface ChatThemeWallpaper {\n /** Draw the wallpaper; off, the chat shows `colors.background`. */\n isEnabled: boolean\n /** Three or four colors for the swirl gradient. */\n colors: string[]\n /** Shift the gradient one step per outgoing message (500ms, bezier(0.33, 0, 0, 1)). */\n isAnimated: boolean\n /** An image tiled over the gradient, e.g. a doodle pattern; none is bundled. */\n pattern?: ImageSourcePropType | null\n /** Pattern opacity (0.34 day, 0.38 night). */\n patternOpacity: number\n /** Pattern tint; defaults to black over a light wallpaper and white over a dark one. */\n patternColor?: string\n}\n\nexport interface ChatThemeEmojiKeyboard {\n /** Panel background. */\n background: string\n /** Tab icons. */\n icon: string\n /** The selected tab's icon. */\n iconSelected: string\n /** The round-rect behind the selected tab (the tab icon color at 18%). */\n tabIndicator: string\n /** Section headers (\"Smileys & People\"). */\n sectionTitle: string\n /** The search pill. */\n searchBackground: string\n /** Search icon and hint. */\n searchIcon: string\n /** Text typed into search. */\n searchText: string\n /** The backspace key. */\n backspace: string\n /** The hairline above the tab strip. */\n shadowLine: string\n /** The skin-tone popup (`dialogBackground`). */\n popupBackground: string\n /** The press highlight in the popup and on cells. */\n selector: string\n /** Panel height before any system keyboard has been seen (200). */\n defaultHeight: number\n /** Target width of a grid cell; the column count is `max(1, width / cellSize)` (45). */\n cellSize: number\n /** Emoji glyph size in a cell. */\n emojiSize: number\n}\n\nexport interface ChatThemeContextMenu {\n /** Menu and reactions bar fill (`actionBarDefaultSubmenuBackground`). */\n background: string\n /** Item text (`actionBarDefaultSubmenuItem`). */\n text: string\n /** Item icons (`actionBarDefaultSubmenuItemIcon`). */\n icon: string\n /** The 8dp gap between item groups (`actionBarDefaultSubmenuSeparator`). */\n separator: string\n /** Pressed item (`dialogButtonSelector`). */\n pressed: string\n /** A `destructive` item (`text_RedRegular`). */\n destructive: string\n /** The dim over the chat while the menu is open (black at 0.2). */\n scrim: string\n /** The circle behind a reaction you already chose. */\n reactionSelected: string\n}\n\n/** `ChatList`: the list of chats. */\nexport interface ChatThemeChatList {\n background: string\n headerBackground: string\n /** Header title and icons. */\n headerText: string\n /** Chat names. */\n name: string\n /** The last message's text. */\n message: string\n /** \"You:\" / \"Anna:\" before a group's last message. */\n senderPrefix: string\n /** \"Photo\", \"Voice message\"... when the last message has no text. */\n attachment: string\n /** \"typing…\". */\n typing: string\n /** \"Draft:\". */\n draft: string\n /** The last message's time. */\n date: string\n /** Sent / read checks on your last message. */\n check: string\n /** Unread counter. */\n badge: string\n /** Unread counter of a muted chat. */\n badgeMuted: string\n badgeText: string\n muteIcon: string\n /** The pin and the reorder handle. */\n pinIcon: string\n verified: string\n /** The online dot on an avatar. */\n online: string\n divider: string\n /** A pressed row. */\n pressed: string\n /** A selected row. */\n selectedRow: string\n /** The selection check on an avatar. */\n checkbox: string\n /** Behind a row swiped to archive, and the circle that grows past the threshold. */\n swipeArchive: string\n swipeUnarchive: string\n /** The \"Archived Chats\" folder avatar. */\n archiveAvatar: string\n /** The new-chat button. */\n fab: string\n fabIcon: string\n /** The loading placeholder: its bars (and their opacity), and the band sweeping over them. */\n shimmer: string\n shimmerOpacity: number\n shimmerHighlight: string\n}\n\nexport interface ChatThemeAttachments {\n /** Sheet background (`dialogBackground`). */\n background: string\n /** The dim behind the sheet (black at 51/255). */\n dim: string\n /** Titles and the caption text (`dialogTextBlack`). */\n text: string\n /** Secondary text: file sizes, hints, the caption placeholder. */\n secondaryText: string\n /** The drag handle. */\n handle: string\n /** The floating tab pill (`windowBackgroundWhite` at 0.85). */\n tabBackground: string\n /** Unselected tab icon and label (`glass_tabUnselected`). */\n tabText: string\n /** Selected tab icon, and its capsule at 9% (`glass_tabSelected`). */\n tabSelected: string\n /** Selected tab label. */\n tabSelectedText: string\n /** Selection disc. */\n checkbox: string\n /** Number / check on the disc. */\n checkboxCheck: string\n /** Empty photo cell. */\n cellBackground: string\n /** Send button (`dialogFloatingButton`). */\n sendButton: string\n /** Send button icon. */\n sendButtonIcon: string\n}\n\nexport interface ChatTheme {\n colors: ChatThemeColors\n radii: ChatThemeRadii\n spacing: ChatThemeSpacing\n typography: ChatThemeTypography\n avatar: ChatThemeAvatar\n sendButton: { size: number }\n composer: ChatThemeComposer\n voice: ChatThemeVoice\n bubble: ChatThemeBubble\n wallpaper: ChatThemeWallpaper\n /** The built-in emoji keyboard. */\n emojiKeyboard: ChatThemeEmojiKeyboard\n /** The long-press menu and reactions bar. */\n contextMenu: ChatThemeContextMenu\n /** The built-in attachment menu. */\n attachments: ChatThemeAttachments\n /** The chat list (`ChatList`). */\n chatList: ChatThemeChatList\n /** Sender name colors, picked per user id (`avatar_nameInMessage*`); empty uses `colors.senderName`. */\n nameColors: string[]\n}\n\nexport type PartialChatTheme = {\n colors?: Partial<ChatThemeColors>\n radii?: Partial<ChatThemeRadii>\n spacing?: Partial<Omit<ChatThemeSpacing, 'screenEdge'>> & { screenEdge?: ChatThemeScreenEdgeOverride }\n typography?: Partial<Record<keyof ChatThemeTypography, Partial<ChatThemeTextStyle>>>\n avatar?: Partial<ChatThemeAvatar>\n sendButton?: Partial<{ size: number }>\n composer?: Partial<ChatThemeComposer>\n voice?: Partial<ChatThemeVoice>\n bubble?: Partial<ChatThemeBubble>\n wallpaper?: Partial<ChatThemeWallpaper>\n emojiKeyboard?: Partial<ChatThemeEmojiKeyboard>\n contextMenu?: Partial<ChatThemeContextMenu>\n attachments?: Partial<ChatThemeAttachments>\n chatList?: Partial<ChatThemeChatList>\n nameColors?: string[]\n}\n\n// Avatars: a vertical gradient per color, `abs(id % 7)` -> red, orange, violet, green,\n// cyan, blue, pink.\nconst avatarPaletteDay = ['#FF845E', '#FEBB5B', '#B694F9', '#9AD164', '#5BCBE3', '#5CAFFA', '#FF8AAC']\nconst avatarPaletteEndDay = ['#D45246', '#F68136', '#6C61DF', '#46BA43', '#359AD4', '#408ACF', '#D95574']\n// Dark Blue overrides only red and orange.\nconst avatarPaletteNight = ['#E86C6A', '#F2BC64', '#B694F9', '#9AD164', '#5BCBE3', '#5CAFFA', '#FF8AAC']\nconst avatarPaletteEndNight = ['#E14747', '#E58943', '#6C61DF', '#46BA43', '#359AD4', '#408ACF', '#D95574']\n\nconst sharedRadii: ChatThemeRadii = {\n // 17, and `min(6, bubble)` near a grouped neighbour.\n bubble: 17,\n bubbleGrouped: 6,\n // The composer island.\n inputField: 22,\n sendButton: 18,\n // Reaction pills are full capsules: 26 tall, radius 13.\n reaction: 13,\n // Date / service pill radius.\n dayPill: 11,\n // Photos: `bubbleRadius - 2`, 4 next to other content.\n media: 15,\n mediaInner: 4,\n mediaTimePill: 8,\n replyQuote: 5,\n}\n\nconst sharedComposer: ChatThemeComposer = {\n // One line at rest; the field grows to 6 lines of 21.\n minHeight: 44,\n maxHeight: 149,\n fieldPaddingH: 12,\n insetIconSize: 24,\n}\n\n// The slide-to-cancel distance (140dp, capped at 35% of the width) and the\n// lock distance (57dp).\nconst sharedVoice: ChatThemeVoice = {\n cancelThreshold: 140,\n lockThreshold: 57,\n}\n\nconst sharedSpacing: ChatThemeSpacing = {\n // 5 above the first line, 8.5 below the last, 9 either side.\n bubblePaddingV: 5,\n bubblePaddingBottom: 8.5,\n bubblePaddingH: 9,\n // 2 inside a run, 6 between runs.\n withinGroup: 2,\n betweenGroups: 6,\n // The composer island's 7 side margins and 9 above the bottom inset.\n screenEdge: { left: 7, right: 7 },\n inputToolbarPaddingV: 9,\n}\n\nconst sharedTypography: ChatThemeTypography = {\n // 16 body, line spacing 1.0: Roboto's natural ~19.\n message: { fontSize: 16, lineHeight: 19, fontWeight: '400' },\n time: { fontSize: 12, lineHeight: 14, fontWeight: '400' },\n // `(2 * 16 + 10) / 3` = 14, Roboto Medium - the only emphasis weight.\n senderName: { fontSize: 14, lineHeight: 17, fontWeight: '500' },\n day: { fontSize: 14, lineHeight: 17, fontWeight: '500' },\n system: { fontSize: 14, lineHeight: 17, fontWeight: '500' },\n replyName: { fontSize: 14, lineHeight: 17, fontWeight: '500' },\n replyText: { fontSize: 14, lineHeight: 17, fontWeight: '400' },\n reactionCount: { fontSize: 12, fontWeight: '500' },\n // The input field is 18.\n composer: { fontSize: 18, lineHeight: 21, fontWeight: '400' },\n}\n\nconst sharedBubble: Omit<ChatThemeBubble, 'outgoingGradient'> = {\n hasTail: true,\n isTimeInline: true,\n outgoingGradientMode: 'screen',\n maxWidthInset: 80,\n // Past a screenful a lone-emoji message stops being a\n // sticker-like moment and is just a lot of emoji, so the default stops at 20.\n bigEmojiMaxCount: 20,\n // `.34/.28/.22/.19 × 120dp`: plain emoji use the non-animated sizes, 1-2 emoji at [2],\n // 3 at [3], 4 at [4], 5+ at [5].\n bigEmojiSizes: [40.8, 40.8, 33.6, 26.4, 22.8],\n}\n\n// The emoji panel: 200 before any keyboard was measured, 45 per column, 32 glyphs.\nconst sharedEmojiKeyboardMetrics = { defaultHeight: 200, cellSize: 45, emojiSize: 30 }\n\nexport const defaultLightTheme: ChatTheme = {\n colors: {\n accent: '#229AF0',\n // The fallback when no wallpaper can be drawn.\n background: '#D6E4EF',\n incomingBubble: '#FFFFFF',\n outgoingBubble: '#EFFFDE',\n incomingText: '#000000',\n outgoingText: '#000000',\n incomingMeta: '#A1AAB3',\n outgoingMeta: '#70B15C',\n senderName: '#298ACF',\n ticksSent: '#5DB050',\n ticksRead: '#5DB050',\n separator: 'rgba(0, 0, 0, 0.08)',\n // #FFFFFF at 216/255.\n inputBackground: 'rgba(255, 255, 255, 0.847)',\n inputBarBackground: 'transparent',\n inputText: '#000000',\n placeholder: '#858A84',\n dayPillBackground: 'rgba(0, 0, 0, 0.18)',\n dayPillText: '#FFFFFF',\n surface: '#FFFFFF',\n reactionBackground: 'rgba(0, 0, 0, 0.06)',\n reactionActiveBackground: 'rgba(34, 154, 240, 0.15)',\n outgoingOverlay: 'rgba(110, 185, 105, 0.1)',\n error: '#DB3535',\n inputFieldBorder: '#FFFFFF',\n\n incomingLink: '#2678B6',\n outgoingLink: '#2678B6',\n incomingBubbleShadow: 'rgba(29, 55, 83, 0.16)',\n outgoingBubbleShadow: 'rgba(30, 117, 12, 0.16)',\n incomingBubbleSelected: '#ECF7FD',\n outgoingBubbleSelected: '#D9F7C5',\n selectionBackground: 'rgba(10, 144, 240, 0.157)',\n mediaTimeBackground: 'rgba(0, 0, 0, 0.4)',\n mediaTimeText: '#FFFFFF',\n incomingReplyLine: '#599FD8',\n incomingReplyName: '#298ACF',\n outgoingReplyLine: '#6EB969',\n outgoingReplyName: '#55AB4F',\n incomingReaction: '#229AF0',\n incomingReactionText: '#298ACF',\n incomingReactionTextChosen: '#FFFFFF',\n outgoingReaction: '#78C272',\n outgoingReactionText: '#55AB4F',\n outgoingReactionTextChosen: '#FFFFFF',\n incomingVoiceTrack: '#DEE5EB',\n incomingVoiceFill: '#229AF0',\n outgoingVoiceTrack: '#BBE3AC',\n outgoingVoiceFill: '#78C272',\n composerIcon: 'rgba(27, 34, 39, 0.6)',\n inputCursor: '#54A1DB',\n scrollToBottomBackground: 'rgba(255, 255, 255, 0.847)',\n scrollToBottomIcon: 'rgba(27, 34, 39, 0.6)',\n scrollToBottomBadge: '#229AF0',\n scrollToBottomBadgeText: '#FFFFFF',\n unreadSeparatorBackground: '#FFFFFF',\n unreadSeparatorText: '#5695CC',\n unreadSeparatorArrow: '#A2B5C7',\n selectionCheckbox: '#5EC245',\n selectionCheckboxCheck: '#FFFFFF',\n },\n radii: sharedRadii,\n spacing: sharedSpacing,\n typography: sharedTypography,\n avatar: { size: 42, palette: avatarPaletteDay, paletteEnd: avatarPaletteEndDay, textColor: '#FFFFFF' },\n sendButton: { size: 36 },\n composer: sharedComposer,\n voice: sharedVoice,\n bubble: { ...sharedBubble, outgoingGradient: null },\n wallpaper: {\n isEnabled: true,\n colors: ['#DBDDBB', '#6BA587', '#D5D88D', '#88B884'],\n isAnimated: true,\n pattern: null,\n patternOpacity: 0.34,\n },\n nameColors: ['#CC5049', '#D67722', '#955CDB', '#40A920', '#309EBA', '#368AD1', '#C7508B'],\n emojiKeyboard: {\n ...sharedEmojiKeyboardMetrics,\n background: '#F0F2F5',\n icon: '#9DA4AB',\n iconSelected: '#5E6976',\n tabIndicator: 'rgba(157, 164, 171, 0.18)',\n sectionTitle: '#828B94',\n searchBackground: '#E5E9EE',\n searchIcon: '#94A1AF',\n searchText: '#000000',\n backspace: '#8C9197',\n shadowLine: 'rgba(0, 0, 0, 0.07)',\n popupBackground: '#FFFFFF',\n selector: 'rgba(0, 0, 0, 0.06)',\n },\n contextMenu: {\n background: '#FFFFFF',\n text: '#1A1D21',\n icon: '#1A1D21',\n separator: '#F5F5F5',\n pressed: 'rgba(0, 0, 0, 0.06)',\n destructive: '#CC2929',\n scrim: 'rgba(0, 0, 0, 0.2)',\n reactionSelected: 'rgba(0, 0, 0, 0.06)',\n },\n chatList: {\n background: '#FFFFFF',\n headerBackground: '#FFFFFF',\n headerText: '#1A1D21',\n name: '#1A1D21',\n message: '#8E9091',\n senderPrefix: '#298ACF',\n attachment: '#298ACF',\n typing: '#298ACF',\n draft: '#DD4B39',\n date: '#848688',\n check: '#46AA36',\n badge: '#229AF0',\n badgeMuted: '#BEC3C7',\n badgeText: '#FFFFFF',\n muteIcon: '#BDC1C4',\n pinIcon: '#919294',\n verified: '#33A8E6',\n online: '#4BCB1C',\n divider: '#D9D9D9',\n pressed: 'rgba(0, 0, 0, 0.06)',\n selectedRow: 'rgba(10, 144, 240, 0.08)',\n checkbox: '#5EC245',\n swipeArchive: '#229AF0',\n swipeUnarchive: '#9FAAB3',\n archiveAvatar: '#B8C2CC',\n fab: '#229AF0',\n fabIcon: '#FFFFFF',\n shimmer: '#000000',\n shimmerOpacity: 0.06,\n shimmerHighlight: '#FFFFFF',\n },\n attachments: {\n background: '#FFFFFF',\n dim: 'rgba(0, 0, 0, 0.2)',\n text: '#222222',\n secondaryText: '#8A8A8A',\n handle: 'rgba(0, 0, 0, 0.15)',\n tabBackground: 'rgba(255, 255, 255, 0.85)',\n tabText: '#1A1D21',\n tabSelected: '#1A91E6',\n tabSelectedText: '#0D7FCF',\n checkbox: '#229AF0',\n checkboxCheck: '#FFFFFF',\n cellBackground: 'rgba(0, 0, 0, 0.047)',\n sendButton: '#229AF0',\n sendButtonIcon: '#FFFFFF',\n },\n}\n\nexport const defaultDarkTheme: ChatTheme = {\n colors: {\n accent: '#229AF0',\n background: '#0E141A',\n incomingBubble: '#232E3B',\n // The gradient's bottom stop; the bubble itself draws `bubble.outgoingGradient`.\n outgoingBubble: '#258DE5',\n incomingText: '#FAFAFA',\n outgoingText: '#FFFFFF',\n incomingMeta: 'rgba(128, 145, 160, 0.85)',\n outgoingMeta: '#FFFFFF',\n senderName: '#79C4FC',\n ticksSent: '#FFFFFF',\n ticksRead: '#FFFFFF',\n separator: 'rgba(255, 255, 255, 0.1)',\n inputBackground: 'rgba(33, 45, 59, 0.85)',\n inputBarBackground: 'transparent',\n inputText: '#FFFFFF',\n placeholder: 'rgba(219, 239, 255, 0.431)',\n dayPillBackground: 'rgba(53, 66, 81, 0.51)',\n dayPillText: '#FFFFFF',\n surface: '#212D3B',\n reactionBackground: 'rgba(255, 255, 255, 0.08)',\n reactionActiveBackground: 'rgba(96, 157, 210, 0.22)',\n outgoingOverlay: 'rgba(255, 255, 255, 0.12)',\n error: '#F6574E',\n inputFieldBorder: 'rgba(255, 255, 255, 0.157)',\n\n incomingLink: '#79C4FC',\n outgoingLink: '#FFFFFF',\n incomingBubbleShadow: 'rgba(0, 0, 0, 0.196)',\n outgoingBubbleShadow: 'transparent',\n incomingBubbleSelected: '#314A61',\n // Drawn over the gradient.\n outgoingBubbleSelected: 'rgba(255, 255, 255, 0.078)',\n selectionBackground: 'rgba(95, 157, 227, 0.165)',\n mediaTimeBackground: 'rgba(0, 0, 0, 0.4)',\n mediaTimeText: '#FFFFFF',\n incomingReplyLine: '#79C4FC',\n incomingReplyName: '#79C4FC',\n outgoingReplyLine: '#FFFFFF',\n outgoingReplyName: '#FFFFFF',\n incomingReaction: '#609DD2',\n incomingReactionText: '#FFFFFF',\n incomingReactionTextChosen: '#FFFFFF',\n outgoingReaction: '#FFFFFF',\n outgoingReactionText: '#FFFFFF',\n outgoingReactionTextChosen: '#1D2733',\n incomingVoiceTrack: '#5D6F80',\n incomingVoiceFill: '#64B5EF',\n outgoingVoiceTrack: 'rgba(255, 255, 255, 0.3)',\n outgoingVoiceFill: '#FFFFFF',\n composerIcon: 'rgba(255, 255, 255, 0.627)',\n inputCursor: '#54A1DB',\n scrollToBottomBackground: 'rgba(33, 45, 59, 0.85)',\n scrollToBottomIcon: 'rgba(255, 255, 255, 0.627)',\n scrollToBottomBadge: '#51AAEE',\n scrollToBottomBadgeText: '#FFFFFF',\n unreadSeparatorBackground: '#253442',\n unreadSeparatorText: 'rgba(255, 255, 255, 0.855)',\n unreadSeparatorArrow: '#5A6B7A',\n selectionCheckbox: '#5EC245',\n selectionCheckboxCheck: '#FFFFFF',\n },\n radii: sharedRadii,\n spacing: sharedSpacing,\n typography: sharedTypography,\n avatar: { size: 42, palette: avatarPaletteNight, paletteEnd: avatarPaletteEndNight, textColor: '#FFFFFF' },\n sendButton: { size: 36 },\n composer: sharedComposer,\n voice: sharedVoice,\n bubble: {\n ...sharedBubble,\n // Purple at the top of the list, blue at the bottom.\n outgoingGradient: ['#9F3EAA', '#8146D7', '#4272DF', '#258DE5'],\n },\n wallpaper: {\n isEnabled: true,\n colors: ['#0E141A', '#172431', '#0F171E', '#141C2B'],\n isAnimated: true,\n pattern: null,\n patternOpacity: 0.38,\n },\n nameColors: ['#E88878', '#E8AB5A', '#8C8DEA', '#7DD071', '#53CCC6', '#5CADEA', '#E8749A'],\n emojiKeyboard: {\n ...sharedEmojiKeyboardMetrics,\n background: '#1D2733',\n icon: '#677687',\n iconSelected: '#64B5EF',\n tabIndicator: 'rgba(103, 118, 135, 0.18)',\n sectionTitle: '#828B94',\n // Dark Blue leaves the search pill at the day color; in the chat's glass panel it is the\n // icon color at 6%, which is what reads right on the dark sheet.\n searchBackground: 'rgba(255, 255, 255, 0.06)',\n searchIcon: '#94A1AF',\n searchText: '#FFFFFF',\n backspace: '#677687',\n shadowLine: 'rgba(0, 0, 0, 0.196)',\n popupBackground: '#212D3B',\n selector: 'rgba(255, 255, 255, 0.08)',\n },\n contextMenu: {\n background: '#283848',\n text: '#FFFFFF',\n icon: '#FFFFFF',\n separator: '#1F2E3F',\n pressed: '#324156',\n destructive: '#EE686F',\n scrim: 'rgba(0, 0, 0, 0.2)',\n reactionSelected: 'rgba(255, 255, 255, 0.08)',\n },\n chatList: {\n background: '#1D2733',\n headerBackground: '#242D39',\n headerText: '#FFFFFF',\n name: '#E9EEF4',\n message: '#7D8B99',\n senderPrefix: '#E9EEF4',\n attachment: '#7D8E98',\n typing: '#64AFE9',\n draft: 'rgba(252, 71, 74, 0.85)',\n date: '#737F8B',\n check: '#64B5EF',\n badge: '#64B5EF',\n badgeMuted: '#3E5263',\n badgeText: '#FFFFFF',\n muteIcon: '#4E5F6A',\n pinIcon: '#586D80',\n verified: '#64B5EF',\n online: '#64B5EF',\n divider: 'rgba(0, 0, 0, 0.58)',\n pressed: 'rgba(255, 255, 255, 0.05)',\n selectedRow: 'rgba(95, 157, 227, 0.16)',\n checkbox: '#5EC245',\n swipeArchive: '#5796CC',\n swipeUnarchive: '#2E3E4B',\n archiveAvatar: '#384B5A',\n fab: '#229AF0',\n fabIcon: '#FFFFFF',\n shimmer: '#E6F7FF',\n shimmerOpacity: 0.08,\n shimmerHighlight: '#283848',\n },\n attachments: {\n background: '#212D3B',\n dim: 'rgba(0, 0, 0, 0.2)',\n text: '#FFFFFF',\n secondaryText: '#7D8B99',\n handle: 'rgba(255, 255, 255, 0.15)',\n tabBackground: 'rgba(29, 39, 51, 0.85)',\n tabText: '#FFFFFF',\n tabSelected: '#229AF0',\n tabSelectedText: '#229AF0',\n checkbox: '#229AF0',\n checkboxCheck: '#FFFFFF',\n cellBackground: 'rgba(255, 255, 255, 0.05)',\n sendButton: '#229AF0',\n sendButtonIcon: '#FFFFFF',\n },\n}\n\nexport interface ChatThemeOverrides {\n light?: PartialChatTheme\n dark?: PartialChatTheme\n}\n\n/**\n * Resolve the active theme for a color scheme, applying the matching override.\n * Used by `Chat` to compute the theme once per change and share it via context.\n */\nexport function resolveTheme (\n colorScheme: 'light' | 'dark' | null | undefined,\n light?: PartialChatTheme,\n dark?: PartialChatTheme\n): ChatTheme {\n const isDark = colorScheme === 'dark'\n return mergeTheme(isDark ? defaultDarkTheme : defaultLightTheme, isDark ? dark : light)\n}\n\n/** Deep-merge a partial theme over a base theme (two levels deep; arrays are replaced). */\nexport function mergeTheme (base: ChatTheme, override?: PartialChatTheme): ChatTheme {\n if (!override)\n return base\n\n const mergedTypography = { ...base.typography }\n if (override.typography)\n for (const key of Object.keys(override.typography) as Array<keyof ChatThemeTypography>)\n mergedTypography[key] = { ...base.typography[key], ...override.typography[key] }\n\n const overrideScreenEdge = override.spacing?.screenEdge\n const mergedScreenEdge: ChatThemeHorizontalEdge = typeof overrideScreenEdge === 'number'\n ? { left: overrideScreenEdge, right: overrideScreenEdge }\n : { ...base.spacing.screenEdge, ...overrideScreenEdge }\n\n // An app that picks its own outgoing color, sender color or avatar palette keeps seeing it:\n // the gradient, the per-user name colors and the avatar gradients would otherwise paint over\n // the override.\n const bubble = { ...base.bubble, ...override.bubble }\n if (override.colors?.outgoingBubble && override.bubble?.outgoingGradient === undefined)\n bubble.outgoingGradient = null\n\n const avatar = { ...base.avatar, ...override.avatar }\n if (override.avatar?.palette && override.avatar.paletteEnd === undefined)\n avatar.paletteEnd = []\n\n const nameColors = override.nameColors ??\n (override.colors?.senderName ? [] : base.nameColors)\n\n return {\n colors: { ...base.colors, ...override.colors },\n radii: { ...base.radii, ...override.radii },\n spacing: { ...base.spacing, ...override.spacing, screenEdge: mergedScreenEdge },\n typography: mergedTypography,\n avatar,\n sendButton: { ...base.sendButton, ...override.sendButton },\n composer: { ...base.composer, ...override.composer },\n voice: { ...base.voice, ...override.voice },\n bubble,\n wallpaper: { ...base.wallpaper, ...override.wallpaper },\n emojiKeyboard: { ...base.emojiKeyboard, ...override.emojiKeyboard },\n contextMenu: { ...base.contextMenu, ...override.contextMenu },\n attachments: { ...base.attachments, ...override.attachments },\n chatList: { ...base.chatList, ...override.chatList },\n nameColors,\n }\n}\n\n/** The per-user color index: `abs(id % 7)` for numeric ids, a stable hash for strings. */\nexport function getUserColorIndex (id: string | number | undefined, count: number): number {\n if (count <= 0 || id == null)\n return 0\n\n if (typeof id === 'number' && Number.isFinite(id))\n return Math.abs(Math.trunc(id) % count)\n\n const text = String(id)\n let hash = 0\n for (let i = 0; i < text.length; i += 1)\n hash = (hash * 31 + text.charCodeAt(i)) | 0\n\n return Math.abs(hash % count)\n}\n\n/** The sender name color for a user: their slot in `nameColors`, or `colors.senderName`. */\nexport function getNameColor (theme: ChatTheme, id: string | number | undefined): string {\n if (!theme.nameColors.length)\n return theme.colors.senderName\n\n return theme.nameColors[getUserColorIndex(id, theme.nameColors.length)]\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Theme.js","names":["avatarPaletteDay","avatarPaletteEndDay","avatarPaletteNight","avatarPaletteEndNight","sharedRadii","bubble","bubbleGrouped","inputField","sendButton","reaction","dayPill","media","mediaInner","mediaTimePill","replyQuote","sharedComposer","minHeight","maxHeight","fieldPaddingH","insetIconSize","sharedVoice","cancelThreshold","lockThreshold","sharedSpacing","bubblePaddingV","bubblePaddingBottom","bubblePaddingH","withinGroup","betweenGroups","screenEdge","left","right","inputToolbarPaddingV","sharedTypography","message","fontSize","lineHeight","fontWeight","time","senderName","day","system","replyName","replyText","reactionCount","composer","sharedBubble","hasTail","isTimeInline","outgoingGradientMode","maxWidthInset","bigEmojiMaxCount","bigEmojiSizes","sharedEmojiKeyboardMetrics","defaultHeight","cellSize","emojiSize","defaultLightTheme","colors","accent","background","incomingBubble","outgoingBubble","incomingText","outgoingText","incomingMeta","outgoingMeta","ticksSent","ticksRead","separator","inputBackground","inputBarBackground","inputText","placeholder","dayPillBackground","dayPillText","surface","reactionBackground","reactionActiveBackground","outgoingOverlay","error","inputFieldBorder","incomingLink","outgoingLink","incomingBubbleShadow","outgoingBubbleShadow","incomingBubbleSelected","outgoingBubbleSelected","selectionBackground","mediaTimeBackground","mediaTimeText","incomingReplyLine","incomingReplyName","outgoingReplyLine","outgoingReplyName","incomingReaction","incomingReactionText","incomingReactionTextChosen","outgoingReaction","outgoingReactionText","outgoingReactionTextChosen","incomingVoiceTrack","incomingVoiceFill","outgoingVoiceTrack","outgoingVoiceFill","composerIcon","inputCursor","scrollToBottomBackground","scrollToBottomIcon","scrollToBottomBadge","scrollToBottomBadgeText","unreadSeparatorBackground","unreadSeparatorText","unreadSeparatorArrow","selectionCheckbox","selectionCheckboxCheck","radii","spacing","typography","avatar","size","palette","paletteEnd","textColor","voice","outgoingGradient","wallpaper","isEnabled","isAnimated","pattern","patternOpacity","nameColors","emojiKeyboard","icon","iconSelected","tabIndicator","sectionTitle","searchBackground","searchIcon","searchText","backspace","shadowLine","popupBackground","selector","contextMenu","text","pressed","destructive","scrim","reactionSelected","chatList","headerBackground","headerText","headerSubtitle","headerSubtitleActive","name","senderPrefix","attachment","typing","draft","date","check","badge","badgeMuted","badgeText","muteIcon","pinIcon","verified","online","divider","selectedRow","checkbox","swipeArchive","swipeUnarchive","archiveAvatar","fab","fabIcon","shimmer","shimmerOpacity","shimmerHighlight","attachments","dim","secondaryText","handle","tabBackground","tabText","tabSelected","tabSelectedText","checkboxCheck","cellBackground","sendButtonIcon","defaultDarkTheme","resolveTheme","colorScheme","light","dark","isDark","mergeTheme","base","override","mergedTypography","key","Object","keys","textScale","style","undefined","overrideScreenEdge","mergedScreenEdge","getUserColorIndex","id","count","Number","isFinite","Math","abs","trunc","String","hash","i","length","charCodeAt","getNameColor","theme"],"sources":["../src/Theme.ts"],"sourcesContent":["import { ImageSourcePropType } from 'react-native'\n\n/**\n * Centralized design tokens for the chat UI.\n *\n * The defaults are a classic day theme (pale green outgoing bubbles over the green swirl\n * wallpaper) and a \"Dark Blue\" night theme (a purple-to-blue outgoing gradient fixed to the\n * screen). Consumers can override any subset through the `theme` /\n * `darkTheme` props on `Chat`; overrides are deep-merged over these defaults, and explicit\n * per-component style props still win over the theme. Components read the resolved theme via\n * the `useTheme` hook.\n */\n\nexport interface ChatThemeColors {\n /** Accent used for the send button, record button and active states. */\n accent: string\n /** Chat background, shown when the wallpaper is off (`theme.wallpaper.isEnabled`). */\n background: string\n /** Incoming (left) bubble background. */\n incomingBubble: string\n /**\n * Outgoing (right) bubble background. With `bubble.outgoingGradient` set, the gradient is\n * drawn instead and this is only the base color media controls are tinted with.\n */\n outgoingBubble: string\n /** Incoming message text. */\n incomingText: string\n /** Outgoing message text. */\n outgoingText: string\n /** Time/meta text inside incoming bubbles. */\n incomingMeta: string\n /** Time/meta text inside outgoing bubbles. */\n outgoingMeta: string\n /** Sender name color when `nameColors` is empty. */\n senderName: string\n /** Delivery tick color before the message is read. */\n ticksSent: string\n /** Delivery tick color once the message is read. */\n ticksRead: string\n /** Hairlines and dividers. */\n separator: string\n /** The floating composer pill (at 85%). */\n inputBackground: string\n /** The band behind the composer pill; transparent so the wallpaper shows through. */\n inputBarBackground: string\n /** Composer text color. */\n inputText: string\n /** Composer placeholder color. */\n placeholder: string\n /** Date and service pill background (stands in for a wallpaper-shaded pill). */\n dayPillBackground: string\n /** Date and service pill text. */\n dayPillText: string\n /** Surface color for floating elements (menus, sheets). */\n surface: string\n /** Neutral tint for secondary surfaces (location card, media card). */\n reactionBackground: string\n /** Active tint kept for custom reaction displays. */\n reactionActiveBackground: string\n /** Translucent overlay drawn on top of outgoing bubbles (location and media cards). */\n outgoingOverlay: string\n /** Errors: the failed-message badge, the recording trash can, destructive actions. */\n error: string\n /** Stroke around the composer pill and the glass buttons. */\n inputFieldBorder: string\n\n /** Links in incoming messages. */\n incomingLink: string\n /** Links in outgoing messages. */\n outgoingLink: string\n /** The 1px drop under incoming bubbles; transparent to turn it off. */\n incomingBubbleShadow: string\n /** The 1px drop under outgoing bubbles; transparent to turn it off. */\n outgoingBubbleShadow: string\n /** Incoming bubble tint while selected or flashed after a quote jump. */\n incomingBubbleSelected: string\n /** Outgoing bubble tint while selected or flashed after a quote jump. */\n outgoingBubbleSelected: string\n /** The band across a highlighted row. */\n selectionBackground: string\n /** Time pill over photos. */\n mediaTimeBackground: string\n /** Time and ticks on that pill. */\n mediaTimeText: string\n /** Reply quote line in incoming bubbles when `nameColors` is empty. */\n incomingReplyLine: string\n /** Reply quote name in incoming bubbles when `nameColors` is empty. */\n incomingReplyName: string\n /** Reply quote line in outgoing bubbles. */\n outgoingReplyLine: string\n /** Reply quote name in outgoing bubbles. */\n outgoingReplyName: string\n /** Reaction pill accent in incoming bubbles: solid when chosen, 15.6% when not. */\n incomingReaction: string\n /** Reaction count on an unchosen pill in incoming bubbles. */\n incomingReactionText: string\n /** Reaction count on a chosen pill in incoming bubbles. */\n incomingReactionTextChosen: string\n /** Reaction pill accent in outgoing bubbles. */\n outgoingReaction: string\n /** Reaction count on an unchosen pill in outgoing bubbles. */\n outgoingReactionText: string\n /** Reaction count on a chosen pill in outgoing bubbles. */\n outgoingReactionTextChosen: string\n /** Unplayed voice bars and audio track in incoming bubbles. */\n incomingVoiceTrack: string\n /** Played bars and the play button in incoming bubbles. */\n incomingVoiceFill: string\n /** Unplayed voice bars and audio track in outgoing bubbles. */\n outgoingVoiceTrack: string\n /** Played bars and the play button in outgoing bubbles. */\n outgoingVoiceFill: string\n /** Emoji and attach icons in the composer (`glass_defaultIcon`). */\n composerIcon: string\n /** Composer caret. */\n inputCursor: string\n /** Scroll-to-bottom glass circle. */\n scrollToBottomBackground: string\n /** Scroll-to-bottom chevron. */\n scrollToBottomIcon: string\n /** Unread counter on the scroll-to-bottom button. */\n scrollToBottomBadge: string\n /** Unread counter text. */\n scrollToBottomBadgeText: string\n /** The \"Unread Messages\" bar. */\n unreadSeparatorBackground: string\n /** Its label. */\n unreadSeparatorText: string\n /** Its arrow. */\n unreadSeparatorArrow: string\n /** A selected message's check circle in selection mode (`checkbox`). */\n selectionCheckbox: string\n /** The check mark and the empty circle's ring (`checkboxCheck`). */\n selectionCheckboxCheck: string\n}\n\nexport interface ChatThemeAvatar {\n size: number\n /** Initials avatar colors, picked per user id; the top of the gradient. */\n palette: string[]\n /** Bottom of each initials gradient, matched to `palette` by index; empty draws flat colors. */\n paletteEnd: string[]\n /** Initials text color drawn on a palette background. */\n textColor: string\n}\n\nexport interface ChatThemeRadii {\n bubble: number\n /** The tail-side corners of a bubble facing a grouped neighbour. */\n bubbleGrouped: number\n inputField: number\n sendButton: number\n reaction: number\n dayPill: number\n /** Photo corners inside a bubble. */\n media: number\n /** Photo corners next to other content (a name, a reply, a caption). */\n mediaInner: number\n /** The time pill over a photo. */\n mediaTimePill: number\n /** The reply quote box. */\n replyQuote: number\n}\n\nexport interface ChatThemeHorizontalEdge {\n left: number\n right: number\n}\n\nexport interface ChatThemeSpacing {\n /** Space above the first line of a bubble's text. */\n bubblePaddingV: number\n /** Space below the last line of a bubble's text. */\n bubblePaddingBottom: number\n bubblePaddingH: number\n withinGroup: number\n betweenGroups: number\n /** Horizontal inset applied to the input bar and its accessories (e.g. the reply preview). */\n screenEdge: ChatThemeHorizontalEdge\n /** Gap between the composer pill and the bottom of the chat. */\n inputToolbarPaddingV: number\n}\n\n/** Accepted shape for a `screenEdge` override: a single value for both sides, or either side individually. */\nexport type ChatThemeScreenEdgeOverride = number | Partial<ChatThemeHorizontalEdge>\n\nexport interface ChatThemeTextStyle {\n fontSize: number\n lineHeight?: number\n fontWeight?:\n | 'normal'\n | 'bold'\n | '100'\n | '200'\n | '300'\n | '400'\n | '500'\n | '600'\n | '700'\n | '800'\n | '900'\n}\n\nexport interface ChatThemeTypography {\n message: ChatThemeTextStyle\n time: ChatThemeTextStyle\n senderName: ChatThemeTextStyle\n day: ChatThemeTextStyle\n system: ChatThemeTextStyle\n /** Name in a reply quote. */\n replyName: ChatThemeTextStyle\n /** Text in a reply quote. */\n replyText: ChatThemeTextStyle\n /** Count on a reaction pill. */\n reactionCount: ChatThemeTextStyle\n /** Composer text. */\n composer: ChatThemeTextStyle\n}\n\nexport interface ChatThemeComposer {\n /** Resting height of the composer field (single line). */\n minHeight: number\n /** Max height before the field scrolls internally instead of growing. */\n maxHeight: number\n /** Horizontal padding inside the field pill. */\n fieldPaddingH: number\n /** Size of the inset icons (emoji, attachment, camera). */\n insetIconSize: number\n}\n\nexport interface ChatThemeVoice {\n /**\n * Full slide-to-cancel distance (px), capped at 35% of the window width.\n * Reaching it cancels the take mid-drag; releasing past 55% of\n * it cancels too.\n */\n cancelThreshold: number\n /** Vertical slide distance (px) to lock hands-free recording. */\n lockThreshold: number\n}\n\nexport interface ChatThemeBubble {\n /** Draw a curled tail on the last bubble of each run. */\n hasTail: boolean\n /** Put the time on the last line of text when it fits; `false` gives it a row. */\n isTimeInline: boolean\n /**\n * Gradient stops for outgoing bubbles, top to bottom, or `null` for the solid\n * `colors.outgoingBubble`.\n */\n outgoingGradient: string[] | null\n /**\n * `'screen'`: one gradient spans the message list and each bubble shows its slice, so a\n * bubble changes color as it scrolls. `'bubble'`: every bubble carries the whole\n * gradient, which costs nothing while scrolling.\n */\n outgoingGradientMode: 'screen' | 'bubble'\n /**\n * Text column inset: a bubble's text is at most `min(width, height) - maxWidthInset` wide\n * (80 by default), and narrower by the avatar column when avatars show.\n */\n maxWidthInset: number\n /**\n * Big emoji: a message of at most this many emoji (and nothing else) drops its\n * bubble and draws them large. `0` turns it off.\n */\n bigEmojiMaxCount: number\n /** Font size of big emoji by count: index 0 for one emoji, the last entry for that many or more. */\n bigEmojiSizes: number[]\n}\n\nexport interface ChatThemeWallpaper {\n /** Draw the wallpaper; off, the chat shows `colors.background`. */\n isEnabled: boolean\n /** Three or four colors for the swirl gradient. */\n colors: string[]\n /** Shift the gradient one step per outgoing message (500ms, bezier(0.33, 0, 0, 1)). */\n isAnimated: boolean\n /** An image tiled over the gradient, e.g. a doodle pattern; none is bundled. */\n pattern?: ImageSourcePropType | null\n /** Pattern opacity (0.34 day, 0.38 night). */\n patternOpacity: number\n /** Pattern tint; defaults to black over a light wallpaper and white over a dark one. */\n patternColor?: string\n}\n\nexport interface ChatThemeEmojiKeyboard {\n /** Panel background. */\n background: string\n /** Tab icons. */\n icon: string\n /** The selected tab's icon. */\n iconSelected: string\n /** The round-rect behind the selected tab (the tab icon color at 18%). */\n tabIndicator: string\n /** Section headers (\"Smileys & People\"). */\n sectionTitle: string\n /** The search pill. */\n searchBackground: string\n /** Search icon and hint. */\n searchIcon: string\n /** Text typed into search. */\n searchText: string\n /** The backspace key. */\n backspace: string\n /** The hairline above the tab strip. */\n shadowLine: string\n /** The skin-tone popup (`dialogBackground`). */\n popupBackground: string\n /** The press highlight in the popup and on cells. */\n selector: string\n /** Panel height before any system keyboard has been seen (200). */\n defaultHeight: number\n /** Target width of a grid cell; the column count is `max(1, width / cellSize)` (45). */\n cellSize: number\n /** Emoji glyph size in a cell. */\n emojiSize: number\n}\n\nexport interface ChatThemeContextMenu {\n /** Menu and reactions bar fill (`actionBarDefaultSubmenuBackground`). */\n background: string\n /** Item text (`actionBarDefaultSubmenuItem`). */\n text: string\n /** Item icons (`actionBarDefaultSubmenuItemIcon`). */\n icon: string\n /** The 8dp gap between item groups (`actionBarDefaultSubmenuSeparator`). */\n separator: string\n /** Pressed item (`dialogButtonSelector`). */\n pressed: string\n /** A `destructive` item (`text_RedRegular`). */\n destructive: string\n /** The dim over the chat while the menu is open (black at 0.2). */\n scrim: string\n /** The circle behind a reaction you already chose. */\n reactionSelected: string\n}\n\n/** `ChatList`: the list of chats. */\nexport interface ChatThemeChatList {\n background: string\n headerBackground: string\n /** Header title and icons. */\n headerText: string\n /** `ChatHeader`'s status line (\"last seen\", members). */\n headerSubtitle: string\n /** `ChatHeader`'s status line while it reads \"online\" or \"typing\". */\n headerSubtitleActive: string\n /** Chat names. */\n name: string\n /** The last message's text. */\n message: string\n /** \"You:\" / \"Anna:\" before a group's last message. */\n senderPrefix: string\n /** \"Photo\", \"Voice message\"... when the last message has no text. */\n attachment: string\n /** \"typing…\". */\n typing: string\n /** \"Draft:\". */\n draft: string\n /** The last message's time. */\n date: string\n /** Sent / read checks on your last message. */\n check: string\n /** Unread counter. */\n badge: string\n /** Unread counter of a muted chat. */\n badgeMuted: string\n badgeText: string\n muteIcon: string\n /** The pin and the reorder handle. */\n pinIcon: string\n verified: string\n /** The online dot on an avatar. */\n online: string\n divider: string\n /** A pressed row. */\n pressed: string\n /** A selected row. */\n selectedRow: string\n /** The selection check on an avatar. */\n checkbox: string\n /** Behind a row swiped to archive, and the circle that grows past the threshold. */\n swipeArchive: string\n swipeUnarchive: string\n /** The \"Archived Chats\" folder avatar. */\n archiveAvatar: string\n /** The new-chat button. */\n fab: string\n fabIcon: string\n /** The loading placeholder: its bars (and their opacity), and the band sweeping over them. */\n shimmer: string\n shimmerOpacity: number\n shimmerHighlight: string\n}\n\nexport interface ChatThemeAttachments {\n /** Sheet background (`dialogBackground`). */\n background: string\n /** The dim behind the sheet (black at 51/255). */\n dim: string\n /** Titles and the caption text (`dialogTextBlack`). */\n text: string\n /** Secondary text: file sizes, hints, the caption placeholder. */\n secondaryText: string\n /** The drag handle. */\n handle: string\n /** The floating tab pill (`windowBackgroundWhite` at 0.85). */\n tabBackground: string\n /** Unselected tab icon and label (`glass_tabUnselected`). */\n tabText: string\n /** Selected tab icon, and its capsule at 9% (`glass_tabSelected`). */\n tabSelected: string\n /** Selected tab label. */\n tabSelectedText: string\n /** Selection disc. */\n checkbox: string\n /** Number / check on the disc. */\n checkboxCheck: string\n /** Empty photo cell. */\n cellBackground: string\n /** Send button (`dialogFloatingButton`). */\n sendButton: string\n /** Send button icon. */\n sendButtonIcon: string\n}\n\nexport interface ChatTheme {\n colors: ChatThemeColors\n radii: ChatThemeRadii\n spacing: ChatThemeSpacing\n typography: ChatThemeTypography\n avatar: ChatThemeAvatar\n sendButton: { size: number }\n composer: ChatThemeComposer\n voice: ChatThemeVoice\n bubble: ChatThemeBubble\n wallpaper: ChatThemeWallpaper\n /** The built-in emoji keyboard. */\n emojiKeyboard: ChatThemeEmojiKeyboard\n /** The long-press menu and reactions bar. */\n contextMenu: ChatThemeContextMenu\n /** The built-in attachment menu. */\n attachments: ChatThemeAttachments\n /** The chat list (`ChatList`). */\n chatList: ChatThemeChatList\n /** Sender name colors, picked per user id (`avatar_nameInMessage*`); empty uses `colors.senderName`. */\n nameColors: string[]\n /**\n * The text size the user picked, as a multiplier of every size in `typography` (1 by default):\n * messages, times, names, day and service pills, quotes and the composer grow together.\n */\n textScale?: number\n}\n\nexport type PartialChatTheme = {\n colors?: Partial<ChatThemeColors>\n radii?: Partial<ChatThemeRadii>\n spacing?: Partial<Omit<ChatThemeSpacing, 'screenEdge'>> & { screenEdge?: ChatThemeScreenEdgeOverride }\n typography?: Partial<Record<keyof ChatThemeTypography, Partial<ChatThemeTextStyle>>>\n avatar?: Partial<ChatThemeAvatar>\n sendButton?: Partial<{ size: number }>\n composer?: Partial<ChatThemeComposer>\n voice?: Partial<ChatThemeVoice>\n bubble?: Partial<ChatThemeBubble>\n wallpaper?: Partial<ChatThemeWallpaper>\n emojiKeyboard?: Partial<ChatThemeEmojiKeyboard>\n contextMenu?: Partial<ChatThemeContextMenu>\n attachments?: Partial<ChatThemeAttachments>\n chatList?: Partial<ChatThemeChatList>\n nameColors?: string[]\n /** Multiplies every size in `typography`; see `ChatTheme.textScale`. */\n textScale?: number\n}\n\n// Avatars: a vertical gradient per color, `abs(id % 7)` -> red, orange, violet, green,\n// cyan, blue, pink.\nconst avatarPaletteDay = ['#FF845E', '#FEBB5B', '#B694F9', '#9AD164', '#5BCBE3', '#5CAFFA', '#FF8AAC']\nconst avatarPaletteEndDay = ['#D45246', '#F68136', '#6C61DF', '#46BA43', '#359AD4', '#408ACF', '#D95574']\n// Dark Blue overrides only red and orange.\nconst avatarPaletteNight = ['#E86C6A', '#F2BC64', '#B694F9', '#9AD164', '#5BCBE3', '#5CAFFA', '#FF8AAC']\nconst avatarPaletteEndNight = ['#E14747', '#E58943', '#6C61DF', '#46BA43', '#359AD4', '#408ACF', '#D95574']\n\nconst sharedRadii: ChatThemeRadii = {\n // 17, and `min(6, bubble)` near a grouped neighbour.\n bubble: 17,\n bubbleGrouped: 6,\n // The composer island.\n inputField: 22,\n sendButton: 18,\n // Reaction pills are full capsules: 26 tall, radius 13.\n reaction: 13,\n // Date / service pill radius.\n dayPill: 11,\n // Photos: `bubbleRadius - 2`, 4 next to other content.\n media: 15,\n mediaInner: 4,\n mediaTimePill: 8,\n replyQuote: 5,\n}\n\nconst sharedComposer: ChatThemeComposer = {\n // One line at rest; the field grows to 6 lines of 21.\n minHeight: 44,\n maxHeight: 149,\n fieldPaddingH: 12,\n insetIconSize: 24,\n}\n\n// The slide-to-cancel distance (140dp, capped at 35% of the width) and the\n// lock distance (57dp).\nconst sharedVoice: ChatThemeVoice = {\n cancelThreshold: 140,\n lockThreshold: 57,\n}\n\nconst sharedSpacing: ChatThemeSpacing = {\n // 5 above the first line, 8.5 below the last, 9 either side.\n bubblePaddingV: 5,\n bubblePaddingBottom: 8.5,\n bubblePaddingH: 9,\n // 2 inside a run, 6 between runs.\n withinGroup: 2,\n betweenGroups: 6,\n // The composer island's 7 side margins and 9 above the bottom inset.\n screenEdge: { left: 7, right: 7 },\n inputToolbarPaddingV: 9,\n}\n\nconst sharedTypography: ChatThemeTypography = {\n // 16 body, line spacing 1.0: Roboto's natural ~19.\n message: { fontSize: 16, lineHeight: 19, fontWeight: '400' },\n time: { fontSize: 12, lineHeight: 14, fontWeight: '400' },\n // `(2 * 16 + 10) / 3` = 14, Roboto Medium - the only emphasis weight.\n senderName: { fontSize: 14, lineHeight: 17, fontWeight: '500' },\n day: { fontSize: 14, lineHeight: 17, fontWeight: '500' },\n system: { fontSize: 14, lineHeight: 17, fontWeight: '500' },\n replyName: { fontSize: 14, lineHeight: 17, fontWeight: '500' },\n replyText: { fontSize: 14, lineHeight: 17, fontWeight: '400' },\n reactionCount: { fontSize: 12, fontWeight: '500' },\n // The input field is 18.\n composer: { fontSize: 18, lineHeight: 21, fontWeight: '400' },\n}\n\nconst sharedBubble: Omit<ChatThemeBubble, 'outgoingGradient'> = {\n hasTail: true,\n isTimeInline: true,\n outgoingGradientMode: 'screen',\n maxWidthInset: 80,\n // Past a screenful a lone-emoji message stops being a\n // sticker-like moment and is just a lot of emoji, so the default stops at 20.\n bigEmojiMaxCount: 20,\n // `.34/.28/.22/.19 × 120dp`: plain emoji use the non-animated sizes, 1-2 emoji at [2],\n // 3 at [3], 4 at [4], 5+ at [5].\n bigEmojiSizes: [40.8, 40.8, 33.6, 26.4, 22.8],\n}\n\n// The emoji panel: 200 before any keyboard was measured, 45 per column, 32 glyphs.\nconst sharedEmojiKeyboardMetrics = { defaultHeight: 200, cellSize: 45, emojiSize: 30 }\n\nexport const defaultLightTheme: ChatTheme = {\n colors: {\n accent: '#229AF0',\n // The fallback when no wallpaper can be drawn.\n background: '#D6E4EF',\n incomingBubble: '#FFFFFF',\n outgoingBubble: '#EFFFDE',\n incomingText: '#000000',\n outgoingText: '#000000',\n incomingMeta: '#A1AAB3',\n outgoingMeta: '#70B15C',\n senderName: '#298ACF',\n ticksSent: '#5DB050',\n ticksRead: '#5DB050',\n separator: 'rgba(0, 0, 0, 0.08)',\n // #FFFFFF at 216/255.\n inputBackground: 'rgba(255, 255, 255, 0.847)',\n inputBarBackground: 'transparent',\n inputText: '#000000',\n placeholder: '#858A84',\n dayPillBackground: 'rgba(0, 0, 0, 0.18)',\n dayPillText: '#FFFFFF',\n surface: '#FFFFFF',\n reactionBackground: 'rgba(0, 0, 0, 0.06)',\n reactionActiveBackground: 'rgba(34, 154, 240, 0.15)',\n outgoingOverlay: 'rgba(110, 185, 105, 0.1)',\n error: '#DB3535',\n inputFieldBorder: '#FFFFFF',\n\n incomingLink: '#2678B6',\n outgoingLink: '#2678B6',\n incomingBubbleShadow: 'rgba(29, 55, 83, 0.16)',\n outgoingBubbleShadow: 'rgba(30, 117, 12, 0.16)',\n incomingBubbleSelected: '#ECF7FD',\n outgoingBubbleSelected: '#D9F7C5',\n selectionBackground: 'rgba(10, 144, 240, 0.157)',\n mediaTimeBackground: 'rgba(0, 0, 0, 0.4)',\n mediaTimeText: '#FFFFFF',\n incomingReplyLine: '#599FD8',\n incomingReplyName: '#298ACF',\n outgoingReplyLine: '#6EB969',\n outgoingReplyName: '#55AB4F',\n incomingReaction: '#229AF0',\n incomingReactionText: '#298ACF',\n incomingReactionTextChosen: '#FFFFFF',\n outgoingReaction: '#78C272',\n outgoingReactionText: '#55AB4F',\n outgoingReactionTextChosen: '#FFFFFF',\n incomingVoiceTrack: '#DEE5EB',\n incomingVoiceFill: '#229AF0',\n outgoingVoiceTrack: '#BBE3AC',\n outgoingVoiceFill: '#78C272',\n composerIcon: 'rgba(27, 34, 39, 0.6)',\n inputCursor: '#54A1DB',\n scrollToBottomBackground: 'rgba(255, 255, 255, 0.847)',\n scrollToBottomIcon: 'rgba(27, 34, 39, 0.6)',\n scrollToBottomBadge: '#229AF0',\n scrollToBottomBadgeText: '#FFFFFF',\n unreadSeparatorBackground: '#FFFFFF',\n unreadSeparatorText: '#5695CC',\n unreadSeparatorArrow: '#A2B5C7',\n selectionCheckbox: '#5EC245',\n selectionCheckboxCheck: '#FFFFFF',\n },\n radii: sharedRadii,\n spacing: sharedSpacing,\n typography: sharedTypography,\n avatar: { size: 42, palette: avatarPaletteDay, paletteEnd: avatarPaletteEndDay, textColor: '#FFFFFF' },\n sendButton: { size: 36 },\n composer: sharedComposer,\n voice: sharedVoice,\n bubble: { ...sharedBubble, outgoingGradient: null },\n wallpaper: {\n isEnabled: true,\n colors: ['#DBDDBB', '#6BA587', '#D5D88D', '#88B884'],\n isAnimated: true,\n pattern: null,\n patternOpacity: 0.34,\n },\n nameColors: ['#CC5049', '#D67722', '#955CDB', '#40A920', '#309EBA', '#368AD1', '#C7508B'],\n emojiKeyboard: {\n ...sharedEmojiKeyboardMetrics,\n background: '#F0F2F5',\n icon: '#9DA4AB',\n iconSelected: '#5E6976',\n tabIndicator: 'rgba(157, 164, 171, 0.18)',\n sectionTitle: '#828B94',\n searchBackground: '#E5E9EE',\n searchIcon: '#94A1AF',\n searchText: '#000000',\n backspace: '#8C9197',\n shadowLine: 'rgba(0, 0, 0, 0.07)',\n popupBackground: '#FFFFFF',\n selector: 'rgba(0, 0, 0, 0.06)',\n },\n contextMenu: {\n background: '#FFFFFF',\n text: '#1A1D21',\n icon: '#1A1D21',\n separator: '#F5F5F5',\n pressed: 'rgba(0, 0, 0, 0.06)',\n destructive: '#CC2929',\n scrim: 'rgba(0, 0, 0, 0.2)',\n reactionSelected: 'rgba(0, 0, 0, 0.06)',\n },\n chatList: {\n background: '#FFFFFF',\n headerBackground: '#FFFFFF',\n headerText: '#1A1D21',\n headerSubtitle: '#79817E',\n headerSubtitleActive: '#298ACF',\n name: '#1A1D21',\n message: '#8E9091',\n senderPrefix: '#298ACF',\n attachment: '#298ACF',\n typing: '#298ACF',\n draft: '#DD4B39',\n date: '#848688',\n check: '#46AA36',\n badge: '#229AF0',\n badgeMuted: '#BEC3C7',\n badgeText: '#FFFFFF',\n muteIcon: '#BDC1C4',\n pinIcon: '#919294',\n verified: '#33A8E6',\n online: '#4BCB1C',\n divider: '#D9D9D9',\n pressed: 'rgba(0, 0, 0, 0.06)',\n selectedRow: 'rgba(10, 144, 240, 0.08)',\n checkbox: '#5EC245',\n swipeArchive: '#229AF0',\n swipeUnarchive: '#9FAAB3',\n archiveAvatar: '#B8C2CC',\n fab: '#229AF0',\n fabIcon: '#FFFFFF',\n shimmer: '#000000',\n shimmerOpacity: 0.06,\n shimmerHighlight: '#FFFFFF',\n },\n attachments: {\n background: '#FFFFFF',\n dim: 'rgba(0, 0, 0, 0.2)',\n text: '#222222',\n secondaryText: '#8A8A8A',\n handle: 'rgba(0, 0, 0, 0.15)',\n tabBackground: 'rgba(255, 255, 255, 0.85)',\n tabText: '#1A1D21',\n tabSelected: '#1A91E6',\n tabSelectedText: '#0D7FCF',\n checkbox: '#229AF0',\n checkboxCheck: '#FFFFFF',\n cellBackground: 'rgba(0, 0, 0, 0.047)',\n sendButton: '#229AF0',\n sendButtonIcon: '#FFFFFF',\n },\n}\n\nexport const defaultDarkTheme: ChatTheme = {\n colors: {\n accent: '#229AF0',\n background: '#0E141A',\n incomingBubble: '#232E3B',\n // The gradient's bottom stop; the bubble itself draws `bubble.outgoingGradient`.\n outgoingBubble: '#258DE5',\n incomingText: '#FAFAFA',\n outgoingText: '#FFFFFF',\n incomingMeta: 'rgba(128, 145, 160, 0.85)',\n outgoingMeta: '#FFFFFF',\n senderName: '#79C4FC',\n ticksSent: '#FFFFFF',\n ticksRead: '#FFFFFF',\n separator: 'rgba(255, 255, 255, 0.1)',\n inputBackground: 'rgba(33, 45, 59, 0.85)',\n inputBarBackground: 'transparent',\n inputText: '#FFFFFF',\n placeholder: 'rgba(219, 239, 255, 0.431)',\n dayPillBackground: 'rgba(53, 66, 81, 0.51)',\n dayPillText: '#FFFFFF',\n surface: '#212D3B',\n reactionBackground: 'rgba(255, 255, 255, 0.08)',\n reactionActiveBackground: 'rgba(96, 157, 210, 0.22)',\n outgoingOverlay: 'rgba(255, 255, 255, 0.12)',\n error: '#F6574E',\n inputFieldBorder: 'rgba(255, 255, 255, 0.157)',\n\n incomingLink: '#79C4FC',\n outgoingLink: '#FFFFFF',\n incomingBubbleShadow: 'rgba(0, 0, 0, 0.196)',\n outgoingBubbleShadow: 'transparent',\n incomingBubbleSelected: '#314A61',\n // Drawn over the gradient.\n outgoingBubbleSelected: 'rgba(255, 255, 255, 0.078)',\n selectionBackground: 'rgba(95, 157, 227, 0.165)',\n mediaTimeBackground: 'rgba(0, 0, 0, 0.4)',\n mediaTimeText: '#FFFFFF',\n incomingReplyLine: '#79C4FC',\n incomingReplyName: '#79C4FC',\n outgoingReplyLine: '#FFFFFF',\n outgoingReplyName: '#FFFFFF',\n incomingReaction: '#609DD2',\n incomingReactionText: '#FFFFFF',\n incomingReactionTextChosen: '#FFFFFF',\n outgoingReaction: '#FFFFFF',\n outgoingReactionText: '#FFFFFF',\n outgoingReactionTextChosen: '#1D2733',\n incomingVoiceTrack: '#5D6F80',\n incomingVoiceFill: '#64B5EF',\n outgoingVoiceTrack: 'rgba(255, 255, 255, 0.3)',\n outgoingVoiceFill: '#FFFFFF',\n composerIcon: 'rgba(255, 255, 255, 0.627)',\n inputCursor: '#54A1DB',\n scrollToBottomBackground: 'rgba(33, 45, 59, 0.85)',\n scrollToBottomIcon: 'rgba(255, 255, 255, 0.627)',\n scrollToBottomBadge: '#51AAEE',\n scrollToBottomBadgeText: '#FFFFFF',\n unreadSeparatorBackground: '#253442',\n unreadSeparatorText: 'rgba(255, 255, 255, 0.855)',\n unreadSeparatorArrow: '#5A6B7A',\n selectionCheckbox: '#5EC245',\n selectionCheckboxCheck: '#FFFFFF',\n },\n radii: sharedRadii,\n spacing: sharedSpacing,\n typography: sharedTypography,\n avatar: { size: 42, palette: avatarPaletteNight, paletteEnd: avatarPaletteEndNight, textColor: '#FFFFFF' },\n sendButton: { size: 36 },\n composer: sharedComposer,\n voice: sharedVoice,\n bubble: {\n ...sharedBubble,\n // Purple at the top of the list, blue at the bottom.\n outgoingGradient: ['#9F3EAA', '#8146D7', '#4272DF', '#258DE5'],\n },\n wallpaper: {\n isEnabled: true,\n colors: ['#0E141A', '#172431', '#0F171E', '#141C2B'],\n isAnimated: true,\n pattern: null,\n patternOpacity: 0.38,\n },\n nameColors: ['#E88878', '#E8AB5A', '#8C8DEA', '#7DD071', '#53CCC6', '#5CADEA', '#E8749A'],\n emojiKeyboard: {\n ...sharedEmojiKeyboardMetrics,\n background: '#1D2733',\n icon: '#677687',\n iconSelected: '#64B5EF',\n tabIndicator: 'rgba(103, 118, 135, 0.18)',\n sectionTitle: '#828B94',\n // Dark Blue leaves the search pill at the day color; in the chat's glass panel it is the\n // icon color at 6%, which is what reads right on the dark sheet.\n searchBackground: 'rgba(255, 255, 255, 0.06)',\n searchIcon: '#94A1AF',\n searchText: '#FFFFFF',\n backspace: '#677687',\n shadowLine: 'rgba(0, 0, 0, 0.196)',\n popupBackground: '#212D3B',\n selector: 'rgba(255, 255, 255, 0.08)',\n },\n contextMenu: {\n background: '#283848',\n text: '#FFFFFF',\n icon: '#FFFFFF',\n separator: '#1F2E3F',\n pressed: '#324156',\n destructive: '#EE686F',\n scrim: 'rgba(0, 0, 0, 0.2)',\n reactionSelected: 'rgba(255, 255, 255, 0.08)',\n },\n chatList: {\n background: '#1D2733',\n headerBackground: '#242D39',\n headerText: '#FFFFFF',\n headerSubtitle: 'rgba(219, 242, 255, 0.49)',\n headerSubtitleActive: '#73BBF7',\n name: '#E9EEF4',\n message: '#7D8B99',\n senderPrefix: '#E9EEF4',\n attachment: '#7D8E98',\n typing: '#64AFE9',\n draft: 'rgba(252, 71, 74, 0.85)',\n date: '#737F8B',\n check: '#64B5EF',\n badge: '#64B5EF',\n badgeMuted: '#3E5263',\n badgeText: '#FFFFFF',\n muteIcon: '#4E5F6A',\n pinIcon: '#586D80',\n verified: '#64B5EF',\n online: '#64B5EF',\n divider: 'rgba(0, 0, 0, 0.58)',\n pressed: 'rgba(255, 255, 255, 0.05)',\n selectedRow: 'rgba(95, 157, 227, 0.16)',\n checkbox: '#5EC245',\n swipeArchive: '#5796CC',\n swipeUnarchive: '#2E3E4B',\n archiveAvatar: '#384B5A',\n fab: '#229AF0',\n fabIcon: '#FFFFFF',\n shimmer: '#E6F7FF',\n shimmerOpacity: 0.08,\n shimmerHighlight: '#283848',\n },\n attachments: {\n background: '#212D3B',\n dim: 'rgba(0, 0, 0, 0.2)',\n text: '#FFFFFF',\n secondaryText: '#7D8B99',\n handle: 'rgba(255, 255, 255, 0.15)',\n tabBackground: 'rgba(29, 39, 51, 0.85)',\n tabText: '#FFFFFF',\n tabSelected: '#229AF0',\n tabSelectedText: '#229AF0',\n checkbox: '#229AF0',\n checkboxCheck: '#FFFFFF',\n cellBackground: 'rgba(255, 255, 255, 0.05)',\n sendButton: '#229AF0',\n sendButtonIcon: '#FFFFFF',\n },\n}\n\nexport interface ChatThemeOverrides {\n light?: PartialChatTheme\n dark?: PartialChatTheme\n}\n\n/**\n * Resolve the active theme for a color scheme, applying the matching override.\n * Used by `Chat` to compute the theme once per change and share it via context.\n */\nexport function resolveTheme (\n colorScheme: 'light' | 'dark' | null | undefined,\n light?: PartialChatTheme,\n dark?: PartialChatTheme\n): ChatTheme {\n const isDark = colorScheme === 'dark'\n return mergeTheme(isDark ? defaultDarkTheme : defaultLightTheme, isDark ? dark : light)\n}\n\n/** Deep-merge a partial theme over a base theme (two levels deep; arrays are replaced). */\nexport function mergeTheme (base: ChatTheme, override?: PartialChatTheme): ChatTheme {\n if (!override)\n return base\n\n const mergedTypography = { ...base.typography }\n if (override.typography)\n for (const key of Object.keys(override.typography) as Array<keyof ChatThemeTypography>)\n mergedTypography[key] = { ...base.typography[key], ...override.typography[key] }\n\n // The text size multiplies whatever sizes the merge ends with, the app's own included.\n const textScale = override.textScale ?? base.textScale ?? 1\n if (textScale !== (base.textScale ?? 1))\n for (const key of Object.keys(mergedTypography) as Array<keyof ChatThemeTypography>) {\n const style = mergedTypography[key]\n mergedTypography[key] = {\n ...style,\n fontSize: style.fontSize * textScale,\n lineHeight: style.lineHeight != null ? style.lineHeight * textScale : undefined,\n }\n }\n\n const overrideScreenEdge = override.spacing?.screenEdge\n const mergedScreenEdge: ChatThemeHorizontalEdge = typeof overrideScreenEdge === 'number'\n ? { left: overrideScreenEdge, right: overrideScreenEdge }\n : { ...base.spacing.screenEdge, ...overrideScreenEdge }\n\n // An app that picks its own outgoing color, sender color or avatar palette keeps seeing it:\n // the gradient, the per-user name colors and the avatar gradients would otherwise paint over\n // the override.\n const bubble = { ...base.bubble, ...override.bubble }\n if (override.colors?.outgoingBubble && override.bubble?.outgoingGradient === undefined)\n bubble.outgoingGradient = null\n\n const avatar = { ...base.avatar, ...override.avatar }\n if (override.avatar?.palette && override.avatar.paletteEnd === undefined)\n avatar.paletteEnd = []\n\n const nameColors = override.nameColors ??\n (override.colors?.senderName ? [] : base.nameColors)\n\n return {\n colors: { ...base.colors, ...override.colors },\n radii: { ...base.radii, ...override.radii },\n spacing: { ...base.spacing, ...override.spacing, screenEdge: mergedScreenEdge },\n typography: mergedTypography,\n avatar,\n sendButton: { ...base.sendButton, ...override.sendButton },\n composer: { ...base.composer, ...override.composer },\n voice: { ...base.voice, ...override.voice },\n bubble,\n wallpaper: { ...base.wallpaper, ...override.wallpaper },\n emojiKeyboard: { ...base.emojiKeyboard, ...override.emojiKeyboard },\n contextMenu: { ...base.contextMenu, ...override.contextMenu },\n attachments: { ...base.attachments, ...override.attachments },\n chatList: { ...base.chatList, ...override.chatList },\n nameColors,\n textScale,\n }\n}\n\n/** The per-user color index: `abs(id % 7)` for numeric ids, a stable hash for strings. */\nexport function getUserColorIndex (id: string | number | undefined, count: number): number {\n if (count <= 0 || id == null)\n return 0\n\n if (typeof id === 'number' && Number.isFinite(id))\n return Math.abs(Math.trunc(id) % count)\n\n const text = String(id)\n let hash = 0\n for (let i = 0; i < text.length; i += 1)\n hash = (hash * 31 + text.charCodeAt(i)) | 0\n\n return Math.abs(hash % count)\n}\n\n/** The sender name color for a user: their slot in `nameColors`, or `colors.senderName`. */\nexport function getNameColor (theme: ChatTheme, id: string | number | undefined): string {\n if (!theme.nameColors.length)\n return theme.colors.senderName\n\n return theme.nameColors[getUserColorIndex(id, theme.nameColors.length)]\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -12,7 +12,7 @@ export const resolveAttachments = value => {
|
|
|
12
12
|
};
|
|
13
13
|
/** The composer's paperclip with the built-in attachment menu behind it. */
|
|
14
14
|
export function AttachmentButton(t0) {
|
|
15
|
-
const $ = _c(
|
|
15
|
+
const $ = _c(22);
|
|
16
16
|
const {
|
|
17
17
|
tabs,
|
|
18
18
|
config,
|
|
@@ -79,30 +79,32 @@ export function AttachmentButton(t0) {
|
|
|
79
79
|
t4 = $[10];
|
|
80
80
|
}
|
|
81
81
|
let t5;
|
|
82
|
-
if ($[11] !== config.
|
|
82
|
+
if ($[11] !== config.isGalleryGridEnabled || $[12] !== config.pickers || $[13] !== config.renderAttachmentMenu || $[14] !== hasOpened || $[15] !== isVisible || $[16] !== send || $[17] !== tabs) {
|
|
83
83
|
t5 = config.renderAttachmentMenu ? renderComponentOrElement(config.renderAttachmentMenu, {
|
|
84
84
|
visible: isVisible,
|
|
85
85
|
onClose: close,
|
|
86
86
|
tabs,
|
|
87
87
|
onSend: send
|
|
88
|
-
}) : hasOpened && <AttachmentMenu visible={isVisible} tabs={tabs} onClose={close} onSend={send} />;
|
|
89
|
-
$[11] = config.
|
|
90
|
-
$[12] =
|
|
91
|
-
$[13] =
|
|
92
|
-
$[14] =
|
|
93
|
-
$[15] =
|
|
94
|
-
$[16] =
|
|
88
|
+
}) : hasOpened && <AttachmentMenu visible={isVisible} tabs={tabs} pickers={config.pickers} isGalleryGridEnabled={config.isGalleryGridEnabled} onClose={close} onSend={send} />;
|
|
89
|
+
$[11] = config.isGalleryGridEnabled;
|
|
90
|
+
$[12] = config.pickers;
|
|
91
|
+
$[13] = config.renderAttachmentMenu;
|
|
92
|
+
$[14] = hasOpened;
|
|
93
|
+
$[15] = isVisible;
|
|
94
|
+
$[16] = send;
|
|
95
|
+
$[17] = tabs;
|
|
96
|
+
$[18] = t5;
|
|
95
97
|
} else {
|
|
96
|
-
t5 = $[
|
|
98
|
+
t5 = $[18];
|
|
97
99
|
}
|
|
98
100
|
let t6;
|
|
99
|
-
if ($[
|
|
101
|
+
if ($[19] !== t4 || $[20] !== t5) {
|
|
100
102
|
t6 = <>{t4}{t5}</>;
|
|
101
|
-
$[
|
|
102
|
-
$[
|
|
103
|
-
$[
|
|
103
|
+
$[19] = t4;
|
|
104
|
+
$[20] = t5;
|
|
105
|
+
$[21] = t6;
|
|
104
106
|
} else {
|
|
105
|
-
t6 = $[
|
|
107
|
+
t6 = $[21];
|
|
106
108
|
}
|
|
107
109
|
return t6;
|
|
108
110
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AttachmentButton.js","names":["React","useCallback","useState","Keyboard","Actions","renderComponentOrElement","AttachmentMenu","resolveAttachmentMessages","resolveAttachments","value","undefined","isEnabled","AttachmentButton","t0","$","_c","tabs","config","onSend","onOpen","icon","wrapperStyle","isVisible","setIsVisible","hasOpened","setHasOpened","t1","dismiss","requestAnimationFrame","open","t2","Symbol","for","close","onPick","t3","attachments","t4","caption","then","messages","length","catch","_temp","send","t5","renderAttachmentMenu","visible","onClose","t6"],"sources":["../../src/attachments/AttachmentButton.tsx"],"sourcesContent":["import React, { ReactNode, useCallback, useState } from 'react'\nimport { Keyboard, StyleProp, ViewStyle } from 'react-native'\n\nimport { Actions } from '../Actions'\nimport { IMessage } from '../Models'\nimport { renderComponentOrElement } from '../utils'\nimport { AttachmentMenu } from './AttachmentMenu'\nimport { resolveAttachmentMessages } from './buildMessages'\nimport { AttachmentTab, AttachmentsProps, PickedAttachment } from './types'\n\nexport const resolveAttachments = <TMessage extends IMessage>(\n value: boolean | AttachmentsProps<TMessage> | undefined\n): AttachmentsProps<TMessage> | null => {\n if (value === false)\n return null\n if (value === true || value === undefined)\n return {}\n return value.isEnabled === false ? null : value\n}\n\ninterface AttachmentButtonProps<TMessage extends IMessage> {\n tabs: AttachmentTab[]\n config: AttachmentsProps<TMessage>\n onSend?: (messages: Partial<TMessage>[], shouldResetInputToolbar: boolean) => void\n /** Called as the menu opens: the emoji keyboard and the system keyboard make way. */\n onOpen?: () => void\n icon?: () => ReactNode\n wrapperStyle?: StyleProp<ViewStyle>\n}\n\n/** The composer's paperclip with the built-in attachment menu behind it. */\nexport function AttachmentButton<TMessage extends IMessage = IMessage> ({\n tabs,\n config,\n onSend,\n onOpen,\n icon,\n wrapperStyle,\n}: AttachmentButtonProps<TMessage>) {\n const [isVisible, setIsVisible] = useState(false)\n // The built-in menu mounts on the first open and stays: mounting it with every composer cost\n // each chat opening a few milliseconds for a sheet most visits never open.\n const [hasOpened, setHasOpened] = useState(false)\n\n const open = useCallback(() => {\n Keyboard.dismiss()\n onOpen?.()\n if (hasOpened) {\n setIsVisible(true)\n return\n }\n // Mounted already open, the sheet's first close left its picture on screen: it mounts\n // closed and opens on the next frame, the path every later open takes.\n setHasOpened(true)\n requestAnimationFrame(() => setIsVisible(true))\n }, [onOpen, hasOpened])\n const close = useCallback(() => setIsVisible(false), [])\n\n const onPick = config.onPick\n const send = useCallback((attachments: PickedAttachment[], caption = '') => {\n resolveAttachmentMessages<TMessage>(attachments, caption, onPick)\n .then(messages => {\n if (messages.length)\n onSend?.(messages, false)\n })\n .catch(() => {})\n }, [onPick, onSend])\n\n return (\n <>\n <Actions onPressActionButton={open} icon={icon} wrapperStyle={wrapperStyle} />\n {config.renderAttachmentMenu\n ? renderComponentOrElement(config.renderAttachmentMenu, { visible: isVisible, onClose: close, tabs, onSend: send })\n : hasOpened && <AttachmentMenu visible={isVisible} tabs={tabs} onClose={close} onSend={send} />}\n </>\n )\n}\n"],"mappings":";AAAA,OAAOA,KAAK,IAAeC,WAAW,EAAEC,QAAQ,QAAQ,OAAO;AAC/D,SAASC,QAAQ,QAA8B,cAAc;AAE7D,SAASC,OAAO,QAAQ,YAAY;AAEpC,SAASC,wBAAwB,QAAQ,UAAU;AACnD,SAASC,cAAc,QAAQ,kBAAkB;AACjD,SAASC,yBAAyB,QAAQ,iBAAiB;AAG3D,OAAO,MAAMC,kBAAkB,GAC7BC,KAAuD,IACjB;EACtC,IAAIA,KAAK,KAAK,KAAK,EACjB,OAAO,IAAI;EACb,IAAIA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAKC,SAAS,EACvC,OAAO,CAAC,CAAC;EACX,OAAOD,KAAK,CAACE,SAAS,KAAK,KAAK,GAAG,IAAI,GAAGF,KAAK;AACjD,CAAC;AAYD;AACA,OAAO,SAAAG,iBAAAC,EAAA;EAAA,MAAAC,CAAA,GAAAC,EAAA;EAAiE;IAAAC,IAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,MAAA;IAAAC,IAAA;IAAAC;EAAA,IAAAR,EAOtC;EAChC,OAAAS,SAAA,EAAAC,YAAA,IAAkCrB,QAAQ,CAAC,KAAK,CAAC;EAGjD,OAAAsB,SAAA,EAAAC,YAAA,IAAkCvB,QAAQ,CAAC,KAAK,CAAC;EAAA,IAAAwB,EAAA;EAAA,IAAAZ,CAAA,QAAAU,SAAA,IAAAV,CAAA,QAAAK,MAAA;IAExBO,EAAA,GAAAA,CAAA;MACvBvB,QAAQ,CAAAwB,OAAQ,CAAC,CAAC;MAClBR,MAAM,GAAG,CAAC;MACV,IAAIK,SAAS;QACXD,YAAY,CAAC,IAAI,CAAC;QAAA;MAAA;MAKpBE,YAAY,CAAC,IAAI,CAAC;MAClBG,qBAAqB,CAAC,MAAML,YAAY,CAAC,IAAI,CAAC,CAAC;IAAA,CAChD;IAAAT,CAAA,MAAAU,SAAA;IAAAV,CAAA,MAAAK,MAAA;IAAAL,CAAA,MAAAY,EAAA;EAAA;IAAAA,EAAA,GAAAZ,CAAA;EAAA;EAXD,MAAAe,IAAA,GAAaH,EAWU;EAAA,IAAAI,EAAA;EAAA,IAAAhB,CAAA,QAAAiB,MAAA,CAAAC,GAAA;IACGF,EAAA,GAAAA,CAAA,KAAMP,YAAY,CAAC,KAAK,CAAC;IAAAT,CAAA,MAAAgB,EAAA;EAAA;IAAAA,EAAA,GAAAhB,CAAA;EAAA;EAAnD,MAAAmB,KAAA,GAAcH,EAA0C;EAExD,MAAAI,MAAA,GAAejB,MAAM,CAAAiB,MAAO;EAAA,IAAAC,EAAA;EAAA,IAAArB,CAAA,QAAAoB,MAAA,IAAApB,CAAA,QAAAI,MAAA;IACHiB,EAAA,GAAAA,CAAAC,WAAA,EAAAC,EAAA;MAAkC,MAAAC,OAAA,GAAAD,EAAY,KAAZ3B,SAAY,GAAZ,EAAY,GAAZ2B,EAAY;MACrE9B,yBAAyB,CAAW6B,WAAW,EAAEE,OAAO,EAAEJ,MAAM,CAAC,CAAAK,IAC1D,CAACC,QAAA;QACJ,IAAIA,QAAQ,CAAAC,MAAO;UACjBvB,MAAM,GAAGsB,QAAQ,EAAE,KAAK,CAAC;QAAA;MAAA,CAC5B,CAAC,CAAAE,KACI,CAACC,KAAQ,CAAC;IAAA,CACnB;IAAA7B,CAAA,MAAAoB,MAAA;IAAApB,CAAA,MAAAI,MAAA;IAAAJ,CAAA,MAAAqB,EAAA;EAAA;IAAAA,EAAA,GAAArB,CAAA;EAAA;EAPD,MAAA8B,IAAA,GAAaT,EAOO;EAAA,IAAAE,EAAA;EAAA,IAAAvB,CAAA,QAAAM,IAAA,IAAAN,CAAA,QAAAe,IAAA,IAAAf,CAAA,QAAAO,YAAA;IAIhBgB,EAAA,IAAC,OAAO,CAAsBR,mBAAI,CAAJA,KAAG,CAAC,CAAQT,IAAI,CAAJA,KAAG,CAAC,CAAgBC,YAAY,CAAZA,aAAW,CAAC,GAAI;IAAAP,CAAA,MAAAM,IAAA;IAAAN,CAAA,MAAAe,IAAA;IAAAf,CAAA,MAAAO,YAAA;IAAAP,CAAA,OAAAuB,EAAA;EAAA;IAAAA,EAAA,GAAAvB,CAAA;EAAA;EAAA,IAAA+B,EAAA;EAAA,IAAA/B,CAAA,SAAAG,MAAA,CAAA6B,oBAAA,IAAAhC,CAAA,SAAAU,SAAA,IAAAV,CAAA,SAAAQ,SAAA,IAAAR,CAAA,SAAA8B,IAAA,IAAA9B,CAAA,SAAAE,IAAA;IAC7E6B,EAAA,GAAA5B,MAAM,
|
|
1
|
+
{"version":3,"file":"AttachmentButton.js","names":["React","useCallback","useState","Keyboard","Actions","renderComponentOrElement","AttachmentMenu","resolveAttachmentMessages","resolveAttachments","value","undefined","isEnabled","AttachmentButton","t0","$","_c","tabs","config","onSend","onOpen","icon","wrapperStyle","isVisible","setIsVisible","hasOpened","setHasOpened","t1","dismiss","requestAnimationFrame","open","t2","Symbol","for","close","onPick","t3","attachments","t4","caption","then","messages","length","catch","_temp","send","t5","isGalleryGridEnabled","pickers","renderAttachmentMenu","visible","onClose","t6"],"sources":["../../src/attachments/AttachmentButton.tsx"],"sourcesContent":["import React, { ReactNode, useCallback, useState } from 'react'\nimport { Keyboard, StyleProp, ViewStyle } from 'react-native'\n\nimport { Actions } from '../Actions'\nimport { IMessage } from '../Models'\nimport { renderComponentOrElement } from '../utils'\nimport { AttachmentMenu } from './AttachmentMenu'\nimport { resolveAttachmentMessages } from './buildMessages'\nimport { AttachmentTab, AttachmentsProps, PickedAttachment } from './types'\n\nexport const resolveAttachments = <TMessage extends IMessage>(\n value: boolean | AttachmentsProps<TMessage> | undefined\n): AttachmentsProps<TMessage> | null => {\n if (value === false)\n return null\n if (value === true || value === undefined)\n return {}\n return value.isEnabled === false ? null : value\n}\n\ninterface AttachmentButtonProps<TMessage extends IMessage> {\n tabs: AttachmentTab[]\n config: AttachmentsProps<TMessage>\n onSend?: (messages: Partial<TMessage>[], shouldResetInputToolbar: boolean) => void\n /** Called as the menu opens: the emoji keyboard and the system keyboard make way. */\n onOpen?: () => void\n icon?: () => ReactNode\n wrapperStyle?: StyleProp<ViewStyle>\n}\n\n/** The composer's paperclip with the built-in attachment menu behind it. */\nexport function AttachmentButton<TMessage extends IMessage = IMessage> ({\n tabs,\n config,\n onSend,\n onOpen,\n icon,\n wrapperStyle,\n}: AttachmentButtonProps<TMessage>) {\n const [isVisible, setIsVisible] = useState(false)\n // The built-in menu mounts on the first open and stays: mounting it with every composer cost\n // each chat opening a few milliseconds for a sheet most visits never open.\n const [hasOpened, setHasOpened] = useState(false)\n\n const open = useCallback(() => {\n Keyboard.dismiss()\n onOpen?.()\n if (hasOpened) {\n setIsVisible(true)\n return\n }\n // Mounted already open, the sheet's first close left its picture on screen: it mounts\n // closed and opens on the next frame, the path every later open takes.\n setHasOpened(true)\n requestAnimationFrame(() => setIsVisible(true))\n }, [onOpen, hasOpened])\n const close = useCallback(() => setIsVisible(false), [])\n\n const onPick = config.onPick\n const send = useCallback((attachments: PickedAttachment[], caption = '') => {\n resolveAttachmentMessages<TMessage>(attachments, caption, onPick)\n .then(messages => {\n if (messages.length)\n onSend?.(messages, false)\n })\n .catch(() => {})\n }, [onPick, onSend])\n\n return (\n <>\n <Actions onPressActionButton={open} icon={icon} wrapperStyle={wrapperStyle} />\n {config.renderAttachmentMenu\n ? renderComponentOrElement(config.renderAttachmentMenu, { visible: isVisible, onClose: close, tabs, onSend: send })\n : hasOpened && <AttachmentMenu visible={isVisible} tabs={tabs} pickers={config.pickers} isGalleryGridEnabled={config.isGalleryGridEnabled} onClose={close} onSend={send} />}\n </>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,7 +3,7 @@ import { useAnimatedScrollHandler } from 'react-native-reanimated';
|
|
|
3
3
|
import { GalleryAsset } from '../gallery';
|
|
4
4
|
import { PickedAttachment } from '../types';
|
|
5
5
|
/** The photo grid: a camera cell, then the newest photos, under a spacer that lets the sheet rise. */
|
|
6
|
-
export declare function GalleryGrid({ assets, selected, cellSize, spacer, bottomArea, onScroll, onEndReached, onDismiss, onToggle, runPicker, }: {
|
|
6
|
+
export declare function GalleryGrid({ assets, selected, cellSize, spacer, bottomArea, onScroll, onEndReached, onDismiss, onToggle, runPicker, pickCamera, }: {
|
|
7
7
|
assets: GalleryAsset[];
|
|
8
8
|
selected: GalleryAsset[];
|
|
9
9
|
cellSize: number;
|
|
@@ -14,5 +14,7 @@ export declare function GalleryGrid({ assets, selected, cellSize, spacer, bottom
|
|
|
14
14
|
onDismiss: () => void;
|
|
15
15
|
onToggle: (asset: GalleryAsset) => void;
|
|
16
16
|
runPicker: (picker: () => Promise<PickedAttachment[]>) => void;
|
|
17
|
+
/** Takes a photo from the grid's first cell; no camera cell without it. */
|
|
18
|
+
pickCamera?: () => Promise<PickedAttachment[]>;
|
|
17
19
|
}): React.JSX.Element;
|
|
18
20
|
//# sourceMappingURL=GalleryGrid.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GalleryGrid.d.ts","sourceRoot":"","sources":["../../../src/attachments/AttachmentMenu/GalleryGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAA;AAEnD,OAAiB,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;
|
|
1
|
+
{"version":3,"file":"GalleryGrid.d.ts","sourceRoot":"","sources":["../../../src/attachments/AttachmentMenu/GalleryGrid.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+B,MAAM,OAAO,CAAA;AAEnD,OAAiB,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAA;AAO5E,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAO3C,sGAAsG;AACtG,wBAAgB,WAAW,CAAE,EAC3B,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,GACX,EAAE;IACD,MAAM,EAAE,YAAY,EAAE,CAAA;IACtB,QAAQ,EAAE,YAAY,EAAE,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,QAAQ,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAA;IACrD,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,SAAS,EAAE,MAAM,IAAI,CAAA;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAA;IACvC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,OAAO,CAAC,gBAAgB,EAAE,CAAC,KAAK,IAAI,CAAA;IAC9D,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAAA;CAC/C,qBAwEA"}
|