medos-sdk 1.0.2 → 1.1.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.
Files changed (167) hide show
  1. package/README.md +39 -0
  2. package/dist/client/MedosClient.d.ts +3 -5
  3. package/dist/client/MedosClient.js +4 -4
  4. package/dist/components/AppointmentCalender.d.ts +1 -4
  5. package/dist/components/AppointmentCalender.js +323 -530
  6. package/dist/components/AppointmentDateTimeModal.d.ts +14 -0
  7. package/dist/components/AppointmentDateTimeModal.js +220 -0
  8. package/dist/components/ConfigurableCard.d.ts +12 -0
  9. package/dist/components/ConfigurableCard.js +29 -0
  10. package/dist/components/ContactInformationStep.d.ts +13 -0
  11. package/dist/components/ContactInformationStep.js +14 -0
  12. package/dist/components/ContactPreferenceStep.d.ts +9 -0
  13. package/dist/components/ContactPreferenceStep.js +16 -0
  14. package/dist/components/DoctorSelectModal.d.ts +7 -0
  15. package/dist/components/DoctorSelectModal.js +93 -0
  16. package/dist/components/EnquiryForm.d.ts +7 -0
  17. package/dist/components/EnquiryForm.js +212 -0
  18. package/dist/components/Icons/Check.d.ts +6 -0
  19. package/dist/components/Icons/Check.js +2 -0
  20. package/dist/components/Icons/ChevronDownIcon.d.ts +4 -0
  21. package/dist/components/Icons/ChevronDownIcon.js +2 -0
  22. package/dist/components/Icons/ChevronLeft.d.ts +3 -0
  23. package/dist/components/Icons/ChevronLeft.js +3 -0
  24. package/dist/components/Icons/ChevronRight.d.ts +3 -0
  25. package/dist/components/Icons/ChevronRight.js +3 -0
  26. package/dist/components/Icons/ConfirmationCheck.d.ts +1 -0
  27. package/dist/components/Icons/ConfirmationCheck.js +9 -0
  28. package/dist/components/Icons/ConsultationType.d.ts +1 -0
  29. package/dist/components/Icons/ConsultationType.js +2 -0
  30. package/dist/components/Icons/Date&TimeIcon.d.ts +1 -0
  31. package/dist/components/Icons/Date&TimeIcon.js +2 -0
  32. package/dist/components/Icons/MapIcon.d.ts +1 -0
  33. package/dist/components/Icons/MapIcon.js +2 -0
  34. package/dist/components/Icons/PaymentMethodIcon.d.ts +1 -0
  35. package/dist/components/Icons/PaymentMethodIcon.js +2 -0
  36. package/dist/components/Icons/UserIcon.d.ts +1 -0
  37. package/dist/components/Icons/UserIcon.js +2 -0
  38. package/dist/components/InquiryDetailsStep.d.ts +10 -0
  39. package/dist/components/InquiryDetailsStep.js +15 -0
  40. package/dist/components/PatientDetailsStep.d.ts +3 -0
  41. package/dist/components/PatientDetailsStep.js +84 -0
  42. package/dist/components/PhoneVerificationStep.d.ts +3 -0
  43. package/dist/components/PhoneVerificationStep.js +49 -0
  44. package/dist/components/SuccessStep.d.ts +5 -0
  45. package/dist/components/SuccessStep.js +9 -0
  46. package/dist/components/custom-calendar.d.ts +5 -0
  47. package/dist/components/custom-calendar.js +171 -0
  48. package/dist/components/styles.d.ts +6 -0
  49. package/dist/components/styles.js +257 -0
  50. package/dist/components/theme-styles.d.ts +12 -0
  51. package/dist/components/theme-styles.js +319 -0
  52. package/dist/components/types.d.ts +181 -0
  53. package/dist/components/types.js +55 -0
  54. package/dist/components/ui/select.d.ts +10 -0
  55. package/dist/components/ui/select.js +21 -0
  56. package/dist/components/uiComponents/SelectDropdown.d.ts +41 -0
  57. package/dist/components/uiComponents/SelectDropdown.js +302 -0
  58. package/dist/components/utils.d.ts +5 -0
  59. package/dist/components/utils.js +15 -0
  60. package/dist/components/validation.d.ts +2 -0
  61. package/dist/components/validation.js +7 -0
  62. package/dist/context/TemplateContext.d.ts +12 -0
  63. package/dist/context/TemplateContext.js +19 -0
  64. package/dist/core/index.d.ts +4 -0
  65. package/dist/core/index.js +4 -0
  66. package/dist/core/theme/index.d.ts +3 -0
  67. package/dist/core/theme/index.js +3 -0
  68. package/dist/core/theme/themes.d.ts +8 -0
  69. package/dist/core/theme/themes.js +178 -0
  70. package/dist/core/theme/types.d.ts +106 -0
  71. package/dist/core/theme/types.js +1 -0
  72. package/dist/core/theme/utils.d.ts +8 -0
  73. package/dist/core/theme/utils.js +135 -0
  74. package/dist/enquiry-form/index.d.ts +4 -0
  75. package/dist/enquiry-form/index.js +4 -0
  76. package/dist/enquiry-form/provider.d.ts +3 -0
  77. package/dist/enquiry-form/provider.js +9 -0
  78. package/dist/enquiry-form/serialization.d.ts +4 -0
  79. package/dist/enquiry-form/serialization.js +57 -0
  80. package/dist/enquiry-form/types.d.ts +38 -0
  81. package/dist/enquiry-form/types.js +1 -0
  82. package/dist/enquiry-form/validation.d.ts +6 -0
  83. package/dist/enquiry-form/validation.js +21 -0
  84. package/dist/index.d.ts +9 -0
  85. package/dist/index.js +7 -0
  86. package/dist/lib/templateUtils.d.ts +3 -0
  87. package/dist/lib/templateUtils.js +28 -0
  88. package/dist/react/ThemeProvider.d.ts +18 -0
  89. package/dist/react/ThemeProvider.js +45 -0
  90. package/dist/react/hooks/useTheme.d.ts +1 -0
  91. package/dist/react/hooks/useTheme.js +1 -0
  92. package/dist/react/index.d.ts +5 -0
  93. package/dist/react/index.js +3 -0
  94. package/dist/services/AppointmentService.d.ts +4 -5
  95. package/dist/services/AppointmentService.js +12 -10
  96. package/dist/services/EnquiryService.d.ts +5 -0
  97. package/dist/services/EnquiryService.js +30 -0
  98. package/dist/templates/registry.d.ts +12 -0
  99. package/dist/templates/registry.js +58 -0
  100. package/dist/vanilla/AppointmentCalendarWidget.d.ts +2 -34
  101. package/dist/vanilla/AppointmentCalendarWidget.js +264 -275
  102. package/dist/vanilla/EnquiryFormWidget.d.ts +35 -0
  103. package/dist/vanilla/EnquiryFormWidget.js +425 -0
  104. package/dist/vanilla/client/MedosClient.d.ts +3 -5
  105. package/dist/vanilla/components/AppointmentCalender.d.ts +1 -4
  106. package/dist/vanilla/components/AppointmentDateTimeModal.d.ts +14 -0
  107. package/dist/vanilla/components/ConfigurableCard.d.ts +12 -0
  108. package/dist/vanilla/components/ContactInformationStep.d.ts +13 -0
  109. package/dist/vanilla/components/ContactPreferenceStep.d.ts +9 -0
  110. package/dist/vanilla/components/DoctorSelectModal.d.ts +7 -0
  111. package/dist/vanilla/components/EnquiryForm.d.ts +7 -0
  112. package/dist/vanilla/components/Icons/Check.d.ts +6 -0
  113. package/dist/vanilla/components/Icons/ChevronDownIcon.d.ts +4 -0
  114. package/dist/vanilla/components/Icons/ChevronLeft.d.ts +3 -0
  115. package/dist/vanilla/components/Icons/ChevronRight.d.ts +3 -0
  116. package/dist/vanilla/components/Icons/ConfirmationCheck.d.ts +1 -0
  117. package/dist/vanilla/components/Icons/ConsultationType.d.ts +1 -0
  118. package/dist/vanilla/components/Icons/Date&TimeIcon.d.ts +1 -0
  119. package/dist/vanilla/components/Icons/MapIcon.d.ts +1 -0
  120. package/dist/vanilla/components/Icons/PaymentMethodIcon.d.ts +1 -0
  121. package/dist/vanilla/components/Icons/UserIcon.d.ts +1 -0
  122. package/dist/vanilla/components/InquiryDetailsStep.d.ts +10 -0
  123. package/dist/vanilla/components/PatientDetailsStep.d.ts +3 -0
  124. package/dist/vanilla/components/PhoneVerificationStep.d.ts +3 -0
  125. package/dist/vanilla/components/SuccessStep.d.ts +5 -0
  126. package/dist/vanilla/components/custom-calendar.d.ts +5 -0
  127. package/dist/vanilla/components/styles.d.ts +6 -0
  128. package/dist/vanilla/components/theme-styles.d.ts +12 -0
  129. package/dist/vanilla/components/types.d.ts +181 -0
  130. package/dist/vanilla/components/ui/select.d.ts +10 -0
  131. package/dist/vanilla/components/uiComponents/SelectDropdown.d.ts +41 -0
  132. package/dist/vanilla/components/utils.d.ts +5 -0
  133. package/dist/vanilla/components/validation.d.ts +2 -0
  134. package/dist/vanilla/context/TemplateContext.d.ts +12 -0
  135. package/dist/vanilla/core/index.d.ts +4 -0
  136. package/dist/vanilla/core/theme/index.d.ts +3 -0
  137. package/dist/vanilla/core/theme/themes.d.ts +8 -0
  138. package/dist/vanilla/core/theme/types.d.ts +106 -0
  139. package/dist/vanilla/core/theme/utils.d.ts +8 -0
  140. package/dist/vanilla/enquiry-form/index.d.ts +4 -0
  141. package/dist/vanilla/enquiry-form/provider.d.ts +3 -0
  142. package/dist/vanilla/enquiry-form/serialization.d.ts +4 -0
  143. package/dist/vanilla/enquiry-form/types.d.ts +38 -0
  144. package/dist/vanilla/enquiry-form/validation.d.ts +6 -0
  145. package/dist/vanilla/enquiry-widget.js +4650 -0
  146. package/dist/vanilla/index.d.ts +9 -0
  147. package/dist/vanilla/index.js +3 -1
  148. package/dist/vanilla/lib/templateUtils.d.ts +3 -0
  149. package/dist/vanilla/react/ThemeProvider.d.ts +18 -0
  150. package/dist/vanilla/react/hooks/useTheme.d.ts +1 -0
  151. package/dist/vanilla/react/index.d.ts +5 -0
  152. package/dist/vanilla/services/AppointmentService.d.ts +4 -5
  153. package/dist/vanilla/services/EnquiryService.d.ts +5 -0
  154. package/dist/vanilla/templates/alternative.css +13 -0
  155. package/dist/vanilla/templates/default.css +13 -0
  156. package/dist/vanilla/templates/registry.d.ts +12 -0
  157. package/dist/vanilla/theme-injector.d.ts +6 -0
  158. package/dist/vanilla/theme-injector.js +44 -0
  159. package/dist/vanilla/vanilla/AppointmentCalendarWidget.d.ts +2 -34
  160. package/dist/vanilla/vanilla/EnquiryFormWidget.d.ts +35 -0
  161. package/dist/vanilla/vanilla/index.d.ts +3 -1
  162. package/dist/vanilla/vanilla/theme-injector.d.ts +6 -0
  163. package/dist/vanilla/vanilla/widget.d.ts +6 -1
  164. package/dist/vanilla/widget.css +173 -0
  165. package/dist/vanilla/widget.d.ts +6 -1
  166. package/dist/vanilla/widget.js +813 -288
  167. package/package.json +9 -4
@@ -0,0 +1,30 @@
1
+ import { MedosClient } from "../client/MedosClient";
2
+ const EnquiryService = {
3
+ async submitEnquiry(payload) {
4
+ try {
5
+ const client = await MedosClient.ensureInitialized();
6
+ const enquiryData = {
7
+ patientName: payload.patientName,
8
+ patientEmail: payload.patientEmail,
9
+ countryCode: payload.countryCode,
10
+ patientPhone: payload.patientPhone,
11
+ inquirySubject: payload.inquirySubject,
12
+ inquiryMessage: payload.inquiryMessage,
13
+ preferredContactMethod: payload.preferredContactMethod,
14
+ };
15
+ const res = await client.post("/enquiries/submit", enquiryData, {
16
+ headers: {
17
+ "Content-Type": "application/json",
18
+ },
19
+ });
20
+ return res.data;
21
+ }
22
+ catch (error) {
23
+ if (error instanceof Error) {
24
+ throw new Error(`Failed to submit enquiry: ${error.message}`);
25
+ }
26
+ throw new Error("Failed to submit enquiry: Unknown error");
27
+ }
28
+ },
29
+ };
30
+ export { EnquiryService };
@@ -0,0 +1,12 @@
1
+ import type { TemplateId, TemplateConfig } from "../core";
2
+ export declare class TemplateRegistry {
3
+ private static instance;
4
+ private readonly templates;
5
+ private constructor();
6
+ static getInstance(): TemplateRegistry;
7
+ getTemplate(id: TemplateId): TemplateConfig;
8
+ getAllTemplates(): Record<TemplateId, TemplateConfig>;
9
+ hasTemplate(id: TemplateId): boolean;
10
+ private initializeTemplates;
11
+ }
12
+ export declare const templateRegistry: TemplateRegistry;
@@ -0,0 +1,58 @@
1
+ export class TemplateRegistry {
2
+ constructor() {
3
+ this.templates = new Map();
4
+ this.initializeTemplates();
5
+ }
6
+ static getInstance() {
7
+ if (!TemplateRegistry.instance) {
8
+ TemplateRegistry.instance = new TemplateRegistry();
9
+ }
10
+ return TemplateRegistry.instance;
11
+ }
12
+ getTemplate(id) {
13
+ const template = this.templates.get(id);
14
+ if (!template) {
15
+ return this.templates.get("default");
16
+ }
17
+ return template;
18
+ }
19
+ getAllTemplates() {
20
+ const result = {};
21
+ for (const [id, template] of this.templates) {
22
+ result[id] = template;
23
+ }
24
+ return result;
25
+ }
26
+ hasTemplate(id) {
27
+ return this.templates.has(id);
28
+ }
29
+ initializeTemplates() {
30
+ this.templates.set("default", {
31
+ id: "default",
32
+ name: "Default Blue",
33
+ primaryColor: "#0b79f7",
34
+ secondaryColor: "#eef2ff",
35
+ accentColor: "#0b79f7",
36
+ backgroundColor: "#f6f8fa",
37
+ textColor: "#333",
38
+ borderColor: "#e6e9ef",
39
+ mutedText: "#6b7280",
40
+ successColor: "#10b981",
41
+ errorColor: "#ef4444",
42
+ });
43
+ this.templates.set("alternative", {
44
+ id: "alternative",
45
+ name: "Alternative Green",
46
+ primaryColor: "#10b981",
47
+ secondaryColor: "#d1fae5",
48
+ accentColor: "#059669",
49
+ backgroundColor: "#f0fdf4",
50
+ textColor: "#1f2937",
51
+ borderColor: "#d1d5db",
52
+ mutedText: "#6b7280",
53
+ successColor: "#059669",
54
+ errorColor: "#dc2626",
55
+ });
56
+ }
57
+ }
58
+ export const templateRegistry = TemplateRegistry.getInstance();
@@ -10,44 +10,13 @@ declare class AppointmentCalendarWidget {
10
10
  private container;
11
11
  private options;
12
12
  private mounted;
13
- private step;
14
- private addresses;
15
- private addressDoctorsMap;
16
- private selectedAddress;
17
- private workspaceId;
13
+ private state;
18
14
  private doctors;
19
- private selectedDoctor;
20
- private date;
21
- private slots;
22
- private selectedSlot;
23
- private loading;
24
- private error;
25
- private patientName;
26
- private patientAge;
27
- private patientAddress;
28
- private patientCity;
29
- private patientState;
30
- private patientCountry;
31
- private patientZipcode;
32
- private patientLandmark;
33
- private patientEmail;
34
- private patientGender;
35
- private problemFacing;
36
- private consultationCharge;
37
- private countryCode;
38
- private patientPhone;
39
- private otpCode;
40
- private otpSent;
41
- private otpVerified;
42
- private otpSending;
43
- private otpVerifying;
44
15
  constructor(container: HTMLElement | string, options: AppointmentCalendarWidgetOptions);
45
16
  private init;
46
17
  private loadAddresses;
47
18
  private handleAddressChange;
48
19
  private loadSlots;
49
- private validatePhoneNumber;
50
- private validateCountryCode;
51
20
  private canProceedFromMergedStep;
52
21
  private sendOtp;
53
22
  private verifyOtp;
@@ -55,8 +24,7 @@ declare class AppointmentCalendarWidget {
55
24
  private goToNext;
56
25
  private goBack;
57
26
  private reset;
58
- private setLoading;
59
- private setError;
27
+ private setState;
60
28
  private render;
61
29
  private renderStep;
62
30
  private renderStep0;