Install ReUI (MCP, skill, @reui registry, Tailwind v4, shadcn base-nova) and move the shared UI onto it: Button, Tag, Check, Input/Textarea, Segmented, Alert, Panel, Dialog, Tooltip, Menu and Select (Popover), Toast (sonner), the Table frame (DataGrid), the Dashboard KPI strip, the shnt Ops palette, Geist and the type scale. Design only: behaviour, texts and roles are unchanged. Tests that asserted the old DOM were updated; the tests now format numbers in English wherever they run. docs/reui-migration-plan.md records the plan and its decisions. Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
29 lines
947 B
TypeScript
29 lines
947 B
TypeScript
import { Fragment } from 'react'
|
|
import { THEME_CREDIT, FOOTER } from '../app/footer'
|
|
import styles from './FooterLinks.module.css'
|
|
|
|
/**
|
|
* Upstream's footer links, and beneath them the theme credit (the only thing this
|
|
* console adds here). See `app/footer.ts` and the styles module.
|
|
*/
|
|
export function FooterLinks({ className }: { className?: string }) {
|
|
return (
|
|
<div className={[styles.footer, className].filter(Boolean).join(' ')}>
|
|
{FOOTER.map((e, i) => (
|
|
<Fragment key={e.href}>
|
|
{i > 0 && <span className={styles.sep}> | </span>}
|
|
<a href={e.href} aria-label={e.name} target="_blank" rel="noreferrer">
|
|
{e.text}
|
|
</a>
|
|
</Fragment>
|
|
))}
|
|
<div className={styles.credit}>
|
|
Theme:{' '}
|
|
<a href={THEME_CREDIT.href} aria-label={THEME_CREDIT.name} target="_blank" rel="noreferrer">
|
|
{THEME_CREDIT.text}
|
|
</a>
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|