Back to changelog index

3.11.1

Apr 21, 2026 · 4 packages · 8 unique changes · 3 release entries

libs

Release summaries

  • data-table-ux-stability-upgrade

    Harden the shared data-table stack and add a first-class composed toolbar for search, filter chips, selection summary, and hidden-column recovery.

    maintainer

    The shared table controller now sanitizes stale row and column state, and the design-system exports `DataTableToolbar` as the preferred composed UX layer above the primitive tables.

    integrator

    Integrators can adopt `DataTableToolbar` without changing the underlying `DataTable` or `useContractTable` API, and server-paginated tables now behave more defensively when data, columns, or totals change.

    customer

    The CRM and canonical data-grid examples now expose search, filter chips, selection summaries, safer column recovery, and less failure-prone table interactions across web and native paths.

  • design-system-core-hardening

    Add focused design-system subpaths and harden ThemeSpec runtime, Tailwind bridge, form-control helpers, and form renderer internals without changing root-import compatibility.

    maintainer

    Maintainers now have smaller internal design-system modules and focused subpaths for theme, controls, forms, layout, and renderers.

    integrator

    Integrators can keep root imports or adopt focused subpaths such as `@contractspec/lib.design-system/theme` and `@contractspec/lib.design-system/forms`.

    customer

    Contract-rendered forms and themed controls keep the same behavior while the design-system internals become easier to maintain.

  • design-system-themed-controls

    Add a ThemeSpec-aware and TranslationSpec-aware design-system form/control layer with stack primitives, exported control wrappers, and FormSpec renderer alignment.

    maintainer

    Maintainers now have a shared design-system control boundary for forms, stacks, themes, translations, and FormSpec rendering.

    integrator

    Integrators can import themed and translated controls from `@contractspec/lib.design-system` instead of reaching into web or native UI kit primitives directly.

    customer

    Product surfaces and contract-rendered forms can now share the same ThemeSpec-aware and TranslationSpec-aware design-system controls across web and React Native.

Migration guide

  • Move high-level table UX into `DataTableToolbar`

    Keep the primitive `DataTable` lean and compose richer UX through the existing `toolbar` slot.

    When: When a table needs search, active chips, selection summary, or hidden-column recovery.

    1. Import `DataTableToolbar` from `@contractspec/lib.design-system`.
    2. Pass the existing table controller into `DataTableToolbar`.
    3. Keep product-specific buttons or filter toggles in `actionsStart` or `actionsEnd`.
  • Reset page-level UI state when server filters change

    The examples now reset page index when search or status filters change so server-mode tables stay aligned with remote pagination.

    When: When composing server-paginated tables with external search or filter state.

    1. Reset `pageIndex` whenever remote search or filter inputs change.
    2. Continue passing sorting and pagination through the shared controller state.

Upgrade steps

  • Re-run focused table verification after upgrading

    assisted

    The web, native, design-system, and example surfaces should be validated together because the UX and stability changes span all four layers.

    Packages: @contractspec/lib.design-system, @contractspec/lib.presentation-runtime-react, @contractspec/lib.ui-kit-web, @contractspec/lib.ui-kit, @contractspec/example.crm-pipeline, @contractspec/example.data-grid-showcase

    1. Run the focused table test suites in `presentation-runtime-react`, `ui-kit-web`, `ui-kit`, `design-system`, `example.crm-pipeline`, and `example.data-grid-showcase`.
    2. Re-run package typechecks and lint checks for the touched libraries and examples.
    3. Spot-check server-paginated and client-side examples to confirm search, chips, loading, empty states, and column recovery behave as expected.
  • Prefer focused subpaths for new imports

    assisted

    Existing root imports stay supported, but new code can import from focused design-system surfaces.

    Packages: @contractspec/lib.design-system

    1. Use `@contractspec/lib.design-system/theme` for ThemeSpec runtime and Tailwind helpers.
    2. Use `@contractspec/lib.design-system/controls` for themed and translated controls.
    3. Use `@contractspec/lib.design-system/forms` for form layouts, controls, and `ZodForm`.
    4. Use `@contractspec/lib.design-system/layout` for stack primitives.
  • Prefer design-system controls for themed and translated forms

    manual

    Use the design-system form and stack exports before dropping to platform-specific UI kit primitives.

    Packages: @contractspec/lib.design-system

    1. Wrap surfaces in `DesignSystemThemeProvider` when ThemeSpec or scoped theme overrides are available.
    2. Wrap surfaces in `DesignSystemTranslationProvider` when TranslationSpec messages should resolve labels or placeholders.
    3. Import controls such as `Select`, `Autocomplete`, `DatePicker`, `TimePicker`, `DateTimePicker`, `Box`, `HStack`, and `VStack` from `@contractspec/lib.design-system`.

Unique release changes

  • - Harden the shared data-table stack and add a first-class composed toolbar for search, filter chips, selection summary, and hidden-column recovery.

    4 packages · 4 occurrences

  • - Keep the primitive `DataTable` lean and compose richer UX through the existing `toolbar` slot.

    4 packages · 4 occurrences

  • - The examples now reset page index when search or status filters change so server-mode tables stay aligned with remote pagination.

    4 packages · 4 occurrences

  • - The web, native, design-system, and example surfaces should be validated together because the UX and stability changes span all four layers.

    4 packages · 4 occurrences

  • - Add a ThemeSpec-aware and TranslationSpec-aware design-system form/control layer with stack primitives, exported control wrappers, and FormSpec renderer alignment.

    1 packages · 1 occurrences

  • - Add focused design-system subpaths and harden ThemeSpec runtime, Tailwind bridge, form-control helpers, and form renderer internals without changing root-import compatibility.

    1 packages · 1 occurrences

  • - Existing root imports stay supported, but new code can import from focused design-system surfaces.

    1 packages · 1 occurrences

  • - Use the design-system form and stack exports before dropping to platform-specific UI kit primitives.

    1 packages · 1 occurrences

Impacted packages

  • @contractspec/lib.design-system

    Layer: libs · 2 changes

  • @contractspec/lib.presentation-runtime-react

    Layer: libs · 4 changes

  • @contractspec/lib.ui-kit

    Layer: libs · 4 changes

  • @contractspec/lib.ui-kit-web

    Layer: libs · 4 changes