@srimandir/kundli-generator 4.2.0 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -32,7 +32,7 @@ export interface KundliPageProps {
32
32
  readMoreReviewsHref?: string;
33
33
  /** Called when user proceeds from the form (e.g. to payment) */
34
34
  onProceed?: (values: KundliFormValues) => void;
35
- /** Callback for Guidance plan (749 price) specifically */
35
+ /** Callback for Guidance plan (999 price) specifically */
36
36
  onProceedGuidance?: (values: KundliFormValues) => void;
37
37
  /** Form: proceed CTA as link */
38
38
  proceedHref?: string;
@@ -32,7 +32,7 @@ export interface KundliPageProps {
32
32
  readMoreReviewsHref?: string;
33
33
  /** Called when user proceeds from the form (e.g. to payment) */
34
34
  onProceed?: (values: KundliFormValues) => void;
35
- /** Callback for Guidance plan (749 price) specifically */
35
+ /** Callback for Guidance plan (999 price) specifically */
36
36
  onProceedGuidance?: (values: KundliFormValues) => void;
37
37
  /** Form: proceed CTA as link */
38
38
  proceedHref?: string;
@@ -1,25 +1,19 @@
1
1
  export declare const ASTROLOGERS: readonly [{
2
2
  readonly id: "jyoti";
3
3
  readonly name: "planAstrologerNameJyoti";
4
- readonly imageUrl: "https://srm-cdn.a4b.io/yoda/1770639271096.png";
4
+ readonly imageUrl: "https://srm-cdn.a4b.io/yoda/1773992823100.webp";
5
5
  readonly experience: "planAstrologerExpJyoti";
6
6
  readonly certifications: readonly ["planAstrologerCertCertifiedJyotish", "planAstrologerCertAccurateSolutions"];
7
7
  }, {
8
8
  readonly id: "samiksha";
9
9
  readonly name: "planAstrologerNameSamiksha";
10
- readonly imageUrl: "https://srm-cdn.a4b.io/yoda/1770639293055.png";
10
+ readonly imageUrl: "https://srm-cdn.a4b.io/yoda/1773992841106.webp";
11
11
  readonly experience: "planAstrologerExpSamiksha";
12
12
  readonly certifications: readonly ["planAstrologerCertVedicAstrology", "planAstrologerCertResultOriented"];
13
13
  }, {
14
14
  readonly id: "neeraj";
15
15
  readonly name: "planAstrologerNameNeeraj";
16
- readonly imageUrl: "https://srm-cdn.a4b.io/yoda/1770639271096.png";
16
+ readonly imageUrl: "https://srm-cdn.a4b.io/yoda/1773992858276.webp";
17
17
  readonly experience: "planAstrologerExpNeeraj";
18
18
  readonly certifications: readonly ["planAstrologerCertBhuCertified", "planAstrologerCertMantraRudraksha"];
19
- }, {
20
- readonly id: "ashwini";
21
- readonly name: "planAstrologerNameAshwini";
22
- readonly imageUrl: "https://srm-cdn.a4b.io/yoda/1770639293055.png";
23
- readonly experience: "planAstrologerExpAshwini";
24
- readonly certifications: readonly ["planAstrologerCertKundliBhavfal", "planAstrologerCertAccurateKundliMatching"];
25
19
  }];
@@ -21,8 +21,8 @@ export declare const DEFAULT_PLANS: readonly [{
21
21
  }, {
22
22
  readonly id: "kundli-report-astrologer";
23
23
  readonly title: "planNameGuidance";
24
- readonly price: "₹749";
25
- readonly originalPrice: "₹499+₹450";
24
+ readonly price: "₹999";
25
+ readonly originalPrice: "₹499+₹850";
26
26
  readonly savingsLabel: "planSaveLabel";
27
27
  readonly badge: "planMostPopular";
28
28
  readonly features: readonly [{
@@ -41,26 +41,20 @@ export declare const DEFAULT_PLANS: readonly [{
41
41
  readonly astrologers: ({
42
42
  readonly id: "jyoti";
43
43
  readonly name: "planAstrologerNameJyoti";
44
- readonly imageUrl: "https://srm-cdn.a4b.io/yoda/1770639271096.png";
44
+ readonly imageUrl: "https://srm-cdn.a4b.io/yoda/1773992823100.webp";
45
45
  readonly experience: "planAstrologerExpJyoti";
46
46
  readonly certifications: readonly ["planAstrologerCertCertifiedJyotish", "planAstrologerCertAccurateSolutions"];
47
47
  } | {
48
48
  readonly id: "samiksha";
49
49
  readonly name: "planAstrologerNameSamiksha";
50
- readonly imageUrl: "https://srm-cdn.a4b.io/yoda/1770639293055.png";
50
+ readonly imageUrl: "https://srm-cdn.a4b.io/yoda/1773992841106.webp";
51
51
  readonly experience: "planAstrologerExpSamiksha";
52
52
  readonly certifications: readonly ["planAstrologerCertVedicAstrology", "planAstrologerCertResultOriented"];
53
53
  } | {
54
54
  readonly id: "neeraj";
55
55
  readonly name: "planAstrologerNameNeeraj";
56
- readonly imageUrl: "https://srm-cdn.a4b.io/yoda/1770639271096.png";
56
+ readonly imageUrl: "https://srm-cdn.a4b.io/yoda/1773992858276.webp";
57
57
  readonly experience: "planAstrologerExpNeeraj";
58
58
  readonly certifications: readonly ["planAstrologerCertBhuCertified", "planAstrologerCertMantraRudraksha"];
59
- } | {
60
- readonly id: "ashwini";
61
- readonly name: "planAstrologerNameAshwini";
62
- readonly imageUrl: "https://srm-cdn.a4b.io/yoda/1770639293055.png";
63
- readonly experience: "planAstrologerExpAshwini";
64
- readonly certifications: readonly ["planAstrologerCertKundliBhavfal", "planAstrologerCertAccurateKundliMatching"];
65
59
  })[];
66
60
  }];
@@ -1,4 +1,4 @@
1
- import { k as e, h as A, D as G, d as ee, j as z, c as fe, u as ne, L as W, S as se, l as te, t as ae, P as be, F as je, U as ye, m as we, n as Ie } from "./analytics-C12NIfpF.js";
1
+ import { k as e, h as A, D as G, d as ee, j as z, c as fe, u as ne, L as W, S as se, l as te, t as ae, P as be, F as je, U as ye, m as we, n as Ie } from "./analytics-Ctu2CtEu.js";
2
2
  import { useRef as y, useState as F, useEffect as k, useCallback as K } from "react";
3
3
  import { UserReviewsSection as ve, FAQAccordion as ke, ContactUsSection as Ne, FooterShell as Pe, FooterCTAButton as Ce, CircularMarquee as Le, footerShellStyles as O } from "@srimandir/astrology-common";
4
4
  const Te = "_container_nm3gb_1", Se = "_main_nm3gb_6", Re = "_langDropdownWrap_nm3gb_12", $e = "_langTrigger_nm3gb_16", Ee = "_langIcon_nm3gb_28", Fe = "_langLabel_nm3gb_35", De = "_langMenu_nm3gb_40", Oe = "_langOption_nm3gb_46", D = {
@@ -1185,4 +1185,4 @@ export {
1185
1185
  _s as b,
1186
1186
  Rs as c
1187
1187
  };
1188
- //# sourceMappingURL=criticalCss-DK8ZiV2R.js.map
1188
+ //# sourceMappingURL=criticalCss-CMDWZ2jr.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"criticalCss-DK8ZiV2R.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/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 </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\";\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 (749 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 /** Google Maps API key for birth place autocomplete */\n googleMapsApiKey?: 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 googleMapsApiKey,\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 googleMapsApiKey={googleMapsApiKey}\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","import React, { 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 { PlanGuidanceId } from \"../../utils/Stringconstant\";\n\nconst GLOBE_ICON_URL = \"https://srm-cdn.a4b.io/yoda/1770362713543.svg\";\nconst INLINE_FORM_IMAGE_URL = \"https://srm-cdn.a4b.io/yoda/1772535341508.webp\";\nconst INLINE_FORM_IMAGE_URL_HI = \"https://srm-cdn.a4b.io/yoda/1772539990131.webp\";\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\";\n\nimport type { KundliFormValues } from \"../KundliForm\";\nimport type { KundliAnalytics } from \"../../analytics\";\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 (749 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 /** Google Maps API key for birth place autocomplete */\n googleMapsApiKey?: 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 return <KundliPageContent className={className} showInlineForm />;\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}: {\n className: string;\n showInlineForm?: boolean;\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 | null>(null);\n const pendingValuesRef = useRef<KundliFormValues | null>(null);\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 };\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 const t = (key: string) => tFromLocale(locale, key);\n const inlineFormImageUrl =\n locale === \"hi\" ? INLINE_FORM_IMAGE_URL_HI : INLINE_FORM_IMAGE_URL;\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 const focusInlineFormFirstField = useCallback(() => {\n focusMissingField(\"fullName\");\n }, [focusMissingField]);\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 <ViewSampleReportButton\n t={t}\n pdfUrl={config.sampleReportHref}\n onClick={config.onViewSampleReport}\n analytics={config.analytics}\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 discountPillLabel={config.discountPillLabel}\n analytics={config.analytics}\n className={styles.inlineProceedFooter}\n onProceedGuidance={config.onProceedGuidance}\n showPlanSheet={showPlanSheet}\n confirmPlan={confirmPlan}\n planSheetOpen={planSheetOpen}\n selectedPlan={selectedPlan}\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 <KundliPlanBottomSheet\n isOpen={planSheetOpen}\n onClose={() => setPlanSheetOpen(false)}\n selectedPlan={selectedPlan}\n onSelectPlan={setSelectedPlan}\n onProceed={(plan) => {\n confirmPlan?.(plan);\n }}\n t={t}\n analytics={config.analytics}\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 googleMapsApiKey,\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 googleMapsApiKey={googleMapsApiKey}\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","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","t","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","showLanguageSelector","languageSelector","o","LOCALE_LABELS","SUPPORTED_LOCALES","loc","handleCtaClick","ctaText","handleSectionImpression","useCallback","KundliHeader","u","KundliPage","localeProp","showSheet","userId","googleMapsApiKey","universityLogoUrls","sampleReportHref","onViewSampleReport","readMoreReviewsHref","onProceed","onProceedGuidance","proceedHref","originalPriceLabel","discountedPriceLabel","discountPillLabel","onLocaleChange","KundliProvider","showInlineForm","formValues","setFormValues","planSheetOpen","setPlanSheetOpen","selectedPlan","setSelectedPlan","pendingValuesRef","showPlanSheet","values","confirmPlan","merged","PlanGuidanceId","phoneIsdCode","setPhoneIsdCode","inlineFormRef","focusMissingField","field","targetId","targetEl","targetY","FormHeader","UserInfoFormSection","ProceedFooter","KundliPlanBottomSheet","plan","KundliPageV1","variant","props","variantFromUrl","KundliPageDefault","KUNDLI_CRITICAL_CSS"],"mappings":";;;;;;;;;;;;;;;;;;GAGMA,KAAa;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAOaC,KAA0C,CAAC,EAAE,GAAAC,GAAG,WAAAC,IAAY,SAErEC,gBAAAA,EAAAA,KAAC,WAAA,EAAQ,WAAW,GAAGC,EAAO,IAAI,IAAIF,CAAS,IAAI,mBAAgB,cACjE,UAAA;AAAA,EAAAG,gBAAAA,EAAAA,IAAC,MAAA,EAAG,IAAG,cAAa,WAAWD,EAAO,OACnC,UAAAH,EAAE,WAAW,EAAA,CAChB;AAAA,wBACC,KAAA,EAAE,WAAWG,EAAO,UAAW,UAAAH,EAAE,cAAc,GAAE;AAAA,EAClDI,gBAAAA,EAAAA,IAAC,SAAI,WAAWD,EAAO,WAAW,MAAK,QACpC,UAAAL,GAAW,IAAI,CAACO,4BACd,QAAA,EAAe,WAAWF,EAAO,KAAK,MAAK,YACzC,YAAEE,CAAG,KADGA,CAEX,CACD,EAAA,CACH;AAAA,GACF;;;;;;;;;;;;;;;GC3BEC,KAAyB,iDAOlBC,KACX,kDAEIC,KAAW;AAAA,EACf;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAeMC,KACJ,kDAEWC,KAA8D,CAAC;AAAA,EAC1E,GAAAV;AAAA,EACA,gBAAAW,IAAiBF;AAAA,EACjB,qBAAAG;AAAA,EACA,yBAAAC,IAA0B;AAAA,EAC1B,WAAAC;AAAA,EACA,WAAAb,IAAY;AACd,MAAkC;AAEhC,QAAMc,IADYC,EAAA,GACK,OAAO,kBAAkBC,GAE1CC,IAAc,MAAM;AACxB,IAAAJ,GAAW,qBAAA;AAAA,EACb;AAEA,SACEZ,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,GAAGC,EAAO,OAAO,IAAIF,CAAS;AAAA,MACzC,mBAAgB;AAAA,MAChB,MAAK;AAAA,MACL,UAAU;AAAA,MACV,SAASiB;AAAA,MACT,aAAS;AAAA,MAET,UAAA;AAAA,QAAAd,gBAAAA,EAAAA,IAAC,SAAI,WAAWD,EAAO,iBAAiB,eAAW,IAAC,yBAAqB,IACvE,UAAAC,gBAAAA,EAAAA;AAAAA,UAACW;AAAA,UAAA;AAAA,YACC,KAAKR;AAAA,YACL,KAAI;AAAA,YACJ,WAAWJ,EAAO;AAAA,YAClB,OAAO;AAAA,YACP,QAAQ;AAAA,YACR,OAAM;AAAA,YACN,SAAQ;AAAA,YACR,UAAUU;AAAA,YACV,eAAc;AAAA,UAAA;AAAA,QAAA,GAElB;AAAA,QACAX,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAWC,EAAO,OACrB,UAAA;AAAA,UAAAD,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAWC,EAAO,SACrB,UAAA;AAAA,YAAAD,gBAAAA,OAAC,MAAA,EAAG,IAAG,oBAAmB,WAAWC,EAAO,UAC1C,UAAA;AAAA,cAAAD,gBAAAA,EAAAA,KAAC,QAAA,EAAK,WAAWC,EAAO,cACtB,UAAA;AAAA,gBAAAC,gBAAAA,MAAC,UAAK,WAAWD,EAAO,cAAe,UAAAH,EAAE,sBAAsB,GAAE;AAAA,sCAChE,QAAA,EAAK,WAAWG,EAAO,eAAgB,UAAAH,EAAE,uBAAuB,EAAA,CAAE;AAAA,cAAA,GACrE;AAAA,cACAE,gBAAAA,EAAAA,KAAC,QAAA,EAAK,WAAWC,EAAO,cACtB,UAAA;AAAA,gBAAAC,gBAAAA,MAAC,UAAK,WAAWD,EAAO,eAAgB,UAAAH,EAAE,uBAAuB,GAAE;AAAA,sCAClE,QAAA,EAAK,WAAWG,EAAO,cAAe,UAAAH,EAAE,sBAAsB,EAAA,CAAE;AAAA,cAAA,EAAA,CACnE;AAAA,YAAA,GACF;AAAA,YACAI,gBAAAA,EAAAA,IAAC,MAAA,EAAG,WAAWD,EAAO,aACnB,UAAAK,GAAS,IAAI,CAACH,MACbH,gBAAAA,EAAAA,KAAC,MAAA,EAAa,WAAWC,EAAO,aAC9B,UAAA;AAAA,cAAAC,gBAAAA,EAAAA;AAAAA,gBAACW;AAAA,gBAAA;AAAA,kBACC,KAAKT;AAAA,kBACL,KAAI;AAAA,kBACJ,WAAWH,EAAO;AAAA,kBAClB,OAAO;AAAA,kBACP,QAAQ;AAAA,kBACR,SAAQ;AAAA,gBAAA;AAAA,cAAA;AAAA,cAETH,EAAEK,CAAG;AAAA,YAAA,EAAA,GATCA,CAUT,CACD,EAAA,CACH;AAAA,UAAA,GACF;AAAA,UACAD,gBAAAA,EAAAA,IAAC,OAAA,EAAI,WAAWD,EAAO,aACrB,UAAAC,gBAAAA,EAAAA;AAAAA,YAACW;AAAA,YAAA;AAAA,cACC,KAAKJ;AAAA,cACL,KAAI;AAAA,cACJ,WAAWR,EAAO;AAAA,cAClB,OAAO;AAAA,cACP,QAAQ;AAAA,cACR,UAAUS;AAAA,cACV,eAAeA,IAAsB,SAAS;AAAA,cAC9C,SAASA,IAAsB,UAAU;AAAA,cACzC,OAAM;AAAA,YAAA;AAAA,UAAA,EACR,CACF;AAAA,QAAA,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;;;;GC3GMO,KAAmB,kDAEZC,KAAkE,CAAC;AAAA,EAC9E,GAAApB;AAAA,EACA,SAAAqB,IAAUF;AAAA,EACV,WAAAlB,IAAY;AACd,MAAM;AAEJ,QAAMc,IADYC,EAAA,GACK,OAAO,kBAAkBC;AAEhD,SACEf,gBAAAA,EAAAA,KAAC,WAAA,EAAQ,WAAW,GAAGC,EAAO,OAAO,IAAIF,CAAS,IAAI,mBAAgB,qBACpE,UAAA;AAAA,IAAAG,gBAAAA,EAAAA,IAAC,MAAA,EAAG,IAAG,qBAAoB,WAAWD,EAAO,SAC1C,UAAAH,EAAE,aAAa,EAAA,CAClB;AAAA,IACAI,gBAAAA,EAAAA;AAAAA,MAACW;AAAA,MAAA;AAAA,QACC,KAAKM;AAAA,QACL,KAAI;AAAA,QACJ,WAAWlB,EAAO;AAAA,QAClB,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,SAAQ;AAAA,MAAA;AAAA,IAAA;AAAA,EACV,GACF;AAEJ;;;;;;;;;GClCMmB,KAAY,CAAC,SAAS,OAAO,GAUtBC,KAAsD,CAAC;AAAA,EAClE,GAAAvB;AAAA,EACA,QAAAwB,IAAS;AAAA,EACT,UAAAC,IAAW;AAAA,EACX,WAAAxB,IAAY;AACd,MAAM;AACJ,QAAMyB,IAAgBD,IAAW,qBAAqB;AACtD,SACEvB,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,GAAGC,EAAO,OAAO,IAAIF,CAAS;AAAA,MACzC,mBAAgB;AAAA,MAEhB,UAAA;AAAA,QAAAG,gBAAAA,MAAC,OAAE,WAAWD,EAAO,SAAU,UAAAH,EAAE,gBAAgB,GAAE;AAAA,QACnDI,gBAAAA,EAAAA,IAAC,QAAG,IAAG,iBAAgB,WAAWD,EAAO,UACtC,UAAAH,EAAE,oBAAoB,EAAA,CACzB;AAAA,QACAE,gBAAAA,EAAAA,KAAC,MAAA,EAAG,WAAWC,EAAO,UACnB,UAAA;AAAA,UAAAmB,GAAU,IAAI,CAACjB,GAAKsB,6BAClB,MAAA,EAAa,WAAWxB,EAAO,UAC9B,UAAA;AAAA,YAAAC,gBAAAA,EAAAA,IAAC,UAAK,WAAWD,EAAO,YAAY,eAAW,IAC5C,cAAQ,EAAA,CACX;AAAA,kCACC,QAAA,EAAK,WAAWA,EAAO,UAAW,UAAAH,EAAEK,CAAG,EAAA,CAAE;AAAA,UAAA,EAAA,GAJnCA,CAKT,CACD;AAAA,UACDH,gBAAAA,EAAAA,KAAC,MAAA,EAAG,WAAWC,EAAO,UACpB,UAAA;AAAA,YAAAC,gBAAAA,MAAC,UAAK,WAAWD,EAAO,YAAY,eAAW,IAAC,UAAA,KAEhD;AAAA,YACAD,gBAAAA,EAAAA,KAAC,QAAA,EAAK,WAAWC,EAAO,UACrB,UAAA;AAAA,cAAAH,EAAE0B,CAAa;AAAA,oCACf,MAAA,EAAG;AAAA,cACHF,MAAW,OACVtB,gBAAAA,EAAAA,KAAA0B,EAAAA,UAAA,EAAE,UAAA;AAAA,gBAAA;AAAA,sCACI,UAAA,EAAO,WAAWzB,EAAO,WAAY,UAAAH,EAAE,WAAW,EAAA,CAAE;AAAA,cAAA,EAAA,CAC1D,0BAEC,UAAA,EAAO,WAAWG,EAAO,WAAY,UAAAH,EAAE,WAAW,EAAA,CAAE;AAAA,YAAA,EAAA,CAEzD;AAAA,UAAA,EAAA,CACF;AAAA,QAAA,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;;;;;;;;;;;;;;;ACnDA,SAAS6B,GAAgBC,GAA0B;AACjD,EACE,OAAOA,IAAa,OACpBA,EAAS,wBAETA,EAAS,oBAAoB,YAAY,gCAAgCA,EAAS,OAAO;AAE7F;AASO,MAAMC,KAAgD,CAAC;AAAA,EAC5D,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AACF,MAAM;AACJ,QAAMC,IAAWC,EAAuB,IAAI,GACtC,CAACC,GAASC,CAAU,IAAIC,EAAS,EAAI,GACrC,CAACC,GAAOC,CAAQ,IAAIF,EAAwB,IAAI,GAChD,CAACV,GAAUa,CAAW,IAAIH,EAA0B,IAAI;AA0E9D,SAxEAI,EAAU,MAAM;AACd,QAAI,CAACZ,EAAQ;AACb,UAAMa,IAAe,CAACC,MAAqB;AACzC,MAAIA,EAAE,QAAQ,YAAUb,EAAA;AAAA,IAC1B;AACA,oBAAS,iBAAiB,WAAWY,CAAY,GACjD,SAAS,KAAK,MAAM,WAAW,UACxB,MAAM;AACX,eAAS,oBAAoB,WAAWA,CAAY,GACpD,SAAS,KAAK,MAAM,WAAW;AAAA,IACjC;AAAA,EACF,GAAG,CAACb,GAAQC,CAAO,CAAC,GAGpBW,EAAU,MAAM;AACd,IAAKZ,KAGL,OAAO,YAAY,EAAE,KAAK,CAACe,MAAQ;AACjC,MAAAJ,EAAYI,CAAG;AAAA,IACjB,CAAC,EAAE,MAAM,CAACC,MAAQ;AAChB,MAAAN,EAAS,2BAA2B,GACpCH,EAAW,EAAK;AAAA,IAClB,CAAC;AAAA,EACH,GAAG,CAACP,CAAM,CAAC,GAEXY,EAAU,MAAM;AACd,QAAI,CAACZ,KAAU,CAACG,KAAU,CAACC,EAAS,WAAW,CAACN,EAAU;AAE1D,IAAAS,EAAW,EAAI,GACfG,EAAS,IAAI,GACbN,EAAS,QAAQ,YAAY,KAEX,YAAY;AAC5B,UAAI;AACF,QAAAP,GAAgBC,CAAQ;AAExB,cAAMmB,IAAM,MADQnB,EAAS,YAAY,EAAE,KAAKK,GAAQ,EAC1B,SAExBe,IAAYd,EAAS;AAC3B,YAAI,CAACc,EAAW;AAEhB,cAAMC,IAAYD,EAAU,eAAe,KACrCE,IAAQ,KAAK,IAAID,IAAY,KAAK,CAAC;AAEzC,iBAASE,IAAI,GAAGA,KAAKJ,EAAI,UAAUI,KAAK;AACtC,gBAAMC,IAAO,MAAML,EAAI,QAAQI,CAAC,GAC1BE,IAAWD,EAAK,YAAY,EAAE,OAAAF,GAAO,GAErCI,IAAS,SAAS,cAAc,QAAQ;AAC9C,UAAAA,EAAO,SAASD,EAAS,QACzBC,EAAO,QAAQD,EAAS,OACxBC,EAAO,MAAM,UAAU,SACvBA,EAAO,MAAM,SAAS,eACtBA,EAAO,MAAM,WAAW;AAExB,gBAAMC,IAAMD,EAAO,WAAW,IAAI;AAClC,UAAIC,KACF,MAAMH,EAAK,OAAO,EAAE,eAAeG,GAAK,UAAAF,EAAA,CAAU,EAAE,SAEtDL,EAAU,YAAYM,CAAM;AAAA,QAC9B;AAAA,MACF,SAASR,GAAK;AACZ,QAAAN,EAASM,aAAe,QAAQA,EAAI,UAAU,oBAAoB;AAAA,MACpE,UAAA;AACE,QAAAT,EAAW,EAAK;AAAA,MAClB;AAAA,IACF,GAEA;AAAA,EACF,GAAG,CAACP,GAAQG,GAAQL,CAAQ,CAAC,GAExBE,IAGH5B,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWD,EAAO;AAAA,MAClB,SAAS8B;AAAA,MACT,MAAK;AAAA,MACL,cAAW;AAAA,MACX,mBAAgB;AAAA,MAEhB,UAAA/B,gBAAAA,EAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWC,EAAO;AAAA,UAClB,SAAS,CAAC2C,MAAMA,EAAE,gBAAA;AAAA,UAElB,UAAA;AAAA,YAAA5C,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAWC,EAAO,QACrB,UAAA;AAAA,cAAAC,gBAAAA,MAAC,QAAG,IAAG,6BAA4B,WAAWD,EAAO,OAClD,UAAA+B,GACH;AAAA,cACA9B,gBAAAA,EAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,MAAK;AAAA,kBACL,WAAWD,EAAO;AAAA,kBAClB,SAAS8B;AAAA,kBACT,cAAW;AAAA,kBACZ,UAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,YAED,GACF;AAAA,YACA/B,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAWC,EAAO,SACrB,UAAA;AAAA,cAAAD,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAWC,EAAO,UACpB,UAAA;AAAA,gBAAAsC,KACCvC,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAWC,EAAO,UACrB,UAAA;AAAA,kBAAAC,gBAAAA,EAAAA,IAAC,UAAM,UAAAqC,EAAA,CAAM;AAAA,kBACbrC,gBAAAA,EAAAA,IAAC,OAAE,MAAM+B,GAAQ,QAAO,UAAS,KAAI,uBAAsB,UAAA,0BAAA,CAE3D;AAAA,gBAAA,GACF;AAAA,sCAED,OAAA,EAAI,KAAKC,GAAU,WAAWjC,EAAO,SAAA,CAAU;AAAA,cAAA,GAClD;AAAA,cACAC,gBAAAA,EAAAA;AAAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,MAAM+B;AAAA,kBACN,QAAO;AAAA,kBACP,KAAI;AAAA,kBACJ,WAAWhC,EAAO;AAAA,kBACnB,UAAA;AAAA,gBAAA;AAAA,cAAA;AAAA,YAED,EAAA,CACF;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA,IAhDgB;AAmDtB,GCvJMuD,KAAkB,iDAeXC,KAAgE,CAAC;AAAA,EAC5E,GAAA3D;AAAA,EACA,QAAAmC,IAASuB;AAAA,EACT,SAAAE;AAAA,EACA,WAAA9C;AAAA,EACA,WAAAb,IAAY;AACd,MAAM;AACJ,QAAM,CAAC4D,GAAWC,CAAY,IAAItB,EAAS,EAAK,GAC1CuB,IAAQ/D,EAAE,kBAAkB,GAC5BkC,IAAQlC,EAAE,wBAAwB,GAElCkB,IAAc,MAAM;AACxB,IAAAJ,GAAW,+BAAA,GACX8C,IAAA,GACAE,EAAa,EAAI;AAAA,EACnB,GAEME,IAAc,MAAM;AACxB,IAAAlD,GAAW,8BAAA,GACXgD,EAAa,EAAK;AAAA,EACpB;AAEA,SACE5D,gBAAAA,OAAC,aAAQ,WAAW,GAAGC,EAAO,OAAO,IAAIF,CAAS,IAChD,UAAA;AAAA,IAAAG,gBAAAA,EAAAA,IAAC,UAAA,EAAO,MAAK,UAAS,WAAWD,EAAO,QAAQ,SAASe,GACtD,UAAA6C,EAAA,CACH;AAAA,IACA3D,gBAAAA,EAAAA;AAAAA,MAAC2B;AAAA,MAAA;AAAA,QACC,QAAQ8B;AAAA,QACR,SAASG;AAAA,QACT,OAAA9B;AAAA,QACA,QAAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;;;;;;;;;;;GClDM8B,KAAiD;AAAA,EACrD,EAAE,UAAU,aAAa,SAAS,gBAAA;AAAA,EAClC,EAAE,UAAU,YAAY,SAAS,eAAA;AAAA,EACjC,EAAE,UAAU,gBAAgB,SAAS,mBAAA;AAAA,EACrC,EAAE,UAAU,aAAa,SAAS,gBAAA;AAAA,EAClC,EAAE,UAAU,eAAe,SAAS,kBAAA;AAAA,EACpC,EAAE,UAAU,gBAAgB,SAAS,mBAAA;AACvC,GAEMC,KAAqB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GASaC,KAA4D,CAAC;AAAA,EACxE,GAAAnE;AAAA,EACA,WAAAoE,IAAYF;AAAA,EACZ,WAAAjE,IAAY;AACd,MAAM;AAEJ,QAAMc,IADYC,EAAA,GACK,OAAO,kBAAkBC;AAEhD,SACEf,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,GAAGC,EAAO,OAAO,IAAIF,CAAS;AAAA,MACzC,mBAAgB;AAAA,MAEhB,UAAA;AAAA,QAAAG,gBAAAA,EAAAA,IAAC,MAAA,EAAG,IAAG,gBAAe,WAAWD,EAAO,SACrC,UAAAH,EAAE,oBAAoB,EAAA,CACzB;AAAA,QACAI,gBAAAA,EAAAA,IAAC,MAAA,EAAG,WAAWD,EAAO,MACnB,UAAA8D,GAAM,IAAI,CAACI,GAAM1C,MAChBzB,gBAAAA,EAAAA,KAAC,MAAA,EAAuB,WAAWC,EAAO,MACxC,UAAA;AAAA,UAAAC,gBAAAA,MAAC,SAAI,WAAWD,EAAO,WACpB,UAAAiE,EAAUzC,CAAK,IACdvB,gBAAAA,EAAAA;AAAAA,YAACW;AAAA,YAAA;AAAA,cACC,KAAKqD,EAAUzC,CAAK;AAAA,cACpB,KAAI;AAAA,cACJ,WAAWxB,EAAO;AAAA,cAClB,OAAO;AAAA,cACP,QAAQ;AAAA,cACR,SAAQ;AAAA,cACR,OAAM;AAAA,YAAA;AAAA,UAAA,0BAGP,OAAA,EAAI,WAAWA,EAAO,kBAAkB,eAAW,IAAC,GAEzD;AAAA,UACAD,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAWC,EAAO,MACrB,UAAA;AAAA,YAAAC,gBAAAA,EAAAA,IAAC,QAAG,WAAWD,EAAO,WAAY,UAAAH,EAAEqE,EAAK,QAAQ,GAAE;AAAA,YACnDjE,gBAAAA,MAAC,OAAE,WAAWD,EAAO,UAAW,UAAAH,EAAEqE,EAAK,OAAO,EAAA,CAAE;AAAA,UAAA,EAAA,CAClD;AAAA,QAAA,KAnBOA,EAAK,QAoBd,CACD,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;;;;;;GCtEMC,KAAU,CAAC,UAAU,UAAU,UAAU,QAAQ,GAO1CC,KAA4C,CAAC,EAAE,GAAAvE,GAAG,WAAAC,IAAY,SAEvEC,gBAAAA,EAAAA,KAAC,WAAA,EAAQ,WAAW,GAAGC,EAAO,OAAO,IAAIF,CAAS,IAAI,mBAAgB,eACpE,UAAA;AAAA,EAAAG,gBAAAA,EAAAA,IAAC,MAAA,EAAG,IAAG,eAAc,WAAWD,EAAO,SACpC,UAAAH,EAAE,YAAY,EAAA,CACjB;AAAA,wBACC,KAAA,EAAE,WAAWG,EAAO,UAAW,UAAAH,EAAE,eAAe,GAAE;AAAA,wBAClD,MAAA,EAAG,WAAWG,EAAO,MACnB,UAAAmE,GAAQ,IAAI,CAACjE,4BACX,MAAA,EAAa,WAAWF,EAAO,MAC7B,UAAAH,EAAEK,CAAG,EAAA,GADCA,CAET,CACD,EAAA,CACH;AAAA,GACF;;GCRSmE,KAA4C,CAAC;AAAA,EACxD,GAAAxE;AAAA,EACA,cAAAyE;AAAA,EACA,cAAAC;AAAA,EACA,YAAAC;AAAA,EACA,WAAA1E,IAAY;AAAA,EACZ,kBAAA2E,IAAmBzE,GAAO;AAC5B,MAEIC,gBAAAA,EAAAA;AAAAA,EAACyE;AAAA,EAAA;AAAA,IACC,GAAA7E;AAAA,IACA,cAAAyE;AAAA,IACA,cAAAC;AAAA,IACA,YAAAC;AAAA,IACA,WAAA1E;AAAA,IACA,kBAAA2E;AAAA,EAAA;AAAA;;GC1BAE,KAA8C;AAAA,EAClD,EAAE,MAAM,SAAS,MAAM,QAAA;AAAA,EACvB,EAAE,MAAM,SAAS,MAAM,QAAA;AACzB,GASaC,KAAkC,CAAC;AAAA,EAC9C,GAAA/E;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,kBAAA2E,IAAmBzE,GAAO;AAC5B,MAAM;AAEJ,QAAMsB,IADYT,EAAA,GACU,OAAO,YAAY,IAEzCgE,IAAmB,CAACC,MACpBA,MAAS,UACJxD,IAAW,gBAAgB,kBAE7BwD;AAGT,SACE7E,gBAAAA,EAAAA;AAAAA,IAAC8E;AAAA,IAAA;AAAA,MACC,GAAAlF;AAAA,MACA,OAAO8E;AAAA,MACP,kBAAAE;AAAA,MACA,kBAAkB;AAAA,MAClB,WAAA/E;AAAA,MACA,kBAAA2E;AAAA,IAAA;AAAA,EAAA;AAGN,GCtCMO,IAA0B,cAC1BC,IAA4B,eAC5BC,IAAgB,8BAWTC,KAAoD,CAAC;AAAA,EAChE,GAAAtF;AAAA,EACA,gBAAAuF;AAAA,EACA,kBAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,WAAAzF,IAAY;AACd,MAAM;AAEJ,QAAMwB,IADYT,EAAA,GACU,OAAO,YAAY,IAEzC2E,IAAYJ,KAAkBJ,GAC9BS,IAAcJ,KAAoBJ,GAClCS,IAAWJ,KAASJ,GAEpBS,IAAerE,IACjBzB,EAAE,uBAAuB,EAAE,QAAQmF,GAAyBQ,CAAS,IACrE3F,EAAE,yBAAyB,EAAE,QAAQoF,GAA2BQ,CAAW,GAEzEG,IAAY/F,EAAE,cAAc,EAAE,QAAQqF,GAAeQ,CAAQ;AAEnE,SACEzF,gBAAAA,EAAAA;AAAAA,IAAC4F;AAAAA,IAAA;AAAA,MACC,OAAOhG,EAAE,cAAc;AAAA,MACvB,WAAW0F,KAAa1F,EAAE,kBAAkB;AAAA,MAC5C,cAAA8F;AAAA,MACA,WAAAC;AAAA,MACA,WAAA9F;AAAA,IAAA;AAAA,EAAA;AAGN,GCrCMgG,KAAsB,iDACtBC,KAAiB,iDACjBC,KAAsB,iDAcfC,KAA2D,CAAC,EAAE,GAAApG,QAAQ;AAEjF,QAAMe,IADYC,EAAA,GACK,OAAO,kBAAkBC;AAChD,SACEf,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAWmG,EAAkB,gBAChC,UAAA;AAAA,IAAAnG,gBAAAA,EAAAA,KAAC,QAAA,EAAK,WAAWmG,EAAkB,OACjC,UAAA;AAAA,MAAAjG,gBAAAA,EAAAA,IAACW,GAAA,EAAI,KAAKkF,IAAqB,KAAI,IAAG,WAAWI,EAAkB,WAAW,OAAO,IAAI,QAAQ,IAAI,SAAQ,QAAO;AAAA,MACnHrG,EAAE,kBAAkB;AAAA,IAAA,GACvB;AAAA,IACAE,gBAAAA,EAAAA,KAAC,QAAA,EAAK,WAAWmG,EAAkB,OACjC,UAAA;AAAA,MAAAjG,gBAAAA,EAAAA,IAACW,GAAA,EAAI,KAAKmF,IAAgB,KAAI,IAAG,WAAWG,EAAkB,WAAW,OAAO,IAAI,QAAQ,IAAI,SAAQ,QAAO;AAAA,MAC9GrG,EAAE,cAAc;AAAA,IAAA,GACnB;AAAA,IACAE,gBAAAA,EAAAA,KAAC,QAAA,EAAK,WAAWmG,EAAkB,OACjC,UAAA;AAAA,MAAAjG,gBAAAA,EAAAA,IAACW,GAAA,EAAI,KAAKoF,IAAqB,KAAI,IAAG,WAAWE,EAAkB,WAAW,OAAO,IAAI,QAAQ,IAAI,SAAQ,QAAO;AAAA,MACnHrG,EAAE,kBAAkB;AAAA,IAAA,EAAA,CACvB;AAAA,EAAA,GACF;AAEJ,GAEasG,KAAsC,CAAC;AAAA,EAClD,GAAAtG;AAAA,EACA,YAAAuG;AAAA,EACA,SAAAC;AAAA,EACA,WAAAvG,IAAY;AACd,MAAM;AACJ,QAAMwG,IAAazG,EAAE,iBAAiB,EAAE,QAAQ,cAAc,EAAE;AAEhE,SACEI,gBAAAA,EAAAA;AAAAA,IAACsG;AAAA,IAAA;AAAA,MACC,WAAAzG;AAAA,MACA,SAASG,gBAAAA,EAAAA,IAACuG,IAAA,EAAgB,UAAAvG,gBAAAA,EAAAA,IAACgG,IAAA,EAAe,GAAApG,GAAM,GAAE;AAAA,MAElD,gCAAC4G,IAAA,EAAgB,MAAMJ,GAAS,SAASD,GACtC,UAAAE,EAAA,CACH;AAAA,IAAA;AAAA,EAAA;AAGN,GCpDMI,KAAiB,iDAoEjBC,KAAc,CAACtF,GAAyBnB,MAC5C0G,GAAavF,CAAM,IAAInB,CAAG,KAAKA,GAG3B2G,KAAuB;AAG7B,SAASC,EAAsB;AAAA,EAC7B,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,cAAAC;AACF,GAIG;AACD,QAAMC,IAAMhF,EAAuB,IAAI,GACjCiF,IAAWjF,EAAO,EAAK;AAC7B,SAAAO,EAAU,MAAM;AACd,UAAM2E,IAAKF,EAAI;AACf,QAAI,CAACE,EAAI;AACT,UAAMC,IAAW,IAAI;AAAA,MACnB,CAAC,CAACC,CAAK,MAAM;AACX,QAAI,CAACA,GAAO,kBAAkBH,EAAS,YACvCA,EAAS,UAAU,IACnBF,EAAaF,CAAO;AAAA,MACtB;AAAA,MACA;AAAA,QACE,WAAW;AAAA;AAAA,QAEX,YAAY,YAAYF,EAAoB;AAAA,MAAA;AAAA,IAC9C;AAEF,WAAAQ,EAAS,QAAQD,CAAE,GACZ,MAAMC,EAAS,WAAA;AAAA,EACxB,GAAG,CAACN,GAASE,CAAY,CAAC,GACnBhH,gBAAAA,EAAAA,IAAC,OAAA,EAAI,KAAAiH,GAAW,UAAAF,EAAA,CAAS;AAClC;AAGA,SAASO,GAAiB,EAAE,WAAAzH,KAAoC;AAC9D,QAAM,EAAE,MAAA0H,EAAA,IAASC,EAAA;AACjB,SAAID,MAAS,+BACHE,IAAA,EAAW,IAEdzH,gBAAAA,MAAC0H,MAAkB,WAAA7H,GAAsB;AAClD;AAGA,SAAS6H,GAAkB,EAAE,WAAA7H,KAAoC;AAC/D,QAAM8H,IAAOC,GAAA,GACP;AAAA,IACJ,QAAAxG;AAAA,IACA,WAAAyG;AAAA,IACA,QAAAC;AAAA,IACA,UAAAC;AAAA,EAAA,IACEP,EAAA,GAEE,CAACQ,GAAUC,CAAW,IAAI7F,EAAS,EAAK,GACxC8F,IAAUjG,EAAuB,IAAI,GACrCkG,IAAoBlG,EAAoC6F,EAAO,MAAM,GACrEM,IAAwBnG;AAAA,IAC5B0F,GAAM;AAAA,EAAA;AAGR,EAAAnF,EAAU,MAAM;AACd,IAAIsF,EAAO,UAAUK,EAAkB,YAAYL,EAAO,UACxDD,EAAUC,EAAO,MAAM,GAEzBK,EAAkB,UAAUL,EAAO;AAAA,EACrC,GAAG,CAACA,EAAO,QAAQD,CAAS,CAAC,GAE7BrF,EAAU,MAAM;AACd,QAAIsF,EAAO,OAAQ;AACnB,UAAMO,IAAiBV,GAAM;AAC7B,IAAIU,KAAkBD,EAAsB,YAAYC,KACtDR,EAAUQ,CAAc,GAE1BD,EAAsB,UAAUC;AAAA,EAClC,GAAG,CAACV,GAAM,QAAQG,EAAO,QAAQD,CAAS,CAAC,GAE3CrF,EAAU,MAAM;AACd,QAAI,CAACwF,EAAU;AACf,UAAMM,IAAqB,CAAC5F,MAAkB;AAC5C,MAAIwF,EAAQ,WAAW,CAACA,EAAQ,QAAQ,SAASxF,EAAE,MAAc,KAC/DuF,EAAY,EAAK;AAAA,IAErB;AACA,oBAAS,iBAAiB,aAAaK,CAAkB,GAClD,MAAM,SAAS,oBAAoB,aAAaA,CAAkB;AAAA,EAC3E,GAAG,CAACN,CAAQ,CAAC;AAEb,QAAMpI,IAAI,CAACK,MAAgByG,GAAYtF,GAAQnB,CAAG,GAC5CsI,IAAuBT,EAAO,wBAAwB,IACtDnH,IAAMmH,EAAO,kBAAkBjH,GAE/B2H,IAAmBD,IACvBzI,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAWC,EAAO,kBAAkB,KAAKmI,GAC5C,UAAA;AAAA,IAAApI,gBAAAA,EAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAWC,EAAO;AAAA,QAClB,SAAS,MAAM;AACb,UAAA+H,EAAO,WAAW,yBAAyB,EAAE,UAAU1G,GAAQ,GAC/D6G,EAAY,CAACQ,MAAM,CAACA,CAAC;AAAA,QACvB;AAAA,QACA,iBAAeT;AAAA,QACf,iBAAc;AAAA,QACd,IAAG;AAAA,QACH,cAAYpI,EAAE,UAAU;AAAA,QAExB,UAAA;AAAA,UAAAI,gBAAAA,EAAAA;AAAAA,YAACW;AAAA,YAAA;AAAA,cACC,KAAK8F;AAAAA,cACL,KAAI;AAAA,cACJ,WAAW1G,EAAO;AAAA,cAClB,OAAO;AAAA,cACP,QAAQ;AAAA,cACR,SAAQ;AAAA,YAAA;AAAA,UAAA;AAAA,gCAET,QAAA,EAAK,WAAWA,EAAO,WAAY,UAAA2I,EAActH,CAAM,EAAA,CAAE;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAE3D4G,KACChI,gBAAAA,EAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWD,EAAO;AAAA,QAClB,MAAK;AAAA,QACL,mBAAgB;AAAA,QAChB,yBAAuB,sBAAsBqB,CAAM;AAAA,QAElD,UAAAuH,GAAkB,IAAI,CAACC,MACtB5I,gBAAAA,EAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YAEC,IAAI,sBAAsB4I,CAAG;AAAA,YAC7B,MAAK;AAAA,YACL,iBAAeA,MAAQxH;AAAA,YACvB,WAAWrB,EAAO;AAAA,YAClB,SAAS,MAAM;AACb,cAAA+H,EAAO,WAAW,yBAAyB,EAAE,aAAac,GAAK,GAC/Df,EAAUe,CAAG,GACbX,EAAY,EAAK;AAAA,YACnB;AAAA,YAEC,YAAcW,CAAG;AAAA,UAAA;AAAA,UAXbA;AAAA,QAAA,CAaR;AAAA,MAAA;AAAA,IAAA;AAAA,EACH,EAAA,CAEJ,IACE,MAEEC,IAAiB,CAACnG,MAAqC;AAC3D,UAAMoG,IACHpG,EAAE,cAA8B,WAAW,KAAA,KAAU9C,EAAE,gBAAgB;AAC1E,IAAAkI,EAAO,WAAW,2BAA2B,EAAE,SAAAgB,EAAA,CAAS,GACxDf,EAAA,GACAD,EAAO,aAAA;AAAA,EACT,GAEMiB,IAA0BC;AAAA,IAC9B,CAAClC,MAAoB;AACnB,MAAAgB,EAAO,WAAW,wCAAwC;AAAA,QACxD,SAAAhB;AAAA,QACA,YAAW,oBAAI,KAAA,GAAO,YAAA;AAAA,MAAY,CACnC;AAAA,IACH;AAAA,IACA,CAACgB,EAAO,SAAS;AAAA,EAAA;AAGnB,SACEhI,gBAAAA,OAAC,SAAI,WAAW,GAAGC,EAAO,SAAS,IAAIF,CAAS,IAC9C,UAAA;AAAA,IAAAG,gBAAAA,EAAAA;AAAAA,MAACiJ;AAAA,MAAA;AAAA,QACC,GAAArJ;AAAA,QACA,SAASkI,EAAO;AAAA,QAChB,kBAAAU;AAAA,MAAA;AAAA,IAAA;AAAA,IAEF1I,gBAAAA,EAAAA,KAAC,QAAA,EAAK,WAAWC,EAAO,MACtB,UAAA;AAAA,MAAAC,gBAAAA,EAAAA;AAAAA,QAAC6G;AAAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,cAAckC;AAAA,UAEd,UAAA/I,gBAAAA,EAAAA,IAACL,MAAY,GAAAC,EAAA,CAAM;AAAA,QAAA;AAAA,MAAA;AAAA,MAErBI,gBAAAA,EAAAA;AAAAA,QAAC6G;AAAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,cAAckC;AAAA,UAEd,UAAA/I,gBAAAA,EAAAA;AAAAA,YAACM;AAAA,YAAA;AAAA,cACC,GAAAV;AAAA,cACA,gBAAgBkI,EAAO;AAAA,cACvB,qBAAqBA,EAAO;AAAA,cAC5B,yBAAyBA,EAAO;AAAA,cAChC,WAAWA,EAAO;AAAA,YAAA;AAAA,UAAA;AAAA,QACpB;AAAA,MAAA;AAAA,MAEF9H,gBAAAA,EAAAA;AAAAA,QAAC6G;AAAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,cAAckC;AAAA,UAEd,UAAA/I,gBAAAA,EAAAA;AAAAA,YAACgB;AAAA,YAAA;AAAA,cACC,GAAApB;AAAA,cACA,SAASkI,EAAO,oBAAoB,KAAK,CAACoB,MAAmB,EAAQA,CAAE;AAAA,YAAA;AAAA,UAAA;AAAA,QACzE;AAAA,MAAA;AAAA,MAEFlJ,gBAAAA,EAAAA;AAAAA,QAAC6G;AAAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,cAAckC;AAAA,UAEd,gCAAC5H,IAAA,EAAkB,GAAAvB,GAAM,QAAAwB,GAAgB,UAAU0G,EAAO,SAAA,CAAU;AAAA,QAAA;AAAA,MAAA;AAAA,MAEtE9H,gBAAAA,EAAAA;AAAAA,QAAC6G;AAAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,cAAckC;AAAA,UAEd,UAAA/I,gBAAAA,EAAAA;AAAAA,YAACuD;AAAA,YAAA;AAAA,cACC,GAAA3D;AAAA,cACA,QAAQkI,EAAO;AAAA,cACf,SAASA,EAAO;AAAA,cAChB,WAAWA,EAAO;AAAA,YAAA;AAAA,UAAA;AAAA,QACpB;AAAA,MAAA;AAAA,MAEF9H,gBAAAA,EAAAA;AAAAA,QAAC6G;AAAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,cAAckC;AAAA,UAEd,UAAA/I,gBAAAA,EAAAA,IAAC+D,MAAqB,GAAAnE,EAAA,CAAM;AAAA,QAAA;AAAA,MAAA;AAAA,MAE9BI,gBAAAA,EAAAA;AAAAA,QAAC6G;AAAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,cAAckC;AAAA,UAEd,UAAA/I,gBAAAA,EAAAA,IAACmE,MAAa,GAAAvE,EAAA,CAAM;AAAA,QAAA;AAAA,MAAA;AAAA,MAEtBI,gBAAAA,EAAAA;AAAAA,QAAC6G;AAAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,cAAckC;AAAA,UAEd,UAAA/I,gBAAAA,EAAAA;AAAAA,YAACoE;AAAA,YAAA;AAAA,cACC,GAAAxE;AAAA,cACA,cAAckI,EAAO;AAAA,cACrB,YAAYA,EAAO,WAAW,8BAA8B,MAAMA,EAAO,UAAW,gCAAiC;AAAA,YAAA;AAAA,UAAA;AAAA,QACvH;AAAA,MAAA;AAAA,MAEF9H,gBAAAA,EAAAA;AAAAA,QAAC6G;AAAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,cAAckC;AAAA,UAEd,UAAA/I,gBAAAA,EAAAA,IAAC2E,MAAW,GAAA/E,EAAA,CAAM;AAAA,QAAA;AAAA,MAAA;AAAA,MAEpBI,gBAAAA,EAAAA;AAAAA,QAAC6G;AAAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,cAAckC;AAAA,UAEd,UAAA/I,gBAAAA,EAAAA,IAACkF,MAAiB,GAAAtF,EAAA,CAAM;AAAA,QAAA;AAAA,MAAA;AAAA,IAC1B,GACF;AAAA,IACAI,gBAAAA,EAAAA;AAAAA,MAACkG;AAAA,MAAA;AAAA,QACC,GAAAtG;AAAA,QACA,SAASkI,EAAO;AAAA,QAChB,YAAYA,EAAO,UAAU,SAAYe;AAAA,MAAA;AAAA,IAAA;AAAA,EAC3C,GACF;AAEJ;AAEO,MAAMM,KAAwC,CAAC;AAAA,EACpD,WAAAtJ,IAAY;AAAA,EACZ,QAAQuJ;AAAA,EACR,sBAAAb,IAAuB;AAAA,EACvB,WAAAc;AAAA,EACA,QAAAC;AAAA,EACA,UAAAjI;AAAA,EACA,kBAAAkI;AAAA,EACA,SAAAtI;AAAA,EACA,gBAAAV;AAAA,EACA,oBAAAiJ;AAAA,EACA,kBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,SAAAtD;AAAA,EACA,YAAAD;AAAA,EACA,qBAAAwD;AAAA,EACA,WAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,aAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,WAAAvJ;AAAA,EACA,gBAAAwJ;AACF,MAEIlK,gBAAAA,EAAAA;AAAAA,EAACmK;AAAA,EAAA;AAAA,IACC,QAAQf;AAAA,IACR,sBAAAb;AAAA,IACA,WAAAc;AAAA,IACA,QAAAC;AAAA,IACA,UAAAjI;AAAA,IACA,kBAAAkI;AAAA,IACA,SAAAtI;AAAA,IACA,gBAAAV;AAAA,IACA,oBAAAiJ;AAAA,IACA,kBAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,SAAAtD;AAAA,IACA,YAAAD;AAAA,IACA,qBAAAwD;AAAA,IACA,WAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,WAAAvJ;AAAA,IACA,gBAAAwJ;AAAA,IAEA,UAAAlK,gBAAAA,EAAAA,IAACsH,MAAiB,WAAAzH,EAAA,CAAsB;AAAA,EAAA;AAAA;;;;;;;;;;;GC3XxC4G,KAAiB,iDAmEjBC,KAAc,CAACtF,GAAyBnB,MAC5C0G,GAAavF,CAAM,IAAInB,CAAG,KAAKA,GAG3B2G,KAAuB;AAG7B,SAASC,EAAsB;AAAA,EAC7B,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,cAAAC;AACF,GAIG;AACD,QAAMC,IAAMhF,EAAuB,IAAI,GACjCiF,IAAWjF,EAAO,EAAK;AAC7B,SAAAO,EAAU,MAAM;AACd,UAAM2E,IAAKF,EAAI;AACf,QAAI,CAACE,EAAI;AACT,UAAMC,IAAW,IAAI;AAAA,MACnB,CAAC,CAACC,CAAK,MAAM;AACX,QAAI,CAACA,GAAO,kBAAkBH,EAAS,YACvCA,EAAS,UAAU,IACnBF,EAAaF,CAAO;AAAA,MACtB;AAAA,MACA;AAAA,QACE,WAAW;AAAA;AAAA,QAEX,YAAY,YAAYF,EAAoB;AAAA,MAAA;AAAA,IAC9C;AAEF,WAAAQ,EAAS,QAAQD,CAAE,GACZ,MAAMC,EAAS,WAAA;AAAA,EACxB,GAAG,CAACN,GAASE,CAAY,CAAC,GACnBhH,gBAAAA,EAAAA,IAAC,OAAA,EAAI,KAAAiH,GAAW,UAAAF,EAAA,CAAS;AAClC;AAGA,SAASO,GAAiB,EAAE,WAAAzH,KAAoC;AAC9D,SAAOG,gBAAAA,EAAAA,IAAC0H,IAAA,EAAkB,WAAA7H,GAAsB,gBAAc,GAAA,CAAC;AACjE;AAGA,SAAS6H,GAAkB;AAAA,EACzB,WAAA7H;AAAA,EACA,gBAAAuK,IAAiB;AACnB,GAGG;AACD,QAAMzC,IAAOC,GAAA,GACP;AAAA,IACJ,QAAAxG;AAAA,IACA,WAAAyG;AAAA,IACA,QAAAC;AAAA,IACA,YAAAuC;AAAA,IACA,eAAAC;AAAA,EAAA,IACE9C,EAAA,GAEE,CAAC+C,GAAeC,CAAgB,IAAIpI,EAAS,EAAK,GAClD,CAACqI,GAAcC,CAAe,IAAItI,EAA4B,IAAI,GAClEuI,IAAmB1I,EAAgC,IAAI,GAEvD2I,IAAgB5B,EAAY,CAAC6B,MAA6B;AAC9D,IAAAF,EAAiB,UAAUE,GAC3BL,EAAiB,EAAI;AAAA,EACvB,GAAG,CAAA,CAAE,GAECM,IAAc9B,EAAY,MAAM;AACpC,QAAI,CAAC2B,EAAiB,WAAW,CAACF,EAAc;AAEhD,UAAMM,IAAS;AAAA,MACb,GAAGJ,EAAiB;AAAA,MACpB,eAAeF;AAAA,IAAA;AAGjB,IACEA,EAAa,OAAOO,MACpBlD,EAAO,oBAEPA,EAAO,kBAAkBiD,CAAa,IAEtCjD,EAAO,YAAYiD,CAAa,GAGlCP,EAAiB,EAAK,GACtBG,EAAiB,UAAU;AAAA,EAC7B,GAAG,CAACF,GAAc3C,EAAO,WAAWA,EAAO,iBAAiB,CAAC,GAEvD,CAACE,GAAUC,CAAW,IAAI7F,EAAS,EAAK,GACxC,CAAC6I,GAAcC,CAAe,IAAI9I;AAAA,IACrC0F,EAAO,YAAY,KAAQ,OAAO;AAAA,EAAA,GAE/BqD,IAAgBlJ,EAAuB,IAAI,GAC3CiG,IAAUjG,EAAuB,IAAI,GACrCkG,IAAoBlG,EAAoC6F,EAAO,MAAM,GACrEM,IAAwBnG;AAAA,IAC5B0F,GAAM;AAAA,EAAA;AAGR,EAAAnF,EAAU,MAAM;AACd,IAAIsF,EAAO,UAAUK,EAAkB,YAAYL,EAAO,UACxDD,EAAUC,EAAO,MAAM,GAEzBK,EAAkB,UAAUL,EAAO;AAAA,EACrC,GAAG,CAACA,EAAO,QAAQD,CAAS,CAAC,GAE7BrF,EAAU,MAAM;AACd,QAAIsF,EAAO,OAAQ;AACnB,UAAMO,IAAiBV,GAAM;AAC7B,IAAIU,KAAkBD,EAAsB,YAAYC,KACtDR,EAAUQ,CAAc,GAE1BD,EAAsB,UAAUC;AAAA,EAClC,GAAG,CAACV,GAAM,QAAQG,EAAO,QAAQD,CAAS,CAAC,GAE3CrF,EAAU,MAAM;AACd,IAAA0I,EAAiBpD,EAAO,YAAY,KAAQ,OAAO,KAAK;AAAA,EAC1D,GAAG,CAACA,EAAO,QAAQ,CAAC,GAEpBtF,EAAU,MAAM;AACd,QAAI,CAACwF,EAAU;AACf,UAAMM,IAAqB,CAAC5F,MAAkB;AAC5C,MAAIwF,EAAQ,WAAW,CAACA,EAAQ,QAAQ,SAASxF,EAAE,MAAc,KAC/DuF,EAAY,EAAK;AAAA,IAErB;AACA,oBAAS,iBAAiB,aAAaK,CAAkB,GAClD,MAAM,SAAS,oBAAoB,aAAaA,CAAkB;AAAA,EAC3E,GAAG,CAACN,CAAQ,CAAC;AAEb,QAAMpI,IAAI,CAACK,MAAgByG,GAAYtF,GAAQnB,CAAG,GAK5CuI,KAFuBV,EAAO,wBAAwB,KAG1DhI,gBAAAA,EAAAA,KAAC,OAAA,EAAI,WAAWC,EAAO,kBAAkB,KAAKmI,GAC5C,UAAA;AAAA,IAAApI,gBAAAA,EAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,WAAWC,EAAO;AAAA,QAClB,SAAS,MAAM;AACb,UAAA+H,EAAO,WAAW,yBAAyB,EAAE,UAAU1G,GAAQ,GAC/D6G,EAAY,CAACQ,MAAM,CAACA,CAAC;AAAA,QACvB;AAAA,QACA,iBAAeT;AAAA,QACf,iBAAc;AAAA,QACd,IAAG;AAAA,QACH,cAAYpI,EAAE,UAAU;AAAA,QAExB,UAAA;AAAA,UAAAI,gBAAAA,EAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,KAAKyG;AAAA,cACL,KAAI;AAAA,cACJ,WAAW1G,EAAO;AAAA,cAClB,OAAO;AAAA,cACP,QAAQ;AAAA,cACR,eAAW;AAAA,YAAA;AAAA,UAAA;AAAA,gCAEZ,QAAA,EAAK,WAAWA,EAAO,WAAY,UAAA2I,EAActH,CAAM,EAAA,CAAE;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,IAE3D4G,KACChI,gBAAAA,EAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWD,EAAO;AAAA,QAClB,MAAK;AAAA,QACL,mBAAgB;AAAA,QAChB,yBAAuB,sBAAsBqB,CAAM;AAAA,QAElD,UAAAuH,GAAkB,IAAI,CAACC,MACtB5I,gBAAAA,EAAAA;AAAAA,UAAC;AAAA,UAAA;AAAA,YAEC,IAAI,sBAAsB4I,CAAG;AAAA,YAC7B,MAAK;AAAA,YACL,iBAAeA,MAAQxH;AAAA,YACvB,WAAWrB,EAAO;AAAA,YAClB,SAAS,MAAM;AACb,cAAA+H,EAAO,WAAW,yBAAyB,EAAE,aAAac,GAAK,GAC/Df,EAAUe,CAAG,GACbX,EAAY,EAAK;AAAA,YACnB;AAAA,YAEC,YAAcW,CAAG;AAAA,UAAA;AAAA,UAXbA;AAAA,QAAA,CAaR;AAAA,MAAA;AAAA,IAAA;AAAA,EACH,EAAA,CAEJ,IACE,MAEEG,IAA0BC;AAAA,IAC9B,CAAClC,MAAoB;AACnB,MAAAgB,EAAO,WAAW,wCAAwC;AAAA,QACxD,SAAAhB;AAAA,QACA,YAAW,oBAAI,KAAA,GAAO,YAAA;AAAA,MAAY,CACnC;AAAA,IACH;AAAA,IACA,CAACgB,EAAO,SAAS;AAAA,EAAA,GAGbsD,IAAoBpC,EAAY,CAACqC,MAAkB;AAYvD,UAAMC,KAXqC;AAAA,MACzC,UAAU;AAAA,MACV,OAAO;AAAA,MACP,OAAO;AAAA,MACP,aAAa;AAAA,MACb,WAAW;AAAA,MACX,YAAY;AAAA,MACZ,QAAQ;AAAA,MACR,eAAe;AAAA,IAAA,EAGWD,CAAK,KAAK,oBAChCE,IAAW,SAAS,eAAeD,EAAQ;AAEjD,QAAIC,GAAU;AAEZ,YAAMC,KADaD,EAAS,sBAAA,EACD,MAAM,OAAO,UAAU;AAElD,aAAO,SAAS;AAAA,QACd,KAAKC;AAAA,QACL,UAAU;AAAA,MAAA,CACX,GAED,WAAW,MAAMD,EAAS,MAAA,GAAS,GAAG;AAAA,IACxC;AAAA,EACF,GAAG,CAAA,CAAE;AAE6B,SAAAvC,EAAY,MAAM;AAClD,IAAAoC,EAAkB,UAAU;AAAA,EAC9B,GAAG,CAACA,CAAiB,CAAC,GAGpBtL,gBAAAA,OAAC,SAAI,WAAW,GAAGC,EAAO,SAAS,IAAIF,CAAS,IAC9C,UAAA;AAAA,IAAAG,gBAAAA,EAAAA;AAAAA,MAACiJ;AAAA,MAAA;AAAA,QACC,GAAArJ;AAAA,QACA,SAASkI,EAAO;AAAA,QAChB,kBAAAU;AAAA,MAAA;AAAA,IAAA;AAAA,IAEF1I,gBAAAA,EAAAA,KAAC,QAAA,EAAK,WAAWC,EAAO,MACtB,UAAA;AAAA,MAAAC,gBAAAA,EAAAA;AAAAA,QAAC6G;AAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,cAAckC;AAAA,UAEd,UAAA/I,gBAAAA,EAAAA,IAACL,MAAY,GAAAC,EAAA,CAAM;AAAA,QAAA;AAAA,MAAA;AAAA,MAErBI,gBAAAA,EAAAA;AAAAA,QAAC6G;AAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,cAAckC;AAAA,UAEd,UAAA/I,gBAAAA,EAAAA;AAAAA,YAACM;AAAA,YAAA;AAAA,cACC,GAAAV;AAAA,cACA,gBAAgBkI,EAAO;AAAA,cACvB,WAAWA,EAAO;AAAA,YAAA;AAAA,UAAA;AAAA,QACpB;AAAA,MAAA;AAAA,MAEF9H,gBAAAA,EAAAA;AAAAA,QAAC6G;AAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,cAAckC;AAAA,UAEd,UAAA/I,gBAAAA,EAAAA;AAAAA,YAACgB;AAAA,YAAA;AAAA,cACC,GAAApB;AAAA,cACA,SAASkI,EAAO,oBAAoB,KAAK,CAACoB,MAAmB,EAAQA,CAAE;AAAA,YAAA;AAAA,UAAA;AAAA,QACzE;AAAA,MAAA;AAAA,MAEFlJ,gBAAAA,EAAAA;AAAAA,QAAC6G;AAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,cAAckC;AAAA,UAEd,gCAAC5H,IAAA,EAAkB,GAAAvB,GAAM,QAAAwB,GAAgB,UAAU0G,EAAO,SAAA,CAAU;AAAA,QAAA;AAAA,MAAA;AAAA,MAEtE9H,gBAAAA,EAAAA;AAAAA,QAAC6G;AAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,cAAckC;AAAA,UAEd,UAAA/I,gBAAAA,EAAAA;AAAAA,YAACuD;AAAA,YAAA;AAAA,cACC,GAAA3D;AAAA,cACA,QAAQkI,EAAO;AAAA,cACf,SAASA,EAAO;AAAA,cAChB,WAAWA,EAAO;AAAA,YAAA;AAAA,UAAA;AAAA,QACpB;AAAA,MAAA;AAAA,MAEDsC,KACCpK,gBAAAA,EAAAA;AAAAA,QAAC6G;AAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,cAAckC;AAAA,UAEd,iCAAC,OAAA,EAAI,WAAWhJ,EAAO,gBAAgB,KAAKoL,GAoB1C,UAAA;AAAA,YAAAnL,gBAAAA,EAAAA,IAACyL,IAAA,EAAW,GAAA7L,GAAM,OAAM,SAAA,CAAS;AAAA,YACjCI,gBAAAA,EAAAA;AAAAA,cAAC0L;AAAA,cAAA;AAAA,gBACC,GAAA9L;AAAA,gBACA,QAAQyK;AAAA,gBACR,UAAUC;AAAA,gBACV,cAAAW;AAAA,gBACA,sBAAsBC;AAAA,gBACtB,mBAAiB;AAAA,gBACjB,WAAWpD,EAAO;AAAA,cAAA;AAAA,YAAA;AAAA,YAEpB9H,gBAAAA,EAAAA;AAAAA,cAAC2L;AAAA,cAAA;AAAA,gBACC,GAAA/L;AAAA,gBACA,QAAQyK;AAAA,gBACR,cAAAY;AAAA,gBACA,mBAAiB;AAAA,gBACjB,sBAAoB;AAAA,gBACpB,oBAAoBG;AAAA,gBACpB,WAAWtD,EAAO;AAAA,gBAClB,MAAMA,EAAO;AAAA,gBACb,oBAAoBA,EAAO;AAAA,gBAC3B,sBAAsBA,EAAO;AAAA,gBAC7B,mBAAmBA,EAAO;AAAA,gBAC1B,WAAWA,EAAO;AAAA,gBAClB,WAAW/H,EAAO;AAAA,gBAClB,mBAAmB+H,EAAO;AAAA,gBAC1B,eAAA8C;AAAA,gBACA,aAAAE;AAAA,gBACA,eAAAP;AAAA,gBACA,cAAAE;AAAA,cAAA;AAAA,YAAA;AAAA,UACF,EAAA,CACF;AAAA,QAAA;AAAA,MAAA;AAAA,MAGJzK,gBAAAA,EAAAA;AAAAA,QAAC6G;AAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,cAAckC;AAAA,UAEd,UAAA/I,gBAAAA,EAAAA,IAAC+D,MAAqB,GAAAnE,EAAA,CAAM;AAAA,QAAA;AAAA,MAAA;AAAA,MAE9BI,gBAAAA,EAAAA;AAAAA,QAAC6G;AAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,cAAckC;AAAA,UAEd,UAAA/I,gBAAAA,EAAAA,IAACmE,MAAa,GAAAvE,EAAA,CAAM;AAAA,QAAA;AAAA,MAAA;AAAA,MAEtBI,gBAAAA,EAAAA;AAAAA,QAAC6G;AAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,cAAckC;AAAA,UAEd,UAAA/I,gBAAAA,EAAAA;AAAAA,YAACoE;AAAA,YAAA;AAAA,cACC,GAAAxE;AAAA,cACA,cAAckI,EAAO;AAAA,cACrB,YAAYA,EAAO,WAAW,8BAA8B,MAAMA,EAAO,UAAW,gCAAiC;AAAA,YAAA;AAAA,UAAA;AAAA,QACvH;AAAA,MAAA;AAAA,MAEF9H,gBAAAA,EAAAA;AAAAA,QAAC6G;AAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,cAAckC;AAAA,UAEd,UAAA/I,gBAAAA,EAAAA,IAAC2E,MAAW,GAAA/E,EAAA,CAAM;AAAA,QAAA;AAAA,MAAA;AAAA,MAEpBI,gBAAAA,EAAAA;AAAAA,QAAC6G;AAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,cAAckC;AAAA,UAEd,UAAA/I,gBAAAA,EAAAA,IAACkF,MAAiB,GAAAtF,EAAA,CAAM;AAAA,QAAA;AAAA,MAAA;AAAA,IAC1B,GACF;AAAA,IACAI,gBAAAA,EAAAA;AAAAA,MAAC4L;AAAA,MAAA;AAAA,QACC,QAAQrB;AAAA,QACR,SAAS,MAAMC,EAAiB,EAAK;AAAA,QACrC,cAAAC;AAAA,QACA,cAAcC;AAAA,QACd,WAAW,CAACmB,MAAS;AACnB,UAAAf,IAAce,CAAI;AAAA,QACpB;AAAA,QACA,GAAAjM;AAAA,QACA,WAAWkI,EAAO;AAAA,MAAA;AAAA,IAAA;AAAA,EACpB,GACF;AAEJ;AAEO,MAAMgE,KAA0C,CAAC;AAAA,EACtD,WAAAjM,IAAY;AAAA,EACZ,QAAQuJ;AAAA,EACR,sBAAAb,IAAuB;AAAA,EACvB,WAAAc;AAAA,EACA,QAAAC;AAAA,EACA,UAAAjI;AAAA,EACA,kBAAAkI;AAAA,EACA,SAAAtI;AAAA,EACA,gBAAAV;AAAA,EACA,oBAAAiJ;AAAA,EACA,kBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,SAAAtD;AAAA,EACA,YAAAD;AAAA,EACA,qBAAAwD;AAAA,EACA,WAAAC;AAAA,EACA,aAAAE;AAAA,EACA,oBAAAC;AAAA,EACA,sBAAAC;AAAA,EACA,mBAAAC;AAAA,EACA,WAAAvJ;AAAA,EACA,mBAAAmJ;AAAA,EACA,gBAAAK;AACF,MAEIlK,gBAAAA,EAAAA;AAAAA,EAACmK;AAAA,EAAA;AAAA,IACC,QAAQf;AAAA,IACR,sBAAAb;AAAA,IACA,WAAAc;AAAA,IACA,QAAAC;AAAA,IACA,UAAAjI;AAAA,IACA,SAAQ;AAAA,IACR,kBAAAkI;AAAA,IACA,SAAAtI;AAAA,IACA,gBAAAV;AAAA,IACA,oBAAAiJ;AAAA,IACA,kBAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,SAAAtD;AAAA,IACA,YAAAD;AAAA,IACA,qBAAAwD;AAAA,IACA,WAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,WAAAvJ;AAAA,IACA,gBAAAwJ;AAAA,IAEA,UAAAlK,gBAAAA,EAAAA,IAACsH,MAAiB,WAAAzH,EAAA,CAAsB;AAAA,EAAA;AAAA,GChgBjCsJ,KAAwC,CAAC,EAAE,SAAA4C,GAAS,GAAGC,QAAY;AAC9E,QAAMC,IACJ,OAAO,SAAW,MACd,IAAI,gBAAgB,OAAO,SAAS,MAAM,EAAE,IAAI,SAAS,IACzD;AAIN,UAFwBF,MAAYE,MAAmB,OAAO,OAAO,aAE7C,OACfjM,gBAAAA,MAAC8L,IAAA,EAAc,GAAGE,EAAA,CAAO,IAG3BhM,gBAAAA,MAACkM,IAAA,EAAmB,GAAGF,EAAA,CAAO;AACvC,GCZaG,KAAsB;"}
1
+ {"version":3,"file":"criticalCss-CMDWZ2jr.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/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 </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\";\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 /** Google Maps API key for birth place autocomplete */\n googleMapsApiKey?: 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 googleMapsApiKey,\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 googleMapsApiKey={googleMapsApiKey}\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","import React, { 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 { PlanGuidanceId } from \"../../utils/Stringconstant\";\n\nconst GLOBE_ICON_URL = \"https://srm-cdn.a4b.io/yoda/1770362713543.svg\";\nconst INLINE_FORM_IMAGE_URL = \"https://srm-cdn.a4b.io/yoda/1772535341508.webp\";\nconst INLINE_FORM_IMAGE_URL_HI = \"https://srm-cdn.a4b.io/yoda/1772539990131.webp\";\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\";\n\nimport type { KundliFormValues } from \"../KundliForm\";\nimport type { KundliAnalytics } from \"../../analytics\";\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 /** Google Maps API key for birth place autocomplete */\n googleMapsApiKey?: 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 return <KundliPageContent className={className} showInlineForm />;\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}: {\n className: string;\n showInlineForm?: boolean;\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 | null>(null);\n const pendingValuesRef = useRef<KundliFormValues | null>(null);\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 };\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 const t = (key: string) => tFromLocale(locale, key);\n const inlineFormImageUrl =\n locale === \"hi\" ? INLINE_FORM_IMAGE_URL_HI : INLINE_FORM_IMAGE_URL;\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 const focusInlineFormFirstField = useCallback(() => {\n focusMissingField(\"fullName\");\n }, [focusMissingField]);\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 <ViewSampleReportButton\n t={t}\n pdfUrl={config.sampleReportHref}\n onClick={config.onViewSampleReport}\n analytics={config.analytics}\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 discountPillLabel={config.discountPillLabel}\n analytics={config.analytics}\n className={styles.inlineProceedFooter}\n onProceedGuidance={config.onProceedGuidance}\n showPlanSheet={showPlanSheet}\n confirmPlan={confirmPlan}\n planSheetOpen={planSheetOpen}\n selectedPlan={selectedPlan}\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 <KundliPlanBottomSheet\n isOpen={planSheetOpen}\n onClose={() => setPlanSheetOpen(false)}\n selectedPlan={selectedPlan}\n onSelectPlan={setSelectedPlan}\n onProceed={(plan) => {\n confirmPlan?.(plan);\n }}\n t={t}\n analytics={config.analytics}\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 googleMapsApiKey,\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 googleMapsApiKey={googleMapsApiKey}\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","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","t","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","showLanguageSelector","languageSelector","o","LOCALE_LABELS","SUPPORTED_LOCALES","loc","handleCtaClick","ctaText","handleSectionImpression","useCallback","KundliHeader","u","KundliPage","localeProp","showSheet","userId","googleMapsApiKey","universityLogoUrls","sampleReportHref","onViewSampleReport","readMoreReviewsHref","onProceed","onProceedGuidance","proceedHref","originalPriceLabel","discountedPriceLabel","discountPillLabel","onLocaleChange","KundliProvider","showInlineForm","formValues","setFormValues","planSheetOpen","setPlanSheetOpen","selectedPlan","setSelectedPlan","pendingValuesRef","showPlanSheet","values","confirmPlan","merged","PlanGuidanceId","phoneIsdCode","setPhoneIsdCode","inlineFormRef","focusMissingField","field","targetId","targetEl","targetY","FormHeader","UserInfoFormSection","ProceedFooter","KundliPlanBottomSheet","plan","KundliPageV1","variant","props","variantFromUrl","KundliPageDefault","KUNDLI_CRITICAL_CSS"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { D as s, I as t, K as o, a as l, b as r, c as d, d as i, S as n, g as u, e as K, i as I, r as L, s as S, f as A, u as E, h as m, j as _ } from "./analytics-C12NIfpF.js";
1
+ import { D as s, I as t, K as o, a as l, b as r, c as d, d as i, S as n, g as u, e as K, i as I, r as L, s as S, f as A, u as E, h as m, j as _ } from "./analytics-Ctu2CtEu.js";
2
2
  export {
3
3
  s as DefaultKundliImage,
4
4
  t as I18nProvider,
@@ -1,6 +1,6 @@
1
1
  import "./styles.js";
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-C12NIfpF.js";
3
- import { K as g, a as N, b as R, c as U, P as D } from "./criticalCss-DK8ZiV2R.js";
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-Ctu2CtEu.js";
3
+ import { K as g, a as N, b as R, c as U, P as D } from "./criticalCss-CMDWZ2jr.js";
4
4
  export {
5
5
  t as DefaultKundliImage,
6
6
  o as I18nProvider,
@@ -1,5 +1,5 @@
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-C12NIfpF.js";
2
- import { K as N, a as P, P as R } from "./criticalCss-DK8ZiV2R.js";
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-Ctu2CtEu.js";
2
+ import { K as N, a as P, P as R } from "./criticalCss-CMDWZ2jr.js";
3
3
  export {
4
4
  s as DefaultKundliImage,
5
5
  t as I18nProvider,