@robono/messaging-react-native 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +65 -0
- package/README.md +160 -8
- package/SBOM.spdx.json +1985 -209
- package/dist/account.d.ts +15 -0
- package/dist/account.js +27 -0
- package/dist/call-message.js +7 -1
- package/dist/calling.js +5 -9
- package/dist/conversation-details.d.ts +24 -0
- package/dist/conversation-details.js +83 -0
- package/dist/emoji-text.d.ts +2 -0
- package/dist/emoji-text.js +8 -0
- package/dist/expo-download.d.ts +3 -0
- package/dist/expo-download.js +43 -0
- package/dist/expo-history.d.ts +3 -0
- package/dist/expo-history.js +59 -0
- package/dist/expo-media.d.ts +1 -0
- package/dist/expo-media.js +69 -43
- package/dist/expo-messenger.d.ts +35 -0
- package/dist/expo-messenger.js +39 -0
- package/dist/expo-notifications.d.ts +31 -0
- package/dist/expo-notifications.js +92 -0
- package/dist/expo-outbox.d.ts +13 -0
- package/dist/expo-outbox.js +82 -0
- package/dist/expo-privacy.d.ts +4 -0
- package/dist/expo-privacy.js +7 -0
- package/dist/expo-saved.d.ts +24 -0
- package/dist/expo-saved.js +76 -0
- package/dist/expo-screen.d.ts +42 -0
- package/dist/expo-screen.js +557 -0
- package/dist/expo-social.d.ts +3 -0
- package/dist/expo-social.js +21 -0
- package/dist/expo-thumbnails.d.ts +9 -0
- package/dist/expo-thumbnails.js +68 -0
- package/dist/expo.d.ts +2 -36
- package/dist/expo.js +2 -429
- package/dist/extras-lifecycle.d.ts +2 -0
- package/dist/extras-lifecycle.js +27 -0
- package/dist/extras.d.ts +49 -0
- package/dist/extras.js +49 -0
- package/dist/forward.d.ts +13 -0
- package/dist/forward.js +62 -0
- package/dist/group-editor.d.ts +18 -0
- package/dist/group-editor.js +98 -0
- package/dist/header-calls.d.ts +18 -0
- package/dist/header-calls.js +45 -0
- package/dist/icons.d.ts +1 -1
- package/dist/inbox-search.d.ts +11 -0
- package/dist/inbox-search.js +42 -0
- package/dist/inbox.d.ts +19 -0
- package/dist/inbox.js +52 -0
- package/dist/index.d.ts +76 -3
- package/dist/index.js +648 -167
- package/dist/media-controller.d.ts +21 -0
- package/dist/media-controller.js +157 -3
- package/dist/media-readiness.d.ts +1 -1
- package/dist/media-ui.d.ts +27 -5
- package/dist/media-ui.js +95 -29
- package/dist/message-links.d.ts +5 -0
- package/dist/message-links.js +30 -0
- package/dist/message-menu.d.ts +28 -0
- package/dist/message-menu.js +24 -0
- package/dist/message-order.d.ts +7 -0
- package/dist/message-order.js +27 -0
- package/dist/messenger-video-view.d.ts +8 -0
- package/dist/messenger-video-view.js +46 -0
- package/dist/native-outbox.d.ts +55 -0
- package/dist/native-outbox.js +53 -0
- package/dist/photo-gesture.d.ts +20 -0
- package/dist/photo-gesture.js +52 -0
- package/dist/pollVoteQueue.d.ts +3 -0
- package/dist/pollVoteQueue.js +29 -0
- package/dist/polls.d.ts +7 -2
- package/dist/polls.js +89 -20
- package/dist/popup.d.ts +51 -0
- package/dist/popup.js +73 -0
- package/dist/quick-send.d.ts +15 -0
- package/dist/quick-send.js +26 -0
- package/dist/recent-media.js +1 -0
- package/dist/safety.d.ts +10 -1
- package/dist/safety.js +29 -8
- package/dist/saved.d.ts +10 -0
- package/dist/saved.js +51 -0
- package/dist/search.d.ts +9 -0
- package/dist/search.js +59 -0
- package/dist/social.d.ts +25 -0
- package/dist/social.js +31 -0
- package/dist/translation-settings.d.ts +12 -0
- package/dist/translation-settings.js +16 -0
- package/dist/use-quote-gesture.d.ts +5 -1
- package/dist/use-quote-gesture.js +35 -17
- package/dist/visual/RobonoIcon.js +2 -1
- package/dist/visual/WeatherArtwork.d.ts +9 -0
- package/dist/visual/WeatherArtwork.js +43 -0
- package/dist/visual/weather-artwork.d.ts +17 -0
- package/dist/visual/weather-artwork.js +86 -0
- package/dist/visual/weather-conditions.d.ts +5 -0
- package/dist/visual/weather-conditions.js +2 -0
- package/dist/voice-composer.js +2 -2
- package/dist/voice-waveform.d.ts +2 -0
- package/dist/voice-waveform.js +21 -0
- package/package.json +41 -5
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
import { type MessagingAccount } from './account.js';
|
|
2
|
+
import { type MessagingCallActions } from './header-calls.js';
|
|
3
|
+
export type { MessagingAccount } from './account.js';
|
|
4
|
+
export type { MessagingCallActions } from './header-calls.js';
|
|
5
|
+
import { type TrackingMapProps, type PrivacyLayerProps } from './extras.js';
|
|
6
|
+
export { MessagingPrivacyLayer } from './extras.js';
|
|
7
|
+
export type { TrackingMapProps, PrivacyLayerProps } from './extras.js';
|
|
8
|
+
import { type SocialPlayerProps } from './social.js';
|
|
9
|
+
export type { SocialPlayerProps } from './social.js';
|
|
10
|
+
export { MessagingSearch } from './search.js';
|
|
1
11
|
export { MessagingSafety } from './safety.js';
|
|
2
12
|
export { PollMessage, PollComposer } from "./polls.js";
|
|
3
13
|
import React, { type ComponentType, type ReactNode } from "react";
|
|
@@ -8,14 +18,25 @@ export type { VoiceComposerProps } from "./voice-composer.js";
|
|
|
8
18
|
import { type VoiceBubbleProps } from "./media-ui.js";
|
|
9
19
|
export { VoicePlayback, MediaViewer, MediaPlaybackControls, ZoomablePhoto } from "./media-ui.js";
|
|
10
20
|
export type { VoiceBubbleProps } from "./media-ui.js";
|
|
11
|
-
import { type MessageKind, type MessageMedia, type MessagingAppearance, type MessagingClient, type MessagingMessage, type MessagingState } from "@robono/messaging";
|
|
21
|
+
import { type MessagingExtrasClient, type MessagingExtrasState, type MessageKind, type MessageMedia, type MessagingAppearance, type MessagingClient, type MessagingMessage, type MessagingState, type MessageTransform, type SavedMessage } from "@robono/messaging";
|
|
12
22
|
export interface VoiceAttachmentProps {
|
|
13
23
|
media: MessageMedia;
|
|
14
24
|
appearance: MessagingAppearance;
|
|
15
25
|
disabled: boolean;
|
|
16
26
|
onRemove: () => void;
|
|
17
27
|
}
|
|
28
|
+
export interface TranslationVoiceProps {
|
|
29
|
+
transform: MessageTransform;
|
|
30
|
+
ink: string;
|
|
31
|
+
accent: string;
|
|
32
|
+
showWaveform?: boolean;
|
|
33
|
+
autoPlay?: boolean;
|
|
34
|
+
}
|
|
18
35
|
export interface MessagingComponents {
|
|
36
|
+
TrackingMap?: ComponentType<TrackingMapProps>;
|
|
37
|
+
PrivacyLayer?: ComponentType<PrivacyLayerProps>;
|
|
38
|
+
SocialPlayer?: ComponentType<SocialPlayerProps>;
|
|
39
|
+
TranslationVoice?: ComponentType<TranslationVoiceProps>;
|
|
19
40
|
VoiceAttachment?: ComponentType<VoiceAttachmentProps>;
|
|
20
41
|
Header?: ComponentType;
|
|
21
42
|
Message?: ComponentType<{
|
|
@@ -36,18 +57,30 @@ export interface AttachmentChoice {
|
|
|
36
57
|
durationMs?: number;
|
|
37
58
|
}
|
|
38
59
|
export interface MessagingScreenProps {
|
|
60
|
+
companyName?: string;
|
|
61
|
+
account?: MessagingAccount;
|
|
62
|
+
callActions?: MessagingCallActions;
|
|
63
|
+
/** Authenticated weather, tracking, privacy and call-history controller. */
|
|
64
|
+
extras?: MessagingExtrasClient;
|
|
65
|
+
onCallHistory?: (kind: "voice" | "video") => void;
|
|
39
66
|
client: MessagingClient;
|
|
67
|
+
/** Browser adapter supplies the hosting origin; native embeds use Robono's domain. */
|
|
68
|
+
socialOrigin?: string;
|
|
69
|
+
/** Optional self-hosted copy of messaging-embed.html, for strict website policies. */
|
|
70
|
+
socialEmbedPageUrl?: string;
|
|
40
71
|
/** Target language for this viewer; defaults to the device locale. */
|
|
41
72
|
language?: string;
|
|
42
73
|
userId: string;
|
|
43
74
|
contact: {
|
|
44
75
|
name: string;
|
|
45
76
|
avatarUrl?: string;
|
|
77
|
+
language?: string;
|
|
46
78
|
};
|
|
47
79
|
/** Resolve group member names through your app's authorized contact directory. */
|
|
48
80
|
participants?: Record<string, {
|
|
49
81
|
name: string;
|
|
50
82
|
avatarUrl?: string;
|
|
83
|
+
language?: string;
|
|
51
84
|
}>;
|
|
52
85
|
appearance?: MessagingAppearance;
|
|
53
86
|
components?: MessagingComponents;
|
|
@@ -58,19 +91,31 @@ export interface MessagingScreenProps {
|
|
|
58
91
|
/** Optional override for the supplied contact safety menu; use your existing safety flow. */
|
|
59
92
|
onContactOptions?: () => void;
|
|
60
93
|
onMessageOptions?: (message: MessagingMessage) => void;
|
|
94
|
+
/** Used by the media preview to open the same message actions. */
|
|
95
|
+
requestedMessageAction?: {
|
|
96
|
+
kind: 'forward' | 'delete';
|
|
97
|
+
messageId: string;
|
|
98
|
+
sequence: number;
|
|
99
|
+
};
|
|
100
|
+
/** Native clipboard adapter. Supplied by ExpoMessagingScreen. Web uses its clipboard. */
|
|
101
|
+
copyText?: (text: string) => Promise<void>;
|
|
61
102
|
/** Optional recent media shown beneath the attachment buttons. */
|
|
62
103
|
attachmentChoices?: AttachmentChoice[];
|
|
63
104
|
/** Pick, capture or record, then upload to your private store. Return an opaque asset reference. */
|
|
64
105
|
pickAttachment?: (kind: Exclude<MessageKind, "text" | "poll">, options: {
|
|
106
|
+
maxCount?: number;
|
|
65
107
|
maxDurationMs?: number;
|
|
66
108
|
maxFileBytes?: number;
|
|
67
109
|
allowedMimeTypes?: string[];
|
|
68
110
|
source?: "camera" | "call-video";
|
|
69
111
|
attachmentId?: string;
|
|
70
112
|
intent?: "send" | "preview" | "attach";
|
|
71
|
-
}) => Promise<MessageMedia | null>;
|
|
113
|
+
}) => Promise<MessageMedia | MessageMedia[] | null>;
|
|
72
114
|
/** Release local draft resources after removal or submission; keep uploaded assets needed by retries. */
|
|
73
115
|
releaseAttachment?: (media: MessageMedia) => void | Promise<void>;
|
|
116
|
+
/** Upload a locally selected attachment after its outgoing bubble is visible. */
|
|
117
|
+
prepareAttachment?: (kind: Exclude<MessageKind, 'text' | 'poll'>, media: MessageMedia) => Promise<MessageMedia>;
|
|
118
|
+
retainDraftAttachments?: boolean;
|
|
74
119
|
/** Resolve an authorized thumbnail and/or normalized waveform. Never put signed URLs in message data. */
|
|
75
120
|
attachmentPreview?: (message: MessagingMessage) => Promise<{
|
|
76
121
|
uri?: string;
|
|
@@ -78,24 +123,52 @@ export interface MessagingScreenProps {
|
|
|
78
123
|
}>;
|
|
79
124
|
/** Authorize the asset and open it using your app's media player/viewer. */
|
|
80
125
|
openAttachment?: (message: MessagingMessage) => Promise<void>;
|
|
126
|
+
openSavedAttachment?: (record: SavedMessage) => Promise<void>;
|
|
81
127
|
}
|
|
82
128
|
interface MessagingContext extends MessagingScreenProps {
|
|
83
129
|
state: MessagingState;
|
|
130
|
+
discussionPreview?: boolean;
|
|
131
|
+
discussionRoot?: string;
|
|
132
|
+
openDiscussion: (threadRoot?: string) => void;
|
|
133
|
+
extrasState: MessagingExtrasState | null;
|
|
84
134
|
design: MessagingAppearance;
|
|
85
135
|
reply: MessagingMessage | null;
|
|
136
|
+
editing: MessagingMessage | null;
|
|
137
|
+
setEditing: (message: MessagingMessage | null) => void;
|
|
138
|
+
setForwarding: (messages: MessagingMessage[]) => void;
|
|
139
|
+
setDeleting: (messages: MessagingMessage[]) => void;
|
|
140
|
+
selection: MessagingMessage[];
|
|
141
|
+
setSelection: (messages: MessagingMessage[]) => void;
|
|
142
|
+
saved: SavedMessage[];
|
|
143
|
+
saving: boolean;
|
|
144
|
+
toggleSaved: (message: MessagingMessage) => Promise<void>;
|
|
145
|
+
setSavedOpen: (open: boolean) => void;
|
|
86
146
|
setReply: (message: MessagingMessage | null) => void;
|
|
87
147
|
}
|
|
88
148
|
export declare function useMessagingUI(): MessagingContext;
|
|
89
149
|
export declare function MessagingProvider({ children, ...props }: MessagingScreenProps & {
|
|
90
150
|
children: ReactNode;
|
|
91
151
|
}): React.JSX.Element;
|
|
152
|
+
export declare function messagingHeaderColors(design: MessagingAppearance, group: boolean): {
|
|
153
|
+
background: string;
|
|
154
|
+
foreground: string;
|
|
155
|
+
};
|
|
92
156
|
export declare function MessagingHeader({ children }?: {
|
|
93
157
|
children?: ReactNode;
|
|
94
158
|
}): React.JSX.Element;
|
|
95
|
-
export declare function MessagingBubble({ message }: {
|
|
159
|
+
export declare function MessagingBubble({ message, pendingStatus, previousMessage, nextMessage }: {
|
|
96
160
|
message: MessagingMessage;
|
|
161
|
+
pendingStatus?: 'sending' | 'failed';
|
|
162
|
+
previousMessage?: MessagingMessage;
|
|
163
|
+
nextMessage?: MessagingMessage;
|
|
97
164
|
}): React.JSX.Element;
|
|
98
165
|
export declare function MessagingList(): React.JSX.Element;
|
|
99
166
|
export declare function MessagingComposer(): React.JSX.Element;
|
|
167
|
+
/** Account navigation. Mount in the inbox/app toolbar, never in a contact menu. */
|
|
168
|
+
export declare function MessagingAccountMenu({ onNewGroup }?: {
|
|
169
|
+
onNewGroup?: () => void;
|
|
170
|
+
}): React.JSX.Element;
|
|
171
|
+
export declare function MessagingConversation(): React.JSX.Element;
|
|
100
172
|
/** Embed inside your app's safe area and navigation. No engine, push or global audio side effects. */
|
|
101
173
|
export declare function MessagingScreen(props: MessagingScreenProps): React.JSX.Element;
|
|
174
|
+
export { MessagingInbox, type MessagingInboxProps } from './inbox.js';
|