@srimandir/kundli-generator 7.1.0 → 7.3.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 (45) hide show
  1. package/dist/{analytics-hg37leiF.js → analytics-CmNHIxia.js} +697 -678
  2. package/dist/analytics-CmNHIxia.js.map +1 -0
  3. package/dist/analytics.d.ts +37 -1
  4. package/dist/components/KundliForm/sections/ProceedFooter/ProceedFooter.d.ts +1 -0
  5. package/dist/components/KundliForm/sections/UserInfoFormSection/useAtlasPlacesAutocomplete.d.ts +5 -5
  6. package/dist/components/KundliForm/sections/UserInfoFormSection/useGooglePlacesAutocomplete.d.ts +8 -8
  7. package/dist/components/KundliPage/KundliContext.d.ts +5 -0
  8. package/dist/components/KundliPage/KundliPage.d.ts +12 -0
  9. package/dist/components/KundliPage/KundliPageV1.d.ts +13 -0
  10. package/dist/components/KundliPage/sections/KundliTableSection/KundliTableSection.constants.d.ts +32 -0
  11. package/dist/components/KundliPage/sections/KundliTableSection/SampleReportsSection.d.ts +10 -0
  12. package/dist/components/KundliPage/sections/KundliTableSection/index.d.ts +3 -0
  13. package/dist/components/KundliPage/sections/PremiumReportOverview/PremiumReportOverview.d.ts +6 -0
  14. package/dist/components/KundliPage/sections/UtmBannerSection/UtmBannerSection.d.ts +8 -0
  15. package/dist/components/KundliPage/sections/UtmBannerSection/index.d.ts +2 -0
  16. package/dist/components/KundliPage/sections/index.d.ts +1 -0
  17. package/dist/components/KundliPlanBottomSheet/types.d.ts +1 -0
  18. package/dist/components/ThreeSkuPlanBottomSheet/AstrologerSection.d.ts +8 -0
  19. package/dist/components/ThreeSkuPlanBottomSheet/PlanFeatureList.d.ts +7 -0
  20. package/dist/components/ThreeSkuPlanBottomSheet/PlanSelectorStrip.d.ts +11 -0
  21. package/dist/components/ThreeSkuPlanBottomSheet/ProceedButton.d.ts +9 -0
  22. package/dist/components/ThreeSkuPlanBottomSheet/QuestionChips.d.ts +7 -0
  23. package/dist/components/ThreeSkuPlanBottomSheet/QuestionInput.d.ts +15 -0
  24. package/dist/components/ThreeSkuPlanBottomSheet/SheetHeader.d.ts +6 -0
  25. package/dist/components/ThreeSkuPlanBottomSheet/ThreeSkuAstrologerCard.d.ts +6 -0
  26. package/dist/components/ThreeSkuPlanBottomSheet/ThreeSkuAstrologerProfiles.d.ts +15 -0
  27. package/dist/components/ThreeSkuPlanBottomSheet/ThreeSkuPlanBottomSheet.d.ts +3 -0
  28. package/dist/components/ThreeSkuPlanBottomSheet/ThreeSkuPlanBottomSheet.icons.d.ts +3 -0
  29. package/dist/components/ThreeSkuPlanBottomSheet/ThreeSkuPlanBottomSheet.types.d.ts +51 -0
  30. package/dist/components/ThreeSkuPlanBottomSheet/constants.d.ts +87 -0
  31. package/dist/components/ThreeSkuPlanBottomSheet/index.d.ts +4 -0
  32. package/dist/criticalCss-xbBx1kzM.js +1922 -0
  33. package/dist/criticalCss-xbBx1kzM.js.map +1 -0
  34. package/dist/form-entry.js +1 -1
  35. package/dist/index.d.ts +1 -0
  36. package/dist/kundli-generator.js +58 -23
  37. package/dist/kundli-generator.js.map +1 -1
  38. package/dist/page-entry.js +2 -2
  39. package/dist/style.css +1 -1
  40. package/dist/utils/keyframeStyles.d.ts +10 -0
  41. package/dist/utils/utmBanner.d.ts +23 -0
  42. package/package.json +2 -2
  43. package/dist/analytics-hg37leiF.js.map +0 -1
  44. package/dist/criticalCss-VFyqntMr.js +0 -1200
  45. package/dist/criticalCss-VFyqntMr.js.map +0 -1
@@ -63,6 +63,12 @@ export declare const KUNDLI_ANALYTICS_EVENT_NAMES: {
63
63
  readonly kundli_page_view: "kundli_page_view";
64
64
  /** Legacy / alias: when L1 form page is viewed (same as l1_page_opened) */
65
65
  readonly kundli_form_view: "kundli_form_view";
66
+ /** 3-SKU: sample report viewed for the 1-question plan */
67
+ readonly one_question_view_sample_report_clicked: "1_question_view_sample_report_clicked";
68
+ readonly one_question_view_sample_report_closed: "1_question_view_sample_report_closed";
69
+ /** Sample image modal events */
70
+ readonly kundli_view_sample_image_clicked: "kundli_view_sample_image_clicked";
71
+ readonly kundli_view_sample_image_closed: "kundli_view_sample_image_closed";
66
72
  };
67
73
  export type KundliAnalyticsEventName = (typeof KUNDLI_ANALYTICS_EVENT_NAMES)[keyof typeof KUNDLI_ANALYTICS_EVENT_NAMES];
68
74
  /** Optional analytics implementation. Pass from host to KundliPage/KundliForm to track events. */
@@ -94,7 +100,9 @@ export interface KundliAnalytics {
94
100
  phone: string;
95
101
  }): void;
96
102
  trackEmailSectionClicked?(): void;
97
- trackEmailSectionFilled?(): void;
103
+ trackEmailSectionFilled?(params: {
104
+ email: string;
105
+ }): void;
98
106
  trackDobClicked?(): void;
99
107
  trackDobFilled?(): void;
100
108
  trackTimeClicked?(): void;
@@ -120,9 +128,37 @@ export interface KundliAnalytics {
120
128
  planId: string;
121
129
  planName: string;
122
130
  }): void;
131
+ /** Updated: includes question-related fields for the 3-SKU experiment. */
123
132
  trackPlanProceedClicked?(params: {
124
133
  planId: string;
125
134
  planName: string;
135
+ price?: string;
136
+ currency?: string;
137
+ question_asked?: boolean;
138
+ question_text?: string;
139
+ question_source?: 'chip' | 'custom' | 'chip_edited';
126
140
  }): void;
127
141
  trackPlanPageClosed?(): void;
142
+ /** Fires once when the SKU comparison table enters the viewport (≥50% visible). */
143
+ trackComparisonTableImpression?(): void;
144
+ /** Fires the first time per card-expansion the user focuses the question textbox. */
145
+ trackQuestionTextboxClicked?(params: {
146
+ entry_method: 'tap' | 'keyboard_focus';
147
+ textbox_empty: boolean;
148
+ }): void;
149
+ /** Fires every time a suggested-question chip is selected. */
150
+ trackPreSuggestedQuestionSelected?(params: {
151
+ question_text_loaded: string;
152
+ chip_index: number;
153
+ previous_chip_index: number | null;
154
+ user_had_custom_text: boolean;
155
+ }): void;
156
+ /** Fires when the 1-question plan sample report PDF is opened. */
157
+ trackOneQuestionViewSampleReportClicked?(): void;
158
+ /** Fires when the 1-question plan sample report PDF is closed. */
159
+ trackOneQuestionViewSampleReportClosed?(): void;
160
+ /** Fires when the sample kundli image modal is opened. */
161
+ trackKundliViewSampleImageClicked?(): void;
162
+ /** Fires when the sample kundli image modal is closed. */
163
+ trackKundliViewSampleImageClosed?(): void;
128
164
  }
@@ -19,6 +19,7 @@ export interface ProceedFooterProps {
19
19
  className?: string;
20
20
  originalPriceLabel?: string;
21
21
  discountedPriceLabel?: string;
22
+ discountPillLabel?: string;
22
23
  showPlanSheet?: (values: KundliFormValues) => void;
23
24
  confirmPlan?: () => void;
24
25
  planSheetOpen?: boolean;
@@ -14,9 +14,9 @@ export declare const useAtlasPlacesAutocomplete: (params: {
14
14
  searchLocalities?: AtlasSearchLocalities;
15
15
  restrictCountry?: string;
16
16
  }) => {
17
- predictions: any;
18
- isSearching: any;
19
- loadError: any;
20
- searchPlaces: any;
21
- clearPredictions: any;
17
+ predictions: AtlasPrediction[];
18
+ isSearching: boolean;
19
+ loadError: string | null;
20
+ searchPlaces: (query: string) => Promise<void>;
21
+ clearPredictions: () => void;
22
22
  };
@@ -40,12 +40,12 @@ export declare const useGooglePlacesAutocomplete: (params: {
40
40
  /** If true, defer loading until explicitly triggered (default: false) */
41
41
  deferLoad?: boolean;
42
42
  }) => {
43
- isLoaded: any;
44
- predictions: any;
45
- isSearching: any;
46
- loadError: any;
47
- searchPlaces: any;
48
- getPlaceDetails: any;
49
- clearPredictions: any;
50
- triggerLoad: any;
43
+ isLoaded: boolean;
44
+ predictions: PlacePrediction[];
45
+ isSearching: boolean;
46
+ loadError: string | null;
47
+ searchPlaces: (query: string) => Promise<void>;
48
+ getPlaceDetails: (placeId: string) => Promise<PlaceDetails | null>;
49
+ clearPredictions: () => void;
50
+ triggerLoad: () => void;
51
51
  };
@@ -46,6 +46,11 @@ export interface KundliContextConfig {
46
46
  onLocaleChange?: (locale: SupportedLocale) => void;
47
47
  /** Optional image component (e.g. next/image adapter) for optimized images. */
48
48
  imageComponent?: KundliImageComponent;
49
+ /**
50
+ * Pre-resolved UTM banner image URL (e.g. from getServerSideProps).
51
+ * When set, the matching banner image is shown in place of the default PremiumReportOverview section.
52
+ */
53
+ resolvedUtmBannerImageUrl?: string;
49
54
  }
50
55
  export interface KundliContextValue {
51
56
  view: KundliView;
@@ -51,5 +51,17 @@ export interface KundliPageProps {
51
51
  atlasSearchLocalities?: AtlasSearchLocalities;
52
52
  /** When true (default), birth place autocomplete uses Google Places. When false, uses Atlas via `atlasSearchLocalities`. */
53
53
  googleMapsAutocompleteEnabled?: boolean;
54
+ /** Enables 3-SKU experiment flow when used with v1 variant. */
55
+ enableThreeSkuFlow?: boolean;
56
+ /** URL for the "200+ page Kundli Report" sample link in 3-SKU table. */
57
+ kundliReportSampleHref?: string;
58
+ /** URL for the "1 Question" sample link in 3-SKU table. */
59
+ oneQuestionSampleHref?: string;
60
+ /**
61
+ /**
62
+ * Pre-resolved UTM banner image URL from the server (e.g. getServerSideProps).
63
+ * An empty string means "no banner" (show default PremiumReportOverview).
64
+ */
65
+ resolvedUtmBannerImageUrl?: string;
54
66
  }
55
67
  export declare const KundliPage: React.FC<KundliPageProps>;
@@ -51,5 +51,18 @@ export interface KundliPageProps {
51
51
  atlasSearchLocalities?: AtlasSearchLocalities;
52
52
  /** When true (default), birth place autocomplete uses Google Places. When false, uses Atlas via `atlasSearchLocalities`. */
53
53
  googleMapsAutocompleteEnabled?: boolean;
54
+ /** Enables 3-SKU experiment flow inside existing v1 page. */
55
+ enableThreeSkuFlow?: boolean;
56
+ /** URL for the "200+ page Kundli Report" sample link in the 3-SKU table. */
57
+ kundliReportSampleHref?: string;
58
+ /** URL for the "1 Question" sample link in the 3-SKU table. */
59
+ oneQuestionSampleHref?: string;
60
+ /**
61
+ * CDN image URL map for UTM-based personalised banners.
62
+ /**
63
+ * Pre-resolved UTM banner image URL from the server (e.g. getServerSideProps).
64
+ * An empty string means "no banner" (show default PremiumReportOverview).
65
+ */
66
+ resolvedUtmBannerImageUrl?: string;
54
67
  }
55
68
  export declare const KundliPageV1: React.FC<KundliPageProps>;
@@ -0,0 +1,32 @@
1
+ export declare const DEFAULT_SAMPLE_URL = "https://srm-cdn.a4b.io/yoda/1773317492292.pdf";
2
+ export declare const DEFAULT_ONE_QUESTION_SAMPLE_URL = "https://srm-cdn.a4b.io/yoda/1781248337750.pdf";
3
+ export type TableLocale = "en" | "hi";
4
+ export declare const TABLE_STRINGS: Record<TableLocale, {
5
+ sectionTitle: string;
6
+ sampleReportsTitle: string;
7
+ onlyFor: string;
8
+ uniqueFeatures: string;
9
+ popularBadge: string;
10
+ columnKundliReport: string;
11
+ columnReportPlusQuestion: string;
12
+ columnReportPlusQuestionSubtext: string;
13
+ columnReportPlusConsultation: string;
14
+ sampleLabelKundliReport: string;
15
+ sampleLabelOneQuestion: string;
16
+ rowLabels: [string, string, string, string, string];
17
+ }>;
18
+ export declare const getTableStrings: (locale: TableLocale) => {
19
+ sectionTitle: string;
20
+ sampleReportsTitle: string;
21
+ onlyFor: string;
22
+ uniqueFeatures: string;
23
+ popularBadge: string;
24
+ columnKundliReport: string;
25
+ columnReportPlusQuestion: string;
26
+ columnReportPlusQuestionSubtext: string;
27
+ columnReportPlusConsultation: string;
28
+ sampleLabelKundliReport: string;
29
+ sampleLabelOneQuestion: string;
30
+ rowLabels: [string, string, string, string, string];
31
+ };
32
+ export declare const SampleReportArrowIcon: () => JSX.Element;
@@ -0,0 +1,10 @@
1
+ import { KundliAnalytics } from '../../../../analytics';
2
+ import { TABLE_STRINGS } from './KundliTableSection.constants';
3
+ type TableStrings = typeof TABLE_STRINGS["en"];
4
+ interface SampleReportsSectionProps {
5
+ kundliReportSampleHref: string;
6
+ analytics?: KundliAnalytics;
7
+ s: TableStrings;
8
+ }
9
+ export declare const SampleReportsSection: React.FC<SampleReportsSectionProps>;
10
+ export {};
@@ -0,0 +1,3 @@
1
+ export { SampleReportsSection } from './SampleReportsSection';
2
+ export { DEFAULT_SAMPLE_URL, DEFAULT_ONE_QUESTION_SAMPLE_URL, getTableStrings } from './KundliTableSection.constants';
3
+ export type { TableLocale } from './KundliTableSection.constants';
@@ -15,6 +15,12 @@ export interface PremiumReportOverviewProps {
15
15
  backgroundImagePriority?: boolean;
16
16
  /** Optional analytics for tracking banner clicked */
17
17
  analytics?: KundliAnalytics;
18
+ /**
19
+ * When provided, replaces the entire section with a personalised full-width UTM banner image.
20
+ */
21
+ utmBannerImageUrl?: string;
22
+ /** Alt text for the UTM banner image */
23
+ utmBannerAltText?: string;
18
24
  className?: string;
19
25
  }
20
26
  export declare const PremiumReportOverview: React.FC<PremiumReportOverviewProps>;
@@ -0,0 +1,8 @@
1
+ import { KundliImageComponent } from '../../../../types/image';
2
+ export interface UtmBannerSectionProps {
3
+ imageUrl: string;
4
+ altText: string;
5
+ imageComponent?: KundliImageComponent;
6
+ className?: string;
7
+ }
8
+ export declare const UtmBannerSection: React.FC<UtmBannerSectionProps>;
@@ -0,0 +1,2 @@
1
+ export { UtmBannerSection } from './UtmBannerSection';
2
+ export type { UtmBannerSectionProps } from './UtmBannerSection';
@@ -1,5 +1,6 @@
1
1
  export { KundliHeader } from './KundliHeader';
2
2
  export { HeroSection } from './HeroSection';
3
+ export { UtmBannerSection } from './UtmBannerSection';
3
4
  export { PremiumReportOverview } from './PremiumReportOverview';
4
5
  export { UniversityCertification } from './UniversityCertification';
5
6
  export { ThreeStepsProcess } from './ThreeStepsProcess';
@@ -5,6 +5,7 @@ export interface KundliPlanFeature {
5
5
  export interface KundliPlanAstrologer {
6
6
  name: string;
7
7
  experience: string;
8
+ languages?: string[];
8
9
  imageUrl?: string;
9
10
  certifications: string[];
10
11
  }
@@ -0,0 +1,8 @@
1
+ import { KundliPlanAstrologer } from '../KundliPlanBottomSheet/types';
2
+ interface AstrologerSectionProps {
3
+ astrologers: KundliPlanAstrologer[];
4
+ heading: string;
5
+ t: (key: string) => string;
6
+ }
7
+ export declare const AstrologerSection: React.FC<AstrologerSectionProps>;
8
+ export {};
@@ -0,0 +1,7 @@
1
+ import { ThreeSkuPlan } from './constants';
2
+ interface PlanFeatureListProps {
3
+ plan: ThreeSkuPlan;
4
+ t: (key: string) => string;
5
+ }
6
+ export declare const PlanFeatureList: React.FC<PlanFeatureListProps>;
7
+ export {};
@@ -0,0 +1,11 @@
1
+ import { ThreeSkuPlan } from './constants';
2
+ import { ThreeSkuAnalytics } from './ThreeSkuPlanBottomSheet.types';
3
+ interface PlanSelectorStripProps {
4
+ plans: ThreeSkuPlan[];
5
+ selectedId: string;
6
+ t: (key: string) => string;
7
+ analytics?: ThreeSkuAnalytics;
8
+ onSelectPlan: (plan: ThreeSkuPlan) => void;
9
+ }
10
+ export declare const PlanSelectorStrip: React.FC<PlanSelectorStripProps>;
11
+ export {};
@@ -0,0 +1,9 @@
1
+ interface ProceedButtonProps {
2
+ canProceed: boolean;
3
+ label: string;
4
+ showDisabledHint: boolean;
5
+ hintText: string;
6
+ onClick: () => void;
7
+ }
8
+ export declare const ProceedButton: React.FC<ProceedButtonProps>;
9
+ export {};
@@ -0,0 +1,7 @@
1
+ interface QuestionChipsProps {
2
+ chipKeys: readonly string[];
3
+ t: (key: string) => string;
4
+ onChipClick: (key: string, idx: number) => void;
5
+ }
6
+ export declare const QuestionChips: React.FC<QuestionChipsProps>;
7
+ export {};
@@ -0,0 +1,15 @@
1
+ interface QuestionInputProps {
2
+ textareaRef: React.RefObject<HTMLTextAreaElement>;
3
+ value: string;
4
+ label: string;
5
+ placeholder: string;
6
+ chipKeys: readonly string[];
7
+ t: (key: string) => string;
8
+ onFocus: () => void;
9
+ onClick: () => void;
10
+ onChange: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;
11
+ onChipClick: (key: string, idx: number) => void;
12
+ onViewSample?: () => void;
13
+ }
14
+ export declare const QuestionInput: React.FC<QuestionInputProps>;
15
+ export {};
@@ -0,0 +1,6 @@
1
+ interface SheetHeaderProps {
2
+ title: string;
3
+ onClose: () => void;
4
+ }
5
+ export declare const SheetHeader: React.FC<SheetHeaderProps>;
6
+ export {};
@@ -0,0 +1,6 @@
1
+ import { KundliPlanAstrologer } from '../KundliPlanBottomSheet/types';
2
+ export interface ThreeSkuAstrologerCardProps {
3
+ astrologer: KundliPlanAstrologer;
4
+ t?: (key: string, options?: any) => string;
5
+ }
6
+ export declare const ThreeSkuAstrologerCard: React.FC<ThreeSkuAstrologerCardProps>;
@@ -0,0 +1,15 @@
1
+ export declare const THREE_SKU_ASTROLOGERS: readonly [{
2
+ readonly id: "samiksha";
3
+ readonly name: "Acharya Rama Sarma";
4
+ readonly imageUrl: "https://srm-cdn.a4b.io/yoda/1781527417602.webp";
5
+ readonly experience: "21+ Years of experience";
6
+ readonly languages: readonly ["Hindi", "English", "Telugu"];
7
+ readonly certifications: readonly ["Certified Jyotish Acharya", "Guaranteed accurate solutions"];
8
+ }, {
9
+ readonly id: "jyoti";
10
+ readonly name: "Astro Neeraj";
11
+ readonly imageUrl: "https://srm-cdn.a4b.io/yoda/1781527490353.webp";
12
+ readonly experience: "21+ Years of experience";
13
+ readonly languages: readonly ["Hindi", "English"];
14
+ readonly certifications: readonly ["21+ Years Vedic Astrology", "Result-Oriented Spiritual Guidance"];
15
+ }];
@@ -0,0 +1,3 @@
1
+ import { ThreeSkuPlanBottomSheetProps } from './ThreeSkuPlanBottomSheet.types';
2
+ export type { ThreeSkuAnalytics, ThreeSkuPlanBottomSheetProps } from './ThreeSkuPlanBottomSheet.types';
3
+ export declare const ThreeSkuPlanBottomSheet: React.FC<ThreeSkuPlanBottomSheetProps>;
@@ -0,0 +1,3 @@
1
+ export declare const IncludedFeatureIcon: () => JSX.Element;
2
+ export declare const ExcludedFeatureIcon: () => JSX.Element;
3
+ export declare const TrendUpIcon: () => JSX.Element;
@@ -0,0 +1,51 @@
1
+ import { ThreeSkuLocale, ThreeSkuPlan } from './constants';
2
+ /**
3
+ * Analytics interface for the 3-SKU experiment bottom sheet.
4
+ * Extends the base plan analytics with question-specific tracking methods.
5
+ * Intentionally defined here so this component has zero dependency on
6
+ * the base KundliAnalytics interface.
7
+ */
8
+ export interface ThreeSkuAnalytics {
9
+ trackPlanPageViewed?(): void;
10
+ trackPlanPageClosed?(): void;
11
+ trackPlanSelected?(params: {
12
+ planId: string;
13
+ planName: string;
14
+ }): void;
15
+ trackPlanProceedClicked?(params: {
16
+ planId: string;
17
+ planName: string;
18
+ price?: string;
19
+ currency?: string;
20
+ question_asked?: boolean;
21
+ question_text?: string;
22
+ question_source?: "chip" | "custom" | "chip_edited";
23
+ }): void;
24
+ trackQuestionTextboxClicked?(params: {
25
+ entry_method: "tap" | "keyboard_focus";
26
+ textbox_empty: boolean;
27
+ }): void;
28
+ trackPreSuggestedQuestionSelected?(params: {
29
+ question_text_loaded: string;
30
+ chip_index: number;
31
+ previous_chip_index: number | null;
32
+ user_had_custom_text: boolean;
33
+ }): void;
34
+ trackOneQuestionViewSampleReportClicked?(): void;
35
+ }
36
+ export interface ThreeSkuPlanBottomSheetProps {
37
+ isOpen: boolean;
38
+ onClose: () => void;
39
+ selectedPlan: ThreeSkuPlan | null;
40
+ onSelectPlan: (plan: ThreeSkuPlan) => void;
41
+ onProceed: (plan: ThreeSkuPlan, question?: string) => void;
42
+ plans?: ThreeSkuPlan[];
43
+ /** Whether the user is on the international (global) flow. Used for default plan pricing. */
44
+ isGlobal?: boolean;
45
+ /** Locale for built-in translations. Defaults to "en". Falls back to the passed `t` prop for any key not found locally. */
46
+ locale?: ThreeSkuLocale;
47
+ t?: (key: string) => string;
48
+ analytics?: ThreeSkuAnalytics;
49
+ /** URL for the "1 Question" sample answer PDF shown inside the sheet. */
50
+ oneQuestionSampleHref?: string;
51
+ }
@@ -0,0 +1,87 @@
1
+ import { KundliPlan } from '../KundliPlanBottomSheet/types';
2
+ /**
3
+ * Self-contained en/hi strings for the 3-SKU experiment bottom sheet.
4
+ */
5
+ export declare const THREE_SKU_STRINGS: {
6
+ readonly en: {
7
+ readonly planSheetTitle: "Choose your Kundli Plan";
8
+ readonly planProceedToPayment: "Proceed to Payment";
9
+ readonly planAstrologerHeading: "Top astrologers who will consult you";
10
+ readonly planMostPopular: "Most popular";
11
+ readonly planNew: "New";
12
+ readonly planLimitedTimeCombo: "Limited-Time Combo";
13
+ readonly planNameBasic: "Kundli Report";
14
+ readonly planNameQuestion: "Kundli + 1 Question";
15
+ readonly planNameGuidance: "Kundli + Consultation";
16
+ readonly planSaveLabel: "Save ~25%";
17
+ readonly planFeatureDetailedInsights: "Detailed insights on love, marriage, career, health & finances";
18
+ readonly planFeaturePracticalRemedies: "Practical remedies like gemstones, rudraksha & mantras";
19
+ readonly planFeatureClearLanguage: "Clear, easy-to-understand language by expert astrologers";
20
+ readonly planFeatureAstrologyConsultant: "Astrology consultant";
21
+ readonly planFeaturePersonalizedReading: "Personalized reading";
22
+ readonly planFeatureIncludesPremium: "Includes everything in the Premium Personalized Kundli";
23
+ readonly planFeatureExpertAnswers: "PLUS: Personalized answer, remedies and timelines from an expert astrologer";
24
+ readonly planFeatureFollowUpQuestions: "Go deeper into asking follow up questions";
25
+ readonly planFeatureNoConsultation: "No personal consultation call";
26
+ readonly planFeaturePlusConsultation: "PLUS: A 30-minute private consultation with an expert astrologer";
27
+ readonly planFeatureRealTimeAnswers: "Get real-time answers & guidance for your biggest life concerns";
28
+ readonly planFeatureTailoredRemedies: "Remedies & timelines tailored to your unique birth chart";
29
+ readonly planQuestionLabel: "Ask your Question";
30
+ readonly planQuestionHeader: "Ask our top astrologers";
31
+ readonly planQuestionPlaceholder: "Ask follow up question";
32
+ readonly planQuestionHint: "Please enter your question to continue.";
33
+ readonly planQuestionChip1: "When will I get married?";
34
+ readonly planQuestionChip2: "When will I grow in my career?";
35
+ readonly planQuestionChip3: "Are there any doshas which is affecting me?";
36
+ readonly planQuestionChip4: "Is my current job right for me?";
37
+ readonly planAstrologerExp: "{{years}} Years of experience";
38
+ };
39
+ readonly hi: {
40
+ readonly planSheetTitle: "अपनी कुंडली प्लान चुनें";
41
+ readonly planProceedToPayment: "पेमेंट करें";
42
+ readonly planAstrologerHeading: "हम आपके लिए नीचे दिए गए टॉप ज्योतिषियों में से एक को चुनेंगे";
43
+ readonly planMostPopular: "सबसे लोकप्रिय";
44
+ readonly planNew: "नया";
45
+ readonly planLimitedTimeCombo: "सीमित समय ऑफर";
46
+ readonly planNameBasic: "कुंडली रिपोर्ट";
47
+ readonly planNameQuestion: "कुंडली + 1 सवाल";
48
+ readonly planNameGuidance: "कुंडली रिपोर्ट + ज्योतिषी से बात";
49
+ readonly planSaveLabel: "~25% बचाएं";
50
+ readonly planFeatureDetailedInsights: "प्यार, विवाह, करियर, स्वास्थ्य और वित्त पर गहरी जानकारी";
51
+ readonly planFeaturePracticalRemedies: "रत्न, रुद्राक्ष और मंत्रों जैसे व्यावहारिक उपाय";
52
+ readonly planFeatureClearLanguage: "विशेषज्ञ ज्योतिषियों द्वारा स्पष्ट और आसान भाषा में";
53
+ readonly planFeatureAstrologyConsultant: "ज्योतिषी से बात नहीं होगी";
54
+ readonly planFeaturePersonalizedReading: "आपके लिए खास रीडिंग";
55
+ readonly planFeatureIncludesPremium: "प्रीमियम कुंडली रिपोर्ट में जो कुछ भी है, सब मिलेगा";
56
+ readonly planFeatureExpertAnswers: "PLUS: विशेषज्ञ ज्योतिषी से व्यक्तिगत जवाब, उपाय और समयरेखा पाएं";
57
+ readonly planFeatureFollowUpQuestions: "आगे के सवाल पूछने की सुविधा";
58
+ readonly planFeatureNoConsultation: "कोई व्यक्तिगत परामर्श कॉल नहीं";
59
+ readonly planFeaturePlusConsultation: "साथ ही: एक अनुभवी ज्योतिषी से 30 मिनट की प्राइवेट बात";
60
+ readonly planFeatureRealTimeAnswers: "अपनी सबसे बड़ी परेशानियों का सीधा जवाब और सही सलाह पाएं";
61
+ readonly planFeatureTailoredRemedies: "आपकी कुंडली के हिसाब से उपाय और सही समय की जानकारी";
62
+ readonly planQuestionLabel: "अपना सवाल पूछें";
63
+ readonly planQuestionHeader: "अपने सवाल हमारे टॉप ज्योतिषियों से पूछें";
64
+ readonly planQuestionPlaceholder: "फॉलो अप सवाल लिखें";
65
+ readonly planQuestionHint: "जारी रखने के लिए अपना सवाल लिखें।";
66
+ readonly planQuestionChip1: "मेरी शादी कब होगी?";
67
+ readonly planQuestionChip2: "मेरा करियर कब बेहतर होगा?";
68
+ readonly planQuestionChip3: "क्या कोई दोष है जो मुझे प्रभावित कर रहा है?";
69
+ readonly planQuestionChip4: "क्या मेरी मौजूदा नौकरी मेरे लिए सही है?";
70
+ readonly planAstrologerExp: "साल का अनुभव";
71
+ };
72
+ };
73
+ export type ThreeSkuLocale = keyof typeof THREE_SKU_STRINGS;
74
+ export interface ThreeSkuPlan extends KundliPlan {
75
+ supportsQuestion?: boolean;
76
+ /** Key for a corner "New" ribbon rendered on the card */
77
+ newBadge?: string;
78
+ }
79
+ export declare const getThreeSkuDefaultPlans: (isGlobal: boolean) => ThreeSkuPlan[];
80
+ export declare const CHIP_KEYS: readonly ["planQuestionChip1", "planQuestionChip2", "planQuestionChip3", "planQuestionChip4"];
81
+ export declare const TOP_ASTROLOGER_AVATARS: {
82
+ id: "jyoti" | "samiksha";
83
+ imageUrl: "https://srm-cdn.a4b.io/yoda/1781527417602.webp" | "https://srm-cdn.a4b.io/yoda/1781527490353.webp";
84
+ name: "Acharya Rama Sarma" | "Astro Neeraj";
85
+ }[];
86
+ export declare const MAX_QUESTION_LENGTH = 5000;
87
+ export declare const MAX_TEXTAREA_HEIGHT_PX = 84;
@@ -0,0 +1,4 @@
1
+ export { ThreeSkuPlanBottomSheet } from './ThreeSkuPlanBottomSheet';
2
+ export { getThreeSkuDefaultPlans } from './constants';
3
+ export type { ThreeSkuPlanBottomSheetProps, ThreeSkuAnalytics } from './ThreeSkuPlanBottomSheet';
4
+ export type { ThreeSkuPlan, ThreeSkuLocale } from './constants';