@birhaus/primitives
v3.1.1
Published
BIRHAUS Primitive Components - Enhanced base UI components with DataTable, FilterBar, BulkActions, and cognitive load reduction
Maintainers
Readme
@birhaus/primitives
Base components for the BIRHAUS design system implementing cognitive load reduction and Spanish-first internationalization.
Installation
npm install @birhaus/primitivesKey Features
- Spanish-first design: All components support
labelEs/labelEnandtituloEs/tituloEnpatterns - Cognitive load optimization: Miller's Law (7±2) compliance built-in
- Accessibility by design: WCAG AA+ compliance with semantic HTML
- Undo-over-confirm patterns: No annoying confirmation dialogs
- Performance optimized: Virtual scrolling and optimistic updates
- TypeScript first: Full type safety with strict mode
Components
Core Components
BirhausButton- Spanish-first buttons with undo patternsBirhausInput- Accessible form inputs with cognitive validationBirhausCard- Progressive disclosure containersBirhausTable- Data tables with virtual scrollingBirhausSelect- Dropdowns with Miller's Law compliance
New Components (v0.8.0)
BirhausSearchableList- Virtual scrolling list with searchBirhausResourceCard- Progressive disclosure for complex dataBirhausBadge- Semantic status indicatorsBirhausDataTable- Advanced data managementBirhausBulkActionBar- Bulk operations with undo support
Layout & Navigation
BirhausPageLayout- Standard page structureBirhausContainer- Consistent spacing containersBirhausPageHeader- Page headers with breadcrumbs
Usage
import { BirhausButton, BirhausCard } from '@birhaus/primitives'
function DonationForm() {
return (
<BirhausCard
titleEs="Nueva Donación"
titleEn="New Donation"
status="info"
>
<BirhausButton
labelEs="Guardar Donación"
labelEn="Save Donation"
variant="primary"
undoConfig={{
enabled: true,
messageEs: "Donación guardada",
messageEn: "Donation saved"
}}
onClick={handleSave}
/>
</BirhausCard>
)
}BIRHAUS Principles
This package implements all core BIRHAUS principles:
- Spanish-first: Primary labels in Spanish, English as fallback
- Miller's Law: Maximum 7±2 items in lists, forms, navigation
- Undo over Confirm: No confirmation dialogs, implement undo instead
- Progressive Disclosure: Show details on demand
- Accessibility = Dignity: WCAG AA+ baseline, semantic HTML
- Performance Constraints: TTI < 2s, FCP < 1s
Real-world Usage
Perfect for:
- Church administration systems (IPU PY Admin)
- Financial management dashboards
- Educational platforms
- Spanish-speaking user interfaces
- Applications requiring high accessibility
API Documentation
All components support:
- Spanish-first labeling (
labelEs,labelEn) - Accessibility props (
aria-*,role) - Consistent sizing (
sm,md,lg) - Theme integration with
@birhaus/themes
Testing
Use @birhaus/test-utils for BIRHAUS-specific testing:
import { expectBirhausCompliance } from '@birhaus/test-utils'
test('component follows BIRHAUS principles', async () => {
render(<BirhausButton labelEs="Guardar" labelEn="Save" />)
await expectBirhausCompliance(screen.getByRole('button'))
})Contributing
See the main repository for contribution guidelines.
License
MIT - see LICENSE for details.
