diff --git a/package-lock.json b/package-lock.json
index 89dc67a..0825001 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -13,6 +13,7 @@
"@angular/common": "^21.0.4",
"@angular/compiler": "^21.0.4",
"@angular/core": "^21.0.4",
+ "@angular/elements": "^21.0.8",
"@angular/forms": "^21.0.4",
"@angular/platform-browser": "^21.0.4",
"@angular/platform-browser-dynamic": "^21.0.4",
@@ -22,6 +23,8 @@
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"lucide-angular": "^0.561.0",
+ "rete-angular-plugin": "^2.6.0",
+ "rete-render-utils": "^2.0.3",
"rxjs": "~7.8.0",
"tailwind-merge": "^3.4.0",
"tslib": "^2.3.0"
@@ -597,6 +600,22 @@
}
}
},
+ "node_modules/@angular/elements": {
+ "version": "21.0.8",
+ "resolved": "https://registry.npmjs.org/@angular/elements/-/elements-21.0.8.tgz",
+ "integrity": "sha512-eOvxX5eQw5u5Dp1UT6hhv7OSH6P/xzWb4MwiKS8fZhAJs0CNY3WtJfKTJCFJ3vwIk0zIoqz52OV1lrT6fuozHQ==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "engines": {
+ "node": "^20.19.0 || ^22.12.0 || >=24.0.0"
+ },
+ "peerDependencies": {
+ "@angular/core": "21.0.8",
+ "rxjs": "^6.5.3 || ^7.4.0"
+ }
+ },
"node_modules/@angular/forms": {
"version": "21.0.5",
"resolved": "https://registry.npmjs.org/@angular/forms/-/forms-21.0.5.tgz",
@@ -1001,6 +1020,15 @@
"node": ">=6.0.0"
}
},
+ "node_modules/@babel/runtime": {
+ "version": "7.28.4",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz",
+ "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
"node_modules/@babel/template": {
"version": "7.27.2",
"resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz",
@@ -8207,6 +8235,62 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/rete": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/rete/-/rete-2.0.6.tgz",
+ "integrity": "sha512-kPmlKCGFES2VWtY7Y7SCB8ZeXRMsgX5deza9cu4OwmfM/ZUimd461kC3hRyccoyVxE4POlHUx0gg2jcGfusHFg==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@babel/runtime": "^7.21.0"
+ }
+ },
+ "node_modules/rete-angular-plugin": {
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/rete-angular-plugin/-/rete-angular-plugin-2.6.0.tgz",
+ "integrity": "sha512-0GdYJbuo2V6mmN1ylzW/WUOetncAPWmZPpj+l2yw9sPUPpr/QtfBnXxUXje4cnY1ws7foq2gYeWsNnoClutUSw==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "peerDependencies": {
+ "@angular/common": ">= 12 < 22",
+ "@angular/core": ">= 12 < 22",
+ "@angular/elements": ">= 12 < 22",
+ "rete": "^2.0.1",
+ "rete-area-plugin": "^2.0.0",
+ "rete-render-utils": "^2.0.0",
+ "rxjs": ">=6.6.0",
+ "zone.js": "~0.11.4 || ~0.12.0 || ~0.13.0 || ~0.14.0 || ~0.15.0 || ~0.16.0"
+ }
+ },
+ "node_modules/rete-area-plugin": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/rete-area-plugin/-/rete-area-plugin-2.1.5.tgz",
+ "integrity": "sha512-iquEvwkQlcsO4cmgM3Z37TG0AWaE536dfA+lCJAze5YJzVx4RBaViUCqdB4dUA/utSytpBCkiDC4D3ztM9akGQ==",
+ "license": "MIT",
+ "peer": true,
+ "dependencies": {
+ "@babel/runtime": "^7.21.0"
+ },
+ "peerDependencies": {
+ "rete": "^2.0.0"
+ }
+ },
+ "node_modules/rete-render-utils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/rete-render-utils/-/rete-render-utils-2.0.3.tgz",
+ "integrity": "sha512-Oz4W2PNayHocRvlzadb5BCNf+tDzJ8RhTwB3ucBPCdCLKZ974wWDiTSCRfA287L2hmHVzRfBdyAwC03K9eP+4g==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/runtime": "^7.21.0"
+ },
+ "peerDependencies": {
+ "rete": "^2.0.0",
+ "rete-area-plugin": "^2.0.0"
+ }
+ },
"node_modules/retry": {
"version": "0.12.0",
"resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
@@ -10155,6 +10239,13 @@
"peerDependencies": {
"zod": "^3.25 || ^4"
}
+ },
+ "node_modules/zone.js": {
+ "version": "0.16.0",
+ "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.16.0.tgz",
+ "integrity": "sha512-LqLPpIQANebrlxY6jKcYKdgN5DTXyyHAKnnWWjE5pPfEQ4n7j5zn7mOEEpwNZVKGqx3kKKmvplEmoBrvpgROTA==",
+ "license": "MIT",
+ "peer": true
}
}
}
diff --git a/package.json b/package.json
index 4f270ca..6cacd68 100644
--- a/package.json
+++ b/package.json
@@ -28,6 +28,7 @@
"@angular/common": "^21.0.4",
"@angular/compiler": "^21.0.4",
"@angular/core": "^21.0.4",
+ "@angular/elements": "^21.0.8",
"@angular/forms": "^21.0.4",
"@angular/platform-browser": "^21.0.4",
"@angular/platform-browser-dynamic": "^21.0.4",
@@ -37,6 +38,8 @@
"class-variance-authority": "^0.7.1",
"clsx": "^2.1.1",
"lucide-angular": "^0.561.0",
+ "rete-angular-plugin": "^2.6.0",
+ "rete-render-utils": "^2.0.3",
"rxjs": "~7.8.0",
"tailwind-merge": "^3.4.0",
"tslib": "^2.3.0"
diff --git a/src/app/layouts/flow-editor/flow-editor.html b/src/app/layouts/flow-editor/flow-editor.html
index b7e28cf..909a776 100644
--- a/src/app/layouts/flow-editor/flow-editor.html
+++ b/src/app/layouts/flow-editor/flow-editor.html
@@ -7,15 +7,13 @@
-
-
+
+
@if (flow()) {
} @else {
diff --git a/src/app/layouts/flow-editor/flow-editor.ts b/src/app/layouts/flow-editor/flow-editor.ts
index bab1f96..e36a39d 100644
--- a/src/app/layouts/flow-editor/flow-editor.ts
+++ b/src/app/layouts/flow-editor/flow-editor.ts
@@ -2,10 +2,11 @@ import { Component, inject } from '@angular/core';
import { Flow } from '@models/flow';
import { EditorSidebar } from "@pages/main/editor-sidebar/editor-sidebar";
import { EditorStateHolder } from 'app/stores/editor';
+import { TitleToolbar } from "@shared/title-toolbar/title-toolbar";
@Component({
selector: 'app-flow-editor',
- imports: [EditorSidebar],
+ imports: [EditorSidebar, TitleToolbar],
templateUrl: './flow-editor.html',
styleUrl: './flow-editor.css',
})
diff --git a/src/app/pages/main/editor-sidebar/editor-sidebar.css b/src/app/pages/main/editor-sidebar/editor-sidebar.css
index e69de29..a791298 100644
--- a/src/app/pages/main/editor-sidebar/editor-sidebar.css
+++ b/src/app/pages/main/editor-sidebar/editor-sidebar.css
@@ -0,0 +1,3 @@
+.enabled:hover {
+ background-color: var(--color-gray-100) ;
+}
\ No newline at end of file
diff --git a/src/app/pages/main/editor-sidebar/editor-sidebar.html b/src/app/pages/main/editor-sidebar/editor-sidebar.html
index 7dc558d..15cc7b2 100644
--- a/src/app/pages/main/editor-sidebar/editor-sidebar.html
+++ b/src/app/pages/main/editor-sidebar/editor-sidebar.html
@@ -1,13 +1,55 @@
-
-
-
+