Skip to content

Commit 2c36617

Browse files
wip v26
1 parent a28d065 commit 2c36617

8 files changed

Lines changed: 312 additions & 42 deletions

File tree

uapi/app/auxillaries/AuxillariesRouteClient.tsx

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import React from 'react';
44
import Link from 'next/link';
55

66
import AuxillariesSurface from '@/app/auxillaries/components/AuxillariesSurface';
7+
import { closeAuxillaries } from '@/app/auxillaries/components/AuxillariesProvider';
78
import {
89
buildAuxillariesRoutePath,
910
getAuxillaryDescriptor,
@@ -18,6 +19,10 @@ interface AuxillariesRouteClientProps {
1819
}
1920

2021
export default function AuxillariesRouteClient({ step }: AuxillariesRouteClientProps) {
22+
React.useEffect(() => {
23+
closeAuxillaries();
24+
}, []);
25+
2126
const descriptor = getAuxillaryDescriptor(step);
2227
const auxillaries: AuxillaryPaneDescriptor[] = AUXILLARY_ROUTE_SEQUENCE.map((auxillaryStep) =>
2328
getAuxillaryDescriptor(auxillaryStep),

uapi/app/auxillaries/components/AuxillariesContent.tsx

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -218,31 +218,25 @@ function AuxillariesContent(props: AuxillariesContentProps) {
218218
)}
219219

220220
{usesContainedLayout ? (
221-
<div className="orbital-workspace-shell">
222-
<aside className="orbital-workspace-nav">
223-
<div className="orbital-workspace-nav-copy">
224-
<p className="orbital-workspace-kicker">
221+
<div className="orbital-workspace-shell auxillaries-bitcode-shell">
222+
<aside className="orbital-workspace-nav auxillaries-bitcode-selector">
223+
<div className="orbital-workspace-nav-copy auxillaries-bitcode-selector-copy">
224+
<p className="orbital-workspace-kicker auxillaries-bitcode-kicker">
225225
{isAuxillariesMode ? AUXILLARIES_LABEL : AUXILLARIES_ACCESS_LABEL}
226226
</p>
227-
<h3 className="orbital-workspace-title">{getAuxillariesWorkspaceHeading(mode)}</h3>
228-
<p className="orbital-workspace-description">{getAuxillariesWorkspaceDescription(mode)}</p>
227+
<h3 className="orbital-workspace-title auxillaries-bitcode-title">{getAuxillariesWorkspaceHeading(mode)}</h3>
228+
<p className="orbital-workspace-description auxillaries-bitcode-description">
229+
{getAuxillariesWorkspaceDescription(mode)}
230+
</p>
229231
</div>
230232
<AuxillariesWorkspacePanels
231233
steps={steps}
232234
currentStep={currentStep}
233235
availableSteps={availableSteps}
234236
onStepClick={onStepClick}
235237
/>
236-
<AuxillariesPaneTabs
237-
mode={mode}
238-
steps={steps}
239-
currentStep={currentStep}
240-
completedSteps={completedSteps}
241-
availableSteps={availableSteps}
242-
onStepClick={onStepClick}
243-
/>
244238
</aside>
245-
<div className="orbital-workspace-stage">{contentPanel}</div>
239+
<div className="orbital-workspace-stage auxillaries-bitcode-pane">{contentPanel}</div>
246240
</div>
247241
) : (
248242
<>

uapi/app/auxillaries/components/AuxillariesProvider.tsx

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
"use client";
22

33
import React, { createContext, useContext, useState, useCallback, useEffect } from 'react';
4-
import type { AuxillaryPane } from './auxillary-pane-meta';
4+
import { isAuxillariesPath, isOrbitalsCompatibilityPath, type AuxillaryPane } from './auxillary-pane-meta';
55
import { createPortal } from 'react-dom';
66
import dynamic from 'next/dynamic';
77

@@ -39,6 +39,15 @@ function normalizeAuxillaryWindow(winOrLegacy: AuxillaryOpenMode = 'SignUpWindow
3939
return winOrLegacy;
4040
}
4141

42+
function isDedicatedAuxillariesLocation() {
43+
if (typeof window === 'undefined') {
44+
return false;
45+
}
46+
47+
const pathname = window.location.pathname;
48+
return isAuxillariesPath(pathname) || isOrbitalsCompatibilityPath(pathname);
49+
}
50+
4251
interface AuxillariesContextType {
4352
isOpen: boolean;
4453
window: AuxillaryWindow;
@@ -82,6 +91,12 @@ export default function AuxillariesProvider({ children }: { children: React.Reac
8291
step?: AuxillaryPane;
8392
} | undefined;
8493

94+
if (isDedicatedAuxillariesLocation()) {
95+
setIsOpen(false);
96+
setDeepLinkStep(null);
97+
return;
98+
}
99+
85100
if (detail?.window) setWindowState(detail.window);
86101
else if (detail?.mode) setWindowState(normalizeAuxillaryWindow(detail.mode));
87102
setDeepLinkStep(detail?.step ?? null);
@@ -103,6 +118,12 @@ export default function AuxillariesProvider({ children }: { children: React.Reac
103118
}, []);
104119

105120
const openAuxillaries = useCallback((win: AuxillaryWindow = 'SignUpWindow') => {
121+
if (isDedicatedAuxillariesLocation()) {
122+
setIsOpen(false);
123+
setDeepLinkStep(null);
124+
return;
125+
}
126+
106127
setWindowState(win);
107128
setIsOpen(true);
108129
}, []);
@@ -113,6 +134,12 @@ export default function AuxillariesProvider({ children }: { children: React.Reac
113134
}, []);
114135

115136
const toggleAuxillaries = useCallback((win?: AuxillaryWindow) => {
137+
if (isDedicatedAuxillariesLocation()) {
138+
setIsOpen(false);
139+
setDeepLinkStep(null);
140+
return;
141+
}
142+
116143
if (typeof win !== 'undefined') setWindowState(win);
117144
setIsOpen((prev) => {
118145
const next = !prev;

uapi/app/auxillaries/components/AuxillariesSurface.tsx

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -455,7 +455,8 @@ export default function AuxillariesSurface({
455455

456456
const showLoginPane = activeWindow === 'SignInWindow' && !sessionUser;
457457
const usesApplicationOverlay = isApplicationRoute;
458-
const usesContainedAuxillariesSurface = usesApplicationOverlay || isDedicatedAuxillariesRoute;
458+
const usesContainedAuxillariesSurface = usesApplicationOverlay || isDedicatedAuxillariesRoute || isAuxillariesSurface;
459+
const usesBitcodeAuxillariesSurface = usesContainedAuxillariesSurface;
459460
const auxillariesSurfaceClass = isDedicatedAuxillariesRoute ? 'orbital-system-route' : 'orbital-system-overlay';
460461
const auxillariesBackgroundClass = usesContainedAuxillariesSurface
461462
? 'orbital-application-background'
@@ -468,7 +469,7 @@ export default function AuxillariesSurface({
468469
return (
469470
<div
470471
ref={containerRef}
471-
className={`orbital-system ${auxillariesSurfaceClass} ${activeWindow === 'SignUpWindow' && !isAuxillariesSurface && !usesApplicationOverlay ? 'orbital-system-onboarding' : ''} ${usesApplicationOverlay ? 'orbital-system-application' : ''} ${isDedicatedAuxillariesRoute ? 'orbital-system-route-surface' : ''} ${deferredAnimationsEnabled ? '' : 'animations-disabled'} ${className}`}
472+
className={`orbital-system ${auxillariesSurfaceClass} ${usesBitcodeAuxillariesSurface ? 'auxillaries-bitcode-surface' : ''} ${activeWindow === 'SignUpWindow' && !isAuxillariesSurface && !usesApplicationOverlay ? 'orbital-system-onboarding' : ''} ${usesApplicationOverlay ? 'orbital-system-application' : ''} ${isDedicatedAuxillariesRoute ? 'orbital-system-route-surface auxillaries-bitcode-route-surface' : ''} ${deferredAnimationsEnabled ? '' : 'animations-disabled'} ${className}`}
472473
tabIndex={0}
473474
onKeyDown={(event) => event.key === 'Escape' && onClose?.()}
474475
>
@@ -511,15 +512,17 @@ export default function AuxillariesSurface({
511512
)}
512513
</div>
513514

514-
<GPUAcceleration>
515-
<OrbitalRings
516-
count={4}
517-
baseSize={30}
518-
sizeIncrement={15}
519-
activeIndex={showLoginPane ? 0 : getAuxillaryRingIndex(currentStep)}
520-
className={`${auxillariesBackgroundClass} ${auxillariesBackgroundAnimationClass}`.trim()}
521-
/>
522-
</GPUAcceleration>
515+
{!usesContainedAuxillariesSurface ? (
516+
<GPUAcceleration>
517+
<OrbitalRings
518+
count={4}
519+
baseSize={30}
520+
sizeIncrement={15}
521+
activeIndex={showLoginPane ? 0 : getAuxillaryRingIndex(currentStep)}
522+
className={`${auxillariesBackgroundClass} ${auxillariesBackgroundAnimationClass}`.trim()}
523+
/>
524+
</GPUAcceleration>
525+
) : null}
523526

524527
<ContentVisibility containSize="600px 400px">
525528
{showLoginPane ? (

uapi/app/auxillaries/components/auxillary-pane-meta.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -109,13 +109,13 @@ export function getAuxillaryDescriptor(step: ConcreteAuxillaryPane) {
109109
export function getAuxillaryLayerLabel(step: ConcreteAuxillaryPane) {
110110
switch (step) {
111111
case 'connects':
112-
return 'outer ring';
112+
return 'connection lane';
113113
case 'interfaces':
114-
return 'mid ring';
114+
return 'interface lane';
115115
case 'profile':
116-
return 'inner ring';
116+
return 'identity lane';
117117
case 'btd':
118-
return 'core ring';
118+
return '$BTD lane';
119119
default:
120120
return 'auxillary';
121121
}
@@ -134,7 +134,7 @@ export function getAuxillariesWorkspaceHeading(mode: 'onboarding' | 'auxillaries
134134

135135
export function getAuxillariesWorkspaceDescription(mode: 'onboarding' | 'auxillaries') {
136136
return mode === 'auxillaries'
137-
? 'The four-ring model stays visible while the active auxillary opens in a stable reading surface tuned for the Bitcode Terminal, need measurement, settlements, interface posture, and auxillary follow-through.'
137+
? 'Use the selector list to keep each auxillary attached to the same stable reading surface: connections, interface defaults, wallet identity, balances, and follow-through stay one click apart without changing the Terminal context.'
138138
: 'Open Bitcode access in a stable auxillary read, then move between Profile, Connects, Interfaces, and $BTD without losing the active pane or route context.';
139139
}
140140

uapi/app/auxillaries/components/shared/AuxillariesWorkspacePanels.tsx

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,11 @@ export default function AuxillariesWorkspacePanels({
2222
onStepClick,
2323
}: AuxillariesWorkspacePanelsProps) {
2424
return (
25-
<div className="orbital-workspace-panel-list" role="list" aria-label="Auxillaries workspace panels">
25+
<div
26+
className="orbital-workspace-panel-list auxillaries-bitcode-selector-list"
27+
role="list"
28+
aria-label="Auxillaries workspace panels"
29+
>
2630
{steps.map((step) => {
2731
if (!step) return null;
2832

@@ -40,23 +44,29 @@ export default function AuxillariesWorkspacePanels({
4044
onStepClick(step);
4145
}
4246
}}
43-
className={`orbital-workspace-panel ${
47+
className={`orbital-workspace-panel auxillaries-bitcode-selector-card ${
4448
isActive
45-
? 'orbital-workspace-panel-current'
49+
? 'orbital-workspace-panel-current auxillaries-bitcode-selector-card-current'
4650
: isAvailable
47-
? 'orbital-workspace-panel-available'
48-
: 'orbital-workspace-panel-locked'
51+
? 'orbital-workspace-panel-available auxillaries-bitcode-selector-card-available'
52+
: 'orbital-workspace-panel-locked auxillaries-bitcode-selector-card-locked'
4953
}`}
5054
aria-label={`${descriptor.label} auxillary`}
5155
>
52-
<div className="orbital-workspace-panel-topline">
53-
<span className="orbital-workspace-panel-layer">{getAuxillaryLayerLabel(step)}</span>
54-
<span className="orbital-workspace-panel-state">
56+
<div className="orbital-workspace-panel-topline auxillaries-bitcode-selector-card-topline">
57+
<span className="orbital-workspace-panel-layer auxillaries-bitcode-selector-card-layer">
58+
{getAuxillaryLayerLabel(step)}
59+
</span>
60+
<span className="orbital-workspace-panel-state auxillaries-bitcode-selector-card-state">
5561
{isActive ? 'active' : isAvailable ? 'ready' : 'locked'}
5662
</span>
5763
</div>
58-
<p className="orbital-workspace-panel-label">{descriptor.label}</p>
59-
<p className="orbital-workspace-panel-copy">{descriptor.routeDescription}</p>
64+
<p className="orbital-workspace-panel-label auxillaries-bitcode-selector-card-label">
65+
{descriptor.label}
66+
</p>
67+
<p className="orbital-workspace-panel-copy auxillaries-bitcode-selector-card-copy">
68+
{descriptor.routeDescription}
69+
</p>
6070
</button>
6171
</div>
6272
);

uapi/app/layout.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import "@/styles/marketing-animations.css";
99
import "@/styles/orbital-rings.css";
1010
import "@/styles/orbital.css";
1111
import "@/styles/orbital-global.css";
12+
import "@/styles/auxillaries-bitcode.css";
1213
import "@/styles/skeleton-shine.css";
1314
import "@/styles/components.css";
1415
import { Analytics } from "@vercel/analytics/react"

0 commit comments

Comments
 (0)