summaryrefslogtreecommitdiff
path: root/out/_next/static/chunks/pages/index-5e5acac3b4261d15dbc3.js
blob: 973b286bd4877adebd42aae68fd9c6da81a7e266 (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
;(self.webpackChunk_N_E = self.webpackChunk_N_E || []).push([
  [405],
  {
    374: function (e, n, t) {
      'use strict'
      t.r(n),
        t.d(n, {
          Graph: function () {
            return Ce
          },
          GraphPage: function () {
            return be
          },
          default: function () {
            return ve
          },
        })
      var r = t(809),
        i = t.n(r),
        o = t(92447),
        l = t(85893),
        s = t(59999),
        a = t(26265),
        c = t(64121),
        u = t(67294)
      function d(e, n) {
        var t,
          r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {},
          i = h(e, null !== (t = r.storage) && void 0 !== t ? t : localStorage),
          o = i.get(),
          l = void 0 !== o ? o : n
        l !== o && i.update(l)
        var s = (0, u.useState)(l),
          a = s[0],
          c = s[1]
        ;(0, u.useEffect)(
          function () {
            a !== l && c(l)
          },
          [e],
        )
        var d = function (e) {
          e instanceof Function
            ? c(function (n) {
                var t = e(n)
                return i.update(t), t
              })
            : (c(e), i.update(e))
        }
        return [a, d]
      }
      function h(e, n) {
        return {
          get: function () {
            var t = n.getItem(e)
            if (t && 'undefined' !== t) return JSON.parse(t)
          },
          update: function (t) {
            n.setItem(e, JSON.stringify(t))
          },
          remove: function () {
            n.removeItem(e)
          },
        }
      }
      var g = t(54533),
        f = t(54309),
        x = t(20233),
        p = t(40980),
        j = t(48017),
        m = t(36194),
        v = [],
        b = {}
      for (var C in m.oY)
        for (var y in m.oY[C]) {
          var k = C + y
          'LinearNone' === k && (k = 'Linear'), v.push(k), (b[k] = m.oY[C][y])
        }
      var w = b,
        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: [] },
        O = {
          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: v,
          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,
          citeDashes: !0,
          citeDashLength: 35,
          citeGapLength: 15,
          citeLinkColor: 'gray.600',
          citeNodeColor: 'black',
        },
        N = { follow: 'zoom', localSame: 'add', zoomPadding: 200, zoomSpeed: 2e3 },
        L = { highlight: 'hover', local: 'click', follow: 'double' },
        z = t(38347),
        T = t(93924),
        R = t(83986),
        D = t(48931),
        P = t(67546),
        E = t(93441),
        Z = t(6569),
        H = t(24189),
        B = t(2827),
        A = t(90454),
        F = t(48420),
        M = t(96699),
        V = t(40155),
        X = t(56769),
        W = t(336),
        _ = t(72026),
        U = t(94096),
        Q = t(64115),
        q = t(88134),
        K = t(48235),
        G = t(67273),
        J = t(15267),
        Y = t(46049),
        $ = t(95818),
        ee = t(47647),
        ne = t(86658),
        te = t(29356)
      function re(e, n) {
        var t = Object.keys(e)
        if (Object.getOwnPropertySymbols) {
          var r = Object.getOwnPropertySymbols(e)
          n &&
            (r = r.filter(function (n) {
              return Object.getOwnPropertyDescriptor(e, n).enumerable
            })),
            t.push.apply(t, r)
        }
        return t
      }
      function ie(e) {
        for (var n = 1; n < arguments.length; n++) {
          var t = null != arguments[n] ? arguments[n] : {}
          n % 2
            ? re(Object(t), !0).forEach(function (n) {
                ;(0, a.Z)(e, n, t[n])
              })
            : Object.getOwnPropertyDescriptors
            ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t))
            : re(Object(t)).forEach(function (n) {
                Object.defineProperty(e, n, Object.getOwnPropertyDescriptor(t, n))
              })
        }
        return e
      }
      var oe = function (e) {
          var n = e.physics,
            t = e.setPhysics,
            r = e.threeDim,
            i = e.setThreeDim,
            o = e.filter,
            a = e.setFilter,
            d = e.visuals,
            h = e.setVisuals,
            g = e.mouse,
            f = e.setMouse,
            x = e.behavior,
            p = e.setBehavior,
            m = e.tags,
            v = e.tagColors,
            b = e.setTagColors,
            C = (0, u.useState)(!0),
            y = C[0],
            k = C[1],
            w = (0, u.useContext)(te.N),
            H = w.highlightColor,
            B = w.setHighlightColor,
            $ = [
              'red.500',
              'orange.500',
              'yellow.500',
              'green.500',
              'cyan.500',
              'blue.500',
              'pink.500',
              'purple.500',
              'white',
              'gray.100',
              'gray.200',
              'gray.300',
              'gray.400',
              'gray.500',
              'gray.600',
              'gray.700',
              'gray.800',
              'gray.900',
              'black',
            ]
          return (0, l.jsxs)(l.Fragment, {
            children: [
              (0, l.jsx)(A.R, {
                in: !y,
                children: (0, l.jsx)(j.xu, {
                  position: 'absolute',
                  zIndex: 'overlay',
                  marginTop: 10,
                  marginLeft: 10,
                  display: y ? 'none' : 'block',
                  children: (0, l.jsx)(F.h, {
                    'aria-label': 'Settings',
                    icon: (0, l.jsx)(T.e, {}),
                    onClick: function () {
                      return k(!0)
                    },
                  }),
                }),
              }),
              (0, l.jsx)(A.R, {
                in: y,
                children: (0, l.jsxs)(j.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)(j.xu, {
                      display: 'flex',
                      justifyContent: 'space-between',
                      alignItems: 'center',
                      paddingRight: 2,
                      paddingTop: 1,
                      children: [
                        (0, l.jsx)(M.u, {
                          label: '2D',
                          children: (0, l.jsx)(V.z, {
                            onClick: function () {
                              return i(!r)
                            },
                            variant: 'ghost',
                            zIndex: 'overlay',
                            children: r ? '3D' : '2D',
                          }),
                        }),
                        (0, l.jsxs)(j.xu, {
                          display: 'flex',
                          alignItems: 'center',
                          children: [
                            (0, l.jsx)(M.u, {
                              label: 'Reset settings to defaults',
                              children: (0, l.jsx)(F.h, {
                                'aria-label': 'Reset Defaults',
                                icon: (0, l.jsx)(R.A, {}),
                                onClick: function () {
                                  h(O), a(I), f(L), t(S), p(N)
                                },
                                variant: 'none',
                                size: 'sm',
                              }),
                            }),
                            (0, l.jsx)(F.h, {
                              size: 'sm',
                              icon: (0, l.jsx)(D.T, {}),
                              'aria-label': 'Close Tweak Panel',
                              variant: 'ghost',
                              onClick: function () {
                                return k(!1)
                              },
                            }),
                          ],
                        }),
                      ],
                    }),
                    (0, l.jsx)(ne.ZP, {
                      autoHeight: !0,
                      autoHeightMax: 600,
                      autoHide: !0,
                      renderThumbVertical: function (e) {
                        var n = e.style,
                          t = (0, z.Z)(e, ['style'])
                        return (0, l.jsx)(
                          j.xu,
                          ie(
                            ie({}, t),
                            {},
                            { style: ie(ie({}, n), {}, { borderRadius: 10 }), bg: H },
                          ),
                        )
                      },
                      children: (0, l.jsxs)(X.UQ, {
                        allowMultiple: !0,
                        allowToggle: !0,
                        color: 'black',
                        children: [
                          (0, l.jsxs)(X.Qd, {
                            children: [
                              (0, l.jsxs)(X.KF, {
                                children: [
                                  (0, l.jsx)(X.XE, { marginRight: 2 }),
                                  (0, l.jsx)(W.X, { size: 'sm', children: 'Filter' }),
                                ],
                              }),
                              (0, l.jsxs)(X.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)(U.k, {
                                        justifyContent: 'space-between',
                                        children: [
                                          (0, l.jsx)(Q.x, { children: 'Orphans' }),
                                          (0, l.jsx)(q.r, {
                                            onChange: function () {
                                              a(ie(ie({}, o), {}, { orphans: !o.orphans }))
                                            },
                                            isChecked: o.orphans,
                                          }),
                                        ],
                                      }),
                                      (0, l.jsxs)(U.k, {
                                        justifyContent: 'space-between',
                                        children: [
                                          (0, l.jsx)(Q.x, {
                                            children: 'Link nodes with parent file',
                                          }),
                                          (0, l.jsx)(q.r, {
                                            onChange: function () {
                                              a(ie(ie({}, o), {}, { parents: !o.parents }))
                                            },
                                            isChecked: o.parents,
                                          }),
                                        ],
                                      }),
                                    ],
                                  }),
                                  (0, l.jsxs)(X.UQ, {
                                    padding: 0,
                                    allowToggle: !0,
                                    allowMultiple: !0,
                                    paddingLeft: 3,
                                    children: [
                                      (0, l.jsxs)(X.Qd, {
                                        children: [
                                          (0, l.jsxs)(X.KF, {
                                            children: ['Tag filters', (0, l.jsx)(X.XE, {})],
                                          }),
                                          (0, l.jsx)(X.Hk, {
                                            pr: 0,
                                            mr: 0,
                                            children: (0, l.jsx)(ue, {
                                              highlightColor: H,
                                              filter: o,
                                              setFilter: a,
                                              tags: m,
                                            }),
                                          }),
                                        ],
                                      }),
                                      (0, l.jsxs)(X.Qd, {
                                        children: [
                                          (0, l.jsxs)(X.KF, {
                                            children: ['Tag Colors', (0, l.jsx)(X.XE, {})],
                                          }),
                                          (0, l.jsx)(X.Hk, {
                                            pr: 0,
                                            mr: 0,
                                            children: (0, l.jsx)(de, {
                                              tags: m,
                                              colorList: $,
                                              tagColors: v,
                                              setTagColors: b,
                                              highlightColor: H,
                                            }),
                                          }),
                                        ],
                                      }),
                                    ],
                                  }),
                                ],
                              }),
                            ],
                          }),
                          (0, l.jsxs)(X.Qd, {
                            children: [
                              (0, l.jsx)(X.KF, {
                                display: 'flex',
                                justifyContent: 'space-between',
                                children: (0, l.jsxs)(j.xu, {
                                  display: 'flex',
                                  children: [
                                    (0, l.jsx)(X.XE, { marginRight: 2 }),
                                    (0, l.jsx)(W.X, { size: 'sm', children: 'Physics' }),
                                  ],
                                }),
                              }),
                              (0, l.jsxs)(X.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)(ae, {
                                        label: 'Gravity',
                                        value: n.gravityOn,
                                        onChange: function () {
                                          return t(ie(ie({}, n), {}, { gravityOn: !n.gravityOn }))
                                        },
                                        children: (0, l.jsx)(se, {
                                          label: 'Strength',
                                          value: 10 * n.gravity,
                                          onChange: function (e) {
                                            return t(ie(ie({}, n), {}, { gravity: e / 10 }))
                                          },
                                        }),
                                      }),
                                      (0, l.jsx)(se, {
                                        value: -n.charge / 100,
                                        onChange: function (e) {
                                          return t(ie(ie({}, n), {}, { charge: -100 * e }))
                                        },
                                        label: 'Repulsive Force',
                                      }),
                                      (0, l.jsx)(ae, {
                                        label: 'Collision',
                                        infoText: 'Perfomance sap, disable if slow',
                                        value: n.collision,
                                        onChange: function () {
                                          return t(ie(ie({}, n), {}, { collision: !n.collision }))
                                        },
                                        children: (0, l.jsx)(se, {
                                          value: n.collisionStrength / 5,
                                          onChange: function (e) {
                                            return t(
                                              ie(ie({}, n), {}, { collisionStrength: 5 * e }),
                                            )
                                          },
                                          label: 'Collision Radius',
                                          infoText:
                                            'Easy with this one, high values can lead to a real jiggly mess',
                                        }),
                                      }),
                                      (0, l.jsx)(se, {
                                        value: 5 * n.linkStrength,
                                        onChange: function (e) {
                                          return t(ie(ie({}, n), {}, { linkStrength: e / 5 }))
                                        },
                                        label: 'Link Force',
                                      }),
                                      (0, l.jsx)(se, {
                                        label: 'Link Iterations',
                                        value: n.linkIts,
                                        onChange: function (e) {
                                          return t(ie(ie({}, 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)(se, {
                                        label: 'Viscosity',
                                        value: 10 * n.velocityDecay,
                                        onChange: function (e) {
                                          return t(ie(ie({}, n), {}, { velocityDecay: e / 10 }))
                                        },
                                      }),
                                    ],
                                  }),
                                  (0, l.jsx)(j.xu, {
                                    children: (0, l.jsx)(X.UQ, {
                                      paddingLeft: 3,
                                      allowToggle: !0,
                                      children: (0, l.jsxs)(X.Qd, {
                                        children: [
                                          (0, l.jsxs)(X.KF, {
                                            children: [
                                              (0, l.jsx)(Q.x, { children: 'Advanced' }),
                                              (0, l.jsx)(X.XE, { marginRight: 2 }),
                                            ],
                                          }),
                                          (0, l.jsx)(X.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)(se, {
                                                  label: 'Stabilization rate',
                                                  value: 50 * n.alphaDecay,
                                                  onChange: function (e) {
                                                    return t(
                                                      ie(ie({}, n), {}, { alphaDecay: e / 50 }),
                                                    )
                                                  },
                                                }),
                                                (0, l.jsx)(ae, {
                                                  label: 'Center nodes',
                                                  value: n.centering,
                                                  onChange: function () {
                                                    return t(
                                                      ie(
                                                        ie({}, 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)(se, {
                                                    label: 'Centering Strength',
                                                    value: n.centeringStrength,
                                                    max: 2,
                                                    step: 0.01,
                                                    onChange: function (e) {
                                                      return t(
                                                        ie(ie({}, n), {}, { centeringStrength: e }),
                                                      )
                                                    },
                                                  }),
                                                }),
                                              ],
                                            }),
                                          }),
                                        ],
                                      }),
                                    }),
                                  }),
                                ],
                              }),
                            ],
                          }),
                          (0, l.jsxs)(X.Qd, {
                            children: [
                              (0, l.jsxs)(X.KF, {
                                children: [
                                  (0, l.jsx)(X.XE, { marginRight: 2 }),
                                  (0, l.jsx)(W.X, { size: 'sm', children: 'Visual' }),
                                ],
                              }),
                              (0, l.jsx)(X.Hk, {
                                children: (0, l.jsxs)(_.gC, {
                                  justifyContent: 'flex-start',
                                  align: 'stretch',
                                  children: [
                                    (0, l.jsx)(X.UQ, {
                                      allowToggle: !0,
                                      defaultIndex: [0],
                                      paddingLeft: 3,
                                      children: (0, l.jsxs)(X.Qd, {
                                        children: [
                                          (0, l.jsx)(X.KF, {
                                            children: (0, l.jsxs)(U.k, {
                                              justifyContent: 'space-between',
                                              w: '100%',
                                              children: [
                                                (0, l.jsx)(Q.x, { children: 'Colors' }),
                                                (0, l.jsx)(X.XE, { marginRight: 2 }),
                                              ],
                                            }),
                                          }),
                                          (0, l.jsx)(X.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)(j.xu, {
                                                children: [
                                                  (0, l.jsxs)(U.k, {
                                                    alignItems: 'center',
                                                    justifyContent: 'space-between',
                                                    children: [
                                                      (0, l.jsx)(Q.x, { children: 'Nodes' }),
                                                      (0, l.jsx)(M.u, {
                                                        label: 'Shuffle node colors',
                                                        children: (0, l.jsx)(F.h, {
                                                          'aria-label': 'Shuffle node colors',
                                                          size: 'sm',
                                                          icon: (0, l.jsx)(P.n, {}),
                                                          variant: 'ghost',
                                                          onClick: function () {
                                                            var e,
                                                              n =
                                                                null !== (e = d.nodeColorScheme) &&
                                                                void 0 !== e
                                                                  ? e
                                                                  : []
                                                            h(
                                                              ie(
                                                                ie({}, d),
                                                                {},
                                                                {
                                                                  nodeColorScheme: n
                                                                    .map(function (e) {
                                                                      return [Math.random(), e]
                                                                    })
                                                                    .sort(function (e, n) {
                                                                      return (
                                                                        (0, c.Z)(e, 1)[0] -
                                                                        (0, c.Z)(n, 1)[0]
                                                                      )
                                                                    })
                                                                    .map(function (e) {
                                                                      var n = (0, c.Z)(e, 2)
                                                                      n[0]
                                                                      return n[1]
                                                                    }),
                                                                },
                                                              ),
                                                            )
                                                          },
                                                        }),
                                                      }),
                                                      (0, l.jsx)(M.u, {
                                                        label: 'Cycle node colors',
                                                        children: (0, l.jsx)(F.h, {
                                                          'aria-label': 'Shift node colors',
                                                          icon: (0, l.jsx)(E.L, {}),
                                                          size: 'sm',
                                                          variant: 'ghost',
                                                          onClick: function () {
                                                            var e,
                                                              n =
                                                                null !== (e = d.nodeColorScheme) &&
                                                                void 0 !== e
                                                                  ? e
                                                                  : []
                                                            h(
                                                              ie(
                                                                ie({}, d),
                                                                {},
                                                                {
                                                                  nodeColorScheme: [].concat(
                                                                    (0, s.Z)(n.slice(1, n.length)),
                                                                    [n[0]],
                                                                  ),
                                                                },
                                                              ),
                                                            )
                                                          },
                                                        }),
                                                      }),
                                                      (0, l.jsxs)(K.v2, {
                                                        placement: 'right',
                                                        closeOnSelect: !1,
                                                        matchWidth: !0,
                                                        children: [
                                                          (0, l.jsx)(K.j2, {
                                                            width: 20,
                                                            as: V.z,
                                                            colorScheme: '',
                                                            color: 'black',
                                                            rightIcon: (0, l.jsx)(Z.v, {}),
                                                            children: (0, l.jsx)(U.k, {
                                                              height: 6,
                                                              width: 6,
                                                              flexDirection: 'column',
                                                              flexWrap: 'wrap',
                                                              children: d.nodeColorScheme.map(
                                                                function (e) {
                                                                  return (0, l.jsx)(
                                                                    j.xu,
                                                                    {
                                                                      bgColor: e,
                                                                      flex: '1 1 8px',
                                                                      borderRadius: '2xl',
                                                                    },
                                                                    e,
                                                                  )
                                                                },
                                                              ),
                                                            }),
                                                          }),
                                                          (0, l.jsxs)(G.h, {
                                                            children: [
                                                              ' ',
                                                              (0, l.jsx)(K.qy, {
                                                                minW: 10,
                                                                zIndex: 'popover',
                                                                bgColor: 'gray.200',
                                                                children: (0, l.jsx)(K.__, {
                                                                  width: 500,
                                                                  type: 'checkbox',
                                                                  defaultValue: d.nodeColorScheme,
                                                                  onChange: function (e) {
                                                                    e.length &&
                                                                      h(
                                                                        ie(
                                                                          ie({}, d),
                                                                          {},
                                                                          { nodeColorScheme: e },
                                                                        ),
                                                                      )
                                                                  },
                                                                  children: $.map(function (e) {
                                                                    return (0, l.jsx)(
                                                                      K.ii,
                                                                      {
                                                                        isChecked:
                                                                          d.nodeColorScheme.some(
                                                                            function (n) {
                                                                              return n === e
                                                                            },
                                                                          ),
                                                                        value: e,
                                                                        isDisabled:
                                                                          1 ===
                                                                            d.nodeColorScheme
                                                                              .length &&
                                                                          d.nodeColorScheme[0] ===
                                                                            e,
                                                                        children: (0, l.jsx)(j.xu, {
                                                                          justifyContent:
                                                                            'space-between',
                                                                          alignItems: 'center',
                                                                          display: 'flex',
                                                                          children: (0, l.jsx)(
                                                                            j.xu,
                                                                            {
                                                                              bgColor: e,
                                                                              borderRadius: 'sm',
                                                                              height: 6,
                                                                              width: 6,
                                                                            },
                                                                          ),
                                                                        }),
                                                                      },
                                                                      e,
                                                                    )
                                                                  }),
                                                                }),
                                                              }),
                                                            ],
                                                          }),
                                                        ],
                                                      }),
                                                    ],
                                                  }),
                                                  (0, l.jsxs)(U.k, {
                                                    alignItems: 'center',
                                                    justifyContent: 'space-between',
                                                    children: [
                                                      (0, l.jsx)(Q.x, { children: 'Links' }),
                                                      (0, l.jsxs)(K.v2, {
                                                        placement: 'right',
                                                        children: [
                                                          (0, l.jsx)(K.j2, {
                                                            as: V.z,
                                                            colorScheme: '',
                                                            color: 'black',
                                                            rightIcon: (0, l.jsx)(Z.v, {}),
                                                            children: (0, l.jsx)(j.xu, {
                                                              children: d.linkColorScheme
                                                                ? (0, l.jsx)(j.xu, {
                                                                    bgColor: d.linkColorScheme,
                                                                    borderRadius: 'sm',
                                                                    height: 6,
                                                                    width: 6,
                                                                  })
                                                                : (0, l.jsx)(U.k, {
                                                                    height: 6,
                                                                    width: 6,
                                                                    flexDirection: 'column',
                                                                    flexWrap: 'wrap',
                                                                    children: d.nodeColorScheme.map(
                                                                      function (e) {
                                                                        return (0, l.jsx)(
                                                                          j.xu,
                                                                          {
                                                                            bgColor: e,
                                                                            flex: '1 1 8px',
                                                                            borderRadius: '2xl',
                                                                          },
                                                                          e,
                                                                        )
                                                                      },
                                                                    ),
                                                                  }),
                                                            }),
                                                          }),
                                                          (0, l.jsxs)(G.h, {
                                                            children: [
                                                              ' ',
                                                              (0, l.jsxs)(K.qy, {
                                                                minW: 10,
                                                                zIndex: 'popover',
                                                                bgColor: 'gray.200',
                                                                children: [
                                                                  (0, l.jsx)(K.sN, {
                                                                    onClick: function () {
                                                                      return h(
                                                                        ie(
                                                                          ie({}, d),
                                                                          {},
                                                                          { linkColorScheme: '' },
                                                                        ),
                                                                      )
                                                                    },
                                                                    justifyContent: 'space-between',
                                                                    alignItems: 'center',
                                                                    display: 'flex',
                                                                    children: (0, l.jsx)(U.k, {
                                                                      height: 6,
                                                                      width: 6,
                                                                      flexDirection: 'column',
                                                                      flexWrap: 'wrap',
                                                                      children:
                                                                        d.nodeColorScheme.map(
                                                                          function (e) {
                                                                            return (0, l.jsx)(
                                                                              j.xu,
                                                                              {
                                                                                bgColor: e,
                                                                                flex: '1 1 8px',
                                                                                borderRadius: '2xl',
                                                                              },
                                                                              e,
                                                                            )
                                                                          },
                                                                        ),
                                                                    }),
                                                                  }),
                                                                  $.map(function (e) {
                                                                    return (0, l.jsx)(
                                                                      K.sN,
                                                                      {
                                                                        onClick: function () {
                                                                          return h(
                                                                            ie(
                                                                              ie({}, d),
                                                                              {},
                                                                              {
                                                                                linkColorScheme: e,
                                                                              },
                                                                            ),
                                                                          )
                                                                        },
                                                                        justifyContent:
                                                                          'space-between',
                                                                        alignItems: 'center',
                                                                        display: 'flex',
                                                                        children: (0, l.jsx)(j.xu, {
                                                                          bgColor: e,
                                                                          borderRadius: 'sm',
                                                                          height: 6,
                                                                          width: 6,
                                                                        }),
                                                                      },
                                                                      e,
                                                                    )
                                                                  }),
                                                                ],
                                                              }),
                                                            ],
                                                          }),
                                                        ],
                                                      }),
                                                    ],
                                                  }),
                                                  (0, l.jsxs)(U.k, {
                                                    alignItems: 'center',
                                                    justifyContent: 'space-between',
                                                    children: [
                                                      (0, l.jsx)(Q.x, { children: 'Accent' }),
                                                      (0, l.jsxs)(K.v2, {
                                                        placement: 'right',
                                                        children: [
                                                          (0, l.jsx)(K.j2, {
                                                            as: V.z,
                                                            colorScheme: '',
                                                            color: 'black',
                                                            rightIcon: (0, l.jsx)(Z.v, {}),
                                                            children: (0, l.jsx)(j.xu, {
                                                              bgColor: H,
                                                              borderRadius: 'sm',
                                                              height: 6,
                                                              width: 6,
                                                            }),
                                                          }),
                                                          (0, l.jsxs)(G.h, {
                                                            children: [
                                                              ' ',
                                                              (0, l.jsx)(K.qy, {
                                                                minW: 10,
                                                                zIndex: 'popover',
                                                                bgColor: 'gray.200',
                                                                children: $.map(function (e) {
                                                                  return (0, l.jsx)(
                                                                    K.sN,
                                                                    {
                                                                      onClick: function () {
                                                                        return B(e)
                                                                      },
                                                                      justifyContent:
                                                                        'space-between',
                                                                      alignItems: 'center',
                                                                      display: 'flex',
                                                                      children: (0, l.jsx)(j.xu, {
                                                                        bgColor: e,
                                                                        borderRadius: 'sm',
                                                                        height: 6,
                                                                        width: 6,
                                                                      }),
                                                                    },
                                                                    e,
                                                                  )
                                                                }),
                                                              }),
                                                            ],
                                                          }),
                                                        ],
                                                      }),
                                                    ],
                                                  }),
                                                  (0, l.jsx)(ce, {
                                                    colorList: $,
                                                    label: 'Link highlight',
                                                    visuals: d,
                                                    setVisuals: h,
                                                    value: 'linkHighlight',
                                                    visValue: d.linkHighlight,
                                                  }),
                                                  (0, l.jsx)(ce, {
                                                    colorList: $,
                                                    label: 'Node highlight',
                                                    visuals: d,
                                                    setVisuals: h,
                                                    value: 'nodeHighlight',
                                                    visValue: d.nodeHighlight,
                                                  }),
                                                  (0, l.jsx)(ce, {
                                                    colorList: $,
                                                    label: 'Background',
                                                    visuals: d,
                                                    setVisuals: h,
                                                    value: 'backgroundColor',
                                                    visValue: d.backgroundColor,
                                                  }),
                                                  (0, l.jsx)(ce, {
                                                    colorList: $,
                                                    label: 'Emacs node',
                                                    visuals: d,
                                                    setVisuals: h,
                                                    value: 'emacsNodeColor',
                                                    visValue: d.emacsNodeColor,
                                                  }),
                                                ],
                                              }),
                                            }),
                                          }),
                                        ],
                                      }),
                                    }),
                                    (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)(se, {
                                          label: 'Node size',
                                          value: d.nodeRel,
                                          onChange: function (e) {
                                            return h(ie(ie({}, d), {}, { nodeRel: e }))
                                          },
                                        }),
                                        r &&
                                          (0, l.jsxs)(l.Fragment, {
                                            children: [
                                              (0, l.jsx)(se, {
                                                label: 'Node opacity',
                                                value: d.nodeOpacity,
                                                min: 0,
                                                max: 1,
                                                onChange: function (e) {
                                                  return h(ie(ie({}, d), {}, { nodeOpacity: e }))
                                                },
                                              }),
                                              (0, l.jsx)(se, {
                                                label: 'Node resolution',
                                                value: d.nodeResolution,
                                                min: 5,
                                                max: 32,
                                                step: 1,
                                                onChange: function (e) {
                                                  return h(ie(ie({}, d), {}, { nodeResolution: e }))
                                                },
                                              }),
                                            ],
                                          }),
                                        (0, l.jsx)(se, {
                                          label: 'Link width',
                                          value: d.linkWidth,
                                          onChange: function (e) {
                                            return h(ie(ie({}, d), {}, { linkWidth: e }))
                                          },
                                        }),
                                        r &&
                                          (0, l.jsx)(se, {
                                            label: 'Link opacity',
                                            min: 0,
                                            max: 1,
                                            value: d.linkOpacity,
                                            onChange: function (e) {
                                              return h(ie(ie({}, d), {}, { linkOpacity: e }))
                                            },
                                          }),
                                        (0, l.jsxs)(ae, {
                                          label: 'Dash cite links',
                                          infoText:
                                            'Add dashes to citation links made with org-roam-bibtex',
                                          value: d.citeDashes,
                                          onChange: function () {
                                            return h(
                                              ie(ie({}, d), {}, { citeDashes: !d.citeDashes }),
                                            )
                                          },
                                          children: [
                                            (0, l.jsx)(se, {
                                              label: 'Dash length',
                                              value: d.citeDashLength / 10,
                                              onChange: function (e) {
                                                return h(
                                                  ie(ie({}, d), {}, { citeDashLength: 10 * e }),
                                                )
                                              },
                                            }),
                                            (0, l.jsx)(se, {
                                              label: 'Gap length',
                                              value: d.citeGapLength / 5,
                                              onChange: function (e) {
                                                return h(
                                                  ie(ie({}, d), {}, { citeGapLength: 5 * e }),
                                                )
                                              },
                                            }),
                                          ],
                                        }),
                                        (0, l.jsx)(ce, {
                                          colorList: $,
                                          label: 'Citation node color',
                                          visuals: d,
                                          setVisuals: h,
                                          value: 'citeNodeColor',
                                          visValue: d.citeNodeColor,
                                        }),
                                        (0, l.jsx)(ce, {
                                          colorList: $,
                                          label: 'Citationlink color',
                                          visuals: d,
                                          setVisuals: h,
                                          value: 'citeLinkColor',
                                          visValue: d.citeLinkColor,
                                        }),
                                        (0, l.jsxs)(j.xu, {
                                          children: [
                                            (0, l.jsxs)(U.k, {
                                              alignItems: 'center',
                                              justifyContent: 'space-between',
                                              children: [
                                                (0, l.jsx)(Q.x, { children: 'Labels' }),
                                                (0, l.jsxs)(K.v2, {
                                                  placement: 'right',
                                                  children: [
                                                    (0, l.jsx)(K.j2, {
                                                      as: V.z,
                                                      colorScheme: '',
                                                      color: 'black',
                                                      rightIcon: (0, l.jsx)(Z.v, {}),
                                                      children: d.labels
                                                        ? d.labels < 2
                                                          ? 'On Highlight'
                                                          : 'Always'
                                                        : 'Never',
                                                    }),
                                                    (0, l.jsxs)(G.h, {
                                                      children: [
                                                        ' ',
                                                        (0, l.jsxs)(K.qy, {
                                                          zIndex: 'popover',
                                                          bgColor: 'gray.200',
                                                          children: [
                                                            (0, l.jsx)(K.sN, {
                                                              onClick: function () {
                                                                return h(
                                                                  ie(ie({}, d), {}, { labels: 0 }),
                                                                )
                                                              },
                                                              children: 'Never',
                                                            }),
                                                            (0, l.jsx)(K.sN, {
                                                              onClick: function () {
                                                                return h(
                                                                  ie(ie({}, d), {}, { labels: 1 }),
                                                                )
                                                              },
                                                              children: 'On Highlight',
                                                            }),
                                                            (0, l.jsx)(K.sN, {
                                                              onClick: function () {
                                                                return h(
                                                                  ie(ie({}, d), {}, { labels: 2 }),
                                                                )
                                                              },
                                                              children: 'Always',
                                                            }),
                                                            (0, l.jsx)(K.sN, {
                                                              onClick: function () {
                                                                return h(
                                                                  ie(ie({}, d), {}, { labels: 3 }),
                                                                )
                                                              },
                                                              children: 'Always (even in 3D)',
                                                            }),
                                                          ],
                                                        }),
                                                      ],
                                                    }),
                                                  ],
                                                }),
                                              ],
                                            }),
                                            (0, l.jsx)(J.U, {
                                              in: d.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.jsx)(ce, {
                                                    colorList: $,
                                                    label: 'Text',
                                                    visuals: d,
                                                    setVisuals: h,
                                                    value: 'labelTextColor',
                                                    visValue: d.labelTextColor,
                                                  }),
                                                  (0, l.jsx)(ce, {
                                                    colorList: $,
                                                    label: 'Text',
                                                    visuals: d,
                                                    setVisuals: h,
                                                    value: 'labelBackgroundColor',
                                                    visValue: d.labelBackgroundColor,
                                                  }),
                                                  (0, l.jsx)(J.U, {
                                                    in: !!d.labelBackgroundColor,
                                                    animateOpacity: !0,
                                                    children: (0, l.jsx)(j.xu, {
                                                      paddingTop: 2,
                                                      children: (0, l.jsx)(se, {
                                                        label: 'Background opacity',
                                                        value: d.labelBackgroundOpacity,
                                                        onChange: function (e) {
                                                          console.log(d.labelBackgroundOpacity),
                                                            h(
                                                              ie(
                                                                ie({}, d),
                                                                {},
                                                                { labelBackgroundOpacity: e },
                                                              ),
                                                            )
                                                        },
                                                        min: 0,
                                                        max: 1,
                                                        step: 0.01,
                                                      }),
                                                    }),
                                                  }),
                                                  (0, l.jsx)(J.U, {
                                                    in: d.labels > 1,
                                                    animateOpacity: !0,
                                                    children: (0, l.jsx)(j.xu, {
                                                      paddingTop: 2,
                                                      children: (0, l.jsx)(se, {
                                                        label: 'Label Appearance Scale',
                                                        value: 5 * d.labelScale,
                                                        onChange: function (e) {
                                                          return h(
                                                            ie(
                                                              ie({}, d),
                                                              {},
                                                              { labelScale: e / 5 },
                                                            ),
                                                          )
                                                        },
                                                      }),
                                                    }),
                                                  }),
                                                ],
                                              }),
                                            }),
                                          ],
                                        }),
                                        (0, l.jsxs)(ae, {
                                          label: 'Link arrows',
                                          value: d.arrows,
                                          onChange: function () {
                                            return h(ie(ie({}, d), {}, { arrows: !d.arrows }))
                                          },
                                          children: [
                                            (0, l.jsx)(se, {
                                              label: 'Arrow size',
                                              value: d.arrowsLength / 10,
                                              onChange: function (e) {
                                                return h(
                                                  ie(ie({}, d), {}, { arrowsLength: 10 * e }),
                                                )
                                              },
                                            }),
                                            (0, l.jsx)(se, {
                                              label: 'Arrow Position',
                                              value: d.arrowsPos,
                                              min: 0,
                                              max: 1,
                                              step: 0.01,
                                              onChange: function (e) {
                                                return h(ie(ie({}, d), {}, { arrowsPos: e }))
                                              },
                                            }),
                                            (0, l.jsx)(ce, {
                                              colorList: $,
                                              label: 'Arrow Color',
                                              visuals: d,
                                              setVisuals: h,
                                              value: 'arrowsColor',
                                              visValue: d.arrowsColor,
                                            }),
                                          ],
                                        }),
                                        (0, l.jsxs)(ae, {
                                          label: 'Directional Particles',
                                          value: d.particles,
                                          onChange: function () {
                                            return h(ie(ie({}, d), {}, { particles: !d.particles }))
                                          },
                                          children: [
                                            (0, l.jsx)(se, {
                                              label: 'Particle Number',
                                              value: d.particlesNumber,
                                              max: 5,
                                              step: 1,
                                              onChange: function (e) {
                                                return h(ie(ie({}, d), {}, { particlesNumber: e }))
                                              },
                                            }),
                                            (0, l.jsx)(se, {
                                              label: 'Particle Size',
                                              value: d.particlesWidth,
                                              onChange: function (e) {
                                                return h(ie(ie({}, d), {}, { particlesWidth: e }))
                                              },
                                            }),
                                          ],
                                        }),
                                        (0, l.jsx)(ae, {
                                          label: 'Highlight',
                                          onChange: function () {
                                            return h(ie(ie({}, d), {}, { highlight: !d.highlight }))
                                          },
                                          value: d.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)(se, {
                                                label: 'Highlight Link Thickness',
                                                value: d.highlightLinkSize,
                                                onChange: function (e) {
                                                  return h(
                                                    ie(ie({}, d), {}, { highlightLinkSize: e }),
                                                  )
                                                },
                                              }),
                                              (0, l.jsx)(se, {
                                                label: 'Highlight Node Size',
                                                value: d.highlightNodeSize,
                                                onChange: function (e) {
                                                  return h(
                                                    ie(ie({}, d), {}, { highlightNodeSize: e }),
                                                  )
                                                },
                                              }),
                                              (0, l.jsxs)(ae, {
                                                label: 'Highlight Animation',
                                                onChange: function () {
                                                  h(
                                                    ie(
                                                      ie({}, d),
                                                      {},
                                                      { highlightAnim: !d.highlightAnim },
                                                    ),
                                                  )
                                                },
                                                value: d.highlightAnim,
                                                children: [
                                                  (0, l.jsx)(se, {
                                                    label: 'Animation speed',
                                                    onChange: function (e) {
                                                      return h(
                                                        ie(ie({}, d), {}, { animationSpeed: e }),
                                                      )
                                                    },
                                                    value: d.animationSpeed,
                                                    infoText:
                                                      'Slower speed has a chance of being buggy',
                                                    min: 50,
                                                    max: 1e3,
                                                    step: 10,
                                                  }),
                                                  (0, l.jsx)(Y.Ph, {
                                                    placeholder: d.algorithmName,
                                                    onChange: function (e) {
                                                      h(
                                                        ie(
                                                          ie({}, d),
                                                          {},
                                                          { algorithmName: e.target.value },
                                                        ),
                                                      )
                                                    },
                                                    children: d.algorithmOptions.map(function (e) {
                                                      return (0,
                                                      l.jsx)('option', { value: e, children: e }, e)
                                                    }),
                                                  }),
                                                ],
                                              }),
                                            ],
                                          }),
                                        }),
                                      ],
                                    }),
                                  ],
                                }),
                              }),
                            ],
                          }),
                          (0, l.jsxs)(X.Qd, {
                            children: [
                              (0, l.jsxs)(X.KF, {
                                children: [
                                  (0, l.jsx)(X.XE, { marginRight: 2 }),
                                  (0, l.jsx)(W.X, { size: 'sm', children: 'Behavior' }),
                                ],
                              }),
                              (0, l.jsx)(X.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)(U.k, {
                                      alignItems: 'center',
                                      justifyContent: 'space-between',
                                      children: [
                                        (0, l.jsxs)(U.k, {
                                          children: [
                                            (0, l.jsx)(Q.x, { children: 'Expand Node' }),
                                            (0, l.jsx)(le, {
                                              infoText:
                                                'View only the node and its direct neighbors',
                                            }),
                                          ],
                                        }),
                                        (0, l.jsxs)(K.v2, {
                                          placement: 'right',
                                          children: [
                                            (0, l.jsx)(K.j2, {
                                              as: V.z,
                                              rightIcon: (0, l.jsx)(Z.v, {}),
                                              colorScheme: '',
                                              color: 'black',
                                              children: (0, l.jsx)(Q.x, {
                                                children: g.local
                                                  ? g.local[0].toUpperCase() + g.local.slice(1)
                                                  : 'Never',
                                              }),
                                            }),
                                            (0, l.jsxs)(G.h, {
                                              children: [
                                                ' ',
                                                (0, l.jsxs)(K.qy, {
                                                  zIndex: 'popover',
                                                  bgColor: 'gray.200',
                                                  children: [
                                                    (0, l.jsx)(K.sN, {
                                                      onClick: function () {
                                                        return f(ie(ie({}, g), {}, { local: '' }))
                                                      },
                                                      children: 'Never',
                                                    }),
                                                    (0, l.jsx)(K.sN, {
                                                      onClick: function () {
                                                        return f(
                                                          ie(ie({}, g), {}, { local: 'click' }),
                                                        )
                                                      },
                                                      children: 'Click',
                                                    }),
                                                    (0, l.jsx)(K.sN, {
                                                      onClick: function () {
                                                        return f(
                                                          ie(ie({}, g), {}, { local: 'double' }),
                                                        )
                                                      },
                                                      children: 'Double Click',
                                                    }),
                                                    (0, l.jsx)(K.sN, {
                                                      onClick: function () {
                                                        return f(
                                                          ie(ie({}, g), {}, { local: 'right' }),
                                                        )
                                                      },
                                                      children: 'Right Click',
                                                    }),
                                                  ],
                                                }),
                                              ],
                                            }),
                                          ],
                                        }),
                                      ],
                                    }),
                                    (0, l.jsxs)(U.k, {
                                      alignItems: 'center',
                                      justifyContent: 'space-between',
                                      children: [
                                        (0, l.jsx)(Q.x, { children: 'Open in Emacs' }),
                                        (0, l.jsxs)(K.v2, {
                                          placement: 'right',
                                          children: [
                                            (0, l.jsx)(K.j2, {
                                              as: V.z,
                                              rightIcon: (0, l.jsx)(Z.v, {}),
                                              colorScheme: '',
                                              color: 'black',
                                              children: (0, l.jsx)(Q.x, {
                                                children: g.follow
                                                  ? g.follow[0].toUpperCase() + g.follow.slice(1)
                                                  : 'Never',
                                              }),
                                            }),
                                            (0, l.jsxs)(G.h, {
                                              children: [
                                                ' ',
                                                (0, l.jsxs)(K.qy, {
                                                  bgColor: 'gray.200',
                                                  zIndex: 'popover',
                                                  children: [
                                                    (0, l.jsx)(K.sN, {
                                                      onClick: function () {
                                                        return f(ie(ie({}, g), {}, { follow: '' }))
                                                      },
                                                      children: 'Never',
                                                    }),
                                                    (0, l.jsx)(K.sN, {
                                                      onClick: function () {
                                                        return f(
                                                          ie(ie({}, g), {}, { follow: 'click' }),
                                                        )
                                                      },
                                                      children: 'Click',
                                                    }),
                                                    (0, l.jsx)(K.sN, {
                                                      onClick: function () {
                                                        return f(
                                                          ie(ie({}, g), {}, { follow: 'double' }),
                                                        )
                                                      },
                                                      children: 'Double Click',
                                                    }),
                                                    (0, l.jsx)(K.sN, {
                                                      onClick: function () {
                                                        return f(
                                                          ie(ie({}, g), {}, { follow: 'right' }),
                                                        )
                                                      },
                                                      children: 'Right Click',
                                                    }),
                                                  ],
                                                }),
                                              ],
                                            }),
                                          ],
                                        }),
                                      ],
                                    }),
                                    (0, l.jsxs)(U.k, {
                                      alignItems: 'center',
                                      justifyContent: 'space-between',
                                      children: [
                                        (0, l.jsx)(Q.x, { children: 'Follow Emacs by...' }),
                                        (0, l.jsxs)(K.v2, {
                                          placement: 'right',
                                          children: [
                                            (0, l.jsx)(K.j2, {
                                              as: V.z,
                                              rightIcon: (0, l.jsx)(Z.v, {}),
                                              colorScheme: '',
                                              color: 'black',
                                              children: (0, l.jsx)(Q.x, {
                                                children:
                                                  x.follow[0].toUpperCase() + x.follow.slice(1),
                                              }),
                                            }),
                                            (0, l.jsxs)(G.h, {
                                              children: [
                                                ' ',
                                                (0, l.jsxs)(K.qy, {
                                                  bgColor: 'gray.200',
                                                  zIndex: 'popover',
                                                  children: [
                                                    (0, l.jsx)(K.sN, {
                                                      onClick: function () {
                                                        return p(
                                                          ie(ie({}, x), {}, { follow: 'local' }),
                                                        )
                                                      },
                                                      children: 'Opening the local graph',
                                                    }),
                                                    (0, l.jsx)(K.sN, {
                                                      onClick: function () {
                                                        return p(
                                                          ie(ie({}, x), {}, { follow: 'zoom' }),
                                                        )
                                                      },
                                                      children: 'Zooming to the current node',
                                                    }),
                                                  ],
                                                }),
                                              ],
                                            }),
                                          ],
                                        }),
                                      ],
                                    }),
                                    (0, l.jsx)(se, {
                                      label: 'Zoom speed',
                                      value: x.zoomSpeed,
                                      min: 0,
                                      max: 4e3,
                                      step: 100,
                                      onChange: function (e) {
                                        return p(ie(ie({}, x), {}, { zoomSpeed: e }))
                                      },
                                    }),
                                    (0, l.jsx)(se, {
                                      label: 'Zoom padding',
                                      value: x.zoomPadding,
                                      min: 0,
                                      max: 400,
                                      step: 1,
                                      onChange: function (e) {
                                        return p(ie(ie({}, x), {}, { zoomPadding: e }))
                                      },
                                      infoText:
                                        'How much to zoom out to accomodate all nodes when changing the view.',
                                    }),
                                  ],
                                }),
                              }),
                            ],
                          }),
                        ],
                      }),
                    }),
                  ],
                }),
              }),
            ],
          })
        },
        le = function (e) {
          var n = e.infoText
          return (0, l.jsx)(j.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)(H.h, {}),
            }),
          })
        },
        se = function (e) {
          var n = e.min,
            t = void 0 === n ? 0 : n,
            r = e.max,
            i = void 0 === r ? 10 : r,
            o = e.step,
            s = void 0 === o ? 0.1 : o,
            a = e.value,
            c = void 0 === a ? 1 : a,
            d = (0, z.Z)(e, ['min', 'max', 'step', 'value']),
            h = d.onChange,
            g = d.label,
            f = d.infoText,
            x = (0, u.useContext)(te.N).highlightColor
          return (0, l.jsxs)(j.xu, {
            children: [
              (0, l.jsxs)(j.xu, {
                display: 'flex',
                alignItems: 'flex-end',
                children: [(0, l.jsx)(Q.x, { children: g }), f && (0, l.jsx)(le, { infoText: f })],
              }),
              (0, l.jsxs)($.iR, {
                value: c,
                onChange: h,
                min: t,
                max: i,
                step: s,
                children: [
                  (0, l.jsx)($.Uj, { children: (0, l.jsx)($.Ms, {}) }),
                  (0, l.jsx)(M.u, {
                    bg: x,
                    label: c.toFixed(1),
                    children: (0, l.jsx)($.gs, { bg: 'white' }),
                  }),
                ],
              }),
            ],
          })
        },
        ae = function (e) {
          var n = e.value,
            t = e.onChange,
            r = e.label,
            i = e.infoText,
            o = e.children
          return (0, l.jsxs)(j.xu, {
            paddingTop: 2,
            children: [
              (0, l.jsxs)(j.xu, {
                display: 'flex',
                justifyContent: 'space-between',
                paddingBottom: 2,
                children: [
                  (0, l.jsxs)(j.xu, {
                    display: 'flex',
                    alignItems: 'center',
                    children: [
                      (0, l.jsx)(Q.x, { children: r }),
                      i && (0, l.jsx)(le, { infoText: i }),
                    ],
                  }),
                  (0, l.jsx)(q.r, { isChecked: !!n, onChange: t }),
                ],
              }),
              (0, l.jsx)(J.U, {
                in: !!n,
                animateOpacity: !0,
                children: (0, l.jsx)(j.xu, {
                  paddingLeft: 4,
                  paddingTop: 2,
                  paddingBottom: 2,
                  children: o,
                }),
              }),
            ],
          })
        },
        ce = function (e) {
          var n = e.label,
            t = e.colorList,
            r = e.value,
            i = e.visuals,
            o = e.visValue,
            s = e.setVisuals
          return (0, l.jsxs)(U.k, {
            alignItems: 'center',
            justifyContent: 'space-between',
            children: [
              (0, l.jsx)(Q.x, { children: n }),
              (0, l.jsxs)(K.v2, {
                placement: 'right',
                children: [
                  (0, l.jsx)(K.j2, {
                    as: V.z,
                    colorScheme: '',
                    color: 'black',
                    rightIcon: (0, l.jsx)(Z.v, {}),
                    children: (0, l.jsx)(j.xu, {
                      bgColor: o,
                      borderRadius: 'sm',
                      height: 6,
                      width: 6,
                    }),
                  }),
                  (0, l.jsxs)(G.h, {
                    children: [
                      ' ',
                      (0, l.jsxs)(K.qy, {
                        minW: 10,
                        zIndex: 'popover',
                        bgColor: 'gray.200',
                        children: [
                          (0, l.jsx)(K.sN, {
                            onClick: function () {
                              return s(ie(ie({}, i), {}, (0, a.Z)({}, r, '')))
                            },
                            justifyContent: 'space-between',
                            alignItems: 'center',
                            display: 'flex',
                            children: (0, l.jsx)(j.xu, { height: 6, width: 6 }),
                          }),
                          t.map(function (e) {
                            return (0, l.jsx)(
                              K.sN,
                              {
                                onClick: function () {
                                  return s(ie(ie({}, i), {}, (0, a.Z)({}, r, e)))
                                },
                                justifyContent: 'space-between',
                                alignItems: 'center',
                                display: 'flex',
                                children: (0, l.jsx)(j.xu, {
                                  bgColor: e,
                                  borderRadius: 'sm',
                                  height: 6,
                                  width: 6,
                                }),
                              },
                              e,
                            )
                          }),
                        ],
                      }),
                    ],
                  }),
                ],
              }),
            ],
          })
        },
        ue = function (e) {
          var n = e.filter,
            t = e.setFilter,
            r = e.tags,
            i = e.highlightColor,
            o = r.map(function (e) {
              return { value: e, label: e }
            }),
            s = (0, u.useState)([]),
            a = s[0],
            c = s[1]
          return (0, l.jsx)(ee.CUIAutoComplete, {
            items: o,
            label: 'Add tag to filter',
            placeholder: ' ',
            onCreateItem: function (e) {
              return null
            },
            disableCreateItem: !0,
            selectedItems: a,
            onSelectedItemsChange: function (e) {
              e.selectedItems &&
                (c(e.selectedItems),
                t(
                  ie(
                    ie({}, n),
                    {},
                    {
                      tags: a.map(function (e) {
                        return e.value
                      }),
                    },
                  ),
                ))
            },
            listItemStyleProps: { overflow: 'hidden' },
            highlightItemBg: 'gray.400',
            toggleButtonStyleProps: { variant: 'outline' },
            inputStyleProps: { focusBorderColor: i, color: 'gray.800', borderColor: 'gray.600' },
            tagStyleProps: {
              rounded: 'full',
              bg: i,
              height: 8,
              paddingLeft: 4,
              fontWeight: 'bold',
            },
            hideToggleButton: !0,
            itemRenderer: function (e) {
              return e.label
            },
          })
        },
        de = function (e) {
          var n = e.colorList,
            t = e.tagColors,
            r = e.setTagColors,
            i = e.highlightColor,
            o = e.tags.map(function (e) {
              return { value: e, label: e }
            }),
            s = (0, u.useState)([]),
            c = s[0],
            d = s[1]
          return (0, l.jsxs)(j.xu, {
            children: [
              (0, l.jsx)(ee.CUIAutoComplete, {
                items: o,
                label: 'Add tag to filter',
                placeholder: ' ',
                disableCreateItem: !0,
                selectedItems: c,
                onSelectedItemsChange: function (e) {
                  e.selectedItems &&
                    (d(Array.from(new Set(e.selectedItems))),
                    r(
                      Object.fromEntries(
                        Array.from(new Set(e.selectedItems)).map(function (e) {
                          var n
                          return [
                            e.label,
                            null !== (n = t[e.label]) && void 0 !== n ? n : 'gray.600',
                          ]
                        }),
                      ),
                    ))
                },
                listItemStyleProps: { overflow: 'hidden' },
                highlightItemBg: 'gray.400',
                toggleButtonStyleProps: { variant: 'outline' },
                inputStyleProps: {
                  focusBorderColor: i,
                  color: 'gray.800',
                  borderColor: 'gray.600',
                },
                tagStyleProps: {
                  display: 'none',
                  rounded: 'full',
                  bg: i,
                  height: 8,
                  paddingLeft: 4,
                  fontWeight: 'bold',
                },
                hideToggleButton: !0,
                itemRenderer: function (e) {
                  return e.label
                },
              }),
              (0, l.jsx)(_.gC, {
                spacing: 2,
                justifyContent: 'flex-start',
                divider: (0, l.jsx)(_.cX, { borderColor: 'gray.500' }),
                align: 'stretch',
                color: 'gray.800',
                children: Object.keys(t).map(function (e) {
                  return (0, l.jsxs)(
                    U.k,
                    {
                      alignItems: 'center',
                      justifyContent: 'space-between',
                      width: '100%',
                      pl: 2,
                      children: [
                        (0, l.jsx)(j.xu, {
                          width: '100%',
                          children: (0, l.jsx)(Q.x, { fontWeight: 'bold', children: e }),
                        }),
                        (0, l.jsxs)(K.v2, {
                          isLazy: !0,
                          placement: 'right',
                          children: [
                            (0, l.jsx)(K.j2, {
                              as: V.z,
                              colorScheme: '',
                              color: 'black',
                              children: (0, l.jsx)(j.xu, {
                                bgColor: t[e],
                                borderRadius: 'sm',
                                height: 6,
                                width: 6,
                              }),
                            }),
                            (0, l.jsxs)(G.h, {
                              children: [
                                ' ',
                                (0, l.jsx)(K.qy, {
                                  minW: 10,
                                  zIndex: 'popover',
                                  bgColor: 'gray.200',
                                  children: n.map(function (n) {
                                    return (0, l.jsx)(
                                      K.sN,
                                      {
                                        onClick: function () {
                                          return r(ie(ie({}, t), {}, (0, a.Z)({}, e, n)))
                                        },
                                        justifyContent: 'space-between',
                                        alignItems: 'center',
                                        display: 'flex',
                                        children: (0, l.jsx)(j.xu, {
                                          bgColor: n,
                                          borderRadius: 'sm',
                                          height: 6,
                                          width: 6,
                                        }),
                                      },
                                      n,
                                    )
                                  }),
                                }),
                              ],
                            }),
                          ],
                        }),
                        (0, l.jsx)(F.h, {
                          'aria-label': 'Delete tag color',
                          variant: 'ghost',
                          icon: (0, l.jsx)(B.p, {}),
                          onClick: function () {
                            r(
                              Object.fromEntries(
                                Array.from(new Set(c)).map(function (e) {
                                  var n
                                  return [
                                    e.label,
                                    null !== (n = t[e.label]) && void 0 !== n ? n : 'gray.600',
                                  ]
                                }),
                              ),
                            ),
                              d(
                                c.filter(function (n) {
                                  return n.value !== e
                                }),
                              )
                          },
                        }),
                      ],
                    },
                    e,
                  )
                }),
              }),
            ],
          })
        },
        he = t(31122),
        ge = t(22003)
      function fe(e, n) {
        var t = Object.keys(e)
        if (Object.getOwnPropertySymbols) {
          var r = Object.getOwnPropertySymbols(e)
          n &&
            (r = r.filter(function (n) {
              return Object.getOwnPropertyDescriptor(e, n).enumerable
            })),
            t.push.apply(t, r)
        }
        return t
      }
      function xe(e) {
        for (var n = 1; n < arguments.length; n++) {
          var t = null != arguments[n] ? arguments[n] : {}
          n % 2
            ? fe(Object(t), !0).forEach(function (n) {
                ;(0, a.Z)(e, n, t[n])
              })
            : Object.getOwnPropertyDescriptors
            ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t))
            : fe(Object(t)).forEach(function (n) {
                Object.defineProperty(e, n, Object.getOwnPropertyDescriptor(t, n))
              })
        }
        return e
      }
      var pe = t.e(4).then(t.bind(t, 57004)),
        je = t.g.window ? t(61957).f$ : null,
        me = t.g.window ? t(61957).s6 : null
      function ve() {
        var e = (0, u.useState)(!1),
          n = e[0],
          t = e[1]
        return (
          (0, u.useEffect)(function () {
            t(!0)
          }, []),
          n ? (0, l.jsx)(be, {}) : null
        )
      }
      function be() {
        var e = d('physics', S),
          n = (0, c.Z)(e, 2),
          t = n[0],
          r = n[1],
          i = d('filter', I),
          o = (0, c.Z)(i, 2),
          h = o[0],
          g = o[1],
          f = d('visuals', O),
          x = (0, c.Z)(f, 2),
          p = x[0],
          m = x[1],
          v = (0, u.useState)(null),
          b = v[0],
          C = v[1],
          y = (0, u.useState)(null),
          k = y[0],
          w = y[1],
          z = d('behavior', N),
          T = (0, c.Z)(z, 2),
          R = T[0],
          D = T[1],
          P = d('mouse', L),
          E = (0, c.Z)(P, 2),
          Z = E[0],
          H = E[1],
          B = (0, u.useRef)({}),
          A = (0, u.useRef)({}),
          F = (0, u.useRef)([]),
          M = (0, u.useContext)(te.N).setEmacsTheme,
          V = d('3d', !1),
          X = (0, c.Z)(V, 2),
          W = X[0],
          _ = X[1],
          U = d('tagCols', {}),
          Q = (0, c.Z)(U, 2),
          q = Q[0],
          K = Q[1],
          G = (0, u.useState)({ nodeIds: [] }),
          J = G[0],
          Y = G[1],
          $ = (0, u.useRef)({ nodeIds: [] }),
          ee = (0, u.useRef)(N)
        ee.current = R
        var ne = (0, u.useRef)(null),
          re = (0, u.useRef)(null)
        $.current = J
        var ie = function (e, n) {
          var t,
            r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 2e3,
            i = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 200,
            o = ne.current,
            l = $.current,
            a = ee.current,
            c = null !== (t = A.current[n]) && void 0 !== t ? t : [],
            u = Object.fromEntries(
              [n]
                .concat(
                  (0, s.Z)(
                    c.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), Y({ nodeIds: [] })),
              void setTimeout(function () {
                return o.zoomToFit(r, i, function (e) {
                  return u[e.id]
                })
              }, 50))
            : l.nodeIds.length
            ? 'add' !== a.localSame
              ? (Y({ nodeIds: [n] }),
                void setTimeout(function () {
                  o.centerAt(0, 0, r)
                }, 50))
              : l.nodeIds.includes(n) &&
                l.nodeIds.some(function (e) {
                  return u[e]
                })
              ? (Y(function (e) {
                  return xe(xe({}, e), {}, { nodeIds: [].concat((0, s.Z)(e.nodeIds), [n]) })
                }),
                void setTimeout(function () {
                  return o.zoomToFit(r, i, function (e) {
                    return u[e.id]
                  })
                }, 50))
              : (Y({ nodeIds: [n] }),
                void setTimeout(function () {
                  o.centerAt(0, 0, r)
                }, 50))
            : (Y({ nodeIds: [n] }),
              void setTimeout(function () {
                o.centerAt(0, 0, r)
              }, 50))
        }
        return (
          (0, u.useEffect)(function () {
            ;(re.current = new ge.Z('ws://localhost:35903')),
              re.current.addEventListener('open', function (e) {
                console.log('Connection with Emacs established')
              }),
              re.current.addEventListener('message', function (e) {
                ne.current
                var n = ee.current,
                  t = JSON.parse(e.data)
                switch (t.type) {
                  case 'graphdata':
                    return (function (e) {
                      var n
                      F.current = null !== (n = e.tags) && void 0 !== n ? n : []
                      var t = e.nodes.reduce(function (e, n) {
                          var t
                          return xe(
                            xe({}, e),
                            {},
                            (0, a.Z)(
                              {},
                              n.file,
                              [].concat(
                                (0, s.Z)(null !== (t = e[n.file]) && void 0 !== t ? t : []),
                                [n],
                              ),
                            ),
                          )
                        }, {}),
                        r = Object.keys(t).flatMap(function (e) {
                          var n,
                            r = null !== (n = t[e]) && void 0 !== n ? n : [],
                            i = r.find(function (e) {
                              return 0 === e.level
                            }),
                            o = r.filter(function (e) {
                              return 0 !== e.level
                            })
                          return i
                            ? o.map(function (e) {
                                return { source: e.id, target: i.id, type: 'parent' }
                              })
                            : []
                        })
                      B.current = Object.fromEntries(
                        e.nodes.map(function (e) {
                          return [e.id, e]
                        }),
                      )
                      var i = [].concat((0, s.Z)(e.links), (0, s.Z)(r)).filter(function (e) {
                        var n = e.source,
                          t = e.target
                        return B.current[n] && B.current[t]
                      })
                      A.current = i.reduce(function (e, n) {
                        var t, r, i
                        return xe(
                          xe({}, e),
                          {},
                          ((i = {}),
                          (0, a.Z)(
                            i,
                            n.source,
                            [].concat(
                              (0, s.Z)(null !== (t = e[n.source]) && void 0 !== t ? t : []),
                              [n],
                            ),
                          ),
                          (0, a.Z)(
                            i,
                            n.target,
                            [].concat(
                              (0, s.Z)(null !== (r = e[n.target]) && void 0 !== r ? r : []),
                              [n],
                            ),
                          ),
                          i),
                        )
                      }, {})
                      var o = xe(xe({}, e), {}, { links: i }),
                        l = JSON.parse(JSON.stringify(o))
                      C(l)
                    })(t.data)
                  case 'theme':
                    return M(t.data)
                  case 'command':
                    switch (t.data.commandName) {
                      case 'local':
                        var r = R.zoomSpeed,
                          i = R.zoomPadding
                        ie('local', t.data.id, r, i), w(t.data.id)
                        break
                      case 'zoom':
                        var o,
                          l,
                          c =
                            (null === t || void 0 === t || null === (o = t.data) || void 0 === o
                              ? void 0
                              : o.speed) || n.zoomSpeed,
                          u =
                            (null === t || void 0 === t || null === (l = t.data) || void 0 === l
                              ? void 0
                              : l.padding) || n.zoomPadding
                        ie('zoom', t.data.id, c, u), w(t.data.id)
                        break
                      case 'follow':
                        ie(n.follow, t.data.id, n.zoomSpeed, n.zoomPadding), w(t.data.id)
                        break
                      default:
                        return console.error('unknown message type', t.type)
                    }
                }
              })
          }, []),
          b
            ? (0, l.jsxs)(j.xu, {
                display: 'flex',
                alignItems: 'flex-start',
                flexDirection: 'row',
                height: '100%',
                children: [
                  (0, l.jsx)(
                    oe,
                    xe(
                      xe(
                        {},
                        {
                          physics: t,
                          setPhysics: r,
                          threeDim: W,
                          setThreeDim: _,
                          filter: h,
                          setFilter: g,
                          visuals: p,
                          setVisuals: m,
                          mouse: Z,
                          setMouse: H,
                          behavior: R,
                          setBehavior: D,
                          tagColors: q,
                          setTagColors: K,
                        },
                      ),
                      {},
                      { tags: F.current },
                    ),
                  ),
                  (0, l.jsx)(j.xu, {
                    position: 'absolute',
                    alignItems: 'top',
                    children: (0, l.jsx)(
                      Ce,
                      xe(
                        {
                          ref: ne,
                          nodeById: B.current,
                          linksByNodeId: A.current,
                          webSocket: re.current,
                        },
                        {
                          physics: t,
                          graphData: b,
                          threeDim: W,
                          emacsNodeId: k,
                          filter: h,
                          visuals: p,
                          behavior: R,
                          mouse: Z,
                          scope: J,
                          setScope: Y,
                          tagColors: q,
                        },
                      ),
                    ),
                  }),
                ],
              })
            : null
        )
      }
      var Ce = (0, u.forwardRef)(function (e, n) {
        var t = e.physics,
          r = e.graphData,
          a = e.threeDim,
          d = e.linksByNodeId,
          h = e.filter,
          j = e.emacsNodeId,
          m = e.nodeById,
          v = e.visuals,
          b = (e.behavior, e.mouse),
          C = e.scope,
          y = e.setScope,
          k = e.webSocket,
          S = e.tagColors,
          I = (0, f.iP)(),
          O = (0, c.Z)(I, 2),
          N = O[0],
          L = O[1],
          z = (0, u.useState)(null),
          T = z[0],
          R = z[1],
          D = (0, p.useTheme)(),
          P = (0, u.useContext)(te.N).emacsTheme,
          E = function (e, n) {
            switch (e) {
              case b.local:
                if (C.nodeIds.includes(n.id)) break
                y(function (e) {
                  return xe(xe({}, e), {}, { nodeIds: [].concat((0, s.Z)(e.nodeIds), [n.id]) })
                })
                break
              case b.follow:
                k.send(n.id)
            }
          },
          Z = (0, u.useRef)(null)
        ;(0, u.useEffect)(
          function () {
            j && R(m[j])
          },
          [j],
        ),
          (Z.current = T)
        var H = (0, u.useMemo)(
            function () {
              if (!Z.current) return {}
              var e = d[Z.current.id]
              return e
                ? Object.fromEntries(
                    [Z.current.id]
                      .concat(
                        (0, s.Z)(
                          e.flatMap(function (e) {
                            return [e.source, e.target]
                          }),
                        ),
                      )
                      .map(function (e) {
                        return [e, {}]
                      }),
                  )
                : {}
            },
            [Z.current, d],
          ),
          B = (0, u.useMemo)(
            function () {
              var e = r.nodes.filter(function (e) {
                  var n,
                    t = e,
                    r = null !== (n = d[t.id]) && void 0 !== n ? n : []
                  return h.tags.length && t.tags.length
                    ? !h.tags.some(function (e) {
                        return t.tags.indexOf(e) > -1
                      })
                    : !h.orphans ||
                        (h.parents
                          ? 0 !== r.length
                          : 0 !== r.length &&
                            r.some(function (e) {
                              return !['parent', 'ref'].includes(e.type)
                            }))
                }),
                n = e.map(function (e) {
                  return e.id
                })
              return {
                filteredNodes: e,
                filteredLinks: r.links.filter(function (e) {
                  if (h.tags.length) {
                    var t = 'object' === typeof e.source ? e.source.id : e.source,
                      r = 'object' === typeof e.target ? e.target.id : e.target
                    return n.includes(t) && n.includes(r)
                  }
                  var i = e
                  return h.parents || 'parent' !== i.type
                }),
              }
            },
            [h, r],
          ),
          A = (0, u.useMemo)(
            function () {
              var e = B.filteredNodes.filter(function (e) {
                  var n,
                    t = null !== (n = d[e.id]) && void 0 !== n ? n : []
                  return (
                    C.nodeIds.includes(e.id) ||
                    t.some(function (e) {
                      return C.nodeIds.includes(e.source) || C.nodeIds.includes(e.target)
                    })
                  )
                }),
                n = e.map(function (e) {
                  return e.id
                }),
                t = B.filteredLinks.filter(function (e) {
                  var t = 'object' === typeof e.source ? e.source.id : e.source,
                    r = 'object' === typeof e.target ? e.target.id : e.target
                  return n.includes(t) && n.includes(r)
                })
              return 0 === C.nodeIds.length
                ? { nodes: B.filteredNodes, links: B.filteredLinks }
                : { nodes: e, links: t }
            },
            [h, C, r],
          )
        ;(0, u.useEffect)(function () {
          ;(0, o.Z)(
            i().mark(function e() {
              var r, o
              return i().wrap(function (e) {
                for (;;)
                  switch ((e.prev = e.next)) {
                    case 0:
                      return (r = n.current), (e.next = 3), pe
                    case 3:
                      ;(o = e.sent),
                        t.gravityOn
                          ? (r.d3Force('x', o.forceX().strength(t.gravity)),
                            r.d3Force('y', o.forceY().strength(t.gravity)),
                            a && r.d3Force('z', o.forceZ().strength(t.gravity)))
                          : (r.d3Force('x', null), r.d3Force('y', null), a && r.d3Force('z', null)),
                        t.centering
                          ? r.d3Force('center', o.forceCenter().strength(t.centeringStrength))
                          : r.d3Force('center', null),
                        t.linkStrength && r.d3Force('link').strength(t.linkStrength),
                        t.linkIts && r.d3Force('link').iterations(t.linkIts),
                        t.charge && r.d3Force('charge').strength(t.charge),
                        r.d3Force(
                          'collide',
                          t.collision ? o.forceCollide().radius(t.collisionStrength) : null,
                        )
                    case 10:
                    case 'end':
                      return e.stop()
                  }
              }, e)
            }),
          )()
        }),
          (0, u.useEffect)(
            function () {
              var e
              null === (e = n.current) || void 0 === e || e.d3ReheatSimulation()
            },
            [t],
          )
        var F = (0, u.useRef)(0),
          M = (0, u.useState)(1),
          V = M[0],
          X = M[1],
          W = (0, x._7)(
            function (e) {
              return X(e)
            },
            { duration: v.animationSpeed, algorithm: w[v.algorithmName] },
          ),
          _ = (0, c.Z)(W, 2),
          U = _[0],
          Q = _[1],
          q = (0, x._7)(
            function (e) {
              return X(Math.min(V, -1 * (e - 1)))
            },
            { duration: v.animationSpeed, algorithm: w[v.algorithmName] },
          ),
          K = (0, c.Z)(q, 2),
          G = K[0],
          J = K[1],
          Y = (0, u.useRef)(null)
        ;(0, u.useEffect)(
          function () {
            if ((T && (Y.current = T), !v.highlightAnim)) return X(T ? 1 : 0)
            T ? U() : (Q(), V > 0.5 ? G() : X(0))
          },
          [T],
        )
        var $ = function (e) {
            if (D)
              return e.split('.').reduce(function (e, n) {
                return e[n]
              }, D.colors)
          },
          ee = (0, u.useMemo)(
            function () {
              var e = v.nodeColorScheme.concat(
                v.linkColorScheme || [],
                v.linkHighlight || [],
                v.nodeHighlight || [],
                v.citeNodeColor || [],
                v.citeLinkColor || [],
              )
              return Object.fromEntries(
                e.map(function (n) {
                  var t = $(n),
                    r = e.map(function (e) {
                      return [e, g.Z(t, $(e))]
                    })
                  return [n, Object.fromEntries(r)]
                }),
              )
            },
            [v.nodeColorScheme, v.linkHighlight, v.nodeHighlight, v.linkColorScheme, P],
          ),
          ne = (0, u.useMemo)(
            function () {
              var e,
                n,
                t,
                r =
                  null !== (e = d[null === (n = Y.current) || void 0 === n ? void 0 : n.id]) &&
                  void 0 !== e
                    ? e
                    : []
              return Object.fromEntries(
                [null === (t = Y.current) || void 0 === t ? void 0 : t.id]
                  .concat(
                    (0, s.Z)(
                      r.flatMap(function (e) {
                        return [e.source, e.target]
                      }),
                    ),
                  )
                  .map(function (e) {
                    return [e, {}]
                  }),
              )
            },
            [JSON.stringify(T), Y.current],
          ),
          re = function (e) {
            var n,
              t,
              r,
              i,
              o,
              l,
              s =
                null !== (n = null === (t = d[e]) || void 0 === t ? void 0 : t.length) &&
                void 0 !== n
                  ? n
                  : 0,
              a = s
                ? null === (r = d[e]) || void 0 === r
                  ? void 0
                  : r.filter(function (e) {
                      return 'parent' === e.type || 'cite' === e.type
                    }).length
                : 0,
              c = h.parents ? s : s - a
            return v.nodeColorScheme[
              ((i = c), (o = 0), (l = v.nodeColorScheme.length - 1), Math.min(Math.max(i, o), l))
            ]
          },
          ie = function (e, n) {
            return d[e] > d[n] ? re(e) : re(n)
          },
          oe = 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(',') +
              ')'
            )
          },
          le = (0, u.useMemo)(
            function () {
              return $(v.labelTextColor)
            },
            [v.labelTextColor, P],
          ),
          se = (0, u.useMemo)(
            function () {
              return $(v.labelBackgroundColor)
            },
            [v.labelBackgroundColor, P],
          ),
          ae = {
            graphData: A,
            width: N,
            height: L,
            backgroundColor: D.colors.gray[v.backgroundColor],
            nodeLabel: function (e) {
              return e.title
            },
            nodeColor: function (e) {
              return (function (e) {
                var n = H[e.id] || ne[e.id]
                if (v.emacsNodeColor && e.id === j) return $(v.emacsNodeColor)
                if (
                  S &&
                  e.tags.some(function (e) {
                    return S[e]
                  })
                ) {
                  var t =
                    S[
                      e.tags.filter(function (e) {
                        return S[e]
                      })[0]
                    ]
                  return $(t)
                }
                return v.citeNodeColor && e.properties.ROAM_REFS
                  ? $(v.citeNodeColor)
                  : n && v.nodeHighlight
                  ? ee[re(e.id)][v.nodeHighlight](V)
                  : $(re(e.id))
              })(e)
            },
            nodeRelSize: v.nodeRel,
            nodeVal: function (e) {
              var n,
                t = null !== (n = d[e.id]) && void 0 !== n ? n : [],
                r = t.length
                  ? t.filter(function (e) {
                      return 'parent' === e.type || 'cite' === e.type
                    }).length
                  : 0
              return (
                (3 + t.length - (h.parents ? 0 : r)) *
                (H[e.id] || ne[e.id] ? 1 + V * (v.highlightNodeSize - 1) : 1)
              )
            },
            nodeCanvasObject: function (e, n, t) {
              if (e && v.labels) {
                var r = ne[e.id]
                if (!(t <= v.labelScale || 1 === v.labels) || H[e.id] || r) {
                  var i = e.title,
                    o = i.substring(0, Math.min(i.length, 40)),
                    l = 12 / t,
                    a = [1.1 * n.measureText(o).width, l].map(function (e) {
                      return e + 0.5 * l
                    }),
                    c = Math.min((3 * (t - v.labelScale)) / v.labelScale, 1),
                    u = function () {
                      return 1 === v.labels || t <= v.labelScale
                        ? V
                        : H[e.id] || ne[e.id]
                        ? Math.max(c, V)
                        : 1 * c * (-1 * (0.5 * V - 1))
                    }
                  if (v.labelBackgroundColor && v.labelBackgroundOpacity) {
                    var d = u() * v.labelBackgroundOpacity,
                      h = oe(se, d)
                    ;(n.fillStyle = h),
                      n.fillRect.apply(n, [e.x - a[0] / 2, e.y - a[1] / 2].concat((0, s.Z)(a)))
                  }
                  var g = u()
                  ;(n.textAlign = 'center'), (n.textBaseline = 'middle')
                  var f = oe(le, g)
                  ;(n.fillStyle = f),
                    (n.font = ''.concat(l, 'px Sans-Serif')),
                    n.fillText(o, e.x, e.y)
                }
              }
            },
            nodeCanvasObjectMode: function () {
              return 'after'
            },
            linkDirectionalParticles: v.particles ? v.particlesNumber : void 0,
            linkDirectionalArrowLength: v.arrows ? v.arrowsLength : void 0,
            linkDirectionalArrowRelPos: v.arrowsPos,
            linkDirectionalArrowColor: v.arrowsColor
              ? function (e) {
                  return $(v.arrowsColor)
                }
              : void 0,
            linkColor: function (e) {
              var n = 'object' === typeof e.source ? e.source.id : e.source,
                t = 'object' === typeof e.target ? e.target.id : e.target,
                r = ye(e, Z.current),
                i = ye(e, Y.current),
                o = r || i,
                l = e
              return v.citeLinkColor && 'cite' === l.type
                ? $(v.citeLinkColor)
                : (function (e, n, t) {
                    if (!v.linkHighlight && !v.linkColorScheme && !t) {
                      var r = ie(e, n)
                      return $(r)
                    }
                    if (!t && !v.linkColorScheme) {
                      var i = ie(e, n)
                      return $(i)
                    }
                    if (!t) return $(v.linkColorScheme)
                    if (!v.linkHighlight && !v.linkColorScheme) {
                      var o = ie(e, n)
                      return $(o)
                    }
                    return v.linkHighlight
                      ? v.linkColorScheme
                        ? ee[v.linkColorScheme][v.linkHighlight](V)
                        : ee[ie(e, n)][v.linkHighlight](V)
                      : $(v.linkColorScheme)
                  })(n, t, o)
            },
            linkWidth: function (e) {
              var n = ye(e, Z.current),
                t = ye(e, Y.current)
              return n || t ? v.linkWidth * (1 + V * (v.highlightLinkSize - 1)) : v.linkWidth
            },
            linkDirectionalParticleWidth: v.particlesWidth,
            d3AlphaDecay: t.alphaDecay,
            d3AlphaMin: t.alphaMin,
            d3VelocityDecay: t.velocityDecay,
            onNodeClick: function (e, n) {
              var t = n.timeStamp - F.current < 400
              return (F.current = n.timeStamp), E(t ? 'double' : 'click', e)
            },
            onBackgroundClick: function () {
              R(null),
                0 !== C.nodeIds.length &&
                  y(function (e) {
                    return xe(xe({}, e), {}, { nodeIds: [] })
                  })
            },
            onNodeHover: function (e) {
              v.highlight && (T || (J(), X(0)), R(e))
            },
            onNodeRightClick: function (e) {
              E('right', e)
            },
          }
        return (0, l.jsx)('div', {
          children: a
            ? (0, l.jsx)(
                me,
                xe(
                  xe({ ref: n }, ae),
                  {},
                  {
                    nodeThreeObjectExtend: !0,
                    backgroundColor: D.colors.white,
                    nodeOpacity: v.nodeOpacity,
                    nodeResolution: v.nodeResolution,
                    linkOpacity: v.linkOpacity,
                    nodeThreeObject: function (e) {
                      if (v.labels && (!(v.labels < 3) || H[e.id])) {
                        var n = new he.Z(e.title.substring(0, 40))
                        return (
                          (n.color = $(v.labelTextColor)),
                          (n.backgroundColor = $(v.labelBackgroundColor)),
                          (n.padding = 2),
                          (n.textHeight = 8),
                          n
                        )
                      }
                    },
                  },
                ),
              )
            : (0, l.jsx)(
                je,
                xe(
                  xe({ ref: n }, ae),
                  {},
                  {
                    linkLineDash: function (e) {
                      var n = e
                      return v.citeDashes && 'cite' === n.type
                        ? [v.citeDashLength, v.citeGapLength]
                        : null
                    },
                  },
                ),
              ),
        })
      })
      function ye(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)
        )
      }
    },
    45301: function (e, n, t) {
      ;(window.__NEXT_P = window.__NEXT_P || []).push([
        '/',
        function () {
          return t(374)
        },
      ])
    },
  },
  function (e) {
    e.O(0, [774, 737, 446, 13, 888, 179], function () {
      return (n = 45301), e((e.s = n))
      var n
    })
    var n = e.O()
    _N_E = n
  },
])