* feat(demo): create group tool
* feat(demo): create group shortcut
* refactor(core): split group service, controller, utils files
* feat(history): free history add group operations
* feat(demo): group node render
* feat(demo): group node registry
* refactor(stack): remove layer computing config
* feat(stack): line stackIndex cannot be recalculated by default
* feat(demo): group title & color palette acess form
* feat(demo): ungroup button & shortcut
* feat(demo): create group & ungroup operation register to free history service
* refactor(group): group shortcuts move to group-plugin
* refactor(group): group node render move to group-plugin
* fix(group): undo/redo of create node or ungroup not work
* perf(history): free history remove async operation
* feat(group): trigger select box inside group
* fix(group): container inside group
* fix(group): auto layout should not be affected by group node
* feat(container): support multi-layer nested containers
* fix(group): group css variables overwrite each other
* fix(container): node move in or out group shouldn't clear lines
* feat(demo): node should follow mouse after move out container button clicked
* feat(container): disable group move to non-group container node
* fix(container): cross-level node moving causing coord offset
* feat(demo): comment node support more button
* fix(demo): comment in container fromJSON
* feat(container): node into container show move out tips
* feat(group): node into group show move out tips
* feat(group): delete group when blocks is empty
* refactor(group): createFreeGroupPlugin move to container-plugin
* refactor(demo): replace disablePorts with defaultPorts
* fix(demo): react warning
* refactor(group): group plugin built-in GroupNodeRegistry
* refactor(group): create free-group-plugin
* fix(ci): lock & ts-check & test errors