Back to changelog index

4.0.6

May 25, 2026 · 1 packages · 14 unique changes · 7 release entries

libsBreaking changes

This release affects the sharedLibs family.

Run contractspec connect adoption resolve --family sharedLibs to see how it impacts your project.

Release summaries

  • fix-rich-block-codemods-build

    Restore rich UI subpath type exports and isolate codemod declaration builds.

    maintainer

    Maintainers can build the data-grid showcase and codemods package without missing rich-block declarations or TS6059 rootDir errors.

    integrator

    Consumers importing `@lssm-tech/lib.ui-kit-web/rich-block` and related rich-reference subpaths receive generated publishConfig type/runtime targets.

  • forms-datetime-containment

    Keep web FormSpec datetime controls inside their responsive form columns.

    maintainer

    The web datetime picker now gives its composite date and time controls shrinkable width constraints.

    integrator

    Existing datetime picker and FormSpec renderer imports stay compatible while the composite control fits responsive grids.

    customer

    Datetime FormSpec fields now fit inside responsive form columns instead of overflowing into neighboring fields.

  • m3-ui-kit-web-graph-canvas-props

    M3 — GraphCanvasProps breaking changes (onDrilldown param type, FacetDimension.options plain strings, lock-at-mount backend); adaptive rendering backends, layout engines, theme cross-fade, P6/P7 layer components.

    maintainer

    Update onDrilldown call sites to destructure node.id from the GraphNode argument. Update FacetDimension.options to ReadonlyArray<string>. Remove backend hot-swap logic.

    integrator

    GraphCanvas and all five design-system templates now receive a full GraphNode object in onDrilldown. FacetDimension options must be plain string arrays. Rendering backend is locked at mount.

  • pagination-stack-layout

    Use shared stack layout primitives in the web pagination component while preserving semantic pagination markup.

    maintainer

    The pagination primitive now consumes the shared `HStack` API and `hStackVariants` instead of hand-rolled flex classes.

    integrator

    Existing imports and rendered pagination semantics stay compatible while layout classes align with the shared stack system.

    customer

    Pagination controls keep the same accessible labels and navigation behavior with no required migration.

  • resolver-autocomplete-floating-overlay

    Render resolver-backed combobox results as a floating overlay instead of inline form content.

    maintainer

    Editable/query combobox mode now portals its listbox and positions it from the input rect instead of rendering it as an inline sibling.

    integrator

    Existing combobox props and FormSpec autocomplete drivers remain compatible while resolver-backed result panels no longer change parent layout height.

    customer

    Autocomplete fields in ContractSpec web forms now open search results as an overlay that tracks the input width and scrolls internally.

  • ui-kit-web-button-forward-ref

    Forward refs through the web Button primitive and its slotted rendering path to stabilize Radix `asChild` triggers.

    maintainer

    The web Button primitive now uses `React.forwardRef` and passes refs through Radix Slot when `asChild` is enabled.

    integrator

    Existing Button imports stay compatible while Radix trigger wrappers receive stable forwarded refs.

    customer

    Popover-backed controls using Button triggers avoid ref churn that could produce React maximum update depth errors.

  • ui-kit-web-xyflow-react-peer

    Add @xyflow/react ^12.10.2 as optional peer dependency to ui-kit-web for advanced web graph canvas support.

    maintainer

    @xyflow/react ^12.10.2 added to peerDependencies (optional) and devDependencies. No code changes — this gates the future GraphCanvasAdvanced component behind an opt-in peer install.

    integrator

    Apps that want to render GraphCanvasAdvanced must install @xyflow/react. Apps that do not use graph canvas are unaffected; the peer is declared optional.

Deprecations

  • - id: facetdimension-options-objects; name: FacetDimension.options as object array; reason: Simplified to plain string array to reduce API surface; migration: Replace { value, label } objects with plain strings; use the key as the display value
  • - id: ondrilldown-nodeid-string; name: onDrilldown(nodeId string); reason: Full GraphNode object required for richer drill-down context; migration: Change handler signature to (node: GraphNode) => void; use node.id where bare ID was used

Migration guide

  • Update onDrilldown handler signatures

    Required

    Change all onDrilldown handlers from (nodeId string) to (node GraphNode).

    1. grep -r "onDrilldown" packages/ to find all call sites.
    2. Update each handler signature to accept GraphNode.
    3. Destructure node.id where the bare ID string was previously used.
  • Update FacetDimension options to plain strings

    Required

    Replace object arrays with ReadonlyArray<string>.

    1. Find all FacetDimension definitions with options containing objects.
    2. Replace each { value, label } object with the value string.

Upgrade steps

  • Remove dynamic backend switching

    manual

    The rendering backend is selected once at mount; remove any post-mount backend assignments.

    Packages: @lssm-tech/lib.ui-kit-web

    1. Remove any logic that reassigns the backend prop after initial render.
    2. Use selectBackend() from ui-kit-core to pre-compute the correct backend before rendering.
  • Install @xyflow/react only when using GraphCanvasAdvanced

    manual

    The peer is optional. Install it only if your app renders the advanced graph canvas component.

    Packages: @lssm-tech/lib.ui-kit-web

    1. Run `bun add @xyflow/react` in your Next.js or React web app when you adopt GraphCanvasAdvanced.
    2. No change needed for apps that use only the basic GraphCanvas (SVG-native, no reactflow dependency).
  • Verify custom pagination class overrides

    manual

    Consumers that override pagination class names should confirm their overrides still combine correctly with shared stack defaults.

    Packages: @lssm-tech/lib.ui-kit-web

    1. Reopen pagination surfaces that pass custom `className` values to `Pagination`, `PaginationContent`, or `PaginationEllipsis`.
    2. Confirm the controls still align horizontally and preserve expected spacing.

Unique release changes

  • - Add @xyflow/react ^12.10.2 as optional peer dependency to ui-kit-web for advanced web graph canvas support.

    1 packages · 1 occurrences

  • - Change all onDrilldown handlers from (nodeId string) to (node GraphNode).

    1 packages · 1 occurrences

  • - Consumers that override pagination class names should confirm their overrides still combine correctly with shared stack defaults.

    1 packages · 1 occurrences

  • - Forward refs through the web Button primitive and its slotted rendering path to stabilize Radix `asChild` triggers.

    1 packages · 1 occurrences

  • - id: facetdimension-options-objects; name: FacetDimension.options as object array; reason: Simplified to plain string array to reduce API surface; migration: Replace { value, label } objects with plain strings; use the key as the display value

    1 packages · 1 occurrences

  • - id: ondrilldown-nodeid-string; name: onDrilldown(nodeId string); reason: Full GraphNode object required for richer drill-down context; migration: Change handler signature to (node: GraphNode) => void; use node.id where bare ID was used

    1 packages · 1 occurrences

  • - Keep web FormSpec datetime controls inside their responsive form columns.

    1 packages · 1 occurrences

  • - M3 — GraphCanvasProps breaking changes (onDrilldown param type, FacetDimension.options plain strings, lock-at-mount backend); adaptive rendering backends, layout engines, theme cross-fade, P6/P7 layer components.

    1 packages · 1 occurrences

  • - Render resolver-backed combobox results as a floating overlay instead of inline form content.

    1 packages · 1 occurrences

  • - Replace object arrays with ReadonlyArray<string>.

    1 packages · 1 occurrences

  • - Restore rich UI subpath type exports and isolate codemod declaration builds.

    1 packages · 1 occurrences

  • - The peer is optional. Install it only if your app renders the advanced graph canvas component.

    1 packages · 1 occurrences

  • - The rendering backend is selected once at mount; remove any post-mount backend assignments.

    1 packages · 1 occurrences

  • - Use shared stack layout primitives in the web pagination component while preserving semantic pagination markup.

    1 packages · 1 occurrences

Impacted packages

  • @lssm-tech/lib.ui-kit-web

    Layer: libs · 1 changes