@srimandir/kundli-matching-generator 7.47.0 → 11.5.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 (47) hide show
  1. package/dist/analytics.d.ts +20 -8
  2. package/dist/components/AstrologersSection/AstrologersSection.d.ts +7 -0
  3. package/dist/components/AstrologersSection/index.d.ts +2 -0
  4. package/dist/components/BabaTestimonialSection/BabaTestimonialSection.d.ts +13 -0
  5. package/dist/components/BabaTestimonialSection/index.d.ts +2 -0
  6. package/dist/components/ContactSection/ContactSection.d.ts +7 -0
  7. package/dist/components/ContactSection/index.d.ts +2 -0
  8. package/dist/components/FAQSection/FAQSection.d.ts +3 -1
  9. package/dist/components/HeroSection/HeroSection.d.ts +29 -3
  10. package/dist/components/HeroSection/index.d.ts +2 -2
  11. package/dist/components/KundliMatchingFormSection/KundliMatchingFormSection.d.ts +4 -0
  12. package/dist/components/KundliMatchingFormSection/LanguageSelector.d.ts +0 -1
  13. package/dist/components/KundliMatchingFormSection/PersonFormSection.d.ts +2 -0
  14. package/dist/components/KundliMatchingFormSection/constants.d.ts +1 -1
  15. package/dist/components/KundliMatchingFormSection/validation.d.ts +27 -0
  16. package/dist/components/KundliMatchingHeader/KundliMatchingHeader.d.ts +4 -4
  17. package/dist/components/KundliMatchingPage/KundliMatchingContext.d.ts +1 -1
  18. package/dist/components/KundliMatchingPage/KundliMatchingPage.d.ts +7 -2
  19. package/dist/components/KundliMatchingPlanBottomSheet/KundliMatchingPlanBottomSheet.d.ts +8 -2
  20. package/dist/components/ProceedFooter/ProceedFooter.d.ts +4 -0
  21. package/dist/components/ReportHighlightsSection/ReportHighlightsSection.d.ts +9 -0
  22. package/dist/components/ReportHighlightsSection/index.d.ts +2 -0
  23. package/dist/components/SneakPeekSection/SneakPeekSection.d.ts +14 -1
  24. package/dist/components/ViewSampleReportButton/SampleReportModal.d.ts +2 -0
  25. package/dist/components/index.d.ts +8 -2
  26. package/dist/criticalCss-DowKZ-Dx.js +1667 -0
  27. package/dist/criticalCss-DowKZ-Dx.js.map +1 -0
  28. package/dist/form-entry.js +10 -11
  29. package/dist/form-entry.js.map +1 -1
  30. package/dist/i18n/index.d.ts +1 -1
  31. package/dist/i18n/translations.d.ts +5 -0
  32. package/dist/image-CBEADGro.js +2329 -0
  33. package/dist/image-CBEADGro.js.map +1 -0
  34. package/dist/index.d.ts +11 -4
  35. package/dist/kundli-matching-generator.js +174 -35
  36. package/dist/kundli-matching-generator.js.map +1 -1
  37. package/dist/page-entry.d.ts +2 -1
  38. package/dist/page-entry.js +16 -14
  39. package/dist/page-entry.js.map +1 -1
  40. package/dist/style.css +1 -1
  41. package/package.json +5 -2
  42. package/dist/analytics-DOxGfyuB.js +0 -74
  43. package/dist/analytics-DOxGfyuB.js.map +0 -1
  44. package/dist/criticalCss-DMyEOjPS.js +0 -1559
  45. package/dist/criticalCss-DMyEOjPS.js.map +0 -1
  46. package/dist/image-L58ynFKN.js +0 -2064
  47. package/dist/image-L58ynFKN.js.map +0 -1
@@ -82,29 +82,29 @@ export interface KundliMatchingAnalytics {
82
82
  trackBoyNameSectionClicked?(): void;
83
83
  trackBoyNameSectionFilled?(): void;
84
84
  trackBoyDobClicked?(): void;
85
- trackBoyDobFilled?(): void;
85
+ trackBoyDobFilled?(dob: string): void;
86
86
  trackBoyTimeClicked?(): void;
87
- trackBoyTimeFilled?(): void;
87
+ trackBoyTimeFilled?(birthTime: string): void;
88
88
  trackBoyTimeCheckboxClicked?(): void;
89
89
  trackBoyPlaceOfBirthClicked?(): void;
90
- trackBoyPlaceOfBirthChosen?(): void;
90
+ trackBoyPlaceOfBirthChosen?(placeOfBirth: string): void;
91
91
  trackGirlNameSectionClicked?(): void;
92
92
  trackGirlNameSectionFilled?(): void;
93
93
  trackGirlDobClicked?(): void;
94
- trackGirlDobFilled?(): void;
94
+ trackGirlDobFilled?(dob: string): void;
95
95
  trackGirlTimeClicked?(): void;
96
- trackGirlTimeFilled?(): void;
96
+ trackGirlTimeFilled?(birthTime: string): void;
97
97
  trackGirlTimeCheckboxClicked?(): void;
98
98
  trackGirlPlaceOfBirthClicked?(): void;
99
- trackGirlPlaceOfBirthChosen?(): void;
99
+ trackGirlPlaceOfBirthChosen?(placeOfBirth: string): void;
100
100
  trackLanguageOfReportClicked?(): void;
101
101
  trackLanguageOfReportSelected?(params: {
102
102
  language: string;
103
103
  }): void;
104
104
  trackPhoneSectionClicked?(): void;
105
- trackPhoneSectionFilled?(): void;
105
+ trackPhoneSectionFilled?(phone: string): void;
106
106
  trackEmailSectionClicked?(): void;
107
- trackEmailSectionFilled?(): void;
107
+ trackEmailSectionFilled?(email: string): void;
108
108
  trackKundliMatchingL0CtaClick?(params: {
109
109
  ctaText: string;
110
110
  isFormComplete: boolean;
@@ -137,6 +137,9 @@ export interface KundliMatchingAnalytics {
137
137
  trackHowItWorksSectionViewed?(): void;
138
138
  trackWhyUsSectionViewed?(): void;
139
139
  trackFaqSectionViewed?(): void;
140
+ trackBabaSuggestionsImpression?(): void;
141
+ trackBookVideoImpression?(): void;
142
+ trackAstrologersAreaImpression?(): void;
140
143
  trackSneakPeekCardViewed?(params: {
141
144
  cardNumber: number;
142
145
  cardTitle: string;
@@ -146,4 +149,13 @@ export interface KundliMatchingAnalytics {
146
149
  reviewerName: string;
147
150
  isManualScroll: boolean;
148
151
  }): void;
152
+ trackFunnelEvent?(event: KundliMatchingFunnelEvent, props?: KundliMatchingFunnelEventProps): void;
149
153
  }
154
+ /**
155
+ * Kundli Matching PRD §6.2 event catalog. Fired verbatim alongside the events above
156
+ * via `trackFunnelEvent`; the host attaches the §6.1 common properties.
157
+ */
158
+ export type KundliMatchingFunnelEvent = 'kundli_landing_view' | 'baba_rotation_view' | 'sample_report_open' | 'sample_report_page_view' | 'form_start' | 'form_field_complete' | 'form_field_error' | 'unknown_time_toggle' | 'birth_place_selected' | 'birth_place_fallback' | 'report_language_selected' | 'form_submit_attempt' | 'form_submit_success' | 'form_submit_error' | 'plan_view' | 'plan_select' | 'payment_start' | 'payment_success' | 'payment_failure' | 'payment_cancelled' | 'language_switched';
159
+ export type KundliMatchingFunnelEventProps = Record<string, string | number | boolean>;
160
+ /** PRD SKU for a plan id (see planDefaults / host catalog plans). */
161
+ export declare const getPlanSku: (planId: string) => "kundli_plus_ast" | "kundli_only";
@@ -0,0 +1,7 @@
1
+ import { default as React } from 'react';
2
+ export interface AstrologersSectionProps {
3
+ t: (key: string) => string;
4
+ className?: string;
5
+ }
6
+ /** "Detailed Guidance from 15+ Years Experienced Astrologers" (Figma 7983:14325). */
7
+ export declare const AstrologersSection: React.FC<AstrologersSectionProps>;
@@ -0,0 +1,2 @@
1
+ export { AstrologersSection } from './AstrologersSection';
2
+ export type { AstrologersSectionProps } from './AstrologersSection';
@@ -0,0 +1,13 @@
1
+ import { default as React } from 'react';
2
+ import { SupportedLocale } from '../../i18n/translations';
3
+ import { KundliMatchingAnalytics } from '../../analytics';
4
+ export interface BabaTestimonialSectionProps {
5
+ t: (key: string) => string;
6
+ locale: SupportedLocale;
7
+ /** Messages to rotate through. Defaults to BABA_ROTATE_MESSAGES[locale]. */
8
+ messages?: string[];
9
+ className?: string;
10
+ analytics?: KundliMatchingAnalytics;
11
+ }
12
+ export declare const BABA_IMAGE_URL = "https://srm-cdn.a4b.io/yoda/1790753513124.png";
13
+ export declare const BabaTestimonialSection: React.FC<BabaTestimonialSectionProps>;
@@ -0,0 +1,2 @@
1
+ export { BabaTestimonialSection, BABA_IMAGE_URL } from './BabaTestimonialSection';
2
+ export type { BabaTestimonialSectionProps } from './BabaTestimonialSection';
@@ -0,0 +1,7 @@
1
+ import { default as React } from 'react';
2
+ export interface ContactSectionProps {
3
+ t: (key: string) => string;
4
+ className?: string;
5
+ }
6
+ /** "Contact Us" (Figma 7983:13456; Hindi 8179:13654). */
7
+ export declare const ContactSection: React.FC<ContactSectionProps>;
@@ -0,0 +1,2 @@
1
+ export { ContactSection } from './ContactSection';
2
+ export type { ContactSectionProps } from './ContactSection';
@@ -2,6 +2,8 @@ import { FC } from 'react';
2
2
  export interface FAQSectionProps {
3
3
  t: (key: string) => string;
4
4
  className?: string;
5
- headingClassName?: string;
5
+ /** Index of the item open on first render (design opens the 3rd). */
6
+ defaultOpenIndex?: number;
6
7
  }
8
+ /** "Frequently Asked Questions" (Figma 7983:13449). One item open at a time. */
7
9
  export declare const FAQSection: FC<FAQSectionProps>;
@@ -1,13 +1,39 @@
1
1
  import { default as React } from 'react';
2
+ /** Hero image per `?variant=` slug. Headline + chips are baked into the image. */
3
+ export declare const HERO_VARIANT_IMAGES: {
4
+ readonly v1: "https://srm-cdn.a4b.io/yoda/1790750877585.webp";
5
+ readonly v2: "https://srm-cdn.a4b.io/yoda/1790750877584.webp";
6
+ readonly v3: "https://srm-cdn.a4b.io/yoda/1790750877583.webp";
7
+ };
8
+ export type HeroVariant = keyof typeof HERO_VARIANT_IMAGES;
9
+ /** Hero image URL for a variant in the given surface locale (English for anything but `hi`). */
10
+ export declare const getHeroImageUrl: (variant: HeroVariant, locale?: string) => string;
11
+ /** Used when the variant param is missing, empty, or unknown. */
12
+ export declare const DEFAULT_HERO_VARIANT: HeroVariant;
2
13
  /**
3
- * Hero image URL - exported so host apps can preload this resource in document head for better performance (LCP):
4
- * <link rel="preload" as="image" href={HERO_IMAGE_URL} />
14
+ * Resolves the hero variant: URL `?variant=` wins (and is persisted to sessionStorage),
15
+ * else the session's sticky variant, else the default. Client-only.
16
+ * `source` is the PRD §6.2 `variant_source` analytics value.
5
17
  */
6
- export declare const HERO_IMAGE_URL = "https://srm-cdn.a4b.io/yoda/1774511296258.webp";
18
+ export declare const resolveHeroVariantWithSource: () => {
19
+ variant: HeroVariant;
20
+ source: "variant_param" | "default_fallback";
21
+ };
22
+ export declare const resolveHeroVariant: () => HeroVariant;
23
+ /**
24
+ * Default hero image URL - exported so host apps can preload it in document head (LCP):
25
+ * <link rel="preload" as="image" href={getHeroImageUrl(variant, locale)} />
26
+ */
27
+ export declare const HERO_IMAGE_URL: "https://srm-cdn.a4b.io/yoda/1790750877585.webp";
7
28
  export interface HeroSectionProps {
8
29
  t: (key: string) => string;
9
30
  className?: string;
10
31
  /** When true, hero image loads with priority (for LCP). Default true. */
11
32
  heroImagePriority?: boolean;
33
+ /**
34
+ * Variant slug from the host (e.g. read from searchParams on the server) so SSR renders
35
+ * the right image without a swap. When omitted, it is resolved on the client after mount.
36
+ */
37
+ variant?: string;
12
38
  }
13
39
  export declare const HeroSection: React.FC<HeroSectionProps>;
@@ -1,2 +1,2 @@
1
- export { HeroSection, HERO_IMAGE_URL } from './HeroSection';
2
- export type { HeroSectionProps } from './HeroSection';
1
+ export { HeroSection, HERO_IMAGE_URL, HERO_VARIANT_IMAGES, getHeroImageUrl, DEFAULT_HERO_VARIANT, resolveHeroVariant, resolveHeroVariantWithSource, } from './HeroSection';
2
+ export type { HeroSectionProps, HeroVariant } from './HeroSection';
@@ -6,6 +6,8 @@ export interface PersonFormValues {
6
6
  birthTime: string;
7
7
  birthTimeUnknown: boolean;
8
8
  birthPlace: string;
9
+ /** True while `birthPlace` holds typed text that wasn't picked from the Places list (PRD §3.6). */
10
+ birthPlaceNeedsPick?: boolean;
9
11
  }
10
12
  export interface KundliMatchingFormValues {
11
13
  boy: PersonFormValues;
@@ -26,6 +28,8 @@ export interface KundliMatchingFormSectionProps {
26
28
  className?: string;
27
29
  phoneIsdCode: string;
28
30
  onPhoneIsdCodeChange: (code: string) => void;
31
+ /** Show inline errors on every field, not just touched ones (set after a CTA tap on an invalid form). */
32
+ showAllErrors?: boolean;
29
33
  }
30
34
  export declare const KundliMatchingFormSection: React.FC<KundliMatchingFormSectionProps>;
31
35
  export declare const getDefaultMatchingFormValues: () => KundliMatchingFormValues;
@@ -1,7 +1,6 @@
1
1
  import { default as React } from 'react';
2
2
  import { KundliMatchingAnalytics } from '../../analytics';
3
3
  export interface LanguageSelectorProps {
4
- t: (key: string) => string;
5
4
  selectedLanguage: string;
6
5
  onChange: (language: string) => void;
7
6
  analytics?: KundliMatchingAnalytics;
@@ -9,6 +9,8 @@ export interface PersonFormSectionProps {
9
9
  googleMapsApiKey?: string;
10
10
  isGlobal?: boolean;
11
11
  analytics?: KundliMatchingAnalytics;
12
+ /** Show inline errors on every field, not just touched ones (set after a CTA tap on an invalid form). */
13
+ showAllErrors?: boolean;
12
14
  className?: string;
13
15
  }
14
16
  export declare const PersonFormSection: React.FC<PersonFormSectionProps>;
@@ -206,4 +206,4 @@ export declare const ISD_COUNTRY_OPTIONS: readonly [{
206
206
  readonly code: "+977";
207
207
  readonly country: "Nepal";
208
208
  }];
209
- 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")[];
209
+ export declare const ISD_OPTIONS: ("+91" | "+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" | "+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,27 @@
1
+ import { PersonFormValues } from './KundliMatchingFormSection';
2
+ export declare const validateFullName: (name: string) => string | null;
3
+ /** Latest DOB that is still 18 today, as YYYY-MM-DD (for the date input's max). */
4
+ export declare const getMaxDob: (today?: Date) => string;
5
+ /** Earliest DOB that is still ≤ 100 today, as YYYY-MM-DD (for the date input's min). */
6
+ export declare const getMinDob: (today?: Date) => string;
7
+ /**
8
+ * `dob` is the native date input value (YYYY-MM-DD). The input itself only emits
9
+ * real calendar dates (or ''), so this checks the 18–100 age window only.
10
+ */
11
+ export declare const validateDateOfBirth: (dob: string, today?: Date) => string | null;
12
+ export declare const validateBirthPlace: (person: PersonFormValues) => string | null;
13
+ /** +91 numbers must be 10-digit Indian mobiles (start 6/7/8/9); other ISD codes keep the plain 10-digit rule. */
14
+ export declare const validatePhone: (phone: string, isdCode: string) => string | null;
15
+ export type PersonField = 'fullName' | 'dateOfBirth' | 'birthTime' | 'birthPlace';
16
+ /** First empty-or-invalid field for one partner, or null when the block is complete and valid. */
17
+ export declare const getFirstInvalidPersonField: (person: PersonFormValues) => PersonField | null;
18
+ /** Masks raw typing to DD/MM/YYYY. Slashes are only added before a following digit, so backspace never gets stuck on one. */
19
+ export declare const maskDobInput: (raw: string) => string;
20
+ /** "DD/MM/YYYY" → "YYYY-MM-DD", or '' when incomplete or not a real calendar date (e.g. 31/02/2000). */
21
+ export declare const dobDisplayToIso: (display: string) => string;
22
+ /** "YYYY-MM-DD" → "DD/MM/YYYY" ('' passes through). */
23
+ export declare const dobIsoToDisplay: (iso: string) => string;
24
+ /** A fully typed DD/MM/YYYY that isn't a real date — the only case the mask can't prevent. */
25
+ export declare const validateDobDraft: (display: string) => string | null;
26
+ /** Date the picker opens on when the field is empty: today minus 28 years, computed at runtime (PRD §3.5). */
27
+ export declare const getDefaultPickerDob: (today?: Date) => string;
@@ -1,10 +1,10 @@
1
1
  import { default as React } from 'react';
2
2
  export interface KundliMatchingHeaderProps {
3
3
  t: (key: string) => string;
4
- languageSelector?: React.ReactNode;
5
- logoUrl?: string;
6
4
  className?: string;
7
- isGlobal?: boolean;
8
- imageComponent?: React.ComponentType<any>;
9
5
  }
6
+ /**
7
+ * Transparent header overlaid on the hero image (Figma 7983:13462).
8
+ * Must render inside KundliMatchingProvider, in a `position: relative` parent.
9
+ */
10
10
  export declare const KundliMatchingHeader: React.FC<KundliMatchingHeaderProps>;
@@ -10,7 +10,7 @@ export interface KundliMatchingContextConfig {
10
10
  isGlobal?: boolean;
11
11
  googleMapsApiKey?: string;
12
12
  plans?: KundliMatchingPlan[];
13
- onProceed?: (values: KundliMatchingFormValues, plan: KundliMatchingPlan) => void;
13
+ onProceed?: (values: KundliMatchingFormValues, plan: KundliMatchingPlan) => void | Promise<void>;
14
14
  analytics?: KundliMatchingAnalytics;
15
15
  onLocaleChange?: (locale: SupportedLocale) => void;
16
16
  /** Optional image component (e.g. next/image adapter) for optimized images. */
@@ -18,14 +18,19 @@ export interface KundliMatchingPageProps {
18
18
  googleMapsApiKey?: string;
19
19
  /** Optional plans override */
20
20
  plans?: KundliMatchingPlan[];
21
- /** Callback when proceeding to payment */
22
- onProceed?: (formValues: KundliMatchingFormValues, selectedPlan: KundliMatchingPlan) => void;
21
+ /**
22
+ * Callback when proceeding to payment. Return a promise that resolves once the
23
+ * gateway opens (or rejects on failure) to drive the CTA's loading / "Try again" states.
24
+ */
25
+ onProceed?: (formValues: KundliMatchingFormValues, selectedPlan: KundliMatchingPlan) => void | Promise<void>;
23
26
  /** Notify when user changes language */
24
27
  onLocaleChange?: (locale: SupportedLocale) => void;
25
28
  /** Pre-fills form values on mount (e.g. from URL query params on a deep-linked SEO flow). */
26
29
  initialFormValues?: Partial<KundliMatchingFormValues>;
27
30
  /** When true, automatically opens the plan selection bottom sheet once. Used for deep-linked flows where the form is already fully pre-filled. */
28
31
  autoOpenPlanSheet?: boolean;
32
+ /** Hero variant slug (`?variant=`), passed by the host for SSR. Resolved on the client when omitted. */
33
+ variant?: string;
29
34
  }
30
35
  /**
31
36
  * Complete Kundli Matching Generator page with all sections
@@ -4,8 +4,14 @@ export interface KundliMatchingPlanBottomSheetProps {
4
4
  isOpen: boolean;
5
5
  onClose: () => void;
6
6
  selectedPlan: KundliMatchingPlan | null;
7
- onSelectPlan: (plan: KundliMatchingPlan) => void;
8
- onProceed: (plan: KundliMatchingPlan) => void;
7
+ /** `byUser` is true for a tap, false/omitted for the default preselect on open. */
8
+ onSelectPlan: (plan: KundliMatchingPlan, byUser?: boolean) => void;
9
+ /**
10
+ * Return a promise to get the PRD §2.1 states: the button shows a spinner and is
11
+ * disabled while it's pending, the sheet closes when it resolves, and a rejection
12
+ * flips the label to "Try again" (tap retries). A plain `void` closes immediately.
13
+ */
14
+ onProceed: (plan: KundliMatchingPlan) => void | Promise<void>;
9
15
  plans?: KundliMatchingPlan[];
10
16
  isGlobal?: boolean;
11
17
  t?: (key: string) => string;
@@ -8,6 +8,10 @@ export interface ProceedFooterProps {
8
8
  t: (key: string) => string;
9
9
  values: KundliMatchingFormValues;
10
10
  onProceed: () => void;
11
+ /** Fired when the CTA is tapped while the form is incomplete or invalid — the page uses it to reveal all inline errors. */
12
+ onInvalidAttempt?: () => void;
13
+ /** ISD code shown next to the phone input; "+91" turns on the Indian-mobile rule. */
14
+ phoneIsdCode?: string;
11
15
  isGlobal?: boolean;
12
16
  analytics?: KundliMatchingAnalytics;
13
17
  className?: string;
@@ -0,0 +1,9 @@
1
+ import { default as React } from 'react';
2
+ export interface ReportHighlightsSectionProps {
3
+ t: (key: string) => string;
4
+ /** "Get Your Matching Report" — scrolls to the form (PRD §3.3). */
5
+ onCtaClick?: () => void;
6
+ className?: string;
7
+ }
8
+ /** "Get your Kundli Matching Report" section (Figma 7983:12826). */
9
+ export declare const ReportHighlightsSection: React.FC<ReportHighlightsSectionProps>;
@@ -0,0 +1,2 @@
1
+ export { ReportHighlightsSection } from './ReportHighlightsSection';
2
+ export type { ReportHighlightsSectionProps } from './ReportHighlightsSection';
@@ -1,8 +1,21 @@
1
1
  import { default as React } from 'react';
2
2
  import { KundliMatchingAnalytics } from '../../analytics';
3
+ type T = (key: string) => string;
4
+ /** Trust stats row values (labels are translation keys). */
5
+ export declare const SNEAK_PEEK_TRUST_STATS: readonly [{
6
+ readonly value: "4.9★";
7
+ readonly labelKey: "trustRatings";
8
+ }, {
9
+ readonly value: "12k +";
10
+ readonly labelKey: "trustUsers";
11
+ }, {
12
+ readonly value: "200+";
13
+ readonly labelKey: "trustAstrologers";
14
+ }];
3
15
  export interface SneakPeekSectionProps {
4
- t: (key: string) => string;
16
+ t: T;
5
17
  analytics?: KundliMatchingAnalytics;
6
18
  className?: string;
7
19
  }
8
20
  export declare const SneakPeekSection: React.FC<SneakPeekSectionProps>;
21
+ export {};
@@ -4,5 +4,7 @@ export interface SampleReportModalProps {
4
4
  onClose: () => void;
5
5
  title: string;
6
6
  pdfUrl: string;
7
+ /** Fired once per page per open, when a rendered page crosses the middle of the viewport. */
8
+ onPageView?: (pageNumber: number) => void;
7
9
  }
8
10
  export declare const SampleReportModal: FC<SampleReportModalProps>;
@@ -2,7 +2,13 @@ export { KundliMatchingHeader } from './KundliMatchingHeader';
2
2
  export type { KundliMatchingHeaderProps } from './KundliMatchingHeader';
3
3
  export { HeroSection } from './HeroSection';
4
4
  export type { HeroSectionProps } from './HeroSection';
5
- export { FeaturesSection } from './FeaturesSection';
6
- export type { FeaturesSectionProps } from './FeaturesSection';
5
+ export { ContactSection } from './ContactSection';
6
+ export type { ContactSectionProps } from './ContactSection';
7
+ export { AstrologersSection } from './AstrologersSection';
8
+ export type { AstrologersSectionProps } from './AstrologersSection';
9
+ export { ReportHighlightsSection } from './ReportHighlightsSection';
10
+ export type { ReportHighlightsSectionProps } from './ReportHighlightsSection';
11
+ export { BabaTestimonialSection } from './BabaTestimonialSection';
12
+ export type { BabaTestimonialSectionProps } from './BabaTestimonialSection';
7
13
  export { SneakPeekSection } from './SneakPeekSection';
8
14
  export type { SneakPeekSectionProps } from './SneakPeekSection';