46 Commits

Author SHA1 Message Date
xiamidaxia
136a713f29
feat: add materials.components api (#288) 2025-05-28 03:07:15 +00:00
xiamidaxia
7d846dc48f
fix(free-layout): node deletion data loss after redo (#284)
* fix(demo): node required validate

* fix(free-layout): node deletion data loss after redo/undo
2025-05-27 11:35:58 +00:00
Louis Young
46dda28464
feat(line): custom port color by classname or css variable (#274) 2025-05-26 08:38:11 +00:00
Louis Young
2da1f3c5bf
fix(core): free document prevent to trigger flowDocument.addBlocksAsChildren (#273) 2025-05-26 08:37:57 +00:00
Louis Young
9ae858b363
fix(auto-layout): branches with multi sub nodes (#272) 2025-05-26 08:12:59 +00:00
Louis Young
805b262260
fix(group): auto layout adapts group (#223)
* fix(group): line inside multi-layer nested group cannot be selected

* feat(group): auto layout adapts group

* docs: update free-layout-demo example image

* chore(demo): update initial data

* feat(container): removeNodeLines api set to public
2025-05-13 10:12:23 +00:00
xiamidaxia
a98244c6a3
Feat/support react 16 (#221)
* chore: support react 16

* chore: support react 16
2025-05-13 06:16:00 +00:00
Louis Young
19ff04abc7
feat(free-demo): support create nodes group (#185)
* 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
2025-05-07 13:21:34 +00:00
Yiwei Mao
202c06040e
feat(variable): global variable scope (#182) 2025-04-28 02:55:24 +00:00
Louis Young
4a6e7a736f
fix(line): lines not re-rendering after hover (#181) 2025-04-27 08:55:59 +00:00
Yiwei Mao
311180b2c8
chore: hide useless api in variable engine (#180)
* chore: hide useless api in variable engine

* fix: variable-core mock chain ts check
2025-04-27 03:54:53 +00:00
Louis Young
cb942616ab
fix(line): hover detection of the fold line (#167) 2025-04-23 04:30:58 +00:00
Louis Young
e9c654935f
feat(free-demo): enhance copy and paste shortcut capabilities (#161)
* chore(demo): define enum workflow node type

* feat(demo): workflow copy shortcut

* feat(demo): workflow paste shortcut

* feat(demo): workflow rest built-in shortcuts

* fix(history): remove delay after node delete

* fix(demo): paste to container need adjust node position

* fix(core): reset selection after node deleted

* feat(demo): add en comments to shortcut code

* fix(ci): tsc error
2025-04-21 11:41:51 +00:00
xiamidaxia
673e6106b4
feat: add without form guide, fix error (#152) 2025-04-18 06:05:09 +00:00
Louis Young
5039f7c76b
chore(drag): remove alt key copy node (#149)
* chore(drag): remove alt key copy node

* fix: tsc error
2025-04-18 02:59:09 +00:00
Louis Young
f43d70ee88
fix(core): deduplication before singleton plugin init (#142) 2025-04-15 07:41:32 +00:00
Louis Young
288c48e56f
refactor: decoupling node panel and create node (#129)
* refactor(free-container-plugin): decoupling workflow node panel service private methods to utils

* fix(free-demo): multi-select style in sub-canvas

* fix(config): enable eslint formatter

* feat(free-container-plugin): call node panel on single select mode

* refactor(free-demo): make methods in onDragLineEnd more atomic and easier understand

* refactor(free-demo): make methods in useAddNode more atomic and easier understand

* refactor(free-demo): make methods in lineAddButton.onClick more atomic and easier understand

* chore(free-demo): default add node to canvas viewport center

* fix(node-panel): resolve promise after panel closed

* chore(free-demo): add comments to node panel related code

* chore(node-panel): clear useless code
2025-04-08 09:22:34 +00:00
Louis Young
a6d3b97057
feat: nextjs demo (#125)
* feat(demo-workflow): init demo-mastra-workflow project

* feat(demo-workflow): node render style

* feat(demo-workflow): init runtime api

* refactor(demo-workflow): component move to @editor

* refactor(demo-workflow): simplify editor client render

* refactor(demo-runtime): rename demo-mastra-workflow to demo-nextjs

* chore: rush update

* fix(plugin): package.json export dist type path

* feat(demo-workflow): remove semi-ui deps

* fix(demo-workflow): next build cannot find eslint config

* fix(demo-workflow): en lang by default
2025-04-03 07:58:20 +00:00
xiamidaxia
62e53350f1
feat: shortcuts support override pre handlers like delete (#93) 2025-03-26 07:26:30 +00:00
xiamidaxia
b1bb774238 feat: demo support sidebar 2025-03-25 20:32:17 +08:00
Louis Young
58f6676311
fix(canvas): prevent the dom of resize observer being null & simplified node selected highlight settings (#78)
* fix(canvas): prevent the dom of resize observer being null

* refactor(container): simplified node selected highlight settings

* fix(snap): react warning

* fix: tsc error
2025-03-24 03:10:46 +00:00
Louis Young
5dbb2f4b55
refactor: loop node render with sub canvas inside form (#75)
* refactor(container): loop node render with form

* refactor(container): simplified sub-canvas configuration

* refactor(container): move sub-canvas render into plugin
2025-03-20 11:59:56 +00:00
Louis Young
95c6b58264
chore(minimap): avoid drawing invalid rectangle (#71) 2025-03-20 08:23:58 +00:00
Louis Young
7f21a6a461
fix(container): moveout node from container is not allowed if it's invalid (#69) 2025-03-20 08:00:19 +00:00
liuyangxing
7d40e92e5f fix(canvas-core): cache the node stack index in node render data 2025-03-18 18:14:50 +08:00
liuyangxing
6e41032044 test(container): remove useless test files 2025-03-18 16:13:16 +08:00
liuyangxing
088368d48c refactor(container): allow user to customize render content component 2025-03-18 16:13:16 +08:00
liuyangxing
970fd09ec4 fix(container): container render bounds delay 2025-03-18 16:13:15 +08:00
liuyangxing
561c7c620c fix(canvas-core): select container node should not render selector layer in free layout 2025-03-18 16:13:15 +08:00
liuyangxing
e7656d4cec feat(free-demo): create loop node 2025-03-18 16:13:15 +08:00
liuyangxing
c83d06b593 feat(container): accessing form render 2025-03-18 16:13:15 +08:00
liuyangxing
19cbe6a560 feat(container): free container plugin with renderer & services 2025-03-18 16:13:15 +08:00
liuyangxing
23fa16b80c feat(select): only support shift key to trigger multi-select 2025-03-18 16:13:15 +08:00
liuyangxing
dba6190e1a feat(canvas-core): container node use meta.isContainer tag instead of SUB_CANVAS type 2025-03-18 16:13:15 +08:00
liuyangxing
5f1f2a6a03 feat(snap): node snapping and snap line rending can be disabled 2025-03-18 16:13:15 +08:00
liuyangxing
304cf69387 feat(history): free layout supports move node into container operation 2025-03-18 16:13:15 +08:00
knoxnoe
ed090867df fix(style): box-sizing for minimap and hover activation for brand-adder 2025-03-11 22:20:23 +08:00
dragooncjw
6b36def111 fix: reflect-metadata to dependencies 2025-03-03 15:00:45 +08:00
liuyangxing
c0ee319eba feat(canvas): set onDragLineEnd through editorProps 2025-02-28 18:32:42 +08:00
Louis Young
0db1c612ed
Merge pull request #6 from louisyoungx/feat/free-demo-node-panel
1. add node panel component
2. register node panel plugin
3. beautify minimap style
4. add node button access node panel
5. support add node through button on the line
2025-02-28 11:48:42 +08:00
dragooncjw
dba931f56e chore: update package versions 2025-02-27 21:19:42 +08:00
liuyangxing
086b575dda feat(free-lines-plugin): workflow lines layer depends on stack context manager directly 2025-02-27 21:18:36 +08:00
dragooncjw
6e9a83ec2d chore: update link 2025-02-27 18:08:47 +08:00
dragooncjw
c21422fd20 chore: migrate to bytedance 2025-02-27 17:31:02 +08:00
sanmaopep
1b2c0ea06e chore: add variable api 2025-02-25 16:19:18 +08:00
dragooncjw
d7bdf8a078 feat: init flowgram.ai
Co-Authored-By: xiamidaxia <xiamidaxia@icloud.com>
2025-02-21 16:26:12 +08:00