Skip to content

v0.22.0

Pre-release
Pre-release

Choose a tag to compare

@iamceeso iamceeso released this 15 Aug 03:54
· 103 commits to main since this release

This release introduces @verikit/ui-core, a new framework-agnostic package for shared UI behavior. It begins separating reusable application logic from the React integration, laying the foundation for additional framework adapters such as Vue.

What's new

@verikit/ui-core

  • Added a new framework-agnostic UI package.
  • Extracted shared form schema-tree utilities from @verikit/react.
  • Extracted form submission logic into the shared layer.
  • Moved layout/path utilities into ui-core.
  • Moved query-key and optimistic-update utilities into ui-core.
  • Added public API exports and package-level configuration for the new package.

React

  • Updated @verikit/react to consume shared primitives from @verikit/ui-core.
  • Kept React-specific hooks, components, rendering, and framework integration within the React package.
  • Updated form, resource, layout, query, and mutation integrations around the new shared architecture.

Testing

  • Migrated applicable framework-independent tests to ui-core.
  • Updated React layout tests for the new package boundaries.
  • Expanded schema-tree and shared UI coverage.
  • Added public API coverage for @verikit/ui-core.

Why this matters

Previously, reusable UI behavior lived inside @verikit/react, making it difficult for another framework integration to share the same behavior without duplicating React-owned code.

@verikit/ui-core establishes a common framework-neutral layer:

@verikit/core
      ↓
@verikit/ui-core
      ↓
 ┌────┴────┐
React     Vue

This keeps framework adapters focused on framework-specific concerns while allowing forms, queries, schema traversal, optimistic updates, and other reusable behavior to evolve from a common foundation.

This release is primarily an architectural step toward first-class Vue support while keeping the existing React integration aligned with the same shared primitives.

Full Changelog: v0.21.0...v0.22.0