@ringg/react-native 0.0.1-alpha.9 → 0.2.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/dist/index.d.mts +964 -0
- package/dist/index.d.ts +964 -0
- package/dist/index.js +1164 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +1129 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +24 -66
- package/LICENSE +0 -21
- package/README.md +0 -250
- package/app.plugin.js +0 -51
- package/lib/module/adapters/index.js +0 -4
- package/lib/module/adapters/index.js.map +0 -1
- package/lib/module/adapters/livekit-rn-adapter.js +0 -216
- package/lib/module/adapters/livekit-rn-adapter.js.map +0 -1
- package/lib/module/components/RinggWidget.js +0 -554
- package/lib/module/components/RinggWidget.js.map +0 -1
- package/lib/module/components/steps/ButtonsStep.js +0 -146
- package/lib/module/components/steps/ButtonsStep.js.map +0 -1
- package/lib/module/components/steps/CalendarStep.js +0 -190
- package/lib/module/components/steps/CalendarStep.js.map +0 -1
- package/lib/module/components/steps/ConfirmationStep.js +0 -175
- package/lib/module/components/steps/ConfirmationStep.js.map +0 -1
- package/lib/module/components/steps/FormStep.js +0 -346
- package/lib/module/components/steps/FormStep.js.map +0 -1
- package/lib/module/components/steps/InteractiveFlow.js +0 -249
- package/lib/module/components/steps/InteractiveFlow.js.map +0 -1
- package/lib/module/components/ui/ActionButton.js +0 -92
- package/lib/module/components/ui/ActionButton.js.map +0 -1
- package/lib/module/components/ui/CallControls.js +0 -168
- package/lib/module/components/ui/CallControls.js.map +0 -1
- package/lib/module/components/ui/FeedbackScreen.js +0 -180
- package/lib/module/components/ui/FeedbackScreen.js.map +0 -1
- package/lib/module/components/ui/Icons.js +0 -294
- package/lib/module/components/ui/Icons.js.map +0 -1
- package/lib/module/components/ui/MessageBubble.js +0 -80
- package/lib/module/components/ui/MessageBubble.js.map +0 -1
- package/lib/module/components/ui/TabSelector.js +0 -80
- package/lib/module/components/ui/TabSelector.js.map +0 -1
- package/lib/module/components/ui/WidgetHeader.js +0 -168
- package/lib/module/components/ui/WidgetHeader.js.map +0 -1
- package/lib/module/context/RinggProvider.js +0 -134
- package/lib/module/context/RinggProvider.js.map +0 -1
- package/lib/module/context/index.js +0 -4
- package/lib/module/context/index.js.map +0 -1
- package/lib/module/globals.d.js +0 -2
- package/lib/module/globals.d.js.map +0 -1
- package/lib/module/hooks/index.js +0 -10
- package/lib/module/hooks/index.js.map +0 -1
- package/lib/module/hooks/useRinggCall.js +0 -259
- package/lib/module/hooks/useRinggCall.js.map +0 -1
- package/lib/module/hooks/useRinggChat.js +0 -141
- package/lib/module/hooks/useRinggChat.js.map +0 -1
- package/lib/module/hooks/useRinggComponents.js +0 -236
- package/lib/module/hooks/useRinggComponents.js.map +0 -1
- package/lib/module/hooks/useRinggFeedback.js +0 -66
- package/lib/module/hooks/useRinggFeedback.js.map +0 -1
- package/lib/module/hooks/useRinggTheme.js +0 -39
- package/lib/module/hooks/useRinggTheme.js.map +0 -1
- package/lib/module/hooks/useRinggTranscripts.js +0 -70
- package/lib/module/hooks/useRinggTranscripts.js.map +0 -1
- package/lib/module/hooks/useRinggWidgetState.js +0 -51
- package/lib/module/hooks/useRinggWidgetState.js.map +0 -1
- package/lib/module/index.js +0 -56
- package/lib/module/index.js.map +0 -1
- package/lib/module/package.json +0 -1
- package/lib/typescript/adapters/index.d.ts +0 -2
- package/lib/typescript/adapters/index.d.ts.map +0 -1
- package/lib/typescript/adapters/livekit-rn-adapter.d.ts +0 -38
- package/lib/typescript/adapters/livekit-rn-adapter.d.ts.map +0 -1
- package/lib/typescript/components/RinggWidget.d.ts +0 -44
- package/lib/typescript/components/RinggWidget.d.ts.map +0 -1
- package/lib/typescript/components/steps/ButtonsStep.d.ts +0 -17
- package/lib/typescript/components/steps/ButtonsStep.d.ts.map +0 -1
- package/lib/typescript/components/steps/CalendarStep.d.ts +0 -16
- package/lib/typescript/components/steps/CalendarStep.d.ts.map +0 -1
- package/lib/typescript/components/steps/ConfirmationStep.d.ts +0 -16
- package/lib/typescript/components/steps/ConfirmationStep.d.ts.map +0 -1
- package/lib/typescript/components/steps/FormStep.d.ts +0 -17
- package/lib/typescript/components/steps/FormStep.d.ts.map +0 -1
- package/lib/typescript/components/steps/InteractiveFlow.d.ts +0 -23
- package/lib/typescript/components/steps/InteractiveFlow.d.ts.map +0 -1
- package/lib/typescript/components/ui/ActionButton.d.ts +0 -22
- package/lib/typescript/components/ui/ActionButton.d.ts.map +0 -1
- package/lib/typescript/components/ui/CallControls.d.ts +0 -22
- package/lib/typescript/components/ui/CallControls.d.ts.map +0 -1
- package/lib/typescript/components/ui/FeedbackScreen.d.ts +0 -24
- package/lib/typescript/components/ui/FeedbackScreen.d.ts.map +0 -1
- package/lib/typescript/components/ui/Icons.d.ts +0 -28
- package/lib/typescript/components/ui/Icons.d.ts.map +0 -1
- package/lib/typescript/components/ui/MessageBubble.d.ts +0 -17
- package/lib/typescript/components/ui/MessageBubble.d.ts.map +0 -1
- package/lib/typescript/components/ui/TabSelector.d.ts +0 -21
- package/lib/typescript/components/ui/TabSelector.d.ts.map +0 -1
- package/lib/typescript/components/ui/WidgetHeader.d.ts +0 -20
- package/lib/typescript/components/ui/WidgetHeader.d.ts.map +0 -1
- package/lib/typescript/context/RinggProvider.d.ts +0 -53
- package/lib/typescript/context/RinggProvider.d.ts.map +0 -1
- package/lib/typescript/context/index.d.ts +0 -3
- package/lib/typescript/context/index.d.ts.map +0 -1
- package/lib/typescript/hooks/index.d.ts +0 -15
- package/lib/typescript/hooks/index.d.ts.map +0 -1
- package/lib/typescript/hooks/useRinggCall.d.ts +0 -41
- package/lib/typescript/hooks/useRinggCall.d.ts.map +0 -1
- package/lib/typescript/hooks/useRinggChat.d.ts +0 -29
- package/lib/typescript/hooks/useRinggChat.d.ts.map +0 -1
- package/lib/typescript/hooks/useRinggComponents.d.ts +0 -52
- package/lib/typescript/hooks/useRinggComponents.d.ts.map +0 -1
- package/lib/typescript/hooks/useRinggFeedback.d.ts +0 -23
- package/lib/typescript/hooks/useRinggFeedback.d.ts.map +0 -1
- package/lib/typescript/hooks/useRinggTheme.d.ts +0 -40
- package/lib/typescript/hooks/useRinggTheme.d.ts.map +0 -1
- package/lib/typescript/hooks/useRinggTranscripts.d.ts +0 -30
- package/lib/typescript/hooks/useRinggTranscripts.d.ts.map +0 -1
- package/lib/typescript/hooks/useRinggWidgetState.d.ts +0 -38
- package/lib/typescript/hooks/useRinggWidgetState.d.ts.map +0 -1
- package/lib/typescript/index.d.ts +0 -44
- package/lib/typescript/index.d.ts.map +0 -1
- package/lib/typescript/package.json +0 -1
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* ButtonsStep — renders a group of action buttons.
|
|
5
|
-
*
|
|
6
|
-
* 4 button styles: primary, secondary, outline, destructive.
|
|
7
|
-
* Supports navigate (external link) and api_call actions.
|
|
8
|
-
* Matches CDN buttons-step.tsx behavior.
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
import React, { useState } from "react";
|
|
12
|
-
import { View, Text, TouchableOpacity, ActivityIndicator, Linking, StyleSheet } from "react-native";
|
|
13
|
-
import { colorToSolid, getButtonRadius } from "@ringg/core";
|
|
14
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
15
|
-
export function ButtonsStep({
|
|
16
|
-
payload,
|
|
17
|
-
theme,
|
|
18
|
-
isProcessing,
|
|
19
|
-
onButtonClick
|
|
20
|
-
}) {
|
|
21
|
-
const {
|
|
22
|
-
data
|
|
23
|
-
} = payload;
|
|
24
|
-
const buttonRadius = parseInt(getButtonRadius(theme.buttonStyle), 10) || 8;
|
|
25
|
-
const primarySolid = colorToSolid(theme.primaryColor);
|
|
26
|
-
const [loadingButtonId, setLoadingButtonId] = useState(null);
|
|
27
|
-
const handleClick = async button => {
|
|
28
|
-
if (button.action.type === "navigate" && button.action.url) {
|
|
29
|
-
Linking.openURL(button.action.url).catch(() => {});
|
|
30
|
-
onButtonClick(button.id, button.action);
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
setLoadingButtonId(button.id);
|
|
34
|
-
try {
|
|
35
|
-
onButtonClick(button.id, button.action);
|
|
36
|
-
} finally {
|
|
37
|
-
setLoadingButtonId(null);
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
const getButtonStyles = style => {
|
|
41
|
-
switch (style) {
|
|
42
|
-
case "secondary":
|
|
43
|
-
return {
|
|
44
|
-
backgroundColor: theme.surfaceColor,
|
|
45
|
-
borderColor: theme.borderColor,
|
|
46
|
-
borderWidth: 1
|
|
47
|
-
};
|
|
48
|
-
case "outline":
|
|
49
|
-
return {
|
|
50
|
-
backgroundColor: "transparent",
|
|
51
|
-
borderColor: primarySolid,
|
|
52
|
-
borderWidth: 2
|
|
53
|
-
};
|
|
54
|
-
case "destructive":
|
|
55
|
-
return {
|
|
56
|
-
backgroundColor: theme.errorColor
|
|
57
|
-
};
|
|
58
|
-
case "primary":
|
|
59
|
-
default:
|
|
60
|
-
return {
|
|
61
|
-
backgroundColor: primarySolid
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
const getTextColor = style => {
|
|
66
|
-
switch (style) {
|
|
67
|
-
case "secondary":
|
|
68
|
-
return theme.textColor;
|
|
69
|
-
case "outline":
|
|
70
|
-
return primarySolid;
|
|
71
|
-
case "destructive":
|
|
72
|
-
case "primary":
|
|
73
|
-
default:
|
|
74
|
-
return theme.primaryTextColor;
|
|
75
|
-
}
|
|
76
|
-
};
|
|
77
|
-
return /*#__PURE__*/_jsxs(View, {
|
|
78
|
-
children: [data.title ? /*#__PURE__*/_jsx(Text, {
|
|
79
|
-
style: [styles.title, {
|
|
80
|
-
color: theme.textColor
|
|
81
|
-
}],
|
|
82
|
-
children: data.title
|
|
83
|
-
}) : null, /*#__PURE__*/_jsx(View, {
|
|
84
|
-
style: styles.buttonsColumn,
|
|
85
|
-
children: data.buttons.map(button => {
|
|
86
|
-
const isLoading = loadingButtonId === button.id;
|
|
87
|
-
const isDisabled = isLoading || !!isProcessing;
|
|
88
|
-
const btnStyles = getButtonStyles(button.style);
|
|
89
|
-
const textColor = getTextColor(button.style);
|
|
90
|
-
return /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
91
|
-
onPress: () => handleClick(button),
|
|
92
|
-
disabled: isDisabled,
|
|
93
|
-
style: [styles.button, {
|
|
94
|
-
borderRadius: buttonRadius,
|
|
95
|
-
...btnStyles,
|
|
96
|
-
opacity: isDisabled ? 0.5 : 1
|
|
97
|
-
}],
|
|
98
|
-
activeOpacity: 0.9,
|
|
99
|
-
children: isLoading ? /*#__PURE__*/_jsxs(View, {
|
|
100
|
-
style: styles.loadingRow,
|
|
101
|
-
children: [/*#__PURE__*/_jsx(ActivityIndicator, {
|
|
102
|
-
color: textColor,
|
|
103
|
-
size: "small"
|
|
104
|
-
}), /*#__PURE__*/_jsx(Text, {
|
|
105
|
-
style: [styles.buttonText, {
|
|
106
|
-
color: textColor
|
|
107
|
-
}],
|
|
108
|
-
children: "Loading..."
|
|
109
|
-
})]
|
|
110
|
-
}) : /*#__PURE__*/_jsx(Text, {
|
|
111
|
-
style: [styles.buttonText, {
|
|
112
|
-
color: textColor
|
|
113
|
-
}],
|
|
114
|
-
children: button.label
|
|
115
|
-
})
|
|
116
|
-
}, button.id);
|
|
117
|
-
})
|
|
118
|
-
})]
|
|
119
|
-
});
|
|
120
|
-
}
|
|
121
|
-
const styles = StyleSheet.create({
|
|
122
|
-
title: {
|
|
123
|
-
fontSize: 14,
|
|
124
|
-
fontWeight: "500",
|
|
125
|
-
marginBottom: 10
|
|
126
|
-
},
|
|
127
|
-
buttonsColumn: {
|
|
128
|
-
gap: 8
|
|
129
|
-
},
|
|
130
|
-
button: {
|
|
131
|
-
height: 36,
|
|
132
|
-
alignItems: "center",
|
|
133
|
-
justifyContent: "center",
|
|
134
|
-
flexDirection: "row"
|
|
135
|
-
},
|
|
136
|
-
loadingRow: {
|
|
137
|
-
flexDirection: "row",
|
|
138
|
-
alignItems: "center",
|
|
139
|
-
gap: 8
|
|
140
|
-
},
|
|
141
|
-
buttonText: {
|
|
142
|
-
fontSize: 13,
|
|
143
|
-
fontWeight: "600"
|
|
144
|
-
}
|
|
145
|
-
});
|
|
146
|
-
//# sourceMappingURL=ButtonsStep.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","View","Text","TouchableOpacity","ActivityIndicator","Linking","StyleSheet","colorToSolid","getButtonRadius","jsx","_jsx","jsxs","_jsxs","ButtonsStep","payload","theme","isProcessing","onButtonClick","data","buttonRadius","parseInt","buttonStyle","primarySolid","primaryColor","loadingButtonId","setLoadingButtonId","handleClick","button","action","type","url","openURL","catch","id","getButtonStyles","style","backgroundColor","surfaceColor","borderColor","borderWidth","errorColor","getTextColor","textColor","primaryTextColor","children","title","styles","color","buttonsColumn","buttons","map","isLoading","isDisabled","btnStyles","onPress","disabled","borderRadius","opacity","activeOpacity","loadingRow","size","buttonText","label","create","fontSize","fontWeight","marginBottom","gap","height","alignItems","justifyContent","flexDirection"],"sourceRoot":"../../../../src","sources":["components/steps/ButtonsStep.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* CalendarStep — date & time slot picker for calendar_booking components.
|
|
5
|
-
*
|
|
6
|
-
* Displays available dates as horizontal pills, time slots in a 3-column grid,
|
|
7
|
-
* and a confirm button. Matches CDN calendar-step.tsx behavior.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import React, { useState, useMemo } from "react";
|
|
11
|
-
import { View, Text, TouchableOpacity, ScrollView, ActivityIndicator, StyleSheet } from "react-native";
|
|
12
|
-
import { groupSlotsByDate, formatSlotTime, colorToSolid, getButtonRadius } from "@ringg/core";
|
|
13
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
|
-
export function CalendarStep({
|
|
15
|
-
payload,
|
|
16
|
-
theme,
|
|
17
|
-
isProcessing,
|
|
18
|
-
onComplete
|
|
19
|
-
}) {
|
|
20
|
-
const {
|
|
21
|
-
data
|
|
22
|
-
} = payload;
|
|
23
|
-
const groupedSlots = useMemo(() => groupSlotsByDate(data.available_slots), [data.available_slots]);
|
|
24
|
-
const [selectedDate, setSelectedDate] = useState(groupedSlots[0]?.date || "");
|
|
25
|
-
const [selectedSlot, setSelectedSlot] = useState(null);
|
|
26
|
-
const selectedDateGroup = groupedSlots.find(g => g.date === selectedDate);
|
|
27
|
-
const buttonRadius = parseInt(getButtonRadius(theme.buttonStyle), 10) || 8;
|
|
28
|
-
const primarySolid = colorToSolid(theme.primaryColor);
|
|
29
|
-
const handleConfirm = () => {
|
|
30
|
-
if (selectedSlot) {
|
|
31
|
-
onComplete(selectedSlot.id, selectedSlot.datetime);
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
return /*#__PURE__*/_jsxs(View, {
|
|
35
|
-
children: [/*#__PURE__*/_jsx(Text, {
|
|
36
|
-
style: [styles.title, {
|
|
37
|
-
color: theme.textColor
|
|
38
|
-
}],
|
|
39
|
-
children: data.title
|
|
40
|
-
}), /*#__PURE__*/_jsxs(Text, {
|
|
41
|
-
style: [styles.timezone, {
|
|
42
|
-
color: theme.mutedTextColor
|
|
43
|
-
}],
|
|
44
|
-
children: ["Timezone: ", data.timezone]
|
|
45
|
-
}), /*#__PURE__*/_jsx(Text, {
|
|
46
|
-
style: [styles.sectionLabel, {
|
|
47
|
-
color: theme.mutedTextColor
|
|
48
|
-
}],
|
|
49
|
-
children: "SELECT DATE"
|
|
50
|
-
}), /*#__PURE__*/_jsx(ScrollView, {
|
|
51
|
-
horizontal: true,
|
|
52
|
-
showsHorizontalScrollIndicator: false,
|
|
53
|
-
style: styles.datePillsRow,
|
|
54
|
-
children: groupedSlots.map(group => {
|
|
55
|
-
const isActive = selectedDate === group.date;
|
|
56
|
-
return /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
57
|
-
onPress: () => {
|
|
58
|
-
setSelectedDate(group.date);
|
|
59
|
-
setSelectedSlot(null);
|
|
60
|
-
},
|
|
61
|
-
style: [styles.datePill, {
|
|
62
|
-
borderRadius: buttonRadius,
|
|
63
|
-
backgroundColor: isActive ? primarySolid : "#ffffff",
|
|
64
|
-
borderColor: isActive ? primarySolid : theme.borderColor,
|
|
65
|
-
borderWidth: 1
|
|
66
|
-
}],
|
|
67
|
-
activeOpacity: 0.8,
|
|
68
|
-
children: /*#__PURE__*/_jsx(Text, {
|
|
69
|
-
style: [styles.datePillText, {
|
|
70
|
-
color: isActive ? theme.primaryTextColor : theme.textColor
|
|
71
|
-
}],
|
|
72
|
-
children: group.dateLabel
|
|
73
|
-
})
|
|
74
|
-
}, group.date);
|
|
75
|
-
})
|
|
76
|
-
}), selectedDateGroup && /*#__PURE__*/_jsxs(View, {
|
|
77
|
-
children: [/*#__PURE__*/_jsx(Text, {
|
|
78
|
-
style: [styles.sectionLabel, {
|
|
79
|
-
color: theme.mutedTextColor
|
|
80
|
-
}],
|
|
81
|
-
children: "SELECT TIME"
|
|
82
|
-
}), /*#__PURE__*/_jsx(View, {
|
|
83
|
-
style: styles.slotsGrid,
|
|
84
|
-
children: selectedDateGroup.slots.map(slot => {
|
|
85
|
-
const isActive = selectedSlot?.id === slot.id;
|
|
86
|
-
return /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
87
|
-
onPress: () => setSelectedSlot(slot),
|
|
88
|
-
style: [styles.slotButton, {
|
|
89
|
-
borderRadius: buttonRadius,
|
|
90
|
-
backgroundColor: isActive ? primarySolid : "#ffffff",
|
|
91
|
-
borderColor: isActive ? primarySolid : theme.borderColor,
|
|
92
|
-
borderWidth: 1
|
|
93
|
-
}],
|
|
94
|
-
activeOpacity: 0.8,
|
|
95
|
-
children: /*#__PURE__*/_jsx(Text, {
|
|
96
|
-
style: [styles.slotText, {
|
|
97
|
-
color: isActive ? theme.primaryTextColor : theme.textColor
|
|
98
|
-
}],
|
|
99
|
-
children: formatSlotTime(slot.datetime, data.timezone)
|
|
100
|
-
})
|
|
101
|
-
}, slot.id);
|
|
102
|
-
})
|
|
103
|
-
})]
|
|
104
|
-
}), /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
105
|
-
onPress: handleConfirm,
|
|
106
|
-
disabled: !selectedSlot || isProcessing,
|
|
107
|
-
style: [styles.confirmButton, {
|
|
108
|
-
borderRadius: buttonRadius,
|
|
109
|
-
backgroundColor: !selectedSlot || isProcessing ? theme.borderColor : primarySolid
|
|
110
|
-
}],
|
|
111
|
-
activeOpacity: 0.9,
|
|
112
|
-
children: isProcessing ? /*#__PURE__*/_jsxs(View, {
|
|
113
|
-
style: styles.loadingRow,
|
|
114
|
-
children: [/*#__PURE__*/_jsx(ActivityIndicator, {
|
|
115
|
-
color: theme.primaryTextColor,
|
|
116
|
-
size: "small"
|
|
117
|
-
}), /*#__PURE__*/_jsx(Text, {
|
|
118
|
-
style: [styles.confirmText, {
|
|
119
|
-
color: theme.primaryTextColor
|
|
120
|
-
}],
|
|
121
|
-
children: "Processing..."
|
|
122
|
-
})]
|
|
123
|
-
}) : /*#__PURE__*/_jsx(Text, {
|
|
124
|
-
style: [styles.confirmText, {
|
|
125
|
-
color: !selectedSlot ? theme.mutedTextColor : theme.primaryTextColor
|
|
126
|
-
}],
|
|
127
|
-
children: "Next"
|
|
128
|
-
})
|
|
129
|
-
})]
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
const styles = StyleSheet.create({
|
|
133
|
-
title: {
|
|
134
|
-
fontSize: 14,
|
|
135
|
-
fontWeight: "500",
|
|
136
|
-
marginBottom: 4
|
|
137
|
-
},
|
|
138
|
-
timezone: {
|
|
139
|
-
fontSize: 11,
|
|
140
|
-
marginBottom: 10
|
|
141
|
-
},
|
|
142
|
-
sectionLabel: {
|
|
143
|
-
fontSize: 10,
|
|
144
|
-
fontWeight: "600",
|
|
145
|
-
letterSpacing: 0.8,
|
|
146
|
-
marginBottom: 6
|
|
147
|
-
},
|
|
148
|
-
datePillsRow: {
|
|
149
|
-
marginBottom: 12
|
|
150
|
-
},
|
|
151
|
-
datePill: {
|
|
152
|
-
paddingHorizontal: 12,
|
|
153
|
-
paddingVertical: 8,
|
|
154
|
-
marginRight: 8
|
|
155
|
-
},
|
|
156
|
-
datePillText: {
|
|
157
|
-
fontSize: 12,
|
|
158
|
-
fontWeight: "600"
|
|
159
|
-
},
|
|
160
|
-
slotsGrid: {
|
|
161
|
-
flexDirection: "row",
|
|
162
|
-
flexWrap: "wrap",
|
|
163
|
-
gap: 6,
|
|
164
|
-
marginBottom: 12
|
|
165
|
-
},
|
|
166
|
-
slotButton: {
|
|
167
|
-
width: "31%",
|
|
168
|
-
paddingVertical: 8,
|
|
169
|
-
alignItems: "center"
|
|
170
|
-
},
|
|
171
|
-
slotText: {
|
|
172
|
-
fontSize: 12,
|
|
173
|
-
fontWeight: "500"
|
|
174
|
-
},
|
|
175
|
-
confirmButton: {
|
|
176
|
-
height: 36,
|
|
177
|
-
alignItems: "center",
|
|
178
|
-
justifyContent: "center"
|
|
179
|
-
},
|
|
180
|
-
loadingRow: {
|
|
181
|
-
flexDirection: "row",
|
|
182
|
-
alignItems: "center",
|
|
183
|
-
gap: 8
|
|
184
|
-
},
|
|
185
|
-
confirmText: {
|
|
186
|
-
fontSize: 13,
|
|
187
|
-
fontWeight: "600"
|
|
188
|
-
}
|
|
189
|
-
});
|
|
190
|
-
//# sourceMappingURL=CalendarStep.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","useMemo","View","Text","TouchableOpacity","ScrollView","ActivityIndicator","StyleSheet","groupSlotsByDate","formatSlotTime","colorToSolid","getButtonRadius","jsx","_jsx","jsxs","_jsxs","CalendarStep","payload","theme","isProcessing","onComplete","data","groupedSlots","available_slots","selectedDate","setSelectedDate","date","selectedSlot","setSelectedSlot","selectedDateGroup","find","g","buttonRadius","parseInt","buttonStyle","primarySolid","primaryColor","handleConfirm","id","datetime","children","style","styles","title","color","textColor","timezone","mutedTextColor","sectionLabel","horizontal","showsHorizontalScrollIndicator","datePillsRow","map","group","isActive","onPress","datePill","borderRadius","backgroundColor","borderColor","borderWidth","activeOpacity","datePillText","primaryTextColor","dateLabel","slotsGrid","slots","slot","slotButton","slotText","disabled","confirmButton","loadingRow","size","confirmText","create","fontSize","fontWeight","marginBottom","letterSpacing","paddingHorizontal","paddingVertical","marginRight","flexDirection","flexWrap","gap","width","alignItems","height","justifyContent"],"sourceRoot":"../../../../src","sources":["components/steps/CalendarStep.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,175 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* ConfirmationStep — displays a success/info/warning/error confirmation.
|
|
5
|
-
*
|
|
6
|
-
* Shows an icon badge, title, message, and optional detail rows.
|
|
7
|
-
* Matches CDN confirmation-step.tsx behavior.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import React from "react";
|
|
11
|
-
import { View, Text, StyleSheet } from "react-native";
|
|
12
|
-
import { colorToSolid } from "@ringg/core";
|
|
13
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
14
|
-
export function ConfirmationStep({
|
|
15
|
-
data,
|
|
16
|
-
theme,
|
|
17
|
-
collectedData
|
|
18
|
-
}) {
|
|
19
|
-
const iconType = data.icon || "success";
|
|
20
|
-
const getIconConfig = () => {
|
|
21
|
-
switch (iconType) {
|
|
22
|
-
case "success":
|
|
23
|
-
return {
|
|
24
|
-
emoji: "✓",
|
|
25
|
-
bgColor: theme.successColor
|
|
26
|
-
};
|
|
27
|
-
case "info":
|
|
28
|
-
return {
|
|
29
|
-
emoji: "i",
|
|
30
|
-
bgColor: colorToSolid(theme.primaryColor)
|
|
31
|
-
};
|
|
32
|
-
case "warning":
|
|
33
|
-
return {
|
|
34
|
-
emoji: "!",
|
|
35
|
-
bgColor: "#f59e0b"
|
|
36
|
-
};
|
|
37
|
-
case "error":
|
|
38
|
-
return {
|
|
39
|
-
emoji: "✕",
|
|
40
|
-
bgColor: theme.errorColor
|
|
41
|
-
};
|
|
42
|
-
default:
|
|
43
|
-
return {
|
|
44
|
-
emoji: "✓",
|
|
45
|
-
bgColor: theme.successColor
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
};
|
|
49
|
-
const {
|
|
50
|
-
emoji,
|
|
51
|
-
bgColor
|
|
52
|
-
} = getIconConfig();
|
|
53
|
-
|
|
54
|
-
// Build details to show
|
|
55
|
-
const priorityKeys = ["slot_date", "slot_time", "name", "email", "phone"];
|
|
56
|
-
const formatValue = value => {
|
|
57
|
-
if (Array.isArray(value)) return value.join(", ");
|
|
58
|
-
if (typeof value === "boolean") return value ? "Yes" : "No";
|
|
59
|
-
return String(value);
|
|
60
|
-
};
|
|
61
|
-
const formattedCollectedData = collectedData ? Object.entries(collectedData).filter(([key]) => priorityKeys.includes(key)).sort((a, b) => priorityKeys.indexOf(a[0]) - priorityKeys.indexOf(b[0])).map(([key, value]) => ({
|
|
62
|
-
label: key.replace(/slot_/g, "").replace(/_/g, " ").replace(/\b\w/g, l => l.toUpperCase()),
|
|
63
|
-
value: formatValue(value)
|
|
64
|
-
})) : [];
|
|
65
|
-
const detailsToShow = data.details && data.details.length > 0 ? data.details : formattedCollectedData;
|
|
66
|
-
return /*#__PURE__*/_jsxs(View, {
|
|
67
|
-
style: styles.container,
|
|
68
|
-
children: [/*#__PURE__*/_jsxs(View, {
|
|
69
|
-
style: styles.headerRow,
|
|
70
|
-
children: [/*#__PURE__*/_jsx(View, {
|
|
71
|
-
style: [styles.iconBadge, {
|
|
72
|
-
backgroundColor: bgColor
|
|
73
|
-
}],
|
|
74
|
-
children: /*#__PURE__*/_jsx(Text, {
|
|
75
|
-
style: styles.iconText,
|
|
76
|
-
children: emoji
|
|
77
|
-
})
|
|
78
|
-
}), /*#__PURE__*/_jsxs(View, {
|
|
79
|
-
style: styles.headerText,
|
|
80
|
-
children: [/*#__PURE__*/_jsx(Text, {
|
|
81
|
-
style: [styles.title, {
|
|
82
|
-
color: theme.textColor
|
|
83
|
-
}],
|
|
84
|
-
children: data.title
|
|
85
|
-
}), data.message ? /*#__PURE__*/_jsx(Text, {
|
|
86
|
-
style: [styles.message, {
|
|
87
|
-
color: theme.mutedTextColor
|
|
88
|
-
}],
|
|
89
|
-
children: data.message
|
|
90
|
-
}) : null]
|
|
91
|
-
})]
|
|
92
|
-
}), detailsToShow.length > 0 ? /*#__PURE__*/_jsx(View, {
|
|
93
|
-
style: [styles.detailsCard, {
|
|
94
|
-
backgroundColor: theme.surfaceColor,
|
|
95
|
-
borderColor: theme.borderColor
|
|
96
|
-
}],
|
|
97
|
-
children: detailsToShow.slice(0, 4).map((detail, index) => /*#__PURE__*/_jsxs(View, {
|
|
98
|
-
style: [styles.detailRow, index > 0 && {
|
|
99
|
-
borderTopWidth: StyleSheet.hairlineWidth,
|
|
100
|
-
borderTopColor: theme.borderColor
|
|
101
|
-
}],
|
|
102
|
-
children: [/*#__PURE__*/_jsx(Text, {
|
|
103
|
-
style: [styles.detailLabel, {
|
|
104
|
-
color: theme.mutedTextColor
|
|
105
|
-
}],
|
|
106
|
-
children: detail.label
|
|
107
|
-
}), /*#__PURE__*/_jsx(Text, {
|
|
108
|
-
style: [styles.detailValue, {
|
|
109
|
-
color: theme.textColor
|
|
110
|
-
}],
|
|
111
|
-
numberOfLines: 1,
|
|
112
|
-
children: detail.value
|
|
113
|
-
})]
|
|
114
|
-
}, index))
|
|
115
|
-
}) : null]
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
const styles = StyleSheet.create({
|
|
119
|
-
container: {
|
|
120
|
-
paddingVertical: 4
|
|
121
|
-
},
|
|
122
|
-
headerRow: {
|
|
123
|
-
flexDirection: "row",
|
|
124
|
-
alignItems: "flex-start",
|
|
125
|
-
gap: 10,
|
|
126
|
-
marginBottom: 12
|
|
127
|
-
},
|
|
128
|
-
iconBadge: {
|
|
129
|
-
width: 32,
|
|
130
|
-
height: 32,
|
|
131
|
-
borderRadius: 16,
|
|
132
|
-
alignItems: "center",
|
|
133
|
-
justifyContent: "center"
|
|
134
|
-
},
|
|
135
|
-
iconText: {
|
|
136
|
-
color: "#ffffff",
|
|
137
|
-
fontSize: 16,
|
|
138
|
-
fontWeight: "700"
|
|
139
|
-
},
|
|
140
|
-
headerText: {
|
|
141
|
-
flex: 1,
|
|
142
|
-
paddingTop: 2
|
|
143
|
-
},
|
|
144
|
-
title: {
|
|
145
|
-
fontSize: 14,
|
|
146
|
-
fontWeight: "600"
|
|
147
|
-
},
|
|
148
|
-
message: {
|
|
149
|
-
fontSize: 12,
|
|
150
|
-
marginTop: 2,
|
|
151
|
-
lineHeight: 18
|
|
152
|
-
},
|
|
153
|
-
detailsCard: {
|
|
154
|
-
borderRadius: 8,
|
|
155
|
-
borderWidth: StyleSheet.hairlineWidth,
|
|
156
|
-
overflow: "hidden"
|
|
157
|
-
},
|
|
158
|
-
detailRow: {
|
|
159
|
-
flexDirection: "row",
|
|
160
|
-
alignItems: "center",
|
|
161
|
-
paddingHorizontal: 12,
|
|
162
|
-
paddingVertical: 10,
|
|
163
|
-
gap: 8
|
|
164
|
-
},
|
|
165
|
-
detailLabel: {
|
|
166
|
-
fontSize: 11,
|
|
167
|
-
flexShrink: 0
|
|
168
|
-
},
|
|
169
|
-
detailValue: {
|
|
170
|
-
fontSize: 12,
|
|
171
|
-
fontWeight: "500",
|
|
172
|
-
marginLeft: "auto"
|
|
173
|
-
}
|
|
174
|
-
});
|
|
175
|
-
//# sourceMappingURL=ConfirmationStep.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["React","View","Text","StyleSheet","colorToSolid","jsx","_jsx","jsxs","_jsxs","ConfirmationStep","data","theme","collectedData","iconType","icon","getIconConfig","emoji","bgColor","successColor","primaryColor","errorColor","priorityKeys","formatValue","value","Array","isArray","join","String","formattedCollectedData","Object","entries","filter","key","includes","sort","a","b","indexOf","map","label","replace","l","toUpperCase","detailsToShow","details","length","style","styles","container","children","headerRow","iconBadge","backgroundColor","iconText","headerText","title","color","textColor","message","mutedTextColor","detailsCard","surfaceColor","borderColor","slice","detail","index","detailRow","borderTopWidth","hairlineWidth","borderTopColor","detailLabel","detailValue","numberOfLines","create","paddingVertical","flexDirection","alignItems","gap","marginBottom","width","height","borderRadius","justifyContent","fontSize","fontWeight","flex","paddingTop","marginTop","lineHeight","borderWidth","overflow","paddingHorizontal","flexShrink","marginLeft"],"sourceRoot":"../../../../src","sources":["components/steps/ConfirmationStep.tsx"],"mappings":"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","ignoreList":[]}
|