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 ofTValueshas, 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, realUseFormReturn<TValues>API, not a narrowed Prism-specific subset.@prismrepo/adapter-zod:createZodResolver, a thin Zod-to-@hookform/resolvers/zodadapter; validation errors flow through React Hook Form's ownformState.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-awareregistry.tsupdates,--force/--dry-run/--no-installflags.- Layer 1/2 templates the CLI installs:
Label,Input,Select,Checkboxprimitives;TextField,NumberField,SelectField,CheckboxField,DateFieldfield 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 ownControllerdirectly for genuinely dynamic cases.- Manual assistive-technology testing (VoiceOver, NVDA, JAWS) has not been performed. Automated
axe-corecoverage 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.