medos-sdk 1.1.11 → 1.1.12

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 (195) hide show
  1. package/dist/client/MedosClient.js +1 -1
  2. package/dist/components/appointment-booking/AppointmentCalender.js +10 -72
  3. package/dist/components/appointment-booking/appointment-modal-styles.d.ts +272 -0
  4. package/dist/components/appointment-booking/appointment-modal-styles.js +419 -0
  5. package/dist/components/appointment-booking/components/AppointmentConfirmationStep.d.ts +28 -0
  6. package/dist/components/appointment-booking/components/AppointmentConfirmationStep.js +107 -0
  7. package/dist/components/appointment-booking/components/AppointmentDateTimeModal.d.ts +18 -0
  8. package/dist/components/appointment-booking/components/AppointmentDateTimeModal.js +306 -0
  9. package/dist/components/appointment-booking/components/AppointmentSummaryStep.d.ts +12 -0
  10. package/dist/components/appointment-booking/components/AppointmentSummaryStep.js +194 -0
  11. package/dist/components/appointment-booking/components/BookingOptionStep.d.ts +14 -0
  12. package/dist/components/appointment-booking/components/BookingOptionStep.js +350 -0
  13. package/dist/components/appointment-booking/components/DoctorSelectModal.d.ts +14 -0
  14. package/dist/components/appointment-booking/components/DoctorSelectModal.js +213 -0
  15. package/dist/components/appointment-booking/components/PatientDetailsStep.d.ts +3 -0
  16. package/dist/components/appointment-booking/components/PatientDetailsStep.js +96 -0
  17. package/dist/components/appointment-booking/components/PatientSelectionStep.d.ts +12 -0
  18. package/dist/components/appointment-booking/components/PatientSelectionStep.js +254 -0
  19. package/dist/components/appointment-booking/components/PhoneVerificationStep.d.ts +3 -0
  20. package/dist/components/appointment-booking/components/PhoneVerificationStep.js +49 -0
  21. package/dist/components/appointment-booking/components/SuccessStep.d.ts +5 -0
  22. package/dist/components/appointment-booking/components/SuccessStep.js +9 -0
  23. package/dist/components/appointment-booking/components/index.d.ts +9 -0
  24. package/dist/components/appointment-booking/components/index.js +9 -0
  25. package/dist/components/appointment-booking/hooks/useAppointmentFlow.js +1 -0
  26. package/dist/components/appointment-booking/index.d.ts +2 -4
  27. package/dist/components/appointment-booking/index.js +2 -2
  28. package/dist/components/appointment-booking/types.d.ts +4 -0
  29. package/dist/components/constants/constant.d.ts +2 -0
  30. package/dist/components/constants/constant.js +15 -0
  31. package/dist/components/constants/index.d.ts +3 -0
  32. package/dist/components/constants/index.js +24 -0
  33. package/dist/components/constants/options.d.ts +13 -0
  34. package/dist/components/constants/options.js +35 -0
  35. package/dist/components/constants/validation.d.ts +6 -0
  36. package/dist/components/constants/validation.js +16 -0
  37. package/dist/components/enquiry-form/EnquiryForm.d.ts +7 -0
  38. package/dist/components/enquiry-form/EnquiryForm.js +238 -0
  39. package/dist/components/enquiry-form/components/ContactInformationStep.d.ts +13 -0
  40. package/dist/components/enquiry-form/components/ContactInformationStep.js +21 -0
  41. package/dist/components/enquiry-form/components/ContactPreferenceStep.d.ts +9 -0
  42. package/dist/components/enquiry-form/components/ContactPreferenceStep.js +20 -0
  43. package/dist/components/enquiry-form/components/InquiryDetailsStep.d.ts +10 -0
  44. package/dist/components/enquiry-form/components/InquiryDetailsStep.js +20 -0
  45. package/dist/components/enquiry-form/components/index.d.ts +3 -0
  46. package/dist/components/enquiry-form/components/index.js +3 -0
  47. package/dist/components/enquiry-form/index.d.ts +2 -0
  48. package/dist/components/enquiry-form/index.js +2 -0
  49. package/dist/components/index.d.ts +7 -0
  50. package/dist/components/index.js +7 -0
  51. package/dist/components/shared/icons/Check.d.ts +6 -0
  52. package/dist/components/shared/icons/Check.js +2 -0
  53. package/dist/components/shared/icons/ChevronDownIcon.d.ts +4 -0
  54. package/dist/components/shared/icons/ChevronDownIcon.js +2 -0
  55. package/dist/components/shared/icons/ChevronLeft.d.ts +3 -0
  56. package/dist/components/shared/icons/ChevronLeft.js +3 -0
  57. package/dist/components/shared/icons/ChevronRight.d.ts +3 -0
  58. package/dist/components/shared/icons/ChevronRight.js +3 -0
  59. package/dist/components/shared/icons/CloseIcon.d.ts +9 -0
  60. package/dist/components/shared/icons/CloseIcon.js +5 -0
  61. package/dist/components/shared/icons/ConfirmationCheck.d.ts +1 -0
  62. package/dist/components/shared/icons/ConfirmationCheck.js +9 -0
  63. package/dist/components/shared/icons/ConsultationType.d.ts +1 -0
  64. package/dist/components/shared/icons/ConsultationType.js +2 -0
  65. package/dist/components/shared/icons/Date&TimeIcon.d.ts +1 -0
  66. package/dist/components/shared/icons/Date&TimeIcon.js +2 -0
  67. package/dist/components/shared/icons/MapIcon.d.ts +1 -0
  68. package/dist/components/shared/icons/MapIcon.js +2 -0
  69. package/dist/components/shared/icons/MedosLogo.d.ts +3 -0
  70. package/dist/components/shared/icons/MedosLogo.js +3 -0
  71. package/dist/components/shared/icons/PaymentMethodIcon.d.ts +1 -0
  72. package/dist/components/shared/icons/PaymentMethodIcon.js +2 -0
  73. package/dist/components/shared/icons/SuccessIcon.d.ts +8 -0
  74. package/dist/components/shared/icons/SuccessIcon.js +14 -0
  75. package/dist/components/shared/icons/UserIcon.d.ts +1 -0
  76. package/dist/components/shared/icons/UserIcon.js +2 -0
  77. package/dist/components/shared/icons/index.d.ts +13 -0
  78. package/dist/components/shared/icons/index.js +13 -0
  79. package/dist/components/shared/index.d.ts +2 -0
  80. package/dist/components/shared/index.js +2 -0
  81. package/dist/components/shared/ui/Calendar.d.ts +5 -0
  82. package/dist/components/shared/ui/Calendar.js +167 -0
  83. package/dist/components/shared/ui/SelectDropdown.d.ts +41 -0
  84. package/dist/components/shared/ui/SelectDropdown.js +301 -0
  85. package/dist/components/shared/ui/index.d.ts +2 -0
  86. package/dist/components/shared/ui/index.js +2 -0
  87. package/dist/components/styles/appointment.d.ts +4 -0
  88. package/dist/components/styles/appointment.js +220 -0
  89. package/dist/components/styles/enquiry.d.ts +2 -0
  90. package/dist/components/styles/enquiry.js +3 -0
  91. package/dist/components/styles/index.d.ts +2 -0
  92. package/dist/components/styles/index.js +2 -0
  93. package/dist/components/styles/shared.d.ts +3 -0
  94. package/dist/components/styles/shared.js +78 -0
  95. package/dist/components/styles.d.ts +1 -6
  96. package/dist/components/styles.js +1 -298
  97. package/dist/components/theme-styles.js +18 -0
  98. package/dist/components/types/appointment.d.ts +42 -0
  99. package/dist/components/types/appointment.js +1 -0
  100. package/dist/components/types/common.d.ts +24 -0
  101. package/dist/components/types/common.js +1 -0
  102. package/dist/components/types/enquiry.d.ts +59 -0
  103. package/dist/components/types/enquiry.js +1 -0
  104. package/dist/components/types/index.d.ts +4 -0
  105. package/dist/components/types/index.js +4 -0
  106. package/dist/components/types.d.ts +1 -54
  107. package/dist/components/types.js +1 -38
  108. package/dist/components/utils/date.d.ts +4 -0
  109. package/dist/components/utils/date.js +65 -0
  110. package/dist/components/utils/formatting.d.ts +4 -0
  111. package/dist/components/utils/formatting.js +9 -0
  112. package/dist/components/utils/index.d.ts +3 -0
  113. package/dist/components/utils/index.js +3 -0
  114. package/dist/components/utils/validation.d.ts +4 -0
  115. package/dist/components/utils/validation.js +37 -0
  116. package/dist/components/utils.d.ts +1 -8
  117. package/dist/components/utils.js +1 -74
  118. package/dist/components/validation.d.ts +1 -4
  119. package/dist/components/validation.js +1 -48
  120. package/dist/constants/index.d.ts +1 -1
  121. package/dist/constants/index.js +1 -1
  122. package/dist/index.d.ts +2 -2
  123. package/dist/index.js +1 -1
  124. package/dist/react/index.d.ts +3 -3
  125. package/dist/react/index.js +1 -1
  126. package/dist/services/AppointmentService.js +26 -9
  127. package/dist/services/AuthService.js +1 -1
  128. package/dist/vanilla/AppointmentCalendarWidget.d.ts +8 -0
  129. package/dist/vanilla/AppointmentCalendarWidget.js +598 -20
  130. package/dist/vanilla/components/appointment-booking/appointment-modal-styles.d.ts +272 -0
  131. package/dist/vanilla/components/appointment-booking/components/AppointmentConfirmationStep.d.ts +28 -0
  132. package/dist/vanilla/components/appointment-booking/components/AppointmentDateTimeModal.d.ts +18 -0
  133. package/dist/vanilla/components/appointment-booking/components/AppointmentSummaryStep.d.ts +12 -0
  134. package/dist/vanilla/components/appointment-booking/components/BookingOptionStep.d.ts +14 -0
  135. package/dist/vanilla/components/appointment-booking/components/DoctorSelectModal.d.ts +14 -0
  136. package/dist/vanilla/components/appointment-booking/components/PatientDetailsStep.d.ts +3 -0
  137. package/dist/vanilla/components/appointment-booking/components/PatientSelectionStep.d.ts +12 -0
  138. package/dist/vanilla/components/appointment-booking/components/PhoneVerificationStep.d.ts +3 -0
  139. package/dist/vanilla/components/appointment-booking/components/SuccessStep.d.ts +5 -0
  140. package/dist/vanilla/components/appointment-booking/components/index.d.ts +9 -0
  141. package/dist/vanilla/components/appointment-booking/index.d.ts +2 -4
  142. package/dist/vanilla/components/appointment-booking/types.d.ts +4 -0
  143. package/dist/vanilla/components/constants/constant.d.ts +2 -0
  144. package/dist/vanilla/components/constants/index.d.ts +3 -0
  145. package/dist/vanilla/components/constants/options.d.ts +13 -0
  146. package/dist/vanilla/components/constants/validation.d.ts +6 -0
  147. package/dist/vanilla/components/enquiry-form/EnquiryForm.d.ts +7 -0
  148. package/dist/vanilla/components/enquiry-form/components/ContactInformationStep.d.ts +13 -0
  149. package/dist/vanilla/components/enquiry-form/components/ContactPreferenceStep.d.ts +9 -0
  150. package/dist/vanilla/components/enquiry-form/components/InquiryDetailsStep.d.ts +10 -0
  151. package/dist/vanilla/components/enquiry-form/components/index.d.ts +3 -0
  152. package/dist/vanilla/components/enquiry-form/index.d.ts +2 -0
  153. package/dist/vanilla/components/index.d.ts +7 -3
  154. package/dist/vanilla/components/shared/icons/Check.d.ts +6 -0
  155. package/dist/vanilla/components/shared/icons/ChevronDownIcon.d.ts +4 -0
  156. package/dist/vanilla/components/shared/icons/ChevronLeft.d.ts +3 -0
  157. package/dist/vanilla/components/shared/icons/ChevronRight.d.ts +3 -0
  158. package/dist/vanilla/components/shared/icons/CloseIcon.d.ts +9 -0
  159. package/dist/vanilla/components/shared/icons/ConfirmationCheck.d.ts +1 -0
  160. package/dist/vanilla/components/shared/icons/ConsultationType.d.ts +1 -0
  161. package/dist/vanilla/components/shared/icons/Date&TimeIcon.d.ts +1 -0
  162. package/dist/vanilla/components/shared/icons/MapIcon.d.ts +1 -0
  163. package/dist/vanilla/components/shared/icons/MedosLogo.d.ts +3 -0
  164. package/dist/vanilla/components/shared/icons/PaymentMethodIcon.d.ts +1 -0
  165. package/dist/vanilla/components/shared/icons/SuccessIcon.d.ts +8 -0
  166. package/dist/vanilla/components/shared/icons/UserIcon.d.ts +1 -0
  167. package/dist/vanilla/components/shared/icons/index.d.ts +13 -0
  168. package/dist/vanilla/components/shared/index.d.ts +2 -0
  169. package/dist/vanilla/components/shared/ui/Calendar.d.ts +5 -0
  170. package/dist/vanilla/components/shared/ui/SelectDropdown.d.ts +41 -0
  171. package/dist/vanilla/components/shared/ui/index.d.ts +2 -0
  172. package/dist/vanilla/components/styles/appointment.d.ts +4 -0
  173. package/dist/vanilla/components/styles/enquiry.d.ts +2 -0
  174. package/dist/vanilla/components/styles/index.d.ts +2 -0
  175. package/dist/vanilla/components/styles/shared.d.ts +3 -0
  176. package/dist/vanilla/components/styles.d.ts +1 -6
  177. package/dist/vanilla/components/types/appointment.d.ts +42 -0
  178. package/dist/vanilla/components/types/common.d.ts +24 -0
  179. package/dist/vanilla/components/types/enquiry.d.ts +59 -0
  180. package/dist/vanilla/components/types/index.d.ts +4 -0
  181. package/dist/vanilla/components/types.d.ts +1 -54
  182. package/dist/vanilla/components/utils/date.d.ts +4 -0
  183. package/dist/vanilla/components/utils/formatting.d.ts +4 -0
  184. package/dist/vanilla/components/utils/index.d.ts +3 -0
  185. package/dist/vanilla/components/utils/validation.d.ts +4 -0
  186. package/dist/vanilla/components/utils.d.ts +1 -8
  187. package/dist/vanilla/components/validation.d.ts +1 -4
  188. package/dist/vanilla/constants/index.d.ts +1 -1
  189. package/dist/vanilla/enquiry-widget.js +3277 -56
  190. package/dist/vanilla/index.d.ts +2 -2
  191. package/dist/vanilla/react/index.d.ts +3 -3
  192. package/dist/vanilla/vanilla/AppointmentCalendarWidget.d.ts +8 -0
  193. package/dist/vanilla/widget.css +214 -0
  194. package/dist/vanilla/widget.js +4047 -187
  195. package/package.json +2 -2
@@ -0,0 +1,220 @@
1
+ export const PHONE_VERIFY_STYLES = {
2
+ container: {
3
+ border: "1px solid #e5e7eb",
4
+ borderRadius: 12,
5
+ overflow: "hidden",
6
+ backgroundColor: "#fff",
7
+ boxShadow: "0 1px 3px rgba(0, 0, 0, 0.04)",
8
+ },
9
+ header: {
10
+ padding: "18px 24px",
11
+ borderBottom: "1px solid #e5e7eb",
12
+ backgroundColor: "#27903F",
13
+ color: "#fff",
14
+ },
15
+ title: {
16
+ margin: 0,
17
+ fontSize: 18,
18
+ fontWeight: 600,
19
+ color: "#fff",
20
+ },
21
+ content: { padding: "24px" },
22
+ label: {
23
+ display: "block",
24
+ fontSize: 14,
25
+ fontWeight: 500,
26
+ color: "#111827",
27
+ marginBottom: 8,
28
+ },
29
+ phoneInputContainer: { display: "flex", gap: 10 },
30
+ phoneInput: {
31
+ flex: 1,
32
+ padding: "10px 14px",
33
+ borderRadius: 8,
34
+ border: "1px solid #e5e7eb",
35
+ fontSize: 14,
36
+ outline: "none",
37
+ color: "#111827",
38
+ boxSizing: "border-box",
39
+ transition: "border-color 0.2s ease, box-shadow 0.2s ease",
40
+ minHeight: 40,
41
+ },
42
+ phoneDisplay: {
43
+ padding: "10px 14px",
44
+ background: "#f9fafb",
45
+ borderRadius: 8,
46
+ fontSize: 14,
47
+ color: "#111827",
48
+ fontWeight: 500,
49
+ border: "1px solid #e5e7eb",
50
+ },
51
+ otpInput: {
52
+ width: "100%",
53
+ padding: "10px 14px",
54
+ border: "1px solid #e5e7eb",
55
+ borderRadius: 8,
56
+ fontSize: 14,
57
+ outline: "none",
58
+ color: "#111827",
59
+ boxSizing: "border-box",
60
+ transition: "border-color 0.2s ease, box-shadow 0.2s ease",
61
+ },
62
+ otpHint: {
63
+ marginTop: 8,
64
+ fontSize: 12,
65
+ color: "#6b7280",
66
+ },
67
+ successMessage: {
68
+ marginTop: 20,
69
+ padding: 16,
70
+ borderRadius: 8,
71
+ backgroundColor: "#F6FBF6",
72
+ border: "1px solid #4E8F50",
73
+ display: "flex",
74
+ alignItems: "center",
75
+ gap: 12,
76
+ },
77
+ successIcon: { fontSize: 24, color: "#4E8F50" },
78
+ successTitle: {
79
+ fontSize: 14,
80
+ fontWeight: 600,
81
+ color: "#4E8F50",
82
+ },
83
+ successSubtitle: {
84
+ fontSize: 12,
85
+ color: "#6B7280",
86
+ marginTop: 2,
87
+ },
88
+ footer: {
89
+ padding: "16px 24px",
90
+ borderTop: "1px solid #e5e7eb",
91
+ backgroundColor: "#fff",
92
+ display: "flex",
93
+ gap: 12,
94
+ justifyContent: "flex-end",
95
+ },
96
+ };
97
+ export const PATIENT_DETAILS_STYLES = {
98
+ sectionCard: {
99
+ border: "1px solid #E5E7EB",
100
+ borderRadius: "12px",
101
+ marginBottom: "24px",
102
+ overflow: "hidden",
103
+ boxShadow: "0 1px 3px rgba(0, 0, 0, 0.04)",
104
+ },
105
+ sectionHeader: {
106
+ backgroundColor: "#27903F",
107
+ padding: "18px 24px",
108
+ display: "flex",
109
+ alignItems: "center",
110
+ gap: "12px",
111
+ borderBottom: "1px solid #E5E7EB",
112
+ color: "#fff",
113
+ },
114
+ sectionTitle: {
115
+ fontSize: "18px",
116
+ fontWeight: 600,
117
+ margin: 0,
118
+ color: "#fff",
119
+ },
120
+ sectionBody: { padding: "24px" },
121
+ gridRow: {
122
+ display: "grid",
123
+ gridTemplateColumns: "1fr 1fr",
124
+ gap: "20px",
125
+ marginTop: "20px",
126
+ },
127
+ label: {
128
+ display: "block",
129
+ fontSize: 14,
130
+ marginBottom: 8,
131
+ color: "#111827",
132
+ fontWeight: 500,
133
+ },
134
+ input: {
135
+ width: "100%",
136
+ padding: "10px 14px",
137
+ borderRadius: 8,
138
+ border: "1px solid #e5e7eb",
139
+ outline: "none",
140
+ fontSize: 14,
141
+ boxSizing: "border-box",
142
+ transition: "border-color 0.2s ease, box-shadow 0.2s ease",
143
+ minHeight: 40,
144
+ },
145
+ phoneDisplay: { display: "flex", gap: "10px" },
146
+ phoneCode: {
147
+ width: "100px",
148
+ padding: "10px 14px",
149
+ borderRadius: 8,
150
+ border: "1px solid #e5e7eb",
151
+ backgroundColor: "#F9FAFB",
152
+ fontSize: 14,
153
+ boxSizing: "border-box",
154
+ },
155
+ phoneNumber: {
156
+ flex: 1,
157
+ padding: "10px 14px",
158
+ borderRadius: 8,
159
+ border: "1px solid #e5e7eb",
160
+ backgroundColor: "#F9FAFB",
161
+ fontSize: 14,
162
+ boxSizing: "border-box",
163
+ },
164
+ };
165
+ export const SUCCESS_STYLES = {
166
+ container: {
167
+ display: "flex",
168
+ flexDirection: "column",
169
+ alignItems: "center",
170
+ padding: "32px 24px",
171
+ textAlign: "center",
172
+ },
173
+ header: {
174
+ marginBottom: "24px",
175
+ },
176
+ iconContainer: {
177
+ display: "flex",
178
+ alignItems: "center",
179
+ justifyContent: "center",
180
+ width: "72px",
181
+ height: "72px",
182
+ borderRadius: "50%",
183
+ backgroundColor: "#ecfdf5",
184
+ marginBottom: "20px",
185
+ },
186
+ detailsContainer: {
187
+ display: "flex",
188
+ flexDirection: "column",
189
+ alignItems: "center",
190
+ gap: "12px",
191
+ textAlign: "center",
192
+ },
193
+ detailsTitle: {
194
+ fontWeight: 600,
195
+ fontSize: "18px",
196
+ color: "#4E8F50",
197
+ margin: 0,
198
+ },
199
+ detailsList: {
200
+ display: "flex",
201
+ flexDirection: "column",
202
+ gap: "4px",
203
+ fontSize: "14px",
204
+ width: "100%",
205
+ maxWidth: "400px",
206
+ textAlign: "center",
207
+ color: "#374151",
208
+ },
209
+ confirmationNote: {
210
+ marginTop: "12px",
211
+ fontSize: "14px",
212
+ color: "#6B7280",
213
+ lineHeight: "1.5",
214
+ },
215
+ actionContainer: {
216
+ marginTop: "32px",
217
+ display: "flex",
218
+ justifyContent: "center",
219
+ },
220
+ };
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const ENQUIRY_FORM_STYLES: Record<string, React.CSSProperties>;
@@ -0,0 +1,3 @@
1
+ export const ENQUIRY_FORM_STYLES = {
2
+ container: {},
3
+ };
@@ -0,0 +1,2 @@
1
+ export { getContainerStyles, getButtonStyles, getPhoneVerifyStyles, getPatientDetailsStyles, getSuccessStyles, CONTAINER_STYLES, BUTTON_STYLES, PHONE_VERIFY_STYLES, PATIENT_DETAILS_STYLES, SUCCESS_STYLES, } from "../theme-styles";
2
+ export { getMobileStyles, getDesktopStyles, } from "../appointment-booking/appointment-modal-styles";
@@ -0,0 +1,2 @@
1
+ export { getContainerStyles, getButtonStyles, getPhoneVerifyStyles, getPatientDetailsStyles, getSuccessStyles, CONTAINER_STYLES, BUTTON_STYLES, PHONE_VERIFY_STYLES, PATIENT_DETAILS_STYLES, SUCCESS_STYLES, } from "../theme-styles";
2
+ export { getMobileStyles, getDesktopStyles, } from "../appointment-booking/appointment-modal-styles";
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ export declare const CONTAINER_STYLES: Record<string, React.CSSProperties>;
3
+ export declare const BUTTON_STYLES: Record<string, React.CSSProperties>;
@@ -0,0 +1,78 @@
1
+ export const CONTAINER_STYLES = {
2
+ container: {
3
+ display: "flex",
4
+ justifyContent: "center",
5
+ padding: 20,
6
+ fontFamily: "'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial",
7
+ background: "#f6f8fa",
8
+ },
9
+ card: {
10
+ width: "100%",
11
+ maxWidth: 720,
12
+ background: "#fff",
13
+ borderRadius: 12,
14
+ boxShadow: "0 4px 12px rgba(0, 0, 0, 0.08)",
15
+ padding: 24,
16
+ boxSizing: "border-box",
17
+ },
18
+ header: {
19
+ display: "flex",
20
+ alignItems: "center",
21
+ justifyContent: "space-between",
22
+ marginBottom: 20,
23
+ },
24
+ title: {
25
+ marginLeft: 10,
26
+ fontSize: 20,
27
+ fontWeight: 600,
28
+ margin: 0,
29
+ },
30
+ section: { marginTop: 16 },
31
+ errorMessage: {
32
+ marginBottom: 16,
33
+ padding: "12px 16px",
34
+ borderRadius: 8,
35
+ backgroundColor: "#fee2e2",
36
+ color: "#ef4444",
37
+ fontWeight: 500,
38
+ fontSize: 14,
39
+ border: "1px solid rgba(239, 68, 68, 0.2)",
40
+ },
41
+ actions: {
42
+ display: "flex",
43
+ gap: 12,
44
+ marginTop: 24,
45
+ paddingTop: 20,
46
+ borderTop: "1px solid #e5e7eb",
47
+ justifyContent: "flex-end",
48
+ },
49
+ };
50
+ export const BUTTON_STYLES = {
51
+ primary: {
52
+ background: "#009b4d",
53
+ color: "#fff",
54
+ border: "none",
55
+ padding: "10px 20px",
56
+ borderRadius: 8,
57
+ cursor: "pointer",
58
+ fontWeight: 600,
59
+ fontSize: 14,
60
+ transition: "all 0.2s ease",
61
+ minHeight: 40,
62
+ boxShadow: "0 1px 2px rgba(0, 0, 0, 0.05)",
63
+ lineHeight: "1.5",
64
+ },
65
+ secondary: {
66
+ background: "#fff",
67
+ color: "#111827",
68
+ border: "1px solid #e5e7eb",
69
+ padding: "10px 20px",
70
+ borderRadius: 8,
71
+ cursor: "pointer",
72
+ fontWeight: 600,
73
+ fontSize: 14,
74
+ transition: "all 0.2s ease",
75
+ minHeight: 40,
76
+ lineHeight: "1.5",
77
+ },
78
+ };
@@ -1,6 +1 @@
1
- import React from "react";
2
- export declare const CONTAINER_STYLES: Record<string, React.CSSProperties>;
3
- export declare const BUTTON_STYLES: Record<string, React.CSSProperties>;
4
- export declare const PHONE_VERIFY_STYLES: Record<string, React.CSSProperties>;
5
- export declare const PATIENT_DETAILS_STYLES: Record<string, React.CSSProperties>;
6
- export declare const SUCCESS_STYLES: Record<string, React.CSSProperties>;
1
+ export * from "./styles";
@@ -1,298 +1 @@
1
- export const CONTAINER_STYLES = {
2
- container: {
3
- display: "flex",
4
- justifyContent: "center",
5
- padding: 20,
6
- fontFamily: "'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, 'Helvetica Neue', Arial",
7
- background: "#f6f8fa",
8
- },
9
- card: {
10
- width: "100%",
11
- maxWidth: 720,
12
- background: "#fff",
13
- borderRadius: 12,
14
- boxShadow: "0 4px 12px rgba(0, 0, 0, 0.08)",
15
- padding: 24,
16
- boxSizing: "border-box",
17
- },
18
- header: {
19
- display: "flex",
20
- alignItems: "center",
21
- justifyContent: "space-between",
22
- marginBottom: 20,
23
- },
24
- title: {
25
- marginLeft: 10,
26
- fontSize: 20,
27
- fontWeight: 600,
28
- margin: 0,
29
- },
30
- section: { marginTop: 16 },
31
- errorMessage: {
32
- marginBottom: 16,
33
- padding: "12px 16px",
34
- borderRadius: 8,
35
- backgroundColor: "#fee2e2",
36
- color: "#ef4444",
37
- fontWeight: 500,
38
- fontSize: 14,
39
- border: "1px solid rgba(239, 68, 68, 0.2)",
40
- },
41
- actions: {
42
- display: "flex",
43
- gap: 12,
44
- marginTop: 24,
45
- paddingTop: 20,
46
- borderTop: "1px solid #e5e7eb",
47
- justifyContent: "flex-end",
48
- },
49
- };
50
- export const BUTTON_STYLES = {
51
- primary: {
52
- background: "#009b4d",
53
- color: "#fff",
54
- border: "none",
55
- padding: "10px 20px",
56
- borderRadius: 8,
57
- cursor: "pointer",
58
- fontWeight: 600,
59
- fontSize: 14,
60
- transition: "all 0.2s ease",
61
- minHeight: 40,
62
- boxShadow: "0 1px 2px rgba(0, 0, 0, 0.05)",
63
- lineHeight: "1.5",
64
- },
65
- secondary: {
66
- background: "#fff",
67
- color: "#111827",
68
- border: "1px solid #e5e7eb",
69
- padding: "10px 20px",
70
- borderRadius: 8,
71
- cursor: "pointer",
72
- fontWeight: 600,
73
- fontSize: 14,
74
- transition: "all 0.2s ease",
75
- minHeight: 40,
76
- lineHeight: "1.5",
77
- },
78
- };
79
- export const PHONE_VERIFY_STYLES = {
80
- container: {
81
- border: "1px solid #e5e7eb",
82
- borderRadius: 12,
83
- overflow: "hidden",
84
- backgroundColor: "#fff",
85
- boxShadow: "0 1px 3px rgba(0, 0, 0, 0.04)",
86
- },
87
- header: {
88
- padding: "18px 24px",
89
- borderBottom: "1px solid #e5e7eb",
90
- backgroundColor: "#27903F",
91
- color: "#fff",
92
- },
93
- title: {
94
- margin: 0,
95
- fontSize: 18,
96
- fontWeight: 600,
97
- color: "#fff",
98
- },
99
- content: { padding: "24px" },
100
- label: {
101
- display: "block",
102
- fontSize: 14,
103
- fontWeight: 500,
104
- color: "#111827",
105
- marginBottom: 8,
106
- },
107
- phoneInputContainer: { display: "flex", gap: 10 },
108
- phoneInput: {
109
- flex: 1,
110
- padding: "10px 14px",
111
- borderRadius: 8,
112
- border: "1px solid #e5e7eb",
113
- fontSize: 14,
114
- outline: "none",
115
- color: "#111827",
116
- boxSizing: "border-box",
117
- transition: "border-color 0.2s ease, box-shadow 0.2s ease",
118
- minHeight: 40,
119
- },
120
- phoneDisplay: {
121
- padding: "10px 14px",
122
- background: "#f9fafb",
123
- borderRadius: 8,
124
- fontSize: 14,
125
- color: "#111827",
126
- fontWeight: 500,
127
- border: "1px solid #e5e7eb",
128
- },
129
- otpInput: {
130
- width: "100%",
131
- padding: "10px 14px",
132
- border: "1px solid #e5e7eb",
133
- borderRadius: 8,
134
- fontSize: 14,
135
- outline: "none",
136
- color: "#111827",
137
- boxSizing: "border-box",
138
- transition: "border-color 0.2s ease, box-shadow 0.2s ease",
139
- },
140
- otpHint: {
141
- marginTop: 8,
142
- fontSize: 12,
143
- color: "#6b7280",
144
- },
145
- successMessage: {
146
- marginTop: 20,
147
- padding: 16,
148
- borderRadius: 8,
149
- backgroundColor: "#F6FBF6",
150
- border: "1px solid #4E8F50",
151
- display: "flex",
152
- alignItems: "center",
153
- gap: 12,
154
- },
155
- successIcon: { fontSize: 24, color: "#4E8F50" },
156
- successTitle: {
157
- fontSize: 14,
158
- fontWeight: 600,
159
- color: "#4E8F50",
160
- },
161
- successSubtitle: {
162
- fontSize: 12,
163
- color: "#6B7280",
164
- marginTop: 2,
165
- },
166
- footer: {
167
- padding: "16px 24px",
168
- borderTop: "1px solid #e5e7eb",
169
- backgroundColor: "#fff",
170
- display: "flex",
171
- gap: 12,
172
- justifyContent: "flex-end",
173
- },
174
- };
175
- export const PATIENT_DETAILS_STYLES = {
176
- sectionCard: {
177
- border: "1px solid #E5E7EB",
178
- borderRadius: "12px",
179
- marginBottom: "24px",
180
- overflow: "hidden",
181
- boxShadow: "0 1px 3px rgba(0, 0, 0, 0.04)",
182
- },
183
- sectionHeader: {
184
- backgroundColor: "#27903F",
185
- padding: "18px 24px",
186
- display: "flex",
187
- alignItems: "center",
188
- gap: "12px",
189
- borderBottom: "1px solid #E5E7EB",
190
- color: "#fff",
191
- },
192
- sectionTitle: {
193
- fontSize: "18px",
194
- fontWeight: 600,
195
- margin: 0,
196
- color: "#fff",
197
- },
198
- sectionBody: { padding: "24px" },
199
- gridRow: {
200
- display: "grid",
201
- gridTemplateColumns: "1fr 1fr",
202
- gap: "20px",
203
- marginTop: "20px",
204
- },
205
- label: {
206
- display: "block",
207
- fontSize: 14,
208
- marginBottom: 8,
209
- color: "#111827",
210
- fontWeight: 500,
211
- },
212
- input: {
213
- width: "100%",
214
- padding: "10px 14px",
215
- borderRadius: 8,
216
- border: "1px solid #e5e7eb",
217
- outline: "none",
218
- fontSize: 14,
219
- boxSizing: "border-box",
220
- transition: "border-color 0.2s ease, box-shadow 0.2s ease",
221
- minHeight: 40,
222
- },
223
- phoneDisplay: { display: "flex", gap: "10px" },
224
- phoneCode: {
225
- width: "100px",
226
- padding: "10px 14px",
227
- borderRadius: 8,
228
- border: "1px solid #e5e7eb",
229
- backgroundColor: "#F9FAFB",
230
- fontSize: 14,
231
- boxSizing: "border-box",
232
- },
233
- phoneNumber: {
234
- flex: 1,
235
- padding: "10px 14px",
236
- borderRadius: 8,
237
- border: "1px solid #e5e7eb",
238
- backgroundColor: "#F9FAFB",
239
- fontSize: 14,
240
- boxSizing: "border-box",
241
- },
242
- };
243
- export const SUCCESS_STYLES = {
244
- container: {
245
- display: "flex",
246
- flexDirection: "column",
247
- alignItems: "center",
248
- padding: "32px 24px",
249
- textAlign: "center",
250
- },
251
- header: {
252
- marginBottom: "24px",
253
- },
254
- iconContainer: {
255
- display: "flex",
256
- alignItems: "center",
257
- justifyContent: "center",
258
- width: "72px",
259
- height: "72px",
260
- borderRadius: "50%",
261
- backgroundColor: "#ecfdf5",
262
- marginBottom: "20px",
263
- },
264
- detailsContainer: {
265
- display: "flex",
266
- flexDirection: "column",
267
- alignItems: "center",
268
- gap: "12px",
269
- textAlign: "center",
270
- },
271
- detailsTitle: {
272
- fontWeight: 600,
273
- fontSize: "18px",
274
- color: "#4E8F50",
275
- margin: 0,
276
- },
277
- detailsList: {
278
- display: "flex",
279
- flexDirection: "column",
280
- gap: "4px",
281
- fontSize: "14px",
282
- width: "100%",
283
- maxWidth: "400px",
284
- textAlign: "center",
285
- color: "#374151",
286
- },
287
- confirmationNote: {
288
- marginTop: "12px",
289
- fontSize: "14px",
290
- color: "#6B7280",
291
- lineHeight: "1.5",
292
- },
293
- actionContainer: {
294
- marginTop: "32px",
295
- display: "flex",
296
- justifyContent: "center",
297
- },
298
- };
1
+ export * from "./styles";
@@ -45,6 +45,9 @@ export function getContainerStyles(theme, prefix = "medos", breakpoint) {
45
45
  fontSize: "14px",
46
46
  border: `1px solid ${theme.colors.error}20`,
47
47
  },
48
+ content: {
49
+ padding: isMobile ? "16px 0 16px 0" : "24px 0 24px 0",
50
+ },
48
51
  actions: {
49
52
  display: "flex",
50
53
  gap: "12px",
@@ -54,6 +57,21 @@ export function getContainerStyles(theme, prefix = "medos", breakpoint) {
54
57
  justifyContent: isMobile ? "stretch" : "flex-end",
55
58
  flexDirection: isMobile ? "column" : "row",
56
59
  },
60
+ branding: {
61
+ display: "flex",
62
+ alignItems: "center",
63
+ justifyContent: "center",
64
+ gap: "8px",
65
+ marginTop: isMobile ? "16px" : "24px",
66
+ paddingTop: isMobile ? "12px" : "16px",
67
+ borderTop: `1px solid ${theme.colors.border}`,
68
+ opacity: 0.8,
69
+ },
70
+ poweredBy: {
71
+ fontSize: "12px",
72
+ color: theme.colors.textSecondary,
73
+ fontWeight: 500,
74
+ },
57
75
  };
58
76
  }
59
77
  export function getButtonStyles(theme, prefix = "medos", breakpoint) {
@@ -0,0 +1,42 @@
1
+ import React from "react";
2
+ export type { AppointmentState, AppointmentAction, Patient, SessionPack, AvailablePackage, BookingOptionType, } from "../appointment-booking/types";
3
+ export { INITIAL_STATE } from "../appointment-booking/types";
4
+ export type PhoneVerificationStepProps = {
5
+ state: any;
6
+ dispatch: React.Dispatch<any>;
7
+ onSendOtp: () => Promise<void>;
8
+ onVerifyOtp: () => Promise<void>;
9
+ onBack: () => void;
10
+ onContinue: () => void;
11
+ };
12
+ export type PatientDetailsStepProps = {
13
+ state: any;
14
+ dispatch: React.Dispatch<any>;
15
+ onBack: () => void;
16
+ onSubmit: () => Promise<void>;
17
+ isFirstStep?: boolean;
18
+ };
19
+ export type SuccessStepProps = {
20
+ onReset: () => void;
21
+ };
22
+ export type PhoneInputSectionProps = {
23
+ countryCode: string;
24
+ patientPhone: string;
25
+ onCountryCodeChange: (code: string) => void;
26
+ onPhoneChange: (phone: string) => void;
27
+ };
28
+ export type OtpInputSectionProps = {
29
+ countryCode: string;
30
+ patientPhone: string;
31
+ otpCode: string;
32
+ otpVerified: boolean;
33
+ onOtpChange: (code: string) => void;
34
+ };
35
+ export type PatientInfoSectionProps = {
36
+ state: any;
37
+ dispatch: React.Dispatch<any>;
38
+ };
39
+ export type AddressInfoSectionProps = {
40
+ state: any;
41
+ dispatch: React.Dispatch<any>;
42
+ };
@@ -0,0 +1 @@
1
+ export { INITIAL_STATE } from "../appointment-booking/types";