@srimandir/kundli-generator 5.30.13 → 5.30.14

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.
@@ -1452,7 +1452,7 @@ call`, values: ["cross", "cross", "check"] }
1452
1452
  }) => {
1453
1453
  const a = t ? fe.global : fe.domestic;
1454
1454
  return /* @__PURE__ */ e.jsxs("section", { className: `bg-white px-3 py-4 ${r}`, children: [
1455
- /* @__PURE__ */ e.jsx("h2", { className: "mb-3 text-center text-[18px] leading-6 text-[#f75e22] max-[380px]:text-[16px]", children: ys }),
1455
+ /* @__PURE__ */ e.jsx("h2", { className: "mb-3 font-bold text-center text-[18px] leading-6 text-[#f75e22] max-[380px]:text-[16px]", children: ys }),
1456
1456
  /* @__PURE__ */ e.jsx("div", { className: "relative mt-5 rounded-[14px] border-[1.5px] border-[#e5ccb9] shadow-[0_4px_16px_rgba(111,58,17,0.08)]", children: /* @__PURE__ */ e.jsxs("table", { className: "w-full table-fixed border-collapse", children: [
1457
1457
  /* @__PURE__ */ e.jsxs("colgroup", { children: [
1458
1458
  /* @__PURE__ */ e.jsx("col", { className: "w-1/4" }),
@@ -1903,4 +1903,4 @@ export {
1903
1903
  En as b,
1904
1904
  $s as c
1905
1905
  };
1906
- //# sourceMappingURL=criticalCss-8EUr27sU.js.map
1906
+ //# sourceMappingURL=criticalCss-CQtIlhrr.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"criticalCss-8EUr27sU.js","sources":["../src/components/KundliPage/sections/HeroSection/HeroSection.tsx","../src/components/KundliPage/sections/PremiumReportOverview/PremiumReportOverview.tsx","../src/components/KundliPage/sections/UniversityCertification/UniversityCertification.tsx","../src/components/KundliPage/sections/ThreeStepsProcess/ThreeStepsProcess.tsx","../src/components/KundliPage/sections/ViewSampleReportButton/SampleReportModal.tsx","../src/components/KundliPage/sections/ViewSampleReportButton/ViewSampleReportButton.tsx","../src/components/KundliPage/sections/WhatYoullFindSection/WhatYoullFindSection.tsx","../src/components/KundliPage/sections/WhyUsSection/WhyUsSection.tsx","../src/components/KundliPage/sections/FeedbackSection/FeedbackSection.tsx","../src/components/KundliPage/sections/FAQSection/FAQSection.tsx","../src/components/KundliPage/sections/ContactUsSection/ContactUsSection.tsx","../src/components/KundliPage/sections/CTAFooter/CTAFooter.tsx","../src/components/KundliPage/KundliPage.tsx","../src/components/ThreeSkuPlanBottomSheet/ThreeSkuAstrologerProfiles.ts","../src/components/ThreeSkuPlanBottomSheet/constants.ts","../src/utils/keyframeStyles.ts","../src/components/ThreeSkuPlanBottomSheet/SheetHeader.tsx","../src/components/ThreeSkuPlanBottomSheet/ThreeSkuPlanBottomSheet.icons.tsx","../src/components/ThreeSkuPlanBottomSheet/PlanFeatureList.tsx","../src/components/ThreeSkuPlanBottomSheet/QuestionChips.tsx","../src/components/ThreeSkuPlanBottomSheet/QuestionInput.tsx","../src/components/ThreeSkuPlanBottomSheet/ThreeSkuAstrologerCard.tsx","../src/components/ThreeSkuPlanBottomSheet/AstrologerSection.tsx","../src/components/ThreeSkuPlanBottomSheet/PlanSelectorStrip.tsx","../src/components/ThreeSkuPlanBottomSheet/ProceedButton.tsx","../src/components/ThreeSkuPlanBottomSheet/ThreeSkuPlanBottomSheet.tsx","../src/components/KundliPage/sections/KundliTableSection/KundliTableSection.constants.tsx","../src/components/KundliPage/sections/KundliTableSection/PackagesTableHeader.tsx","../src/components/KundliPage/sections/KundliTableSection/PackagesTableBody.tsx","../src/components/KundliPage/sections/KundliTableSection/SampleReportsSection.tsx","../src/components/KundliPage/sections/KundliTableSection/KundliTableSection.tsx","../src/components/KundliPage/KundliPageV1.tsx","../src/components/KundliPage/KundliPageVariant.tsx","../src/constants/criticalCss.ts"],"sourcesContent":["import React from 'react';\nimport styles from './HeroSection.module.scss';\n\nconst TOPIC_KEYS = [\n 'topicMarriage',\n 'topicRelationship',\n 'topicBusiness',\n 'topicHealth',\n 'topicCareer',\n 'topicEducation',\n 'topicMoney',\n] as const;\n\nexport interface HeroSectionProps {\n t: (key: string) => string;\n className?: string;\n}\n\nexport const HeroSection: React.FC<HeroSectionProps> = ({ t, className = '' }) => {\n return (\n <section className={`${styles.hero} ${className}`} aria-labelledby=\"hero-title\">\n <h1 id=\"hero-title\" className={styles.title}>\n {t('heroTitle')}\n </h1>\n <p className={styles.subtitle}>{t('heroSubtitle')}</p>\n <div className={styles.topicTags} role=\"list\">\n {TOPIC_KEYS.map((key) => (\n <span key={key} className={styles.tag} role=\"listitem\">\n {t(key)}\n </span>\n ))}\n </div>\n </section>\n );\n};\n","import styles from './PremiumReportOverview.module.scss';\nimport type { KundliAnalytics } from '../../../../analytics';\nimport { useKundliContext } from '../../KundliContext';\nimport { DefaultKundliImage } from '../../../../types/image';\n\nconst FEATURE_CHECK_ICON_URL = 'https://srm-cdn.a4b.io/yoda/1770363846052.svg';\n\n/** \n * Background image for the section (replaced from CSS so next/image can optimize when host provides imageComponent).\n * Exported so host apps can preload this resource in document head for better performance:\n * <link rel=\"preload\" as=\"image\" href={PREMIUM_REPORT_BACKGROUND_IMAGE_URL} />\n */\nexport const PREMIUM_REPORT_BACKGROUND_IMAGE_URL =\n 'https://srm-cdn.a4b.io/yoda/1772696426944.webp';\n\nconst FEATURES = [\n 'premiumFeature1',\n 'premiumFeature2',\n 'premiumFeature3',\n 'premiumFeature4',\n] as const;\n\nexport interface PremiumReportOverviewProps {\n t: (key: string) => string;\n /** Optional report cover image URL */\n reportImageUrl?: string;\n /** When true, report image can be loaded with priority (e.g. LCP) */\n reportImagePriority?: boolean;\n /** When true, section background image loads with priority (e.g. LCP). Default false so background uses loading=\"lazy\" per Lighthouse. Set true when this section is above the fold (hero). */\n backgroundImagePriority?: boolean;\n /** Optional analytics for tracking banner clicked */\n analytics?: KundliAnalytics;\n className?: string;\n}\n\nconst DEFAULT_REPORT_IMAGE_URL =\n \"https://srm-cdn.a4b.io/yoda/1772696452070.webp\";\n\nexport const PremiumReportOverview: React.FC<PremiumReportOverviewProps> = ({\n t,\n reportImageUrl = DEFAULT_REPORT_IMAGE_URL,\n reportImagePriority,\n backgroundImagePriority = false,\n analytics,\n className = '',\n}: PremiumReportOverviewProps) => {\n const kundliCtx = useKundliContext();\n const Img = kundliCtx?.config.imageComponent ?? DefaultKundliImage;\n\n const handleClick = () => {\n analytics?.trackBannerClicked?.();\n };\n\n return (\n <section\n className={`${styles.section} ${className}`}\n aria-labelledby=\"premium-headline\"\n role=\"button\"\n tabIndex={0}\n onClick={handleClick}\n data-hero\n >\n <div className={styles.backgroundLayer} aria-hidden data-background-layer>\n <Img\n src={PREMIUM_REPORT_BACKGROUND_IMAGE_URL}\n alt=\"\"\n className={styles.backgroundImg}\n width={412}\n height={215}\n sizes=\"(max-width: 768px) 412px, 412px\"\n loading=\"eager\"\n priority={backgroundImagePriority}\n fetchPriority=\"high\"\n />\n </div>\n <div className={styles.inner}>\n <div className={styles.content}>\n <h2 id=\"premium-headline\" className={styles.headline}>\n <span className={styles.headlineLine}>\n <span className={styles.headlinePill}>{t('premiumHeadlinePill1')}</span>\n <span className={styles.headlinePlain}>{t('premiumHeadlinePlain1')}</span>\n </span>\n <span className={styles.headlineLine}>\n <span className={styles.headlinePlain}>{t('premiumHeadlinePlain2')}</span>\n <span className={styles.headlinePill}>{t('premiumHeadlinePill2')}</span>\n </span>\n <span className={styles.headlineLine}>\n <span className={styles.headlinePlain}>{t('and')}</span>\n <span className={styles.headlinePill}>{t('astrologyGuidance')}</span>\n </span>\n </h2>\n <ul className={styles.featureList}>\n {FEATURES.map((key) => (\n <li key={key} className={styles.featureItem}>\n <Img\n src={FEATURE_CHECK_ICON_URL}\n alt=\"\"\n className={styles.featureIcon}\n width={16}\n height={16}\n loading=\"lazy\"\n />\n {t(key)}\n </li>\n ))}\n </ul>\n </div>\n <div className={styles.reportImage}>\n <Img\n src={reportImageUrl}\n alt=\"\"\n className={styles.reportImg}\n width={120}\n height={160}\n priority={reportImagePriority}\n fetchPriority={reportImagePriority ? 'high' : undefined}\n loading={reportImagePriority ? 'eager' : 'lazy'}\n sizes=\"120px\"\n />\n </div>\n </div>\n </section>\n );\n};\n","import React from 'react';\nimport styles from './UniversityCertification.module.scss';\nimport { useKundliContext } from '../../KundliContext';\nimport { DefaultKundliImage } from '../../../../types/image';\n\nexport interface UniversityCertificationProps {\n t: (key: string) => string;\n /** Optional logo URLs: [BHU, VSU or similar] */\n logoUrl?: string;\n className?: string;\n}\n\nconst DEFAULT_LOGO_URL = 'https://srm-cdn.a4b.io/yoda/1772696467302.webp';\n\nexport const UniversityCertification: React.FC<UniversityCertificationProps> = ({\n t,\n logoUrl = DEFAULT_LOGO_URL,\n className = '',\n}) => {\n const kundliCtx = useKundliContext();\n const Img = kundliCtx?.config.imageComponent ?? DefaultKundliImage;\n\n return (\n <section className={`${styles.section} ${className}`} aria-labelledby=\"certified-heading\">\n <h2 id=\"certified-heading\" className={styles.heading}>\n {t('certifiedBy')}\n </h2>\n <Img\n src={logoUrl}\n alt=\"University Certification\"\n className={styles.logoImg}\n width={380}\n height={70}\n loading=\"lazy\"\n />\n </section>\n );\n};\n","import React from 'react';\nimport styles from './ThreeStepsProcess.module.scss';\n\nconst STEP_KEYS = ['step1', 'step2'] as const;\n\nexport interface ThreeStepsProcessProps {\n t: (key: string) => string;\n locale?: string;\n /** If true, show global (email) delivery text; if false, show domestic (WhatsApp) text. Default true. */\n isGlobal?: boolean;\n className?: string;\n}\n\nexport const ThreeStepsProcess: React.FC<ThreeStepsProcessProps> = ({\n t,\n locale = 'en',\n isGlobal = true,\n className = '',\n}) => {\n const step3IntroKey = isGlobal ? 'step3IntroGlobal' : 'step3IntroDomestic';\n return (\n <section\n className={`${styles.section} ${className}`}\n aria-labelledby=\"steps-heading\"\n >\n <p className={styles.heading}>{t('yourThreeSteps')}</p>\n <h2 id=\"steps-heading\" className={styles.subtitle}>\n {t('threeStepsSubtitle')}\n </h2>\n <ol className={styles.stepList}>\n {STEP_KEYS.map((key, index) => (\n <li key={key} className={styles.stepItem}>\n <span className={styles.stepNumber} aria-hidden>\n {index + 1}\n </span>\n <span className={styles.stepText}>{t(key)}</span>\n </li>\n ))}\n <li className={styles.stepItem}>\n <span className={styles.stepNumber} aria-hidden>\n 3\n </span>\n <span className={styles.stepText}>\n {t(step3IntroKey)}\n <br />\n {locale === 'en' ? (\n <>\n in <strong className={styles.step3Days}>{t('step3Days')}</strong>\n </>\n ) : (\n <strong className={styles.step3Days}>{t('step3Days')}</strong>\n )}\n </span>\n </li>\n </ol>\n </section>\n );\n};\n","import type { FC } from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport styles from './SampleReportModal.module.scss';\n\ntype PdfJsLib = typeof import('pdfjs-dist');\n\nfunction setPdfWorkerSrc(pdfjsLib: PdfJsLib): void {\n if (\n typeof pdfjsLib !== 'undefined' &&\n pdfjsLib.GlobalWorkerOptions\n ) {\n pdfjsLib.GlobalWorkerOptions.workerSrc = `https://unpkg.com/pdfjs-dist@${pdfjsLib.version}/build/pdf.worker.min.js`;\n }\n}\n\nexport interface SampleReportModalProps {\n isOpen: boolean;\n onClose: () => void;\n title: string;\n pdfUrl: string;\n}\n\nexport const SampleReportModal: FC<SampleReportModalProps> = ({\n isOpen,\n onClose,\n title,\n pdfUrl,\n}) => {\n const pagesRef = useRef<HTMLDivElement>(null);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<string | null>(null);\n const [pdfjsLib, setPdfjsLib] = useState<PdfJsLib | null>(null);\n\n useEffect(() => {\n if (!isOpen) return;\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape') onClose();\n };\n document.addEventListener('keydown', handleEscape);\n document.body.style.overflow = 'hidden';\n return () => {\n document.removeEventListener('keydown', handleEscape);\n document.body.style.overflow = '';\n };\n }, [isOpen, onClose]);\n\n // Lazy load PDF library only when modal opens (on \"View Sample Report\" click)\n useEffect(() => {\n if (!isOpen) return;\n\n // Dynamic import of pdfjs-dist (~500KB) - only loads when user clicks button\n import('pdfjs-dist').then((lib) => {\n setPdfjsLib(lib);\n }).catch((err) => {\n setError('Failed to load PDF viewer');\n setLoading(false);\n });\n }, [isOpen]);\n\n useEffect(() => {\n if (!isOpen || !pdfUrl || !pagesRef.current || !pdfjsLib) return;\n\n setLoading(true);\n setError(null);\n pagesRef.current.innerHTML = '';\n\n const renderPdf = async () => {\n try {\n setPdfWorkerSrc(pdfjsLib);\n const loadingTask = pdfjsLib.getDocument({ url: pdfUrl });\n const pdf = await loadingTask.promise;\n\n const container = pagesRef.current;\n if (!container) return;\n\n const pageWidth = container.clientWidth || 600;\n const scale = Math.min(pageWidth / 612, 2);\n\n for (let i = 1; i <= pdf.numPages; i++) {\n const page = await pdf.getPage(i);\n const viewport = page.getViewport({ scale });\n\n const canvas = document.createElement('canvas');\n canvas.height = viewport.height;\n canvas.width = viewport.width;\n canvas.style.display = 'block';\n canvas.style.margin = '0 auto 1rem';\n canvas.style.maxWidth = '100%';\n\n const ctx = canvas.getContext('2d');\n if (ctx) {\n await page.render({ canvasContext: ctx, viewport }).promise;\n }\n container.appendChild(canvas);\n }\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to load PDF');\n } finally {\n setLoading(false);\n }\n };\n\n renderPdf();\n }, [isOpen, pdfUrl, pdfjsLib]);\n\n if (!isOpen) return null;\n\n return (\n <div\n className={styles.backdrop}\n onClick={onClose}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"sample-report-modal-title\"\n >\n <div\n className={styles.modal}\n onClick={(e) => e.stopPropagation()}\n >\n <div className={styles.header}>\n <h2 id=\"sample-report-modal-title\" className={styles.title}>\n {title}\n </h2>\n <button\n type=\"button\"\n className={styles.closeBtn}\n onClick={onClose}\n aria-label=\"Close\"\n >\n ×\n </button>\n </div>\n <div className={styles.content}>\n <div className={styles.pdfFrame}>\n {error && (\n <div className={styles.pdfError}>\n <span>{error}</span>\n <a href={pdfUrl} target=\"_blank\" rel=\"noopener noreferrer\">\n Open in new tab instead\n </a>\n </div>\n )}\n <div ref={pagesRef} className={styles.pdfPages} />\n </div>\n <a\n href={pdfUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={styles.openInNewTab}\n >\n Open in new tab\n </a>\n </div>\n </div>\n </div>\n );\n};\n","import React, { useState } from 'react';\nimport styles from './ViewSampleReportButton.module.scss';\nimport { SampleReportModal } from './SampleReportModal';\nimport type { KundliAnalytics } from '../../../../analytics';\n\nconst DEFAULT_PDF_URL = 'https://srm-cdn.a4b.io/yoda/1773317492292.pdf';\n\nexport interface ViewSampleReportButtonProps {\n t: (key: string) => string;\n /** PDF URL to display in modal. Defaults to a sample PDF. */\n pdfUrl?: string;\n /** @deprecated Use pdfUrl instead. Opens in new tab when modal not used. */\n href?: string;\n /** Called when button is clicked (e.g. for analytics). Modal opens regardless. */\n onClick?: () => void;\n /** Optional analytics for tracking view sample clicked/closed */\n analytics?: KundliAnalytics;\n className?: string;\n}\n\nexport const ViewSampleReportButton: React.FC<ViewSampleReportButtonProps> = ({\n t,\n pdfUrl = DEFAULT_PDF_URL,\n onClick,\n analytics,\n className = '',\n}) => {\n const [modalOpen, setModalOpen] = useState(false);\n const label = t('viewSampleReport');\n const title = t('sampleReportModalTitle');\n\n const handleClick = () => {\n analytics?.trackViewSampleReportClicked?.();\n onClick?.();\n setModalOpen(true);\n };\n\n const handleClose = () => {\n analytics?.trackViewSampleReportClosed?.();\n setModalOpen(false);\n };\n\n return (\n <section className={`${styles.section} ${className}`}>\n <button type=\"button\" className={styles.button} onClick={handleClick}>\n {label}\n </button>\n <SampleReportModal\n isOpen={modalOpen}\n onClose={handleClose}\n title={title}\n pdfUrl={pdfUrl}\n />\n </section>\n );\n};\n","import React from \"react\";\nimport styles from \"./WhatYoullFindSection.module.scss\";\nimport { useKundliContext } from \"../../KundliContext\";\nimport { DefaultKundliImage } from \"../../../../types/image\";\n\nconst ITEMS: { titleKey: string; descKey: string }[] = [\n { titleKey: \"findDasha\", descKey: \"findDashaDesc\" },\n { titleKey: \"findYoga\", descKey: \"findYogaDesc\" },\n { titleKey: \"findGemstone\", descKey: \"findGemstoneDesc\" },\n { titleKey: \"findPooja\", descKey: \"findPoojaDesc\" },\n { titleKey: \"findMonthly\", descKey: \"findMonthlyDesc\" },\n { titleKey: \"findStrength\", descKey: \"findStrengthDesc\" },\n];\n\nconst DEFAULT_IMAGE_URLS = [\n \"https://srm-cdn.a4b.io/yoda/1772619204758.webp\",\n \"https://srm-cdn.a4b.io/yoda/1772619215121.webp\",\n \"https://srm-cdn.a4b.io/yoda/1772619232241.webp\",\n \"https://srm-cdn.a4b.io/yoda/1772619253699.webp\",\n \"https://srm-cdn.a4b.io/yoda/1772619272322.webp\",\n \"https://srm-cdn.a4b.io/yoda/1772619284662.webp\",\n];\n\nexport interface WhatYoullFindSectionProps {\n t: (key: string) => string;\n /** Optional image URLs per item (same order as ITEMS) */\n imageUrls?: (string | undefined)[];\n className?: string;\n}\n\nexport const WhatYoullFindSection: React.FC<WhatYoullFindSectionProps> = ({\n t,\n imageUrls = DEFAULT_IMAGE_URLS,\n className = \"\",\n}) => {\n const kundliCtx = useKundliContext();\n const Img = kundliCtx?.config.imageComponent ?? DefaultKundliImage;\n\n return (\n <section\n className={`${styles.section} ${className}`}\n aria-labelledby=\"find-heading\"\n >\n <h2 id=\"find-heading\" className={styles.heading}>\n {t(\"whatYoullFindTitle\")}\n </h2>\n <ul className={styles.list}>\n {ITEMS.map((item, index) => (\n <li key={item.titleKey} className={styles.item}>\n <div className={styles.imageWrap}>\n {imageUrls[index] ? (\n <Img\n src={imageUrls[index]!}\n alt=\"\"\n className={styles.image}\n width={96}\n height={96}\n loading=\"lazy\"\n sizes=\"96px\"\n />\n ) : (\n <div className={styles.imagePlaceholder} aria-hidden />\n )}\n </div>\n <div className={styles.text}>\n <h3 className={styles.itemTitle}>{t(item.titleKey)}</h3>\n <p className={styles.itemDesc}>{t(item.descKey)}</p>\n </div>\n </li>\n ))}\n </ul>\n </section>\n );\n};\n","import React from 'react';\nimport styles from './WhyUsSection.module.scss';\n\nconst BULLETS = ['whyUs1', 'whyUs2', 'whyUs3', 'whyUs4'] as const;\n\nexport interface WhyUsSectionProps {\n t: (key: string) => string;\n className?: string;\n}\n\nexport const WhyUsSection: React.FC<WhyUsSectionProps> = ({ t, className = '' }) => {\n return (\n <section className={`${styles.section} ${className}`} aria-labelledby=\"why-heading\">\n <h2 id=\"why-heading\" className={styles.heading}>\n {t('whyUsTitle')}\n </h2>\n <p className={styles.subtitle}>{t('whyUsSubtitle')}</p>\n <ul className={styles.list}>\n {BULLETS.map((key) => (\n <li key={key} className={styles.item}>\n {t(key)}\n </li>\n ))}\n </ul>\n </section>\n );\n};\n","import { type FC } from 'react';\nimport { UserReviewsSection, type Testimonial } from '@srimandir/astrology-common';\nimport styles from './FeedbackSection.module.scss';\n\nexport type { Testimonial };\n\nexport interface FeedbackSectionProps {\n t: (key: string) => string;\n testimonials?: Testimonial[];\n readMoreHref?: string;\n onReadMore?: () => void;\n className?: string;\n /** Optional class for the section heading (e.g. for font weight). Kundli uses bold by default. */\n headingClassName?: string;\n}\n\nexport const FeedbackSection: FC<FeedbackSectionProps> = ({\n t,\n testimonials,\n readMoreHref,\n onReadMore,\n className = '',\n headingClassName = styles.headingBold,\n}) => {\n return (\n <UserReviewsSection\n t={t}\n testimonials={testimonials}\n readMoreHref={readMoreHref}\n onReadMore={onReadMore}\n className={className}\n headingClassName={headingClassName}\n />\n );\n};\n","import { type FC } from 'react';\nimport { FAQAccordion } from '@srimandir/astrology-common';\nimport { useKundliContext } from '../../KundliContext';\nimport styles from './FAQSection.module.scss';\n\nconst FAQ_ITEMS: { qKey: string; aKey: string }[] = [\n { qKey: 'faqQ1', aKey: 'faqA1' },\n { qKey: 'faqQ3', aKey: 'faqA3' },\n];\n\nexport interface FAQSectionProps {\n t: (key: string) => string;\n className?: string;\n /** Optional class for the section heading (e.g. for font weight). Kundli uses bold by default. */\n headingClassName?: string;\n}\n\nexport const FAQSection: FC<FAQSectionProps> = ({\n t,\n className = '',\n headingClassName = styles.headingBold,\n}) => {\n const kundliCtx = useKundliContext();\n const isGlobal = kundliCtx?.config.isGlobal ?? true;\n\n const resolveAnswerKey = (aKey: string) => {\n if (aKey === 'faqA1') {\n return isGlobal ? 'faqA1Global' : 'faqA1Domestic';\n }\n return aKey;\n };\n\n return (\n <FAQAccordion\n t={t}\n items={FAQ_ITEMS}\n resolveAnswerKey={resolveAnswerKey}\n defaultOpenIndex={1}\n className={className}\n headingClassName={headingClassName}\n />\n );\n};\n","import React from 'react';\nimport { ContactUsSection as CommonContactUsSection } from '@srimandir/astrology-common';\nimport { useKundliContext } from '../../KundliContext';\n\nconst DEFAULT_WHATSAPP_GLOBAL = '8296947757';\nconst DEFAULT_WHATSAPP_DOMESTIC = '08071174417';\nconst DEFAULT_EMAIL = 'pujaseva@appsforbharat.com';\n\nexport interface ContactUsSectionProps {\n t: (key: string) => string;\n whatsAppGlobal?: string;\n whatsAppDomestic?: string;\n email?: string;\n brandName?: string;\n className?: string;\n}\n\nexport const ContactUsSection: React.FC<ContactUsSectionProps> = ({\n t,\n whatsAppGlobal,\n whatsAppDomestic,\n email,\n brandName,\n className = '',\n}) => {\n const kundliCtx = useKundliContext();\n const isGlobal = kundliCtx?.config.isGlobal ?? true;\n\n const globalNum = whatsAppGlobal ?? DEFAULT_WHATSAPP_GLOBAL;\n const domesticNum = whatsAppDomestic ?? DEFAULT_WHATSAPP_DOMESTIC;\n const emailVal = email ?? DEFAULT_EMAIL;\n\n const whatsAppLine = isGlobal\n ? t('contactWhatsAppGlobal').replace(DEFAULT_WHATSAPP_GLOBAL, globalNum)\n : t('contactWhatsAppDomestic').replace(DEFAULT_WHATSAPP_DOMESTIC, domesticNum);\n\n const emailLine = t('contactEmail').replace(DEFAULT_EMAIL, emailVal);\n\n return (\n <CommonContactUsSection\n title={t('contactTitle')}\n brandName={brandName ?? t('contactBrandName')}\n whatsAppLine={whatsAppLine}\n emailLine={emailLine}\n className={className}\n />\n );\n};\n","import React from \"react\";\nimport {\n FooterShell,\n FooterCTAButton,\n footerShellStyles,\n CircularMarquee,\n} from \"@srimandir/astrology-common\";\nimport { DefaultKundliImage } from \"../../../../types/image\";\nimport { useKundliContext } from \"../../KundliContext\";\n\nconst ICON_KUNDLI_CREATED = 'https://srm-cdn.a4b.io/yoda/1770375694934.svg';\nconst ICON_CERTIFIED = 'https://srm-cdn.a4b.io/yoda/1770375720933.svg';\nconst ICON_SECURE_PAYMENT = 'https://srm-cdn.a4b.io/yoda/1770707793537.svg';\n\nexport interface CTAFooterProps {\n t: (key: string) => string;\n /** CTA button click handler (receives click event for e.g. CTA text extraction) */\n onCtaClick?: (e: React.MouseEvent<HTMLElement>) => void;\n /** Or use href for link instead of button */\n ctaHref?: string;\n /** Optional override for CTA label text */\n ctaLabel?: string;\n className?: string;\n}\n\n/** Single row of trust badges for marquee (used in footer and under header). */\nexport const TrustBadgesRow: React.FC<{ t: (key: string) => string }> = ({ t }) => {\n const kundliCtx = useKundliContext();\n const Img = kundliCtx?.config.imageComponent ?? DefaultKundliImage;\n return (\n <div className={footerShellStyles.marqueeContent}>\n <span className={footerShellStyles.badge}>\n <Img src={ICON_KUNDLI_CREATED} alt=\"\" className={footerShellStyles.badgeIcon} width={16} height={16} loading=\"lazy\" />\n {t('ctaKundliCreated')}\n </span>\n <span className={footerShellStyles.badge}>\n <Img src={ICON_CERTIFIED} alt=\"\" className={footerShellStyles.badgeIcon} width={16} height={16} loading=\"lazy\" />\n {t('ctaCertified')}\n </span>\n <span className={footerShellStyles.badge}>\n <Img src={ICON_SECURE_PAYMENT} alt=\"\" className={footerShellStyles.badgeIcon} width={16} height={16} loading=\"lazy\" />\n {t('ctaSecurePayment')}\n </span>\n </div>\n );\n};\n\nexport const CTAFooter: React.FC<CTAFooterProps> = ({\n t,\n onCtaClick,\n ctaHref,\n className = \"\",\n}) => {\n const ctaContent = t(\"ctaButtonBefore\").replace(/\\s+in\\s*$/i, \"\");\n \n return (\n <FooterShell\n className={className}\n marquee={<CircularMarquee><TrustBadgesRow t={t} /></CircularMarquee>}\n >\n <FooterCTAButton href={ctaHref} onClick={onCtaClick}>\n {ctaContent}\n </FooterCTAButton>\n </FooterShell>\n );\n};\n","import React, { useState, useRef, useEffect, useCallback } from \"react\";\nimport styles from \"./KundliPage.module.scss\";\nimport { useI18n } from \"../../i18n\";\nimport {\n translations,\n LOCALE_LABELS,\n SUPPORTED_LOCALES,\n type SupportedLocale,\n} from \"../../i18n/translations\";\nimport { KundliForm } from \"../KundliForm\";\nimport { KundliProvider, useKundliContextOrThrow } from \"./KundliContext\";\nimport { DefaultKundliImage } from \"../../types/image\";\n\nconst GLOBE_ICON_URL = \"https://srm-cdn.a4b.io/yoda/1770362713543.svg\";\nimport {\n KundliHeader,\n HeroSection,\n PremiumReportOverview,\n UniversityCertification,\n ThreeStepsProcess,\n ViewSampleReportButton,\n WhatYoullFindSection,\n WhyUsSection,\n FeedbackSection,\n FAQSection,\n ContactUsSection,\n CTAFooter,\n TrustBadgesRow,\n} from \"./sections\";\nimport { MarqueeStrip } from \"@srimandir/astrology-common\";\n\nimport type { KundliFormValues } from \"../KundliForm\";\nimport type { KundliAnalytics } from \"../../analytics\";\nimport type { AtlasSearchLocalities } from \"../KundliForm/sections/UserInfoFormSection/useGooglePlacesAutocomplete\";\n\nexport interface KundliPageProps {\n /** Optional CSS class name */\n className?: string;\n /** Language (en, hi). Overrides I18nProvider if set. Initial value when using dropdown. */\n locale?: SupportedLocale;\n /** Show language dropdown. Default true. */\n showLanguageSelector?: boolean;\n /** Show bottom sheet for plans in v1 variant */\n showSheet?: boolean;\n /** User ID from auth, for API calls etc. */\n userId?: number;\n /** Whether the user is global (international) or domestic */\n isGlobal?: boolean;\n /** Header logo URL */\n logoUrl?: string;\n /** Premium report cover image URL */\n reportImageUrl?: string;\n /** University logo URLs [BHU, VSU] */\n universityLogoUrls?: [string?, string?];\n /** Sample report link (opens in new tab) */\n sampleReportHref?: string;\n /** Called when \"View Sample Report\" is clicked (if sampleReportHref not set) */\n onViewSampleReport?: () => void;\n /** CTA button link (e.g. checkout URL). If set, CTA is a link; otherwise CTA shows the Kundli form. */\n ctaHref?: string;\n /** Called when CTA button is clicked (if ctaHref not set). Also called after navigating to form when integrated. */\n onCtaClick?: () => void;\n /** Read more reviews link */\n readMoreReviewsHref?: string;\n /** Called when user proceeds from the form (e.g. to payment) */\n onProceed?: (values: KundliFormValues) => void;\n /** Callback for Guidance plan (999 price) specifically */\n onProceedGuidance?: (values: KundliFormValues) => void;\n /** Form: proceed CTA as link */\n proceedHref?: string;\n /** Form: pricing labels */\n originalPriceLabel?: string;\n discountedPriceLabel?: string;\n discountPillLabel?: string;\n /** Optional analytics implementation for Mixpanel/tracking events */\n analytics?: KundliAnalytics;\n /** Notify when user changes language (e.g. to keep form view in sync when switching from landing) */\n onLocaleChange?: (locale: SupportedLocale) => void;\n /** Atlas localities search callback for birth place autocomplete */\n atlasSearchLocalities?: AtlasSearchLocalities;\n /** Enables 3-SKU experiment flow when used with v1 variant. */\n enableThreeSkuFlow?: boolean;\n /** URL for the \"200+ page Kundli Report\" sample link in 3-SKU table. */\n kundliReportSampleHref?: string;\n /** URL for the \"1 Question\" sample link in 3-SKU table. */\n oneQuestionSampleHref?: string;\n}\n\nconst tFromLocale = (locale: SupportedLocale, key: string) =>\n translations[locale]?.[key] ?? key;\n\n/** Height of the sticky CTA footer (matches space reserved in main, e.g. pb-28). */\nconst CTA_FOOTER_HEIGHT_PX = 112;\n\n/** Wraps a section and fires trackDetailedKundliReportImpressionFe when it enters the viewport. */\nfunction SectionWithImpression({\n section,\n children,\n onImpression,\n}: {\n section: string;\n children: React.ReactNode;\n onImpression: (section: string) => void;\n}) {\n const ref = useRef<HTMLDivElement>(null);\n const reported = useRef(false);\n useEffect(() => {\n const el = ref.current;\n if (!el) return;\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (!entry?.isIntersecting || reported.current) return;\n reported.current = true;\n onImpression(section);\n },\n {\n threshold: 0.1,\n // Shrink bottom of viewport by CTA footer height so we only count content actually visible above the sticky footer\n rootMargin: `0px 0px -${CTA_FOOTER_HEIGHT_PX}px 0px`,\n }\n );\n observer.observe(el);\n return () => observer.disconnect();\n }, [section, onImpression]);\n return <div ref={ref}>{children}</div>;\n}\n\n/** Renders either the landing page or the form based on context view */\nfunction KundliPageRouter({ className }: { className: string }) {\n const { view } = useKundliContextOrThrow();\n if (view === \"form\") {\n return <KundliForm />;\n }\n return <KundliPageContent className={className} />;\n}\n\n/** Landing page content (hero, steps, CTA, etc.). Uses context for locale and CTA → form. */\nfunction KundliPageContent({ className }: { className: string }) {\n const i18n = useI18n();\n const {\n locale,\n setLocale,\n config,\n goToForm,\n } = useKundliContextOrThrow();\n\n const [langOpen, setLangOpen] = useState(false);\n const langRef = useRef<HTMLDivElement>(null);\n const prevLocalePropRef = useRef<SupportedLocale | undefined>(config.locale);\n const prevProviderLocaleRef = useRef<SupportedLocale | undefined>(\n i18n?.locale,\n );\n\n useEffect(() => {\n if (config.locale && prevLocalePropRef.current !== config.locale) {\n setLocale(config.locale);\n }\n prevLocalePropRef.current = config.locale;\n }, [config.locale, setLocale]);\n\n useEffect(() => {\n if (config.locale) return;\n const providerLocale = i18n?.locale;\n if (providerLocale && prevProviderLocaleRef.current !== providerLocale) {\n setLocale(providerLocale);\n }\n prevProviderLocaleRef.current = providerLocale;\n }, [i18n?.locale, config.locale, setLocale]);\n\n useEffect(() => {\n if (!langOpen) return;\n const handleClickOutside = (e: MouseEvent) => {\n if (langRef.current && !langRef.current.contains(e.target as Node)) {\n setLangOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => document.removeEventListener(\"mousedown\", handleClickOutside);\n }, [langOpen]);\n\n const t = (key: string) => tFromLocale(locale, key);\n const showLanguageSelector = config.showLanguageSelector ?? true;\n const Img = config.imageComponent ?? DefaultKundliImage;\n\n const languageSelector = showLanguageSelector ? (\n <div className={styles.langDropdownWrap} ref={langRef}>\n <button\n type=\"button\"\n className={styles.langTrigger}\n onClick={() => {\n config.analytics?.trackLanguageClickedFe?.({ language: locale });\n setLangOpen((o) => !o);\n }}\n aria-expanded={langOpen}\n aria-haspopup=\"listbox\"\n id=\"kundli-lang\"\n aria-label={t(\"language\")}\n >\n <Img\n src={GLOBE_ICON_URL}\n alt=\"\"\n className={styles.langIcon}\n width={16}\n height={16}\n loading=\"eager\"\n />\n <span className={styles.langLabel}>{LOCALE_LABELS[locale]}</span>\n </button>\n {langOpen && (\n <ul\n className={styles.langMenu}\n role=\"listbox\"\n aria-labelledby=\"kundli-lang\"\n aria-activedescendant={`kundli-lang-option-${locale}`}\n >\n {SUPPORTED_LOCALES.map((loc) => (\n <li\n key={loc}\n id={`kundli-lang-option-${loc}`}\n role=\"option\"\n aria-selected={loc === locale}\n className={styles.langOption}\n onClick={() => {\n config.analytics?.trackLanguageChangedFe?.({ newLanguage: loc });\n setLocale(loc);\n setLangOpen(false);\n }}\n >\n {LOCALE_LABELS[loc]}\n </li>\n ))}\n </ul>\n )}\n </div>\n ) : null;\n\n const handleCtaClick = (e: React.MouseEvent<HTMLElement>) => {\n const ctaText =\n (e.currentTarget as HTMLElement).innerText?.trim() ?? t(\"ctaButtonAfter\");\n config.analytics?.trackPrimaryCtaClickedFe?.({ ctaText });\n goToForm();\n config.onCtaClick?.();\n };\n\n const handleSectionImpression = useCallback(\n (section: string) => {\n config.analytics?.trackDetailedKundliReportImpressionFe?.({\n section,\n timestamp: new Date().toISOString(),\n });\n },\n [config.analytics]\n );\n\n return (\n <div className={`${styles.container} ${className}`}>\n <KundliHeader\n t={t}\n logoUrl={config.logoUrl}\n languageSelector={languageSelector}\n />\n <main className={styles.main}>\n <SectionWithImpression\n section=\"hero\"\n onImpression={handleSectionImpression}\n >\n <HeroSection t={t} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"premium_report_overview\"\n onImpression={handleSectionImpression}\n >\n <PremiumReportOverview\n t={t}\n reportImageUrl={config.reportImageUrl}\n reportImagePriority={config.reportImagePriority}\n backgroundImagePriority={config.backgroundImagePriority}\n analytics={config.analytics}\n />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"university_certification\"\n onImpression={handleSectionImpression}\n >\n <UniversityCertification\n t={t}\n logoUrl={config.universityLogoUrls?.find((u): u is string => Boolean(u))}\n />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"three_steps_process\"\n onImpression={handleSectionImpression}\n >\n <ThreeStepsProcess t={t} locale={locale} isGlobal={config.isGlobal} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"view_sample_report\"\n onImpression={handleSectionImpression}\n >\n <ViewSampleReportButton\n t={t}\n pdfUrl={config.sampleReportHref}\n onClick={config.onViewSampleReport}\n analytics={config.analytics}\n />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"what_youll_find\"\n onImpression={handleSectionImpression}\n >\n <WhatYoullFindSection t={t} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"why_us\"\n onImpression={handleSectionImpression}\n >\n <WhyUsSection t={t} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"feedback\"\n onImpression={handleSectionImpression}\n >\n <FeedbackSection \n t={t} \n readMoreHref={config.readMoreReviewsHref}\n onReadMore={config.analytics?.trackReadMoreReviewsClicked ? () => config.analytics!.trackReadMoreReviewsClicked!() : undefined}\n />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"faq\"\n onImpression={handleSectionImpression}\n >\n <FAQSection t={t} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"contact_us\"\n onImpression={handleSectionImpression}\n >\n <ContactUsSection t={t} />\n </SectionWithImpression>\n </main>\n <CTAFooter\n t={t}\n ctaHref={config.ctaHref}\n onCtaClick={config.ctaHref ? undefined : handleCtaClick}\n />\n </div>\n );\n}\n\nexport const KundliPage: React.FC<KundliPageProps> = ({\n className = \"\",\n locale: localeProp,\n showLanguageSelector = true,\n showSheet,\n userId,\n isGlobal,\n atlasSearchLocalities,\n logoUrl,\n reportImageUrl,\n universityLogoUrls,\n sampleReportHref,\n onViewSampleReport,\n ctaHref,\n onCtaClick,\n readMoreReviewsHref,\n onProceed,\n onProceedGuidance,\n proceedHref,\n originalPriceLabel,\n discountedPriceLabel,\n discountPillLabel,\n analytics,\n onLocaleChange,\n}) => {\n return (\n <KundliProvider\n locale={localeProp}\n showLanguageSelector={showLanguageSelector}\n showSheet={showSheet}\n userId={userId}\n isGlobal={isGlobal}\n atlasSearchLocalities={atlasSearchLocalities}\n logoUrl={logoUrl}\n reportImageUrl={reportImageUrl}\n universityLogoUrls={universityLogoUrls}\n sampleReportHref={sampleReportHref}\n onViewSampleReport={onViewSampleReport}\n ctaHref={ctaHref}\n onCtaClick={onCtaClick}\n readMoreReviewsHref={readMoreReviewsHref}\n onProceed={onProceed}\n onProceedGuidance={onProceedGuidance}\n proceedHref={proceedHref}\n originalPriceLabel={originalPriceLabel}\n discountedPriceLabel={discountedPriceLabel}\n discountPillLabel={discountPillLabel}\n analytics={analytics}\n onLocaleChange={onLocaleChange}\n >\n <KundliPageRouter className={className} />\n </KundliProvider>\n );\n};\n","export const THREE_SKU_ASTROLOGERS = [\n {\n id: \"samiksha\",\n name: \"Astro Samiksha\",\n imageUrl: \"https://srm-cdn.a4b.io/yoda/1781123256347.webp\",\n experience: \"21+ Years of experience\",\n languages: [\"Hindi\", \"English\", \"Telugu\"],\n certifications: [\n \"Certified Jyotish Acharya\",\n \"Guaranteed accurate solutions\",\n ],\n },\n {\n id: \"jyoti\",\n name: \"Astro Sadhana\",\n imageUrl: \"https://srm-cdn.a4b.io/yoda/1781123290643.webp\",\n experience: \"21+ Years of experience\",\n languages: [\"Hindi\", \"English\", \"Telugu\"],\n certifications: [\n \"25+ Years Vedic Astrology\",\n \"Result-Oriented Spiritual Guidance\",\n ],\n },\n \n] as const;\n","import type { KundliPlan } from \"../KundliPlanBottomSheet/types\";\nimport { THREE_SKU_ASTROLOGERS } from \"./ThreeSkuAstrologerProfiles\";\n\n/**\n * Self-contained en/hi strings for the 3-SKU experiment bottom sheet.\n */\nexport const THREE_SKU_STRINGS = {\n en: {\n planSheetTitle: \"Choose your Kundli Plan\",\n planProceedToPayment: \"Proceed to Payment\",\n planAstrologerHeading: \"Top astrologers who will consult you\",\n planMostPopular: \"Most popular\",\n planNameBasic: \"Kundli Report\",\n planNameQuestion: \"Kundli + 1 Question\",\n planNameGuidance: \"Kundli + Consultation\",\n planSaveLabel: \"Save ~25%\",\n planFeatureDetailedInsights: \"Detailed insights on love, marriage, career, health & finances\",\n planFeaturePracticalRemedies: \"Practical remedies like gemstones, rudraksha & mantras\",\n planFeatureClearLanguage: \"Clear, easy-to-understand language by expert astrologers\",\n planFeatureAstrologyConsultant: \"Astrology consultant\",\n planFeaturePersonalizedReading: \"Personalized reading\",\n planFeatureIncludesPremium: \"Includes everything in the Premium Personalized Kundli\",\n planFeatureExpertAnswers: \"PLUS: Expert Astrologer will answer your question in detail and suggest actionable remedies\",\n planFeatureFollowUpQuestions: \"Go deeper into asking follow up questions\",\n planFeatureNoConsultation: \"No personal consultation call\",\n planFeaturePlusConsultation: \"PLUS: A 30-minute private consultation with an expert astrologer\",\n planFeatureRealTimeAnswers: \"Get real-time answers & guidance for your biggest life concerns\",\n planFeatureTailoredRemedies: \"Remedies & timelines tailored to your unique birth chart\",\n planQuestionLabel: \"Ask your Question\",\n planQuestionHeader: \"Ask our top astrologers\",\n planQuestionPlaceholder: \"Ask follow up question\",\n planQuestionHint: \"Please enter your question to continue.\",\n planQuestionChip1: \"When will I get married?\",\n planQuestionChip2: \"Will my marriage be love, arranged, or both?\",\n planQuestionChip3: \"Is there any Dosha in my Kundli?\",\n planQuestionChip4: \"Is my current relationship right for me?\",\n planAstrologerExp: \"{{years}} Years of experience\",\n },\n hi: {\n planSheetTitle: \"अपनी कुंडली प्लान चुनें\",\n planProceedToPayment: \"पेमेंट करें\",\n planAstrologerHeading: \"हम आपके लिए नीचे दिए गए टॉप ज्योतिषियों में से एक को चुनेंगे\",\n planMostPopular: \"सबसे लोकप्रिय\",\n planNameBasic: \"कुंडली रिपोर्ट\",\n planNameQuestion: \"कुंडली + 1 सवाल\",\n planNameGuidance: \"कुंडली रिपोर्ट + ज्योतिषी से बात\",\n planSaveLabel: \"~25% बचाएं\",\n planFeatureDetailedInsights: \"प्यार, विवाह, करियर, स्वास्थ्य और वित्त पर गहरी जानकारी\",\n planFeaturePracticalRemedies: \"रत्न, रुद्राक्ष और मंत्रों जैसे व्यावहारिक उपाय\",\n planFeatureClearLanguage: \"विशेषज्ञ ज्योतिषियों द्वारा स्पष्ट और आसान भाषा में\",\n planFeatureAstrologyConsultant: \"ज्योतिषी से बात नहीं होगी\",\n planFeaturePersonalizedReading: \"आपके लिए खास रीडिंग\",\n planFeatureIncludesPremium: \"प्रीमियम कुंडली रिपोर्ट में जो कुछ भी है, सब मिलेगा\",\n planFeatureExpertAnswers: \"PLUS: विशेषज्ञ ज्योतिषी आपके सवाल का विस्तार से जवाब देंगे और समाधान बताएंगे\",\n planFeatureFollowUpQuestions: \"आगे के सवाल पूछने की सुविधा\",\n planFeatureNoConsultation: \"कोई व्यक्तिगत परामर्श कॉल नहीं\",\n planFeaturePlusConsultation: \"साथ ही: एक अनुभवी ज्योतिषी से 30 मिनट की प्राइवेट बात\",\n planFeatureRealTimeAnswers: \"अपनी सबसे बड़ी परेशानियों का सीधा जवाब और सही सलाह पाएं\",\n planFeatureTailoredRemedies: \"आपकी कुंडली के हिसाब से उपाय और सही समय की जानकारी\",\n planQuestionLabel: \"अपना सवाल पूछें\",\n planQuestionHeader: \"अपने सवाल हमारे टॉप ज्योतिषियों से पूछें\",\n planQuestionPlaceholder: \"फॉलो अप सवाल लिखें\",\n planQuestionHint: \"जारी रखने के लिए अपना सवाल लिखें।\",\n planQuestionChip1: \"मेरी शादी कब होगी?\",\n planQuestionChip2: \"मेरी शादी प्रेम, अरेंज, या दोनों में से कैसी होगी?\",\n planQuestionChip3: \"क्या मेरी कुंडली में कोई दोष है?\",\n planQuestionChip4: \"क्या मेरा मौजूदा रिश्ता मेरे लिए सही है?\",\n planAstrologerExp: \"साल का अनुभव\",\n },\n} as const;\n\nexport type ThreeSkuLocale = keyof typeof THREE_SKU_STRINGS;\n\nexport interface ThreeSkuPlan extends KundliPlan {\n supportsQuestion?: boolean;\n}\n\nexport const getThreeSkuDefaultPlans = (isGlobal: boolean): ThreeSkuPlan[] => {\n const base: ThreeSkuPlan[] = [\n {\n id: \"kundli-report\",\n title: \"planNameBasic\",\n price: isGlobal ? \"$25\" : \"₹499\",\n features: [\n { text: \"planFeatureDetailedInsights\", included: true },\n { text: \"planFeaturePracticalRemedies\", included: true },\n { text: \"planFeatureClearLanguage\", included: true },\n { text: \"planFeatureAstrologyConsultant\", included: false },\n { text: \"planFeaturePersonalizedReading\", included: false },\n ],\n },\n {\n id: \"kundli-report-question\",\n title: \"planNameQuestion\",\n price: isGlobal ? \"$31\" : \"₹749\",\n supportsQuestion: true,\n features: [\n { text: \"planFeatureIncludesPremium\", included: true },\n { text: \"planFeatureExpertAnswers\", included: true },\n { text: \"planFeatureFollowUpQuestions\", included: false },\n { text: \"planFeatureNoConsultation\", included: false },\n ],\n },\n {\n id: \"kundli-report-astrologer\",\n title: \"planNameGuidance\",\n price: isGlobal ? \"$41\" : \"₹999\",\n originalPrice: isGlobal ? \"$25+$25\" : \"₹499+₹850\",\n savingsLabel: \"planSaveLabel\",\n badge: \"planMostPopular\",\n features: [\n { text: \"planFeatureIncludesPremium\", included: true },\n { text: \"planFeaturePlusConsultation\", included: true },\n { text: \"planFeatureRealTimeAnswers\", included: true },\n { text: \"planFeatureTailoredRemedies\", included: true },\n ],\n astrologers: THREE_SKU_ASTROLOGERS.filter((a) =>\n [\"jyoti\", \"samiksha\", \"neeraj\", \"ashwini\"].includes(a.id)\n ) as any,\n },\n ];\n\n return base;\n};\n\nexport const CHIP_KEYS = [\n \"planQuestionChip1\",\n \"planQuestionChip2\",\n \"planQuestionChip3\",\n \"planQuestionChip4\",\n] as const;\n\nexport const TOP_ASTROLOGER_AVATARS = THREE_SKU_ASTROLOGERS.slice(0, 3).map((a) => ({\n id: a.id,\n imageUrl: a.imageUrl,\n name: a.name,\n}));\n\nexport const MAX_QUESTION_LENGTH = 5000;\nexport const MAX_TEXTAREA_HEIGHT_PX = 84;\n","/**\n * Shared CSS keyframe animation strings.\n * Inject via a <style> tag in JSX components that need these animations.\n *\n * Usage:\n * import { KEYFRAME_STYLES } from \"@/utils/keyframeStyles\";\n * // inside render:\n * <style>{KEYFRAME_STYLES}</style>\n */\nexport const KEYFRAME_STYLES = `\n @keyframes three-sku-slide-up {\n from { transform: translateY(100%); opacity: 0; }\n to { transform: translateY(0); opacity: 1; }\n }\n @keyframes three-sku-shimmer {\n 0% { left: -75%; }\n 60% { left: 125%; }\n 100% { left: 125%; }\n }\n`;\n","import { ChevronLeftIcon } from \"../KundliPlanBottomSheet/PlanIcons\";\n\ninterface SheetHeaderProps {\n title: string;\n onClose: () => void;\n}\n\nexport const SheetHeader: React.FC<SheetHeaderProps> = ({ title, onClose }) => (\n <div className=\"flex items-center gap-2 px-4 pt-3 pb-1 sticky top-0 bg-white z-[2]\">\n <button\n type=\"button\"\n onClick={onClose}\n aria-label=\"Go back\"\n className=\"w-8 h-8 rounded-full bg-transparent border-0 flex items-center justify-center text-gray-700 hover:bg-gray-100\"\n >\n <ChevronLeftIcon />\n </button>\n <h2 className=\"flex-1 text-[16px] font-bold text-gray-900 m-0 pr-8\">\n {title}\n </h2>\n </div>\n);\n","export const IncludedFeatureIcon = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M8 1.5C11.5901 1.5 14.5 4.40986 14.5 8C14.5 11.5901 11.5901 14.5 8 14.5C4.40986 14.5 1.5 11.5901 1.5 8C1.5 4.40986 4.40986 1.5 8 1.5ZM11.71 5.6709C11.5284 5.46331 11.2128 5.44187 11.0049 5.62305L6.75 9.33594L4.99609 7.80469C4.78809 7.62318 4.47163 7.64562 4.29004 7.85352C4.10887 8.06152 4.13011 8.37711 4.33789 8.55859L6.42188 10.377C6.61019 10.5409 6.89091 10.5411 7.0791 10.377L11.6621 6.37695C11.8699 6.1954 11.8913 5.87889 11.71 5.6709Z\" fill=\"#159169\"/>\n </svg>\n);\n\nexport const ExcludedFeatureIcon = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M8 1.38086C11.6558 1.38086 14.619 4.34424 14.6191 8C14.6191 11.6559 11.6559 14.6191 8 14.6191C4.34424 14.619 1.38086 11.6558 1.38086 8C1.38101 4.34433 4.34433 1.38101 8 1.38086ZM11.1055 4.89648C10.8637 4.65473 10.4712 4.65473 10.2295 4.89648L8 7.125L5.77148 4.89648C5.52973 4.65473 5.13824 4.65473 4.89648 4.89648C4.65473 5.13824 4.65473 5.52973 4.89648 5.77148L7.125 8L4.89648 10.2295C4.65473 10.4712 4.65473 10.8637 4.89648 11.1055C5.13819 11.3464 5.52994 11.3467 5.77148 11.1055L8 8.87598L10.2295 11.1055C10.4713 11.3467 10.8639 11.347 11.1055 11.1055C11.347 10.8639 11.3467 10.4713 11.1055 10.2295L8.87598 8L11.1055 5.77148C11.3467 5.52994 11.3464 5.13819 11.1055 4.89648Z\" fill=\"#D93640\"/>\n </svg>\n);\n\nexport const TrendUpIcon = () => (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <polyline points=\"23 6 13.5 15.5 8.5 10.5 1 18\" />\n <polyline points=\"17 6 23 6 23 12\" />\n </svg>\n);\n","import type { ThreeSkuPlan } from \"./constants\";\nimport { IncludedFeatureIcon, ExcludedFeatureIcon } from \"./ThreeSkuPlanBottomSheet.icons\";\n\ninterface PlanFeatureListProps {\n plan: ThreeSkuPlan;\n t: (key: string) => string;\n}\n\nexport const PlanFeatureList: React.FC<PlanFeatureListProps> = ({ plan, t }) => (\n <div className=\"rounded-2xl border border-gray-200 bg-white px-4 py-3 shadow-[0_2px_8px_rgba(17,24,39,0.06)]\">\n <ul className=\"list-none m-0 p-0 flex flex-col gap-2\" aria-label=\"Plan features\">\n {plan.features.map((feature, idx) => (\n <li key={idx} className=\"flex items-start gap-3\">\n <span className=\"shrink-0 mt-[1px]\">\n {feature.included ? <IncludedFeatureIcon /> : <ExcludedFeatureIcon />}\n </span>\n <span className=\"text-[14px] leading-[20px] text-gray-700\">\n {t(feature.text)}\n </span>\n </li>\n ))}\n </ul>\n </div>\n);\n","interface QuestionChipsProps {\n chipKeys: readonly string[];\n t: (key: string) => string;\n onChipClick: (key: string, idx: number) => void;\n}\n\nexport const QuestionChips: React.FC<QuestionChipsProps> = ({\n chipKeys,\n t,\n onChipClick,\n}) => {\n const half = Math.ceil(chipKeys.length / 2);\n const rows = [chipKeys.slice(0, half), chipKeys.slice(half)];\n\n return (\n <div className=\"overflow-x-auto pb-1 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\">\n <div className=\"inline-flex flex-col gap-2\">\n {rows.map((row, rowIdx) => (\n <div key={rowIdx} className=\"flex gap-2\">\n {row.map((key) => (\n <button\n key={key}\n type=\"button\"\n className=\"inline-flex w-auto px-3 py-2 rounded-full bg-[#F1F7FF] text-[#104DA6] text-[14px] font-medium cursor-pointer whitespace-nowrap active:opacity-70 transition-opacity\"\n onClick={() => onChipClick(key, chipKeys.indexOf(key))}\n >\n {t(key)}\n </button>\n ))}\n </div>\n ))}\n </div>\n </div>\n );\n};\n","import { QuestionChips } from \"./QuestionChips\";\n\ninterface QuestionInputProps {\n textareaRef: React.RefObject<HTMLTextAreaElement>;\n value: string;\n label: string;\n placeholder: string;\n chipKeys: readonly string[];\n t: (key: string) => string;\n onFocus: () => void;\n onClick: () => void;\n onChange: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;\n onChipClick: (key: string, idx: number) => void;\n}\n\nexport const QuestionInput: React.FC<QuestionInputProps> = ({\n textareaRef,\n value,\n label,\n placeholder,\n chipKeys,\n t,\n onFocus,\n onClick,\n onChange,\n onChipClick,\n}) => (\n <div className=\"mt-4 flex flex-col gap-2\">\n <div\n className=\"w-full h-px mb-2\"\n style={{\n backgroundImage:\n \"repeating-linear-gradient(to right, #D1D5DB, #D1D5DB 4px, transparent 4px, transparent 8px)\",\n }}\n />\n <label className=\"text-[14px] font-semibold text-gray-900\" htmlFor=\"kundli-question\">\n {label}\n <span className=\"text-[#e05c2a] ml-0.5\">*</span>\n </label>\n <textarea\n id=\"kundli-question\"\n ref={textareaRef}\n className=\"w-full resize-none overflow-y-auto border-[1.5px] border-[#F99724] rounded-[10px] p-4 text-left align-top text-[14px] text-gray-900 leading-5 box-border outline-none focus:border-[#e05c2a] focus:shadow-[0_0_0_3px_rgba(224,92,42,0.12)] placeholder:text-left placeholder:text-gray-400\"\n style={{ height: \"100px\" }}\n placeholder={placeholder}\n value={value}\n onFocus={onFocus}\n onClick={onClick}\n onChange={onChange}\n />\n <QuestionChips chipKeys={chipKeys} t={t} onChipClick={onChipClick} />\n </div>\n);\n","import type { KundliPlanAstrologer } from \"../KundliPlanBottomSheet/types\";\nimport styles from \"./ThreeSkuAstrologerCard.module.scss\";\n\nexport interface ThreeSkuAstrologerCardProps {\n astrologer: KundliPlanAstrologer;\n t?: (key: string, options?: any) => string;\n}\n\nexport const ThreeSkuAstrologerCard: React.FC<ThreeSkuAstrologerCardProps> = ({ astrologer, t }) => (\n <div className={styles.card}>\n <div className={styles.top}>\n <div className={styles.avatar} aria-hidden>\n {astrologer.imageUrl ? (\n <img src={astrologer.imageUrl} alt={t?.(astrologer.name) ?? astrologer.name} width={40} height={40} />\n ) : (\n <span className={styles.avatarPlaceholder}>{astrologer.name.charAt(0)}</span>\n )}\n </div>\n <div className={styles.basicInfo}>\n <p className={styles.name}>{t?.(astrologer.name) ?? astrologer.name}</p>\n <p className={styles.exp}>{t?.(astrologer.experience) ?? astrologer.experience}</p>\n {astrologer.languages && astrologer.languages.length > 0 && (\n <p className={styles.langs}>{astrologer.languages.map((lang) => t?.(lang) ?? lang).join(\" • \")}</p>\n )}\n </div>\n </div>\n\n <div className={styles.divider} />\n\n <div className={styles.certList}>\n {astrologer.certifications.map((cert, idx) => (\n <p key={idx} className={styles.certItem}>\n <span className={styles.bullet}>✓</span> {t?.(cert) ?? cert}\n </p>\n ))}\n </div>\n </div>\n);\n","import type { KundliPlanAstrologer } from \"../KundliPlanBottomSheet/types\";\nimport { ThreeSkuAstrologerCard } from \"./ThreeSkuAstrologerCard\";\n\ninterface AstrologerSectionProps {\n astrologers: KundliPlanAstrologer[];\n heading: string;\n t: (key: string) => string;\n}\n\nexport const AstrologerSection: React.FC<AstrologerSectionProps> = ({\n astrologers,\n heading,\n t,\n}) => (\n <>\n <div\n className=\"w-full h-px my-3\"\n style={{\n backgroundImage:\n \"repeating-linear-gradient(to right, #D1D5DB, #D1D5DB 4px, transparent 4px, transparent 8px)\",\n }}\n />\n <p className=\"m-0 mt-4 text-[14px] font-semibold text-[#1D2125]\">{heading}</p>\n <div\n className=\"flex overflow-x-auto gap-3 mt-3 pb-1 scroll-smooth [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\"\n role=\"list\"\n >\n {astrologers.map((astrologer, idx) => (\n <div key={idx} role=\"listitem\">\n <ThreeSkuAstrologerCard astrologer={astrologer as any} t={t} />\n </div>\n ))}\n </div>\n </>\n);\n","import type { ThreeSkuPlan } from \"./constants\";\nimport { TrendUpIcon } from \"./ThreeSkuPlanBottomSheet.icons\";\nimport type { ThreeSkuAnalytics } from \"./ThreeSkuPlanBottomSheet.types\";\n\ninterface PlanSelectorStripProps {\n plans: ThreeSkuPlan[];\n selectedId: string;\n t: (key: string) => string;\n analytics?: ThreeSkuAnalytics;\n onSelectPlan: (plan: ThreeSkuPlan) => void;\n}\n\nexport const PlanSelectorStrip: React.FC<PlanSelectorStripProps> = ({\n plans,\n selectedId,\n t,\n analytics,\n onSelectPlan,\n}) => (\n <div className=\"flex gap-2 pt-4 pb-3 overflow-visible\" role=\"radiogroup\" aria-label=\"Select plan\">\n {plans.map((plan) => (\n <button\n key={plan.id}\n type=\"button\"\n role=\"radio\"\n aria-checked={plan.id === selectedId}\n className={[\n \"flex-1 relative overflow-visible flex flex-col items-center justify-center gap-1 px-1 py-3 min-h-[125px] min-w-[106px] rounded-xl border-[1.5px] cursor-pointer text-center outline-none transition-colors\",\n plan.id === selectedId\n ? \"border-[#e05c2a] bg-[#fff8f4]\"\n : \"border-gray-200 bg-white\",\n ].join(\" \")}\n onClick={() => {\n analytics?.trackPlanSelected?.({ planId: plan.id, planName: plan.title });\n onSelectPlan(plan);\n }}\n >\n {plan.badge && (\n <span className=\"absolute -top-[14px] left-0 right-0 inline-flex items-center justify-center gap-1 whitespace-nowrap rounded-t-xl bg-[linear-gradient(180deg,#751139_0%,#D51F68_100%)] px-2 py-[6px] text-[11px] font-bold text-white\">\n <TrendUpIcon />\n {t(plan.badge)}\n </span>\n )}\n <span\n className={`text-[14px] leading-snug ${\n plan.id === selectedId ? \"font-bold text-gray-900\" : \"font-semibold text-gray-600\"\n }`}\n >\n {t(plan.title)}\n </span>\n <span className=\"text-[15px] font-bold text-[#1D2125] leading-tight\">\n {plan.price}\n </span>\n </button>\n ))}\n </div>\n);\n","interface ProceedButtonProps {\n canProceed: boolean;\n label: string;\n showDisabledHint: boolean;\n hintText: string;\n onClick: () => void;\n}\n\nexport const ProceedButton: React.FC<ProceedButtonProps> = ({\n canProceed,\n label,\n showDisabledHint,\n hintText,\n onClick,\n}) => (\n <>\n {showDisabledHint && (\n <p className=\"m-0 mb-2 text-xs text-[#e05c2a] text-center\" role=\"alert\">\n {hintText}\n </p>\n )}\n <button\n className={[\n \"relative overflow-hidden w-full h-[50px] rounded-[14px] border-0 text-white text-[17px] font-bold cursor-pointer flex items-center justify-center transition-all duration-200\",\n canProceed\n ? \"bg-gradient-to-b from-[#F97316] to-[#EA580C] shadow-[0_6px_14px_rgba(234,88,12,0.25)] hover:from-[#fb923c] hover:to-[#f97316] active:scale-[0.98] active:shadow-[0_3px_8px_rgba(234,88,12,0.2)]\"\n : \"bg-gray-300 text-gray-400 shadow-none cursor-not-allowed\",\n ].join(\" \")}\n style={{ fontFamily: \"inherit\" }}\n aria-disabled={!canProceed}\n onClick={onClick}\n >\n {canProceed && (\n <span\n className=\"absolute top-0 w-1/2 h-full pointer-events-none\"\n aria-hidden=\"true\"\n style={{\n background:\n \"linear-gradient(120deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.25) 50%, rgba(255,255,255,0) 100%)\",\n transform: \"skewX(-20deg)\",\n animation: \"three-sku-shimmer 3s ease-in-out infinite\",\n left: \"-75%\",\n }}\n />\n )}\n <span className=\"relative z-[1]\">{label}</span>\n </button>\n </>\n);\n","import { useState, useRef, useMemo, useCallback, useEffect } from \"react\";\nimport {\n THREE_SKU_STRINGS,\n getThreeSkuDefaultPlans,\n CHIP_KEYS,\n MAX_QUESTION_LENGTH,\n MAX_TEXTAREA_HEIGHT_PX,\n} from \"./constants\";\nimport type { ThreeSkuPlan } from \"./constants\";\nimport { KEYFRAME_STYLES } from \"../../utils/keyframeStyles\";\nimport { SheetHeader } from \"./SheetHeader\";\nimport { PlanFeatureList } from \"./PlanFeatureList\";\nimport { QuestionInput } from \"./QuestionInput\";\nimport { AstrologerSection } from \"./AstrologerSection\";\nimport { PlanSelectorStrip } from \"./PlanSelectorStrip\";\nimport { ProceedButton } from \"./ProceedButton\";\n\n// Re-export types for backward compatibility\nexport type { ThreeSkuAnalytics, ThreeSkuPlanBottomSheetProps } from \"./ThreeSkuPlanBottomSheet.types\";\nimport type { ThreeSkuPlanBottomSheetProps } from \"./ThreeSkuPlanBottomSheet.types\";\n\nexport const ThreeSkuPlanBottomSheet: React.FC<ThreeSkuPlanBottomSheetProps> = ({\n isOpen,\n onClose,\n selectedPlan,\n onSelectPlan,\n plans,\n onProceed,\n locale = \"en\",\n t,\n analytics,\n isGlobal = true,\n}) => {\n /** Resolve a string key: local map → passed t → raw key */\n const localT = useCallback((key: string): string => {\n const map = THREE_SKU_STRINGS[locale] ?? THREE_SKU_STRINGS.en;\n return (map as Record<string, string>)[key] ?? t?.(key) ?? key;\n }, [locale, t]);\n\n const finalPlans = useMemo<ThreeSkuPlan[]>(() => {\n return (plans ?? getThreeSkuDefaultPlans(isGlobal)) as ThreeSkuPlan[];\n }, [plans, isGlobal]);\n\n const selectedId =\n selectedPlan?.id ||\n finalPlans.find((p: ThreeSkuPlan) => p.badge)?.id ||\n finalPlans[0]?.id ||\n \"\";\n\n const sheetRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const questionInputRef = useRef<HTMLDivElement>(null);\n const hasTrackedViewRef = useRef<boolean>(false);\n\n const [questionDraft, setQuestionDraft] = useState(\"\");\n const [questionSource, setQuestionSource] = useState<\"custom\" | \"chip\" | \"chip_edited\">(\"custom\");\n const [lastChipIndex, setLastChipIndex] = useState<number | null>(null);\n const [showDisabledHint, setShowDisabledHint] = useState(false);\n const hasTrackedFocusRef = useRef(false);\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n\n const currentPlan = useMemo<ThreeSkuPlan>(() => {\n return finalPlans.find((p: ThreeSkuPlan) => p.id === selectedId) ?? finalPlans[0];\n }, [finalPlans, selectedId]);\n\n const isQuestionPlan = Boolean(currentPlan?.supportsQuestion);\n const canProceed = !isQuestionPlan || questionDraft.trim().length > 0;\n\n const adjustHeight = useCallback(() => {\n const ta = textareaRef.current;\n if (!ta) return;\n ta.style.height = \"auto\";\n ta.style.height =\n Math.max(100, Math.min(ta.scrollHeight, MAX_TEXTAREA_HEIGHT_PX)) + \"px\";\n }, []);\n\n useEffect(() => {\n if (isOpen) {\n if (!selectedPlan) {\n const defaultPlan = finalPlans.find((p: ThreeSkuPlan) => p.badge) ?? finalPlans[0];\n if (defaultPlan) onSelectPlan(defaultPlan);\n }\n if (!hasTrackedViewRef.current) {\n analytics?.trackPlanPageViewed?.();\n hasTrackedViewRef.current = true;\n }\n } else {\n hasTrackedViewRef.current = false;\n }\n }, [isOpen, finalPlans, selectedPlan, onSelectPlan, analytics]);\n\n useEffect(() => {\n if (!isOpen) return;\n const previous = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n return () => { document.body.style.overflow = previous; };\n }, [isOpen]);\n\n const handleClose = () => {\n analytics?.trackPlanPageClosed?.();\n onClose();\n };\n\n const handleQuestionFocus = (method: \"tap\" | \"keyboard_focus\") => {\n // Scroll the question input section to the top of the visible container\n const contentEl = contentRef.current;\n const questionEl = questionInputRef.current;\n if (contentEl && questionEl) {\n const questionTop =\n questionEl.getBoundingClientRect().top -\n contentEl.getBoundingClientRect().top +\n contentEl.scrollTop;\n contentEl.scrollTo({ top: questionTop, behavior: \"smooth\" });\n }\n\n if (hasTrackedFocusRef.current) return;\n hasTrackedFocusRef.current = true;\n analytics?.trackQuestionTextboxClicked?.({\n entry_method: method,\n textbox_empty: questionDraft.length === 0,\n });\n };\n\n const handleQuestionChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const val = e.target.value.slice(0, MAX_QUESTION_LENGTH);\n if (questionSource === \"chip\" && val !== localT(CHIP_KEYS[lastChipIndex ?? 0])) {\n setQuestionSource(\"chip_edited\");\n }\n setQuestionDraft(val);\n adjustHeight();\n if (showDisabledHint) setShowDisabledHint(false);\n };\n\n const handleChipClick = (key: string, idx: number) => {\n const chipText = localT(key);\n const hadCustomText = questionDraft.length > 0 && questionSource !== \"chip\";\n analytics?.trackPreSuggestedQuestionSelected?.({\n question_text_loaded: chipText,\n chip_index: idx,\n previous_chip_index: lastChipIndex,\n user_had_custom_text: hadCustomText,\n });\n setQuestionDraft(chipText);\n setQuestionSource(\"chip\");\n setLastChipIndex(idx);\n hasTrackedFocusRef.current = false;\n setTimeout(adjustHeight, 0);\n };\n\n const handleProceedClick = () => {\n if (!currentPlan) return;\n if (isQuestionPlan && !questionDraft.trim()) {\n setShowDisabledHint(true);\n return;\n }\n analytics?.trackPlanProceedClicked?.({\n planId: currentPlan.id,\n planName: currentPlan.title,\n price: currentPlan.price,\n currency: isGlobal ? \"USD\" : \"INR\",\n question_asked: isQuestionPlan ? true : undefined,\n question_text: isQuestionPlan ? questionDraft.trim() : undefined,\n question_source: isQuestionPlan ? questionSource : undefined,\n });\n onProceed(currentPlan, isQuestionPlan ? questionDraft.trim() : undefined);\n onClose();\n };\n\n if (!isOpen) return null;\n\n return (\n <>\n <style>{KEYFRAME_STYLES}</style>\n\n <div\n className=\"fixed inset-0 z-[1000] bg-black/55 flex items-stretch justify-center\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={localT(\"planSheetTitle\")}\n >\n <div\n ref={sheetRef}\n className=\"pt-8 w-full max-w-[480px] h-[100dvh] max-h-[100dvh] bg-white flex flex-col overflow-hidden\"\n style={{ animation: \"three-sku-slide-up 0.28s cubic-bezier(0.32, 0.72, 0, 1)\" }}\n >\n <SheetHeader title={localT(\"planSheetTitle\")} onClose={handleClose} />\n\n {/* ── Scrollable content ── */}\n <div className=\"flex-1 overflow-y-auto px-4 pt-4 pb-4\" ref={contentRef}>\n <h3 className=\"m-0 mb-5 text-[16px] font-bold leading-snug text-[#CF6C09]\">\n {localT(currentPlan?.title ?? \"\")}\n </h3>\n\n {currentPlan && <PlanFeatureList plan={currentPlan} t={localT} />}\n\n {isQuestionPlan && (\n <div ref={questionInputRef}>\n <QuestionInput\n textareaRef={textareaRef}\n value={questionDraft}\n label={localT(\"planQuestionLabel\")}\n placeholder={localT(\"planQuestionPlaceholder\")}\n chipKeys={CHIP_KEYS}\n t={localT}\n onFocus={() => handleQuestionFocus(\"keyboard_focus\")}\n onClick={() => handleQuestionFocus(\"tap\")}\n onChange={handleQuestionChange}\n onChipClick={handleChipClick}\n />\n </div>\n )}\n\n {currentPlan?.astrologers && currentPlan.astrologers.length > 0 && (\n <AstrologerSection\n astrologers={currentPlan.astrologers}\n heading={localT(\"planAstrologerHeading\")}\n t={localT}\n />\n )}\n </div>\n\n {/* ── Sticky footer ── */}\n <div\n className=\"px-4 pt-3.5 bg-white border-t border-gray-100 sticky bottom-0 z-[5]\"\n style={{ paddingBottom: \"calc(14px + env(safe-area-inset-bottom))\" }}\n >\n <PlanSelectorStrip\n plans={finalPlans}\n selectedId={selectedId}\n t={localT}\n analytics={analytics}\n onSelectPlan={onSelectPlan}\n />\n\n <ProceedButton\n canProceed={canProceed}\n label={localT(\"planProceedToPayment\")}\n showDisabledHint={showDisabledHint}\n hintText={localT(\"planQuestionHint\")}\n onClick={handleProceedClick}\n />\n </div>\n </div>\n </div>\n </>\n );\n};\n\n","// @ts-ignore\nexport const DEFAULT_SAMPLE_URL =\n \"https://srm-cdn.a4b.io/yoda/1773317492292.pdf\";\n\nexport const DEFAULT_ONE_QUESTION_SAMPLE_URL =\n \"https://srm-cdn.a4b.io/yoda/1781248337750.pdf\";\n\nexport const SECTION_TITLE = \"Kundli Packages for you\";\nexport const SAMPLE_REPORTS_TITLE = \"View Sample Reports\";\nexport const ONLY_FOR_LABEL = \"Only for\";\nexport const UNIQUE_FEATURES_LABEL = \"Unique Features\";\n\nexport const COLUMN_HEADERS = {\n kundliReport: \"Kundli Report\",\n reportPlusQuestion: \"Report + 1 Question\",\n reportPlusQuestionSubtext: \"(Answered by Astrologer)\",\n reportPlusConsultation: \"Report + 30 min consultation\",\n popularBadge: \"Popular\",\n} as const;\n\nexport const SAMPLE_REPORT_LABELS = {\n kundliReport: \"200+ page Kundli Report\",\n oneQuestion: \"1 Question Sample Report\",\n} as const;\n\nexport const PRICES = {\n global: [\"$25\", \"$31\", \"$41\"] as [string, string, string],\n domestic: [\"₹499\", \"₹749\", \"₹999\"] as [string, string, string],\n} as const;\n\nexport type Cell = \"check\" | \"cross\";\n\nexport const rows: Array<{ label: string; values: [Cell, Cell, Cell] }> = [\n { label: \"Personalised\\nReport\", values: [\"check\", \"check\", \"check\"] },\n { label: \"Remedies:\\ngemstone,\\npujas\", values: [\"check\", \"check\", \"check\"] },\n { label: \"Detailed\\nquestion to\\nexpert\", values: [\"cross\", \"check\", \"check\"] },\n { label: \"Relationship\\nmanager\", values: [\"cross\", \"cross\", \"check\"] },\n { label: \"30-min\\nastrologer\\ncall\", values: [\"cross\", \"cross\", \"check\"] },\n];\n\nexport const CheckIcon = () => (\n <span className=\"inline-flex h-6 w-6 items-center justify-center rounded-full bg-[#14946b] font-bold text-white\">\n ✓\n </span>\n);\n\nexport const CrossIcon = () => (\n <span className=\"inline-flex h-6 w-6 items-center justify-center rounded-full bg-[#e23f4e] font-bold text-white\">\n ✕\n </span>\n);\n\nexport const TrendUpIcon = () => (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <polyline points=\"23 6 13.5 15.5 8.5 10.5 1 18\" />\n <polyline points=\"17 6 23 6 23 12\" />\n </svg>\n);\n\nexport const SampleReportArrowIcon = () => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden\n >\n <path\n d=\"M8 4L16 12L8 20\"\n stroke=\"white\"\n strokeWidth=\"4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n","import {\n COLUMN_HEADERS,\n UNIQUE_FEATURES_LABEL,\n TrendUpIcon,\n} from \"./KundliTableSection.constants\";\n\nexport const PackagesTableHeader: React.FC = () => (\n <thead>\n <tr>\n <th className=\"h-[84px] box-border rounded-tl-[12px] align-middle border-r border-b border-[#e5ccb9] bg-[#fff6eb] py-2 pl-2 pr-1 text-left text-[12px] text-[#7b3f17]\">\n {UNIQUE_FEATURES_LABEL}\n </th>\n\n <th className=\"h-[84px] box-border align-middle border-r border-b border-[#e5ccb9] bg-[#fff6eb] px-1 py-2 text-center text-[11px] text-[#7b3f17]\">\n {COLUMN_HEADERS.kundliReport}\n </th>\n\n <th className=\"h-[84px] box-border align-middle border-r border-b border-[#e5ccb9] bg-[#fff6eb] px-1 py-2 text-center text-[11px] text-[#7b3f17]\">\n {COLUMN_HEADERS.reportPlusQuestion}\n <small className=\"mt-1 block text-[10px] font-normal italic\">\n {COLUMN_HEADERS.reportPlusQuestionSubtext}\n </small>\n </th>\n\n <th className=\"relative h-[84px] box-border rounded-tr-[12px] align-middle border-b border-[#e5ccb9] bg-[#fff8f1] px-1 pt-6 pb-2 text-center text-[11px] font-bold text-[#9a3f1b]\">\n <div className=\"absolute left-0 right-0 -top-[16px] z-2 flex items-center justify-center gap-1 whitespace-nowrap rounded-t-[12px] bg-[linear-gradient(180deg,#751139_0%,#D51F68_100%)] px-3 py-[6px] text-[11px] font-bold text-white shadow-[0_-4px_10px_rgba(187,42,93,0.2)]\">\n <TrendUpIcon />\n <span>{COLUMN_HEADERS.popularBadge}</span>\n </div>\n {COLUMN_HEADERS.reportPlusConsultation}\n </th>\n </tr>\n </thead>\n);\n","import { rows, CheckIcon, CrossIcon, ONLY_FOR_LABEL } from \"./KundliTableSection.constants\";\n\ninterface PackagesTableBodyProps {\n prices: [string, string, string];\n}\n\nexport const PackagesTableBody: React.FC<PackagesTableBodyProps> = ({ prices }) => (\n <tbody>\n {rows.map((row) => (\n <tr key={row.label}>\n <td className=\"h-[64px] box-border border-r border-b border-[#e5ccb9] py-1 pl-2 text-left text-[11px] font-semibold text-[#7b3f17] align-middle leading-tight\">\n {row.label.split(\"\\n\").map((line) => (\n <div key={line}>{line}</div>\n ))}\n </td>\n\n {row.values.map((value, index) => (\n <td\n key={`${row.label}-${index}`}\n className={`h-[64px] box-border bg-white py-1 text-center border-b border-[#e5ccb9] align-middle ${\n index !== 2 ? \"border-r border-[#e5ccb9]\" : \"\"\n }`}\n >\n <div className=\"flex items-center justify-center\">\n {value === \"check\" ? <CheckIcon /> : <CrossIcon />}\n </div>\n </td>\n ))}\n </tr>\n ))}\n\n <tr className=\"bg-[#fff8ef]\">\n <td className=\"h-[64px] box-border border-r border-[#e5ccb9] py-1 pl-2 text-left text-[12px] font-semibold text-[#7b3f17] rounded-bl-[12px] align-middle\">\n {ONLY_FOR_LABEL}\n </td>\n\n {prices.map((price, index) => (\n <td\n key={price}\n className={`h-[64px] box-border bg-[#fff8ef] py-1 text-center align-middle ${\n index !== 2 ? \"border-r border-[#e5ccb9]\" : \"\"\n } ${index === 2 ? \"rounded-br-[12px]\" : \"\"}`}\n >\n <span className=\"text-[16px] text-[#9a3f1b]\">{price}</span>\n </td>\n ))}\n </tr>\n </tbody>\n);\n","import { SAMPLE_REPORTS_TITLE, SAMPLE_REPORT_LABELS, SampleReportArrowIcon } from \"./KundliTableSection.constants\";\n\ninterface SampleReportsSectionProps {\n kundliReportSampleHref: string;\n oneQuestionSampleHref: string;\n}\n\nexport const SampleReportsSection: React.FC<SampleReportsSectionProps> = ({\n kundliReportSampleHref,\n oneQuestionSampleHref,\n}) => (\n <>\n <h3 className=\"mt-5 mb-3 text-center text-[18px] font-bold leading-[1.1] text-[#f75e22] max-[380px]:text-[16px]\">\n {SAMPLE_REPORTS_TITLE}\n </h3>\n\n <div className=\"grid grid-cols-2 gap-[10px]\">\n <a\n href={kundliReportSampleHref}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"justify-center items-center relative rounded-xl bg-[linear-gradient(180deg,#f97316_0%,#ea580c_100%)] p-5 pr-10 text-center text-[14px] font-semibold text-white no-underline shadow-[0_6px_14px_rgba(234,88,12,0.2)]\"\n >\n {SAMPLE_REPORT_LABELS.kundliReport}\n <span className=\"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2\" aria-hidden>\n <SampleReportArrowIcon />\n </span>\n </a>\n\n <a\n href={oneQuestionSampleHref}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"justify-center items-center relative rounded-xl bg-[linear-gradient(180deg,#f97316_0%,#ea580c_100%)] p-5 pr-10 text-center text-[14px] font-semibold text-white no-underline shadow-[0_6px_14px_rgba(234,88,12,0.2)]\"\n >\n {SAMPLE_REPORT_LABELS.oneQuestion}\n <span className=\"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2\" aria-hidden>\n <SampleReportArrowIcon />\n </span>\n </a>\n </div>\n </>\n);\n","import { DEFAULT_ONE_QUESTION_SAMPLE_URL, DEFAULT_SAMPLE_URL, PRICES, SECTION_TITLE } from \"./KundliTableSection.constants\";\nimport { PackagesTableHeader } from \"./PackagesTableHeader\";\nimport { PackagesTableBody } from \"./PackagesTableBody\";\nimport { SampleReportsSection } from \"./SampleReportsSection\";\n\nexport interface KundliPackagesSectionProps {\n isGlobal?: boolean;\n kundliReportSampleHref?: string;\n oneQuestionSampleHref?: string;\n className?: string;\n}\n\nexport const KundliPackagesSection: React.FC<KundliPackagesSectionProps> = ({\n isGlobal = false,\n kundliReportSampleHref = DEFAULT_SAMPLE_URL,\n oneQuestionSampleHref = DEFAULT_ONE_QUESTION_SAMPLE_URL,\n className = \"\",\n}) => {\n const prices = isGlobal ? PRICES.global : PRICES.domestic;\n\n return (\n <section className={`bg-white px-3 py-4 ${className}`}>\n <h2 className=\"mb-3 text-center text-[18px] leading-6 text-[#f75e22] max-[380px]:text-[16px]\">\n {SECTION_TITLE}\n </h2>\n\n <div className=\"relative mt-5 rounded-[14px] border-[1.5px] border-[#e5ccb9] shadow-[0_4px_16px_rgba(111,58,17,0.08)]\">\n <table className=\"w-full table-fixed border-collapse\">\n <colgroup>\n <col className=\"w-1/4\" />\n <col className=\"w-1/4\" />\n <col className=\"w-1/4\" />\n <col className=\"w-1/4\" />\n </colgroup>\n\n <PackagesTableHeader />\n <PackagesTableBody prices={prices} />\n </table>\n </div>\n\n <SampleReportsSection\n kundliReportSampleHref={kundliReportSampleHref}\n oneQuestionSampleHref={oneQuestionSampleHref}\n />\n </section>\n );\n};\n\n\n","import { useState, useRef, useEffect, useCallback } from \"react\";\nimport styles from \"./KundliPageV1.module.scss\";\nimport { useI18n } from \"../../i18n\";\nimport {\n translations,\n LOCALE_LABELS,\n SUPPORTED_LOCALES,\n type SupportedLocale,\n} from \"../../i18n/translations\";\nimport { FormHeader, ProceedFooter, UserInfoFormSection } from \"../KundliForm/sections\";\nimport { KundliProvider, useKundliContextOrThrow } from \"./KundliContext\";\nimport { KundliPlanBottomSheet } from \"../KundliPlanBottomSheet\";\nimport type { KundliPlan } from \"../KundliPlanBottomSheet\";\nimport { ThreeSkuPlanBottomSheet } from \"../ThreeSkuPlanBottomSheet\";\nimport type { ThreeSkuPlan } from \"../ThreeSkuPlanBottomSheet\";\nimport { PlanGuidanceId } from \"../../utils/Stringconstant\";\n\nconst GLOBE_ICON_URL = \"https://srm-cdn.a4b.io/yoda/1770362713543.svg\";\nimport {\n KundliHeader,\n HeroSection,\n PremiumReportOverview,\n UniversityCertification,\n ThreeStepsProcess,\n ViewSampleReportButton,\n WhatYoullFindSection,\n WhyUsSection,\n FeedbackSection,\n FAQSection,\n ContactUsSection,\n} from \"./sections\";\nimport { KundliPackagesSection } from \"./sections/KundliTableSection\";\n\nimport type { KundliFormValues } from \"../KundliForm\";\nimport type { KundliAnalytics } from \"../../analytics\";\nimport type { AtlasSearchLocalities } from \"../KundliForm/sections/UserInfoFormSection/useGooglePlacesAutocomplete\";\n\nexport interface KundliPageProps {\n /** Optional CSS class name */\n className?: string;\n /** Language (en, hi). Overrides I18nProvider if set. Initial value when using dropdown. */\n locale?: SupportedLocale;\n /** Show language dropdown. Default true. */\n showLanguageSelector?: boolean;\n /** Show bottom sheet for plans in v1 variant */\n showSheet?: boolean;\n /** User ID from auth, for API calls etc. */\n userId?: number;\n /** Whether the user is global (international) or domestic */\n isGlobal?: boolean;\n /** Header logo URL */\n logoUrl?: string;\n /** Premium report cover image URL */\n reportImageUrl?: string;\n /** University logo URLs [BHU, VSU] */\n universityLogoUrls?: [string?, string?];\n /** Sample report link (opens in new tab) */\n sampleReportHref?: string;\n /** Called when \"View Sample Report\" is clicked (if sampleReportHref not set) */\n onViewSampleReport?: () => void;\n /** CTA button link (e.g. checkout URL). If set, CTA is a link; otherwise CTA shows the Kundli form. */\n ctaHref?: string;\n /** Called when CTA button is clicked (if ctaHref not set). Also called after navigating to form when integrated. */\n onCtaClick?: () => void;\n /** Read more reviews link */\n readMoreReviewsHref?: string;\n /** Called when user proceeds from the form (e.g. to payment) */\n onProceed?: (values: KundliFormValues) => void;\n /** Callback for Guidance plan (999 price) specifically */\n onProceedGuidance?: (values: KundliFormValues) => void;\n /** Form: proceed CTA as link */\n proceedHref?: string;\n /** Form: pricing labels */\n originalPriceLabel?: string;\n discountedPriceLabel?: string;\n discountPillLabel?: string;\n /** Optional analytics implementation for Mixpanel/tracking events */\n analytics?: KundliAnalytics;\n /** Notify when user changes language (e.g. to keep form view in sync when switching from landing) */\n onLocaleChange?: (locale: SupportedLocale) => void;\n /** Atlas localities search callback for birth place autocomplete */\n atlasSearchLocalities?: AtlasSearchLocalities;\n /** Enables 3-SKU experiment flow inside existing v1 page. */\n enableThreeSkuFlow?: boolean;\n /** URL for the \"200+ page Kundli Report\" sample link in the 3-SKU table. */\n kundliReportSampleHref?: string;\n /** URL for the \"1 Question\" sample link in the 3-SKU table. */\n oneQuestionSampleHref?: string;\n}\n\nconst tFromLocale = (locale: SupportedLocale, key: string) =>\n translations[locale]?.[key] ?? key;\n\n/** Height of the sticky CTA footer (matches space reserved in main, e.g. pb-28). */\nconst CTA_FOOTER_HEIGHT_PX = 112;\n\n/** Wraps a section and fires trackDetailedKundliReportImpressionFe when it enters the viewport. */\nfunction SectionWithImpression({\n section,\n children,\n onImpression,\n}: {\n section: string;\n children: React.ReactNode;\n onImpression: (section: string) => void;\n}) {\n const ref = useRef<HTMLDivElement>(null);\n const reported = useRef(false);\n useEffect(() => {\n const el = ref.current;\n if (!el) return;\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (!entry?.isIntersecting || reported.current) return;\n reported.current = true;\n onImpression(section);\n },\n {\n threshold: 0.1,\n // Shrink bottom of viewport by CTA footer height so we only count content actually visible above the sticky footer\n rootMargin: `0px 0px -${CTA_FOOTER_HEIGHT_PX}px 0px`,\n }\n );\n observer.observe(el);\n return () => observer.disconnect();\n }, [section, onImpression]);\n return <div ref={ref}>{children}</div>;\n}\n\n/** Landing page content (hero, steps, CTA, etc.). Uses context for locale and CTA → form. */\nfunction KundliPageContent({\n className,\n showInlineForm = false,\n enableThreeSkuFlow = false,\n kundliReportSampleHref,\n oneQuestionSampleHref,\n}: {\n className: string;\n showInlineForm?: boolean;\n enableThreeSkuFlow?: boolean;\n kundliReportSampleHref?: string;\n oneQuestionSampleHref?: string;\n}) {\n const i18n = useI18n();\n const {\n locale,\n setLocale,\n config,\n formValues,\n setFormValues,\n } = useKundliContextOrThrow();\n\n const [planSheetOpen, setPlanSheetOpen] = useState(false);\n const [selectedPlan, setSelectedPlan] = useState<(KundliPlan | ThreeSkuPlan) | null>(null);\n const pendingValuesRef = useRef<KundliFormValues | null>(null);\n const pendingQuestionRef = useRef<string | undefined>(undefined);\n const comparisonTableRef = useRef<HTMLDivElement>(null);\n const hasTrackedComparisonTableRef = useRef<boolean>(false);\n\n const showPlanSheet = useCallback((values: KundliFormValues) => {\n pendingValuesRef.current = values;\n setPlanSheetOpen(true);\n }, []);\n\n const confirmPlan = useCallback(() => {\n if (!pendingValuesRef.current || !selectedPlan) return;\n\n const merged = {\n ...pendingValuesRef.current,\n _selectedPlan: selectedPlan,\n ...(pendingQuestionRef.current !== undefined\n ? { _question: pendingQuestionRef.current }\n : {}),\n };\n\n pendingQuestionRef.current = undefined;\n\n if (\n selectedPlan.id === PlanGuidanceId &&\n config.onProceedGuidance\n ) {\n config.onProceedGuidance(merged as any);\n } else {\n config.onProceed?.(merged as any);\n }\n\n setPlanSheetOpen(false);\n pendingValuesRef.current = null;\n }, [selectedPlan, config.onProceed, config.onProceedGuidance]);\n\n const [langOpen, setLangOpen] = useState(false);\n const [phoneIsdCode, setPhoneIsdCode] = useState<string>(\n (config.isGlobal ?? true) ? \"+1\" : \"+91\",\n );\n const inlineFormRef = useRef<HTMLDivElement>(null);\n const langRef = useRef<HTMLDivElement>(null);\n const prevLocalePropRef = useRef<SupportedLocale | undefined>(config.locale);\n const prevProviderLocaleRef = useRef<SupportedLocale | undefined>(\n i18n?.locale,\n );\n\n useEffect(() => {\n if (config.locale && prevLocalePropRef.current !== config.locale) {\n setLocale(config.locale);\n }\n prevLocalePropRef.current = config.locale;\n }, [config.locale, setLocale]);\n\n useEffect(() => {\n if (config.locale) return;\n const providerLocale = i18n?.locale;\n if (providerLocale && prevProviderLocaleRef.current !== providerLocale) {\n setLocale(providerLocale);\n }\n prevProviderLocaleRef.current = providerLocale;\n }, [i18n?.locale, config.locale, setLocale]);\n\n useEffect(() => {\n setPhoneIsdCode((config.isGlobal ?? true) ? \"+1\" : \"+91\");\n }, [config.isGlobal]);\n\n useEffect(() => {\n if (!langOpen) return;\n const handleClickOutside = (e: MouseEvent) => {\n if (langRef.current && !langRef.current.contains(e.target as Node)) {\n setLangOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => document.removeEventListener(\"mousedown\", handleClickOutside);\n }, [langOpen]);\n\n /** Fires comparison_table_impression once when the SKU table is ≥50% visible (Path 1 only). */\n useEffect(() => {\n if (!enableThreeSkuFlow) return;\n const el = comparisonTableRef.current;\n if (!el) return;\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (hasTrackedComparisonTableRef.current) return;\n if (!entry?.isIntersecting || (entry.intersectionRatio ?? 0) < 0.5) return;\n hasTrackedComparisonTableRef.current = true;\n config.analytics?.trackComparisonTableImpression?.();\n },\n { threshold: 0.5 },\n );\n observer.observe(el);\n return () => observer.disconnect();\n }, [enableThreeSkuFlow, config.analytics]);\n\n const t = (key: string) => tFromLocale(locale, key);\n const showLanguageSelector = config.showLanguageSelector ?? true;\n\n const languageSelector = showLanguageSelector ? (\n <div className={styles.langDropdownWrap} ref={langRef}>\n <button\n type=\"button\"\n className={styles.langTrigger}\n onClick={() => {\n config.analytics?.trackLanguageClickedFe?.({ language: locale });\n setLangOpen((o) => !o);\n }}\n aria-expanded={langOpen}\n aria-haspopup=\"listbox\"\n id=\"kundli-lang\"\n aria-label={t(\"language\")}\n >\n <img\n src={GLOBE_ICON_URL}\n alt=\"\"\n className={styles.langIcon}\n width={16}\n height={16}\n aria-hidden\n />\n <span className={styles.langLabel}>{LOCALE_LABELS[locale]}</span>\n </button>\n {langOpen && (\n <ul\n className={styles.langMenu}\n role=\"listbox\"\n aria-labelledby=\"kundli-lang\"\n aria-activedescendant={`kundli-lang-option-${locale}`}\n >\n {SUPPORTED_LOCALES.map((loc) => (\n <li\n key={loc}\n id={`kundli-lang-option-${loc}`}\n role=\"option\"\n aria-selected={loc === locale}\n className={styles.langOption}\n onClick={() => {\n config.analytics?.trackLanguageChangedFe?.({ newLanguage: loc });\n setLocale(loc);\n setLangOpen(false);\n }}\n >\n {LOCALE_LABELS[loc]}\n </li>\n ))}\n </ul>\n )}\n </div>\n ) : null;\n\n const handleSectionImpression = useCallback(\n (section: string) => {\n config.analytics?.trackDetailedKundliReportImpressionFe?.({\n section,\n timestamp: new Date().toISOString(),\n });\n },\n [config.analytics]\n );\n\n const focusMissingField = useCallback((field: string) => {\n const fieldIdMap: Record<string, string> = {\n fullName: \"kundli-full-name\",\n phone: \"kundli-phone\",\n email: \"kundli-email\",\n dateOfBirth: \"kundli-dob\",\n birthTime: \"kundli-birth-time\",\n birthPlace: \"kundli-birth-place\",\n gender: \"kundli-gender-male\",\n language_code: \"kundli-report-lang-hi\",\n };\n\n const targetId = fieldIdMap[field] ?? \"kundli-full-name\";\n const targetEl = document.getElementById(targetId);\n\n if (targetEl) {\n const targetRect = targetEl.getBoundingClientRect();\n const targetY = targetRect.top + window.scrollY - 120;\n \n window.scrollTo({ \n top: targetY, \n behavior: \"smooth\" \n });\n \n setTimeout(() => targetEl.focus(), 500);\n }\n }, []);\n\n return (\n <div className={`${styles.container} ${className}`}>\n <KundliHeader\n t={t}\n logoUrl={config.logoUrl}\n languageSelector={languageSelector}\n />\n <main className={styles.main}>\n <SectionWithImpression\n section=\"hero\"\n onImpression={handleSectionImpression}\n >\n <HeroSection t={t} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"premium_report_overview\"\n onImpression={handleSectionImpression}\n >\n <PremiumReportOverview\n t={t}\n reportImageUrl={config.reportImageUrl}\n analytics={config.analytics}\n />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"university_certification\"\n onImpression={handleSectionImpression}\n >\n <UniversityCertification\n t={t}\n logoUrl={config.universityLogoUrls?.find((u): u is string => Boolean(u))}\n />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"three_steps_process\"\n onImpression={handleSectionImpression}\n >\n <ThreeStepsProcess t={t} locale={locale} isGlobal={config.isGlobal} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"view_sample_report\"\n onImpression={handleSectionImpression}\n >\n {enableThreeSkuFlow ? (\n <div ref={comparisonTableRef}>\n <KundliPackagesSection\n isGlobal={config.isGlobal}\n kundliReportSampleHref={kundliReportSampleHref}\n oneQuestionSampleHref={oneQuestionSampleHref}\n />\n </div>\n ) : (\n <ViewSampleReportButton\n t={t}\n pdfUrl={config.sampleReportHref}\n onClick={config.onViewSampleReport}\n analytics={config.analytics}\n />\n )}\n </SectionWithImpression>\n {showInlineForm && (\n <SectionWithImpression\n section=\"inline_form\"\n onImpression={handleSectionImpression}\n >\n <div className={styles.inlineFormWrap} ref={inlineFormRef}>\n {/* <div\n className={styles.inlineFormImageWrap}\n role=\"button\"\n tabIndex={0}\n aria-label={t(\"formTitle\")}\n onClick={focusInlineFormFirstField}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n focusInlineFormFirstField();\n }\n }}\n >\n <img\n src={inlineFormImageUrl}\n alt=\"Kundli preview\"\n className={styles.inlineFormImage}\n />\n </div> */}\n <FormHeader t={t} align=\"center\" />\n <UserInfoFormSection\n t={t}\n values={formValues}\n onChange={setFormValues}\n phoneIsdCode={phoneIsdCode}\n onPhoneIsdCodeChange={setPhoneIsdCode}\n showV1ExtraFields\n analytics={config.analytics}\n />\n <ProceedFooter\n t={t}\n values={formValues}\n phoneIsdCode={phoneIsdCode}\n hideOriginalPrice\n requireV1ExtraFields\n onValidationFailed={focusMissingField}\n onProceed={config.onProceed}\n href={config.proceedHref}\n originalPriceLabel={config.originalPriceLabel}\n discountedPriceLabel={config.discountedPriceLabel}\n analytics={config.analytics}\n className={styles.inlineProceedFooter}\n onProceedGuidance={config.onProceedGuidance}\n showPlanSheet={showPlanSheet}\n confirmPlan={confirmPlan}\n planSheetOpen={planSheetOpen}\n selectedPlan={selectedPlan as KundliPlan | null}\n />\n </div>\n </SectionWithImpression>\n )}\n <SectionWithImpression\n section=\"what_youll_find\"\n onImpression={handleSectionImpression}\n >\n <WhatYoullFindSection t={t} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"why_us\"\n onImpression={handleSectionImpression}\n >\n <WhyUsSection t={t} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"feedback\"\n onImpression={handleSectionImpression}\n >\n <FeedbackSection \n t={t} \n readMoreHref={config.readMoreReviewsHref}\n onReadMore={config.analytics?.trackReadMoreReviewsClicked ? () => config.analytics!.trackReadMoreReviewsClicked!() : undefined}\n />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"faq\"\n onImpression={handleSectionImpression}\n >\n <FAQSection t={t} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"contact_us\"\n onImpression={handleSectionImpression}\n >\n <ContactUsSection t={t} />\n </SectionWithImpression>\n </main>\n {enableThreeSkuFlow ? (\n <ThreeSkuPlanBottomSheet\n isOpen={planSheetOpen}\n onClose={() => setPlanSheetOpen(false)}\n selectedPlan={selectedPlan as ThreeSkuPlan | null}\n onSelectPlan={(plan) => setSelectedPlan(plan)}\n isGlobal={config.isGlobal}\n locale={locale as \"en\" | \"hi\"}\n onProceed={(_plan, question) => {\n pendingQuestionRef.current = question;\n confirmPlan();\n }}\n t={t}\n analytics={config.analytics}\n />\n ) : (\n <KundliPlanBottomSheet\n isOpen={planSheetOpen}\n onClose={() => setPlanSheetOpen(false)}\n selectedPlan={selectedPlan as KundliPlan | null}\n onSelectPlan={(plan) => setSelectedPlan(plan)}\n onProceed={() => {\n confirmPlan();\n }}\n t={t}\n analytics={config.analytics}\n />\n )}\n </div>\n );\n}\n\nexport const KundliPageV1: React.FC<KundliPageProps> = ({\n className = \"\",\n locale: localeProp,\n showLanguageSelector = true,\n showSheet,\n userId,\n isGlobal,\n atlasSearchLocalities,\n enableThreeSkuFlow = false,\n kundliReportSampleHref,\n oneQuestionSampleHref,\n logoUrl,\n reportImageUrl,\n universityLogoUrls,\n sampleReportHref,\n onViewSampleReport,\n ctaHref,\n onCtaClick,\n readMoreReviewsHref,\n onProceed,\n proceedHref,\n originalPriceLabel,\n discountedPriceLabel,\n discountPillLabel,\n analytics,\n onProceedGuidance,\n onLocaleChange,\n}) => {\n return (\n <KundliProvider\n locale={localeProp}\n showLanguageSelector={showLanguageSelector}\n showSheet={showSheet}\n userId={userId}\n isGlobal={isGlobal}\n variant=\"v1\"\n atlasSearchLocalities={atlasSearchLocalities}\n logoUrl={logoUrl}\n reportImageUrl={reportImageUrl}\n universityLogoUrls={universityLogoUrls}\n sampleReportHref={sampleReportHref}\n onViewSampleReport={onViewSampleReport}\n ctaHref={ctaHref}\n onCtaClick={onCtaClick}\n readMoreReviewsHref={readMoreReviewsHref}\n onProceed={onProceed}\n onProceedGuidance={onProceedGuidance}\n proceedHref={proceedHref}\n originalPriceLabel={originalPriceLabel}\n discountedPriceLabel={discountedPriceLabel}\n discountPillLabel={discountPillLabel}\n analytics={analytics}\n onLocaleChange={onLocaleChange}\n >\n <KundliPageContent\n className={className}\n showInlineForm\n enableThreeSkuFlow={enableThreeSkuFlow}\n kundliReportSampleHref={kundliReportSampleHref}\n oneQuestionSampleHref={oneQuestionSampleHref}\n />\n </KundliProvider>\n );\n};\n","import {\n KundliPage as KundliPageDefault,\n type KundliPageProps as BaseKundliPageProps,\n} from \"./KundliPage\";\nimport { KundliPageV1 } from \"./KundliPageV1\";\n\nexport type KundliPageProps = BaseKundliPageProps & {\n variant?: \"v1\";\n};\n\nexport const KundliPage: React.FC<KundliPageProps> = ({ variant, ...props }) => {\n const variantFromUrl =\n typeof window !== \"undefined\"\n ? new URLSearchParams(window.location.search).get(\"variant\")\n : null;\n\n const resolvedVariant = variant ?? (variantFromUrl === \"v1\" ? \"v1\" : undefined);\n\n if (resolvedVariant === \"v1\") {\n return <KundliPageV1 {...props} />;\n }\n\n return <KundliPageDefault {...props} />;\n};\n\n","/**\n * Critical CSS that should be inlined in document <head> to prevent CLS\n * Import this in your host app and inject it as inline styles\n * \n * @example\n * ```tsx\n * import { KUNDLI_CRITICAL_CSS } from '@srimandir/kundli-generator';\n * \n * <style dangerouslySetInnerHTML={{ __html: KUNDLI_CRITICAL_CSS }} />\n * ```\n */\nexport const KUNDLI_CRITICAL_CSS = `[data-hero]{min-height:200px}[data-background-layer]{position:absolute;inset:0;z-index:0;overflow:hidden}[data-form-container]{min-height:400px}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:600;font-display:swap}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:700;font-display:swap}img{max-width:100%;height:auto}.kundli-page-root{contain:layout}`;\n"],"names":["TOPIC_KEYS","HeroSection","className","jsxs","styles","jsx","key","FEATURE_CHECK_ICON_URL","PREMIUM_REPORT_BACKGROUND_IMAGE_URL","FEATURES","DEFAULT_REPORT_IMAGE_URL","PremiumReportOverview","reportImageUrl","reportImagePriority","backgroundImagePriority","analytics","Img","useKundliContext","DefaultKundliImage","handleClick","DEFAULT_LOGO_URL","UniversityCertification","logoUrl","STEP_KEYS","ThreeStepsProcess","locale","isGlobal","step3IntroKey","index","Fragment","setPdfWorkerSrc","pdfjsLib","SampleReportModal","isOpen","onClose","title","pdfUrl","pagesRef","useRef","loading","setLoading","useState","error","setError","setPdfjsLib","useEffect","handleEscape","e","lib","err","pdf","container","pageWidth","scale","i","page","viewport","canvas","ctx","DEFAULT_PDF_URL","ViewSampleReportButton","onClick","modalOpen","setModalOpen","label","handleClose","ITEMS","DEFAULT_IMAGE_URLS","WhatYoullFindSection","imageUrls","item","BULLETS","WhyUsSection","FeedbackSection","testimonials","readMoreHref","onReadMore","headingClassName","UserReviewsSection","FAQ_ITEMS","FAQSection","resolveAnswerKey","aKey","FAQAccordion","DEFAULT_WHATSAPP_GLOBAL","DEFAULT_WHATSAPP_DOMESTIC","DEFAULT_EMAIL","ContactUsSection","whatsAppGlobal","whatsAppDomestic","email","brandName","globalNum","domesticNum","emailVal","whatsAppLine","emailLine","CommonContactUsSection","ICON_KUNDLI_CREATED","ICON_CERTIFIED","ICON_SECURE_PAYMENT","TrustBadgesRow","footerShellStyles","CTAFooter","onCtaClick","ctaHref","ctaContent","FooterShell","CircularMarquee","FooterCTAButton","GLOBE_ICON_URL","tFromLocale","translations","CTA_FOOTER_HEIGHT_PX","SectionWithImpression","section","children","onImpression","ref","reported","el","observer","entry","KundliPageRouter","view","useKundliContextOrThrow","KundliForm","KundliPageContent","i18n","useI18n","setLocale","config","goToForm","langOpen","setLangOpen","langRef","prevLocalePropRef","prevProviderLocaleRef","providerLocale","handleClickOutside","t","showLanguageSelector","languageSelector","o","LOCALE_LABELS","SUPPORTED_LOCALES","loc","handleCtaClick","ctaText","handleSectionImpression","useCallback","KundliHeader","u","KundliPage","localeProp","showSheet","userId","atlasSearchLocalities","universityLogoUrls","sampleReportHref","onViewSampleReport","readMoreReviewsHref","onProceed","onProceedGuidance","proceedHref","originalPriceLabel","discountedPriceLabel","discountPillLabel","onLocaleChange","KundliProvider","THREE_SKU_ASTROLOGERS","THREE_SKU_STRINGS","getThreeSkuDefaultPlans","a","CHIP_KEYS","MAX_QUESTION_LENGTH","MAX_TEXTAREA_HEIGHT_PX","KEYFRAME_STYLES","SheetHeader","ChevronLeftIcon","IncludedFeatureIcon","ExcludedFeatureIcon","TrendUpIcon","PlanFeatureList","plan","feature","idx","QuestionChips","chipKeys","onChipClick","half","rows","row","rowIdx","QuestionInput","textareaRef","value","placeholder","onFocus","onChange","ThreeSkuAstrologerCard","astrologer","lang","cert","AstrologerSection","astrologers","heading","PlanSelectorStrip","plans","selectedId","onSelectPlan","ProceedButton","canProceed","showDisabledHint","hintText","ThreeSkuPlanBottomSheet","selectedPlan","localT","finalPlans","useMemo","p","sheetRef","contentRef","questionInputRef","hasTrackedViewRef","questionDraft","setQuestionDraft","questionSource","setQuestionSource","lastChipIndex","setLastChipIndex","setShowDisabledHint","hasTrackedFocusRef","currentPlan","isQuestionPlan","adjustHeight","ta","defaultPlan","previous","handleQuestionFocus","method","contentEl","questionEl","questionTop","handleQuestionChange","val","handleChipClick","chipText","hadCustomText","handleProceedClick","DEFAULT_SAMPLE_URL","DEFAULT_ONE_QUESTION_SAMPLE_URL","SECTION_TITLE","SAMPLE_REPORTS_TITLE","ONLY_FOR_LABEL","UNIQUE_FEATURES_LABEL","COLUMN_HEADERS","SAMPLE_REPORT_LABELS","PRICES","CheckIcon","CrossIcon","SampleReportArrowIcon","PackagesTableHeader","PackagesTableBody","prices","line","price","SampleReportsSection","kundliReportSampleHref","oneQuestionSampleHref","KundliPackagesSection","showInlineForm","enableThreeSkuFlow","formValues","setFormValues","planSheetOpen","setPlanSheetOpen","setSelectedPlan","pendingValuesRef","pendingQuestionRef","comparisonTableRef","hasTrackedComparisonTableRef","showPlanSheet","values","confirmPlan","merged","PlanGuidanceId","phoneIsdCode","setPhoneIsdCode","inlineFormRef","focusMissingField","field","targetId","targetEl","targetY","FormHeader","UserInfoFormSection","ProceedFooter","_plan","question","KundliPlanBottomSheet","KundliPageV1","variant","props","variantFromUrl","KundliPageDefault","KUNDLI_CRITICAL_CSS"],"mappings":"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"}
1
+ {"version":3,"file":"criticalCss-CQtIlhrr.js","sources":["../src/components/KundliPage/sections/HeroSection/HeroSection.tsx","../src/components/KundliPage/sections/PremiumReportOverview/PremiumReportOverview.tsx","../src/components/KundliPage/sections/UniversityCertification/UniversityCertification.tsx","../src/components/KundliPage/sections/ThreeStepsProcess/ThreeStepsProcess.tsx","../src/components/KundliPage/sections/ViewSampleReportButton/SampleReportModal.tsx","../src/components/KundliPage/sections/ViewSampleReportButton/ViewSampleReportButton.tsx","../src/components/KundliPage/sections/WhatYoullFindSection/WhatYoullFindSection.tsx","../src/components/KundliPage/sections/WhyUsSection/WhyUsSection.tsx","../src/components/KundliPage/sections/FeedbackSection/FeedbackSection.tsx","../src/components/KundliPage/sections/FAQSection/FAQSection.tsx","../src/components/KundliPage/sections/ContactUsSection/ContactUsSection.tsx","../src/components/KundliPage/sections/CTAFooter/CTAFooter.tsx","../src/components/KundliPage/KundliPage.tsx","../src/components/ThreeSkuPlanBottomSheet/ThreeSkuAstrologerProfiles.ts","../src/components/ThreeSkuPlanBottomSheet/constants.ts","../src/utils/keyframeStyles.ts","../src/components/ThreeSkuPlanBottomSheet/SheetHeader.tsx","../src/components/ThreeSkuPlanBottomSheet/ThreeSkuPlanBottomSheet.icons.tsx","../src/components/ThreeSkuPlanBottomSheet/PlanFeatureList.tsx","../src/components/ThreeSkuPlanBottomSheet/QuestionChips.tsx","../src/components/ThreeSkuPlanBottomSheet/QuestionInput.tsx","../src/components/ThreeSkuPlanBottomSheet/ThreeSkuAstrologerCard.tsx","../src/components/ThreeSkuPlanBottomSheet/AstrologerSection.tsx","../src/components/ThreeSkuPlanBottomSheet/PlanSelectorStrip.tsx","../src/components/ThreeSkuPlanBottomSheet/ProceedButton.tsx","../src/components/ThreeSkuPlanBottomSheet/ThreeSkuPlanBottomSheet.tsx","../src/components/KundliPage/sections/KundliTableSection/KundliTableSection.constants.tsx","../src/components/KundliPage/sections/KundliTableSection/PackagesTableHeader.tsx","../src/components/KundliPage/sections/KundliTableSection/PackagesTableBody.tsx","../src/components/KundliPage/sections/KundliTableSection/SampleReportsSection.tsx","../src/components/KundliPage/sections/KundliTableSection/KundliTableSection.tsx","../src/components/KundliPage/KundliPageV1.tsx","../src/components/KundliPage/KundliPageVariant.tsx","../src/constants/criticalCss.ts"],"sourcesContent":["import React from 'react';\nimport styles from './HeroSection.module.scss';\n\nconst TOPIC_KEYS = [\n 'topicMarriage',\n 'topicRelationship',\n 'topicBusiness',\n 'topicHealth',\n 'topicCareer',\n 'topicEducation',\n 'topicMoney',\n] as const;\n\nexport interface HeroSectionProps {\n t: (key: string) => string;\n className?: string;\n}\n\nexport const HeroSection: React.FC<HeroSectionProps> = ({ t, className = '' }) => {\n return (\n <section className={`${styles.hero} ${className}`} aria-labelledby=\"hero-title\">\n <h1 id=\"hero-title\" className={styles.title}>\n {t('heroTitle')}\n </h1>\n <p className={styles.subtitle}>{t('heroSubtitle')}</p>\n <div className={styles.topicTags} role=\"list\">\n {TOPIC_KEYS.map((key) => (\n <span key={key} className={styles.tag} role=\"listitem\">\n {t(key)}\n </span>\n ))}\n </div>\n </section>\n );\n};\n","import styles from './PremiumReportOverview.module.scss';\nimport type { KundliAnalytics } from '../../../../analytics';\nimport { useKundliContext } from '../../KundliContext';\nimport { DefaultKundliImage } from '../../../../types/image';\n\nconst FEATURE_CHECK_ICON_URL = 'https://srm-cdn.a4b.io/yoda/1770363846052.svg';\n\n/** \n * Background image for the section (replaced from CSS so next/image can optimize when host provides imageComponent).\n * Exported so host apps can preload this resource in document head for better performance:\n * <link rel=\"preload\" as=\"image\" href={PREMIUM_REPORT_BACKGROUND_IMAGE_URL} />\n */\nexport const PREMIUM_REPORT_BACKGROUND_IMAGE_URL =\n 'https://srm-cdn.a4b.io/yoda/1772696426944.webp';\n\nconst FEATURES = [\n 'premiumFeature1',\n 'premiumFeature2',\n 'premiumFeature3',\n 'premiumFeature4',\n] as const;\n\nexport interface PremiumReportOverviewProps {\n t: (key: string) => string;\n /** Optional report cover image URL */\n reportImageUrl?: string;\n /** When true, report image can be loaded with priority (e.g. LCP) */\n reportImagePriority?: boolean;\n /** When true, section background image loads with priority (e.g. LCP). Default false so background uses loading=\"lazy\" per Lighthouse. Set true when this section is above the fold (hero). */\n backgroundImagePriority?: boolean;\n /** Optional analytics for tracking banner clicked */\n analytics?: KundliAnalytics;\n className?: string;\n}\n\nconst DEFAULT_REPORT_IMAGE_URL =\n \"https://srm-cdn.a4b.io/yoda/1772696452070.webp\";\n\nexport const PremiumReportOverview: React.FC<PremiumReportOverviewProps> = ({\n t,\n reportImageUrl = DEFAULT_REPORT_IMAGE_URL,\n reportImagePriority,\n backgroundImagePriority = false,\n analytics,\n className = '',\n}: PremiumReportOverviewProps) => {\n const kundliCtx = useKundliContext();\n const Img = kundliCtx?.config.imageComponent ?? DefaultKundliImage;\n\n const handleClick = () => {\n analytics?.trackBannerClicked?.();\n };\n\n return (\n <section\n className={`${styles.section} ${className}`}\n aria-labelledby=\"premium-headline\"\n role=\"button\"\n tabIndex={0}\n onClick={handleClick}\n data-hero\n >\n <div className={styles.backgroundLayer} aria-hidden data-background-layer>\n <Img\n src={PREMIUM_REPORT_BACKGROUND_IMAGE_URL}\n alt=\"\"\n className={styles.backgroundImg}\n width={412}\n height={215}\n sizes=\"(max-width: 768px) 412px, 412px\"\n loading=\"eager\"\n priority={backgroundImagePriority}\n fetchPriority=\"high\"\n />\n </div>\n <div className={styles.inner}>\n <div className={styles.content}>\n <h2 id=\"premium-headline\" className={styles.headline}>\n <span className={styles.headlineLine}>\n <span className={styles.headlinePill}>{t('premiumHeadlinePill1')}</span>\n <span className={styles.headlinePlain}>{t('premiumHeadlinePlain1')}</span>\n </span>\n <span className={styles.headlineLine}>\n <span className={styles.headlinePlain}>{t('premiumHeadlinePlain2')}</span>\n <span className={styles.headlinePill}>{t('premiumHeadlinePill2')}</span>\n </span>\n <span className={styles.headlineLine}>\n <span className={styles.headlinePlain}>{t('and')}</span>\n <span className={styles.headlinePill}>{t('astrologyGuidance')}</span>\n </span>\n </h2>\n <ul className={styles.featureList}>\n {FEATURES.map((key) => (\n <li key={key} className={styles.featureItem}>\n <Img\n src={FEATURE_CHECK_ICON_URL}\n alt=\"\"\n className={styles.featureIcon}\n width={16}\n height={16}\n loading=\"lazy\"\n />\n {t(key)}\n </li>\n ))}\n </ul>\n </div>\n <div className={styles.reportImage}>\n <Img\n src={reportImageUrl}\n alt=\"\"\n className={styles.reportImg}\n width={120}\n height={160}\n priority={reportImagePriority}\n fetchPriority={reportImagePriority ? 'high' : undefined}\n loading={reportImagePriority ? 'eager' : 'lazy'}\n sizes=\"120px\"\n />\n </div>\n </div>\n </section>\n );\n};\n","import React from 'react';\nimport styles from './UniversityCertification.module.scss';\nimport { useKundliContext } from '../../KundliContext';\nimport { DefaultKundliImage } from '../../../../types/image';\n\nexport interface UniversityCertificationProps {\n t: (key: string) => string;\n /** Optional logo URLs: [BHU, VSU or similar] */\n logoUrl?: string;\n className?: string;\n}\n\nconst DEFAULT_LOGO_URL = 'https://srm-cdn.a4b.io/yoda/1772696467302.webp';\n\nexport const UniversityCertification: React.FC<UniversityCertificationProps> = ({\n t,\n logoUrl = DEFAULT_LOGO_URL,\n className = '',\n}) => {\n const kundliCtx = useKundliContext();\n const Img = kundliCtx?.config.imageComponent ?? DefaultKundliImage;\n\n return (\n <section className={`${styles.section} ${className}`} aria-labelledby=\"certified-heading\">\n <h2 id=\"certified-heading\" className={styles.heading}>\n {t('certifiedBy')}\n </h2>\n <Img\n src={logoUrl}\n alt=\"University Certification\"\n className={styles.logoImg}\n width={380}\n height={70}\n loading=\"lazy\"\n />\n </section>\n );\n};\n","import React from 'react';\nimport styles from './ThreeStepsProcess.module.scss';\n\nconst STEP_KEYS = ['step1', 'step2'] as const;\n\nexport interface ThreeStepsProcessProps {\n t: (key: string) => string;\n locale?: string;\n /** If true, show global (email) delivery text; if false, show domestic (WhatsApp) text. Default true. */\n isGlobal?: boolean;\n className?: string;\n}\n\nexport const ThreeStepsProcess: React.FC<ThreeStepsProcessProps> = ({\n t,\n locale = 'en',\n isGlobal = true,\n className = '',\n}) => {\n const step3IntroKey = isGlobal ? 'step3IntroGlobal' : 'step3IntroDomestic';\n return (\n <section\n className={`${styles.section} ${className}`}\n aria-labelledby=\"steps-heading\"\n >\n <p className={styles.heading}>{t('yourThreeSteps')}</p>\n <h2 id=\"steps-heading\" className={styles.subtitle}>\n {t('threeStepsSubtitle')}\n </h2>\n <ol className={styles.stepList}>\n {STEP_KEYS.map((key, index) => (\n <li key={key} className={styles.stepItem}>\n <span className={styles.stepNumber} aria-hidden>\n {index + 1}\n </span>\n <span className={styles.stepText}>{t(key)}</span>\n </li>\n ))}\n <li className={styles.stepItem}>\n <span className={styles.stepNumber} aria-hidden>\n 3\n </span>\n <span className={styles.stepText}>\n {t(step3IntroKey)}\n <br />\n {locale === 'en' ? (\n <>\n in <strong className={styles.step3Days}>{t('step3Days')}</strong>\n </>\n ) : (\n <strong className={styles.step3Days}>{t('step3Days')}</strong>\n )}\n </span>\n </li>\n </ol>\n </section>\n );\n};\n","import type { FC } from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport styles from './SampleReportModal.module.scss';\n\ntype PdfJsLib = typeof import('pdfjs-dist');\n\nfunction setPdfWorkerSrc(pdfjsLib: PdfJsLib): void {\n if (\n typeof pdfjsLib !== 'undefined' &&\n pdfjsLib.GlobalWorkerOptions\n ) {\n pdfjsLib.GlobalWorkerOptions.workerSrc = `https://unpkg.com/pdfjs-dist@${pdfjsLib.version}/build/pdf.worker.min.js`;\n }\n}\n\nexport interface SampleReportModalProps {\n isOpen: boolean;\n onClose: () => void;\n title: string;\n pdfUrl: string;\n}\n\nexport const SampleReportModal: FC<SampleReportModalProps> = ({\n isOpen,\n onClose,\n title,\n pdfUrl,\n}) => {\n const pagesRef = useRef<HTMLDivElement>(null);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<string | null>(null);\n const [pdfjsLib, setPdfjsLib] = useState<PdfJsLib | null>(null);\n\n useEffect(() => {\n if (!isOpen) return;\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape') onClose();\n };\n document.addEventListener('keydown', handleEscape);\n document.body.style.overflow = 'hidden';\n return () => {\n document.removeEventListener('keydown', handleEscape);\n document.body.style.overflow = '';\n };\n }, [isOpen, onClose]);\n\n // Lazy load PDF library only when modal opens (on \"View Sample Report\" click)\n useEffect(() => {\n if (!isOpen) return;\n\n // Dynamic import of pdfjs-dist (~500KB) - only loads when user clicks button\n import('pdfjs-dist').then((lib) => {\n setPdfjsLib(lib);\n }).catch((err) => {\n setError('Failed to load PDF viewer');\n setLoading(false);\n });\n }, [isOpen]);\n\n useEffect(() => {\n if (!isOpen || !pdfUrl || !pagesRef.current || !pdfjsLib) return;\n\n setLoading(true);\n setError(null);\n pagesRef.current.innerHTML = '';\n\n const renderPdf = async () => {\n try {\n setPdfWorkerSrc(pdfjsLib);\n const loadingTask = pdfjsLib.getDocument({ url: pdfUrl });\n const pdf = await loadingTask.promise;\n\n const container = pagesRef.current;\n if (!container) return;\n\n const pageWidth = container.clientWidth || 600;\n const scale = Math.min(pageWidth / 612, 2);\n\n for (let i = 1; i <= pdf.numPages; i++) {\n const page = await pdf.getPage(i);\n const viewport = page.getViewport({ scale });\n\n const canvas = document.createElement('canvas');\n canvas.height = viewport.height;\n canvas.width = viewport.width;\n canvas.style.display = 'block';\n canvas.style.margin = '0 auto 1rem';\n canvas.style.maxWidth = '100%';\n\n const ctx = canvas.getContext('2d');\n if (ctx) {\n await page.render({ canvasContext: ctx, viewport }).promise;\n }\n container.appendChild(canvas);\n }\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to load PDF');\n } finally {\n setLoading(false);\n }\n };\n\n renderPdf();\n }, [isOpen, pdfUrl, pdfjsLib]);\n\n if (!isOpen) return null;\n\n return (\n <div\n className={styles.backdrop}\n onClick={onClose}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"sample-report-modal-title\"\n >\n <div\n className={styles.modal}\n onClick={(e) => e.stopPropagation()}\n >\n <div className={styles.header}>\n <h2 id=\"sample-report-modal-title\" className={styles.title}>\n {title}\n </h2>\n <button\n type=\"button\"\n className={styles.closeBtn}\n onClick={onClose}\n aria-label=\"Close\"\n >\n ×\n </button>\n </div>\n <div className={styles.content}>\n <div className={styles.pdfFrame}>\n {error && (\n <div className={styles.pdfError}>\n <span>{error}</span>\n <a href={pdfUrl} target=\"_blank\" rel=\"noopener noreferrer\">\n Open in new tab instead\n </a>\n </div>\n )}\n <div ref={pagesRef} className={styles.pdfPages} />\n </div>\n <a\n href={pdfUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={styles.openInNewTab}\n >\n Open in new tab\n </a>\n </div>\n </div>\n </div>\n );\n};\n","import React, { useState } from 'react';\nimport styles from './ViewSampleReportButton.module.scss';\nimport { SampleReportModal } from './SampleReportModal';\nimport type { KundliAnalytics } from '../../../../analytics';\n\nconst DEFAULT_PDF_URL = 'https://srm-cdn.a4b.io/yoda/1773317492292.pdf';\n\nexport interface ViewSampleReportButtonProps {\n t: (key: string) => string;\n /** PDF URL to display in modal. Defaults to a sample PDF. */\n pdfUrl?: string;\n /** @deprecated Use pdfUrl instead. Opens in new tab when modal not used. */\n href?: string;\n /** Called when button is clicked (e.g. for analytics). Modal opens regardless. */\n onClick?: () => void;\n /** Optional analytics for tracking view sample clicked/closed */\n analytics?: KundliAnalytics;\n className?: string;\n}\n\nexport const ViewSampleReportButton: React.FC<ViewSampleReportButtonProps> = ({\n t,\n pdfUrl = DEFAULT_PDF_URL,\n onClick,\n analytics,\n className = '',\n}) => {\n const [modalOpen, setModalOpen] = useState(false);\n const label = t('viewSampleReport');\n const title = t('sampleReportModalTitle');\n\n const handleClick = () => {\n analytics?.trackViewSampleReportClicked?.();\n onClick?.();\n setModalOpen(true);\n };\n\n const handleClose = () => {\n analytics?.trackViewSampleReportClosed?.();\n setModalOpen(false);\n };\n\n return (\n <section className={`${styles.section} ${className}`}>\n <button type=\"button\" className={styles.button} onClick={handleClick}>\n {label}\n </button>\n <SampleReportModal\n isOpen={modalOpen}\n onClose={handleClose}\n title={title}\n pdfUrl={pdfUrl}\n />\n </section>\n );\n};\n","import React from \"react\";\nimport styles from \"./WhatYoullFindSection.module.scss\";\nimport { useKundliContext } from \"../../KundliContext\";\nimport { DefaultKundliImage } from \"../../../../types/image\";\n\nconst ITEMS: { titleKey: string; descKey: string }[] = [\n { titleKey: \"findDasha\", descKey: \"findDashaDesc\" },\n { titleKey: \"findYoga\", descKey: \"findYogaDesc\" },\n { titleKey: \"findGemstone\", descKey: \"findGemstoneDesc\" },\n { titleKey: \"findPooja\", descKey: \"findPoojaDesc\" },\n { titleKey: \"findMonthly\", descKey: \"findMonthlyDesc\" },\n { titleKey: \"findStrength\", descKey: \"findStrengthDesc\" },\n];\n\nconst DEFAULT_IMAGE_URLS = [\n \"https://srm-cdn.a4b.io/yoda/1772619204758.webp\",\n \"https://srm-cdn.a4b.io/yoda/1772619215121.webp\",\n \"https://srm-cdn.a4b.io/yoda/1772619232241.webp\",\n \"https://srm-cdn.a4b.io/yoda/1772619253699.webp\",\n \"https://srm-cdn.a4b.io/yoda/1772619272322.webp\",\n \"https://srm-cdn.a4b.io/yoda/1772619284662.webp\",\n];\n\nexport interface WhatYoullFindSectionProps {\n t: (key: string) => string;\n /** Optional image URLs per item (same order as ITEMS) */\n imageUrls?: (string | undefined)[];\n className?: string;\n}\n\nexport const WhatYoullFindSection: React.FC<WhatYoullFindSectionProps> = ({\n t,\n imageUrls = DEFAULT_IMAGE_URLS,\n className = \"\",\n}) => {\n const kundliCtx = useKundliContext();\n const Img = kundliCtx?.config.imageComponent ?? DefaultKundliImage;\n\n return (\n <section\n className={`${styles.section} ${className}`}\n aria-labelledby=\"find-heading\"\n >\n <h2 id=\"find-heading\" className={styles.heading}>\n {t(\"whatYoullFindTitle\")}\n </h2>\n <ul className={styles.list}>\n {ITEMS.map((item, index) => (\n <li key={item.titleKey} className={styles.item}>\n <div className={styles.imageWrap}>\n {imageUrls[index] ? (\n <Img\n src={imageUrls[index]!}\n alt=\"\"\n className={styles.image}\n width={96}\n height={96}\n loading=\"lazy\"\n sizes=\"96px\"\n />\n ) : (\n <div className={styles.imagePlaceholder} aria-hidden />\n )}\n </div>\n <div className={styles.text}>\n <h3 className={styles.itemTitle}>{t(item.titleKey)}</h3>\n <p className={styles.itemDesc}>{t(item.descKey)}</p>\n </div>\n </li>\n ))}\n </ul>\n </section>\n );\n};\n","import React from 'react';\nimport styles from './WhyUsSection.module.scss';\n\nconst BULLETS = ['whyUs1', 'whyUs2', 'whyUs3', 'whyUs4'] as const;\n\nexport interface WhyUsSectionProps {\n t: (key: string) => string;\n className?: string;\n}\n\nexport const WhyUsSection: React.FC<WhyUsSectionProps> = ({ t, className = '' }) => {\n return (\n <section className={`${styles.section} ${className}`} aria-labelledby=\"why-heading\">\n <h2 id=\"why-heading\" className={styles.heading}>\n {t('whyUsTitle')}\n </h2>\n <p className={styles.subtitle}>{t('whyUsSubtitle')}</p>\n <ul className={styles.list}>\n {BULLETS.map((key) => (\n <li key={key} className={styles.item}>\n {t(key)}\n </li>\n ))}\n </ul>\n </section>\n );\n};\n","import { type FC } from 'react';\nimport { UserReviewsSection, type Testimonial } from '@srimandir/astrology-common';\nimport styles from './FeedbackSection.module.scss';\n\nexport type { Testimonial };\n\nexport interface FeedbackSectionProps {\n t: (key: string) => string;\n testimonials?: Testimonial[];\n readMoreHref?: string;\n onReadMore?: () => void;\n className?: string;\n /** Optional class for the section heading (e.g. for font weight). Kundli uses bold by default. */\n headingClassName?: string;\n}\n\nexport const FeedbackSection: FC<FeedbackSectionProps> = ({\n t,\n testimonials,\n readMoreHref,\n onReadMore,\n className = '',\n headingClassName = styles.headingBold,\n}) => {\n return (\n <UserReviewsSection\n t={t}\n testimonials={testimonials}\n readMoreHref={readMoreHref}\n onReadMore={onReadMore}\n className={className}\n headingClassName={headingClassName}\n />\n );\n};\n","import { type FC } from 'react';\nimport { FAQAccordion } from '@srimandir/astrology-common';\nimport { useKundliContext } from '../../KundliContext';\nimport styles from './FAQSection.module.scss';\n\nconst FAQ_ITEMS: { qKey: string; aKey: string }[] = [\n { qKey: 'faqQ1', aKey: 'faqA1' },\n { qKey: 'faqQ3', aKey: 'faqA3' },\n];\n\nexport interface FAQSectionProps {\n t: (key: string) => string;\n className?: string;\n /** Optional class for the section heading (e.g. for font weight). Kundli uses bold by default. */\n headingClassName?: string;\n}\n\nexport const FAQSection: FC<FAQSectionProps> = ({\n t,\n className = '',\n headingClassName = styles.headingBold,\n}) => {\n const kundliCtx = useKundliContext();\n const isGlobal = kundliCtx?.config.isGlobal ?? true;\n\n const resolveAnswerKey = (aKey: string) => {\n if (aKey === 'faqA1') {\n return isGlobal ? 'faqA1Global' : 'faqA1Domestic';\n }\n return aKey;\n };\n\n return (\n <FAQAccordion\n t={t}\n items={FAQ_ITEMS}\n resolveAnswerKey={resolveAnswerKey}\n defaultOpenIndex={1}\n className={className}\n headingClassName={headingClassName}\n />\n );\n};\n","import React from 'react';\nimport { ContactUsSection as CommonContactUsSection } from '@srimandir/astrology-common';\nimport { useKundliContext } from '../../KundliContext';\n\nconst DEFAULT_WHATSAPP_GLOBAL = '8296947757';\nconst DEFAULT_WHATSAPP_DOMESTIC = '08071174417';\nconst DEFAULT_EMAIL = 'pujaseva@appsforbharat.com';\n\nexport interface ContactUsSectionProps {\n t: (key: string) => string;\n whatsAppGlobal?: string;\n whatsAppDomestic?: string;\n email?: string;\n brandName?: string;\n className?: string;\n}\n\nexport const ContactUsSection: React.FC<ContactUsSectionProps> = ({\n t,\n whatsAppGlobal,\n whatsAppDomestic,\n email,\n brandName,\n className = '',\n}) => {\n const kundliCtx = useKundliContext();\n const isGlobal = kundliCtx?.config.isGlobal ?? true;\n\n const globalNum = whatsAppGlobal ?? DEFAULT_WHATSAPP_GLOBAL;\n const domesticNum = whatsAppDomestic ?? DEFAULT_WHATSAPP_DOMESTIC;\n const emailVal = email ?? DEFAULT_EMAIL;\n\n const whatsAppLine = isGlobal\n ? t('contactWhatsAppGlobal').replace(DEFAULT_WHATSAPP_GLOBAL, globalNum)\n : t('contactWhatsAppDomestic').replace(DEFAULT_WHATSAPP_DOMESTIC, domesticNum);\n\n const emailLine = t('contactEmail').replace(DEFAULT_EMAIL, emailVal);\n\n return (\n <CommonContactUsSection\n title={t('contactTitle')}\n brandName={brandName ?? t('contactBrandName')}\n whatsAppLine={whatsAppLine}\n emailLine={emailLine}\n className={className}\n />\n );\n};\n","import React from \"react\";\nimport {\n FooterShell,\n FooterCTAButton,\n footerShellStyles,\n CircularMarquee,\n} from \"@srimandir/astrology-common\";\nimport { DefaultKundliImage } from \"../../../../types/image\";\nimport { useKundliContext } from \"../../KundliContext\";\n\nconst ICON_KUNDLI_CREATED = 'https://srm-cdn.a4b.io/yoda/1770375694934.svg';\nconst ICON_CERTIFIED = 'https://srm-cdn.a4b.io/yoda/1770375720933.svg';\nconst ICON_SECURE_PAYMENT = 'https://srm-cdn.a4b.io/yoda/1770707793537.svg';\n\nexport interface CTAFooterProps {\n t: (key: string) => string;\n /** CTA button click handler (receives click event for e.g. CTA text extraction) */\n onCtaClick?: (e: React.MouseEvent<HTMLElement>) => void;\n /** Or use href for link instead of button */\n ctaHref?: string;\n /** Optional override for CTA label text */\n ctaLabel?: string;\n className?: string;\n}\n\n/** Single row of trust badges for marquee (used in footer and under header). */\nexport const TrustBadgesRow: React.FC<{ t: (key: string) => string }> = ({ t }) => {\n const kundliCtx = useKundliContext();\n const Img = kundliCtx?.config.imageComponent ?? DefaultKundliImage;\n return (\n <div className={footerShellStyles.marqueeContent}>\n <span className={footerShellStyles.badge}>\n <Img src={ICON_KUNDLI_CREATED} alt=\"\" className={footerShellStyles.badgeIcon} width={16} height={16} loading=\"lazy\" />\n {t('ctaKundliCreated')}\n </span>\n <span className={footerShellStyles.badge}>\n <Img src={ICON_CERTIFIED} alt=\"\" className={footerShellStyles.badgeIcon} width={16} height={16} loading=\"lazy\" />\n {t('ctaCertified')}\n </span>\n <span className={footerShellStyles.badge}>\n <Img src={ICON_SECURE_PAYMENT} alt=\"\" className={footerShellStyles.badgeIcon} width={16} height={16} loading=\"lazy\" />\n {t('ctaSecurePayment')}\n </span>\n </div>\n );\n};\n\nexport const CTAFooter: React.FC<CTAFooterProps> = ({\n t,\n onCtaClick,\n ctaHref,\n className = \"\",\n}) => {\n const ctaContent = t(\"ctaButtonBefore\").replace(/\\s+in\\s*$/i, \"\");\n \n return (\n <FooterShell\n className={className}\n marquee={<CircularMarquee><TrustBadgesRow t={t} /></CircularMarquee>}\n >\n <FooterCTAButton href={ctaHref} onClick={onCtaClick}>\n {ctaContent}\n </FooterCTAButton>\n </FooterShell>\n );\n};\n","import React, { useState, useRef, useEffect, useCallback } from \"react\";\nimport styles from \"./KundliPage.module.scss\";\nimport { useI18n } from \"../../i18n\";\nimport {\n translations,\n LOCALE_LABELS,\n SUPPORTED_LOCALES,\n type SupportedLocale,\n} from \"../../i18n/translations\";\nimport { KundliForm } from \"../KundliForm\";\nimport { KundliProvider, useKundliContextOrThrow } from \"./KundliContext\";\nimport { DefaultKundliImage } from \"../../types/image\";\n\nconst GLOBE_ICON_URL = \"https://srm-cdn.a4b.io/yoda/1770362713543.svg\";\nimport {\n KundliHeader,\n HeroSection,\n PremiumReportOverview,\n UniversityCertification,\n ThreeStepsProcess,\n ViewSampleReportButton,\n WhatYoullFindSection,\n WhyUsSection,\n FeedbackSection,\n FAQSection,\n ContactUsSection,\n CTAFooter,\n TrustBadgesRow,\n} from \"./sections\";\nimport { MarqueeStrip } from \"@srimandir/astrology-common\";\n\nimport type { KundliFormValues } from \"../KundliForm\";\nimport type { KundliAnalytics } from \"../../analytics\";\nimport type { AtlasSearchLocalities } from \"../KundliForm/sections/UserInfoFormSection/useGooglePlacesAutocomplete\";\n\nexport interface KundliPageProps {\n /** Optional CSS class name */\n className?: string;\n /** Language (en, hi). Overrides I18nProvider if set. Initial value when using dropdown. */\n locale?: SupportedLocale;\n /** Show language dropdown. Default true. */\n showLanguageSelector?: boolean;\n /** Show bottom sheet for plans in v1 variant */\n showSheet?: boolean;\n /** User ID from auth, for API calls etc. */\n userId?: number;\n /** Whether the user is global (international) or domestic */\n isGlobal?: boolean;\n /** Header logo URL */\n logoUrl?: string;\n /** Premium report cover image URL */\n reportImageUrl?: string;\n /** University logo URLs [BHU, VSU] */\n universityLogoUrls?: [string?, string?];\n /** Sample report link (opens in new tab) */\n sampleReportHref?: string;\n /** Called when \"View Sample Report\" is clicked (if sampleReportHref not set) */\n onViewSampleReport?: () => void;\n /** CTA button link (e.g. checkout URL). If set, CTA is a link; otherwise CTA shows the Kundli form. */\n ctaHref?: string;\n /** Called when CTA button is clicked (if ctaHref not set). Also called after navigating to form when integrated. */\n onCtaClick?: () => void;\n /** Read more reviews link */\n readMoreReviewsHref?: string;\n /** Called when user proceeds from the form (e.g. to payment) */\n onProceed?: (values: KundliFormValues) => void;\n /** Callback for Guidance plan (999 price) specifically */\n onProceedGuidance?: (values: KundliFormValues) => void;\n /** Form: proceed CTA as link */\n proceedHref?: string;\n /** Form: pricing labels */\n originalPriceLabel?: string;\n discountedPriceLabel?: string;\n discountPillLabel?: string;\n /** Optional analytics implementation for Mixpanel/tracking events */\n analytics?: KundliAnalytics;\n /** Notify when user changes language (e.g. to keep form view in sync when switching from landing) */\n onLocaleChange?: (locale: SupportedLocale) => void;\n /** Atlas localities search callback for birth place autocomplete */\n atlasSearchLocalities?: AtlasSearchLocalities;\n /** Enables 3-SKU experiment flow when used with v1 variant. */\n enableThreeSkuFlow?: boolean;\n /** URL for the \"200+ page Kundli Report\" sample link in 3-SKU table. */\n kundliReportSampleHref?: string;\n /** URL for the \"1 Question\" sample link in 3-SKU table. */\n oneQuestionSampleHref?: string;\n}\n\nconst tFromLocale = (locale: SupportedLocale, key: string) =>\n translations[locale]?.[key] ?? key;\n\n/** Height of the sticky CTA footer (matches space reserved in main, e.g. pb-28). */\nconst CTA_FOOTER_HEIGHT_PX = 112;\n\n/** Wraps a section and fires trackDetailedKundliReportImpressionFe when it enters the viewport. */\nfunction SectionWithImpression({\n section,\n children,\n onImpression,\n}: {\n section: string;\n children: React.ReactNode;\n onImpression: (section: string) => void;\n}) {\n const ref = useRef<HTMLDivElement>(null);\n const reported = useRef(false);\n useEffect(() => {\n const el = ref.current;\n if (!el) return;\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (!entry?.isIntersecting || reported.current) return;\n reported.current = true;\n onImpression(section);\n },\n {\n threshold: 0.1,\n // Shrink bottom of viewport by CTA footer height so we only count content actually visible above the sticky footer\n rootMargin: `0px 0px -${CTA_FOOTER_HEIGHT_PX}px 0px`,\n }\n );\n observer.observe(el);\n return () => observer.disconnect();\n }, [section, onImpression]);\n return <div ref={ref}>{children}</div>;\n}\n\n/** Renders either the landing page or the form based on context view */\nfunction KundliPageRouter({ className }: { className: string }) {\n const { view } = useKundliContextOrThrow();\n if (view === \"form\") {\n return <KundliForm />;\n }\n return <KundliPageContent className={className} />;\n}\n\n/** Landing page content (hero, steps, CTA, etc.). Uses context for locale and CTA → form. */\nfunction KundliPageContent({ className }: { className: string }) {\n const i18n = useI18n();\n const {\n locale,\n setLocale,\n config,\n goToForm,\n } = useKundliContextOrThrow();\n\n const [langOpen, setLangOpen] = useState(false);\n const langRef = useRef<HTMLDivElement>(null);\n const prevLocalePropRef = useRef<SupportedLocale | undefined>(config.locale);\n const prevProviderLocaleRef = useRef<SupportedLocale | undefined>(\n i18n?.locale,\n );\n\n useEffect(() => {\n if (config.locale && prevLocalePropRef.current !== config.locale) {\n setLocale(config.locale);\n }\n prevLocalePropRef.current = config.locale;\n }, [config.locale, setLocale]);\n\n useEffect(() => {\n if (config.locale) return;\n const providerLocale = i18n?.locale;\n if (providerLocale && prevProviderLocaleRef.current !== providerLocale) {\n setLocale(providerLocale);\n }\n prevProviderLocaleRef.current = providerLocale;\n }, [i18n?.locale, config.locale, setLocale]);\n\n useEffect(() => {\n if (!langOpen) return;\n const handleClickOutside = (e: MouseEvent) => {\n if (langRef.current && !langRef.current.contains(e.target as Node)) {\n setLangOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => document.removeEventListener(\"mousedown\", handleClickOutside);\n }, [langOpen]);\n\n const t = (key: string) => tFromLocale(locale, key);\n const showLanguageSelector = config.showLanguageSelector ?? true;\n const Img = config.imageComponent ?? DefaultKundliImage;\n\n const languageSelector = showLanguageSelector ? (\n <div className={styles.langDropdownWrap} ref={langRef}>\n <button\n type=\"button\"\n className={styles.langTrigger}\n onClick={() => {\n config.analytics?.trackLanguageClickedFe?.({ language: locale });\n setLangOpen((o) => !o);\n }}\n aria-expanded={langOpen}\n aria-haspopup=\"listbox\"\n id=\"kundli-lang\"\n aria-label={t(\"language\")}\n >\n <Img\n src={GLOBE_ICON_URL}\n alt=\"\"\n className={styles.langIcon}\n width={16}\n height={16}\n loading=\"eager\"\n />\n <span className={styles.langLabel}>{LOCALE_LABELS[locale]}</span>\n </button>\n {langOpen && (\n <ul\n className={styles.langMenu}\n role=\"listbox\"\n aria-labelledby=\"kundli-lang\"\n aria-activedescendant={`kundli-lang-option-${locale}`}\n >\n {SUPPORTED_LOCALES.map((loc) => (\n <li\n key={loc}\n id={`kundli-lang-option-${loc}`}\n role=\"option\"\n aria-selected={loc === locale}\n className={styles.langOption}\n onClick={() => {\n config.analytics?.trackLanguageChangedFe?.({ newLanguage: loc });\n setLocale(loc);\n setLangOpen(false);\n }}\n >\n {LOCALE_LABELS[loc]}\n </li>\n ))}\n </ul>\n )}\n </div>\n ) : null;\n\n const handleCtaClick = (e: React.MouseEvent<HTMLElement>) => {\n const ctaText =\n (e.currentTarget as HTMLElement).innerText?.trim() ?? t(\"ctaButtonAfter\");\n config.analytics?.trackPrimaryCtaClickedFe?.({ ctaText });\n goToForm();\n config.onCtaClick?.();\n };\n\n const handleSectionImpression = useCallback(\n (section: string) => {\n config.analytics?.trackDetailedKundliReportImpressionFe?.({\n section,\n timestamp: new Date().toISOString(),\n });\n },\n [config.analytics]\n );\n\n return (\n <div className={`${styles.container} ${className}`}>\n <KundliHeader\n t={t}\n logoUrl={config.logoUrl}\n languageSelector={languageSelector}\n />\n <main className={styles.main}>\n <SectionWithImpression\n section=\"hero\"\n onImpression={handleSectionImpression}\n >\n <HeroSection t={t} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"premium_report_overview\"\n onImpression={handleSectionImpression}\n >\n <PremiumReportOverview\n t={t}\n reportImageUrl={config.reportImageUrl}\n reportImagePriority={config.reportImagePriority}\n backgroundImagePriority={config.backgroundImagePriority}\n analytics={config.analytics}\n />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"university_certification\"\n onImpression={handleSectionImpression}\n >\n <UniversityCertification\n t={t}\n logoUrl={config.universityLogoUrls?.find((u): u is string => Boolean(u))}\n />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"three_steps_process\"\n onImpression={handleSectionImpression}\n >\n <ThreeStepsProcess t={t} locale={locale} isGlobal={config.isGlobal} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"view_sample_report\"\n onImpression={handleSectionImpression}\n >\n <ViewSampleReportButton\n t={t}\n pdfUrl={config.sampleReportHref}\n onClick={config.onViewSampleReport}\n analytics={config.analytics}\n />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"what_youll_find\"\n onImpression={handleSectionImpression}\n >\n <WhatYoullFindSection t={t} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"why_us\"\n onImpression={handleSectionImpression}\n >\n <WhyUsSection t={t} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"feedback\"\n onImpression={handleSectionImpression}\n >\n <FeedbackSection \n t={t} \n readMoreHref={config.readMoreReviewsHref}\n onReadMore={config.analytics?.trackReadMoreReviewsClicked ? () => config.analytics!.trackReadMoreReviewsClicked!() : undefined}\n />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"faq\"\n onImpression={handleSectionImpression}\n >\n <FAQSection t={t} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"contact_us\"\n onImpression={handleSectionImpression}\n >\n <ContactUsSection t={t} />\n </SectionWithImpression>\n </main>\n <CTAFooter\n t={t}\n ctaHref={config.ctaHref}\n onCtaClick={config.ctaHref ? undefined : handleCtaClick}\n />\n </div>\n );\n}\n\nexport const KundliPage: React.FC<KundliPageProps> = ({\n className = \"\",\n locale: localeProp,\n showLanguageSelector = true,\n showSheet,\n userId,\n isGlobal,\n atlasSearchLocalities,\n logoUrl,\n reportImageUrl,\n universityLogoUrls,\n sampleReportHref,\n onViewSampleReport,\n ctaHref,\n onCtaClick,\n readMoreReviewsHref,\n onProceed,\n onProceedGuidance,\n proceedHref,\n originalPriceLabel,\n discountedPriceLabel,\n discountPillLabel,\n analytics,\n onLocaleChange,\n}) => {\n return (\n <KundliProvider\n locale={localeProp}\n showLanguageSelector={showLanguageSelector}\n showSheet={showSheet}\n userId={userId}\n isGlobal={isGlobal}\n atlasSearchLocalities={atlasSearchLocalities}\n logoUrl={logoUrl}\n reportImageUrl={reportImageUrl}\n universityLogoUrls={universityLogoUrls}\n sampleReportHref={sampleReportHref}\n onViewSampleReport={onViewSampleReport}\n ctaHref={ctaHref}\n onCtaClick={onCtaClick}\n readMoreReviewsHref={readMoreReviewsHref}\n onProceed={onProceed}\n onProceedGuidance={onProceedGuidance}\n proceedHref={proceedHref}\n originalPriceLabel={originalPriceLabel}\n discountedPriceLabel={discountedPriceLabel}\n discountPillLabel={discountPillLabel}\n analytics={analytics}\n onLocaleChange={onLocaleChange}\n >\n <KundliPageRouter className={className} />\n </KundliProvider>\n );\n};\n","export const THREE_SKU_ASTROLOGERS = [\n {\n id: \"samiksha\",\n name: \"Astro Samiksha\",\n imageUrl: \"https://srm-cdn.a4b.io/yoda/1781123256347.webp\",\n experience: \"21+ Years of experience\",\n languages: [\"Hindi\", \"English\", \"Telugu\"],\n certifications: [\n \"Certified Jyotish Acharya\",\n \"Guaranteed accurate solutions\",\n ],\n },\n {\n id: \"jyoti\",\n name: \"Astro Sadhana\",\n imageUrl: \"https://srm-cdn.a4b.io/yoda/1781123290643.webp\",\n experience: \"21+ Years of experience\",\n languages: [\"Hindi\", \"English\", \"Telugu\"],\n certifications: [\n \"25+ Years Vedic Astrology\",\n \"Result-Oriented Spiritual Guidance\",\n ],\n },\n \n] as const;\n","import type { KundliPlan } from \"../KundliPlanBottomSheet/types\";\nimport { THREE_SKU_ASTROLOGERS } from \"./ThreeSkuAstrologerProfiles\";\n\n/**\n * Self-contained en/hi strings for the 3-SKU experiment bottom sheet.\n */\nexport const THREE_SKU_STRINGS = {\n en: {\n planSheetTitle: \"Choose your Kundli Plan\",\n planProceedToPayment: \"Proceed to Payment\",\n planAstrologerHeading: \"Top astrologers who will consult you\",\n planMostPopular: \"Most popular\",\n planNameBasic: \"Kundli Report\",\n planNameQuestion: \"Kundli + 1 Question\",\n planNameGuidance: \"Kundli + Consultation\",\n planSaveLabel: \"Save ~25%\",\n planFeatureDetailedInsights: \"Detailed insights on love, marriage, career, health & finances\",\n planFeaturePracticalRemedies: \"Practical remedies like gemstones, rudraksha & mantras\",\n planFeatureClearLanguage: \"Clear, easy-to-understand language by expert astrologers\",\n planFeatureAstrologyConsultant: \"Astrology consultant\",\n planFeaturePersonalizedReading: \"Personalized reading\",\n planFeatureIncludesPremium: \"Includes everything in the Premium Personalized Kundli\",\n planFeatureExpertAnswers: \"PLUS: Expert Astrologer will answer your question in detail and suggest actionable remedies\",\n planFeatureFollowUpQuestions: \"Go deeper into asking follow up questions\",\n planFeatureNoConsultation: \"No personal consultation call\",\n planFeaturePlusConsultation: \"PLUS: A 30-minute private consultation with an expert astrologer\",\n planFeatureRealTimeAnswers: \"Get real-time answers & guidance for your biggest life concerns\",\n planFeatureTailoredRemedies: \"Remedies & timelines tailored to your unique birth chart\",\n planQuestionLabel: \"Ask your Question\",\n planQuestionHeader: \"Ask our top astrologers\",\n planQuestionPlaceholder: \"Ask follow up question\",\n planQuestionHint: \"Please enter your question to continue.\",\n planQuestionChip1: \"When will I get married?\",\n planQuestionChip2: \"Will my marriage be love, arranged, or both?\",\n planQuestionChip3: \"Is there any Dosha in my Kundli?\",\n planQuestionChip4: \"Is my current relationship right for me?\",\n planAstrologerExp: \"{{years}} Years of experience\",\n },\n hi: {\n planSheetTitle: \"अपनी कुंडली प्लान चुनें\",\n planProceedToPayment: \"पेमेंट करें\",\n planAstrologerHeading: \"हम आपके लिए नीचे दिए गए टॉप ज्योतिषियों में से एक को चुनेंगे\",\n planMostPopular: \"सबसे लोकप्रिय\",\n planNameBasic: \"कुंडली रिपोर्ट\",\n planNameQuestion: \"कुंडली + 1 सवाल\",\n planNameGuidance: \"कुंडली रिपोर्ट + ज्योतिषी से बात\",\n planSaveLabel: \"~25% बचाएं\",\n planFeatureDetailedInsights: \"प्यार, विवाह, करियर, स्वास्थ्य और वित्त पर गहरी जानकारी\",\n planFeaturePracticalRemedies: \"रत्न, रुद्राक्ष और मंत्रों जैसे व्यावहारिक उपाय\",\n planFeatureClearLanguage: \"विशेषज्ञ ज्योतिषियों द्वारा स्पष्ट और आसान भाषा में\",\n planFeatureAstrologyConsultant: \"ज्योतिषी से बात नहीं होगी\",\n planFeaturePersonalizedReading: \"आपके लिए खास रीडिंग\",\n planFeatureIncludesPremium: \"प्रीमियम कुंडली रिपोर्ट में जो कुछ भी है, सब मिलेगा\",\n planFeatureExpertAnswers: \"PLUS: विशेषज्ञ ज्योतिषी आपके सवाल का विस्तार से जवाब देंगे और समाधान बताएंगे\",\n planFeatureFollowUpQuestions: \"आगे के सवाल पूछने की सुविधा\",\n planFeatureNoConsultation: \"कोई व्यक्तिगत परामर्श कॉल नहीं\",\n planFeaturePlusConsultation: \"साथ ही: एक अनुभवी ज्योतिषी से 30 मिनट की प्राइवेट बात\",\n planFeatureRealTimeAnswers: \"अपनी सबसे बड़ी परेशानियों का सीधा जवाब और सही सलाह पाएं\",\n planFeatureTailoredRemedies: \"आपकी कुंडली के हिसाब से उपाय और सही समय की जानकारी\",\n planQuestionLabel: \"अपना सवाल पूछें\",\n planQuestionHeader: \"अपने सवाल हमारे टॉप ज्योतिषियों से पूछें\",\n planQuestionPlaceholder: \"फॉलो अप सवाल लिखें\",\n planQuestionHint: \"जारी रखने के लिए अपना सवाल लिखें।\",\n planQuestionChip1: \"मेरी शादी कब होगी?\",\n planQuestionChip2: \"मेरी शादी प्रेम, अरेंज, या दोनों में से कैसी होगी?\",\n planQuestionChip3: \"क्या मेरी कुंडली में कोई दोष है?\",\n planQuestionChip4: \"क्या मेरा मौजूदा रिश्ता मेरे लिए सही है?\",\n planAstrologerExp: \"साल का अनुभव\",\n },\n} as const;\n\nexport type ThreeSkuLocale = keyof typeof THREE_SKU_STRINGS;\n\nexport interface ThreeSkuPlan extends KundliPlan {\n supportsQuestion?: boolean;\n}\n\nexport const getThreeSkuDefaultPlans = (isGlobal: boolean): ThreeSkuPlan[] => {\n const base: ThreeSkuPlan[] = [\n {\n id: \"kundli-report\",\n title: \"planNameBasic\",\n price: isGlobal ? \"$25\" : \"₹499\",\n features: [\n { text: \"planFeatureDetailedInsights\", included: true },\n { text: \"planFeaturePracticalRemedies\", included: true },\n { text: \"planFeatureClearLanguage\", included: true },\n { text: \"planFeatureAstrologyConsultant\", included: false },\n { text: \"planFeaturePersonalizedReading\", included: false },\n ],\n },\n {\n id: \"kundli-report-question\",\n title: \"planNameQuestion\",\n price: isGlobal ? \"$31\" : \"₹749\",\n supportsQuestion: true,\n features: [\n { text: \"planFeatureIncludesPremium\", included: true },\n { text: \"planFeatureExpertAnswers\", included: true },\n { text: \"planFeatureFollowUpQuestions\", included: false },\n { text: \"planFeatureNoConsultation\", included: false },\n ],\n },\n {\n id: \"kundli-report-astrologer\",\n title: \"planNameGuidance\",\n price: isGlobal ? \"$41\" : \"₹999\",\n originalPrice: isGlobal ? \"$25+$25\" : \"₹499+₹850\",\n savingsLabel: \"planSaveLabel\",\n badge: \"planMostPopular\",\n features: [\n { text: \"planFeatureIncludesPremium\", included: true },\n { text: \"planFeaturePlusConsultation\", included: true },\n { text: \"planFeatureRealTimeAnswers\", included: true },\n { text: \"planFeatureTailoredRemedies\", included: true },\n ],\n astrologers: THREE_SKU_ASTROLOGERS.filter((a) =>\n [\"jyoti\", \"samiksha\", \"neeraj\", \"ashwini\"].includes(a.id)\n ) as any,\n },\n ];\n\n return base;\n};\n\nexport const CHIP_KEYS = [\n \"planQuestionChip1\",\n \"planQuestionChip2\",\n \"planQuestionChip3\",\n \"planQuestionChip4\",\n] as const;\n\nexport const TOP_ASTROLOGER_AVATARS = THREE_SKU_ASTROLOGERS.slice(0, 3).map((a) => ({\n id: a.id,\n imageUrl: a.imageUrl,\n name: a.name,\n}));\n\nexport const MAX_QUESTION_LENGTH = 5000;\nexport const MAX_TEXTAREA_HEIGHT_PX = 84;\n","/**\n * Shared CSS keyframe animation strings.\n * Inject via a <style> tag in JSX components that need these animations.\n *\n * Usage:\n * import { KEYFRAME_STYLES } from \"@/utils/keyframeStyles\";\n * // inside render:\n * <style>{KEYFRAME_STYLES}</style>\n */\nexport const KEYFRAME_STYLES = `\n @keyframes three-sku-slide-up {\n from { transform: translateY(100%); opacity: 0; }\n to { transform: translateY(0); opacity: 1; }\n }\n @keyframes three-sku-shimmer {\n 0% { left: -75%; }\n 60% { left: 125%; }\n 100% { left: 125%; }\n }\n`;\n","import { ChevronLeftIcon } from \"../KundliPlanBottomSheet/PlanIcons\";\n\ninterface SheetHeaderProps {\n title: string;\n onClose: () => void;\n}\n\nexport const SheetHeader: React.FC<SheetHeaderProps> = ({ title, onClose }) => (\n <div className=\"flex items-center gap-2 px-4 pt-3 pb-1 sticky top-0 bg-white z-[2]\">\n <button\n type=\"button\"\n onClick={onClose}\n aria-label=\"Go back\"\n className=\"w-8 h-8 rounded-full bg-transparent border-0 flex items-center justify-center text-gray-700 hover:bg-gray-100\"\n >\n <ChevronLeftIcon />\n </button>\n <h2 className=\"flex-1 text-[16px] font-bold text-gray-900 m-0 pr-8\">\n {title}\n </h2>\n </div>\n);\n","export const IncludedFeatureIcon = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M8 1.5C11.5901 1.5 14.5 4.40986 14.5 8C14.5 11.5901 11.5901 14.5 8 14.5C4.40986 14.5 1.5 11.5901 1.5 8C1.5 4.40986 4.40986 1.5 8 1.5ZM11.71 5.6709C11.5284 5.46331 11.2128 5.44187 11.0049 5.62305L6.75 9.33594L4.99609 7.80469C4.78809 7.62318 4.47163 7.64562 4.29004 7.85352C4.10887 8.06152 4.13011 8.37711 4.33789 8.55859L6.42188 10.377C6.61019 10.5409 6.89091 10.5411 7.0791 10.377L11.6621 6.37695C11.8699 6.1954 11.8913 5.87889 11.71 5.6709Z\" fill=\"#159169\"/>\n </svg>\n);\n\nexport const ExcludedFeatureIcon = () => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" aria-hidden>\n <path d=\"M8 1.38086C11.6558 1.38086 14.619 4.34424 14.6191 8C14.6191 11.6559 11.6559 14.6191 8 14.6191C4.34424 14.619 1.38086 11.6558 1.38086 8C1.38101 4.34433 4.34433 1.38101 8 1.38086ZM11.1055 4.89648C10.8637 4.65473 10.4712 4.65473 10.2295 4.89648L8 7.125L5.77148 4.89648C5.52973 4.65473 5.13824 4.65473 4.89648 4.89648C4.65473 5.13824 4.65473 5.52973 4.89648 5.77148L7.125 8L4.89648 10.2295C4.65473 10.4712 4.65473 10.8637 4.89648 11.1055C5.13819 11.3464 5.52994 11.3467 5.77148 11.1055L8 8.87598L10.2295 11.1055C10.4713 11.3467 10.8639 11.347 11.1055 11.1055C11.347 10.8639 11.3467 10.4713 11.1055 10.2295L8.87598 8L11.1055 5.77148C11.3467 5.52994 11.3464 5.13819 11.1055 4.89648Z\" fill=\"#D93640\"/>\n </svg>\n);\n\nexport const TrendUpIcon = () => (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <polyline points=\"23 6 13.5 15.5 8.5 10.5 1 18\" />\n <polyline points=\"17 6 23 6 23 12\" />\n </svg>\n);\n","import type { ThreeSkuPlan } from \"./constants\";\nimport { IncludedFeatureIcon, ExcludedFeatureIcon } from \"./ThreeSkuPlanBottomSheet.icons\";\n\ninterface PlanFeatureListProps {\n plan: ThreeSkuPlan;\n t: (key: string) => string;\n}\n\nexport const PlanFeatureList: React.FC<PlanFeatureListProps> = ({ plan, t }) => (\n <div className=\"rounded-2xl border border-gray-200 bg-white px-4 py-3 shadow-[0_2px_8px_rgba(17,24,39,0.06)]\">\n <ul className=\"list-none m-0 p-0 flex flex-col gap-2\" aria-label=\"Plan features\">\n {plan.features.map((feature, idx) => (\n <li key={idx} className=\"flex items-start gap-3\">\n <span className=\"shrink-0 mt-[1px]\">\n {feature.included ? <IncludedFeatureIcon /> : <ExcludedFeatureIcon />}\n </span>\n <span className=\"text-[14px] leading-[20px] text-gray-700\">\n {t(feature.text)}\n </span>\n </li>\n ))}\n </ul>\n </div>\n);\n","interface QuestionChipsProps {\n chipKeys: readonly string[];\n t: (key: string) => string;\n onChipClick: (key: string, idx: number) => void;\n}\n\nexport const QuestionChips: React.FC<QuestionChipsProps> = ({\n chipKeys,\n t,\n onChipClick,\n}) => {\n const half = Math.ceil(chipKeys.length / 2);\n const rows = [chipKeys.slice(0, half), chipKeys.slice(half)];\n\n return (\n <div className=\"overflow-x-auto pb-1 [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\">\n <div className=\"inline-flex flex-col gap-2\">\n {rows.map((row, rowIdx) => (\n <div key={rowIdx} className=\"flex gap-2\">\n {row.map((key) => (\n <button\n key={key}\n type=\"button\"\n className=\"inline-flex w-auto px-3 py-2 rounded-full bg-[#F1F7FF] text-[#104DA6] text-[14px] font-medium cursor-pointer whitespace-nowrap active:opacity-70 transition-opacity\"\n onClick={() => onChipClick(key, chipKeys.indexOf(key))}\n >\n {t(key)}\n </button>\n ))}\n </div>\n ))}\n </div>\n </div>\n );\n};\n","import { QuestionChips } from \"./QuestionChips\";\n\ninterface QuestionInputProps {\n textareaRef: React.RefObject<HTMLTextAreaElement>;\n value: string;\n label: string;\n placeholder: string;\n chipKeys: readonly string[];\n t: (key: string) => string;\n onFocus: () => void;\n onClick: () => void;\n onChange: (e: React.ChangeEvent<HTMLTextAreaElement>) => void;\n onChipClick: (key: string, idx: number) => void;\n}\n\nexport const QuestionInput: React.FC<QuestionInputProps> = ({\n textareaRef,\n value,\n label,\n placeholder,\n chipKeys,\n t,\n onFocus,\n onClick,\n onChange,\n onChipClick,\n}) => (\n <div className=\"mt-4 flex flex-col gap-2\">\n <div\n className=\"w-full h-px mb-2\"\n style={{\n backgroundImage:\n \"repeating-linear-gradient(to right, #D1D5DB, #D1D5DB 4px, transparent 4px, transparent 8px)\",\n }}\n />\n <label className=\"text-[14px] font-semibold text-gray-900\" htmlFor=\"kundli-question\">\n {label}\n <span className=\"text-[#e05c2a] ml-0.5\">*</span>\n </label>\n <textarea\n id=\"kundli-question\"\n ref={textareaRef}\n className=\"w-full resize-none overflow-y-auto border-[1.5px] border-[#F99724] rounded-[10px] p-4 text-left align-top text-[14px] text-gray-900 leading-5 box-border outline-none focus:border-[#e05c2a] focus:shadow-[0_0_0_3px_rgba(224,92,42,0.12)] placeholder:text-left placeholder:text-gray-400\"\n style={{ height: \"100px\" }}\n placeholder={placeholder}\n value={value}\n onFocus={onFocus}\n onClick={onClick}\n onChange={onChange}\n />\n <QuestionChips chipKeys={chipKeys} t={t} onChipClick={onChipClick} />\n </div>\n);\n","import type { KundliPlanAstrologer } from \"../KundliPlanBottomSheet/types\";\nimport styles from \"./ThreeSkuAstrologerCard.module.scss\";\n\nexport interface ThreeSkuAstrologerCardProps {\n astrologer: KundliPlanAstrologer;\n t?: (key: string, options?: any) => string;\n}\n\nexport const ThreeSkuAstrologerCard: React.FC<ThreeSkuAstrologerCardProps> = ({ astrologer, t }) => (\n <div className={styles.card}>\n <div className={styles.top}>\n <div className={styles.avatar} aria-hidden>\n {astrologer.imageUrl ? (\n <img src={astrologer.imageUrl} alt={t?.(astrologer.name) ?? astrologer.name} width={40} height={40} />\n ) : (\n <span className={styles.avatarPlaceholder}>{astrologer.name.charAt(0)}</span>\n )}\n </div>\n <div className={styles.basicInfo}>\n <p className={styles.name}>{t?.(astrologer.name) ?? astrologer.name}</p>\n <p className={styles.exp}>{t?.(astrologer.experience) ?? astrologer.experience}</p>\n {astrologer.languages && astrologer.languages.length > 0 && (\n <p className={styles.langs}>{astrologer.languages.map((lang) => t?.(lang) ?? lang).join(\" • \")}</p>\n )}\n </div>\n </div>\n\n <div className={styles.divider} />\n\n <div className={styles.certList}>\n {astrologer.certifications.map((cert, idx) => (\n <p key={idx} className={styles.certItem}>\n <span className={styles.bullet}>✓</span> {t?.(cert) ?? cert}\n </p>\n ))}\n </div>\n </div>\n);\n","import type { KundliPlanAstrologer } from \"../KundliPlanBottomSheet/types\";\nimport { ThreeSkuAstrologerCard } from \"./ThreeSkuAstrologerCard\";\n\ninterface AstrologerSectionProps {\n astrologers: KundliPlanAstrologer[];\n heading: string;\n t: (key: string) => string;\n}\n\nexport const AstrologerSection: React.FC<AstrologerSectionProps> = ({\n astrologers,\n heading,\n t,\n}) => (\n <>\n <div\n className=\"w-full h-px my-3\"\n style={{\n backgroundImage:\n \"repeating-linear-gradient(to right, #D1D5DB, #D1D5DB 4px, transparent 4px, transparent 8px)\",\n }}\n />\n <p className=\"m-0 mt-4 text-[14px] font-semibold text-[#1D2125]\">{heading}</p>\n <div\n className=\"flex overflow-x-auto gap-3 mt-3 pb-1 scroll-smooth [scrollbar-width:none] [&::-webkit-scrollbar]:hidden\"\n role=\"list\"\n >\n {astrologers.map((astrologer, idx) => (\n <div key={idx} role=\"listitem\">\n <ThreeSkuAstrologerCard astrologer={astrologer as any} t={t} />\n </div>\n ))}\n </div>\n </>\n);\n","import type { ThreeSkuPlan } from \"./constants\";\nimport { TrendUpIcon } from \"./ThreeSkuPlanBottomSheet.icons\";\nimport type { ThreeSkuAnalytics } from \"./ThreeSkuPlanBottomSheet.types\";\n\ninterface PlanSelectorStripProps {\n plans: ThreeSkuPlan[];\n selectedId: string;\n t: (key: string) => string;\n analytics?: ThreeSkuAnalytics;\n onSelectPlan: (plan: ThreeSkuPlan) => void;\n}\n\nexport const PlanSelectorStrip: React.FC<PlanSelectorStripProps> = ({\n plans,\n selectedId,\n t,\n analytics,\n onSelectPlan,\n}) => (\n <div className=\"flex gap-2 pt-4 pb-3 overflow-visible\" role=\"radiogroup\" aria-label=\"Select plan\">\n {plans.map((plan) => (\n <button\n key={plan.id}\n type=\"button\"\n role=\"radio\"\n aria-checked={plan.id === selectedId}\n className={[\n \"flex-1 relative overflow-visible flex flex-col items-center justify-center gap-1 px-1 py-3 min-h-[125px] min-w-[106px] rounded-xl border-[1.5px] cursor-pointer text-center outline-none transition-colors\",\n plan.id === selectedId\n ? \"border-[#e05c2a] bg-[#fff8f4]\"\n : \"border-gray-200 bg-white\",\n ].join(\" \")}\n onClick={() => {\n analytics?.trackPlanSelected?.({ planId: plan.id, planName: plan.title });\n onSelectPlan(plan);\n }}\n >\n {plan.badge && (\n <span className=\"absolute -top-[14px] left-0 right-0 inline-flex items-center justify-center gap-1 whitespace-nowrap rounded-t-xl bg-[linear-gradient(180deg,#751139_0%,#D51F68_100%)] px-2 py-[6px] text-[11px] font-bold text-white\">\n <TrendUpIcon />\n {t(plan.badge)}\n </span>\n )}\n <span\n className={`text-[14px] leading-snug ${\n plan.id === selectedId ? \"font-bold text-gray-900\" : \"font-semibold text-gray-600\"\n }`}\n >\n {t(plan.title)}\n </span>\n <span className=\"text-[15px] font-bold text-[#1D2125] leading-tight\">\n {plan.price}\n </span>\n </button>\n ))}\n </div>\n);\n","interface ProceedButtonProps {\n canProceed: boolean;\n label: string;\n showDisabledHint: boolean;\n hintText: string;\n onClick: () => void;\n}\n\nexport const ProceedButton: React.FC<ProceedButtonProps> = ({\n canProceed,\n label,\n showDisabledHint,\n hintText,\n onClick,\n}) => (\n <>\n {showDisabledHint && (\n <p className=\"m-0 mb-2 text-xs text-[#e05c2a] text-center\" role=\"alert\">\n {hintText}\n </p>\n )}\n <button\n className={[\n \"relative overflow-hidden w-full h-[50px] rounded-[14px] border-0 text-white text-[17px] font-bold cursor-pointer flex items-center justify-center transition-all duration-200\",\n canProceed\n ? \"bg-gradient-to-b from-[#F97316] to-[#EA580C] shadow-[0_6px_14px_rgba(234,88,12,0.25)] hover:from-[#fb923c] hover:to-[#f97316] active:scale-[0.98] active:shadow-[0_3px_8px_rgba(234,88,12,0.2)]\"\n : \"bg-gray-300 text-gray-400 shadow-none cursor-not-allowed\",\n ].join(\" \")}\n style={{ fontFamily: \"inherit\" }}\n aria-disabled={!canProceed}\n onClick={onClick}\n >\n {canProceed && (\n <span\n className=\"absolute top-0 w-1/2 h-full pointer-events-none\"\n aria-hidden=\"true\"\n style={{\n background:\n \"linear-gradient(120deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.25) 50%, rgba(255,255,255,0) 100%)\",\n transform: \"skewX(-20deg)\",\n animation: \"three-sku-shimmer 3s ease-in-out infinite\",\n left: \"-75%\",\n }}\n />\n )}\n <span className=\"relative z-[1]\">{label}</span>\n </button>\n </>\n);\n","import { useState, useRef, useMemo, useCallback, useEffect } from \"react\";\nimport {\n THREE_SKU_STRINGS,\n getThreeSkuDefaultPlans,\n CHIP_KEYS,\n MAX_QUESTION_LENGTH,\n MAX_TEXTAREA_HEIGHT_PX,\n} from \"./constants\";\nimport type { ThreeSkuPlan } from \"./constants\";\nimport { KEYFRAME_STYLES } from \"../../utils/keyframeStyles\";\nimport { SheetHeader } from \"./SheetHeader\";\nimport { PlanFeatureList } from \"./PlanFeatureList\";\nimport { QuestionInput } from \"./QuestionInput\";\nimport { AstrologerSection } from \"./AstrologerSection\";\nimport { PlanSelectorStrip } from \"./PlanSelectorStrip\";\nimport { ProceedButton } from \"./ProceedButton\";\n\n// Re-export types for backward compatibility\nexport type { ThreeSkuAnalytics, ThreeSkuPlanBottomSheetProps } from \"./ThreeSkuPlanBottomSheet.types\";\nimport type { ThreeSkuPlanBottomSheetProps } from \"./ThreeSkuPlanBottomSheet.types\";\n\nexport const ThreeSkuPlanBottomSheet: React.FC<ThreeSkuPlanBottomSheetProps> = ({\n isOpen,\n onClose,\n selectedPlan,\n onSelectPlan,\n plans,\n onProceed,\n locale = \"en\",\n t,\n analytics,\n isGlobal = true,\n}) => {\n /** Resolve a string key: local map → passed t → raw key */\n const localT = useCallback((key: string): string => {\n const map = THREE_SKU_STRINGS[locale] ?? THREE_SKU_STRINGS.en;\n return (map as Record<string, string>)[key] ?? t?.(key) ?? key;\n }, [locale, t]);\n\n const finalPlans = useMemo<ThreeSkuPlan[]>(() => {\n return (plans ?? getThreeSkuDefaultPlans(isGlobal)) as ThreeSkuPlan[];\n }, [plans, isGlobal]);\n\n const selectedId =\n selectedPlan?.id ||\n finalPlans.find((p: ThreeSkuPlan) => p.badge)?.id ||\n finalPlans[0]?.id ||\n \"\";\n\n const sheetRef = useRef<HTMLDivElement>(null);\n const contentRef = useRef<HTMLDivElement>(null);\n const questionInputRef = useRef<HTMLDivElement>(null);\n const hasTrackedViewRef = useRef<boolean>(false);\n\n const [questionDraft, setQuestionDraft] = useState(\"\");\n const [questionSource, setQuestionSource] = useState<\"custom\" | \"chip\" | \"chip_edited\">(\"custom\");\n const [lastChipIndex, setLastChipIndex] = useState<number | null>(null);\n const [showDisabledHint, setShowDisabledHint] = useState(false);\n const hasTrackedFocusRef = useRef(false);\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n\n const currentPlan = useMemo<ThreeSkuPlan>(() => {\n return finalPlans.find((p: ThreeSkuPlan) => p.id === selectedId) ?? finalPlans[0];\n }, [finalPlans, selectedId]);\n\n const isQuestionPlan = Boolean(currentPlan?.supportsQuestion);\n const canProceed = !isQuestionPlan || questionDraft.trim().length > 0;\n\n const adjustHeight = useCallback(() => {\n const ta = textareaRef.current;\n if (!ta) return;\n ta.style.height = \"auto\";\n ta.style.height =\n Math.max(100, Math.min(ta.scrollHeight, MAX_TEXTAREA_HEIGHT_PX)) + \"px\";\n }, []);\n\n useEffect(() => {\n if (isOpen) {\n if (!selectedPlan) {\n const defaultPlan = finalPlans.find((p: ThreeSkuPlan) => p.badge) ?? finalPlans[0];\n if (defaultPlan) onSelectPlan(defaultPlan);\n }\n if (!hasTrackedViewRef.current) {\n analytics?.trackPlanPageViewed?.();\n hasTrackedViewRef.current = true;\n }\n } else {\n hasTrackedViewRef.current = false;\n }\n }, [isOpen, finalPlans, selectedPlan, onSelectPlan, analytics]);\n\n useEffect(() => {\n if (!isOpen) return;\n const previous = document.body.style.overflow;\n document.body.style.overflow = \"hidden\";\n return () => { document.body.style.overflow = previous; };\n }, [isOpen]);\n\n const handleClose = () => {\n analytics?.trackPlanPageClosed?.();\n onClose();\n };\n\n const handleQuestionFocus = (method: \"tap\" | \"keyboard_focus\") => {\n // Scroll the question input section to the top of the visible container\n const contentEl = contentRef.current;\n const questionEl = questionInputRef.current;\n if (contentEl && questionEl) {\n const questionTop =\n questionEl.getBoundingClientRect().top -\n contentEl.getBoundingClientRect().top +\n contentEl.scrollTop;\n contentEl.scrollTo({ top: questionTop, behavior: \"smooth\" });\n }\n\n if (hasTrackedFocusRef.current) return;\n hasTrackedFocusRef.current = true;\n analytics?.trackQuestionTextboxClicked?.({\n entry_method: method,\n textbox_empty: questionDraft.length === 0,\n });\n };\n\n const handleQuestionChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const val = e.target.value.slice(0, MAX_QUESTION_LENGTH);\n if (questionSource === \"chip\" && val !== localT(CHIP_KEYS[lastChipIndex ?? 0])) {\n setQuestionSource(\"chip_edited\");\n }\n setQuestionDraft(val);\n adjustHeight();\n if (showDisabledHint) setShowDisabledHint(false);\n };\n\n const handleChipClick = (key: string, idx: number) => {\n const chipText = localT(key);\n const hadCustomText = questionDraft.length > 0 && questionSource !== \"chip\";\n analytics?.trackPreSuggestedQuestionSelected?.({\n question_text_loaded: chipText,\n chip_index: idx,\n previous_chip_index: lastChipIndex,\n user_had_custom_text: hadCustomText,\n });\n setQuestionDraft(chipText);\n setQuestionSource(\"chip\");\n setLastChipIndex(idx);\n hasTrackedFocusRef.current = false;\n setTimeout(adjustHeight, 0);\n };\n\n const handleProceedClick = () => {\n if (!currentPlan) return;\n if (isQuestionPlan && !questionDraft.trim()) {\n setShowDisabledHint(true);\n return;\n }\n analytics?.trackPlanProceedClicked?.({\n planId: currentPlan.id,\n planName: currentPlan.title,\n price: currentPlan.price,\n currency: isGlobal ? \"USD\" : \"INR\",\n question_asked: isQuestionPlan ? true : undefined,\n question_text: isQuestionPlan ? questionDraft.trim() : undefined,\n question_source: isQuestionPlan ? questionSource : undefined,\n });\n onProceed(currentPlan, isQuestionPlan ? questionDraft.trim() : undefined);\n onClose();\n };\n\n if (!isOpen) return null;\n\n return (\n <>\n <style>{KEYFRAME_STYLES}</style>\n\n <div\n className=\"fixed inset-0 z-[1000] bg-black/55 flex items-stretch justify-center\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label={localT(\"planSheetTitle\")}\n >\n <div\n ref={sheetRef}\n className=\"pt-8 w-full max-w-[480px] h-[100dvh] max-h-[100dvh] bg-white flex flex-col overflow-hidden\"\n style={{ animation: \"three-sku-slide-up 0.28s cubic-bezier(0.32, 0.72, 0, 1)\" }}\n >\n <SheetHeader title={localT(\"planSheetTitle\")} onClose={handleClose} />\n\n {/* ── Scrollable content ── */}\n <div className=\"flex-1 overflow-y-auto px-4 pt-4 pb-4\" ref={contentRef}>\n <h3 className=\"m-0 mb-5 text-[16px] font-bold leading-snug text-[#CF6C09]\">\n {localT(currentPlan?.title ?? \"\")}\n </h3>\n\n {currentPlan && <PlanFeatureList plan={currentPlan} t={localT} />}\n\n {isQuestionPlan && (\n <div ref={questionInputRef}>\n <QuestionInput\n textareaRef={textareaRef}\n value={questionDraft}\n label={localT(\"planQuestionLabel\")}\n placeholder={localT(\"planQuestionPlaceholder\")}\n chipKeys={CHIP_KEYS}\n t={localT}\n onFocus={() => handleQuestionFocus(\"keyboard_focus\")}\n onClick={() => handleQuestionFocus(\"tap\")}\n onChange={handleQuestionChange}\n onChipClick={handleChipClick}\n />\n </div>\n )}\n\n {currentPlan?.astrologers && currentPlan.astrologers.length > 0 && (\n <AstrologerSection\n astrologers={currentPlan.astrologers}\n heading={localT(\"planAstrologerHeading\")}\n t={localT}\n />\n )}\n </div>\n\n {/* ── Sticky footer ── */}\n <div\n className=\"px-4 pt-3.5 bg-white border-t border-gray-100 sticky bottom-0 z-[5]\"\n style={{ paddingBottom: \"calc(14px + env(safe-area-inset-bottom))\" }}\n >\n <PlanSelectorStrip\n plans={finalPlans}\n selectedId={selectedId}\n t={localT}\n analytics={analytics}\n onSelectPlan={onSelectPlan}\n />\n\n <ProceedButton\n canProceed={canProceed}\n label={localT(\"planProceedToPayment\")}\n showDisabledHint={showDisabledHint}\n hintText={localT(\"planQuestionHint\")}\n onClick={handleProceedClick}\n />\n </div>\n </div>\n </div>\n </>\n );\n};\n\n","// @ts-ignore\nexport const DEFAULT_SAMPLE_URL =\n \"https://srm-cdn.a4b.io/yoda/1773317492292.pdf\";\n\nexport const DEFAULT_ONE_QUESTION_SAMPLE_URL =\n \"https://srm-cdn.a4b.io/yoda/1781248337750.pdf\";\n\nexport const SECTION_TITLE = \"Kundli Packages for you\";\nexport const SAMPLE_REPORTS_TITLE = \"View Sample Reports\";\nexport const ONLY_FOR_LABEL = \"Only for\";\nexport const UNIQUE_FEATURES_LABEL = \"Unique Features\";\n\nexport const COLUMN_HEADERS = {\n kundliReport: \"Kundli Report\",\n reportPlusQuestion: \"Report + 1 Question\",\n reportPlusQuestionSubtext: \"(Answered by Astrologer)\",\n reportPlusConsultation: \"Report + 30 min consultation\",\n popularBadge: \"Popular\",\n} as const;\n\nexport const SAMPLE_REPORT_LABELS = {\n kundliReport: \"200+ page Kundli Report\",\n oneQuestion: \"1 Question Sample Report\",\n} as const;\n\nexport const PRICES = {\n global: [\"$25\", \"$31\", \"$41\"] as [string, string, string],\n domestic: [\"₹499\", \"₹749\", \"₹999\"] as [string, string, string],\n} as const;\n\nexport type Cell = \"check\" | \"cross\";\n\nexport const rows: Array<{ label: string; values: [Cell, Cell, Cell] }> = [\n { label: \"Personalised\\nReport\", values: [\"check\", \"check\", \"check\"] },\n { label: \"Remedies:\\ngemstone,\\npujas\", values: [\"check\", \"check\", \"check\"] },\n { label: \"Detailed\\nquestion to\\nexpert\", values: [\"cross\", \"check\", \"check\"] },\n { label: \"Relationship\\nmanager\", values: [\"cross\", \"cross\", \"check\"] },\n { label: \"30-min\\nastrologer\\ncall\", values: [\"cross\", \"cross\", \"check\"] },\n];\n\nexport const CheckIcon = () => (\n <span className=\"inline-flex h-6 w-6 items-center justify-center rounded-full bg-[#14946b] font-bold text-white\">\n ✓\n </span>\n);\n\nexport const CrossIcon = () => (\n <span className=\"inline-flex h-6 w-6 items-center justify-center rounded-full bg-[#e23f4e] font-bold text-white\">\n ✕\n </span>\n);\n\nexport const TrendUpIcon = () => (\n <svg\n width=\"14\"\n height=\"14\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden\n >\n <polyline points=\"23 6 13.5 15.5 8.5 10.5 1 18\" />\n <polyline points=\"17 6 23 6 23 12\" />\n </svg>\n);\n\nexport const SampleReportArrowIcon = () => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden\n >\n <path\n d=\"M8 4L16 12L8 20\"\n stroke=\"white\"\n strokeWidth=\"4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n","import {\n COLUMN_HEADERS,\n UNIQUE_FEATURES_LABEL,\n TrendUpIcon,\n} from \"./KundliTableSection.constants\";\n\nexport const PackagesTableHeader: React.FC = () => (\n <thead>\n <tr>\n <th className=\"h-[84px] box-border rounded-tl-[12px] align-middle border-r border-b border-[#e5ccb9] bg-[#fff6eb] py-2 pl-2 pr-1 text-left text-[12px] text-[#7b3f17]\">\n {UNIQUE_FEATURES_LABEL}\n </th>\n\n <th className=\"h-[84px] box-border align-middle border-r border-b border-[#e5ccb9] bg-[#fff6eb] px-1 py-2 text-center text-[11px] text-[#7b3f17]\">\n {COLUMN_HEADERS.kundliReport}\n </th>\n\n <th className=\"h-[84px] box-border align-middle border-r border-b border-[#e5ccb9] bg-[#fff6eb] px-1 py-2 text-center text-[11px] text-[#7b3f17]\">\n {COLUMN_HEADERS.reportPlusQuestion}\n <small className=\"mt-1 block text-[10px] font-normal italic\">\n {COLUMN_HEADERS.reportPlusQuestionSubtext}\n </small>\n </th>\n\n <th className=\"relative h-[84px] box-border rounded-tr-[12px] align-middle border-b border-[#e5ccb9] bg-[#fff8f1] px-1 pt-6 pb-2 text-center text-[11px] font-bold text-[#9a3f1b]\">\n <div className=\"absolute left-0 right-0 -top-[16px] z-2 flex items-center justify-center gap-1 whitespace-nowrap rounded-t-[12px] bg-[linear-gradient(180deg,#751139_0%,#D51F68_100%)] px-3 py-[6px] text-[11px] font-bold text-white shadow-[0_-4px_10px_rgba(187,42,93,0.2)]\">\n <TrendUpIcon />\n <span>{COLUMN_HEADERS.popularBadge}</span>\n </div>\n {COLUMN_HEADERS.reportPlusConsultation}\n </th>\n </tr>\n </thead>\n);\n","import { rows, CheckIcon, CrossIcon, ONLY_FOR_LABEL } from \"./KundliTableSection.constants\";\n\ninterface PackagesTableBodyProps {\n prices: [string, string, string];\n}\n\nexport const PackagesTableBody: React.FC<PackagesTableBodyProps> = ({ prices }) => (\n <tbody>\n {rows.map((row) => (\n <tr key={row.label}>\n <td className=\"h-[64px] box-border border-r border-b border-[#e5ccb9] py-1 pl-2 text-left text-[11px] font-semibold text-[#7b3f17] align-middle leading-tight\">\n {row.label.split(\"\\n\").map((line) => (\n <div key={line}>{line}</div>\n ))}\n </td>\n\n {row.values.map((value, index) => (\n <td\n key={`${row.label}-${index}`}\n className={`h-[64px] box-border bg-white py-1 text-center border-b border-[#e5ccb9] align-middle ${\n index !== 2 ? \"border-r border-[#e5ccb9]\" : \"\"\n }`}\n >\n <div className=\"flex items-center justify-center\">\n {value === \"check\" ? <CheckIcon /> : <CrossIcon />}\n </div>\n </td>\n ))}\n </tr>\n ))}\n\n <tr className=\"bg-[#fff8ef]\">\n <td className=\"h-[64px] box-border border-r border-[#e5ccb9] py-1 pl-2 text-left text-[12px] font-semibold text-[#7b3f17] rounded-bl-[12px] align-middle\">\n {ONLY_FOR_LABEL}\n </td>\n\n {prices.map((price, index) => (\n <td\n key={price}\n className={`h-[64px] box-border bg-[#fff8ef] py-1 text-center align-middle ${\n index !== 2 ? \"border-r border-[#e5ccb9]\" : \"\"\n } ${index === 2 ? \"rounded-br-[12px]\" : \"\"}`}\n >\n <span className=\"text-[16px] text-[#9a3f1b]\">{price}</span>\n </td>\n ))}\n </tr>\n </tbody>\n);\n","import { SAMPLE_REPORTS_TITLE, SAMPLE_REPORT_LABELS, SampleReportArrowIcon } from \"./KundliTableSection.constants\";\n\ninterface SampleReportsSectionProps {\n kundliReportSampleHref: string;\n oneQuestionSampleHref: string;\n}\n\nexport const SampleReportsSection: React.FC<SampleReportsSectionProps> = ({\n kundliReportSampleHref,\n oneQuestionSampleHref,\n}) => (\n <>\n <h3 className=\"mt-5 mb-3 text-center text-[18px] font-bold leading-[1.1] text-[#f75e22] max-[380px]:text-[16px]\">\n {SAMPLE_REPORTS_TITLE}\n </h3>\n\n <div className=\"grid grid-cols-2 gap-[10px]\">\n <a\n href={kundliReportSampleHref}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"justify-center items-center relative rounded-xl bg-[linear-gradient(180deg,#f97316_0%,#ea580c_100%)] p-5 pr-10 text-center text-[14px] font-semibold text-white no-underline shadow-[0_6px_14px_rgba(234,88,12,0.2)]\"\n >\n {SAMPLE_REPORT_LABELS.kundliReport}\n <span className=\"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2\" aria-hidden>\n <SampleReportArrowIcon />\n </span>\n </a>\n\n <a\n href={oneQuestionSampleHref}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"justify-center items-center relative rounded-xl bg-[linear-gradient(180deg,#f97316_0%,#ea580c_100%)] p-5 pr-10 text-center text-[14px] font-semibold text-white no-underline shadow-[0_6px_14px_rgba(234,88,12,0.2)]\"\n >\n {SAMPLE_REPORT_LABELS.oneQuestion}\n <span className=\"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2\" aria-hidden>\n <SampleReportArrowIcon />\n </span>\n </a>\n </div>\n </>\n);\n","import { DEFAULT_ONE_QUESTION_SAMPLE_URL, DEFAULT_SAMPLE_URL, PRICES, SECTION_TITLE } from \"./KundliTableSection.constants\";\nimport { PackagesTableHeader } from \"./PackagesTableHeader\";\nimport { PackagesTableBody } from \"./PackagesTableBody\";\nimport { SampleReportsSection } from \"./SampleReportsSection\";\n\nexport interface KundliPackagesSectionProps {\n isGlobal?: boolean;\n kundliReportSampleHref?: string;\n oneQuestionSampleHref?: string;\n className?: string;\n}\n\nexport const KundliPackagesSection: React.FC<KundliPackagesSectionProps> = ({\n isGlobal = false,\n kundliReportSampleHref = DEFAULT_SAMPLE_URL,\n oneQuestionSampleHref = DEFAULT_ONE_QUESTION_SAMPLE_URL,\n className = \"\",\n}) => {\n const prices = isGlobal ? PRICES.global : PRICES.domestic;\n\n return (\n <section className={`bg-white px-3 py-4 ${className}`}>\n <h2 className=\"mb-3 font-bold text-center text-[18px] leading-6 text-[#f75e22] max-[380px]:text-[16px]\">\n {SECTION_TITLE}\n </h2>\n\n <div className=\"relative mt-5 rounded-[14px] border-[1.5px] border-[#e5ccb9] shadow-[0_4px_16px_rgba(111,58,17,0.08)]\">\n <table className=\"w-full table-fixed border-collapse\">\n <colgroup>\n <col className=\"w-1/4\" />\n <col className=\"w-1/4\" />\n <col className=\"w-1/4\" />\n <col className=\"w-1/4\" />\n </colgroup>\n\n <PackagesTableHeader />\n <PackagesTableBody prices={prices} />\n </table>\n </div>\n\n <SampleReportsSection\n kundliReportSampleHref={kundliReportSampleHref}\n oneQuestionSampleHref={oneQuestionSampleHref}\n />\n </section>\n );\n};\n\n\n","import { useState, useRef, useEffect, useCallback } from \"react\";\nimport styles from \"./KundliPageV1.module.scss\";\nimport { useI18n } from \"../../i18n\";\nimport {\n translations,\n LOCALE_LABELS,\n SUPPORTED_LOCALES,\n type SupportedLocale,\n} from \"../../i18n/translations\";\nimport { FormHeader, ProceedFooter, UserInfoFormSection } from \"../KundliForm/sections\";\nimport { KundliProvider, useKundliContextOrThrow } from \"./KundliContext\";\nimport { KundliPlanBottomSheet } from \"../KundliPlanBottomSheet\";\nimport type { KundliPlan } from \"../KundliPlanBottomSheet\";\nimport { ThreeSkuPlanBottomSheet } from \"../ThreeSkuPlanBottomSheet\";\nimport type { ThreeSkuPlan } from \"../ThreeSkuPlanBottomSheet\";\nimport { PlanGuidanceId } from \"../../utils/Stringconstant\";\n\nconst GLOBE_ICON_URL = \"https://srm-cdn.a4b.io/yoda/1770362713543.svg\";\nimport {\n KundliHeader,\n HeroSection,\n PremiumReportOverview,\n UniversityCertification,\n ThreeStepsProcess,\n ViewSampleReportButton,\n WhatYoullFindSection,\n WhyUsSection,\n FeedbackSection,\n FAQSection,\n ContactUsSection,\n} from \"./sections\";\nimport { KundliPackagesSection } from \"./sections/KundliTableSection\";\n\nimport type { KundliFormValues } from \"../KundliForm\";\nimport type { KundliAnalytics } from \"../../analytics\";\nimport type { AtlasSearchLocalities } from \"../KundliForm/sections/UserInfoFormSection/useGooglePlacesAutocomplete\";\n\nexport interface KundliPageProps {\n /** Optional CSS class name */\n className?: string;\n /** Language (en, hi). Overrides I18nProvider if set. Initial value when using dropdown. */\n locale?: SupportedLocale;\n /** Show language dropdown. Default true. */\n showLanguageSelector?: boolean;\n /** Show bottom sheet for plans in v1 variant */\n showSheet?: boolean;\n /** User ID from auth, for API calls etc. */\n userId?: number;\n /** Whether the user is global (international) or domestic */\n isGlobal?: boolean;\n /** Header logo URL */\n logoUrl?: string;\n /** Premium report cover image URL */\n reportImageUrl?: string;\n /** University logo URLs [BHU, VSU] */\n universityLogoUrls?: [string?, string?];\n /** Sample report link (opens in new tab) */\n sampleReportHref?: string;\n /** Called when \"View Sample Report\" is clicked (if sampleReportHref not set) */\n onViewSampleReport?: () => void;\n /** CTA button link (e.g. checkout URL). If set, CTA is a link; otherwise CTA shows the Kundli form. */\n ctaHref?: string;\n /** Called when CTA button is clicked (if ctaHref not set). Also called after navigating to form when integrated. */\n onCtaClick?: () => void;\n /** Read more reviews link */\n readMoreReviewsHref?: string;\n /** Called when user proceeds from the form (e.g. to payment) */\n onProceed?: (values: KundliFormValues) => void;\n /** Callback for Guidance plan (999 price) specifically */\n onProceedGuidance?: (values: KundliFormValues) => void;\n /** Form: proceed CTA as link */\n proceedHref?: string;\n /** Form: pricing labels */\n originalPriceLabel?: string;\n discountedPriceLabel?: string;\n discountPillLabel?: string;\n /** Optional analytics implementation for Mixpanel/tracking events */\n analytics?: KundliAnalytics;\n /** Notify when user changes language (e.g. to keep form view in sync when switching from landing) */\n onLocaleChange?: (locale: SupportedLocale) => void;\n /** Atlas localities search callback for birth place autocomplete */\n atlasSearchLocalities?: AtlasSearchLocalities;\n /** Enables 3-SKU experiment flow inside existing v1 page. */\n enableThreeSkuFlow?: boolean;\n /** URL for the \"200+ page Kundli Report\" sample link in the 3-SKU table. */\n kundliReportSampleHref?: string;\n /** URL for the \"1 Question\" sample link in the 3-SKU table. */\n oneQuestionSampleHref?: string;\n}\n\nconst tFromLocale = (locale: SupportedLocale, key: string) =>\n translations[locale]?.[key] ?? key;\n\n/** Height of the sticky CTA footer (matches space reserved in main, e.g. pb-28). */\nconst CTA_FOOTER_HEIGHT_PX = 112;\n\n/** Wraps a section and fires trackDetailedKundliReportImpressionFe when it enters the viewport. */\nfunction SectionWithImpression({\n section,\n children,\n onImpression,\n}: {\n section: string;\n children: React.ReactNode;\n onImpression: (section: string) => void;\n}) {\n const ref = useRef<HTMLDivElement>(null);\n const reported = useRef(false);\n useEffect(() => {\n const el = ref.current;\n if (!el) return;\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (!entry?.isIntersecting || reported.current) return;\n reported.current = true;\n onImpression(section);\n },\n {\n threshold: 0.1,\n // Shrink bottom of viewport by CTA footer height so we only count content actually visible above the sticky footer\n rootMargin: `0px 0px -${CTA_FOOTER_HEIGHT_PX}px 0px`,\n }\n );\n observer.observe(el);\n return () => observer.disconnect();\n }, [section, onImpression]);\n return <div ref={ref}>{children}</div>;\n}\n\n/** Landing page content (hero, steps, CTA, etc.). Uses context for locale and CTA → form. */\nfunction KundliPageContent({\n className,\n showInlineForm = false,\n enableThreeSkuFlow = false,\n kundliReportSampleHref,\n oneQuestionSampleHref,\n}: {\n className: string;\n showInlineForm?: boolean;\n enableThreeSkuFlow?: boolean;\n kundliReportSampleHref?: string;\n oneQuestionSampleHref?: string;\n}) {\n const i18n = useI18n();\n const {\n locale,\n setLocale,\n config,\n formValues,\n setFormValues,\n } = useKundliContextOrThrow();\n\n const [planSheetOpen, setPlanSheetOpen] = useState(false);\n const [selectedPlan, setSelectedPlan] = useState<(KundliPlan | ThreeSkuPlan) | null>(null);\n const pendingValuesRef = useRef<KundliFormValues | null>(null);\n const pendingQuestionRef = useRef<string | undefined>(undefined);\n const comparisonTableRef = useRef<HTMLDivElement>(null);\n const hasTrackedComparisonTableRef = useRef<boolean>(false);\n\n const showPlanSheet = useCallback((values: KundliFormValues) => {\n pendingValuesRef.current = values;\n setPlanSheetOpen(true);\n }, []);\n\n const confirmPlan = useCallback(() => {\n if (!pendingValuesRef.current || !selectedPlan) return;\n\n const merged = {\n ...pendingValuesRef.current,\n _selectedPlan: selectedPlan,\n ...(pendingQuestionRef.current !== undefined\n ? { _question: pendingQuestionRef.current }\n : {}),\n };\n\n pendingQuestionRef.current = undefined;\n\n if (\n selectedPlan.id === PlanGuidanceId &&\n config.onProceedGuidance\n ) {\n config.onProceedGuidance(merged as any);\n } else {\n config.onProceed?.(merged as any);\n }\n\n setPlanSheetOpen(false);\n pendingValuesRef.current = null;\n }, [selectedPlan, config.onProceed, config.onProceedGuidance]);\n\n const [langOpen, setLangOpen] = useState(false);\n const [phoneIsdCode, setPhoneIsdCode] = useState<string>(\n (config.isGlobal ?? true) ? \"+1\" : \"+91\",\n );\n const inlineFormRef = useRef<HTMLDivElement>(null);\n const langRef = useRef<HTMLDivElement>(null);\n const prevLocalePropRef = useRef<SupportedLocale | undefined>(config.locale);\n const prevProviderLocaleRef = useRef<SupportedLocale | undefined>(\n i18n?.locale,\n );\n\n useEffect(() => {\n if (config.locale && prevLocalePropRef.current !== config.locale) {\n setLocale(config.locale);\n }\n prevLocalePropRef.current = config.locale;\n }, [config.locale, setLocale]);\n\n useEffect(() => {\n if (config.locale) return;\n const providerLocale = i18n?.locale;\n if (providerLocale && prevProviderLocaleRef.current !== providerLocale) {\n setLocale(providerLocale);\n }\n prevProviderLocaleRef.current = providerLocale;\n }, [i18n?.locale, config.locale, setLocale]);\n\n useEffect(() => {\n setPhoneIsdCode((config.isGlobal ?? true) ? \"+1\" : \"+91\");\n }, [config.isGlobal]);\n\n useEffect(() => {\n if (!langOpen) return;\n const handleClickOutside = (e: MouseEvent) => {\n if (langRef.current && !langRef.current.contains(e.target as Node)) {\n setLangOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => document.removeEventListener(\"mousedown\", handleClickOutside);\n }, [langOpen]);\n\n /** Fires comparison_table_impression once when the SKU table is ≥50% visible (Path 1 only). */\n useEffect(() => {\n if (!enableThreeSkuFlow) return;\n const el = comparisonTableRef.current;\n if (!el) return;\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (hasTrackedComparisonTableRef.current) return;\n if (!entry?.isIntersecting || (entry.intersectionRatio ?? 0) < 0.5) return;\n hasTrackedComparisonTableRef.current = true;\n config.analytics?.trackComparisonTableImpression?.();\n },\n { threshold: 0.5 },\n );\n observer.observe(el);\n return () => observer.disconnect();\n }, [enableThreeSkuFlow, config.analytics]);\n\n const t = (key: string) => tFromLocale(locale, key);\n const showLanguageSelector = config.showLanguageSelector ?? true;\n\n const languageSelector = showLanguageSelector ? (\n <div className={styles.langDropdownWrap} ref={langRef}>\n <button\n type=\"button\"\n className={styles.langTrigger}\n onClick={() => {\n config.analytics?.trackLanguageClickedFe?.({ language: locale });\n setLangOpen((o) => !o);\n }}\n aria-expanded={langOpen}\n aria-haspopup=\"listbox\"\n id=\"kundli-lang\"\n aria-label={t(\"language\")}\n >\n <img\n src={GLOBE_ICON_URL}\n alt=\"\"\n className={styles.langIcon}\n width={16}\n height={16}\n aria-hidden\n />\n <span className={styles.langLabel}>{LOCALE_LABELS[locale]}</span>\n </button>\n {langOpen && (\n <ul\n className={styles.langMenu}\n role=\"listbox\"\n aria-labelledby=\"kundli-lang\"\n aria-activedescendant={`kundli-lang-option-${locale}`}\n >\n {SUPPORTED_LOCALES.map((loc) => (\n <li\n key={loc}\n id={`kundli-lang-option-${loc}`}\n role=\"option\"\n aria-selected={loc === locale}\n className={styles.langOption}\n onClick={() => {\n config.analytics?.trackLanguageChangedFe?.({ newLanguage: loc });\n setLocale(loc);\n setLangOpen(false);\n }}\n >\n {LOCALE_LABELS[loc]}\n </li>\n ))}\n </ul>\n )}\n </div>\n ) : null;\n\n const handleSectionImpression = useCallback(\n (section: string) => {\n config.analytics?.trackDetailedKundliReportImpressionFe?.({\n section,\n timestamp: new Date().toISOString(),\n });\n },\n [config.analytics]\n );\n\n const focusMissingField = useCallback((field: string) => {\n const fieldIdMap: Record<string, string> = {\n fullName: \"kundli-full-name\",\n phone: \"kundli-phone\",\n email: \"kundli-email\",\n dateOfBirth: \"kundli-dob\",\n birthTime: \"kundli-birth-time\",\n birthPlace: \"kundli-birth-place\",\n gender: \"kundli-gender-male\",\n language_code: \"kundli-report-lang-hi\",\n };\n\n const targetId = fieldIdMap[field] ?? \"kundli-full-name\";\n const targetEl = document.getElementById(targetId);\n\n if (targetEl) {\n const targetRect = targetEl.getBoundingClientRect();\n const targetY = targetRect.top + window.scrollY - 120;\n \n window.scrollTo({ \n top: targetY, \n behavior: \"smooth\" \n });\n \n setTimeout(() => targetEl.focus(), 500);\n }\n }, []);\n\n return (\n <div className={`${styles.container} ${className}`}>\n <KundliHeader\n t={t}\n logoUrl={config.logoUrl}\n languageSelector={languageSelector}\n />\n <main className={styles.main}>\n <SectionWithImpression\n section=\"hero\"\n onImpression={handleSectionImpression}\n >\n <HeroSection t={t} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"premium_report_overview\"\n onImpression={handleSectionImpression}\n >\n <PremiumReportOverview\n t={t}\n reportImageUrl={config.reportImageUrl}\n analytics={config.analytics}\n />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"university_certification\"\n onImpression={handleSectionImpression}\n >\n <UniversityCertification\n t={t}\n logoUrl={config.universityLogoUrls?.find((u): u is string => Boolean(u))}\n />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"three_steps_process\"\n onImpression={handleSectionImpression}\n >\n <ThreeStepsProcess t={t} locale={locale} isGlobal={config.isGlobal} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"view_sample_report\"\n onImpression={handleSectionImpression}\n >\n {enableThreeSkuFlow ? (\n <div ref={comparisonTableRef}>\n <KundliPackagesSection\n isGlobal={config.isGlobal}\n kundliReportSampleHref={kundliReportSampleHref}\n oneQuestionSampleHref={oneQuestionSampleHref}\n />\n </div>\n ) : (\n <ViewSampleReportButton\n t={t}\n pdfUrl={config.sampleReportHref}\n onClick={config.onViewSampleReport}\n analytics={config.analytics}\n />\n )}\n </SectionWithImpression>\n {showInlineForm && (\n <SectionWithImpression\n section=\"inline_form\"\n onImpression={handleSectionImpression}\n >\n <div className={styles.inlineFormWrap} ref={inlineFormRef}>\n {/* <div\n className={styles.inlineFormImageWrap}\n role=\"button\"\n tabIndex={0}\n aria-label={t(\"formTitle\")}\n onClick={focusInlineFormFirstField}\n onKeyDown={(e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n focusInlineFormFirstField();\n }\n }}\n >\n <img\n src={inlineFormImageUrl}\n alt=\"Kundli preview\"\n className={styles.inlineFormImage}\n />\n </div> */}\n <FormHeader t={t} align=\"center\" />\n <UserInfoFormSection\n t={t}\n values={formValues}\n onChange={setFormValues}\n phoneIsdCode={phoneIsdCode}\n onPhoneIsdCodeChange={setPhoneIsdCode}\n showV1ExtraFields\n analytics={config.analytics}\n />\n <ProceedFooter\n t={t}\n values={formValues}\n phoneIsdCode={phoneIsdCode}\n hideOriginalPrice\n requireV1ExtraFields\n onValidationFailed={focusMissingField}\n onProceed={config.onProceed}\n href={config.proceedHref}\n originalPriceLabel={config.originalPriceLabel}\n discountedPriceLabel={config.discountedPriceLabel}\n analytics={config.analytics}\n className={styles.inlineProceedFooter}\n onProceedGuidance={config.onProceedGuidance}\n showPlanSheet={showPlanSheet}\n confirmPlan={confirmPlan}\n planSheetOpen={planSheetOpen}\n selectedPlan={selectedPlan as KundliPlan | null}\n />\n </div>\n </SectionWithImpression>\n )}\n <SectionWithImpression\n section=\"what_youll_find\"\n onImpression={handleSectionImpression}\n >\n <WhatYoullFindSection t={t} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"why_us\"\n onImpression={handleSectionImpression}\n >\n <WhyUsSection t={t} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"feedback\"\n onImpression={handleSectionImpression}\n >\n <FeedbackSection \n t={t} \n readMoreHref={config.readMoreReviewsHref}\n onReadMore={config.analytics?.trackReadMoreReviewsClicked ? () => config.analytics!.trackReadMoreReviewsClicked!() : undefined}\n />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"faq\"\n onImpression={handleSectionImpression}\n >\n <FAQSection t={t} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"contact_us\"\n onImpression={handleSectionImpression}\n >\n <ContactUsSection t={t} />\n </SectionWithImpression>\n </main>\n {enableThreeSkuFlow ? (\n <ThreeSkuPlanBottomSheet\n isOpen={planSheetOpen}\n onClose={() => setPlanSheetOpen(false)}\n selectedPlan={selectedPlan as ThreeSkuPlan | null}\n onSelectPlan={(plan) => setSelectedPlan(plan)}\n isGlobal={config.isGlobal}\n locale={locale as \"en\" | \"hi\"}\n onProceed={(_plan, question) => {\n pendingQuestionRef.current = question;\n confirmPlan();\n }}\n t={t}\n analytics={config.analytics}\n />\n ) : (\n <KundliPlanBottomSheet\n isOpen={planSheetOpen}\n onClose={() => setPlanSheetOpen(false)}\n selectedPlan={selectedPlan as KundliPlan | null}\n onSelectPlan={(plan) => setSelectedPlan(plan)}\n onProceed={() => {\n confirmPlan();\n }}\n t={t}\n analytics={config.analytics}\n />\n )}\n </div>\n );\n}\n\nexport const KundliPageV1: React.FC<KundliPageProps> = ({\n className = \"\",\n locale: localeProp,\n showLanguageSelector = true,\n showSheet,\n userId,\n isGlobal,\n atlasSearchLocalities,\n enableThreeSkuFlow = false,\n kundliReportSampleHref,\n oneQuestionSampleHref,\n logoUrl,\n reportImageUrl,\n universityLogoUrls,\n sampleReportHref,\n onViewSampleReport,\n ctaHref,\n onCtaClick,\n readMoreReviewsHref,\n onProceed,\n proceedHref,\n originalPriceLabel,\n discountedPriceLabel,\n discountPillLabel,\n analytics,\n onProceedGuidance,\n onLocaleChange,\n}) => {\n return (\n <KundliProvider\n locale={localeProp}\n showLanguageSelector={showLanguageSelector}\n showSheet={showSheet}\n userId={userId}\n isGlobal={isGlobal}\n variant=\"v1\"\n atlasSearchLocalities={atlasSearchLocalities}\n logoUrl={logoUrl}\n reportImageUrl={reportImageUrl}\n universityLogoUrls={universityLogoUrls}\n sampleReportHref={sampleReportHref}\n onViewSampleReport={onViewSampleReport}\n ctaHref={ctaHref}\n onCtaClick={onCtaClick}\n readMoreReviewsHref={readMoreReviewsHref}\n onProceed={onProceed}\n onProceedGuidance={onProceedGuidance}\n proceedHref={proceedHref}\n originalPriceLabel={originalPriceLabel}\n discountedPriceLabel={discountedPriceLabel}\n discountPillLabel={discountPillLabel}\n analytics={analytics}\n onLocaleChange={onLocaleChange}\n >\n <KundliPageContent\n className={className}\n showInlineForm\n enableThreeSkuFlow={enableThreeSkuFlow}\n kundliReportSampleHref={kundliReportSampleHref}\n oneQuestionSampleHref={oneQuestionSampleHref}\n />\n </KundliProvider>\n );\n};\n","import {\n KundliPage as KundliPageDefault,\n type KundliPageProps as BaseKundliPageProps,\n} from \"./KundliPage\";\nimport { KundliPageV1 } from \"./KundliPageV1\";\n\nexport type KundliPageProps = BaseKundliPageProps & {\n variant?: \"v1\";\n};\n\nexport const KundliPage: React.FC<KundliPageProps> = ({ variant, ...props }) => {\n const variantFromUrl =\n typeof window !== \"undefined\"\n ? new URLSearchParams(window.location.search).get(\"variant\")\n : null;\n\n const resolvedVariant = variant ?? (variantFromUrl === \"v1\" ? \"v1\" : undefined);\n\n if (resolvedVariant === \"v1\") {\n return <KundliPageV1 {...props} />;\n }\n\n return <KundliPageDefault {...props} />;\n};\n\n","/**\n * Critical CSS that should be inlined in document <head> to prevent CLS\n * Import this in your host app and inject it as inline styles\n * \n * @example\n * ```tsx\n * import { KUNDLI_CRITICAL_CSS } from '@srimandir/kundli-generator';\n * \n * <style dangerouslySetInnerHTML={{ __html: KUNDLI_CRITICAL_CSS }} />\n * ```\n */\nexport const KUNDLI_CRITICAL_CSS = `[data-hero]{min-height:200px}[data-background-layer]{position:absolute;inset:0;z-index:0;overflow:hidden}[data-form-container]{min-height:400px}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:600;font-display:swap}@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:700;font-display:swap}img{max-width:100%;height:auto}.kundli-page-root{contain:layout}`;\n"],"names":["TOPIC_KEYS","HeroSection","className","jsxs","styles","jsx","key","FEATURE_CHECK_ICON_URL","PREMIUM_REPORT_BACKGROUND_IMAGE_URL","FEATURES","DEFAULT_REPORT_IMAGE_URL","PremiumReportOverview","reportImageUrl","reportImagePriority","backgroundImagePriority","analytics","Img","useKundliContext","DefaultKundliImage","handleClick","DEFAULT_LOGO_URL","UniversityCertification","logoUrl","STEP_KEYS","ThreeStepsProcess","locale","isGlobal","step3IntroKey","index","Fragment","setPdfWorkerSrc","pdfjsLib","SampleReportModal","isOpen","onClose","title","pdfUrl","pagesRef","useRef","loading","setLoading","useState","error","setError","setPdfjsLib","useEffect","handleEscape","e","lib","err","pdf","container","pageWidth","scale","i","page","viewport","canvas","ctx","DEFAULT_PDF_URL","ViewSampleReportButton","onClick","modalOpen","setModalOpen","label","handleClose","ITEMS","DEFAULT_IMAGE_URLS","WhatYoullFindSection","imageUrls","item","BULLETS","WhyUsSection","FeedbackSection","testimonials","readMoreHref","onReadMore","headingClassName","UserReviewsSection","FAQ_ITEMS","FAQSection","resolveAnswerKey","aKey","FAQAccordion","DEFAULT_WHATSAPP_GLOBAL","DEFAULT_WHATSAPP_DOMESTIC","DEFAULT_EMAIL","ContactUsSection","whatsAppGlobal","whatsAppDomestic","email","brandName","globalNum","domesticNum","emailVal","whatsAppLine","emailLine","CommonContactUsSection","ICON_KUNDLI_CREATED","ICON_CERTIFIED","ICON_SECURE_PAYMENT","TrustBadgesRow","footerShellStyles","CTAFooter","onCtaClick","ctaHref","ctaContent","FooterShell","CircularMarquee","FooterCTAButton","GLOBE_ICON_URL","tFromLocale","translations","CTA_FOOTER_HEIGHT_PX","SectionWithImpression","section","children","onImpression","ref","reported","el","observer","entry","KundliPageRouter","view","useKundliContextOrThrow","KundliForm","KundliPageContent","i18n","useI18n","setLocale","config","goToForm","langOpen","setLangOpen","langRef","prevLocalePropRef","prevProviderLocaleRef","providerLocale","handleClickOutside","t","showLanguageSelector","languageSelector","o","LOCALE_LABELS","SUPPORTED_LOCALES","loc","handleCtaClick","ctaText","handleSectionImpression","useCallback","KundliHeader","u","KundliPage","localeProp","showSheet","userId","atlasSearchLocalities","universityLogoUrls","sampleReportHref","onViewSampleReport","readMoreReviewsHref","onProceed","onProceedGuidance","proceedHref","originalPriceLabel","discountedPriceLabel","discountPillLabel","onLocaleChange","KundliProvider","THREE_SKU_ASTROLOGERS","THREE_SKU_STRINGS","getThreeSkuDefaultPlans","a","CHIP_KEYS","MAX_QUESTION_LENGTH","MAX_TEXTAREA_HEIGHT_PX","KEYFRAME_STYLES","SheetHeader","ChevronLeftIcon","IncludedFeatureIcon","ExcludedFeatureIcon","TrendUpIcon","PlanFeatureList","plan","feature","idx","QuestionChips","chipKeys","onChipClick","half","rows","row","rowIdx","QuestionInput","textareaRef","value","placeholder","onFocus","onChange","ThreeSkuAstrologerCard","astrologer","lang","cert","AstrologerSection","astrologers","heading","PlanSelectorStrip","plans","selectedId","onSelectPlan","ProceedButton","canProceed","showDisabledHint","hintText","ThreeSkuPlanBottomSheet","selectedPlan","localT","finalPlans","useMemo","p","sheetRef","contentRef","questionInputRef","hasTrackedViewRef","questionDraft","setQuestionDraft","questionSource","setQuestionSource","lastChipIndex","setLastChipIndex","setShowDisabledHint","hasTrackedFocusRef","currentPlan","isQuestionPlan","adjustHeight","ta","defaultPlan","previous","handleQuestionFocus","method","contentEl","questionEl","questionTop","handleQuestionChange","val","handleChipClick","chipText","hadCustomText","handleProceedClick","DEFAULT_SAMPLE_URL","DEFAULT_ONE_QUESTION_SAMPLE_URL","SECTION_TITLE","SAMPLE_REPORTS_TITLE","ONLY_FOR_LABEL","UNIQUE_FEATURES_LABEL","COLUMN_HEADERS","SAMPLE_REPORT_LABELS","PRICES","CheckIcon","CrossIcon","SampleReportArrowIcon","PackagesTableHeader","PackagesTableBody","prices","line","price","SampleReportsSection","kundliReportSampleHref","oneQuestionSampleHref","KundliPackagesSection","showInlineForm","enableThreeSkuFlow","formValues","setFormValues","planSheetOpen","setPlanSheetOpen","setSelectedPlan","pendingValuesRef","pendingQuestionRef","comparisonTableRef","hasTrackedComparisonTableRef","showPlanSheet","values","confirmPlan","merged","PlanGuidanceId","phoneIsdCode","setPhoneIsdCode","inlineFormRef","focusMissingField","field","targetId","targetEl","targetY","FormHeader","UserInfoFormSection","ProceedFooter","_plan","question","KundliPlanBottomSheet","KundliPageV1","variant","props","variantFromUrl","KundliPageDefault","KUNDLI_CRITICAL_CSS"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import "./styles.js";
2
2
  import { D as t, I as o, K, a as i, b as l, c as r, d, S as n, g as u, e as I, i as _, r as L, s as A, f as E, u as S, h as P, j as m } from "./analytics-B_K8hMeg.js";
3
- import { K as g, a as N, b as R, c as U, P as D } from "./criticalCss-8EUr27sU.js";
3
+ import { K as g, a as N, b as R, c as U, P as D } from "./criticalCss-CQtIlhrr.js";
4
4
  export {
5
5
  t as DefaultKundliImage,
6
6
  o as I18nProvider,
@@ -1,5 +1,5 @@
1
1
  import { D as s, I as t, K as o, a as r, b as I, d as K, S as l, g as d, e as i, i as n, r as u, s as _, f as L, u as A, h as E, j as S } from "./analytics-B_K8hMeg.js";
2
- import { K as N, a as P, P as R } from "./criticalCss-8EUr27sU.js";
2
+ import { K as N, a as P, P as R } from "./criticalCss-CQtIlhrr.js";
3
3
  export {
4
4
  s as DefaultKundliImage,
5
5
  t as I18nProvider,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@srimandir/kundli-generator",
3
- "version": "5.30.13",
3
+ "version": "5.30.14",
4
4
  "description": "React NPM package for Kundli generation",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -84,5 +84,5 @@
84
84
  "react"
85
85
  ],
86
86
  "license": "MIT",
87
- "gitHead": "24e28ddab0975093ba9d38464fcc6e2bd9282206"
87
+ "gitHead": "90c868a0a707510fe7f487a737c2ee7cc00db1a9"
88
88
  }