Skip to Content
Prism UI

Changelog

What shipped in Prism v1.0.0, the first public release.

This page follows Keep a Changelog-style conventions.

1.0.0

First public release of all six packages, published under the @prismrepo npm scope.

Added

  • @prismrepo/core: PrismError/PrismConfigurationError, the base error types Prism's other packages throw; Prettify<T>, a type-level display utility. No runtime dependencies.
  • @prismrepo/forms: defineRegistry, a consumer-owned, non-global field registry (no module-level mutable state); createFormBuilder(registry).defineForm<TValues>(fields), type-checked so a field's component must bind exactly the value type the corresponding property of TValues has, not merely an assignable one; resolveFieldComponent, runtime resolution of a field's component by its registered type name.
  • @prismrepo/react: PrismProvider/usePrismRegistry, optional registry-sharing via context for consumers who want it outside a specific form's render tree.
  • @prismrepo/adapter-rhf: usePrismForm/PrismField, Controller-first binding to React Hook Form, preserving the complete, real UseFormReturn<TValues> API, not a narrowed Prism-specific subset.
  • @prismrepo/adapter-zod: createZodResolver, a thin Zod-to-@hookform/resolvers/zod adapter; validation errors flow through React Hook Form's own formState.errors, no separate error channel.
  • @prismrepo/cli (command: prismrepo): init, add <item...>, list. Copy-in installation (consumer owns the installed files) with content-hash-marker-based safe updates: never silently overwrites a consumer-edited or foreign file, idempotent re-installs, AST-aware registry.ts updates, --force/--dry-run/--no-install flags.
  • Layer 1/2 templates the CLI installs: Label, Input, Select, Checkbox primitives; TextField, NumberField, SelectField, CheckboxField, DateField field components. Tailwind-styled, CSS-variable-based design tokens, correct ARIA wiring, full keyboard operability, visible focus state.

Known limitations

See Advanced Usage and FAQ:

  • Nested field paths aren't supported in defineForm's configuration; flatten the value shape instead.
  • PrismField's configuration is static per form definition, not dynamic per render; use React Hook Form's own Controller directly for genuinely dynamic cases.
  • Manual assistive-technology testing (VoiceOver, NVDA, JAWS) has not been performed. Automated axe-core coverage is real and covers the full assembled form plus keyboard tab order.
  • Only Tailwind v4 has been exercised in a full application build; Tailwind v3's utility-class syntax is confirmed compatible, but a full v3 application build has not been tested.

On this page