import { MarketingShell } from '../components/layout/MarketingShell'
import { SiteMetadata } from '../components/seo/SiteMetadata'
import { PublicLaunchStatus } from '../components/ui/PublicLaunchStatus'
import { deploymentReadinessTracks, releaseRolloutChecklist } from '../site-data'
import {
  BrowserDesktopRealitySection,
  PublicPackagedDesktopProofSection,
  PublicReleaseDecisionGuideSection,
  ReleaseAuthorityBundleSection,
  Section,
  StepOnlyCardSection,
  SupportTopicDirectorySection,
  SurfaceChoiceGuideSection,
  supportTopicDirectory,
  usePublicReleaseManifestView,
} from './public-page-helpers'

export function LaunchStatusPage() {
  const { releaseManifest, windowsValidationPlatform } = usePublicReleaseManifestView('public-launch-status')

  return (
    <>
      <SiteMetadata
        title="HyperTwist access status"
        description="Check how HyperTwist public pages, account access, private downloads, legal details, and desktop delivery fit together right now."
        canonicalPath="/launch-status"
      />
      <MarketingShell
        eyebrow="Access status"
        title="See how public pages, account access, and desktop delivery work together."
        lede="This is the public status page for HyperTwist access: release targets, account flow, legal details, source links, and desktop handoff stay visible in one place."
      >
        <Section
          title="Current public access status"
          description="Use this page when pricing, download, release, and legal details need one clear browser-owned status surface."
        >
          <PublicLaunchStatus title="Current account and release access" />
        </Section>

        <StepOnlyCardSection
          title="What must be true before wider public launch"
          description="These are the checks that keep public launch language tied to real release proof instead of aspiration."
          cards={releaseRolloutChecklist}
        />

        <StepOnlyCardSection
          title="Launch hardening tracks"
          description="These are the practical work tracks for turning account-gated early access into a production-grade public release."
          cards={deploymentReadinessTracks}
        />

        <PublicPackagedDesktopProofSection
          platform={windowsValidationPlatform}
          actions={[
            { to: '/download', label: 'Open download center' },
            { to: '/getting-started', label: 'Open getting started' },
          ]}
        />

        <SupportTopicDirectorySection
          title="Access support and escalation lanes"
          description="Access status only helps when the next human lane is explicit too, so these support routes stay attached to the same status page."
          topics={supportTopicDirectory}
          selectedTopicKey="launch-readiness"
        />

        <PublicReleaseDecisionGuideSection
          releaseManifest={releaseManifest}
          title="Choose the next access move"
          description="This page should not stop at checklist language. It should also say whether the next best move is the desktop download, pricing, account follow-through, or notice review."
        />

        <ReleaseAuthorityBundleSection
          releaseManifest={releaseManifest}
          title="Release, notice, and support bundle"
          description="Launch readiness is only trustworthy when docs, release notes, source links, public notices, and support contact remain visible as one release bundle."
        />

        <SurfaceChoiceGuideSection description="This keeps access status grounded in the real product topology too: public for product truth, protected for account-aware release work, and native for the simulator itself." />

        <BrowserDesktopRealitySection
          title="Why access status lives on the website"
          description="Launch readiness belongs to the website because checkout, notices, release references, and account access are web-owned even while the actual training runtime remains native."
        />
      </MarketingShell>
    </>
  )
}
