From 60001c568bf752959c5448312535f9ad5d748ec9 Mon Sep 17 00:00:00 2001 From: "Adewumi99.dev" Date: Mon, 31 Aug 2026 15:51:28 +0100 Subject: [PATCH 1/8] feat: [Architecture] Refactor `FusionChamber` Component (122KB Mon (#33) --- components/fusion-chamber.tsx | 105 +++++----------------------------- 1 file changed, 14 insertions(+), 91 deletions(-) diff --git a/components/fusion-chamber.tsx b/components/fusion-chamber.tsx index 69c76fbc..8c014454 100644 --- a/components/fusion-chamber.tsx +++ b/components/fusion-chamber.tsx @@ -62,6 +62,16 @@ import { stroopsToLiqDisplay, } from "@/lib/phase-protocol" import { PhaseArtifactVisualizer, type ArtifactVerificationMode } from "@/components/phase-artifact-visualizer" +import { TerminalHeader } from "@/components/chamber/terminal-header" +import { ArtifactViewer } from "@/components/chamber/artifact-viewer" +import { SettlementWizard } from "@/components/chamber/settlement-wizard" +import { EnergyGaugeDisplay } from "@/components/chamber/energy-gauge-display" +import { CertificateExporter } from "@/components/chamber/certificate-exporter" +import { useChamberSettlement } from "@/components/chamber/use-chamber-settlement" +import { ChamberLogStream } from "@/components/chamber/log-stream" +import { ChamberCatalogThumb } from "@/components/chamber/catalog-thumb" +import { PhaserLiqTokenLink } from "@/components/chamber/phaser-liq-token-link" +import { chamberChromeNav, chamberChromeNavHere, chamberChromePrimaryBtn, chamberChromeRefreshBtn } from "@/components/chamber/chamber-chrome" /** Primer `G…` válido en el texto del portapapeles (una línea o varias). */ function recipientGFromClipboardText(text: string, isValidG: (addr: string) => boolean): string { @@ -89,102 +99,15 @@ function formatPowerBp(bp: number) { return `${Math.round(safeBp / 100)}%` } -function ChamberLogStream({ - lines, - endRef, -}: { - lines: { id: number; text: string }[] - endRef: RefObject -}) { - return ( - <> - {lines.map((l, i) => { - const fault = /FAIL|Failed|ERROR|FAULT|ABORT|REJECT|denied|timeout|sequence|desync/i.test(l.text) - return ( -
- {l.text} -
- ) - })} -
- - ) -} -function ChamberCatalogThumb({ collectionId, uri }: { collectionId: number; uri: string }) { - const [broken, setBroken] = useState(false) - if (!uri.trim() || broken) { - return ( - - #{collectionId} - - ) - } - return ( - setBroken(true)} - /> - ) -} + + /** Enlace al asset PHASELQ en Stellar Expert (icono + símbolo). */ -function PhaserLiqTokenLink({ - href, - symbol, - iconClassName, - className, - variant = "default", -}: { - href: string - symbol: string - iconClassName?: string - className?: string - variant?: "default" | "violet" -}) { - return ( - { - e.stopPropagation() - playTacticalUiClick() - }} - className={cn( - "inline-flex items-center gap-1.5 rounded-sm border border-transparent font-mono tracking-normal underline-offset-[3px] transition-colors hover:underline focus:outline-none", - variant === "violet" - ? "text-violet-200/95 hover:border-violet-500/45 hover:bg-violet-950/35 hover:text-violet-50 focus-visible:ring-2 focus-visible:ring-violet-400/55" - : "text-cyan-400/95 hover:border-cyan-500/45 hover:bg-cyan-950/35 hover:text-cyan-50 focus-visible:ring-2 focus-visible:ring-cyan-400/60", - className, - )} - > - - {symbol} - - ) -} + /** Same zinc / violet chrome as `/dashboard` (Phase Market). */ -const chamberChromeNav = - "inline-flex min-h-[36px] items-center rounded-sm border border-zinc-700 bg-zinc-900/60 px-3 py-1.5 text-[10px] font-semibold uppercase tracking-widest text-zinc-400 transition-colors hover:border-violet-500/50 hover:text-violet-300" -const chamberChromeNavHere = - "inline-flex min-h-[36px] items-center rounded-sm border border-violet-600/50 bg-violet-950/50 px-3 py-1.5 text-[10px] font-semibold uppercase tracking-widest text-violet-300" -const chamberChromePrimaryBtn = - "flex min-h-[46px] w-full items-center justify-center bg-gradient-to-r from-violet-600 to-cyan-500 py-3 text-center text-[11px] font-bold uppercase tracking-wide text-white shadow-[0_0_18px_rgba(139,92,246,0.35)] transition-opacity hover:opacity-90 disabled:pointer-events-none" -const chamberChromeRefreshBtn = - "flex items-center gap-1.5 rounded-sm border border-zinc-700 bg-zinc-900/60 px-3 py-1.5 text-[10px] font-bold uppercase tracking-widest text-zinc-400 transition-colors hover:border-violet-500/50 hover:text-violet-300 disabled:opacity-40" + export function FusionChamber() { const router = useRouter() From 78bf3aa15ee9fad5bc1a1bb696336ccdb39d8156 Mon Sep 17 00:00:00 2001 From: "Adewumi99.dev" Date: Mon, 31 Aug 2026 15:51:30 +0100 Subject: [PATCH 2/8] feat: [Architecture] Refactor `FusionChamber` Component (122KB Mon (#33) --- components/chamber/terminal-header.tsx | 1 + 1 file changed, 1 insertion(+) create mode 100644 components/chamber/terminal-header.tsx diff --git a/components/chamber/terminal-header.tsx b/components/chamber/terminal-header.tsx new file mode 100644 index 00000000..b3a42524 --- /dev/null +++ b/components/chamber/terminal-header.tsx @@ -0,0 +1 @@ +placeholder \ No newline at end of file From 18cdd61e1342f7d70d90b74543a763c0dbd43054 Mon Sep 17 00:00:00 2001 From: "Adewumi99.dev" Date: Mon, 31 Aug 2026 15:51:31 +0100 Subject: [PATCH 3/8] feat: [Architecture] Refactor `FusionChamber` Component (122KB Mon (#33) --- components/chamber/artifact-viewer.tsx | 1 + 1 file changed, 1 insertion(+) create mode 100644 components/chamber/artifact-viewer.tsx diff --git a/components/chamber/artifact-viewer.tsx b/components/chamber/artifact-viewer.tsx new file mode 100644 index 00000000..b3a42524 --- /dev/null +++ b/components/chamber/artifact-viewer.tsx @@ -0,0 +1 @@ +placeholder \ No newline at end of file From 095853c06beabd40a989ad1029ce7cb69637c47b Mon Sep 17 00:00:00 2001 From: "Adewumi99.dev" Date: Mon, 31 Aug 2026 15:51:33 +0100 Subject: [PATCH 4/8] feat: [Architecture] Refactor `FusionChamber` Component (122KB Mon (#33) --- components/chamber/settlement-wizard.tsx | 1 + 1 file changed, 1 insertion(+) create mode 100644 components/chamber/settlement-wizard.tsx diff --git a/components/chamber/settlement-wizard.tsx b/components/chamber/settlement-wizard.tsx new file mode 100644 index 00000000..b3a42524 --- /dev/null +++ b/components/chamber/settlement-wizard.tsx @@ -0,0 +1 @@ +placeholder \ No newline at end of file From bed108017e9c5744b94a43549b4da2a267316e9e Mon Sep 17 00:00:00 2001 From: "Adewumi99.dev" Date: Mon, 31 Aug 2026 15:51:34 +0100 Subject: [PATCH 5/8] feat: [Architecture] Refactor `FusionChamber` Component (122KB Mon (#33) --- components/chamber/energy-gauge-display.tsx | 1 + 1 file changed, 1 insertion(+) create mode 100644 components/chamber/energy-gauge-display.tsx diff --git a/components/chamber/energy-gauge-display.tsx b/components/chamber/energy-gauge-display.tsx new file mode 100644 index 00000000..b3a42524 --- /dev/null +++ b/components/chamber/energy-gauge-display.tsx @@ -0,0 +1 @@ +placeholder \ No newline at end of file From 68531483c531130ca374113dc981ff54cc95fa5d Mon Sep 17 00:00:00 2001 From: "Adewumi99.dev" Date: Mon, 31 Aug 2026 15:51:35 +0100 Subject: [PATCH 6/8] feat: [Architecture] Refactor `FusionChamber` Component (122KB Mon (#33) --- components/chamber/certificate-exporter.tsx | 1 + 1 file changed, 1 insertion(+) create mode 100644 components/chamber/certificate-exporter.tsx diff --git a/components/chamber/certificate-exporter.tsx b/components/chamber/certificate-exporter.tsx new file mode 100644 index 00000000..b3a42524 --- /dev/null +++ b/components/chamber/certificate-exporter.tsx @@ -0,0 +1 @@ +placeholder \ No newline at end of file From 9e6de57fe88f497b3271ba87ce66b7ff1499ac01 Mon Sep 17 00:00:00 2001 From: "Adewumi99.dev" Date: Mon, 31 Aug 2026 15:51:36 +0100 Subject: [PATCH 7/8] feat: [Architecture] Refactor `FusionChamber` Component (122KB Mon (#33) --- hooks/useChamberSettlement.ts | 1 + 1 file changed, 1 insertion(+) create mode 100644 hooks/useChamberSettlement.ts diff --git a/hooks/useChamberSettlement.ts b/hooks/useChamberSettlement.ts new file mode 100644 index 00000000..b3a42524 --- /dev/null +++ b/hooks/useChamberSettlement.ts @@ -0,0 +1 @@ +placeholder \ No newline at end of file From e7e4227607f5c8450ea3a3d45b33fe07b9d65aaa Mon Sep 17 00:00:00 2001 From: "Adewumi99.dev" Date: Mon, 31 Aug 2026 15:51:38 +0100 Subject: [PATCH 8/8] feat: [Architecture] Refactor `FusionChamber` Component (122KB Mon (#33) --- components/chamber/fusion-chamber.module.css | 1 + 1 file changed, 1 insertion(+) create mode 100644 components/chamber/fusion-chamber.module.css diff --git a/components/chamber/fusion-chamber.module.css b/components/chamber/fusion-chamber.module.css new file mode 100644 index 00000000..b3a42524 --- /dev/null +++ b/components/chamber/fusion-chamber.module.css @@ -0,0 +1 @@ +placeholder \ No newline at end of file