diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0c0918d4..58962d09 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,12 @@
 
 ## [Unreleased]
 
+## v0.1.17
+
+- Added node reconnection feature
+- Styling and theme/sidebar state updates
+- Dependency updates
+
 ## v0.1.16
 
 - Dependency updates
diff --git a/README.md b/README.md
index df951043..45bf0411 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,17 @@
 
 ![CI Build](https://github.com/waldiez/react/actions/workflows/main.yaml/badge.svg) [![Coverage Status](https://coveralls.io/repos/github/waldiez/react/badge.svg)](https://coveralls.io/github/waldiez/react) [![npm version](https://badge.fury.io/js/@waldiez%2Freact.svg)](https://badge.fury.io/js/@waldiez%2Freact)
 
-## Requirements
+## Installation from npm registry
+
+```bash
+# any of the following
+npm install @waldiez/react
+yarn add @waldiez/react
+pnpm add @waldiez/react
+bun add @waldiez/react
+```
+
+## Requirements for development
 
 - Node.js
 - yarn@4.5.3
@@ -22,7 +32,7 @@
     "react-icons": "^5.3.0",
     "react-select": "^5.8.3",
     "zundo": "^2.3.0",
-    "zustand": "^5.0.1"
+    "zustand": "^5.0.2"
 }
 ```
 
diff --git a/package.json b/package.json
index 2fb99046..cb837329 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
 {
     "name": "@waldiez/react",
     "license": "MIT",
-    "version": "0.1.16",
+    "version": "0.1.17",
     "type": "module",
     "main": "./dist/@waldiez.umd.cjs",
     "module": "./dist/@waldiez.js",
@@ -77,10 +77,10 @@
         "react-icons": "^5.4.0",
         "react-select": "^5.8.3",
         "zundo": "^2.3.0",
-        "zustand": "^5.0.1"
+        "zustand": "^5.0.2"
     },
     "devDependencies": {
-        "@eslint/compat": "^1.2.3",
+        "@eslint/compat": "^1.2.4",
         "@eslint/js": "9.16.0",
         "@stylistic/eslint-plugin": "^2.11.0",
         "@testing-library/jest-dom": "^6.6.3",
@@ -91,7 +91,7 @@
         "@types/gunzip-maybe": "^1.4.2",
         "@types/jest": "^29.5.14",
         "@types/jest-image-snapshot": "^6.4.0",
-        "@types/react": "^18.3.12",
+        "@types/react": "^18.3.13",
         "@types/react-dom": "^18.3.1",
         "@types/tar-stream": "^3.1.3",
         "@typescript-eslint/eslint-plugin": "^8.17.0",
@@ -101,10 +101,10 @@
         "@vitest/coverage-v8": "^2.1.8",
         "@vitest/ui": "^2.1.8",
         "ajv": "^8.17.1",
-        "dotenv": "^16.4.6",
+        "dotenv": "^16.4.7",
         "eslint": "^9.16.0",
         "eslint-config-prettier": "^9.1.0",
-        "eslint-import-resolver-typescript": "^3.6.3",
+        "eslint-import-resolver-typescript": "^3.7.0",
         "eslint-plugin-import": "^2.31.0",
         "eslint-plugin-prettier": "^5.2.1",
         "eslint-plugin-react-refresh": "^0.4.16",
@@ -115,7 +115,7 @@
         "lookpath": "^1.2.2",
         "playwright": "^1.49.0",
         "pre-commit": "^1.2.2",
-        "prettier": "^3.4.1",
+        "prettier": "^3.4.2",
         "react-hotkeys-hook": "^4.6.1",
         "react-select-event": "^5.5.1",
         "rimraf": "^6.0.1",
@@ -124,13 +124,13 @@
         "stylelint-config-standard": "^36.0.1",
         "stylelint-prettier": "^5.0.2",
         "tar-stream": "^3.1.7",
-        "terser": "^5.36.0",
+        "terser": "^5.37.0",
         "ts-json-schema-generator": "^2.3.0",
         "tsx": "^4.19.2",
-        "typedoc": "^0.27.2",
+        "typedoc": "^0.27.3",
         "typescript": "^5.7.2",
         "typescript-eslint": "^8.17.0",
-        "vite": "^6.0.2",
+        "vite": "^6.0.3",
         "vite-plugin-dts": "^4.3.0",
         "vite-plugin-externalize-deps": "^0.8.0",
         "vitest": "^2.1.8",
diff --git a/schema.json b/schema.json
index faf0cab9..87374c3d 100644
--- a/schema.json
+++ b/schema.json
@@ -1,5 +1,5 @@
 {
-  "$id": "https://github.com/waldiez/react/tree/v0.1.16/schema.json",
+  "$id": "https://github.com/waldiez/react/tree/v0.1.17/schema.json",
   "$schema": "http://json-schema.org/draft-07/schema#",
   "type": "object",
   "properties": {
diff --git a/src/waldiez/components/flow/main.tsx b/src/waldiez/components/flow/main.tsx
index e82795b8..b5bcc6dd 100644
--- a/src/waldiez/components/flow/main.tsx
+++ b/src/waldiez/components/flow/main.tsx
@@ -80,7 +80,7 @@ export const WaldiezFlow = (props: WaldiezFlowProps) => {
             onKeyDown={onKeyDown}
             onNodeDoubleClick={onNodeDoubleClick}
             onEdgeDoubleClick={onEdgeDoubleClick}
-            // onReconnect={store.onReconnect}
+            onReconnect={store.onReconnect}
             colorMode={colorMode}
             elevateNodesOnSelect={true}
             elevateEdgesOnSelect={true}
diff --git a/src/waldiez/store/creator.ts b/src/waldiez/store/creator.ts
index a30d5f15..6707fba3 100644
--- a/src/waldiez/store/creator.ts
+++ b/src/waldiez/store/creator.ts
@@ -1,7 +1,7 @@
 import diff from 'microdiff';
 import { temporal } from 'zundo';
 
-import { Edge, EdgeChange, Node, NodeChange, ReactFlowInstance, XYPosition } from '@xyflow/react';
+import { Connection, Edge, EdgeChange, Node, NodeChange, ReactFlowInstance, XYPosition } from '@xyflow/react';
 
 import { createStore } from 'zustand';
 
@@ -87,6 +87,8 @@ export const createWaldiezStore = (props?: WaldiezStoreProps) => {
         updateEdgePath: (id: string, agentType: WaldiezAgentNodeType) =>
           EdgesStore.updateEdgePath(id, agentType, get, set),
         getEdgeSourceAgent: (edge: Edge) => EdgesStore.getEdgeSourceAgent(edge, get),
+        onReconnect: (oldEdge: Edge, newConnection: Connection) =>
+          EdgesStore.onReconnect(oldEdge, newConnection, get, set),
         // nodes
         getNodes: () => get().nodes,
         onNodesChange: (changes: NodeChange<Node>[]) => NodesStore.onNodesChange(changes, get, set),
diff --git a/src/waldiez/store/edges/index.ts b/src/waldiez/store/edges/index.ts
index d0f6a7cc..484b3883 100644
--- a/src/waldiez/store/edges/index.ts
+++ b/src/waldiez/store/edges/index.ts
@@ -1,4 +1,4 @@
-import { Edge, EdgeChange, applyEdgeChanges } from '@xyflow/react';
+import { Connection, Edge, EdgeChange, applyEdgeChanges } from '@xyflow/react';
 
 import {
   WaldiezAgentNode,
@@ -267,4 +267,83 @@ export class EdgesStore {
       updatedAt: new Date().toISOString()
     });
   };
+
+  static onReconnect: (oldEdge: Edge, newConnection: Connection, get: typeOfGet, set: typeOfSet) => void = (
+    oldEdge,
+    newConnection,
+    get,
+    set
+  ) => {
+    const { oldSourceNode, oldTargetNode, newSourceNode, newTargetNode, color } = getReconnectNodesAndColor(
+      oldEdge,
+      newConnection,
+      get
+    );
+    if (!oldSourceNode || !oldTargetNode || !newSourceNode || !newTargetNode) {
+      console.error('Not all nodes found');
+      return;
+    }
+    if (oldSourceNode.id === newSourceNode.id && oldTargetNode.id === newTargetNode.id) {
+      return;
+    }
+    if (!color) {
+      console.error('Color not found');
+      return false;
+    }
+    set({
+      edges: [
+        ...get().edges.map(edge => {
+          if (edge.id !== oldEdge.id) {
+            return edge;
+          }
+          return {
+            ...oldEdge,
+            source: newConnection.source,
+            target: newConnection.target,
+            ...edgeCommonStyle(oldEdge.type as 'chat' | 'nested' | 'group' | 'hidden', color)
+          };
+        })
+      ],
+      updatedAt: new Date().toISOString()
+    });
+    EdgesStore.resetEdgePositions(get, set);
+    EdgesStore.resetEdgeOrders(get, set);
+  };
 }
+
+const getReconnectNodesAndColor = (
+  oldEdge: Edge,
+  newConnection: Connection,
+  get: typeOfGet
+): {
+  oldSourceNode: WaldiezAgentNode | undefined;
+  oldTargetNode: WaldiezAgentNode | undefined;
+  newSourceNode: WaldiezAgentNode | undefined;
+  newTargetNode: WaldiezAgentNode | undefined;
+  color: string | undefined;
+} => {
+  let oldSourceNode: WaldiezAgentNode | undefined;
+  let oldTargetNode: WaldiezAgentNode | undefined;
+  let newSourceNode: WaldiezAgentNode | undefined;
+  let newTargetNode: WaldiezAgentNode | undefined;
+  let color: string | undefined;
+  for (const node of get().nodes) {
+    if (node.id === oldEdge.source) {
+      oldSourceNode = node as WaldiezAgentNode;
+    }
+    if (node.id === oldEdge.target) {
+      oldTargetNode = node as WaldiezAgentNode;
+    }
+    if (node.id === newConnection.source) {
+      newSourceNode = node as WaldiezAgentNode;
+      color = AGENT_COLORS[newSourceNode.data.agentType];
+    }
+    if (node.id === newConnection.target) {
+      newTargetNode = node as WaldiezAgentNode;
+    }
+    if (oldSourceNode && oldTargetNode && newSourceNode && newTargetNode) {
+      break;
+    }
+  }
+  return { oldSourceNode, oldTargetNode, newSourceNode, newTargetNode, color };
+};
diff --git a/src/waldiez/store/selector.ts b/src/waldiez/store/selector.ts
index 2febef14..2e0d443b 100644
--- a/src/waldiez/store/selector.ts
+++ b/src/waldiez/store/selector.ts
@@ -30,6 +30,7 @@ export const selector = (store: WaldiezState) => ({
   updateEdgePath: store.updateEdgePath,
   updateEdgeData: store.updateEdgeData,
   getEdgeSourceAgent: store.getEdgeSourceAgent,
+  onReconnect: store.onReconnect,
   // nodes
   getNodes: store.getNodes,
   onNodesChange: store.onNodesChange,
diff --git a/src/waldiez/store/types.ts b/src/waldiez/store/types.ts
index f287981e..55b0f65f 100644
--- a/src/waldiez/store/types.ts
+++ b/src/waldiez/store/types.ts
@@ -1,4 +1,5 @@
 import {
+  Connection,
   Edge,
   EdgeChange,
   Node,
@@ -77,6 +78,7 @@ export type WaldiezState = WaldiezStoreProps & {
   updateEdgePath: (id: string, agentType: WaldiezAgentNodeType) => void;
   updateEdgeData: (id: string, data: Edge['data']) => void;
   getEdgeSourceAgent: (edge: Edge) => WaldiezAgentNode | null;
+  onReconnect: (oldEdge: Edge, newConnection: Connection) => void;
   // nodes
   getNodes: () => Node[];
   onNodesChange: OnNodesChange;
diff --git a/src/waldiez/utils/storage/sidebar.ts b/src/waldiez/utils/storage/sidebar.ts
index 8d5862af..92eb8ff3 100644
--- a/src/waldiez/utils/storage/sidebar.ts
+++ b/src/waldiez/utils/storage/sidebar.ts
@@ -6,6 +6,10 @@ const __SIDEBAR_STORAGE_KEY = 'waldiez_sidebar';
  * @returns boolean
  */
 export const isSidebarCollapsed = (storageId: string) => {
+  const fromBody = getIsSidebarCollapsedFromBody();
+  if (typeof fromBody === 'boolean') {
+    return fromBody;
+  }
   const storageValue = localStorage.getItem(__SIDEBAR_STORAGE_KEY);
   if (storageValue) {
     try {
@@ -29,6 +33,7 @@ export const setSidebarCollapsed = (storageId: string, isCollapsed: boolean) =>
   const lockFile = `waldiez_sidebar_${storageId}.lock`;
   if (!window.localStorage.getItem(lockFile)) {
     window.localStorage.setItem(lockFile, '1');
+    setSidebarCollapsedToBody(isCollapsed);
     const sidebars = getStoredSidebarStates();
     sidebars[storageId] = isCollapsed.toString();
     localStorage.setItem(__SIDEBAR_STORAGE_KEY, JSON.stringify(sidebars));
@@ -54,3 +59,31 @@ const getStoredSidebarStates = () => {
   }
   return sidebars;
 };
+
+/**
+ * Get the initial state of the sidebar from the body class.
+ * @returns boolean | undefined
+ */
+const getIsSidebarCollapsedFromBody = () => {
+  if (document.body.classList.contains('waldiez-sidebar-collapsed')) {
+    return true;
+  }
+  if (document.body.classList.contains('waldiez-sidebar-expanded')) {
+    return false;
+  }
+  return undefined;
+};
+
+/**
+ * Set the state of the sidebar to the body class.
+ * @param isCollapsed - The state of the sidebar
+ */
+const setSidebarCollapsedToBody = (isCollapsed: boolean) => {
+  if (isCollapsed) {
+    document.body.classList.add('waldiez-sidebar-collapsed');
+    document.body.classList.remove('waldiez-sidebar-expanded');
+  } else {
+    document.body.classList.add('waldiez-sidebar-expanded');
+    document.body.classList.remove('waldiez-sidebar-collapsed');
+  }
+};
diff --git a/src/waldiez/utils/storage/theme.ts b/src/waldiez/utils/storage/theme.ts
index 304ec07c..ba9af497 100644
--- a/src/waldiez/utils/storage/theme.ts
+++ b/src/waldiez/utils/storage/theme.ts
@@ -6,9 +6,14 @@ const __THEME_STORAGE_KEY = 'waldiez_theme';
  * Check if the current mode is dark
  * @returns boolean
  **/
+// eslint-disable-next-line max-statements
 export const isDarkMode = (flowId: string, storageId: string) => {
   // first check if the theme is set in local storage
   // in storage: {waldiez_theme: {storageId: 'dark/light'}}
+  const fromBodyClass = classInBody();
+  if (typeof fromBodyClass === 'boolean') {
+    return fromBodyClass;
+  }
   const fromLocalStorage = themeInLocalStorage(storageId);
   if (typeof fromLocalStorage === 'boolean') {
     return fromLocalStorage;
@@ -42,6 +47,7 @@ export const setDarkMode = (flowId: string, storageId: string, dark: boolean) =>
     themes[storageId] = dark ? 'dark' : 'light';
     window.localStorage.setItem(__THEME_STORAGE_KEY, JSON.stringify(themes));
     updateFlowDivClass(flowId, dark);
+    updateBodyClass(dark);
     setTimeout(() => {
       window.localStorage.removeItem(lockFile);
     }, 200);
@@ -86,6 +92,16 @@ const updateFlowDivClass = (flowId: string, dark: boolean) => {
   }
 };
 
+const updateBodyClass = (dark: boolean) => {
+  if (dark) {
+    document.body.classList.add('waldiez-dark');
+    document.body.classList.remove('waldiez-light');
+  } else {
+    document.body.classList.add('waldiez-light');
+    document.body.classList.remove('waldiez-dark');
+  }
+};
+
 const themeInLocalStorage = (storageId: string) => {
   const theme = window.localStorage.getItem(__THEME_STORAGE_KEY);
   if (theme) {
@@ -122,3 +138,13 @@ const themeInRootDiv = (flowId: string) => {
   }
   return null;
 };
+
+const classInBody = () => {
+  if (document.body.classList.contains('waldiez-dark')) {
+    return true;
+  }
+  if (document.body.classList.contains('waldiez-light')) {
+    return false;
+  }
+  return null;
+};
diff --git a/tests/browser/__snapshots__/waldiez.test.tsx.snap b/tests/browser/__snapshots__/waldiez.test.tsx.snap
index ec63ab47..c4ce6542 100644
--- a/tests/browser/__snapshots__/waldiez.test.tsx.snap
+++ b/tests/browser/__snapshots__/waldiez.test.tsx.snap
@@ -3,7 +3,9 @@
 exports[`All > should render Waldiez components 1`] = `
 {
   "asFragment": [Function],
-  "baseElement": <body>
+  "baseElement": <body
+    class="waldiez-light"
+  >
     
     
     
diff --git a/tests/components/sidebar/sidebar.test.tsx b/tests/components/sidebar/sidebar.test.tsx
index 41ac3f7b..3fbd44f6 100644
--- a/tests/components/sidebar/sidebar.test.tsx
+++ b/tests/components/sidebar/sidebar.test.tsx
@@ -4,6 +4,7 @@ import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
 import { SideBar } from '@waldiez/components/sidebar';
 import { SideBarProps } from '@waldiez/components/sidebar/types';
 import { WaldiezProvider } from '@waldiez/store';
+import { isSidebarCollapsed } from '@waldiez/utils/storage';
 
 const flowId = 'test';
 const storageId = 'test-storage';
@@ -58,6 +59,8 @@ describe('SideBar', () => {
     removeItemSpy.mockClear();
     vi.resetAllMocks();
     vi.useRealTimers();
+    document.body.classList.remove('waldiez-sidebar-collapsed');
+    document.body.classList.remove('waldiez-sidebar-expanded');
   });
 
   it('should render successfully', () => {
@@ -75,6 +78,18 @@ describe('SideBar', () => {
     expect(sidebar).toHaveClass('sidebar collapsed', { exact: true });
   });
 
+  it('should get the state of the sidebar from the body class', () => {
+    document.body.classList.add('waldiez-sidebar-collapsed');
+    expect(getItemSpy).toBeCalledTimes(0);
+    expect(isSidebarCollapsed(storageId)).toBe(true);
+    document.body.classList.remove('waldiez-sidebar-collapsed');
+    document.body.classList.add('waldiez-sidebar-expanded');
+    expect(isSidebarCollapsed(storageId)).toBe(false);
+    document.body.classList.remove('waldiez-sidebar-expanded');
+    getItemSpy.mockReturnValueOnce(`{"${storageId}":"true"}`);
+    expect(isSidebarCollapsed(storageId)).toBe(true);
+  });
+
   it('should call onEditFlow', () => {
     renderSidebar();
     expect(HTMLDialogElement.prototype.showModal).not.toHaveBeenCalled();
diff --git a/tests/theme.test.ts b/tests/theme.test.ts
index 8c481fce..412e0022 100644
--- a/tests/theme.test.ts
+++ b/tests/theme.test.ts
@@ -19,6 +19,8 @@ describe('theme', () => {
     getItemSpy.mockClear();
     setItemSpy.mockClear();
     removeItemSpy.mockClear();
+    document.body.classList.remove('waldiez-light');
+    document.body.classList.remove('waldiez-dark');
   });
 
   it('should return storage value', () => {
@@ -95,4 +97,13 @@ describe('theme', () => {
     expect(isDarkMode('test', 'test')).toBe(true);
     document.body.removeChild(flowRoot);
   });
+
+  it('should use the body class if set', () => {
+    document.body.classList.add('waldiez-dark');
+    expect(isDarkMode('test', 'test')).toBe(true);
+    document.body.classList.remove('waldiez-dark');
+    document.body.classList.add('waldiez-light');
+    expect(isDarkMode('test', 'test')).toBe(false);
+    document.body.classList.remove('waldiez-light');
+  });
 });
diff --git a/yarn.lock b/yarn.lock
index fed47fca..2438741b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -74,7 +74,20 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@babel/generator@npm:^7.23.0, @babel/generator@npm:^7.25.9, @babel/generator@npm:^7.26.0":
+"@babel/generator@npm:^7.23.0":
+  version: 7.26.3
+  resolution: "@babel/generator@npm:7.26.3"
+  dependencies:
+    "@babel/parser": "npm:^7.26.3"
+    "@babel/types": "npm:^7.26.3"
+    "@jridgewell/gen-mapping": "npm:^0.3.5"
+    "@jridgewell/trace-mapping": "npm:^0.3.25"
+    jsesc: "npm:^3.0.2"
+  checksum: 10/c1d8710cc1c52af9d8d67f7d8ea775578aa500887b327d2a81e27494764a6ef99e438dd7e14cf7cd3153656492ee27a8362980dc438087c0ca39d4e75532c638
+  languageName: node
+  linkType: hard
+
+"@babel/generator@npm:^7.25.9, @babel/generator@npm:^7.26.0":
   version: 7.26.2
   resolution: "@babel/generator@npm:7.26.2"
   dependencies:
@@ -198,7 +211,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.5, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.25.3, @babel/parser@npm:^7.25.4, @babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.26.2":
+"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.25.3, @babel/parser@npm:^7.25.4, @babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.26.2":
   version: 7.26.2
   resolution: "@babel/parser@npm:7.26.2"
   dependencies:
@@ -209,6 +222,17 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@babel/parser@npm:^7.20.5, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.26.3":
+  version: 7.26.3
+  resolution: "@babel/parser@npm:7.26.3"
+  dependencies:
+    "@babel/types": "npm:^7.26.3"
+  bin:
+    parser: ./bin/babel-parser.js
+  checksum: 10/e7e3814b2dc9ee3ed605d38223471fa7d3a84cbe9474d2b5fa7ac57dc1ddf75577b1fd3a93bf7db8f41f28869bda795cddd80223f980be23623b6434bf4c88a8
+  languageName: node
+  linkType: hard
+
 "@babel/plugin-transform-react-jsx-self@npm:^7.25.9":
   version: 7.25.9
   resolution: "@babel/plugin-transform-react-jsx-self@npm:7.25.9"
@@ -294,7 +318,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@babel/types@npm:^7.0.0, @babel/types@npm:^7.17.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.23.0, @babel/types@npm:^7.24.7, @babel/types@npm:^7.25.4, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0":
+"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.25.4, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0":
   version: 7.26.0
   resolution: "@babel/types@npm:7.26.0"
   dependencies:
@@ -304,6 +328,16 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@babel/types@npm:^7.17.0, @babel/types@npm:^7.23.0, @babel/types@npm:^7.24.7, @babel/types@npm:^7.26.3":
+  version: 7.26.3
+  resolution: "@babel/types@npm:7.26.3"
+  dependencies:
+    "@babel/helper-string-parser": "npm:^7.25.9"
+    "@babel/helper-validator-identifier": "npm:^7.25.9"
+  checksum: 10/c31d0549630a89abfa11410bf82a318b0c87aa846fbf5f9905e47ba5e2aa44f41cc746442f105d622c519e4dc532d35a8d8080460ff4692f9fc7485fbf3a00eb
+  languageName: node
+  linkType: hard
+
 "@bcoe/v8-coverage@npm:^0.2.3":
   version: 0.2.3
   resolution: "@bcoe/v8-coverage@npm:0.2.3"
@@ -1013,15 +1047,15 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@eslint/compat@npm:^1.2.3":
-  version: 1.2.3
-  resolution: "@eslint/compat@npm:1.2.3"
+"@eslint/compat@npm:^1.2.4":
+  version: 1.2.4
+  resolution: "@eslint/compat@npm:1.2.4"
   peerDependencies:
     eslint: ^9.10.0
   peerDependenciesMeta:
     eslint:
       optional: true
-  checksum: 10/5a8fc6ecb127a1ce757c2b94e4a71fd72939c3e9007eb80c0a819618e1c7cc98ffe3e5229a504c52e6f5b5dc0f6be3b899fa6a3dedb220cb4a02c8d5d0c333df
+  checksum: 10/872ac21e3f430575ba70916d83f5a4e7e9cc7fa953111c99ecef225d1ed05b66fbdb5034761dd9035f00c3f0d7ca7657f8cbfa4ff7ead3967f630c8c783d2beb
   languageName: node
   linkType: hard
 
@@ -2103,7 +2137,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@types/react@npm:*, @types/react@npm:^18.3.12":
+"@types/react@npm:*":
   version: 18.3.12
   resolution: "@types/react@npm:18.3.12"
   dependencies:
@@ -2113,6 +2147,16 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@types/react@npm:^18.3.13":
+  version: 18.3.13
+  resolution: "@types/react@npm:18.3.13"
+  dependencies:
+    "@types/prop-types": "npm:*"
+    csstype: "npm:^3.0.2"
+  checksum: 10/4f2b851cabdb68430b50998ad18f206edaea5b3c651d92e3573d86b7ac740224a91b7ca63176fa70e1defc78459faf518e5d2f58e1ba2839b1f12365dab70de2
+  languageName: node
+  linkType: hard
+
 "@types/stack-utils@npm:^2.0.0":
   version: 2.0.3
   resolution: "@types/stack-utils@npm:2.0.3"
@@ -2546,7 +2590,7 @@ __metadata:
   version: 0.0.0-use.local
   resolution: "@waldiez/react@workspace:."
   dependencies:
-    "@eslint/compat": "npm:^1.2.3"
+    "@eslint/compat": "npm:^1.2.4"
     "@eslint/js": "npm:9.16.0"
     "@monaco-editor/react": "npm:^4.6.0"
     "@stylistic/eslint-plugin": "npm:^2.11.0"
@@ -2558,7 +2602,7 @@ __metadata:
     "@types/gunzip-maybe": "npm:^1.4.2"
     "@types/jest": "npm:^29.5.14"
     "@types/jest-image-snapshot": "npm:^6.4.0"
-    "@types/react": "npm:^18.3.12"
+    "@types/react": "npm:^18.3.13"
     "@types/react-dom": "npm:^18.3.1"
     "@types/tar-stream": "npm:^3.1.3"
     "@typescript-eslint/eslint-plugin": "npm:^8.17.0"
@@ -2569,10 +2613,10 @@ __metadata:
     "@vitest/ui": "npm:^2.1.8"
     "@xyflow/react": "npm:^12.3.5"
     ajv: "npm:^8.17.1"
-    dotenv: "npm:^16.4.6"
+    dotenv: "npm:^16.4.7"
     eslint: "npm:^9.16.0"
     eslint-config-prettier: "npm:^9.1.0"
-    eslint-import-resolver-typescript: "npm:^3.6.3"
+    eslint-import-resolver-typescript: "npm:^3.7.0"
     eslint-plugin-import: "npm:^2.31.0"
     eslint-plugin-prettier: "npm:^5.2.1"
     eslint-plugin-react-refresh: "npm:^0.4.16"
@@ -2585,7 +2629,7 @@ __metadata:
     nanoid: "npm:^5.0.9"
     playwright: "npm:^1.49.0"
     pre-commit: "npm:^1.2.2"
-    prettier: "npm:^3.4.1"
+    prettier: "npm:^3.4.2"
     rc-slider: "npm:^11.1.7"
     react: "npm:^18.3.1"
     react-dom: "npm:^18.3.1"
@@ -2600,19 +2644,19 @@ __metadata:
     stylelint-config-standard: "npm:^36.0.1"
     stylelint-prettier: "npm:^5.0.2"
     tar-stream: "npm:^3.1.7"
-    terser: "npm:^5.36.0"
+    terser: "npm:^5.37.0"
     ts-json-schema-generator: "npm:^2.3.0"
     tsx: "npm:^4.19.2"
-    typedoc: "npm:^0.27.2"
+    typedoc: "npm:^0.27.3"
     typescript: "npm:^5.7.2"
     typescript-eslint: "npm:^8.17.0"
-    vite: "npm:^6.0.2"
+    vite: "npm:^6.0.3"
     vite-plugin-dts: "npm:^4.3.0"
     vite-plugin-externalize-deps: "npm:^0.8.0"
     vitest: "npm:^2.1.8"
     vitest-browser-react: "npm:^0.0.4"
     zundo: "npm:^2.3.0"
-    zustand: "npm:^5.0.1"
+    zustand: "npm:^5.0.2"
   languageName: unknown
   linkType: soft
 
@@ -3547,7 +3591,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.5, debug@npm:^4.3.6, debug@npm:^4.3.7":
+"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.6, debug@npm:^4.3.7":
   version: 4.3.7
   resolution: "debug@npm:4.3.7"
   dependencies:
@@ -3674,10 +3718,10 @@ __metadata:
   languageName: node
   linkType: hard
 
-"dotenv@npm:^16.4.6":
-  version: 16.4.6
-  resolution: "dotenv@npm:16.4.6"
-  checksum: 10/86bf758c47ec2585cf171ded83f0ff8b7327d865116ab8a327ff9ec84e35cc8f7cd3f68cef7ce6ec2907310228a4ec4f310cf701615973aba4a9b57bdbb65c59
+"dotenv@npm:^16.4.7":
+  version: 16.4.7
+  resolution: "dotenv@npm:16.4.7"
+  checksum: 10/f13bfe97db88f0df4ec505eeffb8925ec51f2d56a3d0b6d916964d8b4af494e6fb1633ba5d09089b552e77ab2a25de58d70259b2c5ed45ec148221835fc99a0c
   languageName: node
   linkType: hard
 
@@ -4185,18 +4229,18 @@ __metadata:
   languageName: node
   linkType: hard
 
-"eslint-import-resolver-typescript@npm:^3.6.3":
-  version: 3.6.3
-  resolution: "eslint-import-resolver-typescript@npm:3.6.3"
+"eslint-import-resolver-typescript@npm:^3.7.0":
+  version: 3.7.0
+  resolution: "eslint-import-resolver-typescript@npm:3.7.0"
   dependencies:
     "@nolyfill/is-core-module": "npm:1.0.39"
-    debug: "npm:^4.3.5"
+    debug: "npm:^4.3.7"
     enhanced-resolve: "npm:^5.15.0"
-    eslint-module-utils: "npm:^2.8.1"
     fast-glob: "npm:^3.3.2"
     get-tsconfig: "npm:^4.7.5"
     is-bun-module: "npm:^1.0.2"
     is-glob: "npm:^4.0.3"
+    stable-hash: "npm:^0.0.4"
   peerDependencies:
     eslint: "*"
     eslint-plugin-import: "*"
@@ -4206,11 +4250,11 @@ __metadata:
       optional: true
     eslint-plugin-import-x:
       optional: true
-  checksum: 10/5f9956dbbd0becc3d6c6cb945dad0e5e6f529cfd0f488d5688f3c59840cd7f4a44ab6aee0f54b5c4188134dab9a01cb63c1201767bde7fc330b7c1a14747f8ac
+  checksum: 10/8158730c11e562c56ed9bf7236dc75bce35b6992dc32c39ac2f4177ab77fca97b95999850204a6458054243607b54aee88c028a61fed4184f24f425fa1afff01
   languageName: node
   linkType: hard
 
-"eslint-module-utils@npm:^2.12.0, eslint-module-utils@npm:^2.8.1":
+"eslint-module-utils@npm:^2.12.0":
   version: 2.12.0
   resolution: "eslint-module-utils@npm:2.12.0"
   dependencies:
@@ -6798,12 +6842,12 @@ __metadata:
   languageName: node
   linkType: hard
 
-"prettier@npm:^3.4.1":
-  version: 3.4.1
-  resolution: "prettier@npm:3.4.1"
+"prettier@npm:^3.4.2":
+  version: 3.4.2
+  resolution: "prettier@npm:3.4.2"
   bin:
     prettier: bin/prettier.cjs
-  checksum: 10/1ee4d1b1a9b6761cbb847cd81b9d87e51a0f4b2a4d5fe5755627c24828afe057a7ee9b764c3ee777d84abd46218d173d8a204ee9cb3acdd321ff9a6b25f99c1c
+  checksum: 10/a3e806fb0b635818964d472d35d27e21a4e17150c679047f5501e1f23bd4aa806adf660f0c0d35214a210d5d440da6896c2e86156da55f221a57938278dc326e
   languageName: node
   linkType: hard
 
@@ -7627,6 +7671,13 @@ __metadata:
   languageName: node
   linkType: hard
 
+"stable-hash@npm:^0.0.4":
+  version: 0.0.4
+  resolution: "stable-hash@npm:0.0.4"
+  checksum: 10/21c039d21c1cb739cf8342561753a5e007cb95ea682ccd452e76310bbb9c6987a89de8eda023e320b019f3e4691aabda75079cdbb7dadf7ab9013e931f2f23cd
+  languageName: node
+  linkType: hard
+
 "stack-utils@npm:^2.0.3":
   version: 2.0.6
   resolution: "stack-utils@npm:2.0.6"
@@ -7997,9 +8048,9 @@ __metadata:
   languageName: node
   linkType: hard
 
-"terser@npm:^5.36.0":
-  version: 5.36.0
-  resolution: "terser@npm:5.36.0"
+"terser@npm:^5.37.0":
+  version: 5.37.0
+  resolution: "terser@npm:5.37.0"
   dependencies:
     "@jridgewell/source-map": "npm:^0.3.3"
     acorn: "npm:^8.8.2"
@@ -8007,7 +8058,7 @@ __metadata:
     source-map-support: "npm:~0.5.20"
   bin:
     terser: bin/terser
-  checksum: 10/52e641419f79d7ccdecd136b9a8e0b03f93cfe3b53cce556253aaabc347d3f2af1745419b9e622abc95d592084dc76e57774b8f9e68d29d543f4dd11c044daf4
+  checksum: 10/3afacf7c38c47a5a25dbe1ba2e7aafd61166474d4377ec0af490bd41ab3686ab12679818d5fe4a3e7f76efee26f639c92ac334940c378bbc31176520a38379c3
   languageName: node
   linkType: hard
 
@@ -8300,9 +8351,9 @@ __metadata:
   languageName: node
   linkType: hard
 
-"typedoc@npm:^0.27.2":
-  version: 0.27.2
-  resolution: "typedoc@npm:0.27.2"
+"typedoc@npm:^0.27.3":
+  version: 0.27.3
+  resolution: "typedoc@npm:0.27.3"
   dependencies:
     "@gerrit0/mini-shiki": "npm:^1.24.0"
     lunr: "npm:^2.3.9"
@@ -8313,7 +8364,7 @@ __metadata:
     typescript: 5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x
   bin:
     typedoc: bin/typedoc
-  checksum: 10/645a5850090247c6b2361ec9059c19d6ee181897b48a4f396c3a7c7bd8c7e4e6a5cd817e7d21060c2f42625d5f192a0e944bc0a315cd9e9ec8f77c25a5a4b0fd
+  checksum: 10/f62eeb0f3f37b9a09e137e5d6e2042b374c670cb8fbdfc6f1427a1b1bb449a30755bdd6be2c503676c66150207aa3c49c4d850f0154b20f8e2ca49b1e522cc76
   languageName: node
   linkType: hard
 
@@ -8596,9 +8647,9 @@ __metadata:
   languageName: node
   linkType: hard
 
-"vite@npm:^6.0.2":
-  version: 6.0.2
-  resolution: "vite@npm:6.0.2"
+"vite@npm:^6.0.3":
+  version: 6.0.3
+  resolution: "vite@npm:6.0.3"
   dependencies:
     esbuild: "npm:^0.24.0"
     fsevents: "npm:~2.3.3"
@@ -8644,7 +8695,7 @@ __metadata:
       optional: true
   bin:
     vite: bin/vite.js
-  checksum: 10/24fea725676da1812ec0f073d1748a09f6fd8552a86b9b2b3002326d8cb8ada72e0abfe0837b00077412dc5bbd1773aec38d1fc3462709b0ecc1512332b5d2a0
+  checksum: 10/eca0949b8cbc887e78977515d8fc22eaa2d03425d60a0a422f2db1da9d26bd1b431b2815a273c798e8e3fe176a99e105c3d87b0ba615ca19b8bf19e0334d807a
   languageName: node
   linkType: hard
 
@@ -9086,9 +9137,9 @@ __metadata:
   languageName: node
   linkType: hard
 
-"zustand@npm:^5.0.1":
-  version: 5.0.1
-  resolution: "zustand@npm:5.0.1"
+"zustand@npm:^5.0.2":
+  version: 5.0.2
+  resolution: "zustand@npm:5.0.2"
   peerDependencies:
     "@types/react": ">=18.0.0"
     immer: ">=9.0.6"
@@ -9103,6 +9154,6 @@ __metadata:
       optional: true
     use-sync-external-store:
       optional: true
-  checksum: 10/9ee5b2483213157c519be2647e873fb21962b4e6e521031916e8969552379dd03348057c9dfd030eb1e7ef98a945a1f99f9aa9badda5d9673eb4004e354dc2dc
+  checksum: 10/9fb60796b9770dcc3f78dd794e7f424ff735e5676784cbc9726761037613942b62470b24a9ca9e98534ee4369a3b5429be570ff34281cb3c9d6d4e8df559ec3f
   languageName: node
   linkType: hard