JSFiddle - React, Tailwind, and code Playground

HTML

<div class="right">
    <div class="dest"></div>
</div>
<div class="left">
    <div class="parent box"></div>
    <div class="child1 box"></div>
    <div class="child2 box"></div>
</div>

CSS

div.right {
    float:right;
    width:70%;
}
div.left {
    float:left;
    width:30%;
}
div.box {
    border:1px solid #808080;
}
div.parent {
    width:100px;
    height:100px;
}
div.child1 {
    width:50px;
    height:50px;
}
div.child2 {
    width:20px;
    height:20px;
}
div.dest {
    border:1px solid #808080;
    min-height:300px;
}

JavaScript

$(function () {
    $('.parent,.child1,.child2').draggable({
        revert: true
    });
    $('.dest').droppable({
        accept: '.parent',
        drop: function (event, ui) {
            $newElt = $('<div class="parent box"></div>');
            $newElt.appendTo(this);
            $newElt.droppable({
                accept: '.child1',
                drop: function (event, ui) {
                    $newtSubElt = $('<div class="child1 box"></div>');
                    $newtSubElt.appendTo(this);
                    $newtSubElt.droppable({
                        accept: '.child2',
                        drop: function (event, ui) {
                            $('<div class="child2 box"></div>').appendTo(this);
                        }
                    });
                }
            });
        }
    });
    
    
});