@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,92 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * ActionButton — the "Start Call" / "Start Chat" button.
5
+ *
6
+ * CDN widget behavior:
7
+ * - Full width, h-12 (48px)
8
+ * - Primary color background, primary text color
9
+ * - Icon + text label ("Start Call" / "Start Chat")
10
+ * - Loading state shows spinner + "Connecting..."
11
+ * - Uses theme buttonStyle for border radius ("pill" = 9999px)
12
+ */
13
+
14
+ import React from "react";
15
+ import { TouchableOpacity, Text, ActivityIndicator, View, StyleSheet } from "react-native";
16
+ import { colorToSolid, getButtonRadius } from "@ringg/core";
17
+ import { PhoneCallRingIcon, ChatIcon } from "./Icons.js";
18
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
19
+ export function ActionButton({
20
+ callMode,
21
+ isLoading,
22
+ isConnected,
23
+ buttonConfig,
24
+ theme,
25
+ onPress
26
+ }) {
27
+ if (isConnected) return null;
28
+ const isAudio = callMode === "audio";
29
+ const config = isAudio ? buttonConfig?.call : buttonConfig?.text;
30
+ const label = config?.textBeforeCall ?? (isAudio ? "Start Call" : "Start Chat");
31
+ const buttonRadius = getButtonRadius(theme.buttonStyle);
32
+ const radiusNum = theme.buttonStyle === "pill" ? 9999 : parseInt(buttonRadius, 10) || 8;
33
+ return /*#__PURE__*/_jsx(TouchableOpacity, {
34
+ style: [styles.button, {
35
+ backgroundColor: colorToSolid(theme.primaryColor),
36
+ borderRadius: radiusNum
37
+ }],
38
+ onPress: () => onPress(callMode),
39
+ disabled: isLoading,
40
+ activeOpacity: 0.9,
41
+ children: isLoading ? /*#__PURE__*/_jsxs(View, {
42
+ style: styles.loadingRow,
43
+ children: [/*#__PURE__*/_jsx(ActivityIndicator, {
44
+ color: theme.primaryTextColor,
45
+ size: "small"
46
+ }), /*#__PURE__*/_jsx(Text, {
47
+ style: [styles.label, {
48
+ color: theme.primaryTextColor
49
+ }],
50
+ children: "Connecting..."
51
+ })]
52
+ }) : /*#__PURE__*/_jsxs(View, {
53
+ style: styles.contentRow,
54
+ children: [isAudio ? /*#__PURE__*/_jsx(PhoneCallRingIcon, {
55
+ size: 20,
56
+ color: theme.primaryTextColor
57
+ }) : /*#__PURE__*/_jsx(ChatIcon, {
58
+ size: 20,
59
+ color: theme.primaryTextColor
60
+ }), /*#__PURE__*/_jsx(Text, {
61
+ style: [styles.label, {
62
+ color: theme.primaryTextColor
63
+ }],
64
+ children: label
65
+ })]
66
+ })
67
+ });
68
+ }
69
+ const styles = StyleSheet.create({
70
+ button: {
71
+ height: 48,
72
+ alignItems: "center",
73
+ justifyContent: "center",
74
+ paddingHorizontal: 24,
75
+ marginHorizontal: 20
76
+ },
77
+ contentRow: {
78
+ flexDirection: "row",
79
+ alignItems: "center",
80
+ gap: 8
81
+ },
82
+ loadingRow: {
83
+ flexDirection: "row",
84
+ alignItems: "center",
85
+ gap: 8
86
+ },
87
+ label: {
88
+ fontSize: 15,
89
+ fontWeight: "500"
90
+ }
91
+ });
92
+ //# sourceMappingURL=ActionButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","TouchableOpacity","Text","ActivityIndicator","View","StyleSheet","colorToSolid","getButtonRadius","PhoneCallRingIcon","ChatIcon","jsx","_jsx","jsxs","_jsxs","ActionButton","callMode","isLoading","isConnected","buttonConfig","theme","onPress","isAudio","config","call","text","label","textBeforeCall","buttonRadius","buttonStyle","radiusNum","parseInt","style","styles","button","backgroundColor","primaryColor","borderRadius","disabled","activeOpacity","children","loadingRow","color","primaryTextColor","size","contentRow","create","height","alignItems","justifyContent","paddingHorizontal","marginHorizontal","flexDirection","gap","fontSize","fontWeight"],"sourceRoot":"../../../../src","sources":["components/ui/ActionButton.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * CallControls — mic toggle, end call, and text input during a call.
5
+ *
6
+ * CDN widget behavior:
7
+ * - Audio mode: Two circular buttons side-by-side (mic toggle + end call), each with label below
8
+ * - Mic: surfaceColor bg, round (h-12 w-12), mic SVG icon, "Mute"/"Un-Mute" label below
9
+ * - End: errorColor bg, round (h-12 w-12), phone end call icon, "End Call" label below
10
+ * - Text mode: Pill-shaped input with circular send button (arrow icon) inside
11
+ */
12
+
13
+ import React, { useState } from "react";
14
+ import { View, TouchableOpacity, TextInput, Text, StyleSheet } from "react-native";
15
+ import { colorToSolid } from "@ringg/core";
16
+ import { MicrophoneIcon, MicOffIcon, PhoneEndCallIcon, SendIcon } from "./Icons.js";
17
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
18
+ export function CallControls({
19
+ callMode,
20
+ isConnected,
21
+ isMicEnabled,
22
+ theme,
23
+ onToggleMic,
24
+ onEndCall,
25
+ onSendMessage
26
+ }) {
27
+ const [inputText, setInputText] = useState("");
28
+ if (!isConnected) return null;
29
+ const handleSend = () => {
30
+ if (!inputText.trim()) return;
31
+ onSendMessage(inputText.trim());
32
+ setInputText("");
33
+ };
34
+
35
+ // ── Text mode: pill input with send button ───────────────────────────────
36
+ if (callMode === "text") {
37
+ return /*#__PURE__*/_jsx(View, {
38
+ style: styles.textInputContainer,
39
+ children: /*#__PURE__*/_jsxs(View, {
40
+ style: [styles.inputPill, {
41
+ backgroundColor: theme.surfaceColor,
42
+ borderColor: theme.borderColor
43
+ }],
44
+ children: [/*#__PURE__*/_jsx(TextInput, {
45
+ style: [styles.textInput, {
46
+ color: theme.textColor
47
+ }],
48
+ value: inputText,
49
+ onChangeText: setInputText,
50
+ placeholder: "Type here",
51
+ placeholderTextColor: theme.mutedTextColor,
52
+ onSubmitEditing: handleSend,
53
+ returnKeyType: "send",
54
+ autoComplete: "off"
55
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
56
+ style: [styles.sendButton, {
57
+ backgroundColor: colorToSolid(theme.primaryColor)
58
+ }],
59
+ onPress: handleSend,
60
+ disabled: !inputText.trim(),
61
+ activeOpacity: 0.8,
62
+ children: /*#__PURE__*/_jsx(SendIcon, {
63
+ size: 16,
64
+ color: theme.primaryTextColor
65
+ })
66
+ })]
67
+ })
68
+ });
69
+ }
70
+
71
+ // ── Audio mode: mic + end call circles with labels ─────────────────────────
72
+ return /*#__PURE__*/_jsxs(View, {
73
+ style: styles.audioControlsRow,
74
+ children: [/*#__PURE__*/_jsxs(View, {
75
+ style: styles.controlGroup,
76
+ children: [/*#__PURE__*/_jsx(TouchableOpacity, {
77
+ style: [styles.circleButton, {
78
+ backgroundColor: theme.surfaceColor
79
+ }],
80
+ onPress: onToggleMic,
81
+ activeOpacity: 0.8,
82
+ children: isMicEnabled ? /*#__PURE__*/_jsx(MicrophoneIcon, {
83
+ size: 16,
84
+ color: theme.textColor
85
+ }) : /*#__PURE__*/_jsx(MicOffIcon, {
86
+ size: 16,
87
+ color: theme.textColor
88
+ })
89
+ }), /*#__PURE__*/_jsx(Text, {
90
+ style: [styles.controlLabel, {
91
+ color: theme.mutedTextColor
92
+ }],
93
+ children: isMicEnabled ? "Mute" : "Un-Mute"
94
+ })]
95
+ }), /*#__PURE__*/_jsxs(View, {
96
+ style: styles.controlGroup,
97
+ children: [/*#__PURE__*/_jsx(TouchableOpacity, {
98
+ style: [styles.circleButton, {
99
+ backgroundColor: theme.errorColor
100
+ }],
101
+ onPress: onEndCall,
102
+ activeOpacity: 0.8,
103
+ children: /*#__PURE__*/_jsx(PhoneEndCallIcon, {
104
+ size: 16,
105
+ color: "#ffffff"
106
+ })
107
+ }), /*#__PURE__*/_jsx(Text, {
108
+ style: [styles.controlLabel, {
109
+ color: theme.mutedTextColor
110
+ }],
111
+ children: "End Call"
112
+ })]
113
+ })]
114
+ });
115
+ }
116
+ const styles = StyleSheet.create({
117
+ // ── Text mode styles ───────────────────────────────────────────────────────
118
+ textInputContainer: {
119
+ paddingHorizontal: 0,
120
+ paddingBottom: 12
121
+ },
122
+ inputPill: {
123
+ flexDirection: "row",
124
+ alignItems: "center",
125
+ borderWidth: 1,
126
+ borderRadius: 9999,
127
+ paddingLeft: 16,
128
+ paddingRight: 4,
129
+ height: 48
130
+ },
131
+ textInput: {
132
+ flex: 1,
133
+ fontSize: 14,
134
+ paddingVertical: 0
135
+ },
136
+ sendButton: {
137
+ width: 40,
138
+ height: 40,
139
+ borderRadius: 20,
140
+ alignItems: "center",
141
+ justifyContent: "center"
142
+ },
143
+ // ── Audio mode styles ──────────────────────────────────────────────────────
144
+ audioControlsRow: {
145
+ flexDirection: "row",
146
+ justifyContent: "space-between",
147
+ alignItems: "flex-start",
148
+ paddingHorizontal: 20,
149
+ paddingBottom: 8
150
+ },
151
+ controlGroup: {
152
+ alignItems: "center",
153
+ gap: 4
154
+ },
155
+ circleButton: {
156
+ width: 48,
157
+ height: 48,
158
+ borderRadius: 24,
159
+ alignItems: "center",
160
+ justifyContent: "center"
161
+ },
162
+ controlLabel: {
163
+ fontSize: 14,
164
+ fontWeight: "400",
165
+ textAlign: "center"
166
+ }
167
+ });
168
+ //# sourceMappingURL=CallControls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useState","View","TouchableOpacity","TextInput","Text","StyleSheet","colorToSolid","MicrophoneIcon","MicOffIcon","PhoneEndCallIcon","SendIcon","jsx","_jsx","jsxs","_jsxs","CallControls","callMode","isConnected","isMicEnabled","theme","onToggleMic","onEndCall","onSendMessage","inputText","setInputText","handleSend","trim","style","styles","textInputContainer","children","inputPill","backgroundColor","surfaceColor","borderColor","textInput","color","textColor","value","onChangeText","placeholder","placeholderTextColor","mutedTextColor","onSubmitEditing","returnKeyType","autoComplete","sendButton","primaryColor","onPress","disabled","activeOpacity","size","primaryTextColor","audioControlsRow","controlGroup","circleButton","controlLabel","errorColor","create","paddingHorizontal","paddingBottom","flexDirection","alignItems","borderWidth","borderRadius","paddingLeft","paddingRight","height","flex","fontSize","paddingVertical","width","justifyContent","gap","fontWeight","textAlign"],"sourceRoot":"../../../../src","sources":["components/ui/CallControls.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * FeedbackScreen — post-call star rating and comment form.
5
+ *
6
+ * CDN widget behavior:
7
+ * - Centered layout with p-6, h-full
8
+ * - Title: "How was your call/chat?" (lg, font-semibold)
9
+ * - Description: "Your feedback helps us improve!" (sm, muted)
10
+ * - SVG stars with filled/empty state + hover colors
11
+ * - Textarea: min-h-[80px], surface bg, border, resizable
12
+ * - Submit button: full width, primary color, button radius
13
+ * - Skip link: text button below, muted color
14
+ */
15
+
16
+ import React, { useState } from "react";
17
+ import { View, Text, TextInput, TouchableOpacity, ActivityIndicator, StyleSheet } from "react-native";
18
+ import { colorToSolid, getButtonRadius } from "@ringg/core";
19
+ import { StarIcon } from "./Icons.js";
20
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
21
+ export function FeedbackScreen({
22
+ theme,
23
+ feedbackConfig,
24
+ callMode = "audio",
25
+ isSubmitting,
26
+ onSubmit,
27
+ onSkip
28
+ }) {
29
+ const [rating, setRating] = useState(0);
30
+ const [comment, setComment] = useState("");
31
+ const starsCount = feedbackConfig?.starsCount ?? 5;
32
+ const filledColor = feedbackConfig?.starsStyles?.filledColor ?? "#FBBF24";
33
+ const emptyColor = feedbackConfig?.starsStyles?.emptyColor ?? "#D1D5DB";
34
+ const title = feedbackConfig?.title ?? `How was your ${callMode === "text" ? "chat" : "call"}?`;
35
+ const description = feedbackConfig?.description ?? "Your feedback helps us improve!";
36
+ const placeholder = feedbackConfig?.placeholder ?? "We'd love to hear more...";
37
+ const submitLabel = feedbackConfig?.submitBtnCTA ?? "Submit Feedback";
38
+ const buttonRadius = getButtonRadius(theme.buttonStyle);
39
+ const radiusNum = parseInt(buttonRadius, 10) || 8;
40
+ const handleSubmit = () => {
41
+ if (rating > 0) {
42
+ onSubmit(rating, comment);
43
+ }
44
+ };
45
+ return /*#__PURE__*/_jsxs(View, {
46
+ style: [styles.container, {
47
+ backgroundColor: theme.backgroundColor
48
+ }],
49
+ children: [/*#__PURE__*/_jsx(Text, {
50
+ style: [styles.title, {
51
+ color: theme.textColor
52
+ }],
53
+ children: title
54
+ }), /*#__PURE__*/_jsx(Text, {
55
+ style: [styles.description, {
56
+ color: theme.mutedTextColor
57
+ }],
58
+ children: description
59
+ }), /*#__PURE__*/_jsx(View, {
60
+ style: styles.starsRow,
61
+ children: Array.from({
62
+ length: starsCount
63
+ }, (_, i) => /*#__PURE__*/_jsx(TouchableOpacity, {
64
+ onPress: () => setRating(i + 1),
65
+ style: styles.starButton,
66
+ children: /*#__PURE__*/_jsx(StarIcon, {
67
+ size: 36,
68
+ filled: i < rating,
69
+ filledColor: filledColor,
70
+ emptyColor: emptyColor
71
+ })
72
+ }, i))
73
+ }), /*#__PURE__*/_jsx(TextInput, {
74
+ style: [styles.commentInput, {
75
+ color: theme.textColor,
76
+ backgroundColor: theme.surfaceColor,
77
+ borderColor: theme.borderColor,
78
+ borderRadius: radiusNum
79
+ }],
80
+ value: comment,
81
+ onChangeText: setComment,
82
+ placeholder: placeholder,
83
+ placeholderTextColor: theme.mutedTextColor,
84
+ multiline: true,
85
+ numberOfLines: 3,
86
+ textAlignVertical: "top",
87
+ maxLength: 500
88
+ }), /*#__PURE__*/_jsxs(View, {
89
+ style: styles.actionsContainer,
90
+ children: [/*#__PURE__*/_jsx(TouchableOpacity, {
91
+ style: [styles.submitButton, {
92
+ backgroundColor: colorToSolid(theme.primaryColor),
93
+ borderRadius: radiusNum,
94
+ opacity: rating === 0 || isSubmitting ? 0.5 : 1
95
+ }],
96
+ onPress: handleSubmit,
97
+ disabled: rating === 0 || isSubmitting,
98
+ activeOpacity: 0.9,
99
+ children: isSubmitting ? /*#__PURE__*/_jsx(ActivityIndicator, {
100
+ color: theme.primaryTextColor,
101
+ size: "small"
102
+ }) : /*#__PURE__*/_jsx(Text, {
103
+ style: [styles.submitText, {
104
+ color: theme.primaryTextColor
105
+ }],
106
+ children: submitLabel
107
+ })
108
+ }), /*#__PURE__*/_jsx(TouchableOpacity, {
109
+ style: styles.skipButton,
110
+ onPress: onSkip,
111
+ disabled: isSubmitting,
112
+ children: /*#__PURE__*/_jsx(Text, {
113
+ style: [styles.skipText, {
114
+ color: theme.mutedTextColor
115
+ }],
116
+ children: "Skip"
117
+ })
118
+ })]
119
+ })]
120
+ });
121
+ }
122
+ const styles = StyleSheet.create({
123
+ container: {
124
+ flex: 1,
125
+ paddingHorizontal: 20,
126
+ paddingTop: 32,
127
+ paddingBottom: 12,
128
+ justifyContent: "center",
129
+ alignItems: "center",
130
+ gap: 10
131
+ },
132
+ title: {
133
+ fontSize: 18,
134
+ fontWeight: "600",
135
+ textAlign: "center",
136
+ marginBottom: 2
137
+ },
138
+ description: {
139
+ fontSize: 14,
140
+ textAlign: "center"
141
+ },
142
+ starsRow: {
143
+ flexDirection: "row",
144
+ gap: 6,
145
+ marginVertical: 4
146
+ },
147
+ starButton: {
148
+ padding: 4
149
+ },
150
+ commentInput: {
151
+ width: "100%",
152
+ borderWidth: 1,
153
+ padding: 12,
154
+ fontSize: 14,
155
+ minHeight: 80
156
+ },
157
+ actionsContainer: {
158
+ width: "100%",
159
+ gap: 8,
160
+ marginTop: 2
161
+ },
162
+ submitButton: {
163
+ width: "100%",
164
+ height: 44,
165
+ alignItems: "center",
166
+ justifyContent: "center"
167
+ },
168
+ submitText: {
169
+ fontSize: 15,
170
+ fontWeight: "600"
171
+ },
172
+ skipButton: {
173
+ alignItems: "center",
174
+ padding: 6
175
+ },
176
+ skipText: {
177
+ fontSize: 14
178
+ }
179
+ });
180
+ //# sourceMappingURL=FeedbackScreen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useState","View","Text","TextInput","TouchableOpacity","ActivityIndicator","StyleSheet","colorToSolid","getButtonRadius","StarIcon","jsx","_jsx","jsxs","_jsxs","FeedbackScreen","theme","feedbackConfig","callMode","isSubmitting","onSubmit","onSkip","rating","setRating","comment","setComment","starsCount","filledColor","starsStyles","emptyColor","title","description","placeholder","submitLabel","submitBtnCTA","buttonRadius","buttonStyle","radiusNum","parseInt","handleSubmit","style","styles","container","backgroundColor","children","color","textColor","mutedTextColor","starsRow","Array","from","length","_","i","onPress","starButton","size","filled","commentInput","surfaceColor","borderColor","borderRadius","value","onChangeText","placeholderTextColor","multiline","numberOfLines","textAlignVertical","maxLength","actionsContainer","submitButton","primaryColor","opacity","disabled","activeOpacity","primaryTextColor","submitText","skipButton","skipText","create","flex","paddingHorizontal","paddingTop","paddingBottom","justifyContent","alignItems","gap","fontSize","fontWeight","textAlign","marginBottom","flexDirection","marginVertical","padding","width","borderWidth","minHeight","marginTop","height"],"sourceRoot":"../../../../src","sources":["components/ui/FeedbackScreen.tsx"],"mappings":"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","ignoreList":[]}