xcode-graph 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/web-types.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "https://raw.githubusercontent.com/JetBrains/web-types/master/schema/web-types.json",
3
3
  "name": "xcode-graph",
4
- "version": "1.34.5",
4
+ "version": "0.1.0",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
@@ -14,9 +14,21 @@
14
14
  "events": [{ "name": "node-select", "type": "CustomEvent" }],
15
15
  "js": {
16
16
  "properties": [
17
- { "name": "nodes", "type": "GraphNode[]" },
18
- { "name": "edges", "type": "GraphEdge[]" },
19
- { "name": "selectedNode", "type": "GraphNode | null" }
17
+ {
18
+ "name": "nodes",
19
+ "description": "All graph nodes to expose for screen reader navigation",
20
+ "type": "GraphNode[]"
21
+ },
22
+ {
23
+ "name": "edges",
24
+ "description": "All graph edges to expose as an accessible table",
25
+ "type": "GraphEdge[]"
26
+ },
27
+ {
28
+ "name": "selectedNode",
29
+ "description": "Currently selected node for aria-selected state",
30
+ "type": "GraphNode | null"
31
+ }
20
32
  ],
21
33
  "events": [{ "name": "node-select", "type": "CustomEvent" }]
22
34
  }
@@ -28,28 +40,42 @@
28
40
  "attributes": [
29
41
  {
30
42
  "name": "search-query",
43
+ "description": "Active search query for dimming non-matching nodes",
31
44
  "value": { "type": "string", "default": "''" }
32
45
  },
33
- { "name": "view-mode", "value": { "type": "ViewMode" } },
34
- { "name": "zoom", "value": { "type": "number", "default": "1" } },
46
+ {
47
+ "name": "view-mode",
48
+ "description": "Display mode affecting edge visibility",
49
+ "value": { "type": "ViewMode" }
50
+ },
51
+ {
52
+ "name": "zoom",
53
+ "description": "Current zoom level (affects color saturation and label visibility)",
54
+ "value": { "type": "number", "default": "1" }
55
+ },
35
56
  {
36
57
  "name": "enable-animation",
58
+ "description": "Whether physics animation is enabled for layout settling",
37
59
  "value": { "type": "boolean", "default": "false" }
38
60
  },
39
61
  {
40
62
  "name": "show-direct-deps",
63
+ "description": "Whether to highlight direct dependency edges",
41
64
  "value": { "type": "boolean", "default": "false" }
42
65
  },
43
66
  {
44
67
  "name": "show-transitive-deps",
68
+ "description": "Whether to highlight transitive dependency edges",
45
69
  "value": { "type": "boolean", "default": "false" }
46
70
  },
47
71
  {
48
72
  "name": "show-direct-dependents",
73
+ "description": "Whether to highlight direct dependent edges",
49
74
  "value": { "type": "boolean", "default": "false" }
50
75
  },
51
76
  {
52
77
  "name": "show-transitive-dependents",
78
+ "description": "Whether to highlight transitive dependent edges",
53
79
  "value": { "type": "boolean", "default": "false" }
54
80
  }
55
81
  ],
@@ -91,29 +117,91 @@
91
117
  ],
92
118
  "js": {
93
119
  "properties": [
94
- { "name": "nodes", "type": "GraphNode[]" },
95
- { "name": "edges", "type": "GraphEdge[]" },
96
- { "name": "selectedNode", "type": "GraphNode | null" },
97
- { "name": "selectedCluster", "type": "string | null" },
98
- { "name": "hoveredNode", "type": "string | null" },
99
- { "name": "searchQuery", "type": "string" },
100
- { "name": "viewMode", "type": "ViewMode" },
101
- { "name": "zoom", "type": "number" },
102
- { "name": "enableAnimation", "type": "boolean" },
120
+ {
121
+ "name": "nodes",
122
+ "description": "Graph nodes to render",
123
+ "type": "GraphNode[]"
124
+ },
125
+ {
126
+ "name": "edges",
127
+ "description": "Graph edges to render",
128
+ "type": "GraphEdge[]"
129
+ },
130
+ {
131
+ "name": "selectedNode",
132
+ "description": "Currently selected node (highlighted with ring and connected edges)",
133
+ "type": "GraphNode | null"
134
+ },
135
+ {
136
+ "name": "selectedCluster",
137
+ "description": "Currently selected cluster ID (dims non-member nodes)",
138
+ "type": "string | null"
139
+ },
140
+ {
141
+ "name": "hoveredNode",
142
+ "description": "Currently hovered node ID (shows tooltip)",
143
+ "type": "string | null"
144
+ },
145
+ {
146
+ "name": "searchQuery",
147
+ "description": "Active search query for dimming non-matching nodes",
148
+ "type": "string"
149
+ },
150
+ {
151
+ "name": "viewMode",
152
+ "description": "Display mode affecting edge visibility",
153
+ "type": "ViewMode"
154
+ },
155
+ {
156
+ "name": "zoom",
157
+ "description": "Current zoom level (affects color saturation and label visibility)",
158
+ "type": "number"
159
+ },
160
+ {
161
+ "name": "enableAnimation",
162
+ "description": "Whether physics animation is enabled for layout settling",
163
+ "type": "boolean"
164
+ },
103
165
  {
104
166
  "name": "transitiveDeps",
167
+ "description": "Transitive dependency chain for the selected node",
105
168
  "type": "TransitiveResult | undefined"
106
169
  },
107
170
  {
108
171
  "name": "transitiveDependents",
172
+ "description": "Transitive dependent chain for the selected node",
109
173
  "type": "TransitiveResult | undefined"
110
174
  },
111
- { "name": "previewFilter", "type": "PreviewFilter | undefined" },
112
- { "name": "showDirectDeps", "type": "boolean" },
113
- { "name": "showTransitiveDeps", "type": "boolean" },
114
- { "name": "showDirectDependents", "type": "boolean" },
115
- { "name": "showTransitiveDependents", "type": "boolean" },
116
- { "name": "dimmedNodeIds", "type": "Set<string>" }
175
+ {
176
+ "name": "previewFilter",
177
+ "description": "Active filter preview (dims non-matching nodes on hover)",
178
+ "type": "PreviewFilter | undefined"
179
+ },
180
+ {
181
+ "name": "showDirectDeps",
182
+ "description": "Whether to highlight direct dependency edges",
183
+ "type": "boolean"
184
+ },
185
+ {
186
+ "name": "showTransitiveDeps",
187
+ "description": "Whether to highlight transitive dependency edges",
188
+ "type": "boolean"
189
+ },
190
+ {
191
+ "name": "showDirectDependents",
192
+ "description": "Whether to highlight direct dependent edges",
193
+ "type": "boolean"
194
+ },
195
+ {
196
+ "name": "showTransitiveDependents",
197
+ "description": "Whether to highlight transitive dependent edges",
198
+ "type": "boolean"
199
+ },
200
+ {
201
+ "name": "dimmedNodeIds",
202
+ "description": "Set of node IDs that should be visually dimmed",
203
+ "type": "Set<string>"
204
+ }
117
205
  ],
118
206
  "events": [
119
207
  {
@@ -166,8 +254,16 @@
166
254
  "description": "Zoom controls overlay\n---\n\n\n### **Events:**\n - **zoom-step** - Dispatched when a zoom step button is clicked (detail: number)\n- **zoom-reset** - Dispatched when the fit-to-view button is clicked",
167
255
  "doc-url": "",
168
256
  "attributes": [
169
- { "name": "zoom", "value": { "type": "number" } },
170
- { "name": "base-zoom", "value": { "type": "number" } }
257
+ {
258
+ "name": "zoom",
259
+ "description": "Current absolute zoom level",
260
+ "value": { "type": "number" }
261
+ },
262
+ {
263
+ "name": "base-zoom",
264
+ "description": "Baseline zoom level used for ratio display (fit-to-view = 1x)",
265
+ "value": { "type": "number" }
266
+ }
171
267
  ],
172
268
  "events": [
173
269
  {
@@ -183,8 +279,16 @@
183
279
  ],
184
280
  "js": {
185
281
  "properties": [
186
- { "name": "zoom", "type": "number" },
187
- { "name": "baseZoom", "type": "number" }
282
+ {
283
+ "name": "zoom",
284
+ "description": "Current absolute zoom level",
285
+ "type": "number"
286
+ },
287
+ {
288
+ "name": "baseZoom",
289
+ "description": "Baseline zoom level used for ratio display (fit-to-view = 1x)",
290
+ "type": "number"
291
+ }
188
292
  ],
189
293
  "events": [
190
294
  {
@@ -313,9 +417,21 @@
313
417
  "description": "Right sidebar header with collapse toggle\n---\n\n\n### **Events:**\n - **toggle-collapse** - Dispatched when the collapse button is clicked",
314
418
  "doc-url": "",
315
419
  "attributes": [
316
- { "name": "title", "value": { "type": "string" } },
317
- { "name": "is-collapsed", "value": { "type": "boolean" } },
318
- { "name": "has-active-filters", "value": { "type": "boolean" } }
420
+ {
421
+ "name": "title",
422
+ "description": "Title text displayed in the header",
423
+ "value": { "type": "string" }
424
+ },
425
+ {
426
+ "name": "is-collapsed",
427
+ "description": "Whether the sidebar is currently collapsed",
428
+ "value": { "type": "boolean" }
429
+ },
430
+ {
431
+ "name": "has-active-filters",
432
+ "description": "Whether any filters are currently active (shows indicator dot)",
433
+ "value": { "type": "boolean" }
434
+ }
319
435
  ],
320
436
  "events": [
321
437
  {
@@ -326,9 +442,21 @@
326
442
  ],
327
443
  "js": {
328
444
  "properties": [
329
- { "name": "title", "type": "string" },
330
- { "name": "isCollapsed", "type": "boolean" },
331
- { "name": "hasActiveFilters", "type": "boolean" }
445
+ {
446
+ "name": "title",
447
+ "description": "Title text displayed in the header",
448
+ "type": "string"
449
+ },
450
+ {
451
+ "name": "isCollapsed",
452
+ "description": "Whether the sidebar is currently collapsed",
453
+ "type": "boolean"
454
+ },
455
+ {
456
+ "name": "hasActiveFilters",
457
+ "description": "Whether any filters are currently active (shows indicator dot)",
458
+ "type": "boolean"
459
+ }
332
460
  ],
333
461
  "events": [
334
462
  {
@@ -344,10 +472,26 @@
344
472
  "description": "Collapsed sidebar icon bar with filter badges\n---\n\n\n### **Events:**\n - **expand-to-section** - Dispatched when a section icon is clicked (detail: { section })",
345
473
  "doc-url": "",
346
474
  "attributes": [
347
- { "name": "node-types-filter-size", "value": { "type": "number" } },
348
- { "name": "platforms-filter-size", "value": { "type": "number" } },
349
- { "name": "projects-filter-size", "value": { "type": "number" } },
350
- { "name": "packages-filter-size", "value": { "type": "number" } }
475
+ {
476
+ "name": "node-types-filter-size",
477
+ "description": "Number of currently selected node type filters",
478
+ "value": { "type": "number" }
479
+ },
480
+ {
481
+ "name": "platforms-filter-size",
482
+ "description": "Number of currently selected platform filters",
483
+ "value": { "type": "number" }
484
+ },
485
+ {
486
+ "name": "projects-filter-size",
487
+ "description": "Number of currently selected project filters",
488
+ "value": { "type": "number" }
489
+ },
490
+ {
491
+ "name": "packages-filter-size",
492
+ "description": "Number of currently selected package filters",
493
+ "value": { "type": "number" }
494
+ }
351
495
  ],
352
496
  "events": [
353
497
  {
@@ -358,16 +502,56 @@
358
502
  ],
359
503
  "js": {
360
504
  "properties": [
361
- { "name": "filteredNodes", "type": "GraphNode[]" },
362
- { "name": "filteredEdges", "type": "GraphEdge[]" },
363
- { "name": "typeCounts", "type": "Map<string, number>" },
364
- { "name": "platformCounts", "type": "Map<string, number>" },
365
- { "name": "projectCounts", "type": "Map<string, number>" },
366
- { "name": "packageCounts", "type": "Map<string, number>" },
367
- { "name": "nodeTypesFilterSize", "type": "number" },
368
- { "name": "platformsFilterSize", "type": "number" },
369
- { "name": "projectsFilterSize", "type": "number" },
370
- { "name": "packagesFilterSize", "type": "number" }
505
+ {
506
+ "name": "filteredNodes",
507
+ "description": "Nodes remaining after filter application",
508
+ "type": "GraphNode[]"
509
+ },
510
+ {
511
+ "name": "filteredEdges",
512
+ "description": "Edges remaining after filter application",
513
+ "type": "GraphEdge[]"
514
+ },
515
+ {
516
+ "name": "typeCounts",
517
+ "description": "Count of nodes per node type",
518
+ "type": "Map<string, number>"
519
+ },
520
+ {
521
+ "name": "platformCounts",
522
+ "description": "Count of nodes per platform",
523
+ "type": "Map<string, number>"
524
+ },
525
+ {
526
+ "name": "projectCounts",
527
+ "description": "Count of nodes per project",
528
+ "type": "Map<string, number>"
529
+ },
530
+ {
531
+ "name": "packageCounts",
532
+ "description": "Count of nodes per package",
533
+ "type": "Map<string, number>"
534
+ },
535
+ {
536
+ "name": "nodeTypesFilterSize",
537
+ "description": "Number of currently selected node type filters",
538
+ "type": "number"
539
+ },
540
+ {
541
+ "name": "platformsFilterSize",
542
+ "description": "Number of currently selected platform filters",
543
+ "type": "number"
544
+ },
545
+ {
546
+ "name": "projectsFilterSize",
547
+ "description": "Number of currently selected project filters",
548
+ "type": "number"
549
+ },
550
+ {
551
+ "name": "packagesFilterSize",
552
+ "description": "Number of currently selected package filters",
553
+ "type": "number"
554
+ }
371
555
  ],
372
556
  "events": [
373
557
  {
@@ -535,38 +719,69 @@
535
719
  "description": "Metrics grid with toggleable stats cards\n---\n\n\n### **Events:**\n - **card**\n- **toggle-direct-deps** - Dispatched when direct dependencies card is toggled\n- **toggle-transitive-deps** - Dispatched when transitive dependencies card is toggled\n- **toggle-direct-dependents** - Dispatched when direct dependents card is toggled\n- **toggle-transitive-dependents** - Dispatched when transitive dependents card is toggled",
536
720
  "doc-url": "",
537
721
  "attributes": [
538
- { "name": "dependencies-count", "value": { "type": "number" } },
539
- { "name": "dependents-count", "value": { "type": "number" } },
722
+ {
723
+ "name": "dependencies-count",
724
+ "description": "Number of direct dependencies (filtered)",
725
+ "value": { "type": "number" }
726
+ },
727
+ {
728
+ "name": "dependents-count",
729
+ "description": "Number of direct dependents (filtered)",
730
+ "value": { "type": "number" }
731
+ },
540
732
  {
541
733
  "name": "total-dependencies-count",
734
+ "description": "Total number of direct dependencies (unfiltered)",
735
+ "value": { "type": "number" }
736
+ },
737
+ {
738
+ "name": "total-dependents-count",
739
+ "description": "Total number of direct dependents (unfiltered)",
542
740
  "value": { "type": "number" }
543
741
  },
544
- { "name": "total-dependents-count", "value": { "type": "number" } },
545
742
  {
546
743
  "name": "transitive-dependencies-count",
744
+ "description": "Number of transitive dependencies",
547
745
  "value": { "type": "number" }
548
746
  },
549
747
  {
550
748
  "name": "transitive-dependents-count",
749
+ "description": "Number of transitive dependents",
551
750
  "value": { "type": "number" }
552
751
  },
553
- { "name": "is-high-fan-in", "value": { "type": "boolean" } },
554
- { "name": "is-high-fan-out", "value": { "type": "boolean" } },
555
- { "name": "active-direct-deps", "value": { "type": "boolean" } },
752
+ {
753
+ "name": "is-high-fan-in",
754
+ "description": "Whether this node has high fan-in (many dependents)",
755
+ "value": { "type": "boolean" }
756
+ },
757
+ {
758
+ "name": "is-high-fan-out",
759
+ "description": "Whether this node has high fan-out (many dependencies)",
760
+ "value": { "type": "boolean" }
761
+ },
762
+ {
763
+ "name": "active-direct-deps",
764
+ "description": "Whether the direct dependencies card is toggled on",
765
+ "value": { "type": "boolean" }
766
+ },
556
767
  {
557
768
  "name": "active-transitive-deps",
769
+ "description": "Whether the transitive dependencies card is toggled on",
558
770
  "value": { "type": "boolean" }
559
771
  },
560
772
  {
561
773
  "name": "active-direct-dependents",
774
+ "description": "Whether the direct dependents card is toggled on",
562
775
  "value": { "type": "boolean" }
563
776
  },
564
777
  {
565
778
  "name": "active-transitive-dependents",
779
+ "description": "Whether the transitive dependents card is toggled on",
566
780
  "value": { "type": "boolean" }
567
781
  },
568
782
  {
569
783
  "name": "expanded",
784
+ "description": "Whether the section starts expanded",
570
785
  "value": { "type": "boolean", "default": "true" }
571
786
  }
572
787
  ],
@@ -591,19 +806,71 @@
591
806
  ],
592
807
  "js": {
593
808
  "properties": [
594
- { "name": "dependenciesCount", "type": "number" },
595
- { "name": "dependentsCount", "type": "number" },
596
- { "name": "totalDependenciesCount", "type": "number" },
597
- { "name": "totalDependentsCount", "type": "number" },
598
- { "name": "transitiveDependenciesCount", "type": "number" },
599
- { "name": "transitiveDependentsCount", "type": "number" },
600
- { "name": "isHighFanIn", "type": "boolean" },
601
- { "name": "isHighFanOut", "type": "boolean" },
602
- { "name": "activeDirectDeps", "type": "boolean" },
603
- { "name": "activeTransitiveDeps", "type": "boolean" },
604
- { "name": "activeDirectDependents", "type": "boolean" },
605
- { "name": "activeTransitiveDependents", "type": "boolean" },
606
- { "name": "expanded", "type": "boolean" }
809
+ {
810
+ "name": "dependenciesCount",
811
+ "description": "Number of direct dependencies (filtered)",
812
+ "type": "number"
813
+ },
814
+ {
815
+ "name": "dependentsCount",
816
+ "description": "Number of direct dependents (filtered)",
817
+ "type": "number"
818
+ },
819
+ {
820
+ "name": "totalDependenciesCount",
821
+ "description": "Total number of direct dependencies (unfiltered)",
822
+ "type": "number"
823
+ },
824
+ {
825
+ "name": "totalDependentsCount",
826
+ "description": "Total number of direct dependents (unfiltered)",
827
+ "type": "number"
828
+ },
829
+ {
830
+ "name": "transitiveDependenciesCount",
831
+ "description": "Number of transitive dependencies",
832
+ "type": "number"
833
+ },
834
+ {
835
+ "name": "transitiveDependentsCount",
836
+ "description": "Number of transitive dependents",
837
+ "type": "number"
838
+ },
839
+ {
840
+ "name": "isHighFanIn",
841
+ "description": "Whether this node has high fan-in (many dependents)",
842
+ "type": "boolean"
843
+ },
844
+ {
845
+ "name": "isHighFanOut",
846
+ "description": "Whether this node has high fan-out (many dependencies)",
847
+ "type": "boolean"
848
+ },
849
+ {
850
+ "name": "activeDirectDeps",
851
+ "description": "Whether the direct dependencies card is toggled on",
852
+ "type": "boolean"
853
+ },
854
+ {
855
+ "name": "activeTransitiveDeps",
856
+ "description": "Whether the transitive dependencies card is toggled on",
857
+ "type": "boolean"
858
+ },
859
+ {
860
+ "name": "activeDirectDependents",
861
+ "description": "Whether the direct dependents card is toggled on",
862
+ "type": "boolean"
863
+ },
864
+ {
865
+ "name": "activeTransitiveDependents",
866
+ "description": "Whether the transitive dependents card is toggled on",
867
+ "type": "boolean"
868
+ },
869
+ {
870
+ "name": "expanded",
871
+ "description": "Whether the section starts expanded",
872
+ "type": "boolean"
873
+ }
607
874
  ],
608
875
  "events": [
609
876
  { "name": "card", "type": "CustomEvent" },
@@ -812,9 +1079,14 @@
812
1079
  "description": "Node details header with icon, badges, and tags\n---\n\n\n### **Events:**\n - **cluster-click** - Dispatched when a cluster badge is clicked (detail: { clusterId })\n- **close** - Dispatched when the back/close button is clicked",
813
1080
  "doc-url": "",
814
1081
  "attributes": [
815
- { "name": "zoom", "value": { "type": "number" } },
1082
+ {
1083
+ "name": "zoom",
1084
+ "description": "Current canvas zoom level for color adjustments",
1085
+ "value": { "type": "number" }
1086
+ },
816
1087
  {
817
1088
  "name": "show-cluster-link",
1089
+ "description": "Whether clicking back navigates to the parent cluster instead of closing",
818
1090
  "value": { "type": "boolean", "default": "true" }
819
1091
  }
820
1092
  ],
@@ -832,9 +1104,21 @@
832
1104
  ],
833
1105
  "js": {
834
1106
  "properties": [
835
- { "name": "node", "type": "GraphNode" },
836
- { "name": "zoom", "type": "number" },
837
- { "name": "showClusterLink", "type": "boolean" }
1107
+ {
1108
+ "name": "node",
1109
+ "description": "The graph node to display in the header",
1110
+ "type": "GraphNode"
1111
+ },
1112
+ {
1113
+ "name": "zoom",
1114
+ "description": "Current canvas zoom level for color adjustments",
1115
+ "type": "number"
1116
+ },
1117
+ {
1118
+ "name": "showClusterLink",
1119
+ "description": "Whether clicking back navigates to the parent cluster instead of closing",
1120
+ "type": "boolean"
1121
+ }
838
1122
  ],
839
1123
  "events": [
840
1124
  {
@@ -890,14 +1174,23 @@
890
1174
  "attributes": [
891
1175
  {
892
1176
  "name": "expanded",
1177
+ "description": "Whether the section starts expanded",
893
1178
  "value": { "type": "boolean", "default": "true" }
894
1179
  }
895
1180
  ],
896
1181
  "events": [],
897
1182
  "js": {
898
1183
  "properties": [
899
- { "name": "node", "type": "GraphNode" },
900
- { "name": "expanded", "type": "boolean" }
1184
+ {
1185
+ "name": "node",
1186
+ "description": "The graph node to display information for",
1187
+ "type": "GraphNode"
1188
+ },
1189
+ {
1190
+ "name": "expanded",
1191
+ "description": "Whether the section starts expanded",
1192
+ "type": "boolean"
1193
+ }
901
1194
  ],
902
1195
  "events": []
903
1196
  }
@@ -907,9 +1200,21 @@
907
1200
  "description": "Node list row with icon, name, and chevron\n---\n\n\n### **Events:**\n - **row-select** - Dispatched when the row is clicked (detail: { node })\n- **row-hover** - Dispatched on mouse enter (detail: { nodeId })\n- **row-hover-end** - Dispatched on mouse leave",
908
1201
  "doc-url": "",
909
1202
  "attributes": [
910
- { "name": "subtitle", "value": { "type": "string" } },
911
- { "name": "zoom", "value": { "type": "number", "default": "1" } },
912
- { "name": "is-selected", "value": { "type": "boolean" } }
1203
+ {
1204
+ "name": "subtitle",
1205
+ "description": "Optional subtitle text shown below the node name",
1206
+ "value": { "type": "string" }
1207
+ },
1208
+ {
1209
+ "name": "zoom",
1210
+ "description": "Current canvas zoom level for color adjustments",
1211
+ "value": { "type": "number", "default": "1" }
1212
+ },
1213
+ {
1214
+ "name": "is-selected",
1215
+ "description": "Whether this row is currently selected",
1216
+ "value": { "type": "boolean" }
1217
+ }
913
1218
  ],
914
1219
  "events": [
915
1220
  {
@@ -930,10 +1235,26 @@
930
1235
  ],
931
1236
  "js": {
932
1237
  "properties": [
933
- { "name": "node", "type": "GraphNode" },
934
- { "name": "subtitle", "type": "string" },
935
- { "name": "zoom", "type": "number" },
936
- { "name": "isSelected", "type": "boolean" }
1238
+ {
1239
+ "name": "node",
1240
+ "description": "The graph node to display in this row",
1241
+ "type": "GraphNode"
1242
+ },
1243
+ {
1244
+ "name": "subtitle",
1245
+ "description": "Optional subtitle text shown below the node name",
1246
+ "type": "string"
1247
+ },
1248
+ {
1249
+ "name": "zoom",
1250
+ "description": "Current canvas zoom level for color adjustments",
1251
+ "type": "number"
1252
+ },
1253
+ {
1254
+ "name": "isSelected",
1255
+ "description": "Whether this row is currently selected",
1256
+ "type": "boolean"
1257
+ }
937
1258
  ],
938
1259
  "events": [
939
1260
  {
@@ -1050,20 +1371,31 @@
1050
1371
  "description": "Node details panel with metrics, info, and dependency lists\n---\n\n\n### **Events:**\n - **eventName**\n- **close** - Dispatched when the panel close/back button is clicked\n- **node-select** - Dispatched when a dependency or dependent node is clicked (detail: { node })\n- **cluster-select** - Dispatched when a cluster badge is clicked (detail: { clusterId })\n- **node-hover** - Dispatched when hovering a dependency or dependent node (detail: { nodeId })\n- **toggle-direct-deps** - Dispatched when the direct dependencies metric card is toggled\n- **toggle-transitive-deps** - Dispatched when the transitive dependencies metric card is toggled\n- **toggle-direct-dependents** - Dispatched when the direct dependents metric card is toggled\n- **toggle-transitive-dependents** - Dispatched when the transitive dependents metric card is toggled",
1051
1372
  "doc-url": "",
1052
1373
  "attributes": [
1053
- { "name": "active-direct-deps", "value": { "type": "boolean" } },
1374
+ {
1375
+ "name": "active-direct-deps",
1376
+ "description": "Whether direct dependencies highlighting is active",
1377
+ "value": { "type": "boolean" }
1378
+ },
1054
1379
  {
1055
1380
  "name": "active-transitive-deps",
1381
+ "description": "Whether transitive dependencies highlighting is active",
1056
1382
  "value": { "type": "boolean" }
1057
1383
  },
1058
1384
  {
1059
1385
  "name": "active-direct-dependents",
1386
+ "description": "Whether direct dependents highlighting is active",
1060
1387
  "value": { "type": "boolean" }
1061
1388
  },
1062
1389
  {
1063
1390
  "name": "active-transitive-dependents",
1391
+ "description": "Whether transitive dependents highlighting is active",
1064
1392
  "value": { "type": "boolean" }
1065
1393
  },
1066
- { "name": "zoom", "value": { "type": "number" } }
1394
+ {
1395
+ "name": "zoom",
1396
+ "description": "Current canvas zoom level for color adjustments",
1397
+ "value": { "type": "number" }
1398
+ }
1067
1399
  ],
1068
1400
  "events": [
1069
1401
  { "name": "eventName", "type": "CustomEvent" },
@@ -1102,42 +1434,82 @@
1102
1434
  ],
1103
1435
  "js": {
1104
1436
  "properties": [
1105
- { "name": "node", "type": "GraphNode" },
1106
- { "name": "allNodes", "type": "GraphNode[]" },
1107
- { "name": "edges", "type": "GraphEdge[]" },
1108
- { "name": "filteredEdges", "type": "GraphEdge[] | undefined" },
1109
- { "name": "clusters", "type": "Cluster[] | undefined" },
1110
- { "name": "activeDirectDeps", "type": "boolean" },
1111
- { "name": "activeTransitiveDeps", "type": "boolean" },
1112
- { "name": "activeDirectDependents", "type": "boolean" },
1113
- { "name": "activeTransitiveDependents", "type": "boolean" },
1114
- { "name": "zoom", "type": "number" }
1115
- ],
1116
- "events": [
1117
- { "name": "eventName", "type": "CustomEvent" },
1118
1437
  {
1119
- "name": "close",
1120
- "description": "Dispatched when the panel close/back button is clicked"
1438
+ "name": "node",
1439
+ "description": "The node to display details for",
1440
+ "type": "GraphNode"
1121
1441
  },
1122
1442
  {
1123
- "name": "node-select",
1124
- "description": "Dispatched when a dependency or dependent node is clicked (detail: { node })"
1443
+ "name": "allNodes",
1444
+ "description": "All nodes in the graph (for dependency resolution)",
1445
+ "type": "GraphNode[]"
1125
1446
  },
1126
1447
  {
1127
- "name": "cluster-select",
1128
- "description": "Dispatched when a cluster badge is clicked (detail: { clusterId })"
1448
+ "name": "edges",
1449
+ "description": "All edges in the graph",
1450
+ "type": "GraphEdge[]"
1129
1451
  },
1130
1452
  {
1131
- "name": "node-hover",
1132
- "description": "Dispatched when hovering a dependency or dependent node (detail: { nodeId })"
1453
+ "name": "filteredEdges",
1454
+ "description": "Edges remaining after filter application",
1455
+ "type": "GraphEdge[] | undefined"
1133
1456
  },
1134
1457
  {
1135
- "name": "toggle-direct-deps",
1136
- "description": "Dispatched when the direct dependencies metric card is toggled"
1458
+ "name": "clusters",
1459
+ "description": "Available clusters for cluster navigation",
1460
+ "type": "Cluster[] | undefined"
1137
1461
  },
1138
1462
  {
1139
- "name": "toggle-transitive-deps",
1140
- "description": "Dispatched when the transitive dependencies metric card is toggled"
1463
+ "name": "activeDirectDeps",
1464
+ "description": "Whether direct dependencies highlighting is active",
1465
+ "type": "boolean"
1466
+ },
1467
+ {
1468
+ "name": "activeTransitiveDeps",
1469
+ "description": "Whether transitive dependencies highlighting is active",
1470
+ "type": "boolean"
1471
+ },
1472
+ {
1473
+ "name": "activeDirectDependents",
1474
+ "description": "Whether direct dependents highlighting is active",
1475
+ "type": "boolean"
1476
+ },
1477
+ {
1478
+ "name": "activeTransitiveDependents",
1479
+ "description": "Whether transitive dependents highlighting is active",
1480
+ "type": "boolean"
1481
+ },
1482
+ {
1483
+ "name": "zoom",
1484
+ "description": "Current canvas zoom level for color adjustments",
1485
+ "type": "number"
1486
+ }
1487
+ ],
1488
+ "events": [
1489
+ { "name": "eventName", "type": "CustomEvent" },
1490
+ {
1491
+ "name": "close",
1492
+ "description": "Dispatched when the panel close/back button is clicked"
1493
+ },
1494
+ {
1495
+ "name": "node-select",
1496
+ "description": "Dispatched when a dependency or dependent node is clicked (detail: { node })"
1497
+ },
1498
+ {
1499
+ "name": "cluster-select",
1500
+ "description": "Dispatched when a cluster badge is clicked (detail: { clusterId })"
1501
+ },
1502
+ {
1503
+ "name": "node-hover",
1504
+ "description": "Dispatched when hovering a dependency or dependent node (detail: { nodeId })"
1505
+ },
1506
+ {
1507
+ "name": "toggle-direct-deps",
1508
+ "description": "Dispatched when the direct dependencies metric card is toggled"
1509
+ },
1510
+ {
1511
+ "name": "toggle-transitive-deps",
1512
+ "description": "Dispatched when the transitive dependencies metric card is toggled"
1141
1513
  },
1142
1514
  {
1143
1515
  "name": "toggle-direct-dependents",
@@ -1226,14 +1598,31 @@
1226
1598
  "description": "Cluster details panel header with icon, badges, and path\n---\n\n\n### **Events:**\n - **back** - Dispatched when back button is clicked",
1227
1599
  "doc-url": "",
1228
1600
  "attributes": [
1229
- { "name": "cluster-name", "value": { "type": "string" } },
1601
+ {
1602
+ "name": "cluster-name",
1603
+ "description": "Display name of the cluster",
1604
+ "value": { "type": "string" }
1605
+ },
1230
1606
  {
1231
1607
  "name": "cluster-type",
1608
+ "description": "Whether this cluster is a package or project",
1232
1609
  "value": { "type": "'package' | 'project'" }
1233
1610
  },
1234
- { "name": "cluster-color", "value": { "type": "string" } },
1235
- { "name": "cluster-path", "value": { "type": "string" } },
1236
- { "name": "is-external", "value": { "type": "boolean" } }
1611
+ {
1612
+ "name": "cluster-color",
1613
+ "description": "Accent color for the cluster icon and badges",
1614
+ "value": { "type": "string" }
1615
+ },
1616
+ {
1617
+ "name": "cluster-path",
1618
+ "description": "Filesystem path to the cluster source (used for source type detection and copy)",
1619
+ "value": { "type": "string" }
1620
+ },
1621
+ {
1622
+ "name": "is-external",
1623
+ "description": "Whether the cluster comes from an external dependency",
1624
+ "value": { "type": "boolean" }
1625
+ }
1237
1626
  ],
1238
1627
  "events": [
1239
1628
  {
@@ -1243,11 +1632,31 @@
1243
1632
  ],
1244
1633
  "js": {
1245
1634
  "properties": [
1246
- { "name": "clusterName", "type": "string" },
1247
- { "name": "clusterType", "type": "'package' | 'project'" },
1248
- { "name": "clusterColor", "type": "string" },
1249
- { "name": "clusterPath", "type": "string" },
1250
- { "name": "isExternal", "type": "boolean" }
1635
+ {
1636
+ "name": "clusterName",
1637
+ "description": "Display name of the cluster",
1638
+ "type": "string"
1639
+ },
1640
+ {
1641
+ "name": "clusterType",
1642
+ "description": "Whether this cluster is a package or project",
1643
+ "type": "'package' | 'project'"
1644
+ },
1645
+ {
1646
+ "name": "clusterColor",
1647
+ "description": "Accent color for the cluster icon and badges",
1648
+ "type": "string"
1649
+ },
1650
+ {
1651
+ "name": "clusterPath",
1652
+ "description": "Filesystem path to the cluster source (used for source type detection and copy)",
1653
+ "type": "string"
1654
+ },
1655
+ {
1656
+ "name": "isExternal",
1657
+ "description": "Whether the cluster comes from an external dependency",
1658
+ "type": "boolean"
1659
+ }
1251
1660
  ],
1252
1661
  "events": [
1253
1662
  {
@@ -1262,17 +1671,39 @@
1262
1671
  "description": "Collapsible cluster metrics with stats cards and breakdowns\n---\n\n\n### **Events:**\n - **card**\n- **toggle-direct-deps** - Dispatched when dependencies card is toggled\n- **toggle-direct-dependents** - Dispatched when dependents card is toggled",
1263
1672
  "doc-url": "",
1264
1673
  "attributes": [
1265
- { "name": "filtered-dependencies", "value": { "type": "number" } },
1266
- { "name": "total-dependencies", "value": { "type": "number" } },
1267
- { "name": "filtered-dependents", "value": { "type": "number" } },
1268
- { "name": "total-dependents", "value": { "type": "number" } },
1269
- { "name": "active-direct-deps", "value": { "type": "boolean" } },
1674
+ {
1675
+ "name": "filtered-dependencies",
1676
+ "description": "Number of dependencies visible after filtering",
1677
+ "value": { "type": "number" }
1678
+ },
1679
+ {
1680
+ "name": "total-dependencies",
1681
+ "description": "Total number of dependencies before filtering",
1682
+ "value": { "type": "number" }
1683
+ },
1684
+ {
1685
+ "name": "filtered-dependents",
1686
+ "description": "Number of dependents visible after filtering",
1687
+ "value": { "type": "number" }
1688
+ },
1689
+ {
1690
+ "name": "total-dependents",
1691
+ "description": "Total number of dependents before filtering",
1692
+ "value": { "type": "number" }
1693
+ },
1694
+ {
1695
+ "name": "active-direct-deps",
1696
+ "description": "Whether the direct dependencies card is toggled on",
1697
+ "value": { "type": "boolean" }
1698
+ },
1270
1699
  {
1271
1700
  "name": "active-direct-dependents",
1701
+ "description": "Whether the direct dependents card is toggled on",
1272
1702
  "value": { "type": "boolean" }
1273
1703
  },
1274
1704
  {
1275
1705
  "name": "expanded",
1706
+ "description": "Whether the section starts expanded",
1276
1707
  "value": { "type": "boolean", "default": "true" }
1277
1708
  }
1278
1709
  ],
@@ -1289,19 +1720,51 @@
1289
1720
  ],
1290
1721
  "js": {
1291
1722
  "properties": [
1292
- { "name": "filteredDependencies", "type": "number" },
1293
- { "name": "totalDependencies", "type": "number" },
1294
- { "name": "filteredDependents", "type": "number" },
1295
- { "name": "totalDependents", "type": "number" },
1296
- { "name": "activeDirectDeps", "type": "boolean" },
1297
- { "name": "activeDirectDependents", "type": "boolean" },
1298
- { "name": "platforms", "type": "Set<string>" },
1723
+ {
1724
+ "name": "filteredDependencies",
1725
+ "description": "Number of dependencies visible after filtering",
1726
+ "type": "number"
1727
+ },
1728
+ {
1729
+ "name": "totalDependencies",
1730
+ "description": "Total number of dependencies before filtering",
1731
+ "type": "number"
1732
+ },
1733
+ {
1734
+ "name": "filteredDependents",
1735
+ "description": "Number of dependents visible after filtering",
1736
+ "type": "number"
1737
+ },
1738
+ {
1739
+ "name": "totalDependents",
1740
+ "description": "Total number of dependents before filtering",
1741
+ "type": "number"
1742
+ },
1743
+ {
1744
+ "name": "activeDirectDeps",
1745
+ "description": "Whether the direct dependencies card is toggled on",
1746
+ "type": "boolean"
1747
+ },
1748
+ {
1749
+ "name": "activeDirectDependents",
1750
+ "description": "Whether the direct dependents card is toggled on",
1751
+ "type": "boolean"
1752
+ },
1753
+ {
1754
+ "name": "platforms",
1755
+ "description": "Set of platform names present in this cluster",
1756
+ "type": "Set<string>"
1757
+ },
1299
1758
  {
1300
1759
  "name": "targetBreakdown",
1301
1760
  "description": "Target breakdown by node type (e.g., { framework: 3, library: 2 })",
1302
1761
  "type": "Record<string, number>"
1303
1762
  },
1304
- { "name": "expanded", "type": "boolean" }
1763
+ {
1764
+ "name": "expanded",
1765
+ "description": "Whether the section starts expanded",
1766
+ "type": "boolean"
1767
+ }
1305
1768
  ],
1306
1769
  "events": [
1307
1770
  { "name": "card", "type": "CustomEvent" },
@@ -1321,9 +1784,21 @@
1321
1784
  "description": "Collapsible cluster targets list grouped by node type\n---\n\n\n### **Events:**\n - **node-select** - Dispatched when a target is clicked (detail: { node })\n- **node-hover** - Dispatched on hover (detail: { nodeId })\n\n### **Methods:**\n \n\n",
1322
1785
  "doc-url": "",
1323
1786
  "attributes": [
1324
- { "name": "filtered-targets-count", "value": { "type": "number" } },
1325
- { "name": "total-targets-count", "value": { "type": "number" } },
1326
- { "name": "zoom", "value": { "type": "number" } },
1787
+ {
1788
+ "name": "filtered-targets-count",
1789
+ "description": "Number of targets visible after filtering",
1790
+ "value": { "type": "number" }
1791
+ },
1792
+ {
1793
+ "name": "total-targets-count",
1794
+ "description": "Total number of targets in the cluster",
1795
+ "value": { "type": "number" }
1796
+ },
1797
+ {
1798
+ "name": "zoom",
1799
+ "description": "Current canvas zoom level for color adjustments",
1800
+ "value": { "type": "number" }
1801
+ },
1327
1802
  {
1328
1803
  "name": "expanded",
1329
1804
  "description": "Whether to start expanded (default: true)",
@@ -1344,12 +1819,36 @@
1344
1819
  ],
1345
1820
  "js": {
1346
1821
  "properties": [
1347
- { "name": "clusterNodes", "type": "GraphNode[]" },
1348
- { "name": "nodesByType", "type": "Record<string, GraphNode[]>" },
1349
- { "name": "filteredTargetsCount", "type": "number" },
1350
- { "name": "totalTargetsCount", "type": "number" },
1351
- { "name": "edges", "type": "GraphEdge[]" },
1352
- { "name": "zoom", "type": "number" },
1822
+ {
1823
+ "name": "clusterNodes",
1824
+ "description": "All nodes belonging to this cluster",
1825
+ "type": "GraphNode[]"
1826
+ },
1827
+ {
1828
+ "name": "nodesByType",
1829
+ "description": "Nodes grouped by their type (e.g., framework, library)",
1830
+ "type": "Record<string, GraphNode[]>"
1831
+ },
1832
+ {
1833
+ "name": "filteredTargetsCount",
1834
+ "description": "Number of targets visible after filtering",
1835
+ "type": "number"
1836
+ },
1837
+ {
1838
+ "name": "totalTargetsCount",
1839
+ "description": "Total number of targets in the cluster",
1840
+ "type": "number"
1841
+ },
1842
+ {
1843
+ "name": "edges",
1844
+ "description": "All edges in the graph (for dependency counting)",
1845
+ "type": "GraphEdge[]"
1846
+ },
1847
+ {
1848
+ "name": "zoom",
1849
+ "description": "Current canvas zoom level for color adjustments",
1850
+ "type": "number"
1851
+ },
1353
1852
  {
1354
1853
  "name": "expanded",
1355
1854
  "description": "Whether to start expanded (default: true)",
@@ -1375,12 +1874,21 @@
1375
1874
  "description": "Cluster details panel with header, stats, and targets\n---\n\n\n### **Events:**\n - **eventName**\n- **close** - Dispatched when the back button is clicked\n- **node-select** - Dispatched when a target node is selected (detail: { node })\n- **node-hover** - Dispatched when a target node is hovered (detail: { nodeId })",
1376
1875
  "doc-url": "",
1377
1876
  "attributes": [
1378
- { "name": "active-direct-deps", "value": { "type": "boolean" } },
1877
+ {
1878
+ "name": "active-direct-deps",
1879
+ "description": "Whether direct dependencies highlighting is active",
1880
+ "value": { "type": "boolean" }
1881
+ },
1379
1882
  {
1380
1883
  "name": "active-direct-dependents",
1884
+ "description": "Whether direct dependents highlighting is active",
1381
1885
  "value": { "type": "boolean" }
1382
1886
  },
1383
- { "name": "zoom", "value": { "type": "number" } }
1887
+ {
1888
+ "name": "zoom",
1889
+ "description": "Current canvas zoom level for color adjustments",
1890
+ "value": { "type": "number" }
1891
+ }
1384
1892
  ],
1385
1893
  "events": [
1386
1894
  { "name": "eventName", "type": "CustomEvent" },
@@ -1399,14 +1907,46 @@
1399
1907
  ],
1400
1908
  "js": {
1401
1909
  "properties": [
1402
- { "name": "cluster", "type": "Cluster" },
1403
- { "name": "clusterNodes", "type": "GraphNode[]" },
1404
- { "name": "allNodes", "type": "GraphNode[]" },
1405
- { "name": "edges", "type": "GraphEdge[]" },
1406
- { "name": "filteredEdges", "type": "GraphEdge[] | undefined" },
1407
- { "name": "activeDirectDeps", "type": "boolean" },
1408
- { "name": "activeDirectDependents", "type": "boolean" },
1409
- { "name": "zoom", "type": "number" }
1910
+ {
1911
+ "name": "cluster",
1912
+ "description": "The cluster to display details for",
1913
+ "type": "Cluster"
1914
+ },
1915
+ {
1916
+ "name": "clusterNodes",
1917
+ "description": "Nodes belonging to this cluster",
1918
+ "type": "GraphNode[]"
1919
+ },
1920
+ {
1921
+ "name": "allNodes",
1922
+ "description": "All nodes in the graph (for dependency resolution)",
1923
+ "type": "GraphNode[]"
1924
+ },
1925
+ {
1926
+ "name": "edges",
1927
+ "description": "All edges in the graph",
1928
+ "type": "GraphEdge[]"
1929
+ },
1930
+ {
1931
+ "name": "filteredEdges",
1932
+ "description": "Edges remaining after filter application",
1933
+ "type": "GraphEdge[] | undefined"
1934
+ },
1935
+ {
1936
+ "name": "activeDirectDeps",
1937
+ "description": "Whether direct dependencies highlighting is active",
1938
+ "type": "boolean"
1939
+ },
1940
+ {
1941
+ "name": "activeDirectDependents",
1942
+ "description": "Whether direct dependents highlighting is active",
1943
+ "type": "boolean"
1944
+ },
1945
+ {
1946
+ "name": "zoom",
1947
+ "description": "Current canvas zoom level for color adjustments",
1948
+ "type": "number"
1949
+ }
1410
1950
  ],
1411
1951
  "events": [
1412
1952
  { "name": "eventName", "type": "CustomEvent" },
@@ -1511,12 +2051,36 @@
1511
2051
  "description": "Collapsible filter section with toggleable checkbox items\n---\n\n\n### **Events:**\n - **section-toggle** - Dispatched when the section header is clicked\n- **item-toggle** - Dispatched when an item checkbox is toggled (detail: { key, checked })\n- **preview-change** - Dispatched on item hover for filter preview (detail: { type, value } or null)\n\n### **Slots:**\n - **icon** - Icon to display in the section header",
1512
2052
  "doc-url": "",
1513
2053
  "attributes": [
1514
- { "name": "id", "value": { "type": "string" } },
1515
- { "name": "title", "value": { "type": "string" } },
1516
- { "name": "icon-name", "value": { "type": "string" } },
1517
- { "name": "is-expanded", "value": { "type": "boolean" } },
1518
- { "name": "filter-type", "value": { "type": "FilterType" } },
1519
- { "name": "zoom", "value": { "type": "number" } }
2054
+ {
2055
+ "name": "id",
2056
+ "description": "Unique section identifier",
2057
+ "value": { "type": "string" }
2058
+ },
2059
+ {
2060
+ "name": "title",
2061
+ "description": "Display title for the section header",
2062
+ "value": { "type": "string" }
2063
+ },
2064
+ {
2065
+ "name": "icon-name",
2066
+ "description": "Icon name for the section header slot",
2067
+ "value": { "type": "string" }
2068
+ },
2069
+ {
2070
+ "name": "is-expanded",
2071
+ "description": "Whether the section is currently expanded",
2072
+ "value": { "type": "boolean" }
2073
+ },
2074
+ {
2075
+ "name": "filter-type",
2076
+ "description": "The type of filter this section controls",
2077
+ "value": { "type": "FilterType" }
2078
+ },
2079
+ {
2080
+ "name": "zoom",
2081
+ "description": "Current canvas zoom level for color adjustments",
2082
+ "value": { "type": "number" }
2083
+ }
1520
2084
  ],
1521
2085
  "slots": [
1522
2086
  {
@@ -1543,14 +2107,46 @@
1543
2107
  ],
1544
2108
  "js": {
1545
2109
  "properties": [
1546
- { "name": "id", "type": "string" },
1547
- { "name": "title", "type": "string" },
1548
- { "name": "iconName", "type": "string" },
1549
- { "name": "isExpanded", "type": "boolean" },
1550
- { "name": "items", "type": "FilterItem[]" },
1551
- { "name": "selectedItems", "type": "Set<string>" },
1552
- { "name": "filterType", "type": "FilterType" },
1553
- { "name": "zoom", "type": "number" }
2110
+ {
2111
+ "name": "id",
2112
+ "description": "Unique section identifier",
2113
+ "type": "string"
2114
+ },
2115
+ {
2116
+ "name": "title",
2117
+ "description": "Display title for the section header",
2118
+ "type": "string"
2119
+ },
2120
+ {
2121
+ "name": "iconName",
2122
+ "description": "Icon name for the section header slot",
2123
+ "type": "string"
2124
+ },
2125
+ {
2126
+ "name": "isExpanded",
2127
+ "description": "Whether the section is currently expanded",
2128
+ "type": "boolean"
2129
+ },
2130
+ {
2131
+ "name": "items",
2132
+ "description": "Filter items to display as toggleable checkboxes",
2133
+ "type": "FilterItem[]"
2134
+ },
2135
+ {
2136
+ "name": "selectedItems",
2137
+ "description": "Set of currently selected item keys",
2138
+ "type": "Set<string>"
2139
+ },
2140
+ {
2141
+ "name": "filterType",
2142
+ "description": "The type of filter this section controls",
2143
+ "type": "FilterType"
2144
+ },
2145
+ {
2146
+ "name": "zoom",
2147
+ "description": "Current canvas zoom level for color adjustments",
2148
+ "type": "number"
2149
+ }
1554
2150
  ],
1555
2151
  "events": [
1556
2152
  {
@@ -1614,11 +2210,31 @@
1614
2210
  "events": [],
1615
2211
  "js": {
1616
2212
  "properties": [
1617
- { "name": "allNodes", "type": "GraphNode[]" },
1618
- { "name": "allEdges", "type": "GraphEdge[]" },
1619
- { "name": "filteredNodes", "type": "GraphNode[]" },
1620
- { "name": "filteredEdges", "type": "GraphEdge[]" },
1621
- { "name": "clusters", "type": "Cluster[] | undefined" }
2213
+ {
2214
+ "name": "allNodes",
2215
+ "description": "All nodes in the graph (unfiltered)",
2216
+ "type": "GraphNode[]"
2217
+ },
2218
+ {
2219
+ "name": "allEdges",
2220
+ "description": "All edges in the graph (unfiltered)",
2221
+ "type": "GraphEdge[]"
2222
+ },
2223
+ {
2224
+ "name": "filteredNodes",
2225
+ "description": "Nodes remaining after filter and search application",
2226
+ "type": "GraphNode[]"
2227
+ },
2228
+ {
2229
+ "name": "filteredEdges",
2230
+ "description": "Edges remaining after filter and search application",
2231
+ "type": "GraphEdge[]"
2232
+ },
2233
+ {
2234
+ "name": "clusters",
2235
+ "description": "Available clusters from the layout engine",
2236
+ "type": "Cluster[] | undefined"
2237
+ }
1622
2238
  ],
1623
2239
  "events": []
1624
2240
  }
@@ -1637,15 +2253,51 @@
1637
2253
  "events": [],
1638
2254
  "js": {
1639
2255
  "properties": [
1640
- { "name": "displayNodes", "type": "GraphNode[]" },
1641
- { "name": "displayEdges", "type": "GraphEdge[]" },
1642
- { "name": "filteredNodes", "type": "GraphNode[]" },
1643
- { "name": "filteredEdges", "type": "GraphEdge[]" },
1644
- { "name": "allNodes", "type": "GraphNode[]" },
1645
- { "name": "allEdges", "type": "GraphEdge[]" },
1646
- { "name": "clusters", "type": "Cluster[] | undefined" },
1647
- { "name": "transitiveDeps", "type": "TransitiveResult" },
1648
- { "name": "transitiveDependents", "type": "TransitiveResult" }
2256
+ {
2257
+ "name": "displayNodes",
2258
+ "description": "Nodes to render on the canvas (after search/filter/highlight processing)",
2259
+ "type": "GraphNode[]"
2260
+ },
2261
+ {
2262
+ "name": "displayEdges",
2263
+ "description": "Edges to render on the canvas (after search/filter/highlight processing)",
2264
+ "type": "GraphEdge[]"
2265
+ },
2266
+ {
2267
+ "name": "filteredNodes",
2268
+ "description": "Nodes remaining after filter application (for sidebar stats)",
2269
+ "type": "GraphNode[]"
2270
+ },
2271
+ {
2272
+ "name": "filteredEdges",
2273
+ "description": "Edges remaining after filter application (for sidebar stats)",
2274
+ "type": "GraphEdge[]"
2275
+ },
2276
+ {
2277
+ "name": "allNodes",
2278
+ "description": "All nodes in the graph (unfiltered, for sidebar filter computation)",
2279
+ "type": "GraphNode[]"
2280
+ },
2281
+ {
2282
+ "name": "allEdges",
2283
+ "description": "All edges in the graph (unfiltered, for sidebar filter computation)",
2284
+ "type": "GraphEdge[]"
2285
+ },
2286
+ {
2287
+ "name": "clusters",
2288
+ "description": "Available clusters from the layout engine",
2289
+ "type": "Cluster[] | undefined"
2290
+ },
2291
+ {
2292
+ "name": "transitiveDeps",
2293
+ "description": "Transitive dependency chain for the selected node",
2294
+ "type": "TransitiveResult"
2295
+ },
2296
+ {
2297
+ "name": "transitiveDependents",
2298
+ "description": "Transitive dependent chain for the selected node",
2299
+ "type": "TransitiveResult"
2300
+ }
1649
2301
  ],
1650
2302
  "events": []
1651
2303
  }
@@ -1657,6 +2309,7 @@
1657
2309
  "attributes": [
1658
2310
  {
1659
2311
  "name": "visible",
2312
+ "description": "Whether the toast is currently visible (triggers slide-in animation)",
1660
2313
  "value": { "type": "boolean", "default": "false" }
1661
2314
  }
1662
2315
  ],
@@ -1674,8 +2327,16 @@
1674
2327
  ],
1675
2328
  "js": {
1676
2329
  "properties": [
1677
- { "name": "error", "type": "AppError | null" },
1678
- { "name": "visible", "type": "boolean" }
2330
+ {
2331
+ "name": "error",
2332
+ "description": "The error to display in this toast",
2333
+ "type": "AppError | null"
2334
+ },
2335
+ {
2336
+ "name": "visible",
2337
+ "description": "Whether the toast is currently visible (triggers slide-in animation)",
2338
+ "type": "boolean"
2339
+ }
1679
2340
  ],
1680
2341
  "events": [
1681
2342
  {
@@ -1700,16 +2361,72 @@
1700
2361
  "js": { "properties": [], "events": [] }
1701
2362
  },
1702
2363
  {
1703
- "name": "xcode-graph",
1704
- "description": "Embeddable graph visualization entry point\n---\n\n\n### **Methods:**\n - **loadRawGraph(raw: _unknown_): _void_** - Load raw Tuist graph JSON (the output of `tuist graph --format json`).\nTransforms it into GraphData and sets nodes/edges automatically.\nShows user-facing warnings/errors via ErrorService if the transform has issues.",
2364
+ "name": "xcode-graph-file-upload",
2365
+ "description": "File upload button with drag-and-drop support\n---\n\n\n### **Events:**\n - **graph-file-loaded** - Dispatched when a valid JSON file is loaded (detail: { raw: unknown })",
1705
2366
  "doc-url": "",
1706
2367
  "attributes": [],
2368
+ "events": [
2369
+ {
2370
+ "name": "graph-file-loaded",
2371
+ "type": "CustomEvent",
2372
+ "description": "Dispatched when a valid JSON file is loaded (detail: { raw: unknown })"
2373
+ }
2374
+ ],
2375
+ "js": {
2376
+ "properties": [],
2377
+ "events": [
2378
+ {
2379
+ "name": "graph-file-loaded",
2380
+ "type": "CustomEvent",
2381
+ "description": "Dispatched when a valid JSON file is loaded (detail: { raw: unknown })"
2382
+ }
2383
+ ]
2384
+ }
2385
+ },
2386
+ {
2387
+ "name": "xcode-graph",
2388
+ "description": "Embeddable graph visualization entry point\n---\n\n\n### **Methods:**\n - **loadRawGraph(raw: _unknown_): _Promise<void>_** - Load raw Tuist graph JSON (the output of `tuist graph --format json`).\nTransforms it into GraphData and sets nodes/edges automatically.\nShows user-facing warnings/errors via ErrorService if the transform has issues.\n\nThe transform service (and its Zod dependency) is lazy-loaded on first\ncall so the main bundle stays small until validation is actually needed.",
2389
+ "doc-url": "",
2390
+ "attributes": [
2391
+ {
2392
+ "name": "show-upload",
2393
+ "description": "Whether to show the file upload overlay for loading graph JSON",
2394
+ "value": { "type": "boolean" }
2395
+ },
2396
+ {
2397
+ "name": "color-scheme",
2398
+ "description": "Color scheme preference. Set to `'light'` or `'dark'` to force a mode,\nor `'auto'` (default) to follow the user's system preference.",
2399
+ "value": { "type": "ColorScheme" }
2400
+ }
2401
+ ],
1707
2402
  "events": [],
1708
2403
  "js": {
1709
2404
  "properties": [
1710
- { "name": "nodes", "type": "GraphNode[]" },
1711
- { "name": "edges", "type": "GraphEdge[]" },
1712
- { "name": "layoutOptions", "type": "LayoutOptions | undefined" }
2405
+ {
2406
+ "name": "nodes",
2407
+ "description": "Graph nodes to visualize",
2408
+ "type": "GraphNode[]"
2409
+ },
2410
+ {
2411
+ "name": "edges",
2412
+ "description": "Graph edges connecting the nodes",
2413
+ "type": "GraphEdge[]"
2414
+ },
2415
+ {
2416
+ "name": "layoutOptions",
2417
+ "description": "Optional layout configuration for ELK hierarchical layout",
2418
+ "type": "LayoutOptions | undefined"
2419
+ },
2420
+ {
2421
+ "name": "showUpload",
2422
+ "description": "Whether to show the file upload overlay for loading graph JSON",
2423
+ "type": "boolean"
2424
+ },
2425
+ {
2426
+ "name": "colorScheme",
2427
+ "description": "Color scheme preference. Set to `'light'` or `'dark'` to force a mode,\nor `'auto'` (default) to follow the user's system preference.",
2428
+ "type": "ColorScheme"
2429
+ }
1713
2430
  ],
1714
2431
  "events": []
1715
2432
  }
@@ -1933,7 +2650,13 @@
1933
2650
  }
1934
2651
  ],
1935
2652
  "js": {
1936
- "properties": [{ "name": "cycles", "type": "string[][]" }],
2653
+ "properties": [
2654
+ {
2655
+ "name": "cycles",
2656
+ "description": "Array of circular dependency cycles, each cycle is a list of node names",
2657
+ "type": "string[][]"
2658
+ }
2659
+ ],
1937
2660
  "events": [
1938
2661
  {
1939
2662
  "name": "dismiss",
@@ -2015,8 +2738,16 @@
2015
2738
  "description": "Left sidebar navigation component\n---\n\n\n### **Events:**\n - **tab-change** - Dispatched when a tab is clicked (detail: { tab: string })",
2016
2739
  "doc-url": "",
2017
2740
  "attributes": [
2018
- { "name": "collapsed", "value": { "type": "boolean" } },
2019
- { "name": "defaultCollapsed", "value": { "type": "boolean" } },
2741
+ {
2742
+ "name": "collapsed",
2743
+ "description": "Whether the sidebar is currently collapsed",
2744
+ "value": { "type": "boolean" }
2745
+ },
2746
+ {
2747
+ "name": "defaultCollapsed",
2748
+ "description": "Whether the sidebar should start collapsed on first render",
2749
+ "value": { "type": "boolean" }
2750
+ },
2020
2751
  {
2021
2752
  "name": "active-tab",
2022
2753
  "description": "The currently active tab",
@@ -2032,8 +2763,16 @@
2032
2763
  ],
2033
2764
  "js": {
2034
2765
  "properties": [
2035
- { "name": "collapsed", "type": "boolean" },
2036
- { "name": "defaultCollapsed", "type": "boolean" },
2766
+ {
2767
+ "name": "collapsed",
2768
+ "description": "Whether the sidebar is currently collapsed",
2769
+ "type": "boolean"
2770
+ },
2771
+ {
2772
+ "name": "defaultCollapsed",
2773
+ "description": "Whether the sidebar should start collapsed on first render",
2774
+ "type": "boolean"
2775
+ },
2037
2776
  {
2038
2777
  "name": "activeTab",
2039
2778
  "description": "The currently active tab",