Shared React component library for Penguin Tech Inc applications. Elder dark theme (slate + amber/gold) out of the box.
npm install @penguintechinc/react-libsGitHub Packages auth required — add to .npmrc:
@penguintechinc:registry=https://npm.pkg.github.com
| Component | Description |
|---|---|
LoginPageBuilder |
Complete login page — GDPR, CAPTCHA, MFA, social login, WebAuthn passkey |
SidebarMenu |
Elder-style collapsible navigation sidebar |
FormModalBuilder |
Modal dialog with typed form fields, tabs, and validation |
AppConsoleVersion |
Logs app + API versions to browser console on startup |
import { LoginPageBuilder, SidebarMenu, FormModalBuilder } from '@penguintechinc/react-libs';
// Login page with passkey support
<LoginPageBuilder
api={{ loginUrl: '/api/v1/auth/login' }}
branding={{ appName: 'My App', logo: '/logo.png' }}
onSuccess={(r) => { localStorage.setItem('token', r.token); navigate('/dashboard'); }}
gdpr={{ enabled: true, privacyPolicyUrl: '/privacy' }}
passkey={{
enabled: true,
authenticationUrl: '/api/v1/auth/passkey/authenticate',
registrationUrl: '/api/v1/auth/passkey/register',
}}
/>
// Sidebar navigation
<SidebarMenu
categories={[{ header: 'Main', items: [{ name: 'Dashboard', href: '/dashboard', icon: HomeIcon }] }]}
currentPath={location.pathname}
onNavigate={(href) => navigate(href)}
/>📚 Full documentation: docs/react-libs/
- README — complete component overview
- API Reference — all props and types
- Changelog
- Migration Guide — adding passkey support (1.3.x)
AGPL-3.0 — Penguin Tech Inc