// ── The nav glyph for this module's player-portal row ───────────────────── // // `icon` is part of the nav-item contract (MODULE_API.md §3.3, 1.3.0): core // renders whatever component a row carries, exactly as it renders its own rows' // icons — and core's player portal draws a glyph on every row, so a row without // one reads as breakage rather than as a design. The client suite asserts it. // // The public header is text buttons and carries no icons, which is why this file // arrives with the player row and not before it. // // **The frame is copied from core's `PlayerPortalLayout`, deliberately and by // copy rather than by import** — 16px, `currentColor`, stroke 2. Four attributes // of presentation are not a component: putting them in the shared kit would // freeze core's icon sizing into the contract, where changing it later would be a // major bump. A module that wants to look like the nav it is in matches that nav. const Icon = ({ children }) => ( ) /** * A chain link — what the row is for. * * Not a gem, a person or a server: the portal's rows say what a player does * there, and what a player does at `/player/rust` is link an account. Core's own * neighbours are a gear (account), a shield (appeals) and a bell (notifications), * so the row has to read as a verb in that company. */ export const IconLink = () => ( ) export default { IconLink }