Skip to content

Releases: nomcopter/react-mosaic

React Mosaic v7.0.0-beta0 Release Notes

13 Mar 15:50
c3fdf10

Choose a tag to compare

Pre-release

React Mosaic v7.0.0-beta0 Release Notes

Please leave your feedback/bugs here #241

Breaking Changes

  • Tree Structure Migration: Changed from binary to n-ary tree format

    • Old format: { first: node, second: node }
    • New format: { children: [node, node, ...] }
    • Use convertLegacyToNary() utility for automatic conversion of existing layouts
  • Type System Updates: All JSX element types updated for React 19 compatibility

    • JSX.Element changed to React.JSX.Element throughout
    • React.ReactFragment removed (deprecated in React 19)
    • Components now require explicit React import in files using JSX
  • Minimum Requirements: Node.js 18+ required

  • React Peer Dependency: Now supports React 16-19 (updated from v6's 16-18)

Features

Tabbed Windows Support (#50, #140)

  • Full tabbed window layout support alongside split layouts
  • Drag windows to create tabbed interfaces
  • Tab switching, rearrangement, and drag-and-drop between tabs and splits
  • Works seamlessly with existing mosaic features

N-ary Tree Structure

  • Flexible tree nodes with multiple children instead of binary structure
  • Enables more sophisticated layout configurations
  • Better support for future layout types

Full ESM Module Support (#193)

  • Complete ES modules build alongside CommonJS
  • Proper exports field configuration in package.json
  • Dual module outputs: index.mjs (ESM) and index.cjs (CJS)
  • Works with modern build tools: Next.js, Vite, Webpack 5+
  • Source maps included for both module formats

Dependency Updates (#234)

  • Updated react-dnd-multi-backend to v9 for React 19 compatibility
  • All drag-and-drop libraries aligned with latest React versions

Bug Fixes

React 19 Compatibility (#235, #225, #231)

  • Fixed TypeScript JSX namespace errors with React 19.1.0
  • Resolved element.ref deprecation warnings in console
  • Updated type definitions to use React.JSX.Element
  • Removed deprecated React.ReactFragment usage
  • Component renders no longer throw warnings with React 19

Package Updated Versions

  • react-dnd-multi-backend: 9.0.0 (was 8.0.0)
  • react-dnd: 16.0.1
  • react-dnd-html5-backend: 16.0.1
  • react-dnd-touch-backend: 16.0.1
  • TypeScript: 5.5.4
  • Nx: 21.5.2
  • tsup (build tool): 8.5.0
  • Vitest (test framework): 3.0.0

v6.1.1

20 Dec 16:37

Choose a tag to compare

  • Updates peerDeps to work for React v19 #217

v6.1.0

18 Sep 06:08

Choose a tag to compare

New Functionality

  • Make it possible to 'toggle' the additional controls toolbar and to disable the overlay while it is open (🎩 @ murat-encord) #209

v6.0.1

24 Apr 18:50

Choose a tag to compare

Bugfixes

  • Stop pulling all of lodash into the bundle #206 (🎩 @fvsch)

v6.0.0

14 Feb 02:26

Choose a tag to compare

Possibly breaking change

  • Upgrades react-dnd to ^16 as well as change some internally exported classes to make that possible #195 (🎩 @jtbandes)

Bugfixes

  • Removes an event.stopPropagation() call in Split.tsx #202

v5.3.0

03 Aug 16:30

Choose a tag to compare

New Functionality

  • Make it possible to pass an explicit dragAndDropManager to Mosaic (🎩 @cbeer) #146

v5.2.2

03 Aug 15:45

Choose a tag to compare

Bugfixes

  • Update to work with versions of npm that install peer dependencies automatically (7+) #175

v5.2.0

29 Jul 15:36

Choose a tag to compare

New Functionality

  • Make it possible to add an onAdditionalControlsToggle callback #180

Bugfixes

  • Update to work with @types/react 18 (🎩 @JR000) #184

v5.1.0

26 Mar 23:39

Choose a tag to compare

New Functionality

  • Make it possible to configure blueprintNamespace in order to support Blueprint v4 (🎩 @casperOne) #161 #181

v5.0.0

02 May 01:38

Choose a tag to compare

Possibly breaking change

  • Upgrades react-dnd to ^14
  • Removes all requires of blueprint to make it more cross-platformly optional. This changes the DOM a bit. #138

Bugfixes

  • When dragging one of the top panels, if dragging starts within the top 10 pixels it does not register as a drag #156
  • Upgrade to React 17 #163