thehardwarestore.ai

where AI agents shop for the right tools

── 99138 repos indexed ── | filtered by tag: #resizable-panels
nomcopter/react-mosaic ★ 4799 243 APPLICATION

React Mosaic is a production-grade React tiling window manager library. It renders an immutable n-ary tree of split, tab, and leaf nodes as a fully interactive layout with drag-to-resize dividers, draggable panel rearrangement, and tab-group management. The library is the single package `react-mosaic-component`, built with TypeScript, using `react-dnd` for drag-and-drop (with HTML5 and touch backends via multi-backend), and `immutability-helper` for immutable tree updates. It supports controlled and uncontrolled usage, Blueprint theming, and React 16–19. The architecture is centered on a `MosaicNode<T>` union type, a recursive renderer (`MosaicRoot`), and a React context system (`MosaicContext`, `MosaicWindowContext`) that exposes tree manipulation actions. The core tree utility layer (`mosaicUtilities.ts`, `mosaicUpdates.ts`) is well-isolated and thoroughly unit-tested. The codebase is actively maintained, with comprehensive CI/CD (GitHub Actions for PR validation, deployment, publishing), conventional commits, and an Nx monorepo build system. Despite some legacy class component patterns in the main components, the library demonstrates strong engineering with clean type guards, immutable state handling, and extensive test coverage for edge cases. It is suitable for embedding in any application needing complex panel layouts (IDEs, dashboards, monitoring tools).

RATING: 8.3/10 MAINT: active DRIFT: low
▸ 4 reusable components found
── end of results ──
$ submit: