mirror of
https://github.com/luxfi/bank-admin.git
synced 2026-10-30 17:01:57 +00:00
Custody split into three distinct modules (nav + route + page + sandbox data): - MPC (/mpc): threshold key-sharing custody — party set, key-share health, last-signed. - Safes (/safes): on-chain M-of-N multisig — owners, threshold, queued txns, nonce (+house treasury safes). - KMS (/kms): secrets/passphrases/API keys (masked); master key is MPC 3-of-5. - Nodes (/nodes): the tenant's own L1 — validator fleet, consensus health, RPC, latest blocks, throughput. Runtime white-label brand system (src/lib/brand.ts): ?brand=<id> (localStorage, default lux) drives theme (light/dark), accent, wordmark, legal, and title via CSS variables (real theme swap; index.html bootstraps pre-paint, no FOUC). - lux (default): dark true-black, ▼ 'Lux Financial', legal 'Lux Financial'. - acm: light + blue #1F4FFF, lowercase 'acm', legal 'ACM Global Inc'. Added a light @hanzo/ui palette keyed by data-theme; blue primary by data-brand. Co-authored-by: Hanzo Dev <[email protected]>
32 lines
1.6 KiB
HTML
32 lines
1.6 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en" class="h-full" data-theme="dark" data-brand="lux">
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<meta name="theme-color" content="#000000" />
|
|
<!-- Lux ▼ mark: white downward triangle on black. -->
|
|
<link rel="icon" type="image/svg+xml" href="data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20100%20100'%3E%3Crect%20width='100'%20height='100'%20fill='black'/%3E%3Cpath%20d='M50%2078%20L20%2030%20L80%2030%20Z'%20fill='white'/%3E%3C/svg%3E" />
|
|
<title>Lux Financial — Admin</title>
|
|
<meta name="description" content="White-label banking-as-a-service admin console — customers, accounts, treasury, cards, compliance, custody, and chain." />
|
|
<!-- Runtime white-label brand: resolve ?brand / localStorage before first paint (no FOUC). -->
|
|
<script>
|
|
(function () {
|
|
try {
|
|
var p = new URLSearchParams(location.search).get('brand')
|
|
var b = p || localStorage.getItem('lux_admin_brand') || 'lux'
|
|
if (b !== 'lux' && b !== 'acm') b = 'lux'
|
|
if (p) localStorage.setItem('lux_admin_brand', b)
|
|
var root = document.documentElement
|
|
root.setAttribute('data-theme', b === 'acm' ? 'light' : 'dark')
|
|
root.setAttribute('data-brand', b)
|
|
document.title = (b === 'acm' ? 'ACM Global Tech' : 'Lux Financial') + ' — Admin'
|
|
} catch (e) {}
|
|
})()
|
|
</script>
|
|
</head>
|
|
<body class="h-full">
|
|
<div id="root" class="h-full"></div>
|
|
<script type="module" src="/src/main.tsx"></script>
|
|
</body>
|
|
</html>
|