repositories
loading repo index
repositories
loading repo index
repository
loading code, commits, and activity
public Clawd ADK gateway launch mirror
stars
latest
clone command
git clone gitlawb://did:key:z6Mkq5mY...iFZ5/my-project-publ...git clone gitlawb://did:key:z6Mkq5mY.../my-project-publ...2fa351d6docs: add automaton and perps launch sources16d ago| #1 | import { |
| #2 | Box, |
| #3 | Bot, |
| #4 | CreditCard, |
| #5 | KeyRound, |
| #6 | Rocket, |
| #7 | } from "lucide-react"; |
| #8 | import type { NavKey } from "../types"; |
| #9 | |
| #10 | const items: Array<{ key: NavKey; label: string; icon: typeof Box }> = [ |
| #11 | { key: "sandboxes", label: "Sandboxes", icon: Box }, |
| #12 | { key: "inference", label: "Inference", icon: Bot }, |
| #13 | { key: "billing", label: "Billing", icon: CreditCard }, |
| #14 | { key: "spawn", label: "Spawn Automations", icon: Rocket }, |
| #15 | { key: "keys", label: "API Keys", icon: KeyRound }, |
| #16 | ]; |
| #17 | |
| #18 | interface SidebarProps { |
| #19 | active: NavKey; |
| #20 | onSelect: (next: NavKey) => void; |
| #21 | walletShort: string; |
| #22 | ageDays: number; |
| #23 | } |
| #24 | |
| #25 | export function Sidebar({ active, onSelect, walletShort, ageDays }: SidebarProps) { |
| #26 | return ( |
| #27 | <aside className="sidebar"> |
| #28 | <div className="sidebar__brand"> |
| #29 | <div className="sidebar__glyph">🦞</div> |
| #30 | <div> |
| #31 | <div className="sidebar__eyebrow">// TRENCH NAV</div> |
| #32 | <div className="sidebar__title">CRUSTACEAN AUTOMATION</div> |
| #33 | </div> |
| #34 | </div> |
| #35 | |
| #36 | <nav className="sidebar__nav"> |
| #37 | {items.map((item) => { |
| #38 | const Icon = item.icon; |
| #39 | return ( |
| #40 | <button |
| #41 | key={item.key} |
| #42 | className={`sidebar__link ${item.key === active ? "is-active" : ""}`} |
| #43 | onClick={() => onSelect(item.key)} |
| #44 | type="button" |
| #45 | > |
| #46 | <Icon size={18} /> |
| #47 | <span>{item.label}</span> |
| #48 | </button> |
| #49 | ); |
| #50 | })} |
| #51 | </nav> |
| #52 | |
| #53 | <div className="sidebar__wallet"> |
| #54 | <div className="sidebar__wallet-age">{ageDays}</div> |
| #55 | <div> |
| #56 | <div className="sidebar__wallet-label">// SHELL IDENTITY</div> |
| #57 | <div className="sidebar__wallet-value">{walletShort}</div> |
| #58 | </div> |
| #59 | </div> |
| #60 | </aside> |
| #61 | ); |
| #62 | } |
| #63 |