@ringg/react-native 0.0.1-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +250 -0
  3. package/app.plugin.js +51 -0
  4. package/lib/module/adapters/index.js +4 -0
  5. package/lib/module/adapters/index.js.map +1 -0
  6. package/lib/module/adapters/livekit-rn-adapter.js +216 -0
  7. package/lib/module/adapters/livekit-rn-adapter.js.map +1 -0
  8. package/lib/module/components/RinggWidget.js +554 -0
  9. package/lib/module/components/RinggWidget.js.map +1 -0
  10. package/lib/module/components/steps/ButtonsStep.js +146 -0
  11. package/lib/module/components/steps/ButtonsStep.js.map +1 -0
  12. package/lib/module/components/steps/CalendarStep.js +190 -0
  13. package/lib/module/components/steps/CalendarStep.js.map +1 -0
  14. package/lib/module/components/steps/ConfirmationStep.js +175 -0
  15. package/lib/module/components/steps/ConfirmationStep.js.map +1 -0
  16. package/lib/module/components/steps/FormStep.js +346 -0
  17. package/lib/module/components/steps/FormStep.js.map +1 -0
  18. package/lib/module/components/steps/InteractiveFlow.js +249 -0
  19. package/lib/module/components/steps/InteractiveFlow.js.map +1 -0
  20. package/lib/module/components/ui/ActionButton.js +92 -0
  21. package/lib/module/components/ui/ActionButton.js.map +1 -0
  22. package/lib/module/components/ui/CallControls.js +168 -0
  23. package/lib/module/components/ui/CallControls.js.map +1 -0
  24. package/lib/module/components/ui/FeedbackScreen.js +180 -0
  25. package/lib/module/components/ui/FeedbackScreen.js.map +1 -0
  26. package/lib/module/components/ui/Icons.js +294 -0
  27. package/lib/module/components/ui/Icons.js.map +1 -0
  28. package/lib/module/components/ui/MessageBubble.js +80 -0
  29. package/lib/module/components/ui/MessageBubble.js.map +1 -0
  30. package/lib/module/components/ui/TabSelector.js +80 -0
  31. package/lib/module/components/ui/TabSelector.js.map +1 -0
  32. package/lib/module/components/ui/WidgetHeader.js +168 -0
  33. package/lib/module/components/ui/WidgetHeader.js.map +1 -0
  34. package/lib/module/context/RinggProvider.js +134 -0
  35. package/lib/module/context/RinggProvider.js.map +1 -0
  36. package/lib/module/context/index.js +4 -0
  37. package/lib/module/context/index.js.map +1 -0
  38. package/lib/module/globals.d.js +2 -0
  39. package/lib/module/globals.d.js.map +1 -0
  40. package/lib/module/hooks/index.js +10 -0
  41. package/lib/module/hooks/index.js.map +1 -0
  42. package/lib/module/hooks/useRinggCall.js +259 -0
  43. package/lib/module/hooks/useRinggCall.js.map +1 -0
  44. package/lib/module/hooks/useRinggChat.js +141 -0
  45. package/lib/module/hooks/useRinggChat.js.map +1 -0
  46. package/lib/module/hooks/useRinggComponents.js +236 -0
  47. package/lib/module/hooks/useRinggComponents.js.map +1 -0
  48. package/lib/module/hooks/useRinggFeedback.js +66 -0
  49. package/lib/module/hooks/useRinggFeedback.js.map +1 -0
  50. package/lib/module/hooks/useRinggTheme.js +39 -0
  51. package/lib/module/hooks/useRinggTheme.js.map +1 -0
  52. package/lib/module/hooks/useRinggTranscripts.js +70 -0
  53. package/lib/module/hooks/useRinggTranscripts.js.map +1 -0
  54. package/lib/module/hooks/useRinggWidgetState.js +51 -0
  55. package/lib/module/hooks/useRinggWidgetState.js.map +1 -0
  56. package/lib/module/index.js +56 -0
  57. package/lib/module/index.js.map +1 -0
  58. package/lib/module/package.json +1 -0
  59. package/lib/typescript/adapters/index.d.ts +2 -0
  60. package/lib/typescript/adapters/index.d.ts.map +1 -0
  61. package/lib/typescript/adapters/livekit-rn-adapter.d.ts +38 -0
  62. package/lib/typescript/adapters/livekit-rn-adapter.d.ts.map +1 -0
  63. package/lib/typescript/components/RinggWidget.d.ts +44 -0
  64. package/lib/typescript/components/RinggWidget.d.ts.map +1 -0
  65. package/lib/typescript/components/steps/ButtonsStep.d.ts +17 -0
  66. package/lib/typescript/components/steps/ButtonsStep.d.ts.map +1 -0
  67. package/lib/typescript/components/steps/CalendarStep.d.ts +16 -0
  68. package/lib/typescript/components/steps/CalendarStep.d.ts.map +1 -0
  69. package/lib/typescript/components/steps/ConfirmationStep.d.ts +16 -0
  70. package/lib/typescript/components/steps/ConfirmationStep.d.ts.map +1 -0
  71. package/lib/typescript/components/steps/FormStep.d.ts +17 -0
  72. package/lib/typescript/components/steps/FormStep.d.ts.map +1 -0
  73. package/lib/typescript/components/steps/InteractiveFlow.d.ts +23 -0
  74. package/lib/typescript/components/steps/InteractiveFlow.d.ts.map +1 -0
  75. package/lib/typescript/components/ui/ActionButton.d.ts +22 -0
  76. package/lib/typescript/components/ui/ActionButton.d.ts.map +1 -0
  77. package/lib/typescript/components/ui/CallControls.d.ts +22 -0
  78. package/lib/typescript/components/ui/CallControls.d.ts.map +1 -0
  79. package/lib/typescript/components/ui/FeedbackScreen.d.ts +24 -0
  80. package/lib/typescript/components/ui/FeedbackScreen.d.ts.map +1 -0
  81. package/lib/typescript/components/ui/Icons.d.ts +28 -0
  82. package/lib/typescript/components/ui/Icons.d.ts.map +1 -0
  83. package/lib/typescript/components/ui/MessageBubble.d.ts +17 -0
  84. package/lib/typescript/components/ui/MessageBubble.d.ts.map +1 -0
  85. package/lib/typescript/components/ui/TabSelector.d.ts +21 -0
  86. package/lib/typescript/components/ui/TabSelector.d.ts.map +1 -0
  87. package/lib/typescript/components/ui/WidgetHeader.d.ts +20 -0
  88. package/lib/typescript/components/ui/WidgetHeader.d.ts.map +1 -0
  89. package/lib/typescript/context/RinggProvider.d.ts +53 -0
  90. package/lib/typescript/context/RinggProvider.d.ts.map +1 -0
  91. package/lib/typescript/context/index.d.ts +3 -0
  92. package/lib/typescript/context/index.d.ts.map +1 -0
  93. package/lib/typescript/hooks/index.d.ts +15 -0
  94. package/lib/typescript/hooks/index.d.ts.map +1 -0
  95. package/lib/typescript/hooks/useRinggCall.d.ts +41 -0
  96. package/lib/typescript/hooks/useRinggCall.d.ts.map +1 -0
  97. package/lib/typescript/hooks/useRinggChat.d.ts +29 -0
  98. package/lib/typescript/hooks/useRinggChat.d.ts.map +1 -0
  99. package/lib/typescript/hooks/useRinggComponents.d.ts +52 -0
  100. package/lib/typescript/hooks/useRinggComponents.d.ts.map +1 -0
  101. package/lib/typescript/hooks/useRinggFeedback.d.ts +23 -0
  102. package/lib/typescript/hooks/useRinggFeedback.d.ts.map +1 -0
  103. package/lib/typescript/hooks/useRinggTheme.d.ts +40 -0
  104. package/lib/typescript/hooks/useRinggTheme.d.ts.map +1 -0
  105. package/lib/typescript/hooks/useRinggTranscripts.d.ts +30 -0
  106. package/lib/typescript/hooks/useRinggTranscripts.d.ts.map +1 -0
  107. package/lib/typescript/hooks/useRinggWidgetState.d.ts +38 -0
  108. package/lib/typescript/hooks/useRinggWidgetState.d.ts.map +1 -0
  109. package/lib/typescript/index.d.ts +44 -0
  110. package/lib/typescript/index.d.ts.map +1 -0
  111. package/lib/typescript/package.json +1 -0
  112. package/package.json +80 -0
@@ -0,0 +1,294 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Icons — using @expo/vector-icons (Feather + MaterialIcons).
5
+ *
6
+ * @expo/vector-icons ships with every Expo project — zero extra install.
7
+ * Falls back to text characters if the icon sets aren't available.
8
+ */
9
+
10
+ import React from "react";
11
+ import { Text } from "react-native";
12
+
13
+ // ─── Types ───────────────────────────────────────────────────────────────────
14
+ import { jsx as _jsx } from "react/jsx-runtime";
15
+ // ─── Lazy-load icon sets ─────────────────────────────────────────────────────
16
+ // Lazy require so the package doesn't hard-crash if @expo/vector-icons
17
+ // is somehow missing (e.g. bare RN without Expo).
18
+
19
+ let Feather = null;
20
+ let MaterialIcons = null;
21
+ let hasIcons = false;
22
+ try {
23
+ Feather = require("@expo/vector-icons/Feather").default;
24
+ MaterialIcons = require("@expo/vector-icons/MaterialIcons").default;
25
+ hasIcons = true;
26
+ } catch {
27
+ try {
28
+ // Older import path
29
+ const icons = require("@expo/vector-icons");
30
+ Feather = icons.Feather;
31
+ MaterialIcons = icons.MaterialIcons;
32
+ hasIcons = !!(Feather && MaterialIcons);
33
+ } catch {
34
+ // @expo/vector-icons not available
35
+ }
36
+ }
37
+
38
+ // ─── Fallback ────────────────────────────────────────────────────────────────
39
+
40
+ function TextFallback({
41
+ text,
42
+ size = 18,
43
+ color = "#000",
44
+ style
45
+ }) {
46
+ return /*#__PURE__*/_jsx(Text, {
47
+ style: [{
48
+ fontSize: size * 0.8,
49
+ color,
50
+ textAlign: "center"
51
+ }, style],
52
+ children: text
53
+ });
54
+ }
55
+
56
+ // ─── Phone Call Ring Icon ────────────────────────────────────────────────────
57
+ // Used in "Start Call" button.
58
+
59
+ export function PhoneCallRingIcon({
60
+ size = 18,
61
+ color = "#000",
62
+ style
63
+ }) {
64
+ if (!hasIcons) return /*#__PURE__*/_jsx(TextFallback, {
65
+ text: "\uD83D\uDCDE",
66
+ size: size,
67
+ color: color,
68
+ style: style
69
+ });
70
+ return /*#__PURE__*/_jsx(Feather, {
71
+ name: "phone",
72
+ size: size,
73
+ color: color,
74
+ style: style
75
+ });
76
+ }
77
+
78
+ // ─── Phone Call Icon ─────────────────────────────────────────────────────────
79
+ // Used in "Voice Call" tab.
80
+
81
+ export function PhoneCallIcon({
82
+ size = 18,
83
+ color = "#000",
84
+ style
85
+ }) {
86
+ if (!hasIcons) return /*#__PURE__*/_jsx(TextFallback, {
87
+ text: "\uD83D\uDCF1",
88
+ size: size,
89
+ color: color,
90
+ style: style
91
+ });
92
+ return /*#__PURE__*/_jsx(Feather, {
93
+ name: "phone",
94
+ size: size,
95
+ color: color,
96
+ style: style
97
+ });
98
+ }
99
+
100
+ // ─── Phone End Call Icon ─────────────────────────────────────────────────────
101
+
102
+ export function PhoneEndCallIcon({
103
+ size = 18,
104
+ color = "#ffffff",
105
+ style
106
+ }) {
107
+ if (!hasIcons) return /*#__PURE__*/_jsx(TextFallback, {
108
+ text: "\uD83D\uDCF5",
109
+ size: size,
110
+ color: color,
111
+ style: style
112
+ });
113
+ return /*#__PURE__*/_jsx(Feather, {
114
+ name: "phone-off",
115
+ size: size,
116
+ color: color,
117
+ style: style
118
+ });
119
+ }
120
+
121
+ // ─── Microphone Icon ─────────────────────────────────────────────────────────
122
+
123
+ export function MicrophoneIcon({
124
+ size = 18,
125
+ color = "#000",
126
+ style
127
+ }) {
128
+ if (!hasIcons) return /*#__PURE__*/_jsx(TextFallback, {
129
+ text: "\uD83C\uDFA4",
130
+ size: size,
131
+ color: color,
132
+ style: style
133
+ });
134
+ return /*#__PURE__*/_jsx(Feather, {
135
+ name: "mic",
136
+ size: size,
137
+ color: color,
138
+ style: style
139
+ });
140
+ }
141
+
142
+ // ─── Mic Off Icon ────────────────────────────────────────────────────────────
143
+
144
+ export function MicOffIcon({
145
+ size = 18,
146
+ color = "#000",
147
+ style
148
+ }) {
149
+ if (!hasIcons) return /*#__PURE__*/_jsx(TextFallback, {
150
+ text: "\uD83D\uDD07",
151
+ size: size,
152
+ color: color,
153
+ style: style
154
+ });
155
+ return /*#__PURE__*/_jsx(Feather, {
156
+ name: "mic-off",
157
+ size: size,
158
+ color: color,
159
+ style: style
160
+ });
161
+ }
162
+
163
+ // ─── Chat Icon ───────────────────────────────────────────────────────────────
164
+
165
+ export function ChatIcon({
166
+ size = 18,
167
+ color = "#000",
168
+ style
169
+ }) {
170
+ if (!hasIcons) return /*#__PURE__*/_jsx(TextFallback, {
171
+ text: "\uD83D\uDCAC",
172
+ size: size,
173
+ color: color,
174
+ style: style
175
+ });
176
+ return /*#__PURE__*/_jsx(Feather, {
177
+ name: "message-square",
178
+ size: size,
179
+ color: color,
180
+ style: style
181
+ });
182
+ }
183
+
184
+ // ─── Send Icon ───────────────────────────────────────────────────────────────
185
+
186
+ export function SendIcon({
187
+ size = 18,
188
+ color = "#000",
189
+ style
190
+ }) {
191
+ if (!hasIcons) return /*#__PURE__*/_jsx(TextFallback, {
192
+ text: "\u27A4",
193
+ size: size,
194
+ color: color,
195
+ style: style
196
+ });
197
+ return /*#__PURE__*/_jsx(Feather, {
198
+ name: "send",
199
+ size: size,
200
+ color: color,
201
+ style: style
202
+ });
203
+ }
204
+
205
+ // ─── Star Icon (for Feedback) ────────────────────────────────────────────────
206
+
207
+ export function StarIcon({
208
+ size = 32,
209
+ filled = false,
210
+ filledColor = "#FBBF24",
211
+ emptyColor = "#D1D5DB",
212
+ style
213
+ }) {
214
+ const iconColor = filled ? filledColor : emptyColor;
215
+ if (!hasIcons) {
216
+ return /*#__PURE__*/_jsx(Text, {
217
+ style: [{
218
+ fontSize: size,
219
+ color: iconColor
220
+ }, style],
221
+ children: "★"
222
+ });
223
+ }
224
+ return /*#__PURE__*/_jsx(MaterialIcons, {
225
+ name: filled ? "star" : "star-border",
226
+ size: size,
227
+ color: iconColor,
228
+ style: style
229
+ });
230
+ }
231
+
232
+ // ─── Close (X) Icon ──────────────────────────────────────────────────────────
233
+
234
+ export function CloseIcon({
235
+ size = 20,
236
+ color = "#000",
237
+ style
238
+ }) {
239
+ if (!hasIcons) return /*#__PURE__*/_jsx(TextFallback, {
240
+ text: "\u2715",
241
+ size: size,
242
+ color: color,
243
+ style: style
244
+ });
245
+ return /*#__PURE__*/_jsx(Feather, {
246
+ name: "x",
247
+ size: size,
248
+ color: color,
249
+ style: style
250
+ });
251
+ }
252
+
253
+ // ─── Minus (Minimize) Icon ───────────────────────────────────────────────────
254
+
255
+ export function MinusIcon({
256
+ size = 20,
257
+ color = "#000",
258
+ style
259
+ }) {
260
+ if (!hasIcons) return /*#__PURE__*/_jsx(TextFallback, {
261
+ text: "\u2014",
262
+ size: size,
263
+ color: color,
264
+ style: style
265
+ });
266
+ return /*#__PURE__*/_jsx(Feather, {
267
+ name: "minus",
268
+ size: size,
269
+ color: color,
270
+ style: style
271
+ });
272
+ }
273
+
274
+ // ─── Widget Phone Icon (for FAB) ─────────────────────────────────────────────
275
+
276
+ export function WidgetPhoneIcon({
277
+ size = 25,
278
+ color = "#000",
279
+ style
280
+ }) {
281
+ if (!hasIcons) return /*#__PURE__*/_jsx(TextFallback, {
282
+ text: "\uD83D\uDCDE",
283
+ size: size,
284
+ color: color,
285
+ style: style
286
+ });
287
+ return /*#__PURE__*/_jsx(Feather, {
288
+ name: "phone",
289
+ size: size,
290
+ color: color,
291
+ style: style
292
+ });
293
+ }
294
+ //# sourceMappingURL=Icons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Text","jsx","_jsx","Feather","MaterialIcons","hasIcons","require","default","icons","TextFallback","text","size","color","style","fontSize","textAlign","children","PhoneCallRingIcon","name","PhoneCallIcon","PhoneEndCallIcon","MicrophoneIcon","MicOffIcon","ChatIcon","SendIcon","StarIcon","filled","filledColor","emptyColor","iconColor","CloseIcon","MinusIcon","WidgetPhoneIcon"],"sourceRoot":"../../../../src","sources":["components/ui/Icons.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * MessageBubble — renders a single chat message matching the CDN widget style.
5
+ *
6
+ * CDN styling:
7
+ * - Agent: bg=surfaceColor, left-aligned, rounded-xl with rounded-bl-none
8
+ * - User: bg=primaryColor, right-aligned, rounded-xl with rounded-br-none
9
+ * - px-4 py-2, max-w-90%, no visible timestamp
10
+ * - Text color: agent=textColor, user=primaryTextColor
11
+ */
12
+
13
+ import React from "react";
14
+ import { View, Text, StyleSheet, Linking, TouchableOpacity } from "react-native";
15
+ import { colorToSolid } from "@ringg/core";
16
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
17
+ export function MessageBubble({
18
+ message,
19
+ theme
20
+ }) {
21
+ const isAgent = !message.isSelf;
22
+ const textColor = isAgent ? theme.textColor : theme.primaryTextColor;
23
+ const bgColor = isAgent ? theme.surfaceColor : colorToSolid(theme.primaryColor);
24
+ return /*#__PURE__*/_jsx(View, {
25
+ style: [styles.row, isAgent ? styles.agentRow : styles.selfRow],
26
+ children: /*#__PURE__*/_jsxs(View, {
27
+ style: [styles.bubble, {
28
+ backgroundColor: bgColor
29
+ }, isAgent ? styles.agentBubble : styles.selfBubble],
30
+ children: [/*#__PURE__*/_jsx(Text, {
31
+ style: [styles.messageText, {
32
+ color: textColor
33
+ }],
34
+ children: message.message
35
+ }), message.sourceUrl != null && /*#__PURE__*/_jsx(TouchableOpacity, {
36
+ onPress: () => Linking.openURL(message.sourceUrl),
37
+ children: /*#__PURE__*/_jsxs(Text, {
38
+ style: [styles.sourceLink, {
39
+ color: isAgent ? colorToSolid(theme.primaryColor) : theme.primaryTextColor
40
+ }],
41
+ numberOfLines: 2,
42
+ children: ["Source: ", message.sourceUrl]
43
+ })
44
+ })]
45
+ })
46
+ });
47
+ }
48
+ const styles = StyleSheet.create({
49
+ row: {
50
+ flexDirection: "row",
51
+ marginVertical: 5
52
+ },
53
+ agentRow: {
54
+ justifyContent: "flex-start"
55
+ },
56
+ selfRow: {
57
+ justifyContent: "flex-end"
58
+ },
59
+ bubble: {
60
+ paddingHorizontal: 16,
61
+ paddingVertical: 8,
62
+ borderRadius: 12,
63
+ maxWidth: "90%"
64
+ },
65
+ agentBubble: {
66
+ borderBottomLeftRadius: 0
67
+ },
68
+ selfBubble: {
69
+ borderBottomRightRadius: 0
70
+ },
71
+ messageText: {
72
+ fontSize: 14,
73
+ lineHeight: 20
74
+ },
75
+ sourceLink: {
76
+ fontSize: 13,
77
+ marginTop: 8
78
+ }
79
+ });
80
+ //# sourceMappingURL=MessageBubble.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","Text","StyleSheet","Linking","TouchableOpacity","colorToSolid","jsx","_jsx","jsxs","_jsxs","MessageBubble","message","theme","isAgent","isSelf","textColor","primaryTextColor","bgColor","surfaceColor","primaryColor","style","styles","row","agentRow","selfRow","children","bubble","backgroundColor","agentBubble","selfBubble","messageText","color","sourceUrl","onPress","openURL","sourceLink","numberOfLines","create","flexDirection","marginVertical","justifyContent","paddingHorizontal","paddingVertical","borderRadius","maxWidth","borderBottomLeftRadius","borderBottomRightRadius","fontSize","lineHeight","marginTop"],"sourceRoot":"../../../../src","sources":["components/ui/MessageBubble.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,IAAI,EAAEC,UAAU,EAAEC,OAAO,EAAEC,gBAAgB,QAAQ,cAAc;AAGhF,SAASC,YAAY,QAAQ,aAAa;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAO3C,OAAO,SAASC,aAAaA,CAAC;EAAEC,OAAO;EAAEC;AAA0B,CAAC,EAAE;EACpE,MAAMC,OAAO,GAAG,CAACF,OAAO,CAACG,MAAM;EAC/B,MAAMC,SAAS,GAAGF,OAAO,GAAGD,KAAK,CAACG,SAAS,GAAGH,KAAK,CAACI,gBAAgB;EACpE,MAAMC,OAAO,GAAGJ,OAAO,GAAGD,KAAK,CAACM,YAAY,GAAGb,YAAY,CAACO,KAAK,CAACO,YAAY,CAAC;EAE/E,oBACEZ,IAAA,CAACP,IAAI;IAACoB,KAAK,EAAE,CAACC,MAAM,CAACC,GAAG,EAAET,OAAO,GAAGQ,MAAM,CAACE,QAAQ,GAAGF,MAAM,CAACG,OAAO,CAAE;IAAAC,QAAA,eACpEhB,KAAA,CAACT,IAAI;MAACoB,KAAK,EAAE,CAACC,MAAM,CAACK,MAAM,EAAE;QAAEC,eAAe,EAAEV;MAAQ,CAAC,EAAEJ,OAAO,GAAGQ,MAAM,CAACO,WAAW,GAAGP,MAAM,CAACQ,UAAU,CAAE;MAAAJ,QAAA,gBAC3GlB,IAAA,CAACN,IAAI;QAACmB,KAAK,EAAE,CAACC,MAAM,CAACS,WAAW,EAAE;UAAEC,KAAK,EAAEhB;QAAU,CAAC,CAAE;QAAAU,QAAA,EAAEd,OAAO,CAACA;MAAO,CAAO,CAAC,EAEhFA,OAAO,CAACqB,SAAS,IAAI,IAAI,iBACxBzB,IAAA,CAACH,gBAAgB;QAAC6B,OAAO,EAAEA,CAAA,KAAM9B,OAAO,CAAC+B,OAAO,CAACvB,OAAO,CAACqB,SAAU,CAAE;QAAAP,QAAA,eACnEhB,KAAA,CAACR,IAAI;UAACmB,KAAK,EAAE,CAACC,MAAM,CAACc,UAAU,EAAE;YAAEJ,KAAK,EAAElB,OAAO,GAAGR,YAAY,CAACO,KAAK,CAACO,YAAY,CAAC,GAAGP,KAAK,CAACI;UAAiB,CAAC,CAAE;UAACoB,aAAa,EAAE,CAAE;UAAAX,QAAA,GAAC,UAC1H,EAACd,OAAO,CAACqB,SAAS;QAAA,CACtB;MAAC,CACS,CACnB;IAAA,CACG;EAAC,CACH,CAAC;AAEX;AAEA,MAAMX,MAAM,GAAGnB,UAAU,CAACmC,MAAM,CAAC;EAC/Bf,GAAG,EAAE;IACHgB,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDhB,QAAQ,EAAE;IACRiB,cAAc,EAAE;EAClB,CAAC;EACDhB,OAAO,EAAE;IACPgB,cAAc,EAAE;EAClB,CAAC;EACDd,MAAM,EAAE;IACNe,iBAAiB,EAAE,EAAE;IACrBC,eAAe,EAAE,CAAC;IAClBC,YAAY,EAAE,EAAE;IAChBC,QAAQ,EAAE;EACZ,CAAC;EACDhB,WAAW,EAAE;IACXiB,sBAAsB,EAAE;EAC1B,CAAC;EACDhB,UAAU,EAAE;IACViB,uBAAuB,EAAE;EAC3B,CAAC;EACDhB,WAAW,EAAE;IACXiB,QAAQ,EAAE,EAAE;IACZC,UAAU,EAAE;EACd,CAAC;EACDb,UAAU,EAAE;IACVY,QAAQ,EAAE,EAAE;IACZE,SAAS,EAAE;EACb;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * TabSelector — audio/text mode switcher at the bottom of the widget.
5
+ *
6
+ * CDN widget behavior:
7
+ * - Full width, border-top
8
+ * - Two tabs: "Chat" (ChatIcon) and "Voice Call" (PhoneCallIcon)
9
+ * - Each tab: flex-1, icon + label stacked, py-3
10
+ * - Active tab: top border in primaryColor, icon+text in primaryColor
11
+ * - Inactive tab: transparent top border, icon+text in mutedTextColor
12
+ * - Tab order: Chat first, Voice Call second (matching CDN APP_TABS)
13
+ */
14
+
15
+ import React from "react";
16
+ import { View, TouchableOpacity, Text, StyleSheet } from "react-native";
17
+ import { colorToSolid } from "@ringg/core";
18
+ import { ChatIcon, PhoneCallIcon } from "./Icons.js";
19
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
20
+ const TABS = [{
21
+ id: "text",
22
+ label: "Chat",
23
+ Icon: ChatIcon
24
+ }, {
25
+ id: "audio",
26
+ label: "Voice Call",
27
+ Icon: PhoneCallIcon
28
+ }];
29
+ export function TabSelector({
30
+ activeTab,
31
+ onTabChange,
32
+ theme,
33
+ hidden
34
+ }) {
35
+ if (hidden) return null;
36
+ return /*#__PURE__*/_jsx(View, {
37
+ style: [styles.container, {
38
+ backgroundColor: theme.backgroundColor,
39
+ borderTopColor: theme.borderColor
40
+ }],
41
+ children: TABS.map(tab => {
42
+ const isActive = activeTab === tab.id;
43
+ const iconColor = isActive ? colorToSolid(theme.primaryColor) : theme.mutedTextColor;
44
+ return /*#__PURE__*/_jsxs(TouchableOpacity, {
45
+ style: [styles.tab, {
46
+ borderTopColor: isActive ? colorToSolid(theme.primaryColor) : "transparent"
47
+ }],
48
+ onPress: () => onTabChange(tab.id),
49
+ activeOpacity: 0.7,
50
+ children: [/*#__PURE__*/_jsx(tab.Icon, {
51
+ size: 24,
52
+ color: iconColor
53
+ }), /*#__PURE__*/_jsx(Text, {
54
+ style: [styles.tabLabel, {
55
+ color: iconColor,
56
+ fontWeight: isActive ? "500" : "400"
57
+ }],
58
+ children: tab.label
59
+ })]
60
+ }, tab.id);
61
+ })
62
+ });
63
+ }
64
+ const styles = StyleSheet.create({
65
+ container: {
66
+ flexDirection: "row",
67
+ borderTopWidth: 1
68
+ },
69
+ tab: {
70
+ flex: 1,
71
+ alignItems: "center",
72
+ gap: 4,
73
+ paddingVertical: 12,
74
+ borderTopWidth: 2
75
+ },
76
+ tabLabel: {
77
+ fontSize: 13
78
+ }
79
+ });
80
+ //# sourceMappingURL=TabSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","TouchableOpacity","Text","StyleSheet","colorToSolid","ChatIcon","PhoneCallIcon","jsx","_jsx","jsxs","_jsxs","TABS","id","label","Icon","TabSelector","activeTab","onTabChange","theme","hidden","style","styles","container","backgroundColor","borderTopColor","borderColor","children","map","tab","isActive","iconColor","primaryColor","mutedTextColor","onPress","activeOpacity","size","color","tabLabel","fontWeight","create","flexDirection","borderTopWidth","flex","alignItems","gap","paddingVertical","fontSize"],"sourceRoot":"../../../../src","sources":["components/ui/TabSelector.tsx"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,IAAI,EAAEC,gBAAgB,EAAEC,IAAI,EAAEC,UAAU,QAAQ,cAAc;AAGvE,SAASC,YAAY,QAAQ,aAAa;AAE1C,SAASC,QAAQ,EAAEC,aAAa,QAAQ,YAAS;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AASlD,MAAMC,IAAsG,GAAG,CAC7G;EAAEC,EAAE,EAAE,MAAM;EAAEC,KAAK,EAAE,MAAM;EAAEC,IAAI,EAAET;AAAS,CAAC,EAC7C;EAAEO,EAAE,EAAE,OAAO;EAAEC,KAAK,EAAE,YAAY;EAAEC,IAAI,EAAER;AAAc,CAAC,CAC1D;AAED,OAAO,SAASS,WAAWA,CAAC;EAAEC,SAAS;EAAEC,WAAW;EAAEC,KAAK;EAAEC;AAAyB,CAAC,EAAE;EACvF,IAAIA,MAAM,EAAE,OAAO,IAAI;EAEvB,oBACEX,IAAA,CAACR,IAAI;IAACoB,KAAK,EAAE,CAACC,MAAM,CAACC,SAAS,EAAE;MAAEC,eAAe,EAAEL,KAAK,CAACK,eAAe;MAAEC,cAAc,EAAEN,KAAK,CAACO;IAAY,CAAC,CAAE;IAAAC,QAAA,EAC5Gf,IAAI,CAACgB,GAAG,CAAEC,GAAG,IAAK;MACjB,MAAMC,QAAQ,GAAGb,SAAS,KAAKY,GAAG,CAAChB,EAAE;MACrC,MAAMkB,SAAS,GAAGD,QAAQ,GAAGzB,YAAY,CAACc,KAAK,CAACa,YAAY,CAAC,GAAGb,KAAK,CAACc,cAAc;MAEpF,oBACEtB,KAAA,CAACT,gBAAgB;QAEfmB,KAAK,EAAE,CACLC,MAAM,CAACO,GAAG,EACV;UACEJ,cAAc,EAAEK,QAAQ,GAAGzB,YAAY,CAACc,KAAK,CAACa,YAAY,CAAC,GAAG;QAChE,CAAC,CACD;QACFE,OAAO,EAAEA,CAAA,KAAMhB,WAAW,CAACW,GAAG,CAAChB,EAAE,CAAE;QACnCsB,aAAa,EAAE,GAAI;QAAAR,QAAA,gBAEnBlB,IAAA,CAACoB,GAAG,CAACd,IAAI;UAACqB,IAAI,EAAE,EAAG;UAACC,KAAK,EAAEN;QAAU,CAAE,CAAC,eACxCtB,IAAA,CAACN,IAAI;UAACkB,KAAK,EAAE,CAACC,MAAM,CAACgB,QAAQ,EAAE;YAAED,KAAK,EAAEN,SAAS;YAAEQ,UAAU,EAAET,QAAQ,GAAG,KAAK,GAAG;UAAM,CAAC,CAAE;UAAAH,QAAA,EAAEE,GAAG,CAACf;QAAK,CAAO,CAAC;MAAA,GAXzGe,GAAG,CAAChB,EAYO,CAAC;IAEvB,CAAC;EAAC,CACE,CAAC;AAEX;AAEA,MAAMS,MAAM,GAAGlB,UAAU,CAACoC,MAAM,CAAC;EAC/BjB,SAAS,EAAE;IACTkB,aAAa,EAAE,KAAK;IACpBC,cAAc,EAAE;EAClB,CAAC;EACDb,GAAG,EAAE;IACHc,IAAI,EAAE,CAAC;IACPC,UAAU,EAAE,QAAQ;IACpBC,GAAG,EAAE,CAAC;IACNC,eAAe,EAAE,EAAE;IACnBJ,cAAc,EAAE;EAClB,CAAC;EACDJ,QAAQ,EAAE;IACRS,QAAQ,EAAE;EACZ;AACF,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * WidgetHeader — displays the agent logo, title, and description.
5
+ *
6
+ * Two modes matching the CDN widget:
7
+ * 1. Pre-call: Centered 70px round logo with primary color bg, centered title + description
8
+ * 2. In-call: Sticky top bar with 48px logo, left-aligned title + green status
9
+ */
10
+
11
+ import React from "react";
12
+ import { View, Text, Image, StyleSheet } from "react-native";
13
+
14
+ // colorToSolid removed — logo circle now uses fixed white background
15
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
+ const DEFAULT_LOGO = "https://assets.ringg.ai/images/logo/logo-dark.png";
17
+ export function WidgetHeader({
18
+ title,
19
+ description,
20
+ logoUrl = DEFAULT_LOGO,
21
+ logoStyles,
22
+ isConnected,
23
+ isLoading,
24
+ theme
25
+ }) {
26
+ // ── In-call header: sticky top bar (only when actually connected) ───────────
27
+ if (isConnected) {
28
+ const statusText = "Call in Progress";
29
+ const statusColor = theme.successColor;
30
+ return /*#__PURE__*/_jsxs(View, {
31
+ style: [styles.callingContainer, {
32
+ backgroundColor: theme.backgroundColor,
33
+ borderBottomColor: theme.borderColor
34
+ }],
35
+ children: [/*#__PURE__*/_jsx(View, {
36
+ style: [styles.callingLogo, {
37
+ backgroundColor: "#ffffff"
38
+ }, logoStyles && {
39
+ backgroundColor: logoStyles.backgroundColor || "#ffffff"
40
+ }],
41
+ children: /*#__PURE__*/_jsx(Image, {
42
+ source: {
43
+ uri: logoUrl
44
+ },
45
+ style: styles.callingLogoImage,
46
+ resizeMode: "contain"
47
+ })
48
+ }), /*#__PURE__*/_jsxs(View, {
49
+ style: styles.callingTextContainer,
50
+ children: [/*#__PURE__*/_jsx(Text, {
51
+ style: [styles.callingTitle, {
52
+ color: theme.textColor
53
+ }],
54
+ numberOfLines: 1,
55
+ children: title
56
+ }), /*#__PURE__*/_jsx(Text, {
57
+ style: [styles.callingStatus, {
58
+ color: statusColor
59
+ }],
60
+ children: statusText
61
+ })]
62
+ })]
63
+ });
64
+ }
65
+
66
+ // ── Pre-call header: centered logo + title + description ───────────────────
67
+ return /*#__PURE__*/_jsxs(View, {
68
+ style: styles.preCallContainer,
69
+ children: [/*#__PURE__*/_jsx(View, {
70
+ style: [styles.preCallLogo, {
71
+ backgroundColor: "#ffffff"
72
+ }, logoStyles && {
73
+ backgroundColor: logoStyles.backgroundColor || "#ffffff"
74
+ }],
75
+ children: /*#__PURE__*/_jsx(Image, {
76
+ source: {
77
+ uri: logoUrl
78
+ },
79
+ style: styles.preCallLogoImage,
80
+ resizeMode: "contain"
81
+ })
82
+ }), /*#__PURE__*/_jsxs(View, {
83
+ style: styles.preCallTextContainer,
84
+ children: [/*#__PURE__*/_jsx(Text, {
85
+ style: [styles.preCallTitle, {
86
+ color: theme.textColor
87
+ }],
88
+ children: title
89
+ }), /*#__PURE__*/_jsxs(Text, {
90
+ style: [styles.preCallDescription, {
91
+ color: theme.mutedTextColor
92
+ }],
93
+ children: [description, "."]
94
+ })]
95
+ })]
96
+ });
97
+ }
98
+ const styles = StyleSheet.create({
99
+ // ── Pre-call styles ────────────────────────────────────────────────────────
100
+ preCallContainer: {
101
+ alignItems: "center",
102
+ gap: 20
103
+ },
104
+ preCallLogo: {
105
+ width: 90,
106
+ height: 90,
107
+ borderRadius: 45,
108
+ alignItems: "center",
109
+ justifyContent: "center",
110
+ overflow: "hidden"
111
+ },
112
+ preCallLogoImage: {
113
+ width: 64,
114
+ height: 64
115
+ },
116
+ preCallTextContainer: {
117
+ alignItems: "center",
118
+ gap: 4
119
+ },
120
+ preCallTitle: {
121
+ fontSize: 20,
122
+ fontWeight: "500",
123
+ textAlign: "center"
124
+ },
125
+ preCallDescription: {
126
+ fontSize: 14,
127
+ fontWeight: "400",
128
+ textAlign: "center"
129
+ },
130
+ // ── In-call styles ─────────────────────────────────────────────────────────
131
+ callingContainer: {
132
+ position: "absolute",
133
+ top: 0,
134
+ left: 0,
135
+ right: 0,
136
+ zIndex: 10,
137
+ flexDirection: "row",
138
+ alignItems: "center",
139
+ paddingHorizontal: 12,
140
+ paddingVertical: 8,
141
+ gap: 8,
142
+ borderBottomWidth: 1
143
+ },
144
+ callingLogo: {
145
+ width: 48,
146
+ height: 48,
147
+ borderRadius: 24,
148
+ alignItems: "center",
149
+ justifyContent: "center",
150
+ overflow: "hidden"
151
+ },
152
+ callingLogoImage: {
153
+ width: 34,
154
+ height: 34
155
+ },
156
+ callingTextContainer: {
157
+ flex: 1
158
+ },
159
+ callingTitle: {
160
+ fontSize: 20,
161
+ fontWeight: "500"
162
+ },
163
+ callingStatus: {
164
+ fontSize: 14,
165
+ fontWeight: "400"
166
+ }
167
+ });
168
+ //# sourceMappingURL=WidgetHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","Text","Image","StyleSheet","jsx","_jsx","jsxs","_jsxs","DEFAULT_LOGO","WidgetHeader","title","description","logoUrl","logoStyles","isConnected","isLoading","theme","statusText","statusColor","successColor","style","styles","callingContainer","backgroundColor","borderBottomColor","borderColor","children","callingLogo","source","uri","callingLogoImage","resizeMode","callingTextContainer","callingTitle","color","textColor","numberOfLines","callingStatus","preCallContainer","preCallLogo","preCallLogoImage","preCallTextContainer","preCallTitle","preCallDescription","mutedTextColor","create","alignItems","gap","width","height","borderRadius","justifyContent","overflow","fontSize","fontWeight","textAlign","position","top","left","right","zIndex","flexDirection","paddingHorizontal","paddingVertical","borderBottomWidth","flex"],"sourceRoot":"../../../../src","sources":["components/ui/WidgetHeader.tsx"],"mappings":"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","ignoreList":[]}