darabos commited on
Commit
a08cfee
·
1 Parent(s): 47c8ab4

Customize edge curves.

Browse files
lynxkite-app/web/package-lock.json CHANGED
@@ -30,6 +30,7 @@
30
  "react-error-boundary": "^5.0.0",
31
  "react-markdown": "^9.0.1",
32
  "react-router-dom": "^7.5.2",
 
33
  "swr": "^2.2.5",
34
  "unplugin-icons": "^0.21.0",
35
  "y-monaco": "^0.1.6",
@@ -1209,6 +1210,114 @@
1209
  "node": ">=18"
1210
  }
1211
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1212
  "node_modules/@reactivedata/react": {
1213
  "version": "0.2.2",
1214
  "resolved": "https://registry.npmjs.org/@reactivedata/react/-/react-0.2.2.tgz",
@@ -1952,12 +2061,110 @@
1952
  "yjs": "^13.5.13"
1953
  }
1954
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1955
  "node_modules/@types/d3-color": {
1956
  "version": "3.1.3",
1957
  "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz",
1958
  "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==",
1959
  "license": "MIT"
1960
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1961
  "node_modules/@types/d3-drag": {
1962
  "version": "3.0.7",
1963
  "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz",
@@ -1967,6 +2174,61 @@
1967
  "@types/d3-selection": "*"
1968
  }
1969
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1970
  "node_modules/@types/d3-interpolate": {
1971
  "version": "3.0.4",
1972
  "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz",
@@ -1976,12 +2238,88 @@
1976
  "@types/d3-color": "*"
1977
  }
1978
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1979
  "node_modules/@types/d3-selection": {
1980
  "version": "3.0.11",
1981
  "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz",
1982
  "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==",
1983
  "license": "MIT"
1984
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1985
  "node_modules/@types/d3-transition": {
1986
  "version": "3.0.9",
1987
  "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz",
@@ -2025,6 +2363,13 @@
2025
  "@types/estree": "*"
2026
  }
2027
  },
 
 
 
 
 
 
 
2028
  "node_modules/@types/hast": {
2029
  "version": "3.0.4",
2030
  "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
@@ -6239,6 +6584,37 @@
6239
  "react-dom": ">=18"
6240
  }
6241
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6242
  "node_modules/read-cache": {
6243
  "version": "1.0.0",
6244
  "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
@@ -6943,7 +7319,6 @@
6943
  "version": "5.6.3",
6944
  "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
6945
  "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==",
6946
- "devOptional": true,
6947
  "license": "Apache-2.0",
6948
  "bin": {
6949
  "tsc": "bin/tsc",
 
30
  "react-error-boundary": "^5.0.0",
31
  "react-markdown": "^9.0.1",
32
  "react-router-dom": "^7.5.2",
33
+ "reactflow-better-bezier-edge": "^1.0.3",
34
  "swr": "^2.2.5",
35
  "unplugin-icons": "^0.21.0",
36
  "y-monaco": "^0.1.6",
 
1210
  "node": ">=18"
1211
  }
1212
  },
1213
+ "node_modules/@reactflow/background": {
1214
+ "version": "11.3.14",
1215
+ "resolved": "https://registry.npmjs.org/@reactflow/background/-/background-11.3.14.tgz",
1216
+ "integrity": "sha512-Gewd7blEVT5Lh6jqrvOgd4G6Qk17eGKQfsDXgyRSqM+CTwDqRldG2LsWN4sNeno6sbqVIC2fZ+rAUBFA9ZEUDA==",
1217
+ "license": "MIT",
1218
+ "peer": true,
1219
+ "dependencies": {
1220
+ "@reactflow/core": "11.11.4",
1221
+ "classcat": "^5.0.3",
1222
+ "zustand": "^4.4.1"
1223
+ },
1224
+ "peerDependencies": {
1225
+ "react": ">=17",
1226
+ "react-dom": ">=17"
1227
+ }
1228
+ },
1229
+ "node_modules/@reactflow/controls": {
1230
+ "version": "11.2.14",
1231
+ "resolved": "https://registry.npmjs.org/@reactflow/controls/-/controls-11.2.14.tgz",
1232
+ "integrity": "sha512-MiJp5VldFD7FrqaBNIrQ85dxChrG6ivuZ+dcFhPQUwOK3HfYgX2RHdBua+gx+40p5Vw5It3dVNp/my4Z3jF0dw==",
1233
+ "license": "MIT",
1234
+ "peer": true,
1235
+ "dependencies": {
1236
+ "@reactflow/core": "11.11.4",
1237
+ "classcat": "^5.0.3",
1238
+ "zustand": "^4.4.1"
1239
+ },
1240
+ "peerDependencies": {
1241
+ "react": ">=17",
1242
+ "react-dom": ">=17"
1243
+ }
1244
+ },
1245
+ "node_modules/@reactflow/core": {
1246
+ "version": "11.11.4",
1247
+ "resolved": "https://registry.npmjs.org/@reactflow/core/-/core-11.11.4.tgz",
1248
+ "integrity": "sha512-H4vODklsjAq3AMq6Np4LE12i1I4Ta9PrDHuBR9GmL8uzTt2l2jh4CiQbEMpvMDcp7xi4be0hgXj+Ysodde/i7Q==",
1249
+ "license": "MIT",
1250
+ "peer": true,
1251
+ "dependencies": {
1252
+ "@types/d3": "^7.4.0",
1253
+ "@types/d3-drag": "^3.0.1",
1254
+ "@types/d3-selection": "^3.0.3",
1255
+ "@types/d3-zoom": "^3.0.1",
1256
+ "classcat": "^5.0.3",
1257
+ "d3-drag": "^3.0.0",
1258
+ "d3-selection": "^3.0.0",
1259
+ "d3-zoom": "^3.0.0",
1260
+ "zustand": "^4.4.1"
1261
+ },
1262
+ "peerDependencies": {
1263
+ "react": ">=17",
1264
+ "react-dom": ">=17"
1265
+ }
1266
+ },
1267
+ "node_modules/@reactflow/minimap": {
1268
+ "version": "11.7.14",
1269
+ "resolved": "https://registry.npmjs.org/@reactflow/minimap/-/minimap-11.7.14.tgz",
1270
+ "integrity": "sha512-mpwLKKrEAofgFJdkhwR5UQ1JYWlcAAL/ZU/bctBkuNTT1yqV+y0buoNVImsRehVYhJwffSWeSHaBR5/GJjlCSQ==",
1271
+ "license": "MIT",
1272
+ "peer": true,
1273
+ "dependencies": {
1274
+ "@reactflow/core": "11.11.4",
1275
+ "@types/d3-selection": "^3.0.3",
1276
+ "@types/d3-zoom": "^3.0.1",
1277
+ "classcat": "^5.0.3",
1278
+ "d3-selection": "^3.0.0",
1279
+ "d3-zoom": "^3.0.0",
1280
+ "zustand": "^4.4.1"
1281
+ },
1282
+ "peerDependencies": {
1283
+ "react": ">=17",
1284
+ "react-dom": ">=17"
1285
+ }
1286
+ },
1287
+ "node_modules/@reactflow/node-resizer": {
1288
+ "version": "2.2.14",
1289
+ "resolved": "https://registry.npmjs.org/@reactflow/node-resizer/-/node-resizer-2.2.14.tgz",
1290
+ "integrity": "sha512-fwqnks83jUlYr6OHcdFEedumWKChTHRGw/kbCxj0oqBd+ekfs+SIp4ddyNU0pdx96JIm5iNFS0oNrmEiJbbSaA==",
1291
+ "license": "MIT",
1292
+ "peer": true,
1293
+ "dependencies": {
1294
+ "@reactflow/core": "11.11.4",
1295
+ "classcat": "^5.0.4",
1296
+ "d3-drag": "^3.0.0",
1297
+ "d3-selection": "^3.0.0",
1298
+ "zustand": "^4.4.1"
1299
+ },
1300
+ "peerDependencies": {
1301
+ "react": ">=17",
1302
+ "react-dom": ">=17"
1303
+ }
1304
+ },
1305
+ "node_modules/@reactflow/node-toolbar": {
1306
+ "version": "1.3.14",
1307
+ "resolved": "https://registry.npmjs.org/@reactflow/node-toolbar/-/node-toolbar-1.3.14.tgz",
1308
+ "integrity": "sha512-rbynXQnH/xFNu4P9H+hVqlEUafDCkEoCy0Dg9mG22Sg+rY/0ck6KkrAQrYrTgXusd+cEJOMK0uOOFCK2/5rSGQ==",
1309
+ "license": "MIT",
1310
+ "peer": true,
1311
+ "dependencies": {
1312
+ "@reactflow/core": "11.11.4",
1313
+ "classcat": "^5.0.3",
1314
+ "zustand": "^4.4.1"
1315
+ },
1316
+ "peerDependencies": {
1317
+ "react": ">=17",
1318
+ "react-dom": ">=17"
1319
+ }
1320
+ },
1321
  "node_modules/@reactivedata/react": {
1322
  "version": "0.2.2",
1323
  "resolved": "https://registry.npmjs.org/@reactivedata/react/-/react-0.2.2.tgz",
 
2061
  "yjs": "^13.5.13"
2062
  }
2063
  },
2064
+ "node_modules/@types/d3": {
2065
+ "version": "7.4.3",
2066
+ "resolved": "https://registry.npmjs.org/@types/d3/-/d3-7.4.3.tgz",
2067
+ "integrity": "sha512-lZXZ9ckh5R8uiFVt8ogUNf+pIrK4EsWrx2Np75WvF/eTpJ0FMHNhjXk8CKEx/+gpHbNQyJWehbFaTvqmHWB3ww==",
2068
+ "license": "MIT",
2069
+ "peer": true,
2070
+ "dependencies": {
2071
+ "@types/d3-array": "*",
2072
+ "@types/d3-axis": "*",
2073
+ "@types/d3-brush": "*",
2074
+ "@types/d3-chord": "*",
2075
+ "@types/d3-color": "*",
2076
+ "@types/d3-contour": "*",
2077
+ "@types/d3-delaunay": "*",
2078
+ "@types/d3-dispatch": "*",
2079
+ "@types/d3-drag": "*",
2080
+ "@types/d3-dsv": "*",
2081
+ "@types/d3-ease": "*",
2082
+ "@types/d3-fetch": "*",
2083
+ "@types/d3-force": "*",
2084
+ "@types/d3-format": "*",
2085
+ "@types/d3-geo": "*",
2086
+ "@types/d3-hierarchy": "*",
2087
+ "@types/d3-interpolate": "*",
2088
+ "@types/d3-path": "*",
2089
+ "@types/d3-polygon": "*",
2090
+ "@types/d3-quadtree": "*",
2091
+ "@types/d3-random": "*",
2092
+ "@types/d3-scale": "*",
2093
+ "@types/d3-scale-chromatic": "*",
2094
+ "@types/d3-selection": "*",
2095
+ "@types/d3-shape": "*",
2096
+ "@types/d3-time": "*",
2097
+ "@types/d3-time-format": "*",
2098
+ "@types/d3-timer": "*",
2099
+ "@types/d3-transition": "*",
2100
+ "@types/d3-zoom": "*"
2101
+ }
2102
+ },
2103
+ "node_modules/@types/d3-array": {
2104
+ "version": "3.2.1",
2105
+ "resolved": "https://registry.npmjs.org/@types/d3-array/-/d3-array-3.2.1.tgz",
2106
+ "integrity": "sha512-Y2Jn2idRrLzUfAKV2LyRImR+y4oa2AntrgID95SHJxuMUrkNXmanDSed71sRNZysveJVt1hLLemQZIady0FpEg==",
2107
+ "license": "MIT",
2108
+ "peer": true
2109
+ },
2110
+ "node_modules/@types/d3-axis": {
2111
+ "version": "3.0.6",
2112
+ "resolved": "https://registry.npmjs.org/@types/d3-axis/-/d3-axis-3.0.6.tgz",
2113
+ "integrity": "sha512-pYeijfZuBd87T0hGn0FO1vQ/cgLk6E1ALJjfkC0oJ8cbwkZl3TpgS8bVBLZN+2jjGgg38epgxb2zmoGtSfvgMw==",
2114
+ "license": "MIT",
2115
+ "peer": true,
2116
+ "dependencies": {
2117
+ "@types/d3-selection": "*"
2118
+ }
2119
+ },
2120
+ "node_modules/@types/d3-brush": {
2121
+ "version": "3.0.6",
2122
+ "resolved": "https://registry.npmjs.org/@types/d3-brush/-/d3-brush-3.0.6.tgz",
2123
+ "integrity": "sha512-nH60IZNNxEcrh6L1ZSMNA28rj27ut/2ZmI3r96Zd+1jrZD++zD3LsMIjWlvg4AYrHn/Pqz4CF3veCxGjtbqt7A==",
2124
+ "license": "MIT",
2125
+ "peer": true,
2126
+ "dependencies": {
2127
+ "@types/d3-selection": "*"
2128
+ }
2129
+ },
2130
+ "node_modules/@types/d3-chord": {
2131
+ "version": "3.0.6",
2132
+ "resolved": "https://registry.npmjs.org/@types/d3-chord/-/d3-chord-3.0.6.tgz",
2133
+ "integrity": "sha512-LFYWWd8nwfwEmTZG9PfQxd17HbNPksHBiJHaKuY1XeqscXacsS2tyoo6OdRsjf+NQYeB6XrNL3a25E3gH69lcg==",
2134
+ "license": "MIT",
2135
+ "peer": true
2136
+ },
2137
  "node_modules/@types/d3-color": {
2138
  "version": "3.1.3",
2139
  "resolved": "https://registry.npmjs.org/@types/d3-color/-/d3-color-3.1.3.tgz",
2140
  "integrity": "sha512-iO90scth9WAbmgv7ogoq57O9YpKmFBbmoEoCHDB2xMBY0+/KVrqAaCDyCE16dUspeOvIxFFRI+0sEtqDqy2b4A==",
2141
  "license": "MIT"
2142
  },
2143
+ "node_modules/@types/d3-contour": {
2144
+ "version": "3.0.6",
2145
+ "resolved": "https://registry.npmjs.org/@types/d3-contour/-/d3-contour-3.0.6.tgz",
2146
+ "integrity": "sha512-BjzLgXGnCWjUSYGfH1cpdo41/hgdWETu4YxpezoztawmqsvCeep+8QGfiY6YbDvfgHz/DkjeIkkZVJavB4a3rg==",
2147
+ "license": "MIT",
2148
+ "peer": true,
2149
+ "dependencies": {
2150
+ "@types/d3-array": "*",
2151
+ "@types/geojson": "*"
2152
+ }
2153
+ },
2154
+ "node_modules/@types/d3-delaunay": {
2155
+ "version": "6.0.4",
2156
+ "resolved": "https://registry.npmjs.org/@types/d3-delaunay/-/d3-delaunay-6.0.4.tgz",
2157
+ "integrity": "sha512-ZMaSKu4THYCU6sV64Lhg6qjf1orxBthaC161plr5KuPHo3CNm8DTHiLw/5Eq2b6TsNP0W0iJrUOFscY6Q450Hw==",
2158
+ "license": "MIT",
2159
+ "peer": true
2160
+ },
2161
+ "node_modules/@types/d3-dispatch": {
2162
+ "version": "3.0.6",
2163
+ "resolved": "https://registry.npmjs.org/@types/d3-dispatch/-/d3-dispatch-3.0.6.tgz",
2164
+ "integrity": "sha512-4fvZhzMeeuBJYZXRXrRIQnvUYfyXwYmLsdiN7XXmVNQKKw1cM8a5WdID0g1hVFZDqT9ZqZEY5pD44p24VS7iZQ==",
2165
+ "license": "MIT",
2166
+ "peer": true
2167
+ },
2168
  "node_modules/@types/d3-drag": {
2169
  "version": "3.0.7",
2170
  "resolved": "https://registry.npmjs.org/@types/d3-drag/-/d3-drag-3.0.7.tgz",
 
2174
  "@types/d3-selection": "*"
2175
  }
2176
  },
2177
+ "node_modules/@types/d3-dsv": {
2178
+ "version": "3.0.7",
2179
+ "resolved": "https://registry.npmjs.org/@types/d3-dsv/-/d3-dsv-3.0.7.tgz",
2180
+ "integrity": "sha512-n6QBF9/+XASqcKK6waudgL0pf/S5XHPPI8APyMLLUHd8NqouBGLsU8MgtO7NINGtPBtk9Kko/W4ea0oAspwh9g==",
2181
+ "license": "MIT",
2182
+ "peer": true
2183
+ },
2184
+ "node_modules/@types/d3-ease": {
2185
+ "version": "3.0.2",
2186
+ "resolved": "https://registry.npmjs.org/@types/d3-ease/-/d3-ease-3.0.2.tgz",
2187
+ "integrity": "sha512-NcV1JjO5oDzoK26oMzbILE6HW7uVXOHLQvHshBUW4UMdZGfiY6v5BeQwh9a9tCzv+CeefZQHJt5SRgK154RtiA==",
2188
+ "license": "MIT",
2189
+ "peer": true
2190
+ },
2191
+ "node_modules/@types/d3-fetch": {
2192
+ "version": "3.0.7",
2193
+ "resolved": "https://registry.npmjs.org/@types/d3-fetch/-/d3-fetch-3.0.7.tgz",
2194
+ "integrity": "sha512-fTAfNmxSb9SOWNB9IoG5c8Hg6R+AzUHDRlsXsDZsNp6sxAEOP0tkP3gKkNSO/qmHPoBFTxNrjDprVHDQDvo5aA==",
2195
+ "license": "MIT",
2196
+ "peer": true,
2197
+ "dependencies": {
2198
+ "@types/d3-dsv": "*"
2199
+ }
2200
+ },
2201
+ "node_modules/@types/d3-force": {
2202
+ "version": "3.0.10",
2203
+ "resolved": "https://registry.npmjs.org/@types/d3-force/-/d3-force-3.0.10.tgz",
2204
+ "integrity": "sha512-ZYeSaCF3p73RdOKcjj+swRlZfnYpK1EbaDiYICEEp5Q6sUiqFaFQ9qgoshp5CzIyyb/yD09kD9o2zEltCexlgw==",
2205
+ "license": "MIT",
2206
+ "peer": true
2207
+ },
2208
+ "node_modules/@types/d3-format": {
2209
+ "version": "3.0.4",
2210
+ "resolved": "https://registry.npmjs.org/@types/d3-format/-/d3-format-3.0.4.tgz",
2211
+ "integrity": "sha512-fALi2aI6shfg7vM5KiR1wNJnZ7r6UuggVqtDA+xiEdPZQwy/trcQaHnwShLuLdta2rTymCNpxYTiMZX/e09F4g==",
2212
+ "license": "MIT",
2213
+ "peer": true
2214
+ },
2215
+ "node_modules/@types/d3-geo": {
2216
+ "version": "3.1.0",
2217
+ "resolved": "https://registry.npmjs.org/@types/d3-geo/-/d3-geo-3.1.0.tgz",
2218
+ "integrity": "sha512-856sckF0oP/diXtS4jNsiQw/UuK5fQG8l/a9VVLeSouf1/PPbBE1i1W852zVwKwYCBkFJJB7nCFTbk6UMEXBOQ==",
2219
+ "license": "MIT",
2220
+ "peer": true,
2221
+ "dependencies": {
2222
+ "@types/geojson": "*"
2223
+ }
2224
+ },
2225
+ "node_modules/@types/d3-hierarchy": {
2226
+ "version": "3.1.7",
2227
+ "resolved": "https://registry.npmjs.org/@types/d3-hierarchy/-/d3-hierarchy-3.1.7.tgz",
2228
+ "integrity": "sha512-tJFtNoYBtRtkNysX1Xq4sxtjK8YgoWUNpIiUee0/jHGRwqvzYxkq0hGVbbOGSz+JgFxxRu4K8nb3YpG3CMARtg==",
2229
+ "license": "MIT",
2230
+ "peer": true
2231
+ },
2232
  "node_modules/@types/d3-interpolate": {
2233
  "version": "3.0.4",
2234
  "resolved": "https://registry.npmjs.org/@types/d3-interpolate/-/d3-interpolate-3.0.4.tgz",
 
2238
  "@types/d3-color": "*"
2239
  }
2240
  },
2241
+ "node_modules/@types/d3-path": {
2242
+ "version": "3.1.1",
2243
+ "resolved": "https://registry.npmjs.org/@types/d3-path/-/d3-path-3.1.1.tgz",
2244
+ "integrity": "sha512-VMZBYyQvbGmWyWVea0EHs/BwLgxc+MKi1zLDCONksozI4YJMcTt8ZEuIR4Sb1MMTE8MMW49v0IwI5+b7RmfWlg==",
2245
+ "license": "MIT",
2246
+ "peer": true
2247
+ },
2248
+ "node_modules/@types/d3-polygon": {
2249
+ "version": "3.0.2",
2250
+ "resolved": "https://registry.npmjs.org/@types/d3-polygon/-/d3-polygon-3.0.2.tgz",
2251
+ "integrity": "sha512-ZuWOtMaHCkN9xoeEMr1ubW2nGWsp4nIql+OPQRstu4ypeZ+zk3YKqQT0CXVe/PYqrKpZAi+J9mTs05TKwjXSRA==",
2252
+ "license": "MIT",
2253
+ "peer": true
2254
+ },
2255
+ "node_modules/@types/d3-quadtree": {
2256
+ "version": "3.0.6",
2257
+ "resolved": "https://registry.npmjs.org/@types/d3-quadtree/-/d3-quadtree-3.0.6.tgz",
2258
+ "integrity": "sha512-oUzyO1/Zm6rsxKRHA1vH0NEDG58HrT5icx/azi9MF1TWdtttWl0UIUsjEQBBh+SIkrpd21ZjEv7ptxWys1ncsg==",
2259
+ "license": "MIT",
2260
+ "peer": true
2261
+ },
2262
+ "node_modules/@types/d3-random": {
2263
+ "version": "3.0.3",
2264
+ "resolved": "https://registry.npmjs.org/@types/d3-random/-/d3-random-3.0.3.tgz",
2265
+ "integrity": "sha512-Imagg1vJ3y76Y2ea0871wpabqp613+8/r0mCLEBfdtqC7xMSfj9idOnmBYyMoULfHePJyxMAw3nWhJxzc+LFwQ==",
2266
+ "license": "MIT",
2267
+ "peer": true
2268
+ },
2269
+ "node_modules/@types/d3-scale": {
2270
+ "version": "4.0.9",
2271
+ "resolved": "https://registry.npmjs.org/@types/d3-scale/-/d3-scale-4.0.9.tgz",
2272
+ "integrity": "sha512-dLmtwB8zkAeO/juAMfnV+sItKjlsw2lKdZVVy6LRr0cBmegxSABiLEpGVmSJJ8O08i4+sGR6qQtb6WtuwJdvVw==",
2273
+ "license": "MIT",
2274
+ "peer": true,
2275
+ "dependencies": {
2276
+ "@types/d3-time": "*"
2277
+ }
2278
+ },
2279
+ "node_modules/@types/d3-scale-chromatic": {
2280
+ "version": "3.1.0",
2281
+ "resolved": "https://registry.npmjs.org/@types/d3-scale-chromatic/-/d3-scale-chromatic-3.1.0.tgz",
2282
+ "integrity": "sha512-iWMJgwkK7yTRmWqRB5plb1kadXyQ5Sj8V/zYlFGMUBbIPKQScw+Dku9cAAMgJG+z5GYDoMjWGLVOvjghDEFnKQ==",
2283
+ "license": "MIT",
2284
+ "peer": true
2285
+ },
2286
  "node_modules/@types/d3-selection": {
2287
  "version": "3.0.11",
2288
  "resolved": "https://registry.npmjs.org/@types/d3-selection/-/d3-selection-3.0.11.tgz",
2289
  "integrity": "sha512-bhAXu23DJWsrI45xafYpkQ4NtcKMwWnAC/vKrd2l+nxMFuvOT3XMYTIj2opv8vq8AO5Yh7Qac/nSeP/3zjTK0w==",
2290
  "license": "MIT"
2291
  },
2292
+ "node_modules/@types/d3-shape": {
2293
+ "version": "3.1.7",
2294
+ "resolved": "https://registry.npmjs.org/@types/d3-shape/-/d3-shape-3.1.7.tgz",
2295
+ "integrity": "sha512-VLvUQ33C+3J+8p+Daf+nYSOsjB4GXp19/S/aGo60m9h1v6XaxjiT82lKVWJCfzhtuZ3yD7i/TPeC/fuKLLOSmg==",
2296
+ "license": "MIT",
2297
+ "peer": true,
2298
+ "dependencies": {
2299
+ "@types/d3-path": "*"
2300
+ }
2301
+ },
2302
+ "node_modules/@types/d3-time": {
2303
+ "version": "3.0.4",
2304
+ "resolved": "https://registry.npmjs.org/@types/d3-time/-/d3-time-3.0.4.tgz",
2305
+ "integrity": "sha512-yuzZug1nkAAaBlBBikKZTgzCeA+k1uy4ZFwWANOfKw5z5LRhV0gNA7gNkKm7HoK+HRN0wX3EkxGk0fpbWhmB7g==",
2306
+ "license": "MIT",
2307
+ "peer": true
2308
+ },
2309
+ "node_modules/@types/d3-time-format": {
2310
+ "version": "4.0.3",
2311
+ "resolved": "https://registry.npmjs.org/@types/d3-time-format/-/d3-time-format-4.0.3.tgz",
2312
+ "integrity": "sha512-5xg9rC+wWL8kdDj153qZcsJ0FWiFt0J5RB6LYUNZjwSnesfblqrI/bJ1wBdJ8OQfncgbJG5+2F+qfqnqyzYxyg==",
2313
+ "license": "MIT",
2314
+ "peer": true
2315
+ },
2316
+ "node_modules/@types/d3-timer": {
2317
+ "version": "3.0.2",
2318
+ "resolved": "https://registry.npmjs.org/@types/d3-timer/-/d3-timer-3.0.2.tgz",
2319
+ "integrity": "sha512-Ps3T8E8dZDam6fUyNiMkekK3XUsaUEik+idO9/YjPtfj2qruF8tFBXS7XhtE4iIXBLxhmLjP3SXpLhVf21I9Lw==",
2320
+ "license": "MIT",
2321
+ "peer": true
2322
+ },
2323
  "node_modules/@types/d3-transition": {
2324
  "version": "3.0.9",
2325
  "resolved": "https://registry.npmjs.org/@types/d3-transition/-/d3-transition-3.0.9.tgz",
 
2363
  "@types/estree": "*"
2364
  }
2365
  },
2366
+ "node_modules/@types/geojson": {
2367
+ "version": "7946.0.16",
2368
+ "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz",
2369
+ "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==",
2370
+ "license": "MIT",
2371
+ "peer": true
2372
+ },
2373
  "node_modules/@types/hast": {
2374
  "version": "3.0.4",
2375
  "resolved": "https://registry.npmjs.org/@types/hast/-/hast-3.0.4.tgz",
 
6584
  "react-dom": ">=18"
6585
  }
6586
  },
6587
+ "node_modules/reactflow": {
6588
+ "version": "11.11.4",
6589
+ "resolved": "https://registry.npmjs.org/reactflow/-/reactflow-11.11.4.tgz",
6590
+ "integrity": "sha512-70FOtJkUWH3BAOsN+LU9lCrKoKbtOPnz2uq0CV2PLdNSwxTXOhCbsZr50GmZ+Rtw3jx8Uv7/vBFtCGixLfd4Og==",
6591
+ "license": "MIT",
6592
+ "peer": true,
6593
+ "dependencies": {
6594
+ "@reactflow/background": "11.3.14",
6595
+ "@reactflow/controls": "11.2.14",
6596
+ "@reactflow/core": "11.11.4",
6597
+ "@reactflow/minimap": "11.7.14",
6598
+ "@reactflow/node-resizer": "2.2.14",
6599
+ "@reactflow/node-toolbar": "1.3.14"
6600
+ },
6601
+ "peerDependencies": {
6602
+ "react": ">=17",
6603
+ "react-dom": ">=17"
6604
+ }
6605
+ },
6606
+ "node_modules/reactflow-better-bezier-edge": {
6607
+ "version": "1.0.3",
6608
+ "resolved": "https://registry.npmjs.org/reactflow-better-bezier-edge/-/reactflow-better-bezier-edge-1.0.3.tgz",
6609
+ "integrity": "sha512-itPANaL5bwvV0oin6y+kGWDkJFBg9yOGRA8De14v/ljKHI/zeBZdn/FVmVCDBxHPVvBtp93QOGX4AfCmmzxaLA==",
6610
+ "license": "MIT",
6611
+ "peerDependencies": {
6612
+ "react": ">=17",
6613
+ "react-dom": ">=17",
6614
+ "reactflow": ">=11",
6615
+ "typescript": ">=4.6"
6616
+ }
6617
+ },
6618
  "node_modules/read-cache": {
6619
  "version": "1.0.0",
6620
  "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz",
 
7319
  "version": "5.6.3",
7320
  "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz",
7321
  "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==",
 
7322
  "license": "Apache-2.0",
7323
  "bin": {
7324
  "tsc": "bin/tsc",
lynxkite-app/web/package.json CHANGED
@@ -33,6 +33,7 @@
33
  "react-error-boundary": "^5.0.0",
34
  "react-markdown": "^9.0.1",
35
  "react-router-dom": "^7.5.2",
 
36
  "swr": "^2.2.5",
37
  "unplugin-icons": "^0.21.0",
38
  "y-monaco": "^0.1.6",
 
33
  "react-error-boundary": "^5.0.0",
34
  "react-markdown": "^9.0.1",
35
  "react-router-dom": "^7.5.2",
36
+ "reactflow-better-bezier-edge": "^1.0.3",
37
  "swr": "^2.2.5",
38
  "unplugin-icons": "^0.21.0",
39
  "y-monaco": "^0.1.6",
lynxkite-app/web/src/workspace/LynxKiteEdge.tsx ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { BaseEdge } from "@xyflow/react";
2
+ import { getBetterBezierPath } from "reactflow-better-bezier-edge";
3
+
4
+ export default function LynxKiteEdge(props: any) {
5
+ const [edgePath] = getBetterBezierPath({
6
+ sourceX: props.sourceX,
7
+ sourceY: props.sourceY,
8
+ sourcePosition: props.sourcePosition,
9
+ targetX: props.targetX,
10
+ targetY: props.targetY,
11
+ targetPosition: props.targetPosition,
12
+ offset: 0.3 * Math.hypot(props.targetX - props.sourceX, props.targetY - props.sourceY),
13
+ });
14
+
15
+ return (
16
+ <>
17
+ <BaseEdge
18
+ id={props.id}
19
+ path={edgePath}
20
+ {...props}
21
+ style={{
22
+ strokeWidth: 2,
23
+ stroke: "black",
24
+ }}
25
+ />
26
+ </>
27
+ );
28
+ }
lynxkite-app/web/src/workspace/Workspace.tsx CHANGED
@@ -34,6 +34,7 @@ import favicon from "../assets/favicon.ico";
34
  import { usePath } from "../common.ts";
35
  // import NodeWithTableView from './NodeWithTableView';
36
  import EnvironmentSelector from "./EnvironmentSelector";
 
37
  import { LynxKiteState } from "./LynxKiteState";
38
  import NodeSearch, { type OpsOp, type Catalog, type Catalogs } from "./NodeSearch.tsx";
39
  import NodeWithGraphCreationView from "./nodes/GraphCreationNode.tsx";
@@ -186,6 +187,12 @@ function LynxKiteFlow() {
186
  }),
187
  [],
188
  );
 
 
 
 
 
 
189
 
190
  // Global keyboard shortcuts.
191
  useEffect(() => {
@@ -374,6 +381,7 @@ function LynxKiteFlow() {
374
  nodes={nodes}
375
  edges={edges}
376
  nodeTypes={nodeTypes}
 
377
  fitView
378
  onNodesChange={onNodesChange}
379
  onEdgesChange={onEdgesChange}
 
34
  import { usePath } from "../common.ts";
35
  // import NodeWithTableView from './NodeWithTableView';
36
  import EnvironmentSelector from "./EnvironmentSelector";
37
+ import LynxKiteEdge from "./LynxKiteEdge.tsx";
38
  import { LynxKiteState } from "./LynxKiteState";
39
  import NodeSearch, { type OpsOp, type Catalog, type Catalogs } from "./NodeSearch.tsx";
40
  import NodeWithGraphCreationView from "./nodes/GraphCreationNode.tsx";
 
187
  }),
188
  [],
189
  );
190
+ const edgeTypes = useMemo(
191
+ () => ({
192
+ default: LynxKiteEdge,
193
+ }),
194
+ [],
195
+ );
196
 
197
  // Global keyboard shortcuts.
198
  useEffect(() => {
 
381
  nodes={nodes}
382
  edges={edges}
383
  nodeTypes={nodeTypes}
384
+ edgeTypes={edgeTypes}
385
  fitView
386
  onNodesChange={onNodesChange}
387
  onEdgesChange={onEdgesChange}