@ringg/react-native 0.0.1-alpha.7 → 0.0.1-alpha.9

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 (31) hide show
  1. package/lib/module/components/RinggWidget.js +50 -12
  2. package/lib/module/components/RinggWidget.js.map +1 -1
  3. package/lib/module/components/steps/ButtonsStep.js +146 -0
  4. package/lib/module/components/steps/ButtonsStep.js.map +1 -0
  5. package/lib/module/components/steps/CalendarStep.js +190 -0
  6. package/lib/module/components/steps/CalendarStep.js.map +1 -0
  7. package/lib/module/components/steps/ConfirmationStep.js +175 -0
  8. package/lib/module/components/steps/ConfirmationStep.js.map +1 -0
  9. package/lib/module/components/steps/FormStep.js +346 -0
  10. package/lib/module/components/steps/FormStep.js.map +1 -0
  11. package/lib/module/components/steps/InteractiveFlow.js +249 -0
  12. package/lib/module/components/steps/InteractiveFlow.js.map +1 -0
  13. package/lib/module/hooks/useRinggComponents.js +11 -1
  14. package/lib/module/hooks/useRinggComponents.js.map +1 -1
  15. package/lib/module/index.js +7 -0
  16. package/lib/module/index.js.map +1 -1
  17. package/lib/typescript/components/RinggWidget.d.ts.map +1 -1
  18. package/lib/typescript/components/steps/ButtonsStep.d.ts +17 -0
  19. package/lib/typescript/components/steps/ButtonsStep.d.ts.map +1 -0
  20. package/lib/typescript/components/steps/CalendarStep.d.ts +16 -0
  21. package/lib/typescript/components/steps/CalendarStep.d.ts.map +1 -0
  22. package/lib/typescript/components/steps/ConfirmationStep.d.ts +16 -0
  23. package/lib/typescript/components/steps/ConfirmationStep.d.ts.map +1 -0
  24. package/lib/typescript/components/steps/FormStep.d.ts +17 -0
  25. package/lib/typescript/components/steps/FormStep.d.ts.map +1 -0
  26. package/lib/typescript/components/steps/InteractiveFlow.d.ts +23 -0
  27. package/lib/typescript/components/steps/InteractiveFlow.d.ts.map +1 -0
  28. package/lib/typescript/hooks/useRinggComponents.d.ts.map +1 -1
  29. package/lib/typescript/index.d.ts +5 -0
  30. package/lib/typescript/index.d.ts.map +1 -1
  31. package/package.json +2 -2
@@ -0,0 +1,249 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * InteractiveFlow — orchestrator for interactive components.
5
+ *
6
+ * Handles:
7
+ * - Single components (calendar, form, buttons, confirmation)
8
+ * - Multi-step interactive flows with back/forward navigation
9
+ * - Step progress indicator
10
+ * - Post-completion confirmation screen
11
+ * - RPC response sending via onSendResponse callback
12
+ *
13
+ * Matches CDN interactive-flow.tsx behavior.
14
+ */
15
+
16
+ import React, { useState, useCallback, useMemo } from "react";
17
+ import { View, Text, TouchableOpacity, StyleSheet } from "react-native";
18
+ import { isCalendarBooking, isForm, isButtons, isConfirmation, formatSlotTime, formatSlotDate, colorToSolid } from "@ringg/core";
19
+ import { CalendarStep } from "./CalendarStep.js";
20
+ import { FormStep } from "./FormStep.js";
21
+ import { ButtonsStep } from "./ButtonsStep.js";
22
+ import { ConfirmationStep } from "./ConfirmationStep.js";
23
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
24
+ function isInteractiveFlow(payload) {
25
+ return payload.component_type === "interactive_flow";
26
+ }
27
+ export function InteractiveFlow({
28
+ initialComponent,
29
+ theme,
30
+ onSendResponse,
31
+ onComplete
32
+ }) {
33
+ const isMultiStepFlow = isInteractiveFlow(initialComponent);
34
+ const primarySolid = colorToSolid(theme.primaryColor);
35
+ const flowSteps = useMemo(() => isMultiStepFlow ? initialComponent.data.steps : [{
36
+ id: "single",
37
+ title: "",
38
+ component: initialComponent
39
+ }], [isMultiStepFlow, initialComponent]);
40
+ const totalSteps = flowSteps.length;
41
+ const [currentStepIndex, setCurrentStepIndex] = useState(0);
42
+ const [isProcessing, setIsProcessing] = useState(false);
43
+ const [allCollectedData, setAllCollectedData] = useState({});
44
+ const [confirmation, setConfirmation] = useState(null);
45
+ const [stepCompleted, setStepCompleted] = useState(new Array(totalSteps).fill(false));
46
+ const currentStep = flowSteps[currentStepIndex];
47
+ const showStepper = totalSteps > 1;
48
+ const handleBack = useCallback(() => {
49
+ if (currentStepIndex > 0) {
50
+ setCurrentStepIndex(prev => prev - 1);
51
+ }
52
+ }, [currentStepIndex]);
53
+ const handleStepComplete = useCallback(async stepData => {
54
+ setIsProcessing(true);
55
+ const newAllData = {
56
+ ...allCollectedData,
57
+ ...stepData
58
+ };
59
+ setAllCollectedData(newAllData);
60
+ setStepCompleted(prev => {
61
+ const updated = [...prev];
62
+ updated[currentStepIndex] = true;
63
+ return updated;
64
+ });
65
+ try {
66
+ const isLastStep = currentStepIndex === totalSteps - 1;
67
+ if (onSendResponse) {
68
+ await onSendResponse(initialComponent.component_id, {
69
+ step_index: currentStepIndex,
70
+ step_data: stepData,
71
+ all_data: newAllData,
72
+ is_final_step: isLastStep
73
+ });
74
+ if (isLastStep) {
75
+ setConfirmation({
76
+ title: "Success!",
77
+ message: "Your selection has been submitted.",
78
+ icon: "success"
79
+ });
80
+ onComplete?.(newAllData);
81
+ } else {
82
+ setCurrentStepIndex(prev => prev + 1);
83
+ }
84
+ } else {
85
+ // No RPC handler — just advance steps
86
+ if (isLastStep) {
87
+ setConfirmation({
88
+ title: "Success!",
89
+ message: "Completed.",
90
+ icon: "success"
91
+ });
92
+ onComplete?.(newAllData);
93
+ } else {
94
+ setCurrentStepIndex(prev => prev + 1);
95
+ }
96
+ }
97
+ } catch (error) {
98
+ setConfirmation({
99
+ title: "Something went wrong",
100
+ message: error.message || "Please try again.",
101
+ icon: "error"
102
+ });
103
+ } finally {
104
+ setIsProcessing(false);
105
+ }
106
+ }, [allCollectedData, currentStepIndex, totalSteps, initialComponent, onSendResponse, onComplete]);
107
+ const handleButtonClick = useCallback((buttonId, action) => {
108
+ // Navigate is handled inside ButtonsStep (Linking.openURL)
109
+ // For all other actions, just send the selection
110
+ handleStepComplete({
111
+ selected_button: buttonId
112
+ });
113
+ }, [handleStepComplete]);
114
+ return /*#__PURE__*/_jsxs(View, {
115
+ style: [styles.container, {
116
+ backgroundColor: theme.surfaceColor
117
+ }],
118
+ children: [showStepper && !confirmation ? /*#__PURE__*/_jsxs(View, {
119
+ style: styles.stepperContainer,
120
+ children: [/*#__PURE__*/_jsx(View, {
121
+ style: styles.stepperRow,
122
+ children: flowSteps.map((step, index) => /*#__PURE__*/_jsxs(View, {
123
+ style: styles.stepIndicatorGroup,
124
+ children: [/*#__PURE__*/_jsx(View, {
125
+ style: [styles.stepCircle, {
126
+ backgroundColor: stepCompleted[index] ? theme.successColor : index === currentStepIndex ? primarySolid : theme.borderColor
127
+ }],
128
+ children: /*#__PURE__*/_jsx(Text, {
129
+ style: [styles.stepCircleText, {
130
+ color: stepCompleted[index] || index === currentStepIndex ? theme.primaryTextColor : theme.mutedTextColor
131
+ }],
132
+ children: stepCompleted[index] ? "✓" : index + 1
133
+ })
134
+ }), index < flowSteps.length - 1 ? /*#__PURE__*/_jsx(View, {
135
+ style: [styles.stepConnector, {
136
+ backgroundColor: stepCompleted[index] ? theme.successColor : theme.borderColor
137
+ }]
138
+ }) : null]
139
+ }, step.id))
140
+ }), /*#__PURE__*/_jsx(Text, {
141
+ style: [styles.stepTitle, {
142
+ color: theme.textColor
143
+ }],
144
+ numberOfLines: 1,
145
+ children: currentStep.title || `Step ${currentStepIndex + 1} of ${totalSteps}`
146
+ })]
147
+ }) : null, /*#__PURE__*/_jsxs(View, {
148
+ style: styles.content,
149
+ children: [currentStepIndex > 0 && !confirmation ? /*#__PURE__*/_jsx(TouchableOpacity, {
150
+ onPress: handleBack,
151
+ style: styles.backButton,
152
+ activeOpacity: 0.7,
153
+ children: /*#__PURE__*/_jsx(Text, {
154
+ style: [styles.backText, {
155
+ color: theme.mutedTextColor
156
+ }],
157
+ children: "\u2190 Back"
158
+ })
159
+ }) : null, confirmation ? /*#__PURE__*/_jsx(ConfirmationStep, {
160
+ data: confirmation,
161
+ theme: theme,
162
+ collectedData: allCollectedData
163
+ }) : /*#__PURE__*/_jsxs(View, {
164
+ children: [isCalendarBooking(currentStep.component) ? /*#__PURE__*/_jsx(CalendarStep, {
165
+ payload: currentStep.component,
166
+ theme: theme,
167
+ isProcessing: isProcessing,
168
+ onComplete: (slotId, slotDatetime) => {
169
+ const tz = currentStep.component.data.timezone;
170
+ handleStepComplete({
171
+ slot_id: slotId,
172
+ slot_datetime: slotDatetime,
173
+ slot_time: formatSlotTime(slotDatetime, tz),
174
+ slot_date: formatSlotDate(slotDatetime, tz)
175
+ });
176
+ }
177
+ }) : null, isForm(currentStep.component) ? /*#__PURE__*/_jsx(FormStep, {
178
+ payload: currentStep.component,
179
+ theme: theme,
180
+ isProcessing: isProcessing,
181
+ onComplete: formData => handleStepComplete(formData)
182
+ }) : null, isButtons(currentStep.component) ? /*#__PURE__*/_jsx(ButtonsStep, {
183
+ payload: currentStep.component,
184
+ theme: theme,
185
+ isProcessing: isProcessing,
186
+ onButtonClick: handleButtonClick
187
+ }) : null, isConfirmation(currentStep.component) ? /*#__PURE__*/_jsx(ConfirmationStep, {
188
+ data: currentStep.component.data,
189
+ theme: theme
190
+ }) : null]
191
+ })]
192
+ })]
193
+ });
194
+ }
195
+ const styles = StyleSheet.create({
196
+ container: {
197
+ borderRadius: 12,
198
+ overflow: "hidden"
199
+ },
200
+ stepperContainer: {
201
+ paddingHorizontal: 14,
202
+ paddingTop: 14,
203
+ paddingBottom: 10
204
+ },
205
+ stepperRow: {
206
+ flexDirection: "row",
207
+ alignItems: "center",
208
+ gap: 4
209
+ },
210
+ stepIndicatorGroup: {
211
+ flexDirection: "row",
212
+ alignItems: "center",
213
+ flex: 1,
214
+ minWidth: 0
215
+ },
216
+ stepCircle: {
217
+ width: 24,
218
+ height: 24,
219
+ borderRadius: 12,
220
+ alignItems: "center",
221
+ justifyContent: "center"
222
+ },
223
+ stepCircleText: {
224
+ fontSize: 11,
225
+ fontWeight: "600"
226
+ },
227
+ stepConnector: {
228
+ flex: 1,
229
+ height: 2,
230
+ borderRadius: 1,
231
+ marginLeft: 4
232
+ },
233
+ stepTitle: {
234
+ fontSize: 11,
235
+ fontWeight: "500",
236
+ marginTop: 8
237
+ },
238
+ content: {
239
+ paddingHorizontal: 14,
240
+ paddingBottom: 14
241
+ },
242
+ backButton: {
243
+ marginBottom: 8
244
+ },
245
+ backText: {
246
+ fontSize: 12
247
+ }
248
+ });
249
+ //# sourceMappingURL=InteractiveFlow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useState","useCallback","useMemo","View","Text","TouchableOpacity","StyleSheet","isCalendarBooking","isForm","isButtons","isConfirmation","formatSlotTime","formatSlotDate","colorToSolid","CalendarStep","FormStep","ButtonsStep","ConfirmationStep","jsx","_jsx","jsxs","_jsxs","isInteractiveFlow","payload","component_type","InteractiveFlow","initialComponent","theme","onSendResponse","onComplete","isMultiStepFlow","primarySolid","primaryColor","flowSteps","data","steps","id","title","component","totalSteps","length","currentStepIndex","setCurrentStepIndex","isProcessing","setIsProcessing","allCollectedData","setAllCollectedData","confirmation","setConfirmation","stepCompleted","setStepCompleted","Array","fill","currentStep","showStepper","handleBack","prev","handleStepComplete","stepData","newAllData","updated","isLastStep","component_id","step_index","step_data","all_data","is_final_step","message","icon","error","handleButtonClick","buttonId","action","selected_button","style","styles","container","backgroundColor","surfaceColor","children","stepperContainer","stepperRow","map","step","index","stepIndicatorGroup","stepCircle","successColor","borderColor","stepCircleText","color","primaryTextColor","mutedTextColor","stepConnector","stepTitle","textColor","numberOfLines","content","onPress","backButton","activeOpacity","backText","collectedData","slotId","slotDatetime","tz","timezone","slot_id","slot_datetime","slot_time","slot_date","formData","onButtonClick","create","borderRadius","overflow","paddingHorizontal","paddingTop","paddingBottom","flexDirection","alignItems","gap","flex","minWidth","width","height","justifyContent","fontSize","fontWeight","marginLeft","marginTop","marginBottom"],"sourceRoot":"../../../../src","sources":["components/steps/InteractiveFlow.tsx"],"mappings":"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","ignoreList":[]}
@@ -49,7 +49,17 @@ export function useRinggComponents() {
49
49
  return unsub;
50
50
  }, [livekit]);
51
51
  const addComponent = useCallback(component => {
52
- setComponents(prev => [...prev, component]);
52
+ setComponents(prev => {
53
+ // Deduplicate by component_id — if the agent re-sends the same
54
+ // component (e.g. on every message), replace rather than stack.
55
+ const existingIndex = prev.findIndex(c => c.component_id === component.component_id);
56
+ if (existingIndex !== -1) {
57
+ const updated = [...prev];
58
+ updated[existingIndex] = component;
59
+ return updated;
60
+ }
61
+ return [...prev, component];
62
+ });
53
63
  eventBus.emit("ringg:calendar_booking", {
54
64
  status: "shown",
55
65
  componentId: component.component_id
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useRef","useState","transformRpcToComponent","formatComponentResponse","formatDiseaseSubmission","formatDiseaseSearch","formatSlashCommand","useRinggContext","useRinggComponents","livekit","eventBus","components","setComponents","lastSourceUrl","setLastSourceUrl","connState","setConnState","pendingResponses","Map","diseaseSearchResolver","unsub","onConnectionStateChange","state","getConnectionState","addComponent","component","prev","emit","status","componentId","component_id","registerRpcMethod","data","parsed","JSON","parse","payload","Array","isArray","source_urls","join","source_url","stringify","e","console","error","Error","component_type","componentType","message","componentName","replace","results","current","set","name","originalConfig","component_config","unregisterRpcMethod","respondToComponent","responseData","pendingInfo","get","agentIdentity","getAgentIdentity","method","performRpc","delete","err","searchDiseases","query","Promise","resolve","catch","submitDiseaseWidget","selections","sendSlashCommand","command","clearComponents","clear"],"sourceRoot":"../../../src","sources":["hooks/useRinggComponents.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useRef","useState","transformRpcToComponent","formatComponentResponse","formatDiseaseSubmission","formatDiseaseSearch","formatSlashCommand","useRinggContext","useRinggComponents","livekit","eventBus","components","setComponents","lastSourceUrl","setLastSourceUrl","connState","setConnState","pendingResponses","Map","diseaseSearchResolver","unsub","onConnectionStateChange","state","getConnectionState","addComponent","component","prev","existingIndex","findIndex","c","component_id","updated","emit","status","componentId","registerRpcMethod","data","parsed","JSON","parse","payload","Array","isArray","source_urls","join","source_url","stringify","e","console","error","Error","component_type","componentType","message","componentName","replace","results","current","set","name","originalConfig","component_config","unregisterRpcMethod","respondToComponent","responseData","pendingInfo","get","agentIdentity","getAgentIdentity","method","performRpc","delete","err","searchDiseases","query","Promise","resolve","catch","submitDiseaseWidget","selections","sendSlashCommand","command","clearComponents","clear"],"sourceRoot":"../../../src","sources":["hooks/useRinggComponents.ts"],"mappings":"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","ignoreList":[]}
@@ -44,6 +44,13 @@ export { CallControls } from "./components/ui/CallControls.js";
44
44
  export { FeedbackScreen } from "./components/ui/FeedbackScreen.js";
45
45
  export { TabSelector } from "./components/ui/TabSelector.js";
46
46
 
47
+ // ─── Interactive Step Components (for composition) ───────────────────────────
48
+ export { InteractiveFlow } from "./components/steps/InteractiveFlow.js";
49
+ export { CalendarStep } from "./components/steps/CalendarStep.js";
50
+ export { FormStep } from "./components/steps/FormStep.js";
51
+ export { ButtonsStep } from "./components/steps/ButtonsStep.js";
52
+ export { ConfirmationStep } from "./components/steps/ConfirmationStep.js";
53
+
47
54
  // ─── Icons (uses @expo/vector-icons — ships with every Expo project) ─────────
48
55
  export { PhoneCallRingIcon, PhoneCallIcon, PhoneEndCallIcon, MicrophoneIcon, MicOffIcon, ChatIcon, SendIcon, StarIcon, CloseIcon, MinusIcon, WidgetPhoneIcon } from "./components/ui/Icons.js";
49
56
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["RinggWidget","RinggProvider","useRinggContext","useRinggCall","useRinggChat","useRinggTranscripts","useRinggComponents","useRinggWidgetState","useRinggFeedback","useRinggTheme","LiveKitRNAdapter","DEFAULT_CONFIG","DEFAULT_WIDGET_THEME","WIDGET_PRESET_THEMES","mergeWidgetTheme","getButtonRadius","colorToSolid","isGradient","formatTimestamp","groupSlotsByDate","formatSlotTime","formatSlotDate","isAgentIdentity","filterSlashCommands","MessageBubble","WidgetHeader","ActionButton","CallControls","FeedbackScreen","TabSelector","PhoneCallRingIcon","PhoneCallIcon","PhoneEndCallIcon","MicrophoneIcon","MicOffIcon","ChatIcon","SendIcon","StarIcon","CloseIcon","MinusIcon","WidgetPhoneIcon"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAASA,WAAW,QAAQ,6BAA0B;AAGtD;AACA,SAASC,aAAa,EAAEC,eAAe,QAAQ,oBAAW;AAG1D;AACA,SAASC,YAAY,EAAEC,YAAY,EAAEC,mBAAmB,EAAEC,kBAAkB,EAAEC,mBAAmB,EAAEC,gBAAgB,EAAEC,aAAa,QAAQ,kBAAS;AAInJ;AACA,SAASC,gBAAgB,QAAQ,qBAAY;;AAE7C;;AAwBA,SACEC,cAAc,EACdC,oBAAoB,EACpBC,oBAAoB,EACpBC,gBAAgB,EAChBC,eAAe,EACfC,YAAY,EACZC,UAAU,EACVC,eAAe,EACfC,gBAAgB,EAChBC,cAAc,EACdC,cAAc,EACdC,eAAe,EACfC,mBAAmB,QACd,aAAa;;AAEpB;AACA,SAASC,aAAa,QAAQ,kCAA+B;AAC7D,SAASC,YAAY,QAAQ,iCAA8B;AAC3D,SAASC,YAAY,QAAQ,iCAA8B;AAC3D,SAASC,YAAY,QAAQ,iCAA8B;AAC3D,SAASC,cAAc,QAAQ,mCAAgC;AAC/D,SAASC,WAAW,QAAQ,gCAA6B;;AAEzD;AACA,SAASC,iBAAiB,EAAEC,aAAa,EAAEC,gBAAgB,EAAEC,cAAc,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,SAAS,EAAEC,eAAe,QAAQ,0BAAuB","ignoreList":[]}
1
+ {"version":3,"names":["RinggWidget","RinggProvider","useRinggContext","useRinggCall","useRinggChat","useRinggTranscripts","useRinggComponents","useRinggWidgetState","useRinggFeedback","useRinggTheme","LiveKitRNAdapter","DEFAULT_CONFIG","DEFAULT_WIDGET_THEME","WIDGET_PRESET_THEMES","mergeWidgetTheme","getButtonRadius","colorToSolid","isGradient","formatTimestamp","groupSlotsByDate","formatSlotTime","formatSlotDate","isAgentIdentity","filterSlashCommands","MessageBubble","WidgetHeader","ActionButton","CallControls","FeedbackScreen","TabSelector","InteractiveFlow","CalendarStep","FormStep","ButtonsStep","ConfirmationStep","PhoneCallRingIcon","PhoneCallIcon","PhoneEndCallIcon","MicrophoneIcon","MicOffIcon","ChatIcon","SendIcon","StarIcon","CloseIcon","MinusIcon","WidgetPhoneIcon"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAASA,WAAW,QAAQ,6BAA0B;AAGtD;AACA,SAASC,aAAa,EAAEC,eAAe,QAAQ,oBAAW;AAG1D;AACA,SAASC,YAAY,EAAEC,YAAY,EAAEC,mBAAmB,EAAEC,kBAAkB,EAAEC,mBAAmB,EAAEC,gBAAgB,EAAEC,aAAa,QAAQ,kBAAS;AAInJ;AACA,SAASC,gBAAgB,QAAQ,qBAAY;;AAE7C;;AAwBA,SACEC,cAAc,EACdC,oBAAoB,EACpBC,oBAAoB,EACpBC,gBAAgB,EAChBC,eAAe,EACfC,YAAY,EACZC,UAAU,EACVC,eAAe,EACfC,gBAAgB,EAChBC,cAAc,EACdC,cAAc,EACdC,eAAe,EACfC,mBAAmB,QACd,aAAa;;AAEpB;AACA,SAASC,aAAa,QAAQ,kCAA+B;AAC7D,SAASC,YAAY,QAAQ,iCAA8B;AAC3D,SAASC,YAAY,QAAQ,iCAA8B;AAC3D,SAASC,YAAY,QAAQ,iCAA8B;AAC3D,SAASC,cAAc,QAAQ,mCAAgC;AAC/D,SAASC,WAAW,QAAQ,gCAA6B;;AAEzD;AACA,SAASC,eAAe,QAAQ,uCAAoC;AACpE,SAASC,YAAY,QAAQ,oCAAiC;AAC9D,SAASC,QAAQ,QAAQ,gCAA6B;AACtD,SAASC,WAAW,QAAQ,mCAAgC;AAC5D,SAASC,gBAAgB,QAAQ,wCAAqC;;AAEtE;AACA,SAASC,iBAAiB,EAAEC,aAAa,EAAEC,gBAAgB,EAAEC,cAAc,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,SAAS,EAAEC,eAAe,QAAQ,0BAAuB","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"file":"RinggWidget.d.ts","sourceRoot":"","sources":["../../../src/components/RinggWidget.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,EAA4F,KAAK,mBAAmB,EAAqD,MAAM,cAAc,CAAC;AAKrM,OAAO,EAAkC,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAmBnG,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC;IAC5E,gDAAgD;IAChD,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAElC,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,WAAgB,EAAE,EAAE,gBAAgB,2CAMrG"}
1
+ {"version":3,"file":"RinggWidget.d.ts","sourceRoot":"","sources":["../../../src/components/RinggWidget.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAGH,OAAO,EAA4F,KAAK,mBAAmB,EAAqD,MAAM,cAAc,CAAC;AAKrM,OAAO,EAAkC,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAuBnG,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,kBAAkB,EAAE,UAAU,CAAC;IAC5E,gDAAgD;IAChD,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAElC,kDAAkD;IAClD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,WAAgB,EAAE,EAAE,gBAAgB,2CAMrG"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * ButtonsStep — renders a group of action buttons.
3
+ *
4
+ * 4 button styles: primary, secondary, outline, destructive.
5
+ * Supports navigate (external link) and api_call actions.
6
+ * Matches CDN buttons-step.tsx behavior.
7
+ */
8
+ import type { ButtonsPayload, ButtonItem, ResolvedWidgetTheme } from "@ringg/core";
9
+ interface ButtonsStepProps {
10
+ payload: ButtonsPayload;
11
+ theme: ResolvedWidgetTheme;
12
+ isProcessing?: boolean;
13
+ onButtonClick: (buttonId: string, action: ButtonItem["action"]) => void;
14
+ }
15
+ export declare function ButtonsStep({ payload, theme, isProcessing, onButtonClick }: ButtonsStepProps): import("react/jsx-runtime").JSX.Element;
16
+ export {};
17
+ //# sourceMappingURL=ButtonsStep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonsStep.d.ts","sourceRoot":"","sources":["../../../../src/components/steps/ButtonsStep.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGnF,UAAU,gBAAgB;IACxB,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;CACzE;AAED,wBAAgB,WAAW,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,EAAE,gBAAgB,2CAoG5F"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * CalendarStep — date & time slot picker for calendar_booking components.
3
+ *
4
+ * Displays available dates as horizontal pills, time slots in a 3-column grid,
5
+ * and a confirm button. Matches CDN calendar-step.tsx behavior.
6
+ */
7
+ import type { CalendarBookingPayload, ResolvedWidgetTheme } from "@ringg/core";
8
+ interface CalendarStepProps {
9
+ payload: CalendarBookingPayload;
10
+ theme: ResolvedWidgetTheme;
11
+ isProcessing?: boolean;
12
+ onComplete: (slotId: string, slotDatetime: string) => void;
13
+ }
14
+ export declare function CalendarStep({ payload, theme, isProcessing, onComplete }: CalendarStepProps): import("react/jsx-runtime").JSX.Element;
15
+ export {};
16
+ //# sourceMappingURL=CalendarStep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CalendarStep.d.ts","sourceRoot":"","sources":["../../../../src/components/steps/CalendarStep.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAG/E,UAAU,iBAAiB;IACzB,OAAO,EAAE,sBAAsB,CAAC;IAChC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;CAC5D;AAED,wBAAgB,YAAY,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,iBAAiB,2CAiI3F"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * ConfirmationStep — displays a success/info/warning/error confirmation.
3
+ *
4
+ * Shows an icon badge, title, message, and optional detail rows.
5
+ * Matches CDN confirmation-step.tsx behavior.
6
+ */
7
+ import type { ConfirmationData, ResolvedWidgetTheme } from "@ringg/core";
8
+ type FormValue = string | number | boolean | string[];
9
+ interface ConfirmationStepProps {
10
+ data: ConfirmationData;
11
+ theme: ResolvedWidgetTheme;
12
+ collectedData?: Record<string, FormValue>;
13
+ }
14
+ export declare function ConfirmationStep({ data, theme, collectedData }: ConfirmationStepProps): import("react/jsx-runtime").JSX.Element;
15
+ export {};
16
+ //# sourceMappingURL=ConfirmationStep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfirmationStep.d.ts","sourceRoot":"","sources":["../../../../src/components/steps/ConfirmationStep.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGzE,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC;AAEtD,UAAU,qBAAqB;IAC7B,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAC3C;AAED,wBAAgB,gBAAgB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE,qBAAqB,2CAyFrF"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * FormStep — dynamic form renderer supporting 9 field types with validation.
3
+ *
4
+ * Field types: text, email, tel, number, select, multiselect, textarea, date, boolean.
5
+ * Matches CDN form-step.tsx behavior.
6
+ */
7
+ import type { FormPayload, ResolvedWidgetTheme } from "@ringg/core";
8
+ type FormValue = string | number | boolean | string[];
9
+ interface FormStepProps {
10
+ payload: FormPayload;
11
+ theme: ResolvedWidgetTheme;
12
+ isProcessing?: boolean;
13
+ onComplete: (formData: Record<string, FormValue>) => void;
14
+ }
15
+ export declare function FormStep({ payload, theme, isProcessing, onComplete }: FormStepProps): import("react/jsx-runtime").JSX.Element;
16
+ export {};
17
+ //# sourceMappingURL=FormStep.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormStep.d.ts","sourceRoot":"","sources":["../../../../src/components/steps/FormStep.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAa,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAG/E,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC;AAEtD,UAAU,aAAa;IACrB,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,mBAAmB,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC;CAC3D;AAED,wBAAgB,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,aAAa,2CAgSnF"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * InteractiveFlow — orchestrator for interactive components.
3
+ *
4
+ * Handles:
5
+ * - Single components (calendar, form, buttons, confirmation)
6
+ * - Multi-step interactive flows with back/forward navigation
7
+ * - Step progress indicator
8
+ * - Post-completion confirmation screen
9
+ * - RPC response sending via onSendResponse callback
10
+ *
11
+ * Matches CDN interactive-flow.tsx behavior.
12
+ */
13
+ import type { SimpleComponentPayload, InteractiveFlowPayload, ResolvedWidgetTheme } from "@ringg/core";
14
+ type FormValue = string | number | boolean | string[];
15
+ interface InteractiveFlowProps {
16
+ initialComponent: SimpleComponentPayload | InteractiveFlowPayload;
17
+ theme: ResolvedWidgetTheme;
18
+ onSendResponse?: (componentId: string, responseData: Record<string, unknown>) => Promise<void>;
19
+ onComplete?: (allData: Record<string, FormValue>) => void;
20
+ }
21
+ export declare function InteractiveFlow({ initialComponent, theme, onSendResponse, onComplete }: InteractiveFlowProps): import("react/jsx-runtime").JSX.Element;
22
+ export {};
23
+ //# sourceMappingURL=InteractiveFlow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InteractiveFlow.d.ts","sourceRoot":"","sources":["../../../../src/components/steps/InteractiveFlow.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAKH,OAAO,KAAK,EAAE,sBAAsB,EAAE,sBAAsB,EAAoB,mBAAmB,EAAc,MAAM,aAAa,CAAC;AAQrI,KAAK,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,EAAE,CAAC;AAEtD,UAAU,oBAAoB;IAC5B,gBAAgB,EAAE,sBAAsB,GAAG,sBAAsB,CAAC;IAClE,KAAK,EAAE,mBAAmB,CAAC;IAC3B,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/F,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC;CAC3D;AAMD,wBAAgB,eAAe,CAAC,EAAE,gBAAgB,EAAE,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,EAAE,oBAAoB,2CAqM5G"}
@@ -1 +1 @@
1
- {"version":3,"file":"useRinggComponents.d.ts","sourceRoot":"","sources":["../../../src/hooks/useRinggComponents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,OAAO,KAAK,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,aAAa,EAAkC,MAAM,aAAa,CAAC;AAKjI,KAAK,gBAAgB,GAAG,sBAAsB,GAAG,sBAAsB,CAAC;AAOxE,MAAM,WAAW,wBAAwB;IACvC,mDAAmD;IACnD,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAE/B,8DAA8D;IAC9D,kBAAkB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAElG,iDAAiD;IACjD,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAE5D,iCAAiC;IACjC,mBAAmB,EAAE,CACnB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,KAAK,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,KAAK,CAAC;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC/D,CAAC,KACC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB,wCAAwC;IACxC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD,mDAAmD;IACnD,eAAe,EAAE,MAAM,IAAI,CAAC;IAE5B,6CAA6C;IAC7C,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,kBAAkB,IAAI,wBAAwB,CA+M7D"}
1
+ {"version":3,"file":"useRinggComponents.d.ts","sourceRoot":"","sources":["../../../src/hooks/useRinggComponents.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,OAAO,KAAK,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,aAAa,EAAkC,MAAM,aAAa,CAAC;AAKjI,KAAK,gBAAgB,GAAG,sBAAsB,GAAG,sBAAsB,CAAC;AAOxE,MAAM,WAAW,wBAAwB;IACvC,mDAAmD;IACnD,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAE/B,8DAA8D;IAC9D,kBAAkB,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAElG,iDAAiD;IACjD,cAAc,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IAE5D,iCAAiC;IACjC,mBAAmB,EAAE,CACnB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,KAAK,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,aAAa,EAAE,KAAK,CAAC;YAAE,WAAW,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC/D,CAAC,KACC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnB,wCAAwC;IACxC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAErD,mDAAmD;IACnD,eAAe,EAAE,MAAM,IAAI,CAAC;IAE5B,6CAA6C;IAC7C,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,wBAAgB,kBAAkB,IAAI,wBAAwB,CAyN7D"}
@@ -35,5 +35,10 @@ export { ActionButton } from "./components/ui/ActionButton";
35
35
  export { CallControls } from "./components/ui/CallControls";
36
36
  export { FeedbackScreen } from "./components/ui/FeedbackScreen";
37
37
  export { TabSelector } from "./components/ui/TabSelector";
38
+ export { InteractiveFlow } from "./components/steps/InteractiveFlow";
39
+ export { CalendarStep } from "./components/steps/CalendarStep";
40
+ export { FormStep } from "./components/steps/FormStep";
41
+ export { ButtonsStep } from "./components/steps/ButtonsStep";
42
+ export { ConfirmationStep } from "./components/steps/ConfirmationStep";
38
43
  export { PhoneCallRingIcon, PhoneCallIcon, PhoneEndCallIcon, MicrophoneIcon, MicOffIcon, ChatIcon, SendIcon, StarIcon, CloseIcon, MinusIcon, WidgetPhoneIcon } from "./components/ui/Icons";
39
44
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAGvE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEpJ,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAGnM,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9C,YAAY,EACV,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,sBAAsB,EACtB,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,uBAAuB,EACvB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,cAAc,EACd,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,eAAe,EACf,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG1D,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAGjE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC3D,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAGvE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEpJ,YAAY,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAGnM,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9C,YAAY,EACV,iBAAiB,EACjB,SAAS,EACT,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,WAAW,EACX,YAAY,EACZ,sBAAsB,EACtB,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,uBAAuB,EACvB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,cAAc,EACd,eAAe,GAChB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,YAAY,EACZ,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,eAAe,EACf,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAG1D,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AAGvE,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,gBAAgB,EAAE,cAAc,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ringg/react-native",
3
- "version": "0.0.1-alpha.7",
3
+ "version": "0.0.1-alpha.9",
4
4
  "private": false,
5
5
  "license": "MIT",
6
6
  "description": "Ringg AI widget for React Native — drop-in component and headless hooks for voice/text AI agents",
@@ -47,7 +47,7 @@
47
47
  "@livekit/react-native-expo-plugin": ">=1.0.0",
48
48
  "@config-plugins/react-native-webrtc": ">=9.0.0",
49
49
  "livekit-client": ">=2.0.0",
50
- "@ringg/core": "0.0.1-alpha.7"
50
+ "@ringg/core": "0.0.1-alpha.9"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@types/react": "^18.3.10",