// UBP sub-pages: Settings, Affiliations, Institutions, Publisher Dashboard.
// All share UBP's left rail so they feel like inner pages of the Personal Dapp.
function UBPRail({ active }) {
return (
<>
);
}
// ────────────────────────────────────────────────────────────── SETTINGS ─────
function SettingsDapp() {
const Group = ({ title, code, children }) => (
{children}
);
const Field = ({ label, hint, control, danger }) => (
{label}
{hint &&
{hint}
}
{control}
);
const Toggle = ({ on }) => (
);
const Input = ({ value, mono, w = 280 }) => (
{value}
);
return (
}>
}
title="Settings"
sub="Configure how the ecosystem represents you, who can transact on your behalf, and how your data flows."
actions={<>DiscardSave changes>}
/>
);
}
// ────────────────────────────────────────────────────── PUBLISHER DASHBOARD ─
function PublisherDashboardDapp() {
return (
}>
}
title="Publisher dashboard"
sub="Your published works, royalties and access revenue across the ecosystem. Royalties auto-split to co-authors, datasets and reproducers."
actions={<>
Export ledgerSubmit a manuscript
>}
/>
))}
{[
['Edit royalty splits across all works', Icon.bank],
['Add a co-author to dPID·a92f.04', Icon.user],
['Mint IP-NFT from DRAFT·220', Icon.cube],
['Open a translation bounty', Icon.doc],
['Withdraw to spending wallet', Icon.arrow],
].map(([k, ic], i) => (