Namespaced · Access-controlled · Enterprise-ready

The ComponentRegistry

Layered, namespaced UI primitives for modern South African digital products. Built on React and Tailwind, distributed via the shadcn registry — scoped per client, secured per token.

Browse Components

Then install any component

npx shadcn@latest add @keystonecore/spinner
Architecture

Three layers. One registry.

A clean dependency direction — internal and client depend on core. Core never depends on either. Access is enforced per bearer token at the API gateway.

The core layer

Reusable, brand-agnostic primitives safe to ship as product IP. Generic enough for any client to consume — buttons, dialogs, data tables, layout shells, auth patterns.

Example registry names

  • core/button
  • core/spinner
  • core/data-table
  • core/site-header
  • core/account-menu

Choose your scope

Each scope maps to a different namespace. Install scripts configure your components.json registry entry automatically — the right URL, the right alias, one command.

@keystonecore Restricted

Keystone Core components

1 · Setup registry

2 · Install components

@visitza Restricted

Visitza components

1 · Setup registry

2 · Install components

Building for a new client? Get in touch to provision a scoped registry and bearer token.

Components

24

Interactive UI primitives with variant support

Spinner

v1.0.0

A phase-aware loading spinner that transitions through loading → filling → complete states, optionally revealing the South African flag on completion.

Open playground

Logo

v1.0.0

The Visitza wordmark logo with South African flag emblem. Supports full-colour and monotone rendering.

Open playground

Emblem

v1.0.0

The Visitza location-pin emblem with South African flag. Standalone version of the marker from the full Logo — ideal for favicons, avatars, and compact branding.

Open playground

Icon Button

v1.0.0

Minimal rounded icon-button primitive with overlay, ghost, and outline variants. Base component for SaveButton, ShareButton, and RecordButton.

Open playground

Save Button

v1.0.0

A reusable heart-toggle save button with overlay, ghost, and outline variants.

Open playground

Share Button

v1.0.0

A share-action icon button with a lift-off animation on click.

Open playground

Record Button

v1.0.0

A microphone-toggle record button with idle, recording, and confirmed states.

Open playground

Mobile Nav

v1.0.0

A composable fixed-bottom mobile navigation bar with asChild support.

Open playground

Marquee Band

v1.0.0

A composable infinite-scroll ticker strip with light and dark variants.

Open playground

Product Card

v1.0.0

A composable product display card with compound sub-components.

Open playground

Reveal

v1.0.0

A composable scroll-reveal primitive with shared IntersectionObserver.

Open playground

Stay Card

v1.0.0

An opinionated accommodation listing card built on ProductCard.

Open playground

Sheet

v1.0.0

A slide-out panel component for mobile navigation and side content.

Open playground

Header Nav

v1.0.0

Composable header navigation links with animated active indicators.

Open playground

Account Menu

v1.0.0

An auth-aware account dropdown with composable trigger variants.

Open playground

Keystone Core Logo

v1.0.0

Geometric dual-chevron emblem for the Keystone Core brand.

Open playground

Testimonial Card

v1.0.0

A composable testimonial card with star ratings, quote icon, avatar, and author details.

Open playground

Chat

v1.0.0

Platform-agnostic chat UI with theme variants (default, whatsapp, imessage, slack), composable compound components, and paste-to-parse input.

Open playground

Camera UI

v1.0.0

Client-only camera button and menu item components with SSR-safe capability detection.

Open playground

Image Cropper

v1.0.0

A 1:1 crop dialog with zoom, pan, and circular/square guide overlay.

Open playground

Photo Capture Dialog

v1.0.0

Camera capture dialog with front/back switching, capture preview, and file upload fallback.

Open playground

Photo Upload

v1.0.0

Composable photo upload with drag-drop, camera capture, image cropping, and preview — designed to compose with shadcn Avatar.

Open playground

Admin Stat

v1.0.0

A single metric card with label, large value, optional sub-text, icon, and trend indicator. Use independently or compose into AdminDashboard.

Open playground

Admin Activity Feed

v1.0.0

Timestamped event log with kind icons (token, client, registry). Use independently or compose into AdminDashboard.

Open playground

Hooks

15

Browser API hooks for progressive enhancement

usePrefersReducedMotion

v1.0.0

SSR-safe React hook that returns true when the user has enabled 'Reduce motion' in their OS accessibility settings.

Open playground

useWebShare

v1.0.0

A React hook for sharing content using the Web Share API.

Open playground

useGeolocation

v1.0.0

A React hook for accessing the browser Geolocation API with one-shot and continuous watch modes.

Open playground

useNetworkInformation

v1.0.0

A React hook for accessing the Network Information API with real-time updates.

Open playground

useVibration

v1.0.0

A React hook for controlling device vibration via the Vibration API. SSR-safe.

Open playground

useAudioRecorder

v1.0.0

A comprehensive React hook for audio recording with real-time analysis.

Open playground

useIndexedDB

v1.0.0

A generic React hook for IndexedDB CRUD operations with automatic database initialisation. SSR-safe.

Open playground

useLocalStorage

v1.0.0

A React hook for managing localStorage with automatic JSON serialisation. SSR-safe.

Open playground

useClientCapabilities

v1.0.0

SSR-safe hook for detecting client capabilities (camera, mounted state) using useSyncExternalStore.

Open playground

useAttachmentManager

v1.0.0

Hook for managing file attachments with local preview, upload progress, and message linking.

Open playground

useChatImport

v1.0.0

Hook for managing chat import state with a parser function dependency.

Open playground

formatPrice

v1.0.0

Lightweight locale-aware price formatter using Intl.NumberFormat. Defaults to South African Rand (ZAR).

Open playground

Chat Types

v1.0.0

Platform-agnostic types for chat data (messages, participants, attachments) compatible with WhatsApp, Telegram, iMessage, and custom sources.

Open playground

WhatsApp Parser

v1.0.0

Parses WhatsApp chat exports into generic Chat format with attachment and file matching support.

Open playground

Waitlist Email

v1.0.0

Renders waitlist confirmation emails (HTML + plain text) for public, partner, and supplier products. Compatible with any email service.

Open playground