SYMBOL INDEX (101 symbols across 34 files) FILE: eslint.config.js constant OFF (line 3) | const OFF = 0 constant WARN (line 4) | const WARN = 1 constant ERROR (line 5) | const ERROR = 2 FILE: src/app/[lang]/[[...mdxPath]]/page.tsx function generateMetadata (line 6) | async function generateMetadata(props: PageProps) { type PageProps (line 12) | type PageProps = Readonly<{ function Page (line 20) | async function Page(props: PageProps) { FILE: src/app/[lang]/_components/ThemeProvider.tsx function ThemeProvider (line 6) | function ThemeProvider({ FILE: src/app/[lang]/_components/ThirdPartyScripts.tsx constant GA_ID (line 5) | const GA_ID = 'G-VCR6017LB8' constant BAIDU_SRC (line 6) | const BAIDU_SRC = 'https://hm.baidu.com/hm.js?d5ad5e04e6af914c0176792656... function ThirdPartyScripts (line 8) | function ThirdPartyScripts() { FILE: src/app/[lang]/layout.tsx function RootLayout (line 72) | async function RootLayout({ children, params }: LayoutProps<'/[lang]'>) { FILE: src/components/AIDemoLanding/EntryCard.tsx function EntryCard (line 6) | function EntryCard() { FILE: src/components/AIDemoLanding/index.tsx type SectionProps (line 10) | type SectionProps = { function Section (line 21) | function Section({ id, title, children, compact }: SectionProps) { function FeatureIcon (line 34) | function FeatureIcon({ index }: { index: number }) { function TopNav (line 40) | function TopNav({ copy }: { copy: LandingCopy }) { function Hero (line 70) | function Hero({ copy }: { copy: LandingCopy }) { function SocialProof (line 142) | function SocialProof({ copy }: { copy: LandingCopy }) { function Features (line 166) | function Features({ copy }: { copy: LandingCopy }) { function HowItWorks (line 185) | function HowItWorks({ copy }: { copy: LandingCopy }) { function UseCases (line 203) | function UseCases({ copy }: { copy: LandingCopy }) { function DemoPreview (line 218) | function DemoPreview({ copy, lang }: { copy: LandingCopy, lang: string }) { function Testimonials (line 234) | function Testimonials({ copy }: { copy: LandingCopy }) { function Pricing (line 250) | function Pricing({ copy, lang }: { copy: LandingCopy, lang: string }) { function FAQ (line 259) | function FAQ({ copy }: { copy: LandingCopy }) { function FinalCta (line 278) | function FinalCta({ copy }: { copy: LandingCopy }) { function Footer (line 306) | function Footer({ copy }: { copy: LandingCopy }) { function AIDemoLanding (line 331) | function AIDemoLanding() { FILE: src/components/AIDemoLanding/interactions.tsx type BillingCycle (line 7) | type BillingCycle = 'monthly' | 'yearly' type InteractiveDemoProps (line 9) | type InteractiveDemoProps = { type InteractivePricingProps (line 14) | type InteractivePricingProps = { type Scenario (line 19) | type Scenario = { function getDemoScenarios (line 26) | function getDemoScenarios(lang: string): Scenario[] { function parsePriceNumber (line 96) | function parsePriceNumber(price: string): number | null { function formatPlanPrice (line 104) | function formatPlanPrice(price: string, cycle: BillingCycle, lang: strin... function InteractiveDemoPanel (line 126) | function InteractiveDemoPanel({ lang, ctaText }: InteractiveDemoProps) { function InteractivePricingCards (line 179) | function InteractivePricingCards({ lang, plans }: InteractivePricingProp... FILE: src/components/CustomFooter/index.tsx function CustomFooter (line 37) | function CustomFooter() { FILE: src/components/HomepageHero/Section.tsx type Props (line 5) | interface Props { FILE: src/components/HomepageHero/Setup.tsx type Props (line 12) | interface Props { function SetupHero (line 14) | function SetupHero(props: Props) { FILE: src/components/HomepageHero/index.tsx function HomepageHero (line 35) | function HomepageHero() { FILE: src/components/MotionWrapper/FadeIn.tsx type MotionWrapperFadeInProps (line 7) | interface MotionWrapperFadeInProps { FILE: src/components/MotionWrapper/Flash.tsx type Props (line 7) | interface Props { FILE: src/components/ScrollProgressBar/index.tsx type ScrollProgressBarProps (line 6) | interface ScrollProgressBarProps { function ScrollProgressBar (line 20) | function ScrollProgressBar({ FILE: src/components/TitleBadge/index.tsx type Props (line 6) | interface Props { FILE: src/components/auth/login-form.client.tsx function LoginFormClient (line 9) | function LoginFormClient() { FILE: src/components/auth/login-form.tsx constant STORAGE_KEY (line 12) | const STORAGE_KEY = 'auth:userEmail' type ErrorType (line 14) | type ErrorType = 'invalidEmail' | 'passwordRequired' | 'storage' | null function LoginForm (line 16) | function LoginForm() { FILE: src/components/ui/alert.tsx function Alert (line 22) | function Alert({ function AlertTitle (line 37) | function AlertTitle({ className, ...props }: React.ComponentProps<"div">) { function AlertDescription (line 50) | function AlertDescription({ FILE: src/components/ui/button.tsx function Button (line 41) | function Button({ FILE: src/components/ui/card.tsx function Card (line 5) | function Card({ className, ...props }: React.ComponentProps<"div">) { function CardHeader (line 18) | function CardHeader({ className, ...props }: React.ComponentProps<"div">) { function CardTitle (line 31) | function CardTitle({ className, ...props }: React.ComponentProps<"div">) { function CardDescription (line 41) | function CardDescription({ className, ...props }: React.ComponentProps<"... function CardAction (line 51) | function CardAction({ className, ...props }: React.ComponentProps<"div">) { function CardContent (line 64) | function CardContent({ className, ...props }: React.ComponentProps<"div"... function CardFooter (line 74) | function CardFooter({ className, ...props }: React.ComponentProps<"div">) { FILE: src/components/ui/input.tsx function Input (line 5) | function Input({ className, type, ...props }: React.ComponentProps<"inpu... FILE: src/components/ui/label.tsx function Label (line 8) | function Label({ FILE: src/components/ui/link-preview.tsx type LinkPreviewProps (line 15) | type LinkPreviewProps = { FILE: src/hooks/useLocale.ts type LocalizedValue (line 9) | type LocalizedValue = PathValue extends s... FILE: src/hooks/useServerLocale.ts type LocalizedValue (line 5) | type LocalizedValue = PathValue extends s... type ServerLocaleParams (line 9) | interface ServerLocaleParams { function useServerLocale (line 15) | async function useServerLocale(lang: I18nLangKeys) { FILE: src/i18n/ai-demo.ts type HeroCopy (line 4) | type HeroCopy = { type SocialProof (line 13) | type SocialProof = { type Feature (line 18) | type Feature = { type Step (line 23) | type Step = { type UseCase (line 28) | type UseCase = { type Testimonial (line 33) | type Testimonial = { type Plan (line 39) | type Plan = { type FAQ (line 48) | type FAQ = { type FinalCta (line 53) | type FinalCta = { type Footer (line 60) | type Footer = { type LandingCopy (line 68) | type LandingCopy = { function getLandingCopy (line 97) | function getLandingCopy(lang: string): LandingCopy { FILE: src/i18n/index.ts type I18nLangKeys (line 9) | type I18nLangKeys = keyof typeof i18nConfig type I18nLangAsyncProps (line 10) | interface I18nLangAsyncProps { type AllLocales (line 15) | type AllLocales = typeof i18nConfig[I18nLangKeys] type DeepKeys (line 18) | type DeepKeys = { type NestedKeyOf (line 25) | type NestedKeyOf = { type LocaleKeys (line 32) | type LocaleKeys = NestedKeyOf type DeepObject (line 35) | type DeepObject = Record type PathValue (line 38) | type PathValue function getNestedValue (line 48) | function getNestedValue(obj: T, ... function interpolateString (line 54) | function interpolateString(template: string, context: Record