"use client";
import { ThemeProvider as BjorkDemoThemeProvider } from "next-themes";
import { useState } from "react";
import { LatticeOrb, type LatticeOrbHit, type OrbState } from "@/components/ui/bjork-lattice-orb";
const PREVIEW_HITS: LatticeOrbHit[] = [
{ lat: 0.35, lon: 0.6 },
{ lat: -0.2, lon: 2.1 },
{ lat: 0.1, lon: 3.4 },
{ lat: -0.4, lon: 5.0 },
];
const SMALL_ORBS: { value: OrbState; label: string }[] = [
{ value: "connecting", label: "Connecting" },
{ value: "composing", label: "Composing" },
{ value: "error", label: "Error" },
];
function SourceDemo(){
const isPreview = false;
const [state, setState] = useState<OrbState>("searching");
const [hits, setHits] = useState<LatticeOrbHit[]>([]);
const demo = isPreview ? (
<LatticeOrb state="searching" hits={PREVIEW_HITS} size={320} time={1.4} />
) : (
<div className="flex w-[min(420px,calc(100vw-56px))] flex-col items-center gap-7">
<LatticeOrb state={state} hits={hits} size={320} />
<div className="flex items-start justify-center gap-6">
{SMALL_ORBS.map((option) => (
<LatticeOrb key={option.value} state={option.value} size={72} label={option.label} showCaption={false} />
))}
</div>
</div>
);
return <>
{demo}
</>;
}
export default function BjorkRegistryPreview(){return <BjorkDemoThemeProvider attribute="class" defaultTheme="dark" enableSystem={false} storageKey="bjork-review-demo-theme"><div data-component-demo className="dark flex min-h-screen w-full items-center justify-center bg-[var(--bjork-bg)] p-8 text-[var(--bjork-text)]"><div className="w-full max-w-[850px]"><SourceDemo/></div></div></BjorkDemoThemeProvider>}