@heojeongbo/react-mosaic-ui Copyright 2025-2026 HeoJeongBo This product includes software derived from react-mosaic (https://github.com/nomcopter/react-mosaic). Copyright 2019 Kevin Verdieck, originally developed at Palantir Technologies, Inc. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. -------------------------------------------------------------------------------- Derived from react-mosaic ------------------------- This work derives from react-mosaic v6.1.1. The layout data model and the public API of this package originate there: * the MosaicNode / MosaicParent / MosaicBranch / MosaicPath / MosaicUpdate / MosaicUpdateSpec type system and the Corner enum * the tree utilities isParent, getLeaves, getNodeAtPath, getAndAssertNodeAtPathExists, createBalancedTreeFromLeaves, getPathToCorner, getOtherDirection and getOtherBranch * the tree-update algorithms updateTree, createRemoveUpdate, createExpandUpdate, createHideUpdate and createDragToUpdates * the Mosaic / MosaicRoot / MosaicWindow / Split / MosaicDropTarget / RootDropTargets component contracts and the mosaic context actions * the react-dnd item type "MosaicWindow" * the CSS class taxonomy and drop-target geometry, re-emitted under an `rm-` prefix (the root container class, `react-mosaic`, is the one exception) Changes made in this product --------------------------- All of the above has been rewritten for this project. Notable modifications: * React function components and hooks in place of the Mosaic, MosaicRoot, MosaicWindow and Split class components * immer in place of immutability-helper, with the update-spec grammar and its interpreters reimplemented; no lodash, uuid, prop-types or Blueprint * plain CSS with `--rm-*` custom properties in place of LESS * the buttons/* component family, MosaicZeroState and MosaicWithoutDragDropContext removed or inlined * drag-and-drop rewired: a dnd-core manager is constructed directly, and tree mutation moved from the drag source to the drop target * BoundingBox changed from CSS-style inset percentages to edge percentages measured from the top-left, converted back to insets at render time * Feature-Sliced Design module layout, with the package rebuilt on Rollup * the test suite rewritten from mocha/chai to vitest Functionality original to this product includes the panel-manager layer (MosaicLayout, useMosaicPanels, usePersistedLayout, usePanelState, defineRegistry), tile maximize/restore, viewport-edge drop targets, and keyboard-accessible splitters. react-mosaic does not ship a NOTICE file; the upstream copyright line above is reproduced verbatim from its LICENSE. -------------------------------------------------------------------------------- Third-party software in the distributed bundle ---------------------------------------------- dist/index.js and dist/index.cjs bundle the following packages, each licensed MIT. react and react-dom are peer dependencies and are not bundled. classnames Copyright (c) 2018 Jed Watson immer Copyright (c) 2017 Michel Weststrate react-dnd Copyright (c) 2016 Dan Abramov react-dnd-html5-backend Copyright (c) 2015 Dan Abramov react-dnd-touch-backend Copyright (c) 2015 Dan Abramov dnd-core Copyright (c) 2015 Dan Abramov redux Copyright (c) 2015-present Dan Abramov fast-deep-equal Copyright (c) 2017 Evgeny Poberezkin @react-dnd/asap Copyright 2009–2014 Contributors. All rights reserved. @react-dnd/invariant part of the react-dnd project (https://github.com/react-dnd/react-dnd); ships no copyright notice of its own @react-dnd/shallowequal part of the react-dnd project (https://github.com/react-dnd/react-dnd); ships no copyright notice of its own The MIT License applies to each of the above: Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.