@srimandir/kundli-generator 10.0.2 → 10.0.4

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 (111) hide show
  1. package/dist/analytics-C7q6coqa.js +5099 -0
  2. package/dist/analytics-C7q6coqa.js.map +1 -0
  3. package/dist/analytics.d.ts +308 -0
  4. package/dist/components/KundliForm/KundliForm.d.ts +50 -0
  5. package/dist/components/KundliForm/index.d.ts +2 -0
  6. package/dist/components/KundliForm/sections/FormHeader/FormHeader.d.ts +7 -0
  7. package/dist/components/KundliForm/sections/FormHeader/index.d.ts +2 -0
  8. package/dist/components/KundliForm/sections/ProceedFooter/ProceedFooter.d.ts +28 -0
  9. package/dist/components/KundliForm/sections/ProceedFooter/index.d.ts +2 -0
  10. package/dist/components/KundliForm/sections/UserInfoFormSection/UserInfoFormSection.d.ts +20 -0
  11. package/dist/components/KundliForm/sections/UserInfoFormSection/constants.d.ts +215 -0
  12. package/dist/components/KundliForm/sections/UserInfoFormSection/googlePlacesAutocomplete.d.ts +21 -0
  13. package/dist/components/KundliForm/sections/UserInfoFormSection/index.d.ts +2 -0
  14. package/dist/components/KundliForm/sections/UserInfoFormSection/useAtlasPlacesAutocomplete.d.ts +22 -0
  15. package/dist/components/KundliForm/sections/UserInfoFormSection/useGooglePlacesAutocomplete.d.ts +51 -0
  16. package/dist/components/KundliForm/sections/index.d.ts +3 -0
  17. package/dist/components/KundliPage/KundliContext.d.ts +108 -0
  18. package/dist/components/KundliPage/KundliPage.d.ts +92 -0
  19. package/dist/components/KundliPage/KundliPageV1.d.ts +98 -0
  20. package/dist/components/KundliPage/KundliPageVariant.d.ts +10 -0
  21. package/dist/components/KundliPage/index.d.ts +4 -0
  22. package/dist/components/KundliPage/sections/CTAFooter/CTAFooter.d.ts +15 -0
  23. package/dist/components/KundliPage/sections/CTAFooter/index.d.ts +2 -0
  24. package/dist/components/KundliPage/sections/ContactUsSection/ContactUsSection.d.ts +9 -0
  25. package/dist/components/KundliPage/sections/ContactUsSection/index.d.ts +2 -0
  26. package/dist/components/KundliPage/sections/FAQSection/FAQSection.d.ts +8 -0
  27. package/dist/components/KundliPage/sections/FAQSection/index.d.ts +2 -0
  28. package/dist/components/KundliPage/sections/FeedbackSection/FeedbackSection.d.ts +13 -0
  29. package/dist/components/KundliPage/sections/FeedbackSection/index.d.ts +2 -0
  30. package/dist/components/KundliPage/sections/HeroSection/HeroSection.d.ts +5 -0
  31. package/dist/components/KundliPage/sections/HeroSection/index.d.ts +2 -0
  32. package/dist/components/KundliPage/sections/KundliHeader/KundliHeader.d.ts +7 -0
  33. package/dist/components/KundliPage/sections/KundliHeader/index.d.ts +2 -0
  34. package/dist/components/KundliPage/sections/KundliTableSection/KundliTableSection.constants.d.ts +36 -0
  35. package/dist/components/KundliPage/sections/KundliTableSection/SampleReportsSection.d.ts +10 -0
  36. package/dist/components/KundliPage/sections/KundliTableSection/index.d.ts +3 -0
  37. package/dist/components/KundliPage/sections/PremiumReportOverview/PremiumReportOverview.d.ts +26 -0
  38. package/dist/components/KundliPage/sections/PremiumReportOverview/index.d.ts +2 -0
  39. package/dist/components/KundliPage/sections/ThreeStepsProcess/ThreeStepsProcess.d.ts +8 -0
  40. package/dist/components/KundliPage/sections/ThreeStepsProcess/index.d.ts +2 -0
  41. package/dist/components/KundliPage/sections/UniversityCertification/UniversityCertification.d.ts +7 -0
  42. package/dist/components/KundliPage/sections/UniversityCertification/index.d.ts +2 -0
  43. package/dist/components/KundliPage/sections/UtmBannerSection/UtmBannerSection.d.ts +8 -0
  44. package/dist/components/KundliPage/sections/UtmBannerSection/index.d.ts +2 -0
  45. package/dist/components/KundliPage/sections/ViewSampleReportButton/SampleReportModal.d.ts +8 -0
  46. package/dist/components/KundliPage/sections/ViewSampleReportButton/ViewSampleReportButton.d.ts +14 -0
  47. package/dist/components/KundliPage/sections/ViewSampleReportButton/index.d.ts +2 -0
  48. package/dist/components/KundliPage/sections/WhatYoullFindSection/WhatYoullFindSection.d.ts +7 -0
  49. package/dist/components/KundliPage/sections/WhatYoullFindSection/index.d.ts +2 -0
  50. package/dist/components/KundliPage/sections/WhyUsSection/WhyUsSection.d.ts +5 -0
  51. package/dist/components/KundliPage/sections/WhyUsSection/index.d.ts +2 -0
  52. package/dist/components/KundliPage/sections/index.d.ts +13 -0
  53. package/dist/components/KundliPlanBottomSheet/AstrologerCard.d.ts +10 -0
  54. package/dist/components/KundliPlanBottomSheet/AstrologerDetails.d.ts +19 -0
  55. package/dist/components/KundliPlanBottomSheet/ConsultationSlotFields.d.ts +54 -0
  56. package/dist/components/KundliPlanBottomSheet/ConsultationSlotModal.d.ts +6 -0
  57. package/dist/components/KundliPlanBottomSheet/KundliPlanBottomSheet.d.ts +37 -0
  58. package/dist/components/KundliPlanBottomSheet/MostPopularBadge.d.ts +4 -0
  59. package/dist/components/KundliPlanBottomSheet/PlanCard.d.ts +19 -0
  60. package/dist/components/KundliPlanBottomSheet/PlanFeatureList.d.ts +10 -0
  61. package/dist/components/KundliPlanBottomSheet/PlanIcons.d.ts +18 -0
  62. package/dist/components/KundliPlanBottomSheet/PlanSheetHeader.d.ts +9 -0
  63. package/dist/components/KundliPlanBottomSheet/consultationSlotDefaults.d.ts +44 -0
  64. package/dist/components/KundliPlanBottomSheet/index.d.ts +7 -0
  65. package/dist/components/KundliPlanBottomSheet/planDefaults.d.ts +2 -0
  66. package/dist/components/KundliPlanBottomSheet/types.d.ts +67 -0
  67. package/dist/components/ThreeSkuPlanBottomSheet/AstrologerSection.d.ts +8 -0
  68. package/dist/components/ThreeSkuPlanBottomSheet/PlanFeatureList.d.ts +7 -0
  69. package/dist/components/ThreeSkuPlanBottomSheet/PlanSelectorStrip.d.ts +11 -0
  70. package/dist/components/ThreeSkuPlanBottomSheet/ProceedButton.d.ts +9 -0
  71. package/dist/components/ThreeSkuPlanBottomSheet/QuestionChips.d.ts +7 -0
  72. package/dist/components/ThreeSkuPlanBottomSheet/QuestionInput.d.ts +15 -0
  73. package/dist/components/ThreeSkuPlanBottomSheet/SheetHeader.d.ts +6 -0
  74. package/dist/components/ThreeSkuPlanBottomSheet/ThreeSkuAstrologerCard.d.ts +6 -0
  75. package/dist/components/ThreeSkuPlanBottomSheet/ThreeSkuAstrologerProfiles.d.ts +15 -0
  76. package/dist/components/ThreeSkuPlanBottomSheet/ThreeSkuPlanBottomSheet.d.ts +3 -0
  77. package/dist/components/ThreeSkuPlanBottomSheet/ThreeSkuPlanBottomSheet.icons.d.ts +3 -0
  78. package/dist/components/ThreeSkuPlanBottomSheet/ThreeSkuPlanBottomSheet.types.d.ts +61 -0
  79. package/dist/components/ThreeSkuPlanBottomSheet/constants.d.ts +113 -0
  80. package/dist/components/ThreeSkuPlanBottomSheet/index.d.ts +4 -0
  81. package/dist/constants/criticalCss.d.ts +12 -0
  82. package/dist/criticalCss-Dwemq76K.js +2063 -0
  83. package/dist/criticalCss-Dwemq76K.js.map +1 -0
  84. package/dist/dev/main.d.ts +0 -0
  85. package/dist/form-entry.d.ts +15 -0
  86. package/dist/form-entry.js +21 -0
  87. package/dist/form-entry.js.map +1 -0
  88. package/dist/i18n/I18nContext.d.ts +18 -0
  89. package/dist/i18n/index.d.ts +2 -0
  90. package/dist/i18n/translations.d.ts +4 -0
  91. package/dist/i18n/translations.en.d.ts +163 -0
  92. package/dist/i18n/translations.hi.d.ts +163 -0
  93. package/dist/index.d.ts +17 -0
  94. package/dist/kundli-generator.js +66 -0
  95. package/dist/kundli-generator.js.map +1 -0
  96. package/dist/page-entry.d.ts +16 -0
  97. package/dist/page-entry.js +24 -0
  98. package/dist/page-entry.js.map +1 -0
  99. package/dist/style.css +1 -0
  100. package/dist/styles.d.ts +0 -0
  101. package/dist/styles.js +2 -0
  102. package/dist/styles.js.map +1 -0
  103. package/dist/types/image.d.ts +17 -0
  104. package/dist/utils/Stringconstant.d.ts +1 -0
  105. package/dist/utils/index.d.ts +3 -0
  106. package/dist/utils/keyframeStyles.d.ts +10 -0
  107. package/dist/utils/localeStorage.d.ts +10 -0
  108. package/dist/utils/phone.d.ts +26 -0
  109. package/dist/utils/storage.d.ts +7 -0
  110. package/dist/utils/utmBanner.d.ts +23 -0
  111. package/package.json +2 -2
@@ -0,0 +1,308 @@
1
+ /**
2
+ * Event names matching Kundli Generator Events taxonomy (Mixpanel).
3
+ * Host app (e.g. hanuman) should use these when calling logEvent.
4
+ *
5
+ * IMPORTANT: When tracking kundli events, avoid including dosha-specific utm_term values.
6
+ * Use the `sanitizeKundliEventProperties` utility to filter out dosha-specific utm_terms:
7
+ *
8
+ * @example
9
+ * ```ts
10
+ * import { sanitizeKundliEventProperties } from '@srimandir/kundli-generator';
11
+ *
12
+ * // Before tracking kundli events, sanitize properties
13
+ * const properties = { ...eventData, utm_term: 'marriage-form-first' };
14
+ * const sanitized = sanitizeKundliEventProperties(properties);
15
+ * // sanitized will have utm_term removed because it's dosha-specific
16
+ *
17
+ * logEvent('primary_cta_clicked_l1', sanitized);
18
+ * ```
19
+ *
20
+ * Or use `getKundliUtmTerm()` instead of reading utm_term from URL directly:
21
+ * @example
22
+ * ```ts
23
+ * import { getKundliUtmTerm } from '@srimandir/kundli-generator';
24
+ *
25
+ * const utmTerm = getKundliUtmTerm(); // Returns null if utm_term is dosha-specific
26
+ * ```
27
+ */
28
+ export declare const KUNDLI_ANALYTICS_EVENT_NAMES: {
29
+ readonly banner_clicked_fe: "banner_clicked_fe";
30
+ readonly primary_cta_clicked_fe: "primary_cta_clicked_fe";
31
+ readonly language_changed_fe: "language_changed_fe";
32
+ readonly language_clicked_fe: "language_clicked_fe";
33
+ readonly retry_payment: "retry_payment";
34
+ readonly detailed_kundli_report_impression_fe: "detailed_kundli_report_impression_fe";
35
+ readonly payment_partner_page_opened: "payment_partner_page_opened";
36
+ readonly view_sample_report_clicked: "view_sample_report_clicked";
37
+ readonly view_sample_report_closed: "view_sample_report_closed";
38
+ readonly info_icon_clicked: "info_icon_clicked";
39
+ readonly name_section_clicked: "name_section_clicked";
40
+ readonly name_section_filled: "name_section_filled";
41
+ readonly phone_section_clicked: "phone_section_clicked";
42
+ readonly phone_section_filled: "phone_section_filled";
43
+ readonly email_section_clicked: "email_section_clicked";
44
+ readonly email_section_filled: "email_section_filled";
45
+ readonly dob_clicked: "dob_clicked";
46
+ readonly dob_filled: "dob_filled";
47
+ readonly time_clicked: "time_clicked";
48
+ readonly time_filled: "time_filled";
49
+ readonly time_checkbox_clicked: "time_checkbox_clicked";
50
+ readonly place_of_birth_clicked: "place_of_birth_clicked";
51
+ readonly place_of_birth_chosen: "place_of_birth_chosen";
52
+ readonly language_of_report_clicked: "language_of_report_clicked";
53
+ readonly primary_cta_clicked_l1: "primary_cta_clicked_l1";
54
+ /** Plan Selection Page / Bottom Sheet viewed */
55
+ readonly kundli_plan_page_viewed: "kundli_plan_page_viewed";
56
+ /** Plan selected (card clicked) */
57
+ readonly kundli_plan_selected: "kundli_plan_selected";
58
+ /** Proceed to payment clicked on plan sheet */
59
+ readonly kundli_plan_proceed_clicked: "kundli_plan_proceed_clicked";
60
+ /** Plan sheet closed without proceeding */
61
+ readonly kundli_plan_page_closed: "kundli_plan_page_closed";
62
+ /** "Select consultation slot" CTA clicked on the astrologer guidance plan card */
63
+ readonly kundli_plan_select_consultation_slot_clicked: "kundli_plan_select_consultation_slot_clicked";
64
+ /** Plan selection screen loads (full-screen consultation scheduling flow) */
65
+ readonly kundli_plan_screen_viewed: "kundli_plan_screen_viewed";
66
+ /** Slot selection screen loads */
67
+ readonly kundli_slot_screen_viewed: "kundli_slot_screen_viewed";
68
+ /** User picks a date */
69
+ readonly kundli_slot_date_selected: "kundli_slot_date_selected";
70
+ /** User switches Morning/Afternoon/Evening */
71
+ readonly kundli_day_part_selected: "kundli_day_part_selected";
72
+ /** User picks a guidance topic chip */
73
+ readonly kundli_guidance_topic_selected: "kundli_guidance_topic_selected";
74
+ /** User taps a time slot */
75
+ readonly kundli_slot_selected: "kundli_slot_selected";
76
+ /** User taps confirm slot / proceeds to reserve ("Proceed to payment" in the slot modal) */
77
+ readonly kundli_slot_reservation_requested: "kundli_slot_reservation_requested";
78
+ /** Payment screen loads with an active hold (tracked by host app's payment page) */
79
+ readonly kundli_payment_screen_viewed: "kundli_payment_screen_viewed";
80
+ /** User selects a payment method (tracked by host app's payment page) */
81
+ readonly kundli_payment_method_selected: "kundli_payment_method_selected";
82
+ /** User confirms payment / gateway opens (tracked by host app's payment page) */
83
+ readonly kundli_payment_initiated: "kundli_payment_initiated";
84
+ /** Success + confirmation screen shown (tracked by host app's confirmation page) */
85
+ readonly kundli_booking_confirmation_viewed: "kundli_booking_confirmation_viewed";
86
+ /** User routed back to re-select after losing their slot (expired/failed/taken) */
87
+ readonly kundli_slot_lost_fallback_shown: "kundli_slot_lost_fallback_shown";
88
+ /** Legacy / alias: when landing page is viewed */
89
+ readonly kundli_page_view: "kundli_page_view";
90
+ /** Legacy / alias: when L1 form page is viewed (same as l1_page_opened) */
91
+ readonly kundli_form_view: "kundli_form_view";
92
+ /** 3-SKU: sample report viewed for the 1-question plan */
93
+ readonly one_question_view_sample_report_clicked: "1_question_view_sample_report_clicked";
94
+ readonly one_question_view_sample_report_closed: "1_question_view_sample_report_closed";
95
+ /** Sample image modal events */
96
+ readonly kundli_view_sample_image_clicked: "kundli_view_sample_image_clicked";
97
+ readonly kundli_view_sample_image_closed: "kundli_view_sample_image_closed";
98
+ };
99
+ export type KundliAnalyticsEventName = (typeof KUNDLI_ANALYTICS_EVENT_NAMES)[keyof typeof KUNDLI_ANALYTICS_EVENT_NAMES];
100
+ /**
101
+ * Whether a consultation-slot-modal event fired during the original,
102
+ * pre-payment booking flow, or during the "Book slot again" retry flow on
103
+ * /payment_success (payment already succeeded, slot booking failed).
104
+ */
105
+ export type ConsultationEventStatus = "pre_payment" | "post_payment";
106
+ /** Optional analytics implementation. Pass from host to KundliPage/KundliForm to track events. */
107
+ export interface KundliAnalytics {
108
+ trackBannerClicked?(): void;
109
+ trackPrimaryCtaClickedFe?(params: {
110
+ ctaText?: string;
111
+ }): void;
112
+ trackKundliDetailedClicked?(): void;
113
+ trackLanguageChangedFe?(params: {
114
+ newLanguage: string;
115
+ }): void;
116
+ trackLanguageClickedFe?(params: {
117
+ language: string;
118
+ }): void;
119
+ trackDetailedKundliReportImpressionFe?(params: {
120
+ section: string;
121
+ timestamp?: string;
122
+ }): void;
123
+ trackViewSampleReportClicked?(): void;
124
+ trackViewSampleReportClosed?(): void;
125
+ trackInfoIconClicked?(params: {
126
+ fieldName: string;
127
+ }): void;
128
+ trackNameSectionClicked?(): void;
129
+ trackNameSectionFilled?(): void;
130
+ trackPhoneSectionClicked?(): void;
131
+ trackPhoneSectionFilled?(params: {
132
+ phone: string;
133
+ }): void;
134
+ trackEmailSectionClicked?(): void;
135
+ trackEmailSectionFilled?(params: {
136
+ email: string;
137
+ }): void;
138
+ trackDobClicked?(): void;
139
+ trackDobFilled?(): void;
140
+ trackTimeClicked?(): void;
141
+ trackTimeFilled?(): void;
142
+ trackTimeCheckboxClicked?(): void;
143
+ trackPlaceOfBirthClicked?(): void;
144
+ trackPlaceOfBirthChosen?(): void;
145
+ trackLanguageOfReportClicked?(): void;
146
+ trackGenderSelected?(params: {
147
+ gender: string;
148
+ }): void;
149
+ trackLanguageOfReportSelected?(params: {
150
+ language: string;
151
+ }): void;
152
+ trackPrimaryCtaClickedL1?(params: {
153
+ avenue?: string;
154
+ }): void;
155
+ trackKundliPageView?(): void;
156
+ trackKundliFormView?(): void;
157
+ trackReadMoreReviewsClicked?(): void;
158
+ trackPlanPageViewed?(): void;
159
+ trackPlanSelected?(params: {
160
+ planId: string;
161
+ planName: string;
162
+ price?: string;
163
+ includes_consultation?: boolean;
164
+ cta_label?: string;
165
+ }): void;
166
+ /** Updated: includes question-related fields for the 3-SKU experiment. */
167
+ trackPlanProceedClicked?(params: {
168
+ planId: string;
169
+ planName: string;
170
+ price?: string;
171
+ currency?: string;
172
+ question_asked?: boolean;
173
+ question_text?: string;
174
+ question_source?: 'chip' | 'custom' | 'chip_edited';
175
+ cta_type?: 'proceed' | 'confirm_consultation_slot';
176
+ next_step?: 'payment' | 'slot_selection';
177
+ }): void;
178
+ trackPlanPageClosed?(): void;
179
+ /** Fires when the astrologer guidance plan's "Select consultation slot" CTA is clicked. */
180
+ trackSelectConsultationSlotClicked?(params: {
181
+ planId: string;
182
+ planName: string;
183
+ }): void;
184
+ /** Fires when the (full-screen) plan selection screen loads. */
185
+ trackPlanScreenViewed?(params: {
186
+ plans_shown: string[];
187
+ default_selected_plan: string;
188
+ }): void;
189
+ /** Fires as soon as the host app's availability response is received, regardless of whether the modal has rendered yet. */
190
+ trackAstrologerAvailabilityServed?(params: {
191
+ astrologers_shown: string[];
192
+ dates_available_count: number;
193
+ status: ConsultationEventStatus;
194
+ }): void;
195
+ /** Fires when the consultation slot selection screen (full-screen modal) loads. */
196
+ trackSlotScreenViewed?(params: {
197
+ astrologers_shown: string[];
198
+ dates_available_count: number;
199
+ status: ConsultationEventStatus;
200
+ }): void;
201
+ /** Fires when the modal auto-selects the default consultation language. */
202
+ trackConsultationLanguageDefaultSelected?(params: {
203
+ language: string;
204
+ status: ConsultationEventStatus;
205
+ }): void;
206
+ /** Fires when the user manually changes the consultation language via the dropdown. */
207
+ trackConsultationLanguageChanged?(params: {
208
+ previous_language: string;
209
+ new_language: string;
210
+ slots_available: "yes" | "no";
211
+ status: ConsultationEventStatus;
212
+ }): void;
213
+ /** Fires when the modal auto-selects the default consultation date. */
214
+ trackConsultationDateDefaultSelected?(params: {
215
+ date: string;
216
+ status: ConsultationEventStatus;
217
+ }): void;
218
+ /** Fires when the modal auto-selects the default consultation time. */
219
+ trackConsultationTimeDefaultSelected?(params: {
220
+ time: string;
221
+ gmt_offset: string;
222
+ status: ConsultationEventStatus;
223
+ }): void;
224
+ /** Fires when the user picks a date tab. */
225
+ trackSlotDateSelected?(params: {
226
+ date: string;
227
+ day_part_default: string;
228
+ status: ConsultationEventStatus;
229
+ }): void;
230
+ /** Fires when the user switches Morning/Afternoon/Evening. */
231
+ trackDayPartSelected?(params: {
232
+ day_part: string;
233
+ slots_available_count: number;
234
+ status: ConsultationEventStatus;
235
+ }): void;
236
+ /** Fires when the user picks a guidance topic chip. */
237
+ trackGuidanceTopicSelected?(params: {
238
+ topic: string;
239
+ status: ConsultationEventStatus;
240
+ }): void;
241
+ /** Fires when the user taps a time slot. */
242
+ trackSlotSelected?(params: {
243
+ astrologer_id?: string;
244
+ date: string;
245
+ time: string;
246
+ day_part: string;
247
+ topic: string | null;
248
+ status: ConsultationEventStatus;
249
+ }): void;
250
+ /** Fires when the user taps the slot modal's "Proceed to payment" (confirm slot) CTA. */
251
+ trackSlotReservationRequested?(params: {
252
+ astrologer_id?: string;
253
+ slot_datetime: string;
254
+ status: ConsultationEventStatus;
255
+ }): void;
256
+ /** Fires when the payment screen loads with an active hold. Tracked by the host app. */
257
+ trackPaymentScreenViewed?(params: {
258
+ reservation_id: string;
259
+ amount: number;
260
+ currency: string;
261
+ seconds_remaining: number;
262
+ }): void;
263
+ /** Fires when the user selects a payment method. Tracked by the host app. */
264
+ trackPaymentMethodSelected?(params: {
265
+ method: string;
266
+ provider?: string;
267
+ }): void;
268
+ /** Fires when the user confirms payment / gateway opens. Tracked by the host app. */
269
+ trackPaymentInitiated?(params: {
270
+ reservation_id: string;
271
+ amount: number;
272
+ currency: string;
273
+ method: string;
274
+ }): void;
275
+ /** Fires when the booking confirmation screen is shown. Tracked by the host app. */
276
+ trackBookingConfirmationViewed?(params: {
277
+ booking_id: string;
278
+ slot_datetime: string;
279
+ astrologer_id?: string;
280
+ topic: string;
281
+ }): void;
282
+ /** Fires when the user is routed back to re-select after losing their slot. Tracked by the host app. */
283
+ trackSlotLostFallbackShown?(params: {
284
+ reason: 'expired' | 'payment_failed' | 'slot_taken';
285
+ }): void;
286
+ /** Fires once when the SKU comparison table enters the viewport (≥50% visible). */
287
+ trackComparisonTableImpression?(): void;
288
+ /** Fires the first time per card-expansion the user focuses the question textbox. */
289
+ trackQuestionTextboxClicked?(params: {
290
+ entry_method: 'tap' | 'keyboard_focus';
291
+ textbox_empty: boolean;
292
+ }): void;
293
+ /** Fires every time a suggested-question chip is selected. */
294
+ trackPreSuggestedQuestionSelected?(params: {
295
+ question_text_loaded: string;
296
+ chip_index: number;
297
+ previous_chip_index: number | null;
298
+ user_had_custom_text: boolean;
299
+ }): void;
300
+ /** Fires when the 1-question plan sample report PDF is opened. */
301
+ trackOneQuestionViewSampleReportClicked?(): void;
302
+ /** Fires when the 1-question plan sample report PDF is closed. */
303
+ trackOneQuestionViewSampleReportClosed?(): void;
304
+ /** Fires when the sample kundli image modal is opened. */
305
+ trackKundliViewSampleImageClicked?(): void;
306
+ /** Fires when the sample kundli image modal is closed. */
307
+ trackKundliViewSampleImageClosed?(): void;
308
+ }
@@ -0,0 +1,50 @@
1
+ import { SupportedLocale } from '../../i18n/translations';
2
+ import { KundliAnalytics } from '../../analytics';
3
+ import { AtlasSearchLocalities } from './sections/UserInfoFormSection/useGooglePlacesAutocomplete';
4
+ export interface KundliFormValues {
5
+ fullName: string;
6
+ phone?: string;
7
+ /** ISD/country code for `phone` (e.g. "+1", "+91"). Prefilled from a `country_code` query param for international users; defaults to "+91"/"+1" based on `isGlobal` when absent or invalid. */
8
+ phoneCountryCode?: string;
9
+ gender?: "male" | "female" | "";
10
+ email: string;
11
+ language_code?: "hi" | "en" | "te" | "ta" | "kn" | "gu" | "mr" | "";
12
+ dateOfBirth: string;
13
+ birthTime: string;
14
+ birthTimeUnknown: boolean;
15
+ birthPlace: string;
16
+ /** Latitude of birth place, when known (e.g. from Atlas locality search). Optional; not set for Google Places selections. */
17
+ birthPlaceLat?: number;
18
+ /** Longitude of birth place, when known (e.g. from Atlas locality search). Optional; not set for Google Places selections. */
19
+ birthPlaceLng?: number;
20
+ }
21
+ export interface KundliFormProps {
22
+ className?: string;
23
+ /** Language (en, hi). Overrides I18nProvider if set. Initial value when using dropdown. */
24
+ locale?: SupportedLocale;
25
+ /** Show language dropdown. Default true. */
26
+ showLanguageSelector?: boolean;
27
+ /** Back button handler in header */
28
+ onBack?: () => void;
29
+ /** Initial field values */
30
+ initialValues?: Partial<KundliFormValues>;
31
+ /** Called when user clicks Proceed to payment */
32
+ onProceed?: (values: KundliFormValues) => void;
33
+ /** Callback for Guidance plan (749 price) specifically */
34
+ onProceedGuidance?: (values: KundliFormValues) => void;
35
+ /** If provided, proceed CTA becomes a link */
36
+ proceedHref?: string;
37
+ /** Footer pricing */
38
+ originalPriceLabel?: string;
39
+ discountedPriceLabel?: string;
40
+ discountPillLabel?: string;
41
+ /** Google Maps API key used for Birth Place autocomplete */
42
+ googleMapsApiKey?: string;
43
+ /** Atlas localities search callback, used for Birth Place autocomplete when `googleMapsAutocompleteEnabled` is false. */
44
+ atlasSearchLocalities?: AtlasSearchLocalities;
45
+ /** When true (default), birth place autocomplete uses Google Places. When false, uses Atlas via `atlasSearchLocalities`. */
46
+ googleMapsAutocompleteEnabled?: boolean;
47
+ /** Optional analytics (Mixpanel etc.). Also set on KundliProvider; passing here ensures events fire when form is used inside provider (e.g. avoids context loss from multiple React instances). */
48
+ analytics?: KundliAnalytics;
49
+ }
50
+ export declare const KundliForm: React.FC<KundliFormProps>;
@@ -0,0 +1,2 @@
1
+ export { KundliForm } from './KundliForm';
2
+ export type { KundliFormProps, KundliFormValues } from './KundliForm';
@@ -0,0 +1,7 @@
1
+ export interface FormHeaderProps {
2
+ t: (key: string) => string;
3
+ onBack?: () => void;
4
+ className?: string;
5
+ align?: "left" | "center";
6
+ }
7
+ export declare const FormHeader: React.FC<FormHeaderProps>;
@@ -0,0 +1,2 @@
1
+ export { FormHeader } from './FormHeader';
2
+ export type { FormHeaderProps } from './FormHeader';
@@ -0,0 +1,28 @@
1
+ import { KundliFormValues } from '../../KundliForm';
2
+ import { KundliAnalytics } from '../../../../analytics';
3
+ import { KundliPlan } from '../../../KundliPlanBottomSheet';
4
+ export declare const BadgeRow: React.FC<{
5
+ t: (key: string) => string;
6
+ }>;
7
+ export interface ProceedFooterProps {
8
+ t: (key: string) => string;
9
+ values: KundliFormValues;
10
+ phoneIsdCode: string;
11
+ hideOriginalPrice?: boolean;
12
+ requireV1ExtraFields?: boolean;
13
+ onValidationFailed?: (field: string) => void;
14
+ onProceed?: (values: KundliFormValues) => void;
15
+ /** Callback for Guidance plan (749 price) specifically */
16
+ onProceedGuidance?: (values: KundliFormValues) => void;
17
+ href?: string;
18
+ analytics?: KundliAnalytics;
19
+ className?: string;
20
+ originalPriceLabel?: string;
21
+ discountedPriceLabel?: string;
22
+ discountPillLabel?: string;
23
+ showPlanSheet?: (values: KundliFormValues) => void;
24
+ confirmPlan?: () => void;
25
+ planSheetOpen?: boolean;
26
+ selectedPlan?: KundliPlan | null;
27
+ }
28
+ export declare const ProceedFooter: React.FC<ProceedFooterProps>;
@@ -0,0 +1,2 @@
1
+ export { ProceedFooter } from './ProceedFooter';
2
+ export type { ProceedFooterProps } from './ProceedFooter';
@@ -0,0 +1,20 @@
1
+ import { KundliFormValues } from '../../KundliForm';
2
+ import { KundliAnalytics } from '../../../../analytics';
3
+ import { AtlasSearchLocalities } from './useGooglePlacesAutocomplete';
4
+ export interface UserInfoFormSectionProps {
5
+ t: (key: string) => string;
6
+ values: KundliFormValues;
7
+ onChange: (values: KundliFormValues) => void;
8
+ phoneIsdCode: string;
9
+ onPhoneIsdCodeChange: (code: string) => void;
10
+ showV1ExtraFields?: boolean;
11
+ analytics?: KundliAnalytics;
12
+ /** Google Maps API key used for Birth Place autocomplete */
13
+ googleMapsApiKey?: string;
14
+ /** Atlas localities search callback, used for Birth Place autocomplete when `googleMapsAutocompleteEnabled` is false. */
15
+ atlasSearchLocalities?: AtlasSearchLocalities;
16
+ /** When true (default), birth place autocomplete uses Google Places. When false, uses Atlas via `atlasSearchLocalities`. */
17
+ googleMapsAutocompleteEnabled?: boolean;
18
+ className?: string;
19
+ }
20
+ export declare const UserInfoFormSection: React.FC<UserInfoFormSectionProps>;
@@ -0,0 +1,215 @@
1
+ export declare const ICONS: {
2
+ readonly time: "https://srm-cdn.a4b.io/yoda/1770372014782.svg";
3
+ readonly location: "https://srm-cdn.a4b.io/yoda/1770372031092.svg";
4
+ readonly date: "https://srm-cdn.a4b.io/yoda/1770372045894.svg";
5
+ readonly info: "https://srm-cdn.a4b.io/yoda/1770372066357.svg";
6
+ };
7
+ export declare const ISD_COUNTRY_OPTIONS: readonly [{
8
+ readonly code: "+1";
9
+ readonly country: "USA / Canada";
10
+ }, {
11
+ readonly code: "+7";
12
+ readonly country: "Russia / Kazakhstan";
13
+ }, {
14
+ readonly code: "+20";
15
+ readonly country: "Egypt";
16
+ }, {
17
+ readonly code: "+27";
18
+ readonly country: "South Africa";
19
+ }, {
20
+ readonly code: "+30";
21
+ readonly country: "Greece";
22
+ }, {
23
+ readonly code: "+31";
24
+ readonly country: "Netherlands";
25
+ }, {
26
+ readonly code: "+32";
27
+ readonly country: "Belgium";
28
+ }, {
29
+ readonly code: "+33";
30
+ readonly country: "France";
31
+ }, {
32
+ readonly code: "+34";
33
+ readonly country: "Spain";
34
+ }, {
35
+ readonly code: "+36";
36
+ readonly country: "Hungary";
37
+ }, {
38
+ readonly code: "+39";
39
+ readonly country: "Italy";
40
+ }, {
41
+ readonly code: "+40";
42
+ readonly country: "Romania";
43
+ }, {
44
+ readonly code: "+41";
45
+ readonly country: "Switzerland";
46
+ }, {
47
+ readonly code: "+43";
48
+ readonly country: "Austria";
49
+ }, {
50
+ readonly code: "+44";
51
+ readonly country: "United Kingdom";
52
+ }, {
53
+ readonly code: "+45";
54
+ readonly country: "Denmark";
55
+ }, {
56
+ readonly code: "+46";
57
+ readonly country: "Sweden";
58
+ }, {
59
+ readonly code: "+47";
60
+ readonly country: "Norway";
61
+ }, {
62
+ readonly code: "+48";
63
+ readonly country: "Poland";
64
+ }, {
65
+ readonly code: "+49";
66
+ readonly country: "Germany";
67
+ }, {
68
+ readonly code: "+51";
69
+ readonly country: "Peru";
70
+ }, {
71
+ readonly code: "+52";
72
+ readonly country: "Mexico";
73
+ }, {
74
+ readonly code: "+53";
75
+ readonly country: "Cuba";
76
+ }, {
77
+ readonly code: "+54";
78
+ readonly country: "Argentina";
79
+ }, {
80
+ readonly code: "+55";
81
+ readonly country: "Brazil";
82
+ }, {
83
+ readonly code: "+56";
84
+ readonly country: "Chile";
85
+ }, {
86
+ readonly code: "+57";
87
+ readonly country: "Colombia";
88
+ }, {
89
+ readonly code: "+60";
90
+ readonly country: "Malaysia";
91
+ }, {
92
+ readonly code: "+61";
93
+ readonly country: "Australia";
94
+ }, {
95
+ readonly code: "+62";
96
+ readonly country: "Indonesia";
97
+ }, {
98
+ readonly code: "+63";
99
+ readonly country: "Philippines";
100
+ }, {
101
+ readonly code: "+64";
102
+ readonly country: "New Zealand";
103
+ }, {
104
+ readonly code: "+65";
105
+ readonly country: "Singapore";
106
+ }, {
107
+ readonly code: "+66";
108
+ readonly country: "Thailand";
109
+ }, {
110
+ readonly code: "+81";
111
+ readonly country: "Japan";
112
+ }, {
113
+ readonly code: "+82";
114
+ readonly country: "South Korea";
115
+ }, {
116
+ readonly code: "+84";
117
+ readonly country: "Vietnam";
118
+ }, {
119
+ readonly code: "+86";
120
+ readonly country: "China";
121
+ }, {
122
+ readonly code: "+90";
123
+ readonly country: "Turkey";
124
+ }, {
125
+ readonly code: "+91";
126
+ readonly country: "India";
127
+ }, {
128
+ readonly code: "+92";
129
+ readonly country: "Pakistan";
130
+ }, {
131
+ readonly code: "+93";
132
+ readonly country: "Afghanistan";
133
+ }, {
134
+ readonly code: "+94";
135
+ readonly country: "Sri Lanka";
136
+ }, {
137
+ readonly code: "+95";
138
+ readonly country: "Myanmar";
139
+ }, {
140
+ readonly code: "+98";
141
+ readonly country: "Iran";
142
+ }, {
143
+ readonly code: "+211";
144
+ readonly country: "South Sudan";
145
+ }, {
146
+ readonly code: "+212";
147
+ readonly country: "Morocco";
148
+ }, {
149
+ readonly code: "+213";
150
+ readonly country: "Algeria";
151
+ }, {
152
+ readonly code: "+216";
153
+ readonly country: "Tunisia";
154
+ }, {
155
+ readonly code: "+218";
156
+ readonly country: "Libya";
157
+ }, {
158
+ readonly code: "+220";
159
+ readonly country: "Gambia";
160
+ }, {
161
+ readonly code: "+221";
162
+ readonly country: "Senegal";
163
+ }, {
164
+ readonly code: "+234";
165
+ readonly country: "Nigeria";
166
+ }, {
167
+ readonly code: "+254";
168
+ readonly country: "Kenya";
169
+ }, {
170
+ readonly code: "+255";
171
+ readonly country: "Tanzania";
172
+ }, {
173
+ readonly code: "+256";
174
+ readonly country: "Uganda";
175
+ }, {
176
+ readonly code: "+260";
177
+ readonly country: "Zambia";
178
+ }, {
179
+ readonly code: "+263";
180
+ readonly country: "Zimbabwe";
181
+ }, {
182
+ readonly code: "+264";
183
+ readonly country: "Namibia";
184
+ }, {
185
+ readonly code: "+265";
186
+ readonly country: "Malawi";
187
+ }, {
188
+ readonly code: "+880";
189
+ readonly country: "Bangladesh";
190
+ }, {
191
+ readonly code: "+886";
192
+ readonly country: "Taiwan";
193
+ }, {
194
+ readonly code: "+971";
195
+ readonly country: "United Arab Emirates";
196
+ }, {
197
+ readonly code: "+972";
198
+ readonly country: "Israel";
199
+ }, {
200
+ readonly code: "+973";
201
+ readonly country: "Bahrain";
202
+ }, {
203
+ readonly code: "+974";
204
+ readonly country: "Qatar";
205
+ }, {
206
+ readonly code: "+975";
207
+ readonly country: "Bhutan";
208
+ }, {
209
+ readonly code: "+976";
210
+ readonly country: "Mongolia";
211
+ }, {
212
+ readonly code: "+977";
213
+ readonly country: "Nepal";
214
+ }];
215
+ export declare const ISD_OPTIONS: ("+1" | "+7" | "+20" | "+27" | "+30" | "+31" | "+32" | "+33" | "+34" | "+36" | "+39" | "+40" | "+41" | "+43" | "+44" | "+45" | "+46" | "+47" | "+48" | "+49" | "+51" | "+52" | "+53" | "+54" | "+55" | "+56" | "+57" | "+60" | "+61" | "+62" | "+63" | "+64" | "+65" | "+66" | "+81" | "+82" | "+84" | "+86" | "+90" | "+91" | "+92" | "+93" | "+94" | "+95" | "+98" | "+211" | "+212" | "+213" | "+216" | "+218" | "+220" | "+221" | "+234" | "+254" | "+255" | "+256" | "+260" | "+263" | "+264" | "+265" | "+880" | "+886" | "+971" | "+972" | "+973" | "+974" | "+975" | "+976" | "+977")[];
@@ -0,0 +1,21 @@
1
+ type GooglePlacePrediction = {
2
+ description: string;
3
+ place_id: string;
4
+ structured_formatting?: {
5
+ main_text?: string;
6
+ secondary_text?: string;
7
+ };
8
+ };
9
+ declare global {
10
+ interface Window {
11
+ google?: any;
12
+ }
13
+ }
14
+ export declare const loadGoogleMapsPlaces: (apiKey: string, language?: string) => Promise<void>;
15
+ export declare const getCityPredictions: (params: {
16
+ apiKey: string;
17
+ input: string;
18
+ language?: string;
19
+ restrictCountry?: string;
20
+ }) => Promise<GooglePlacePrediction[]>;
21
+ export {};
@@ -0,0 +1,2 @@
1
+ export { UserInfoFormSection } from './UserInfoFormSection';
2
+ export type { UserInfoFormSectionProps } from './UserInfoFormSection';