summaryrefslogtreecommitdiff
path: root/out/_next/static/chunks/pages/index-af70b77619b241a63065.js
blob: a5b70f60f26cccbdd09a02a24451c03d497a8548 (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
;(self.webpackChunk_N_E = self.webpackChunk_N_E || []).push([
  [405],
  {
    374: function (e, n, r) {
      'use strict'
      r.r(n),
        r.d(n, {
          Graph: function () {
            return je
          },
          GraphPage: function () {
            return fe
          },
          default: function () {
            return xe
          },
        })
      var t = r(7757),
        i = r.n(t),
        o = r(2137),
        l = r(5893),
        s = r(7329),
        c = r(6156),
        a = r(4699),
        d = r(7294)
      function u(e, n) {
        var r,
          t = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {},
          i = h(e, null !== (r = t.storage) && void 0 !== r ? r : localStorage),
          o = i.get(),
          l = void 0 !== o ? o : n
        l !== o && i.update(l)
        var s = (0, d.useState)(l),
          c = s[0],
          a = s[1]
        ;(0, d.useEffect)(
          function () {
            c !== l && a(l)
          },
          [e],
        )
        var u = function (e) {
          e instanceof Function
            ? a(function (n) {
                var r = e(n)
                return i.update(r), r
              })
            : (a(e), i.update(e))
        }
        return [c, u]
      }
      function h(e, n) {
        return {
          get: function () {
            var r = n.getItem(e)
            if (r && 'undefined' !== r) return JSON.parse(r)
          },
          update: function (r) {
            n.setItem(e, JSON.stringify(r))
          },
          remove: function () {
            n.removeItem(e)
          },
        }
      }
      var g = r(4533),
        x = r(4309),
        f = r(2351),
        j = r(980),
        p = r(8017),
        m = r(6194),
        b = [],
        C = {}
      for (var v in m.oY)
        for (var y in m.oY[v]) {
          var k = v + y
          'LinearNone' === k && (k = 'Linear'), b.push(k), (C[k] = m.oY[v][y])
        }
      var w = C,
        S = {
          enabled: !0,
          charge: -700,
          collision: !0,
          collisionStrength: 20,
          centering: !0,
          centeringStrength: 0.05,
          linkStrength: 0.1,
          linkIts: 1,
          alphaDecay: 0.02,
          alphaTarget: 0,
          alphaMin: 0,
          velocityDecay: 0.25,
          gravity: 0.3,
          gravityOn: !0,
        },
        I = { orphans: !1, parents: !0, tags: [], nodes: [], links: [], date: [] },
        N = {
          particles: !1,
          particlesNumber: 0,
          particlesWidth: 4,
          arrows: !1,
          arrowsLength: 1,
          arrowsPos: 0.5,
          arrowsColor: '',
          linkOpacity: 0.8,
          linkWidth: 1,
          nodeRel: 4,
          nodeOpacity: 1,
          nodeResolution: 12,
          labels: 2,
          labelScale: 1.5,
          highlight: !0,
          highlightNodeSize: 2,
          highlightLinkSize: 2,
          highlightAnim: !0,
          animationSpeed: 700,
          algorithmOptions: b,
          algorithmName: 'BackOut',
          linkColorScheme: 'gray.500',
          nodeColorScheme: [
            'red.500',
            'gray.600',
            'yellow.500',
            'green.500',
            'cyan.500',
            'blue.500',
            'pink.500',
            'purple.500',
            'orange.500',
          ],
          nodeHighlight: '',
          linkHighlight: 'purple.500',
          backgroundColor: 'white',
          emacsNodeColor: 'gray.800',
          labelTextColor: 'black',
          labelBackgroundColor: 'white',
          labelBackgroundOpacity: 0.7,
        },
        O = { follow: 'zoom', localSame: 'add', zoomPadding: 200, zoomSpeed: 2e3 },
        z = { highlight: 'hover', local: 'click', follow: 'double' },
        R = r(7375),
        T = r(3924),
        D = r(3986),
        P = r(9641),
        H = r(7546),
        E = r(3441),
        L = r(6569),
        Z = r(4189),
        F = r(454),
        B = r(8420),
        M = r(6699),
        W = r(155),
        A = r(6769),
        X = r(336),
        _ = r(2026),
        q = r(4096),
        U = r(4115),
        Q = r(8134),
        V = r(8235),
        K = r(7273),
        J = r(5267),
        Y = r(6049),
        G = r(3014),
        $ = r(6658),
        ee = r(9356)
      function ne(e, n) {
        var r = Object.keys(e)
        if (Object.getOwnPropertySymbols) {
          var t = Object.getOwnPropertySymbols(e)
          n &&
            (t = t.filter(function (n) {
              return Object.getOwnPropertyDescriptor(e, n).enumerable
            })),
            r.push.apply(r, t)
        }
        return r
      }
      function re(e) {
        for (var n = 1; n < arguments.length; n++) {
          var r = null != arguments[n] ? arguments[n] : {}
          n % 2
            ? ne(Object(r), !0).forEach(function (n) {
                ;(0, c.Z)(e, n, r[n])
              })
            : Object.getOwnPropertyDescriptors
            ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r))
            : ne(Object(r)).forEach(function (n) {
                Object.defineProperty(e, n, Object.getOwnPropertyDescriptor(r, n))
              })
        }
        return e
      }
      var te = function (e) {
          var n = e.physics,
            r = e.setPhysics,
            t = e.threeDim,
            i = e.setThreeDim,
            o = e.filter,
            c = e.setFilter,
            u = e.visuals,
            h = e.setVisuals,
            g = e.mouse,
            x = e.setMouse,
            f = e.behavior,
            j = e.setBehavior,
            m = (0, d.useState)(!0),
            b = m[0],
            C = m[1],
            v = (0, d.useContext)(ee.N),
            y = v.highlightColor,
            k = v.setHighlightColor,
            w = [
              'red.500',
              'orange.500',
              'yellow.500',
              'green.500',
              'cyan.500',
              'blue.500',
              'pink.500',
              'purple.500',
              'gray.400',
              'gray.500',
              'gray.600',
              'white',
              'black',
            ],
            Z = [
              'black',
              'gray.100',
              'gray.200',
              'gray.300',
              'gray.400',
              'gray.500',
              'gray.600',
              'gray.700',
              'gray.800',
              'gray.900',
              'white',
            ]
          return (0, l.jsxs)(l.Fragment, {
            children: [
              (0, l.jsx)(F.R, {
                in: !b,
                children: (0, l.jsx)(p.xu, {
                  position: 'absolute',
                  zIndex: 'overlay',
                  marginTop: 10,
                  marginLeft: 10,
                  display: b ? 'none' : 'block',
                  children: (0, l.jsx)(B.h, {
                    'aria-label': 'Settings',
                    icon: (0, l.jsx)(T.e, {}),
                    onClick: function () {
                      return C(!0)
                    },
                  }),
                }),
              }),
              (0, l.jsx)(F.R, {
                in: b,
                children: (0, l.jsxs)(p.xu, {
                  bg: 'alt.100',
                  w: 'xs',
                  marginTop: 10,
                  marginLeft: 10,
                  borderRadius: 'xl',
                  maxH: 650,
                  paddingBottom: 5,
                  zIndex: 300,
                  position: 'relative',
                  boxShadow: 'xl',
                  children: [
                    (0, l.jsxs)(p.xu, {
                      display: 'flex',
                      justifyContent: 'space-between',
                      alignItems: 'center',
                      paddingRight: 2,
                      paddingTop: 1,
                      children: [
                        (0, l.jsx)(M.u, {
                          label: '2D',
                          children: (0, l.jsx)(W.z, {
                            onClick: function () {
                              return i(!t)
                            },
                            variant: 'ghost',
                            zIndex: 'overlay',
                            children: t ? '3D' : '2D',
                          }),
                        }),
                        (0, l.jsxs)(p.xu, {
                          display: 'flex',
                          alignItems: 'center',
                          children: [
                            (0, l.jsx)(M.u, {
                              label: 'Reset settings to defaults',
                              children: (0, l.jsx)(B.h, {
                                'aria-label': 'Reset Defaults',
                                icon: (0, l.jsx)(D.A, {}),
                                onClick: function () {
                                  h(N), c(I), x(z), r(S), j(O)
                                },
                                variant: 'none',
                                size: 'sm',
                              }),
                            }),
                            (0, l.jsx)(B.h, {
                              size: 'sm',
                              icon: (0, l.jsx)(P.T, {}),
                              'aria-label': 'Close Tweak Panel',
                              variant: 'ghost',
                              onClick: function () {
                                return C(!1)
                              },
                            }),
                          ],
                        }),
                      ],
                    }),
                    (0, l.jsx)($.ZP, {
                      autoHeight: !0,
                      autoHeightMax: 600,
                      autoHide: !0,
                      renderThumbVertical: function (e) {
                        var n = e.style,
                          r = (0, R.Z)(e, ['style'])
                        return (0, l.jsx)(
                          p.xu,
                          re(
                            re({}, r),
                            {},
                            { style: re(re({}, n), {}, { borderRadius: 10 }), bg: y },
                          ),
                        )
                      },
                      children: (0, l.jsxs)(A.UQ, {
                        allowMultiple: !0,
                        allowToggle: !0,
                        color: 'black',
                        children: [
                          (0, l.jsxs)(A.Qd, {
                            children: [
                              (0, l.jsxs)(A.KF, {
                                children: [
                                  (0, l.jsx)(A.XE, { marginRight: 2 }),
                                  (0, l.jsx)(X.X, { size: 'sm', children: 'Filter' }),
                                ],
                              }),
                              (0, l.jsx)(A.Hk, {
                                children: (0, l.jsxs)(_.gC, {
                                  spacing: 2,
                                  justifyContent: 'flex-start',
                                  divider: (0, l.jsx)(_.cX, { borderColor: 'gray.500' }),
                                  align: 'stretch',
                                  paddingLeft: 7,
                                  color: 'gray.800',
                                  children: [
                                    (0, l.jsxs)(q.k, {
                                      justifyContent: 'space-between',
                                      children: [
                                        (0, l.jsx)(U.x, { children: 'Orphans' }),
                                        (0, l.jsx)(Q.r, {
                                          onChange: function () {
                                            c(re(re({}, o), {}, { orphans: !o.orphans }))
                                          },
                                          isChecked: o.orphans,
                                        }),
                                      ],
                                    }),
                                    (0, l.jsxs)(q.k, {
                                      justifyContent: 'space-between',
                                      children: [
                                        (0, l.jsx)(U.x, {
                                          children: 'Link nodes with parent file',
                                        }),
                                        (0, l.jsx)(Q.r, {
                                          onChange: function () {
                                            c(re(re({}, o), {}, { parents: !o.parents }))
                                          },
                                          isChecked: o.parents,
                                        }),
                                      ],
                                    }),
                                  ],
                                }),
                              }),
                            ],
                          }),
                          (0, l.jsxs)(A.Qd, {
                            children: [
                              (0, l.jsx)(A.KF, {
                                display: 'flex',
                                justifyContent: 'space-between',
                                children: (0, l.jsxs)(p.xu, {
                                  display: 'flex',
                                  children: [
                                    (0, l.jsx)(A.XE, { marginRight: 2 }),
                                    (0, l.jsx)(X.X, { size: 'sm', children: 'Physics' }),
                                  ],
                                }),
                              }),
                              (0, l.jsxs)(A.Hk, {
                                children: [
                                  (0, l.jsxs)(_.gC, {
                                    spacing: 2,
                                    justifyContent: 'flex-start',
                                    divider: (0, l.jsx)(_.cX, { borderColor: 'gray.500' }),
                                    align: 'stretch',
                                    paddingLeft: 7,
                                    color: 'gray.800',
                                    children: [
                                      (0, l.jsx)(le, {
                                        label: 'Gravity',
                                        value: n.gravityOn,
                                        onChange: function () {
                                          return r(re(re({}, n), {}, { gravityOn: !n.gravityOn }))
                                        },
                                        children: (0, l.jsx)(oe, {
                                          label: 'Strength',
                                          value: 10 * n.gravity,
                                          onChange: function (e) {
                                            return r(re(re({}, n), {}, { gravity: e / 10 }))
                                          },
                                        }),
                                      }),
                                      (0, l.jsx)(oe, {
                                        value: -n.charge / 100,
                                        onChange: function (e) {
                                          return r(re(re({}, n), {}, { charge: -100 * e }))
                                        },
                                        label: 'Repulsive Force',
                                      }),
                                      (0, l.jsx)(le, {
                                        label: 'Collision',
                                        infoText: 'Perfomance sap, disable if slow',
                                        value: n.collision,
                                        onChange: function () {
                                          return r(re(re({}, n), {}, { collision: !n.collision }))
                                        },
                                        children: (0, l.jsx)(oe, {
                                          value: n.collisionStrength / 5,
                                          onChange: function (e) {
                                            return r(
                                              re(re({}, n), {}, { collisionStrength: 5 * e }),
                                            )
                                          },
                                          label: 'Collision Radius',
                                          infoText:
                                            'Easy with this one, high values can lead to a real jiggly mess',
                                        }),
                                      }),
                                      (0, l.jsx)(oe, {
                                        value: 5 * n.linkStrength,
                                        onChange: function (e) {
                                          return r(re(re({}, n), {}, { linkStrength: e / 5 }))
                                        },
                                        label: 'Link Force',
                                      }),
                                      (0, l.jsx)(oe, {
                                        label: 'Link Iterations',
                                        value: n.linkIts,
                                        onChange: function (e) {
                                          return r(re(re({}, n), {}, { linkIts: e }))
                                        },
                                        min: 0,
                                        max: 6,
                                        step: 1,
                                        infoText:
                                          'How many links down the line the physics of a single node affects (Slow)',
                                      }),
                                      (0, l.jsx)(oe, {
                                        label: 'Viscosity',
                                        value: 10 * n.velocityDecay,
                                        onChange: function (e) {
                                          return r(re(re({}, n), {}, { velocityDecay: e / 10 }))
                                        },
                                      }),
                                    ],
                                  }),
                                  (0, l.jsx)(p.xu, {
                                    children: (0, l.jsx)(A.UQ, {
                                      paddingLeft: 3,
                                      allowToggle: !0,
                                      children: (0, l.jsxs)(A.Qd, {
                                        children: [
                                          (0, l.jsxs)(A.KF, {
                                            children: [
                                              (0, l.jsx)(U.x, { children: 'Advanced' }),
                                              (0, l.jsx)(A.XE, { marginRight: 2 }),
                                            ],
                                          }),
                                          (0, l.jsx)(A.Hk, {
                                            children: (0, l.jsxs)(_.gC, {
                                              spacing: 2,
                                              justifyContent: 'flex-start',
                                              divider: (0, l.jsx)(_.cX, {
                                                borderColor: 'gray.500',
                                              }),
                                              align: 'stretch',
                                              paddingLeft: 3,
                                              color: 'gray.800',
                                              children: [
                                                (0, l.jsx)(oe, {
                                                  label: 'Stabilization rate',
                                                  value: 50 * n.alphaDecay,
                                                  onChange: function (e) {
                                                    return r(
                                                      re(re({}, n), {}, { alphaDecay: e / 50 }),
                                                    )
                                                  },
                                                }),
                                                (0, l.jsx)(le, {
                                                  label: 'Center nodes',
                                                  value: n.centering,
                                                  onChange: function () {
                                                    return r(
                                                      re(
                                                        re({}, n),
                                                        {},
                                                        { centering: !n.centering },
                                                      ),
                                                    )
                                                  },
                                                  infoText:
                                                    'Keeps the nodes in the center of the viewport. If disabled you can drag the nodes anywhere you want.',
                                                  children: (0, l.jsx)(oe, {
                                                    label: 'Centering Strength',
                                                    value: n.centeringStrength,
                                                    max: 2,
                                                    step: 0.01,
                                                    onChange: function (e) {
                                                      return r(
                                                        re(re({}, n), {}, { centeringStrength: e }),
                                                      )
                                                    },
                                                  }),
                                                }),
                                              ],
                                            }),
                                          }),
                                        ],
                                      }),
                                    }),
                                  }),
                                ],
                              }),
                            ],
                          }),
                          (0, l.jsxs)(A.Qd, {
                            children: [
                              (0, l.jsxs)(A.KF, {
                                children: [
                                  (0, l.jsx)(A.XE, { marginRight: 2 }),
                                  (0, l.jsx)(X.X, { size: 'sm', children: 'Visual' }),
                                ],
                              }),
                              (0, l.jsx)(A.Hk, {
                                children: (0, l.jsxs)(_.gC, {
                                  justifyContent: 'flex-start',
                                  align: 'stretch',
                                  children: [
                                    (0, l.jsx)(A.UQ, {
                                      allowToggle: !0,
                                      defaultIndex: [0],
                                      paddingLeft: 3,
                                      children: (0, l.jsxs)(A.Qd, {
                                        children: [
                                          (0, l.jsx)(A.KF, {
                                            children: (0, l.jsxs)(q.k, {
                                              justifyContent: 'space-between',
                                              w: '100%',
                                              children: [
                                                (0, l.jsx)(U.x, { children: 'Colors' }),
                                                (0, l.jsx)(A.XE, { marginRight: 2 }),
                                              ],
                                            }),
                                          }),
                                          (0, l.jsx)(A.Hk, {
                                            children: (0, l.jsx)(_.gC, {
                                              spacing: 2,
                                              justifyContent: 'flex-start',
                                              divider: (0, l.jsx)(_.cX, {
                                                borderColor: 'gray.500',
                                              }),
                                              align: 'stretch',
                                              color: 'gray.800',
                                              children: (0, l.jsxs)(p.xu, {
                                                children: [
                                                  (0, l.jsxs)(q.k, {
                                                    alignItems: 'center',
                                                    justifyContent: 'space-between',
                                                    children: [
                                                      (0, l.jsx)(U.x, { children: 'Nodes' }),
                                                      (0, l.jsx)(M.u, {
                                                        label: 'Shuffle node colors',
                                                        children: (0, l.jsx)(B.h, {
                                                          'aria-label': 'Shuffle node colors',
                                                          size: 'sm',
                                                          icon: (0, l.jsx)(H.n, {}),
                                                          variant: 'ghost',
                                                          onClick: function () {
                                                            var e,
                                                              n =
                                                                null !== (e = u.nodeColorScheme) &&
                                                                void 0 !== e
                                                                  ? e
                                                                  : []
                                                            h(
                                                              re(
                                                                re({}, u),
                                                                {},
                                                                {
                                                                  nodeColorScheme: n
                                                                    .map(function (e) {
                                                                      return [Math.random(), e]
                                                                    })
                                                                    .sort(function (e, n) {
                                                                      return (
                                                                        (0, a.Z)(e, 1)[0] -
                                                                        (0, a.Z)(n, 1)[0]
                                                                      )
                                                                    })
                                                                    .map(function (e) {
                                                                      var n = (0, a.Z)(e, 2)
                                                                      n[0]
                                                                      return n[1]
                                                                    }),
                                                                },
                                                              ),
                                                            )
                                                          },
                                                        }),
                                                      }),
                                                      (0, l.jsx)(M.u, {
                                                        label: 'Cycle node colors',
                                                        children: (0, l.jsx)(B.h, {
                                                          'aria-label': 'Shift node colors',
                                                          icon: (0, l.jsx)(E.L, {}),
                                                          size: 'sm',
                                                          variant: 'ghost',
                                                          onClick: function () {
                                                            var e,
                                                              n =
                                                                null !== (e = u.nodeColorScheme) &&
                                                                void 0 !== e
                                                                  ? e
                                                                  : []
                                                            h(
                                                              re(
                                                                re({}, u),
                                                                {},
                                                                {
                                                                  nodeColorScheme: [].concat(
                                                                    (0, s.Z)(n.slice(1, n.length)),
                                                                    [n[0]],
                                                                  ),
                                                                },
                                                              ),
                                                            )
                                                          },
                                                        }),
                                                      }),
                                                      (0, l.jsxs)(V.v2, {
                                                        placement: 'right',
                                                        closeOnSelect: !1,
                                                        matchWidth: !0,
                                                        children: [
                                                          (0, l.jsx)(V.j2, {
                                                            width: 20,
                                                            as: W.z,
                                                            colorScheme: '',
                                                            color: 'black',
                                                            rightIcon: (0, l.jsx)(L.v, {}),
                                                            children: (0, l.jsx)(q.k, {
                                                              height: 6,
                                                              width: 6,
                                                              flexDirection: 'column',
                                                              flexWrap: 'wrap',
                                                              children: u.nodeColorScheme.map(
                                                                function (e) {
                                                                  return (0, l.jsx)(
                                                                    p.xu,
                                                                    {
                                                                      bgColor: e,
                                                                      flex: '1 1 8px',
                                                                      borderRadius: '2xl',
                                                                    },
                                                                    e,
                                                                  )
                                                                },
                                                              ),
                                                            }),
                                                          }),
                                                          (0, l.jsxs)(K.h, {
                                                            children: [
                                                              ' ',
                                                              (0, l.jsx)(V.qy, {
                                                                minW: 10,
                                                                zIndex: 'popover',
                                                                bgColor: 'gray.200',
                                                                children: (0, l.jsx)(V.__, {
                                                                  width: 500,
                                                                  type: 'checkbox',
                                                                  defaultValue: u.nodeColorScheme,
                                                                  onChange: function (e) {
                                                                    e.length &&
                                                                      h(
                                                                        re(
                                                                          re({}, u),
                                                                          {},
                                                                          { nodeColorScheme: e },
                                                                        ),
                                                                      )
                                                                  },
                                                                  children: w.map(function (e) {
                                                                    return (0, l.jsx)(
                                                                      V.ii,
                                                                      {
                                                                        isChecked:
                                                                          u.nodeColorScheme.some(
                                                                            function (n) {
                                                                              return n === e
                                                                            },
                                                                          ),
                                                                        value: e,
                                                                        isDisabled:
                                                                          1 ===
                                                                            u.nodeColorScheme
                                                                              .length &&
                                                                          u.nodeColorScheme[0] ===
                                                                            e,
                                                                        children: (0, l.jsx)(p.xu, {
                                                                          justifyContent:
                                                                            'space-between',
                                                                          alignItems: 'center',
                                                                          display: 'flex',
                                                                          children: (0, l.jsx)(
                                                                            p.xu,
                                                                            {
                                                                              bgColor: e,
                                                                              borderRadius: 'sm',
                                                                              height: 6,
                                                                              width: 6,
                                                                            },
                                                                          ),
                                                                        }),
                                                                      },
                                                                      e,
                                                                    )
                                                                  }),
                                                                }),
                                                              }),
                                                            ],
                                                          }),
                                                        ],
                                                      }),
                                                    ],
                                                  }),
                                                  (0, l.jsxs)(q.k, {
                                                    alignItems: 'center',
                                                    justifyContent: 'space-between',
                                                    children: [
                                                      (0, l.jsx)(U.x, { children: 'Links' }),
                                                      (0, l.jsxs)(V.v2, {
                                                        placement: 'right',
                                                        children: [
                                                          (0, l.jsx)(V.j2, {
                                                            as: W.z,
                                                            colorScheme: '',
                                                            color: 'black',
                                                            rightIcon: (0, l.jsx)(L.v, {}),
                                                            children: (0, l.jsx)(p.xu, {
                                                              children: u.linkColorScheme
                                                                ? (0, l.jsx)(p.xu, {
                                                                    bgColor: u.linkColorScheme,
                                                                    borderRadius: 'sm',
                                                                    height: 6,
                                                                    width: 6,
                                                                  })
                                                                : (0, l.jsx)(q.k, {
                                                                    height: 6,
                                                                    width: 6,
                                                                    flexDirection: 'column',
                                                                    flexWrap: 'wrap',
                                                                    children: u.nodeColorScheme.map(
                                                                      function (e) {
                                                                        return (0, l.jsx)(
                                                                          p.xu,
                                                                          {
                                                                            bgColor: e,
                                                                            flex: '1 1 8px',
                                                                            borderRadius: '2xl',
                                                                          },
                                                                          e,
                                                                        )
                                                                      },
                                                                    ),
                                                                  }),
                                                            }),
                                                          }),
                                                          (0, l.jsxs)(K.h, {
                                                            children: [
                                                              ' ',
                                                              (0, l.jsxs)(V.qy, {
                                                                minW: 10,
                                                                zIndex: 'popover',
                                                                bgColor: 'gray.200',
                                                                children: [
                                                                  (0, l.jsx)(V.sN, {
                                                                    onClick: function () {
                                                                      return h(
                                                                        re(
                                                                          re({}, u),
                                                                          {},
                                                                          { linkColorScheme: '' },
                                                                        ),
                                                                      )
                                                                    },
                                                                    justifyContent: 'space-between',
                                                                    alignItems: 'center',
                                                                    display: 'flex',
                                                                    children: (0, l.jsx)(q.k, {
                                                                      height: 6,
                                                                      width: 6,
                                                                      flexDirection: 'column',
                                                                      flexWrap: 'wrap',
                                                                      children:
                                                                        u.nodeColorScheme.map(
                                                                          function (e) {
                                                                            return (0, l.jsx)(
                                                                              p.xu,
                                                                              {
                                                                                bgColor: e,
                                                                                flex: '1 1 8px',
                                                                                borderRadius: '2xl',
                                                                              },
                                                                              e,
                                                                            )
                                                                          },
                                                                        ),
                                                                    }),
                                                                  }),
                                                                  Z.map(function (e) {
                                                                    return (0, l.jsx)(
                                                                      V.sN,
                                                                      {
                                                                        onClick: function () {
                                                                          return h(
                                                                            re(
                                                                              re({}, u),
                                                                              {},
                                                                              {
                                                                                linkColorScheme: e,
                                                                              },
                                                                            ),
                                                                          )
                                                                        },
                                                                        justifyContent:
                                                                          'space-between',
                                                                        alignItems: 'center',
                                                                        display: 'flex',
                                                                        children: (0, l.jsx)(p.xu, {
                                                                          bgColor: e,
                                                                          borderRadius: 'sm',
                                                                          height: 6,
                                                                          width: 6,
                                                                        }),
                                                                      },
                                                                      e,
                                                                    )
                                                                  }),
                                                                ],
                                                              }),
                                                            ],
                                                          }),
                                                        ],
                                                      }),
                                                    ],
                                                  }),
                                                  (0, l.jsxs)(q.k, {
                                                    alignItems: 'center',
                                                    justifyContent: 'space-between',
                                                    children: [
                                                      (0, l.jsx)(U.x, { children: 'Accent' }),
                                                      (0, l.jsxs)(V.v2, {
                                                        placement: 'right',
                                                        children: [
                                                          (0, l.jsx)(V.j2, {
                                                            as: W.z,
                                                            colorScheme: '',
                                                            color: 'black',
                                                            rightIcon: (0, l.jsx)(L.v, {}),
                                                            children: (0, l.jsx)(p.xu, {
                                                              bgColor: y,
                                                              borderRadius: 'sm',
                                                              height: 6,
                                                              width: 6,
                                                            }),
                                                          }),
                                                          (0, l.jsxs)(K.h, {
                                                            children: [
                                                              ' ',
                                                              (0, l.jsx)(V.qy, {
                                                                minW: 10,
                                                                zIndex: 'popover',
                                                                bgColor: 'gray.200',
                                                                children: w.map(function (e) {
                                                                  return (0, l.jsx)(
                                                                    V.sN,
                                                                    {
                                                                      onClick: function () {
                                                                        return k(e)
                                                                      },
                                                                      justifyContent:
                                                                        'space-between',
                                                                      alignItems: 'center',
                                                                      display: 'flex',
                                                                      children: (0, l.jsx)(p.xu, {
                                                                        bgColor: e,
                                                                        borderRadius: 'sm',
                                                                        height: 6,
                                                                        width: 6,
                                                                      }),
                                                                    },
                                                                    e,
                                                                  )
                                                                }),
                                                              }),
                                                            ],
                                                          }),
                                                        ],
                                                      }),
                                                    ],
                                                  }),
                                                  (0, l.jsxs)(q.k, {
                                                    alignItems: 'center',
                                                    justifyContent: 'space-between',
                                                    children: [
                                                      (0, l.jsx)(U.x, {
                                                        children: 'Link Highlight',
                                                      }),
                                                      (0, l.jsxs)(V.v2, {
                                                        placement: 'right',
                                                        children: [
                                                          (0, l.jsx)(V.j2, {
                                                            as: W.z,
                                                            colorScheme: '',
                                                            color: 'black',
                                                            rightIcon: (0, l.jsx)(L.v, {}),
                                                            children: (0, l.jsx)(p.xu, {
                                                              bgColor: u.linkHighlight,
                                                              borderRadius: 'sm',
                                                              height: 6,
                                                              width: 6,
                                                            }),
                                                          }),
                                                          (0, l.jsxs)(K.h, {
                                                            children: [
                                                              ' ',
                                                              (0, l.jsxs)(V.qy, {
                                                                minW: 10,
                                                                zIndex: 'popover',
                                                                bgColor: 'gray.200',
                                                                children: [
                                                                  (0, l.jsx)(
                                                                    V.sN,
                                                                    {
                                                                      onClick: function () {
                                                                        return h(
                                                                          re(
                                                                            re({}, u),
                                                                            {},
                                                                            { linkHighlight: '' },
                                                                          ),
                                                                        )
                                                                      },
                                                                      justifyContent:
                                                                        'space-between',
                                                                      alignItems: 'center',
                                                                      display: 'flex',
                                                                      children: (0, l.jsx)(p.xu, {
                                                                        borderRadius: 'sm',
                                                                        height: 6,
                                                                        width: 6,
                                                                      }),
                                                                    },
                                                                    'none',
                                                                  ),
                                                                  w.map(function (e) {
                                                                    return (0, l.jsx)(
                                                                      V.sN,
                                                                      {
                                                                        onClick: function () {
                                                                          return h(
                                                                            re(
                                                                              re({}, u),
                                                                              {},
                                                                              { linkHighlight: e },
                                                                            ),
                                                                          )
                                                                        },
                                                                        justifyContent:
                                                                          'space-between',
                                                                        alignItems: 'center',
                                                                        display: 'flex',
                                                                        children: (0, l.jsx)(p.xu, {
                                                                          bgColor: e,
                                                                          borderRadius: 'sm',
                                                                          height: 6,
                                                                          width: 6,
                                                                        }),
                                                                      },
                                                                      e,
                                                                    )
                                                                  }),
                                                                ],
                                                              }),
                                                            ],
                                                          }),
                                                        ],
                                                      }),
                                                    ],
                                                  }),
                                                  (0, l.jsxs)(q.k, {
                                                    alignItems: 'center',
                                                    justifyContent: 'space-between',
                                                    children: [
                                                      (0, l.jsx)(U.x, {
                                                        children: 'Node Highlight',
                                                      }),
                                                      (0, l.jsxs)(V.v2, {
                                                        placement: 'right',
                                                        children: [
                                                          (0, l.jsx)(V.j2, {
                                                            as: W.z,
                                                            colorScheme: '',
                                                            color: 'black',
                                                            rightIcon: (0, l.jsx)(L.v, {}),
                                                            children: (0, l.jsx)(p.xu, {
                                                              bgColor: u.nodeHighlight,
                                                              borderRadius: 'sm',
                                                              height: 6,
                                                              width: 6,
                                                            }),
                                                          }),
                                                          (0, l.jsxs)(K.h, {
                                                            children: [
                                                              ' ',
                                                              (0, l.jsxs)(V.qy, {
                                                                minW: 10,
                                                                zIndex: 'popover',
                                                                bgColor: 'gray.200',
                                                                children: [
                                                                  (0, l.jsx)(
                                                                    V.sN,
                                                                    {
                                                                      onClick: function () {
                                                                        return h(
                                                                          re(
                                                                            re({}, u),
                                                                            {},
                                                                            { nodeHighlight: '' },
                                                                          ),
                                                                        )
                                                                      },
                                                                      justifyContent:
                                                                        'space-between',
                                                                      alignItems: 'center',
                                                                      display: 'flex',
                                                                      children: (0, l.jsx)(p.xu, {
                                                                        borderRadius: 'sm',
                                                                        height: 6,
                                                                        width: 6,
                                                                      }),
                                                                    },
                                                                    'none',
                                                                  ),
                                                                  w.map(function (e) {
                                                                    return (0, l.jsx)(
                                                                      V.sN,
                                                                      {
                                                                        onClick: function () {
                                                                          return h(
                                                                            re(
                                                                              re({}, u),
                                                                              {},
                                                                              { nodeHighlight: e },
                                                                            ),
                                                                          )
                                                                        },
                                                                        justifyContent:
                                                                          'space-between',
                                                                        alignItems: 'center',
                                                                        display: 'flex',
                                                                        children: (0, l.jsx)(p.xu, {
                                                                          bgColor: e,
                                                                          borderRadius: 'sm',
                                                                          height: 6,
                                                                          width: 6,
                                                                        }),
                                                                      },
                                                                      e,
                                                                    )
                                                                  }),
                                                                ],
                                                              }),
                                                            ],
                                                          }),
                                                        ],
                                                      }),
                                                    ],
                                                  }),
                                                  (0, l.jsxs)(q.k, {
                                                    alignItems: 'center',
                                                    justifyContent: 'space-between',
                                                    children: [
                                                      (0, l.jsx)(U.x, { children: 'Background' }),
                                                      (0, l.jsxs)(V.v2, {
                                                        placement: 'right',
                                                        children: [
                                                          (0, l.jsx)(V.j2, {
                                                            as: W.z,
                                                            colorScheme: '',
                                                            color: 'black',
                                                            rightIcon: (0, l.jsx)(L.v, {}),
                                                            children: (0, l.jsx)(p.xu, {
                                                              bgColor: u.backgroundColor,
                                                              borderRadius: 'sm',
                                                              height: 6,
                                                              width: 6,
                                                            }),
                                                          }),
                                                          (0, l.jsxs)(K.h, {
                                                            children: [
                                                              ' ',
                                                              (0, l.jsx)(V.qy, {
                                                                minWidth: 10,
                                                                zIndex: 'popover',
                                                                bgColor: 'gray.200',
                                                                children: Z.map(function (e) {
                                                                  return (0, l.jsx)(
                                                                    V.sN,
                                                                    {
                                                                      onClick: function () {
                                                                        return h(
                                                                          re(
                                                                            re({}, u),
                                                                            {},
                                                                            { backgroundColor: e },
                                                                          ),
                                                                        )
                                                                      },
                                                                      justifyContent:
                                                                        'space-between',
                                                                      alignItems: 'center',
                                                                      display: 'flex',
                                                                      children: (0, l.jsx)(p.xu, {
                                                                        bgColor: e,
                                                                        borderRadius: 'sm',
                                                                        height: 6,
                                                                        width: 6,
                                                                      }),
                                                                    },
                                                                    e,
                                                                  )
                                                                }),
                                                              }),
                                                            ],
                                                          }),
                                                        ],
                                                      }),
                                                    ],
                                                  }),
                                                  (0, l.jsxs)(q.k, {
                                                    alignItems: 'center',
                                                    justifyContent: 'space-between',
                                                    children: [
                                                      (0, l.jsx)(U.x, { children: 'Emacs Node' }),
                                                      (0, l.jsxs)(V.v2, {
                                                        placement: 'right',
                                                        children: [
                                                          (0, l.jsx)(V.j2, {
                                                            as: W.z,
                                                            colorScheme: '',
                                                            color: 'black',
                                                            rightIcon: (0, l.jsx)(L.v, {}),
                                                            children: (0, l.jsx)(p.xu, {
                                                              bgColor: u.emacsNodeColor,
                                                              borderRadius: 'sm',
                                                              height: 6,
                                                              width: 6,
                                                            }),
                                                          }),
                                                          (0, l.jsxs)(K.h, {
                                                            children: [
                                                              ' ',
                                                              (0, l.jsxs)(V.qy, {
                                                                minWidth: 10,
                                                                zIndex: 'popover',
                                                                bgColor: 'gray.200',
                                                                children: [
                                                                  (0, l.jsx)(
                                                                    V.sN,
                                                                    {
                                                                      onClick: function () {
                                                                        return h(
                                                                          re(
                                                                            re({}, u),
                                                                            {},
                                                                            { emacsNodeColor: '' },
                                                                          ),
                                                                        )
                                                                      },
                                                                      justifyContent:
                                                                        'space-between',
                                                                      alignItems: 'center',
                                                                      display: 'flex',
                                                                      children: (0, l.jsx)(p.xu, {
                                                                        borderRadius: 'sm',
                                                                        height: 6,
                                                                        width: 6,
                                                                      }),
                                                                    },
                                                                    'none',
                                                                  ),
                                                                  w.map(function (e) {
                                                                    return (0, l.jsx)(
                                                                      V.sN,
                                                                      {
                                                                        onClick: function () {
                                                                          return h(
                                                                            re(
                                                                              re({}, u),
                                                                              {},
                                                                              { emacsNodeColor: e },
                                                                            ),
                                                                          )
                                                                        },
                                                                        justifyContent:
                                                                          'space-between',
                                                                        alignItems: 'center',
                                                                        display: 'flex',
                                                                        children: (0, l.jsx)(p.xu, {
                                                                          bgColor: e,
                                                                          borderRadius: 'sm',
                                                                          height: 6,
                                                                          width: 6,
                                                                        }),
                                                                      },
                                                                      e,
                                                                    )
                                                                  }),
                                                                ],
                                                              }),
                                                            ],
                                                          }),
                                                        ],
                                                      }),
                                                    ],
                                                  }),
                                                ],
                                              }),
                                            }),
                                          }),
                                        ],
                                      }),
                                    }),
                                    (0, l.jsxs)(_.gC, {
                                      spacing: 2,
                                      justifyContent: 'flex-start',
                                      divider: (0, l.jsx)(_.cX, { borderColor: 'gray.500' }),
                                      align: 'stretch',
                                      paddingLeft: 7,
                                      color: 'gray.800',
                                      children: [
                                        (0, l.jsx)(oe, {
                                          label: 'Node size',
                                          value: u.nodeRel,
                                          onChange: function (e) {
                                            return h(re(re({}, u), {}, { nodeRel: e }))
                                          },
                                        }),
                                        t &&
                                          (0, l.jsxs)(l.Fragment, {
                                            children: [
                                              (0, l.jsx)(oe, {
                                                label: 'Node opacity',
                                                value: u.nodeOpacity,
                                                min: 0,
                                                max: 1,
                                                onChange: function (e) {
                                                  return h(re(re({}, u), {}, { nodeOpacity: e }))
                                                },
                                              }),
                                              (0, l.jsx)(oe, {
                                                label: 'Node resolution',
                                                value: u.nodeResolution,
                                                min: 5,
                                                max: 32,
                                                step: 1,
                                                onChange: function (e) {
                                                  return h(re(re({}, u), {}, { nodeResolution: e }))
                                                },
                                              }),
                                            ],
                                          }),
                                        (0, l.jsx)(oe, {
                                          label: 'Link width',
                                          value: u.linkWidth,
                                          onChange: function (e) {
                                            return h(re(re({}, u), {}, { linkWidth: e }))
                                          },
                                        }),
                                        t &&
                                          (0, l.jsx)(oe, {
                                            label: 'Link opacity',
                                            min: 0,
                                            max: 1,
                                            value: u.linkOpacity,
                                            onChange: function (e) {
                                              return h(re(re({}, u), {}, { linkOpacity: e }))
                                            },
                                          }),
                                        (0, l.jsxs)(p.xu, {
                                          children: [
                                            (0, l.jsxs)(q.k, {
                                              alignItems: 'center',
                                              justifyContent: 'space-between',
                                              children: [
                                                (0, l.jsx)(U.x, { children: 'Labels' }),
                                                (0, l.jsxs)(V.v2, {
                                                  placement: 'right',
                                                  children: [
                                                    (0, l.jsx)(V.j2, {
                                                      as: W.z,
                                                      colorScheme: '',
                                                      color: 'black',
                                                      rightIcon: (0, l.jsx)(L.v, {}),
                                                      children: u.labels
                                                        ? u.labels < 2
                                                          ? 'On Highlight'
                                                          : 'Always'
                                                        : 'Never',
                                                    }),
                                                    (0, l.jsxs)(K.h, {
                                                      children: [
                                                        ' ',
                                                        (0, l.jsxs)(V.qy, {
                                                          zIndex: 'popover',
                                                          bgColor: 'gray.200',
                                                          children: [
                                                            (0, l.jsx)(V.sN, {
                                                              onClick: function () {
                                                                return h(
                                                                  re(re({}, u), {}, { labels: 0 }),
                                                                )
                                                              },
                                                              children: 'Never',
                                                            }),
                                                            (0, l.jsx)(V.sN, {
                                                              onClick: function () {
                                                                return h(
                                                                  re(re({}, u), {}, { labels: 1 }),
                                                                )
                                                              },
                                                              children: 'On Highlight',
                                                            }),
                                                            (0, l.jsx)(V.sN, {
                                                              onClick: function () {
                                                                return h(
                                                                  re(re({}, u), {}, { labels: 2 }),
                                                                )
                                                              },
                                                              children: 'Always',
                                                            }),
                                                            (0, l.jsx)(V.sN, {
                                                              onClick: function () {
                                                                return h(
                                                                  re(re({}, u), {}, { labels: 3 }),
                                                                )
                                                              },
                                                              children: 'Always (even in 3D)',
                                                            }),
                                                          ],
                                                        }),
                                                      ],
                                                    }),
                                                  ],
                                                }),
                                              ],
                                            }),
                                            (0, l.jsx)(J.U, {
                                              in: u.labels > 0,
                                              animateOpacity: !0,
                                              children: (0, l.jsxs)(_.gC, {
                                                spacing: 1,
                                                justifyContent: 'flex-start',
                                                divider: (0, l.jsx)(_.cX, {
                                                  borderColor: 'gray.400',
                                                }),
                                                align: 'stretch',
                                                paddingLeft: 2,
                                                color: 'gray.800',
                                                children: [
                                                  (0, l.jsxs)(q.k, {
                                                    alignItems: 'center',
                                                    justifyContent: 'space-between',
                                                    children: [
                                                      (0, l.jsx)(U.x, { children: 'Text' }),
                                                      (0, l.jsxs)(V.v2, {
                                                        matchWidth: !0,
                                                        children: [
                                                          (0, l.jsx)(V.j2, {
                                                            as: W.z,
                                                            rightIcon: (0, l.jsx)(L.v, {}),
                                                            color: 'black',
                                                            colorScheme: '',
                                                            children: (0, l.jsx)(p.xu, {
                                                              bgColor: u.labelTextColor,
                                                              borderRadius: 'sm',
                                                              height: 6,
                                                              width: 6,
                                                            }),
                                                          }),
                                                          (0, l.jsxs)(K.h, {
                                                            children: [
                                                              ' ',
                                                              (0, l.jsx)(V.qy, {
                                                                minW: 10,
                                                                zIndex: 'popover',
                                                                bg: 'gray.200',
                                                                children: Z.map(function (e) {
                                                                  return (0, l.jsx)(
                                                                    V.sN,
                                                                    {
                                                                      onClick: function () {
                                                                        return h(
                                                                          re(
                                                                            re({}, u),
                                                                            {},
                                                                            { labelTextColor: e },
                                                                          ),
                                                                        )
                                                                      },
                                                                      children: (0, l.jsx)(p.xu, {
                                                                        bgColor: e,
                                                                        borderRadius: 'sm',
                                                                        height: 6,
                                                                        width: 6,
                                                                      }),
                                                                    },
                                                                    e,
                                                                  )
                                                                }),
                                                              }),
                                                            ],
                                                          }),
                                                        ],
                                                      }),
                                                    ],
                                                  }),
                                                  (0, l.jsxs)(q.k, {
                                                    alignItems: 'center',
                                                    justifyContent: 'space-between',
                                                    children: [
                                                      (0, l.jsx)(U.x, { children: 'Background' }),
                                                      (0, l.jsxs)(V.v2, {
                                                        placement: 'right',
                                                        children: [
                                                          (0, l.jsx)(V.j2, {
                                                            as: W.z,
                                                            rightIcon: (0, l.jsx)(L.v, {}),
                                                            color: 'black',
                                                            colorScheme: '',
                                                            children: (0, l.jsx)(p.xu, {
                                                              bgColor: u.labelBackgroundColor,
                                                              borderRadius: 'sm',
                                                              height: 6,
                                                              width: 6,
                                                            }),
                                                          }),
                                                          (0, l.jsxs)(K.h, {
                                                            children: [
                                                              ' ',
                                                              (0, l.jsxs)(V.qy, {
                                                                minW: 10,
                                                                zIndex: 'popover',
                                                                bg: 'gray.200',
                                                                children: [
                                                                  (0, l.jsx)(V.sN, {
                                                                    onClick: function () {
                                                                      return h(
                                                                        re(
                                                                          re({}, u),
                                                                          {},
                                                                          {
                                                                            labelBackgroundColor:
                                                                              '',
                                                                          },
                                                                        ),
                                                                      )
                                                                    },
                                                                    justifyContent: 'space-between',
                                                                    alignItems: 'center',
                                                                    display: 'flex',
                                                                    children: 'None',
                                                                  }),
                                                                  Z.map(function (e) {
                                                                    return (0, l.jsx)(
                                                                      V.sN,
                                                                      {
                                                                        onClick: function () {
                                                                          return h(
                                                                            re(
                                                                              re({}, u),
                                                                              {},
                                                                              {
                                                                                labelBackgroundColor:
                                                                                  e,
                                                                              },
                                                                            ),
                                                                          )
                                                                        },
                                                                        justifyContent:
                                                                          'space-between',
                                                                        alignItems: 'center',
                                                                        display: 'flex',
                                                                        children: (0, l.jsx)(p.xu, {
                                                                          bgColor: e,
                                                                          borderRadius: 'sm',
                                                                          height: 6,
                                                                          width: 6,
                                                                        }),
                                                                      },
                                                                      e,
                                                                    )
                                                                  }),
                                                                ],
                                                              }),
                                                            ],
                                                          }),
                                                        ],
                                                      }),
                                                    ],
                                                  }),
                                                  (0, l.jsx)(J.U, {
                                                    in: !!u.labelBackgroundColor,
                                                    animateOpacity: !0,
                                                    children: (0, l.jsx)(p.xu, {
                                                      paddingTop: 2,
                                                      children: (0, l.jsx)(oe, {
                                                        label: 'Background opacity',
                                                        value: u.labelBackgroundOpacity,
                                                        onChange: function (e) {
                                                          console.log(u.labelBackgroundOpacity),
                                                            h(
                                                              re(
                                                                re({}, u),
                                                                {},
                                                                { labelBackgroundOpacity: e },
                                                              ),
                                                            )
                                                        },
                                                        min: 0,
                                                        max: 1,
                                                        step: 0.01,
                                                      }),
                                                    }),
                                                  }),
                                                  (0, l.jsx)(J.U, {
                                                    in: u.labels > 1,
                                                    animateOpacity: !0,
                                                    children: (0, l.jsx)(p.xu, {
                                                      paddingTop: 2,
                                                      children: (0, l.jsx)(oe, {
                                                        label: 'Label Appearance Scale',
                                                        value: 5 * u.labelScale,
                                                        onChange: function (e) {
                                                          return h(
                                                            re(
                                                              re({}, u),
                                                              {},
                                                              { labelScale: e / 5 },
                                                            ),
                                                          )
                                                        },
                                                      }),
                                                    }),
                                                  }),
                                                ],
                                              }),
                                            }),
                                          ],
                                        }),
                                        (0, l.jsxs)(le, {
                                          label: 'Link arrows',
                                          value: u.arrows,
                                          onChange: function () {
                                            return h(re(re({}, u), {}, { arrows: !u.arrows }))
                                          },
                                          children: [
                                            (0, l.jsx)(oe, {
                                              label: 'Arrow size',
                                              value: u.arrowsLength / 10,
                                              onChange: function (e) {
                                                return h(
                                                  re(re({}, u), {}, { arrowsLength: 10 * e }),
                                                )
                                              },
                                            }),
                                            (0, l.jsx)(oe, {
                                              label: 'Arrow Position',
                                              value: u.arrowsPos,
                                              min: 0,
                                              max: 1,
                                              step: 0.01,
                                              onChange: function (e) {
                                                return h(re(re({}, u), {}, { arrowsPos: e }))
                                              },
                                            }),
                                            (0, l.jsxs)(q.k, {
                                              alignItems: 'center',
                                              justifyContent: 'space-between',
                                              children: [
                                                (0, l.jsx)(U.x, { children: 'Arrow Color' }),
                                                (0, l.jsxs)(V.v2, {
                                                  placement: 'right',
                                                  children: [
                                                    (0, l.jsx)(V.j2, {
                                                      as: W.z,
                                                      colorScheme: '',
                                                      color: 'black',
                                                      rightIcon: (0, l.jsx)(L.v, {}),
                                                      children: (0, l.jsx)(p.xu, {
                                                        bgColor: u.arrowsColor,
                                                        borderRadius: 'sm',
                                                        height: 6,
                                                        width: 6,
                                                      }),
                                                    }),
                                                    (0, l.jsxs)(K.h, {
                                                      children: [
                                                        ' ',
                                                        (0, l.jsxs)(V.qy, {
                                                          minW: 10,
                                                          zIndex: 'popover',
                                                          bgColor: 'gray.200',
                                                          children: [
                                                            (0, l.jsx)(V.sN, {
                                                              onClick: function () {
                                                                return h(
                                                                  re(
                                                                    re({}, u),
                                                                    {},
                                                                    { arrowsColor: '' },
                                                                  ),
                                                                )
                                                              },
                                                              justifyContent: 'space-between',
                                                              alignItems: 'center',
                                                              display: 'flex',
                                                              children: (0, l.jsx)(p.xu, {
                                                                height: 6,
                                                                width: 6,
                                                              }),
                                                            }),
                                                            w.map(function (e) {
                                                              return (0, l.jsx)(
                                                                V.sN,
                                                                {
                                                                  onClick: function () {
                                                                    return h(
                                                                      re(
                                                                        re({}, u),
                                                                        {},
                                                                        { arrowsColor: e },
                                                                      ),
                                                                    )
                                                                  },
                                                                  justifyContent: 'space-between',
                                                                  alignItems: 'center',
                                                                  display: 'flex',
                                                                  children: (0, l.jsx)(p.xu, {
                                                                    bgColor: e,
                                                                    borderRadius: 'sm',
                                                                    height: 6,
                                                                    width: 6,
                                                                  }),
                                                                },
                                                                e,
                                                              )
                                                            }),
                                                            Z.map(function (e) {
                                                              return (0, l.jsx)(
                                                                V.sN,
                                                                {
                                                                  onClick: function () {
                                                                    return h(
                                                                      re(
                                                                        re({}, u),
                                                                        {},
                                                                        { arrowsColor: e },
                                                                      ),
                                                                    )
                                                                  },
                                                                  justifyContent: 'space-between',
                                                                  alignItems: 'center',
                                                                  display: 'flex',
                                                                  children: (0, l.jsx)(p.xu, {
                                                                    bgColor: e,
                                                                    borderRadius: 'sm',
                                                                    height: 6,
                                                                    width: 6,
                                                                  }),
                                                                },
                                                                e,
                                                              )
                                                            }),
                                                          ],
                                                        }),
                                                      ],
                                                    }),
                                                  ],
                                                }),
                                              ],
                                            }),
                                          ],
                                        }),
                                        (0, l.jsxs)(le, {
                                          label: 'Directional Particles',
                                          value: u.particles,
                                          onChange: function () {
                                            return h(re(re({}, u), {}, { particles: !u.particles }))
                                          },
                                          children: [
                                            (0, l.jsx)(oe, {
                                              label: 'Particle Number',
                                              value: u.particlesNumber,
                                              max: 5,
                                              step: 1,
                                              onChange: function (e) {
                                                return h(re(re({}, u), {}, { particlesNumber: e }))
                                              },
                                            }),
                                            (0, l.jsx)(oe, {
                                              label: 'Particle Size',
                                              value: u.particlesWidth,
                                              onChange: function (e) {
                                                return h(re(re({}, u), {}, { particlesWidth: e }))
                                              },
                                            }),
                                          ],
                                        }),
                                        (0, l.jsx)(le, {
                                          label: 'Highlight',
                                          onChange: function () {
                                            return h(re(re({}, u), {}, { highlight: !u.highlight }))
                                          },
                                          value: u.highlight,
                                          children: (0, l.jsxs)(_.gC, {
                                            spacing: 1,
                                            justifyContent: 'flex-start',
                                            divider: (0, l.jsx)(_.cX, { borderColor: 'gray.400' }),
                                            align: 'stretch',
                                            paddingLeft: 0,
                                            children: [
                                              (0, l.jsx)(oe, {
                                                label: 'Highlight Link Thickness',
                                                value: u.highlightLinkSize,
                                                onChange: function (e) {
                                                  return h(
                                                    re(re({}, u), {}, { highlightLinkSize: e }),
                                                  )
                                                },
                                              }),
                                              (0, l.jsx)(oe, {
                                                label: 'Highlight Node Size',
                                                value: u.highlightNodeSize,
                                                onChange: function (e) {
                                                  return h(
                                                    re(re({}, u), {}, { highlightNodeSize: e }),
                                                  )
                                                },
                                              }),
                                              (0, l.jsxs)(le, {
                                                label: 'Highlight Animation',
                                                onChange: function () {
                                                  h(
                                                    re(
                                                      re({}, u),
                                                      {},
                                                      { highlightAnim: !u.highlightAnim },
                                                    ),
                                                  )
                                                },
                                                value: u.highlightAnim,
                                                children: [
                                                  (0, l.jsx)(oe, {
                                                    label: 'Animation speed',
                                                    onChange: function (e) {
                                                      return h(
                                                        re(re({}, u), {}, { animationSpeed: e }),
                                                      )
                                                    },
                                                    value: u.animationSpeed,
                                                    infoText:
                                                      'Slower speed has a chance of being buggy',
                                                    min: 50,
                                                    max: 1e3,
                                                    step: 10,
                                                  }),
                                                  (0, l.jsx)(Y.Ph, {
                                                    placeholder: u.algorithmName,
                                                    onChange: function (e) {
                                                      h(
                                                        re(
                                                          re({}, u),
                                                          {},
                                                          { algorithmName: e.target.value },
                                                        ),
                                                      )
                                                    },
                                                    children: u.algorithmOptions.map(function (e) {
                                                      return (0,
                                                      l.jsx)('option', { value: e, children: e }, e)
                                                    }),
                                                  }),
                                                ],
                                              }),
                                            ],
                                          }),
                                        }),
                                      ],
                                    }),
                                  ],
                                }),
                              }),
                            ],
                          }),
                          (0, l.jsxs)(A.Qd, {
                            children: [
                              (0, l.jsxs)(A.KF, {
                                children: [
                                  (0, l.jsx)(A.XE, { marginRight: 2 }),
                                  (0, l.jsx)(X.X, { size: 'sm', children: 'Behavior' }),
                                ],
                              }),
                              (0, l.jsx)(A.Hk, {
                                children: (0, l.jsxs)(_.gC, {
                                  spacing: 2,
                                  justifyContent: 'flex-start',
                                  divider: (0, l.jsx)(_.cX, { borderColor: 'gray.500' }),
                                  align: 'stretch',
                                  paddingLeft: 7,
                                  color: 'gray.800',
                                  children: [
                                    (0, l.jsxs)(q.k, {
                                      alignItems: 'center',
                                      justifyContent: 'space-between',
                                      children: [
                                        (0, l.jsxs)(q.k, {
                                          children: [
                                            (0, l.jsx)(U.x, { children: 'Expand Node' }),
                                            (0, l.jsx)(ie, {
                                              infoText:
                                                'View only the node and its direct neighbors',
                                            }),
                                          ],
                                        }),
                                        (0, l.jsxs)(V.v2, {
                                          placement: 'right',
                                          children: [
                                            (0, l.jsx)(V.j2, {
                                              as: W.z,
                                              rightIcon: (0, l.jsx)(L.v, {}),
                                              colorScheme: '',
                                              color: 'black',
                                              children: (0, l.jsx)(U.x, {
                                                children:
                                                  g.local[0].toUpperCase() + g.local.slice(1),
                                              }),
                                            }),
                                            (0, l.jsxs)(K.h, {
                                              children: [
                                                ' ',
                                                (0, l.jsxs)(V.qy, {
                                                  zIndex: 'popover',
                                                  bgColor: 'gray.200',
                                                  children: [
                                                    (0, l.jsx)(V.sN, {
                                                      onClick: function () {
                                                        return x(re(re({}, g), {}, { local: '' }))
                                                      },
                                                      children: 'Never',
                                                    }),
                                                    (0, l.jsx)(V.sN, {
                                                      onClick: function () {
                                                        return x(
                                                          re(re({}, g), {}, { local: 'click' }),
                                                        )
                                                      },
                                                      children: 'Click',
                                                    }),
                                                    (0, l.jsx)(V.sN, {
                                                      onClick: function () {
                                                        return x(
                                                          re(re({}, g), {}, { local: 'double' }),
                                                        )
                                                      },
                                                      children: 'Double Click',
                                                    }),
                                                    (0, l.jsx)(V.sN, {
                                                      onClick: function () {
                                                        return x(
                                                          re(re({}, g), {}, { local: 'right' }),
                                                        )
                                                      },
                                                      children: 'Right Click',
                                                    }),
                                                  ],
                                                }),
                                              ],
                                            }),
                                          ],
                                        }),
                                      ],
                                    }),
                                    (0, l.jsxs)(q.k, {
                                      alignItems: 'center',
                                      justifyContent: 'space-between',
                                      children: [
                                        (0, l.jsx)(U.x, { children: 'Open in Emacs' }),
                                        (0, l.jsxs)(V.v2, {
                                          placement: 'right',
                                          children: [
                                            (0, l.jsx)(V.j2, {
                                              as: W.z,
                                              rightIcon: (0, l.jsx)(L.v, {}),
                                              colorScheme: '',
                                              color: 'black',
                                              children: (0, l.jsx)(U.x, {
                                                children:
                                                  g.follow[0].toUpperCase() + g.follow.slice(1),
                                              }),
                                            }),
                                            (0, l.jsxs)(K.h, {
                                              children: [
                                                ' ',
                                                (0, l.jsxs)(V.qy, {
                                                  bgColor: 'gray.200',
                                                  zIndex: 'popover',
                                                  children: [
                                                    (0, l.jsx)(V.sN, {
                                                      onClick: function () {
                                                        return x(re(re({}, g), {}, { follow: '' }))
                                                      },
                                                      children: 'Never',
                                                    }),
                                                    (0, l.jsx)(V.sN, {
                                                      onClick: function () {
                                                        return x(
                                                          re(re({}, g), {}, { follow: 'click' }),
                                                        )
                                                      },
                                                      children: 'Click',
                                                    }),
                                                    (0, l.jsx)(V.sN, {
                                                      onClick: function () {
                                                        return x(
                                                          re(re({}, g), {}, { follow: 'double' }),
                                                        )
                                                      },
                                                      children: 'Double Click',
                                                    }),
                                                    (0, l.jsx)(V.sN, {
                                                      onClick: function () {
                                                        return x(
                                                          re(re({}, g), {}, { follow: 'right' }),
                                                        )
                                                      },
                                                      children: 'Right Click',
                                                    }),
                                                  ],
                                                }),
                                              ],
                                            }),
                                          ],
                                        }),
                                      ],
                                    }),
                                    (0, l.jsxs)(q.k, {
                                      alignItems: 'center',
                                      justifyContent: 'space-between',
                                      children: [
                                        (0, l.jsx)(U.x, { children: 'Follow Emacs by...' }),
                                        (0, l.jsxs)(V.v2, {
                                          placement: 'right',
                                          children: [
                                            (0, l.jsx)(V.j2, {
                                              as: W.z,
                                              rightIcon: (0, l.jsx)(L.v, {}),
                                              colorScheme: '',
                                              color: 'black',
                                              children: (0, l.jsx)(U.x, {
                                                children:
                                                  f.follow[0].toUpperCase() + f.follow.slice(1),
                                              }),
                                            }),
                                            (0, l.jsxs)(K.h, {
                                              children: [
                                                ' ',
                                                (0, l.jsxs)(V.qy, {
                                                  bgColor: 'gray.200',
                                                  zIndex: 'popover',
                                                  children: [
                                                    (0, l.jsx)(V.sN, {
                                                      onClick: function () {
                                                        return j(
                                                          re(re({}, f), {}, { follow: 'local' }),
                                                        )
                                                      },
                                                      children: 'Opening the local graph',
                                                    }),
                                                    (0, l.jsx)(V.sN, {
                                                      onClick: function () {
                                                        return j(
                                                          re(re({}, f), {}, { follow: 'zoom' }),
                                                        )
                                                      },
                                                      children: 'Zooming to the current node',
                                                    }),
                                                  ],
                                                }),
                                              ],
                                            }),
                                          ],
                                        }),
                                      ],
                                    }),
                                    (0, l.jsx)(oe, {
                                      label: 'Zoom speed',
                                      value: f.zoomSpeed,
                                      min: 0,
                                      max: 4e3,
                                      step: 100,
                                      onChange: function (e) {
                                        return j(re(re({}, f), {}, { zoomSpeed: e }))
                                      },
                                    }),
                                    (0, l.jsx)(oe, {
                                      label: 'Zoom padding',
                                      value: f.zoomPadding,
                                      min: 0,
                                      max: 400,
                                      step: 1,
                                      onChange: function (e) {
                                        return j(re(re({}, f), {}, { zoomPadding: e }))
                                      },
                                      infoText:
                                        'How much to zoom out to accomodate all nodes when changing the view.',
                                    }),
                                  ],
                                }),
                              }),
                            ],
                          }),
                        ],
                      }),
                    }),
                  ],
                }),
              }),
            ],
          })
        },
        ie = function (e) {
          var n = e.infoText
          return (0, l.jsx)(p.xu, {
            paddingLeft: '1',
            children: (0, l.jsx)(M.u, {
              label: n,
              placement: 'top',
              color: 'gray.100',
              bg: 'gray.800',
              hasArrow: !0,
              children: (0, l.jsx)(Z.h, {}),
            }),
          })
        },
        oe = function (e) {
          var n = e.min,
            r = void 0 === n ? 0 : n,
            t = e.max,
            i = void 0 === t ? 10 : t,
            o = e.step,
            s = void 0 === o ? 0.1 : o,
            c = e.value,
            a = void 0 === c ? 1 : c,
            u = (0, R.Z)(e, ['min', 'max', 'step', 'value']),
            h = u.onChange,
            g = u.label,
            x = u.infoText,
            f = (0, d.useContext)(ee.N).highlightColor
          return (0, l.jsxs)(p.xu, {
            children: [
              (0, l.jsxs)(p.xu, {
                display: 'flex',
                alignItems: 'flex-end',
                children: [(0, l.jsx)(U.x, { children: g }), x && (0, l.jsx)(ie, { infoText: x })],
              }),
              (0, l.jsxs)(G.iR, {
                value: a,
                onChange: h,
                min: r,
                max: i,
                step: s,
                children: [
                  (0, l.jsx)(G.Uj, { children: (0, l.jsx)(G.Ms, {}) }),
                  (0, l.jsx)(M.u, {
                    bg: f,
                    label: a.toFixed(1),
                    children: (0, l.jsx)(G.gs, { bg: 'white' }),
                  }),
                ],
              }),
            ],
          })
        },
        le = function (e) {
          var n = e.value,
            r = e.onChange,
            t = e.label,
            i = e.infoText,
            o = e.children
          return (0, l.jsxs)(p.xu, {
            paddingTop: 2,
            children: [
              (0, l.jsxs)(p.xu, {
                display: 'flex',
                justifyContent: 'space-between',
                paddingBottom: 2,
                children: [
                  (0, l.jsxs)(p.xu, {
                    display: 'flex',
                    alignItems: 'center',
                    children: [
                      (0, l.jsx)(U.x, { children: t }),
                      i && (0, l.jsx)(ie, { infoText: i }),
                    ],
                  }),
                  (0, l.jsx)(Q.r, { isChecked: !!n, onChange: r }),
                ],
              }),
              (0, l.jsx)(J.U, {
                in: !!n,
                animateOpacity: !0,
                children: (0, l.jsx)(p.xu, {
                  paddingLeft: 4,
                  paddingTop: 2,
                  paddingBottom: 2,
                  children: o,
                }),
              }),
            ],
          })
        },
        se = r(1122),
        ce = r(2003)
      function ae(e, n) {
        var r = Object.keys(e)
        if (Object.getOwnPropertySymbols) {
          var t = Object.getOwnPropertySymbols(e)
          n &&
            (t = t.filter(function (n) {
              return Object.getOwnPropertyDescriptor(e, n).enumerable
            })),
            r.push.apply(r, t)
        }
        return r
      }
      function de(e) {
        for (var n = 1; n < arguments.length; n++) {
          var r = null != arguments[n] ? arguments[n] : {}
          n % 2
            ? ae(Object(r), !0).forEach(function (n) {
                ;(0, c.Z)(e, n, r[n])
              })
            : Object.getOwnPropertyDescriptors
            ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r))
            : ae(Object(r)).forEach(function (n) {
                Object.defineProperty(e, n, Object.getOwnPropertyDescriptor(r, n))
              })
        }
        return e
      }
      var ue = r.e(4).then(r.bind(r, 7004)),
        he = r.g.window ? r(1957).f$ : null,
        ge = r.g.window ? r(1957).s6 : null
      function xe() {
        var e = (0, d.useState)(!1),
          n = e[0],
          r = e[1]
        return (
          (0, d.useEffect)(function () {
            r(!0)
          }, []),
          n ? (0, l.jsx)(fe, {}) : null
        )
      }
      function fe() {
        var e = u('physics', S),
          n = (0, a.Z)(e, 2),
          r = n[0],
          t = n[1],
          i = u('filter', I),
          o = (0, a.Z)(i, 2),
          h = o[0],
          g = o[1],
          x = u('visuals', N),
          f = (0, a.Z)(x, 2),
          j = f[0],
          m = f[1],
          b = (0, d.useState)(null),
          C = b[0],
          v = b[1],
          y = (0, d.useState)(null),
          k = y[0],
          w = y[1],
          R = u('behavior', O),
          T = (0, a.Z)(R, 2),
          D = T[0],
          P = T[1],
          H = u('mouse', z),
          E = (0, a.Z)(H, 2),
          L = E[0],
          Z = E[1],
          F = (0, d.useRef)({}),
          B = (0, d.useRef)({}),
          M = (0, d.useContext)(ee.N).setEmacsTheme,
          W = (0, d.useState)(!1),
          A = W[0],
          X = W[1],
          _ = (0, d.useState)({ nodeIds: [] }),
          q = _[0],
          U = _[1],
          Q = (0, d.useRef)({ nodeIds: [] }),
          V = (0, d.useRef)(O)
        V.current = D
        var K = (0, d.useRef)(null),
          J = (0, d.useRef)(null)
        Q.current = q
        var Y = function (e, n) {
          var r,
            t = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 2e3,
            i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 200,
            o = K.current,
            l = Q.current,
            c = V.current,
            a = null !== (r = B.current[n]) && void 0 !== r ? r : [],
            d = Object.fromEntries(
              [n]
                .concat(
                  (0, s.Z)(
                    a.flatMap(function (e) {
                      return [e.source, e.target]
                    }),
                  ),
                )
                .map(function (e) {
                  return [e, {}]
                }),
            )
          return 'zoom' === e
            ? (console.log(l),
              l.nodeIds.length &&
                (console.log('emptying'), console.log('scope ' + l.nodeIds), U({ nodeIds: [] })),
              void setTimeout(function () {
                return o.zoomToFit(t, i, function (e) {
                  return d[e.id]
                })
              }, 50))
            : l.nodeIds.length
            ? 'add' !== c.localSame
              ? (U({ nodeIds: [n] }),
                void setTimeout(function () {
                  o.zoomToFit(t, i, function (e) {
                    return d[e.id]
                  })
                }, 50))
              : l.nodeIds.includes(n) &&
                l.nodeIds.some(function (e) {
                  return d[e]
                })
              ? (U(function (e) {
                  return de(de({}, e), {}, { nodeIds: [].concat((0, s.Z)(e.nodeIds), [n]) })
                }),
                void setTimeout(function () {
                  return o.zoomToFit(t, i, function (e) {
                    return d[e.id]
                  })
                }, 50))
              : (U({ nodeIds: [n] }),
                void setTimeout(function () {
                  o.zoomToFit(t, i, function (e) {
                    return d[e.id]
                  })
                }, 50))
            : (U({ nodeIds: [n] }),
              void setTimeout(function () {
                o.zoomToFit(t, i, function (e) {
                  return d[e.id]
                })
              }, 50))
        }
        return (
          (0, d.useEffect)(function () {
            ;(J.current = new ce.Z('ws://localhost:35903')),
              J.current.addEventListener('open', function (e) {
                console.log('Connection with Emacs established')
              }),
              J.current.addEventListener('message', function (e) {
                K.current
                var n = V.current,
                  r = JSON.parse(e.data)
                switch (r.type) {
                  case 'graphdata':
                    return (function (e) {
                      var n = e.nodes.reduce(function (e, n) {
                          var r
                          return de(
                            de({}, e),
                            {},
                            (0, c.Z)(
                              {},
                              n.file,
                              [].concat(
                                (0, s.Z)(null !== (r = e[n.file]) && void 0 !== r ? r : []),
                                [n],
                              ),
                            ),
                          )
                        }, {}),
                        r = Object.keys(n).flatMap(function (e) {
                          var r,
                            t = null !== (r = n[e]) && void 0 !== r ? r : [],
                            i = t.find(function (e) {
                              return 0 === e.level
                            }),
                            o = t.filter(function (e) {
                              return 0 !== e.level
                            })
                          return i
                            ? o.map(function (e) {
                                return { source: e.id, target: i.id, type: 'parent' }
                              })
                            : []
                        })
                      F.current = Object.fromEntries(
                        e.nodes.map(function (e) {
                          return [e.id, e]
                        }),
                      )
                      var t = [].concat((0, s.Z)(e.links), (0, s.Z)(r))
                      B.current = t.reduce(function (e, n) {
                        var r, t, i
                        return de(
                          de({}, e),
                          {},
                          ((i = {}),
                          (0, c.Z)(
                            i,
                            n.source,
                            [].concat(
                              (0, s.Z)(null !== (r = e[n.source]) && void 0 !== r ? r : []),
                              [n],
                            ),
                          ),
                          (0, c.Z)(
                            i,
                            n.target,
                            [].concat(
                              (0, s.Z)(null !== (t = e[n.target]) && void 0 !== t ? t : []),
                              [n],
                            ),
                          ),
                          i),
                        )
                      }, {})
                      var i = de(de({}, e), {}, { links: t }),
                        o = JSON.parse(JSON.stringify(i))
                      v(o)
                    })(r.data)
                  case 'theme':
                    return M(r.data)
                  case 'command':
                    switch (r.data.commandName) {
                      case 'local':
                        var t = D.zoomSpeed,
                          i = D.zoomPadding
                        Y('local', r.data.id, t, i), w(r.data.id)
                        break
                      case 'zoom':
                        var o,
                          l,
                          a =
                            (null === r || void 0 === r || null === (o = r.data) || void 0 === o
                              ? void 0
                              : o.speed) || n.zoomSpeed,
                          d =
                            (null === r || void 0 === r || null === (l = r.data) || void 0 === l
                              ? void 0
                              : l.padding) || n.zoomPadding
                        Y('zoom', r.data.id, a, d), w(r.data.id)
                        break
                      case 'follow':
                        Y(n.follow, r.data.id, n.zoomSpeed, n.zoomPadding), w(r.data.id)
                        break
                      default:
                        return console.error('unknown message type', r.type)
                    }
                }
              })
          }, []),
          C
            ? (0, l.jsxs)(p.xu, {
                display: 'flex',
                alignItems: 'flex-start',
                flexDirection: 'row',
                height: '100%',
                children: [
                  (0, l.jsx)(
                    te,
                    de(
                      {},
                      {
                        physics: r,
                        setPhysics: t,
                        threeDim: A,
                        setThreeDim: X,
                        filter: h,
                        setFilter: g,
                        visuals: j,
                        setVisuals: m,
                        mouse: L,
                        setMouse: Z,
                        behavior: D,
                        setBehavior: P,
                      },
                    ),
                  ),
                  (0, l.jsx)(p.xu, {
                    position: 'absolute',
                    alignItems: 'top',
                    children: (0, l.jsx)(
                      je,
                      de(
                        {
                          ref: K,
                          nodeById: F.current,
                          linksByNodeId: B.current,
                          webSocket: J.current,
                        },
                        {
                          physics: r,
                          graphData: C,
                          threeDim: A,
                          emacsNodeId: k,
                          filter: h,
                          visuals: j,
                          behavior: D,
                          mouse: L,
                          scope: q,
                          setScope: U,
                        },
                      ),
                    ),
                  }),
                ],
              })
            : null
        )
      }
      var je = (0, d.forwardRef)(function (e, n) {
        var r = e.physics,
          t = e.graphData,
          c = e.threeDim,
          u = e.linksByNodeId,
          h = e.filter,
          p = e.emacsNodeId,
          m = e.nodeById,
          b = e.visuals,
          C = (e.behavior, e.mouse),
          v = e.scope,
          y = e.setScope,
          k = e.webSocket,
          S = (0, x.iP)(),
          I = (0, a.Z)(S, 2),
          N = I[0],
          O = I[1],
          z = (0, d.useState)(null),
          R = z[0],
          T = z[1],
          D = (0, j.useTheme)(),
          P = (0, d.useContext)(ee.N).emacsTheme,
          H = function (e, n) {
            switch (e) {
              case C.local:
                if (v.nodeIds.includes(n.id)) break
                y(function (e) {
                  return de(de({}, e), {}, { nodeIds: [].concat((0, s.Z)(e.nodeIds), [n.id]) })
                })
                break
              case C.follow:
                k.send(n.id)
            }
          },
          E = (0, d.useRef)(null)
        ;(0, d.useEffect)(
          function () {
            p && T(m[p])
          },
          [p],
        ),
          (E.current = R)
        var L = (0, d.useMemo)(
            function () {
              if (!E.current) return {}
              var e = u[E.current.id]
              return e
                ? Object.fromEntries(
                    [E.current.id]
                      .concat(
                        (0, s.Z)(
                          e.flatMap(function (e) {
                            return [e.source, e.target]
                          }),
                        ),
                      )
                      .map(function (e) {
                        return [e, {}]
                      }),
                  )
                : {}
            },
            [E.current, u],
          ),
          Z = (0, d.useMemo)(
            function () {
              var e = t.nodes.filter(function (e) {
                  var n,
                    r = null !== (n = u[e.id]) && void 0 !== n ? n : []
                  return (
                    !h.orphans ||
                    (h.parents
                      ? 0 !== r.length
                      : 0 !== r.length &&
                        r.some(function (e) {
                          return !['parent', 'cite', 'ref'].includes(e.type)
                        }))
                  )
                }),
                n = e.map(function (e) {
                  return e.id
                }),
                r = t.links.filter(function (e) {
                  var r = e
                  return (
                    'cite' !== r.type &&
                    (h.parents || 'parent' !== r.type) &&
                    n.includes(r.source) &&
                    n.includes(r.target)
                  )
                }),
                i = e.filter(function (e) {
                  var n,
                    r = null !== (n = u[e.id]) && void 0 !== n ? n : []
                  return (
                    v.nodeIds.includes(e.id) ||
                    r.some(function (e) {
                      return v.nodeIds.includes(e.source) || v.nodeIds.includes(e.target)
                    })
                  )
                }),
                o = i.map(function (e) {
                  return e.id
                }),
                l = r.filter(function (e) {
                  var n = 'object' === typeof e.source ? e.source.id : e.source,
                    r = 'object' === typeof e.target ? e.target.id : e.target
                  return o.includes(n) && o.includes(r)
                })
              return 0 === v.nodeIds.length ? { nodes: e, links: r } : { nodes: i, links: l }
            },
            [h, v, t],
          )
        ;(0, d.useEffect)(function () {
          ;(0, o.Z)(
            i().mark(function e() {
              var t, o
              return i().wrap(function (e) {
                for (;;)
                  switch ((e.prev = e.next)) {
                    case 0:
                      return (t = n.current), (e.next = 3), ue
                    case 3:
                      ;(o = e.sent),
                        r.gravityOn
                          ? (t.d3Force('x', o.forceX().strength(r.gravity)),
                            t.d3Force('y', o.forceY().strength(r.gravity)),
                            c && t.d3Force('z', o.forceZ().strength(r.gravity)))
                          : (t.d3Force('x', null), t.d3Force('y', null), c && t.d3Force('z', null)),
                        r.centering
                          ? t.d3Force('center', o.forceCenter().strength(r.centeringStrength))
                          : t.d3Force('center', null),
                        r.linkStrength && t.d3Force('link').strength(r.linkStrength),
                        r.linkIts && t.d3Force('link').iterations(r.linkIts),
                        r.charge && t.d3Force('charge').strength(r.charge),
                        t.d3Force(
                          'collide',
                          r.collision ? o.forceCollide().radius(r.collisionStrength) : null,
                        )
                    case 10:
                    case 'end':
                      return e.stop()
                  }
              }, e)
            }),
          )()
        }),
          (0, d.useEffect)(
            function () {
              var e
              null === (e = n.current) || void 0 === e || e.d3ReheatSimulation()
            },
            [r],
          )
        var F = (0, d.useRef)(0),
          B = (0, d.useState)(1),
          M = B[0],
          W = B[1],
          A = (0, f._7)(
            function (e) {
              return W(e)
            },
            { duration: b.animationSpeed, algorithm: w[b.algorithmName] },
          ),
          X = (0, a.Z)(A, 2),
          _ = X[0],
          q = X[1],
          U = (0, f._7)(
            function (e) {
              return W(Math.min(M, -1 * (e - 1)))
            },
            { duration: b.animationSpeed, algorithm: w[b.algorithmName] },
          ),
          Q = (0, a.Z)(U, 2),
          V = Q[0],
          K = Q[1],
          J = (0, d.useRef)(null)
        ;(0, d.useEffect)(
          function () {
            if ((R && (J.current = R), !b.highlightAnim)) return W(R ? 1 : 0)
            R ? _() : (q(), M > 0.5 ? V() : W(0))
          },
          [R],
        )
        var Y = function (e) {
            if (D)
              return e.split('.').reduce(function (e, n) {
                return e[n]
              }, D.colors)
          },
          G = (0, d.useMemo)(
            function () {
              var e = b.nodeColorScheme.concat(
                b.linkColorScheme || [],
                b.linkHighlight || [],
                b.nodeHighlight || [],
              )
              return Object.fromEntries(
                e.map(function (n) {
                  var r = Y(n),
                    t = e.map(function (e) {
                      return [e, g.Z(r, Y(e))]
                    })
                  return [n, Object.fromEntries(t)]
                }),
              )
            },
            [b.nodeColorScheme, b.linkHighlight, b.nodeHighlight, b.linkColorScheme, P],
          ),
          $ = (0, d.useMemo)(
            function () {
              var e,
                n,
                r,
                t =
                  null !== (e = u[null === (n = J.current) || void 0 === n ? void 0 : n.id]) &&
                  void 0 !== e
                    ? e
                    : []
              return Object.fromEntries(
                [null === (r = J.current) || void 0 === r ? void 0 : r.id]
                  .concat(
                    (0, s.Z)(
                      t.flatMap(function (e) {
                        return [e.source, e.target]
                      }),
                    ),
                  )
                  .map(function (e) {
                    return [e, {}]
                  }),
              )
            },
            [JSON.stringify(R), J.current],
          ),
          ne = function (e) {
            var n,
              r,
              t,
              i,
              o,
              l,
              s =
                null !== (n = null === (r = u[e]) || void 0 === r ? void 0 : r.length) &&
                void 0 !== n
                  ? n
                  : 0,
              c = s
                ? null === (t = u[e]) || void 0 === t
                  ? void 0
                  : t.filter(function (e) {
                      return 'parent' === e.type || 'cite' === e.type
                    }).length
                : 0,
              a = h.parents ? s : s - c
            return b.nodeColorScheme[
              ((i = a), (o = 0), (l = b.nodeColorScheme.length - 1), Math.min(Math.max(i, o), l))
            ]
          },
          re = function (e, n) {
            return u[e] > u[n] ? ne(e) : ne(n)
          },
          te = function (e, n) {
            return (
              'rgba(' +
              (e = e.replace('#', ''))
                .match(new RegExp('(.{' + e.length / 3 + '})', 'g'))
                .map(function (n) {
                  return parseInt(e.length % 2 ? n + n : n, 16)
                })
                .concat(isFinite(n) ? n : 1)
                .join(',') +
              ')'
            )
          },
          ie = (0, d.useMemo)(
            function () {
              return Y(b.labelTextColor)
            },
            [b.labelTextColor, P],
          ),
          oe = (0, d.useMemo)(
            function () {
              return Y(b.labelBackgroundColor)
            },
            [b.labelBackgroundColor, P],
          ),
          le = {
            graphData: Z,
            width: N,
            height: O,
            backgroundColor: D.colors.gray[b.backgroundColor],
            nodeLabel: function (e) {
              return e.title
            },
            nodeColor: function (e) {
              return (function (e) {
                var n = L[e.id] || $[e.id]
                return b.emacsNodeColor && e.id === p
                  ? Y(b.emacsNodeColor)
                  : n && b.nodeHighlight
                  ? G[ne(e.id)][b.nodeHighlight](M)
                  : Y(ne(e.id))
              })(e)
            },
            nodeRelSize: b.nodeRel,
            nodeVal: function (e) {
              var n,
                r = null !== (n = u[e.id]) && void 0 !== n ? n : [],
                t = r.length
                  ? r.filter(function (e) {
                      return 'parent' === e.type || 'cite' === e.type
                    }).length
                  : 0
              return (
                (3 + r.length - (h.parents ? 0 : t)) *
                (L[e.id] || $[e.id] ? 1 + M * (b.highlightNodeSize - 1) : 1)
              )
            },
            nodeCanvasObject: function (e, n, r) {
              if (e && b.labels) {
                var t = $[e.id]
                if (!(r <= b.labelScale || 1 === b.labels) || L[e.id] || t) {
                  var i = e.title,
                    o = i.substring(0, Math.min(i.length, 40)),
                    l = 12 / r,
                    c = [1.1 * n.measureText(o).width, l].map(function (e) {
                      return e + 0.5 * l
                    }),
                    a = Math.min((3 * (r - b.labelScale)) / b.labelScale, 1),
                    d = function () {
                      return 1 === b.labels || r <= b.labelScale
                        ? M
                        : L[e.id] || $[e.id]
                        ? Math.max(a, M)
                        : 1 * a * (-1 * (0.5 * M - 1))
                    }
                  if (b.labelBackgroundColor && b.labelBackgroundOpacity) {
                    var u = d() * b.labelBackgroundOpacity,
                      h = te(oe, u)
                    ;(n.fillStyle = h),
                      n.fillRect.apply(n, [e.x - c[0] / 2, e.y - c[1] / 2].concat((0, s.Z)(c)))
                  }
                  var g = d()
                  ;(n.textAlign = 'center'), (n.textBaseline = 'middle')
                  var x = te(ie, g)
                  ;(n.fillStyle = x),
                    (n.font = ''.concat(l, 'px Sans-Serif')),
                    n.fillText(o, e.x, e.y)
                }
              }
            },
            nodeCanvasObjectMode: function () {
              return 'after'
            },
            linkDirectionalParticles: b.particles ? b.particlesNumber : void 0,
            linkDirectionalArrowLength: b.arrows ? b.arrowsLength : void 0,
            linkDirectionalArrowRelPos: b.arrowsPos,
            linkDirectionalArrowColor: b.arrowsColor
              ? function (e) {
                  return Y(b.arrowsColor)
                }
              : void 0,
            linkColor: function (e) {
              var n = 'object' === typeof e.source ? e.source.id : e.source,
                r = 'object' === typeof e.target ? e.target.id : e.target,
                t = pe(e, E.current),
                i = pe(e, J.current)
              return (function (e, n, r) {
                if (!b.linkHighlight && !b.linkColorScheme && !r) {
                  var t = re(e, n)
                  return Y(t)
                }
                if (!r && !b.linkColorScheme) {
                  var i = re(e, n)
                  return Y(i)
                }
                if (!r) return Y(b.linkColorScheme)
                if (!b.linkHighlight && !b.linkColorScheme) {
                  var o = re(e, n)
                  return Y(o)
                }
                return b.linkHighlight
                  ? b.linkColorScheme
                    ? G[b.linkColorScheme][b.linkHighlight](M)
                    : G[re(e, n)][b.linkHighlight](M)
                  : Y(b.linkColorScheme)
              })(n, r, t || i)
            },
            linkWidth: function (e) {
              var n = pe(e, E.current),
                r = pe(e, J.current)
              return n || r ? b.linkWidth * (1 + M * (b.highlightLinkSize - 1)) : b.linkWidth
            },
            linkDirectionalParticleWidth: b.particlesWidth,
            d3AlphaDecay: r.alphaDecay,
            d3AlphaMin: r.alphaMin,
            d3VelocityDecay: r.velocityDecay,
            onNodeClick: function (e, n) {
              var r = n.timeStamp - F.current < 400
              return (F.current = n.timeStamp), H(r ? 'double' : 'click', e)
            },
            onBackgroundClick: function () {
              T(null),
                0 !== v.nodeIds.length &&
                  y(function (e) {
                    return de(de({}, e), {}, { nodeIds: [] })
                  })
            },
            onNodeHover: function (e) {
              b.highlight && (R || (K(), W(0)), T(e))
            },
            onNodeRightClick: function (e) {
              H('right', e)
            },
          }
        return (0, l.jsx)('div', {
          children: c
            ? (0, l.jsx)(
                ge,
                de(
                  de({ ref: n }, le),
                  {},
                  {
                    nodeThreeObjectExtend: !0,
                    backgroundColor: D.colors.white,
                    nodeOpacity: b.nodeOpacity,
                    nodeResolution: b.nodeResolution,
                    linkOpacity: b.linkOpacity,
                    nodeThreeObject: function (e) {
                      if (b.labels && (!(b.labels < 3) || L[e.id])) {
                        var n = new se.Z(e.title.substring(0, 40))
                        return (
                          (n.color = Y(b.labelTextColor)),
                          (n.backgroundColor = Y(b.labelBackgroundColor)),
                          (n.padding = 2),
                          (n.textHeight = 8),
                          n
                        )
                      }
                    },
                  },
                ),
              )
            : (0, l.jsx)(he, de({ ref: n }, le)),
        })
      })
      function pe(e, n) {
        return (
          e.source.id === (null === n || void 0 === n ? void 0 : n.id) ||
          e.target.id === (null === n || void 0 === n ? void 0 : n.id)
        )
      }
    },
    5301: function (e, n, r) {
      ;(window.__NEXT_P = window.__NEXT_P || []).push([
        '/',
        function () {
          return r(374)
        },
      ])
    },
  },
  function (e) {
    e.O(0, [774, 737, 446, 906, 888, 179], function () {
      return (n = 5301), e((e.s = n))
      var n
    })
    var n = e.O()
    _N_E = n
  },
])