xcode-graph 0.1.0 → 0.2.0

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.2.0",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
@@ -14,42 +14,63 @@
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
  }
23
35
  },
24
36
  {
25
37
  "name": "xcode-graph-canvas",
26
- "description": "Canvas-based interactive graph visualization\n---\n\n\n### **Events:**\n - **zoom-change** - Dispatched when the zoom level changes (detail: number)\n- **node-select** - Dispatched when a node is selected or deselected (detail: { node })\n- **node-hover** - Dispatched when a node is hovered (detail: { nodeId })\n- **cluster-select** - Dispatched when a cluster is selected or deselected (detail: { clusterId })\n- **cluster-hover** - Dispatched when a cluster is hovered (detail: { clusterId })\n- **zoom-in** - Dispatched when zoom in is requested via keyboard\n- **zoom-out** - Dispatched when zoom out is requested via keyboard\n- **zoom-reset** - Dispatched when zoom reset is requested via keyboard",
38
+ "description": "Canvas2D interactive graph visualization\n---\n\n\n### **Events:**\n - **zoom-change** - Dispatched when the zoom level changes (detail: number)\n- **node-select** - Dispatched when a node is selected or deselected (detail: { node })\n- **node-hover** - Dispatched when a node is hovered (detail: { nodeId })\n- **cluster-select** - Dispatched when a cluster is selected or deselected (detail: { clusterId })\n- **cluster-hover** - Dispatched when a cluster is hovered (detail: { clusterId })\n- **zoom-in** - Dispatched when zoom in is requested via keyboard\n- **zoom-out** - Dispatched when zoom out is requested via keyboard\n- **zoom-reset** - Dispatched when zoom reset is requested via keyboard\n\n### **Methods:**\n - **fitToViewport(): _void_** - Adjusts zoom and pan so that all clusters fit within the visible viewport.",
27
39
  "doc-url": "",
28
40
  "attributes": [
29
41
  {
30
42
  "name": "search-query",
43
+ "description": "Active search query — attribute-bound from parent via search-query=\"...\"",
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 — attribute-bound from parent via view-mode=\"...\"",
49
+ "value": { "type": "ViewMode" }
50
+ },
35
51
  {
36
52
  "name": "enable-animation",
53
+ "description": "Whether physics animation is enabled for layout settling",
37
54
  "value": { "type": "boolean", "default": "false" }
38
55
  },
39
56
  {
40
57
  "name": "show-direct-deps",
58
+ "description": "Whether to highlight direct dependency edges — attribute-bound via ?show-direct-deps",
41
59
  "value": { "type": "boolean", "default": "false" }
42
60
  },
43
61
  {
44
62
  "name": "show-transitive-deps",
63
+ "description": "Whether to highlight transitive dependency edges — attribute-bound via ?show-transitive-deps",
45
64
  "value": { "type": "boolean", "default": "false" }
46
65
  },
47
66
  {
48
67
  "name": "show-direct-dependents",
68
+ "description": "Whether to highlight direct dependent edges — attribute-bound via ?show-direct-dependents",
49
69
  "value": { "type": "boolean", "default": "false" }
50
70
  },
51
71
  {
52
72
  "name": "show-transitive-dependents",
73
+ "description": "Whether to highlight transitive dependent edges — attribute-bound via ?show-transitive-dependents",
53
74
  "value": { "type": "boolean", "default": "false" }
54
75
  }
55
76
  ],
@@ -91,29 +112,87 @@
91
112
  ],
92
113
  "js": {
93
114
  "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" },
115
+ {
116
+ "name": "nodes",
117
+ "description": "Graph nodes to render",
118
+ "type": "GraphNode[]"
119
+ },
120
+ {
121
+ "name": "edges",
122
+ "description": "Graph edges to render",
123
+ "type": "GraphEdge[]"
124
+ },
125
+ {
126
+ "name": "selectedNode",
127
+ "description": "Currently selected node (highlighted with ring and connected edges)",
128
+ "type": "GraphNode | null"
129
+ },
130
+ {
131
+ "name": "selectedCluster",
132
+ "description": "Currently selected cluster ID (dims non-member nodes)",
133
+ "type": "string | null"
134
+ },
135
+ {
136
+ "name": "hoveredNode",
137
+ "description": "Currently hovered node ID — plain field, only used for canvas rendering.",
138
+ "type": "string | null"
139
+ },
140
+ {
141
+ "name": "searchQuery",
142
+ "description": "Active search query — attribute-bound from parent via search-query=\"...\"",
143
+ "type": "string"
144
+ },
145
+ {
146
+ "name": "viewMode",
147
+ "description": "Display mode — attribute-bound from parent via view-mode=\"...\"",
148
+ "type": "ViewMode"
149
+ },
101
150
  { "name": "zoom", "type": "number" },
102
- { "name": "enableAnimation", "type": "boolean" },
151
+ {
152
+ "name": "enableAnimation",
153
+ "description": "Whether physics animation is enabled for layout settling",
154
+ "type": "boolean"
155
+ },
103
156
  {
104
157
  "name": "transitiveDeps",
158
+ "description": "Transitive dependency chain — plain field, only used for canvas rendering.",
105
159
  "type": "TransitiveResult | undefined"
106
160
  },
107
161
  {
108
162
  "name": "transitiveDependents",
163
+ "description": "Transitive dependent chain — plain field, only used for canvas rendering.",
109
164
  "type": "TransitiveResult | undefined"
110
165
  },
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>" }
166
+ {
167
+ "name": "previewFilter",
168
+ "description": "Active filter preview — plain field, only used for canvas rendering.",
169
+ "type": "PreviewFilter | undefined"
170
+ },
171
+ {
172
+ "name": "showDirectDeps",
173
+ "description": "Whether to highlight direct dependency edges — attribute-bound via ?show-direct-deps",
174
+ "type": "boolean"
175
+ },
176
+ {
177
+ "name": "showTransitiveDeps",
178
+ "description": "Whether to highlight transitive dependency edges — attribute-bound via ?show-transitive-deps",
179
+ "type": "boolean"
180
+ },
181
+ {
182
+ "name": "showDirectDependents",
183
+ "description": "Whether to highlight direct dependent edges — attribute-bound via ?show-direct-dependents",
184
+ "type": "boolean"
185
+ },
186
+ {
187
+ "name": "showTransitiveDependents",
188
+ "description": "Whether to highlight transitive dependent edges — attribute-bound via ?show-transitive-dependents",
189
+ "type": "boolean"
190
+ },
191
+ {
192
+ "name": "dimmedNodeIds",
193
+ "description": "Set of node IDs that should be visually dimmed",
194
+ "type": "Set<string>"
195
+ }
117
196
  ],
118
197
  "events": [
119
198
  {
@@ -166,8 +245,16 @@
166
245
  "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
246
  "doc-url": "",
168
247
  "attributes": [
169
- { "name": "zoom", "value": { "type": "number" } },
170
- { "name": "base-zoom", "value": { "type": "number" } }
248
+ {
249
+ "name": "zoom",
250
+ "description": "Current absolute zoom level",
251
+ "value": { "type": "number" }
252
+ },
253
+ {
254
+ "name": "base-zoom",
255
+ "description": "Baseline zoom level used for ratio display (fit-to-view = 1x)",
256
+ "value": { "type": "number" }
257
+ }
171
258
  ],
172
259
  "events": [
173
260
  {
@@ -183,8 +270,16 @@
183
270
  ],
184
271
  "js": {
185
272
  "properties": [
186
- { "name": "zoom", "type": "number" },
187
- { "name": "baseZoom", "type": "number" }
273
+ {
274
+ "name": "zoom",
275
+ "description": "Current absolute zoom level",
276
+ "type": "number"
277
+ },
278
+ {
279
+ "name": "baseZoom",
280
+ "description": "Baseline zoom level used for ratio display (fit-to-view = 1x)",
281
+ "type": "number"
282
+ }
188
283
  ],
189
284
  "events": [
190
285
  {
@@ -313,9 +408,21 @@
313
408
  "description": "Right sidebar header with collapse toggle\n---\n\n\n### **Events:**\n - **toggle-collapse** - Dispatched when the collapse button is clicked",
314
409
  "doc-url": "",
315
410
  "attributes": [
316
- { "name": "title", "value": { "type": "string" } },
317
- { "name": "is-collapsed", "value": { "type": "boolean" } },
318
- { "name": "has-active-filters", "value": { "type": "boolean" } }
411
+ {
412
+ "name": "title",
413
+ "description": "Title text displayed in the header",
414
+ "value": { "type": "string" }
415
+ },
416
+ {
417
+ "name": "is-collapsed",
418
+ "description": "Whether the sidebar is currently collapsed",
419
+ "value": { "type": "boolean" }
420
+ },
421
+ {
422
+ "name": "has-active-filters",
423
+ "description": "Whether any filters are currently active (shows indicator dot)",
424
+ "value": { "type": "boolean" }
425
+ }
319
426
  ],
320
427
  "events": [
321
428
  {
@@ -326,9 +433,21 @@
326
433
  ],
327
434
  "js": {
328
435
  "properties": [
329
- { "name": "title", "type": "string" },
330
- { "name": "isCollapsed", "type": "boolean" },
331
- { "name": "hasActiveFilters", "type": "boolean" }
436
+ {
437
+ "name": "title",
438
+ "description": "Title text displayed in the header",
439
+ "type": "string"
440
+ },
441
+ {
442
+ "name": "isCollapsed",
443
+ "description": "Whether the sidebar is currently collapsed",
444
+ "type": "boolean"
445
+ },
446
+ {
447
+ "name": "hasActiveFilters",
448
+ "description": "Whether any filters are currently active (shows indicator dot)",
449
+ "type": "boolean"
450
+ }
332
451
  ],
333
452
  "events": [
334
453
  {
@@ -344,10 +463,26 @@
344
463
  "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
464
  "doc-url": "",
346
465
  "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" } }
466
+ {
467
+ "name": "node-types-filter-size",
468
+ "description": "Number of currently selected node type filters",
469
+ "value": { "type": "number" }
470
+ },
471
+ {
472
+ "name": "platforms-filter-size",
473
+ "description": "Number of currently selected platform filters",
474
+ "value": { "type": "number" }
475
+ },
476
+ {
477
+ "name": "projects-filter-size",
478
+ "description": "Number of currently selected project filters",
479
+ "value": { "type": "number" }
480
+ },
481
+ {
482
+ "name": "packages-filter-size",
483
+ "description": "Number of currently selected package filters",
484
+ "value": { "type": "number" }
485
+ }
351
486
  ],
352
487
  "events": [
353
488
  {
@@ -358,16 +493,56 @@
358
493
  ],
359
494
  "js": {
360
495
  "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" }
496
+ {
497
+ "name": "filteredNodes",
498
+ "description": "Nodes remaining after filter application",
499
+ "type": "GraphNode[]"
500
+ },
501
+ {
502
+ "name": "filteredEdges",
503
+ "description": "Edges remaining after filter application",
504
+ "type": "GraphEdge[]"
505
+ },
506
+ {
507
+ "name": "typeCounts",
508
+ "description": "Count of nodes per node type",
509
+ "type": "Map<string, number>"
510
+ },
511
+ {
512
+ "name": "platformCounts",
513
+ "description": "Count of nodes per platform",
514
+ "type": "Map<string, number>"
515
+ },
516
+ {
517
+ "name": "projectCounts",
518
+ "description": "Count of nodes per project",
519
+ "type": "Map<string, number>"
520
+ },
521
+ {
522
+ "name": "packageCounts",
523
+ "description": "Count of nodes per package",
524
+ "type": "Map<string, number>"
525
+ },
526
+ {
527
+ "name": "nodeTypesFilterSize",
528
+ "description": "Number of currently selected node type filters",
529
+ "type": "number"
530
+ },
531
+ {
532
+ "name": "platformsFilterSize",
533
+ "description": "Number of currently selected platform filters",
534
+ "type": "number"
535
+ },
536
+ {
537
+ "name": "projectsFilterSize",
538
+ "description": "Number of currently selected project filters",
539
+ "type": "number"
540
+ },
541
+ {
542
+ "name": "packagesFilterSize",
543
+ "description": "Number of currently selected package filters",
544
+ "type": "number"
545
+ }
371
546
  ],
372
547
  "events": [
373
548
  {
@@ -535,38 +710,69 @@
535
710
  "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
711
  "doc-url": "",
537
712
  "attributes": [
538
- { "name": "dependencies-count", "value": { "type": "number" } },
539
- { "name": "dependents-count", "value": { "type": "number" } },
713
+ {
714
+ "name": "dependencies-count",
715
+ "description": "Number of direct dependencies (filtered)",
716
+ "value": { "type": "number" }
717
+ },
718
+ {
719
+ "name": "dependents-count",
720
+ "description": "Number of direct dependents (filtered)",
721
+ "value": { "type": "number" }
722
+ },
540
723
  {
541
724
  "name": "total-dependencies-count",
725
+ "description": "Total number of direct dependencies (unfiltered)",
726
+ "value": { "type": "number" }
727
+ },
728
+ {
729
+ "name": "total-dependents-count",
730
+ "description": "Total number of direct dependents (unfiltered)",
542
731
  "value": { "type": "number" }
543
732
  },
544
- { "name": "total-dependents-count", "value": { "type": "number" } },
545
733
  {
546
734
  "name": "transitive-dependencies-count",
735
+ "description": "Number of transitive dependencies",
547
736
  "value": { "type": "number" }
548
737
  },
549
738
  {
550
739
  "name": "transitive-dependents-count",
740
+ "description": "Number of transitive dependents",
551
741
  "value": { "type": "number" }
552
742
  },
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" } },
743
+ {
744
+ "name": "is-high-fan-in",
745
+ "description": "Whether this node has high fan-in (many dependents)",
746
+ "value": { "type": "boolean" }
747
+ },
748
+ {
749
+ "name": "is-high-fan-out",
750
+ "description": "Whether this node has high fan-out (many dependencies)",
751
+ "value": { "type": "boolean" }
752
+ },
753
+ {
754
+ "name": "active-direct-deps",
755
+ "description": "Whether the direct dependencies card is toggled on",
756
+ "value": { "type": "boolean" }
757
+ },
556
758
  {
557
759
  "name": "active-transitive-deps",
760
+ "description": "Whether the transitive dependencies card is toggled on",
558
761
  "value": { "type": "boolean" }
559
762
  },
560
763
  {
561
764
  "name": "active-direct-dependents",
765
+ "description": "Whether the direct dependents card is toggled on",
562
766
  "value": { "type": "boolean" }
563
767
  },
564
768
  {
565
769
  "name": "active-transitive-dependents",
770
+ "description": "Whether the transitive dependents card is toggled on",
566
771
  "value": { "type": "boolean" }
567
772
  },
568
773
  {
569
774
  "name": "expanded",
775
+ "description": "Whether the section starts expanded",
570
776
  "value": { "type": "boolean", "default": "true" }
571
777
  }
572
778
  ],
@@ -591,19 +797,71 @@
591
797
  ],
592
798
  "js": {
593
799
  "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" }
800
+ {
801
+ "name": "dependenciesCount",
802
+ "description": "Number of direct dependencies (filtered)",
803
+ "type": "number"
804
+ },
805
+ {
806
+ "name": "dependentsCount",
807
+ "description": "Number of direct dependents (filtered)",
808
+ "type": "number"
809
+ },
810
+ {
811
+ "name": "totalDependenciesCount",
812
+ "description": "Total number of direct dependencies (unfiltered)",
813
+ "type": "number"
814
+ },
815
+ {
816
+ "name": "totalDependentsCount",
817
+ "description": "Total number of direct dependents (unfiltered)",
818
+ "type": "number"
819
+ },
820
+ {
821
+ "name": "transitiveDependenciesCount",
822
+ "description": "Number of transitive dependencies",
823
+ "type": "number"
824
+ },
825
+ {
826
+ "name": "transitiveDependentsCount",
827
+ "description": "Number of transitive dependents",
828
+ "type": "number"
829
+ },
830
+ {
831
+ "name": "isHighFanIn",
832
+ "description": "Whether this node has high fan-in (many dependents)",
833
+ "type": "boolean"
834
+ },
835
+ {
836
+ "name": "isHighFanOut",
837
+ "description": "Whether this node has high fan-out (many dependencies)",
838
+ "type": "boolean"
839
+ },
840
+ {
841
+ "name": "activeDirectDeps",
842
+ "description": "Whether the direct dependencies card is toggled on",
843
+ "type": "boolean"
844
+ },
845
+ {
846
+ "name": "activeTransitiveDeps",
847
+ "description": "Whether the transitive dependencies card is toggled on",
848
+ "type": "boolean"
849
+ },
850
+ {
851
+ "name": "activeDirectDependents",
852
+ "description": "Whether the direct dependents card is toggled on",
853
+ "type": "boolean"
854
+ },
855
+ {
856
+ "name": "activeTransitiveDependents",
857
+ "description": "Whether the transitive dependents card is toggled on",
858
+ "type": "boolean"
859
+ },
860
+ {
861
+ "name": "expanded",
862
+ "description": "Whether the section starts expanded",
863
+ "type": "boolean"
864
+ }
607
865
  ],
608
866
  "events": [
609
867
  { "name": "card", "type": "CustomEvent" },
@@ -628,7 +886,7 @@
628
886
  },
629
887
  {
630
888
  "name": "xcode-graph-badge",
631
- "description": "Color-themed badge with pill, rounded, and accent variants\n---\n\n\n### **CSS Properties:**\n - **--badge-bg** - Background color of the badge (computed from color prop) _(default: undefined)_\n- **--badge-border** - Border color of the badge (computed from color prop) _(default: undefined)_\n- **--badge-color** - Text color of the badge (computed from color prop) _(default: undefined)_\n- **--badge-bg-hover** - Background color on hover (computed from color prop) _(default: undefined)_\n- **--badge-border-hover** - Border color on hover (computed from color prop) _(default: undefined)_\n- **--badge-glow** - Glow color on hover (computed from color prop) _(default: undefined)_",
889
+ "description": "Color-themed badge with pill, rounded, and accent variants\n---\n\n\n### **CSS Properties:**\n - **--badge-bg** - Background color of the badge (computed from color prop) _(default: undefined)_\n- **--badge-border** - Border color of the badge (computed from color prop) _(default: undefined)_\n- **--badge-color** - Text color of the badge (computed from color prop) _(default: undefined)_\n- **--badge-bg-hover** - Background color on hover (computed from color prop) _(default: undefined)_\n- **--badge-border-hover** - Border color on hover (computed from color prop) _(default: undefined)_",
632
890
  "doc-url": "",
633
891
  "attributes": [
634
892
  {
@@ -655,11 +913,6 @@
655
913
  "name": "interactive",
656
914
  "description": "Whether the badge has interactive hover states",
657
915
  "value": { "type": "boolean", "default": "false" }
658
- },
659
- {
660
- "name": "glow",
661
- "description": "Whether to show glow effect on hover",
662
- "value": { "type": "boolean", "default": "false" }
663
916
  }
664
917
  ],
665
918
  "events": [],
@@ -689,11 +942,6 @@
689
942
  "name": "interactive",
690
943
  "description": "Whether the badge has interactive hover states",
691
944
  "type": "boolean"
692
- },
693
- {
694
- "name": "glow",
695
- "description": "Whether to show glow effect on hover",
696
- "type": "boolean"
697
945
  }
698
946
  ],
699
947
  "events": []
@@ -716,7 +964,7 @@
716
964
  },
717
965
  {
718
966
  "name": "color",
719
- "description": "Theme color for the icon box glow",
967
+ "description": "Theme color for the icon box",
720
968
  "value": { "type": "string" }
721
969
  },
722
970
  {
@@ -756,7 +1004,7 @@
756
1004
  },
757
1005
  {
758
1006
  "name": "color",
759
- "description": "Theme color for the icon box glow",
1007
+ "description": "Theme color for the icon box",
760
1008
  "type": "string"
761
1009
  },
762
1010
  {
@@ -812,9 +1060,14 @@
812
1060
  "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
1061
  "doc-url": "",
814
1062
  "attributes": [
815
- { "name": "zoom", "value": { "type": "number" } },
1063
+ {
1064
+ "name": "zoom",
1065
+ "description": "Current canvas zoom level for color adjustments",
1066
+ "value": { "type": "number" }
1067
+ },
816
1068
  {
817
1069
  "name": "show-cluster-link",
1070
+ "description": "Whether clicking back navigates to the parent cluster instead of closing",
818
1071
  "value": { "type": "boolean", "default": "true" }
819
1072
  }
820
1073
  ],
@@ -832,9 +1085,21 @@
832
1085
  ],
833
1086
  "js": {
834
1087
  "properties": [
835
- { "name": "node", "type": "GraphNode" },
836
- { "name": "zoom", "type": "number" },
837
- { "name": "showClusterLink", "type": "boolean" }
1088
+ {
1089
+ "name": "node",
1090
+ "description": "The graph node to display in the header",
1091
+ "type": "GraphNode"
1092
+ },
1093
+ {
1094
+ "name": "zoom",
1095
+ "description": "Current canvas zoom level for color adjustments",
1096
+ "type": "number"
1097
+ },
1098
+ {
1099
+ "name": "showClusterLink",
1100
+ "description": "Whether clicking back navigates to the parent cluster instead of closing",
1101
+ "type": "boolean"
1102
+ }
838
1103
  ],
839
1104
  "events": [
840
1105
  {
@@ -890,14 +1155,23 @@
890
1155
  "attributes": [
891
1156
  {
892
1157
  "name": "expanded",
1158
+ "description": "Whether the section starts expanded",
893
1159
  "value": { "type": "boolean", "default": "true" }
894
1160
  }
895
1161
  ],
896
1162
  "events": [],
897
1163
  "js": {
898
1164
  "properties": [
899
- { "name": "node", "type": "GraphNode" },
900
- { "name": "expanded", "type": "boolean" }
1165
+ {
1166
+ "name": "node",
1167
+ "description": "The graph node to display information for",
1168
+ "type": "GraphNode"
1169
+ },
1170
+ {
1171
+ "name": "expanded",
1172
+ "description": "Whether the section starts expanded",
1173
+ "type": "boolean"
1174
+ }
901
1175
  ],
902
1176
  "events": []
903
1177
  }
@@ -907,9 +1181,21 @@
907
1181
  "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
1182
  "doc-url": "",
909
1183
  "attributes": [
910
- { "name": "subtitle", "value": { "type": "string" } },
911
- { "name": "zoom", "value": { "type": "number", "default": "1" } },
912
- { "name": "is-selected", "value": { "type": "boolean" } }
1184
+ {
1185
+ "name": "subtitle",
1186
+ "description": "Optional subtitle text shown below the node name",
1187
+ "value": { "type": "string" }
1188
+ },
1189
+ {
1190
+ "name": "zoom",
1191
+ "description": "Current canvas zoom level for color adjustments",
1192
+ "value": { "type": "number", "default": "1" }
1193
+ },
1194
+ {
1195
+ "name": "is-selected",
1196
+ "description": "Whether this row is currently selected",
1197
+ "value": { "type": "boolean" }
1198
+ }
913
1199
  ],
914
1200
  "events": [
915
1201
  {
@@ -930,10 +1216,26 @@
930
1216
  ],
931
1217
  "js": {
932
1218
  "properties": [
933
- { "name": "node", "type": "GraphNode" },
934
- { "name": "subtitle", "type": "string" },
935
- { "name": "zoom", "type": "number" },
936
- { "name": "isSelected", "type": "boolean" }
1219
+ {
1220
+ "name": "node",
1221
+ "description": "The graph node to display in this row",
1222
+ "type": "GraphNode"
1223
+ },
1224
+ {
1225
+ "name": "subtitle",
1226
+ "description": "Optional subtitle text shown below the node name",
1227
+ "type": "string"
1228
+ },
1229
+ {
1230
+ "name": "zoom",
1231
+ "description": "Current canvas zoom level for color adjustments",
1232
+ "type": "number"
1233
+ },
1234
+ {
1235
+ "name": "isSelected",
1236
+ "description": "Whether this row is currently selected",
1237
+ "type": "boolean"
1238
+ }
937
1239
  ],
938
1240
  "events": [
939
1241
  {
@@ -1050,20 +1352,31 @@
1050
1352
  "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
1353
  "doc-url": "",
1052
1354
  "attributes": [
1053
- { "name": "active-direct-deps", "value": { "type": "boolean" } },
1355
+ {
1356
+ "name": "active-direct-deps",
1357
+ "description": "Whether direct dependencies highlighting is active",
1358
+ "value": { "type": "boolean" }
1359
+ },
1054
1360
  {
1055
1361
  "name": "active-transitive-deps",
1362
+ "description": "Whether transitive dependencies highlighting is active",
1056
1363
  "value": { "type": "boolean" }
1057
1364
  },
1058
1365
  {
1059
1366
  "name": "active-direct-dependents",
1367
+ "description": "Whether direct dependents highlighting is active",
1060
1368
  "value": { "type": "boolean" }
1061
1369
  },
1062
1370
  {
1063
1371
  "name": "active-transitive-dependents",
1372
+ "description": "Whether transitive dependents highlighting is active",
1064
1373
  "value": { "type": "boolean" }
1065
1374
  },
1066
- { "name": "zoom", "value": { "type": "number" } }
1375
+ {
1376
+ "name": "zoom",
1377
+ "description": "Current canvas zoom level for color adjustments",
1378
+ "value": { "type": "number" }
1379
+ }
1067
1380
  ],
1068
1381
  "events": [
1069
1382
  { "name": "eventName", "type": "CustomEvent" },
@@ -1102,41 +1415,81 @@
1102
1415
  ],
1103
1416
  "js": {
1104
1417
  "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
1418
  {
1119
- "name": "close",
1120
- "description": "Dispatched when the panel close/back button is clicked"
1419
+ "name": "node",
1420
+ "description": "The node to display details for",
1421
+ "type": "GraphNode"
1121
1422
  },
1122
1423
  {
1123
- "name": "node-select",
1124
- "description": "Dispatched when a dependency or dependent node is clicked (detail: { node })"
1424
+ "name": "allNodes",
1425
+ "description": "All nodes in the graph (for dependency resolution)",
1426
+ "type": "GraphNode[]"
1125
1427
  },
1126
1428
  {
1127
- "name": "cluster-select",
1128
- "description": "Dispatched when a cluster badge is clicked (detail: { clusterId })"
1429
+ "name": "edges",
1430
+ "description": "All edges in the graph",
1431
+ "type": "GraphEdge[]"
1129
1432
  },
1130
1433
  {
1131
- "name": "node-hover",
1132
- "description": "Dispatched when hovering a dependency or dependent node (detail: { nodeId })"
1434
+ "name": "filteredEdges",
1435
+ "description": "Edges remaining after filter application",
1436
+ "type": "GraphEdge[] | undefined"
1133
1437
  },
1134
1438
  {
1135
- "name": "toggle-direct-deps",
1136
- "description": "Dispatched when the direct dependencies metric card is toggled"
1439
+ "name": "clusters",
1440
+ "description": "Available clusters for cluster navigation",
1441
+ "type": "Cluster[] | undefined"
1137
1442
  },
1138
1443
  {
1139
- "name": "toggle-transitive-deps",
1444
+ "name": "activeDirectDeps",
1445
+ "description": "Whether direct dependencies highlighting is active",
1446
+ "type": "boolean"
1447
+ },
1448
+ {
1449
+ "name": "activeTransitiveDeps",
1450
+ "description": "Whether transitive dependencies highlighting is active",
1451
+ "type": "boolean"
1452
+ },
1453
+ {
1454
+ "name": "activeDirectDependents",
1455
+ "description": "Whether direct dependents highlighting is active",
1456
+ "type": "boolean"
1457
+ },
1458
+ {
1459
+ "name": "activeTransitiveDependents",
1460
+ "description": "Whether transitive dependents highlighting is active",
1461
+ "type": "boolean"
1462
+ },
1463
+ {
1464
+ "name": "zoom",
1465
+ "description": "Current canvas zoom level for color adjustments",
1466
+ "type": "number"
1467
+ }
1468
+ ],
1469
+ "events": [
1470
+ { "name": "eventName", "type": "CustomEvent" },
1471
+ {
1472
+ "name": "close",
1473
+ "description": "Dispatched when the panel close/back button is clicked"
1474
+ },
1475
+ {
1476
+ "name": "node-select",
1477
+ "description": "Dispatched when a dependency or dependent node is clicked (detail: { node })"
1478
+ },
1479
+ {
1480
+ "name": "cluster-select",
1481
+ "description": "Dispatched when a cluster badge is clicked (detail: { clusterId })"
1482
+ },
1483
+ {
1484
+ "name": "node-hover",
1485
+ "description": "Dispatched when hovering a dependency or dependent node (detail: { nodeId })"
1486
+ },
1487
+ {
1488
+ "name": "toggle-direct-deps",
1489
+ "description": "Dispatched when the direct dependencies metric card is toggled"
1490
+ },
1491
+ {
1492
+ "name": "toggle-transitive-deps",
1140
1493
  "description": "Dispatched when the transitive dependencies metric card is toggled"
1141
1494
  },
1142
1495
  {
@@ -1226,14 +1579,31 @@
1226
1579
  "description": "Cluster details panel header with icon, badges, and path\n---\n\n\n### **Events:**\n - **back** - Dispatched when back button is clicked",
1227
1580
  "doc-url": "",
1228
1581
  "attributes": [
1229
- { "name": "cluster-name", "value": { "type": "string" } },
1582
+ {
1583
+ "name": "cluster-name",
1584
+ "description": "Display name of the cluster",
1585
+ "value": { "type": "string" }
1586
+ },
1230
1587
  {
1231
1588
  "name": "cluster-type",
1589
+ "description": "Whether this cluster is a package or project",
1232
1590
  "value": { "type": "'package' | 'project'" }
1233
1591
  },
1234
- { "name": "cluster-color", "value": { "type": "string" } },
1235
- { "name": "cluster-path", "value": { "type": "string" } },
1236
- { "name": "is-external", "value": { "type": "boolean" } }
1592
+ {
1593
+ "name": "cluster-color",
1594
+ "description": "Accent color for the cluster icon and badges",
1595
+ "value": { "type": "string" }
1596
+ },
1597
+ {
1598
+ "name": "cluster-path",
1599
+ "description": "Filesystem path to the cluster source (used for source type detection and copy)",
1600
+ "value": { "type": "string" }
1601
+ },
1602
+ {
1603
+ "name": "is-external",
1604
+ "description": "Whether the cluster comes from an external dependency",
1605
+ "value": { "type": "boolean" }
1606
+ }
1237
1607
  ],
1238
1608
  "events": [
1239
1609
  {
@@ -1243,11 +1613,31 @@
1243
1613
  ],
1244
1614
  "js": {
1245
1615
  "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" }
1616
+ {
1617
+ "name": "clusterName",
1618
+ "description": "Display name of the cluster",
1619
+ "type": "string"
1620
+ },
1621
+ {
1622
+ "name": "clusterType",
1623
+ "description": "Whether this cluster is a package or project",
1624
+ "type": "'package' | 'project'"
1625
+ },
1626
+ {
1627
+ "name": "clusterColor",
1628
+ "description": "Accent color for the cluster icon and badges",
1629
+ "type": "string"
1630
+ },
1631
+ {
1632
+ "name": "clusterPath",
1633
+ "description": "Filesystem path to the cluster source (used for source type detection and copy)",
1634
+ "type": "string"
1635
+ },
1636
+ {
1637
+ "name": "isExternal",
1638
+ "description": "Whether the cluster comes from an external dependency",
1639
+ "type": "boolean"
1640
+ }
1251
1641
  ],
1252
1642
  "events": [
1253
1643
  {
@@ -1262,17 +1652,39 @@
1262
1652
  "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
1653
  "doc-url": "",
1264
1654
  "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" } },
1655
+ {
1656
+ "name": "filtered-dependencies",
1657
+ "description": "Number of dependencies visible after filtering",
1658
+ "value": { "type": "number" }
1659
+ },
1660
+ {
1661
+ "name": "total-dependencies",
1662
+ "description": "Total number of dependencies before filtering",
1663
+ "value": { "type": "number" }
1664
+ },
1665
+ {
1666
+ "name": "filtered-dependents",
1667
+ "description": "Number of dependents visible after filtering",
1668
+ "value": { "type": "number" }
1669
+ },
1670
+ {
1671
+ "name": "total-dependents",
1672
+ "description": "Total number of dependents before filtering",
1673
+ "value": { "type": "number" }
1674
+ },
1675
+ {
1676
+ "name": "active-direct-deps",
1677
+ "description": "Whether the direct dependencies card is toggled on",
1678
+ "value": { "type": "boolean" }
1679
+ },
1270
1680
  {
1271
1681
  "name": "active-direct-dependents",
1682
+ "description": "Whether the direct dependents card is toggled on",
1272
1683
  "value": { "type": "boolean" }
1273
1684
  },
1274
1685
  {
1275
1686
  "name": "expanded",
1687
+ "description": "Whether the section starts expanded",
1276
1688
  "value": { "type": "boolean", "default": "true" }
1277
1689
  }
1278
1690
  ],
@@ -1289,19 +1701,51 @@
1289
1701
  ],
1290
1702
  "js": {
1291
1703
  "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>" },
1704
+ {
1705
+ "name": "filteredDependencies",
1706
+ "description": "Number of dependencies visible after filtering",
1707
+ "type": "number"
1708
+ },
1709
+ {
1710
+ "name": "totalDependencies",
1711
+ "description": "Total number of dependencies before filtering",
1712
+ "type": "number"
1713
+ },
1714
+ {
1715
+ "name": "filteredDependents",
1716
+ "description": "Number of dependents visible after filtering",
1717
+ "type": "number"
1718
+ },
1719
+ {
1720
+ "name": "totalDependents",
1721
+ "description": "Total number of dependents before filtering",
1722
+ "type": "number"
1723
+ },
1724
+ {
1725
+ "name": "activeDirectDeps",
1726
+ "description": "Whether the direct dependencies card is toggled on",
1727
+ "type": "boolean"
1728
+ },
1729
+ {
1730
+ "name": "activeDirectDependents",
1731
+ "description": "Whether the direct dependents card is toggled on",
1732
+ "type": "boolean"
1733
+ },
1734
+ {
1735
+ "name": "platforms",
1736
+ "description": "Set of platform names present in this cluster",
1737
+ "type": "Set<string>"
1738
+ },
1299
1739
  {
1300
1740
  "name": "targetBreakdown",
1301
1741
  "description": "Target breakdown by node type (e.g., { framework: 3, library: 2 })",
1302
1742
  "type": "Record<string, number>"
1303
1743
  },
1304
- { "name": "expanded", "type": "boolean" }
1744
+ {
1745
+ "name": "expanded",
1746
+ "description": "Whether the section starts expanded",
1747
+ "type": "boolean"
1748
+ }
1305
1749
  ],
1306
1750
  "events": [
1307
1751
  { "name": "card", "type": "CustomEvent" },
@@ -1321,9 +1765,21 @@
1321
1765
  "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
1766
  "doc-url": "",
1323
1767
  "attributes": [
1324
- { "name": "filtered-targets-count", "value": { "type": "number" } },
1325
- { "name": "total-targets-count", "value": { "type": "number" } },
1326
- { "name": "zoom", "value": { "type": "number" } },
1768
+ {
1769
+ "name": "filtered-targets-count",
1770
+ "description": "Number of targets visible after filtering",
1771
+ "value": { "type": "number" }
1772
+ },
1773
+ {
1774
+ "name": "total-targets-count",
1775
+ "description": "Total number of targets in the cluster",
1776
+ "value": { "type": "number" }
1777
+ },
1778
+ {
1779
+ "name": "zoom",
1780
+ "description": "Current canvas zoom level for color adjustments",
1781
+ "value": { "type": "number" }
1782
+ },
1327
1783
  {
1328
1784
  "name": "expanded",
1329
1785
  "description": "Whether to start expanded (default: true)",
@@ -1344,12 +1800,36 @@
1344
1800
  ],
1345
1801
  "js": {
1346
1802
  "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" },
1803
+ {
1804
+ "name": "clusterNodes",
1805
+ "description": "All nodes belonging to this cluster",
1806
+ "type": "GraphNode[]"
1807
+ },
1808
+ {
1809
+ "name": "nodesByType",
1810
+ "description": "Nodes grouped by their type (e.g., framework, library)",
1811
+ "type": "Record<string, GraphNode[]>"
1812
+ },
1813
+ {
1814
+ "name": "filteredTargetsCount",
1815
+ "description": "Number of targets visible after filtering",
1816
+ "type": "number"
1817
+ },
1818
+ {
1819
+ "name": "totalTargetsCount",
1820
+ "description": "Total number of targets in the cluster",
1821
+ "type": "number"
1822
+ },
1823
+ {
1824
+ "name": "edges",
1825
+ "description": "All edges in the graph (for dependency counting)",
1826
+ "type": "GraphEdge[]"
1827
+ },
1828
+ {
1829
+ "name": "zoom",
1830
+ "description": "Current canvas zoom level for color adjustments",
1831
+ "type": "number"
1832
+ },
1353
1833
  {
1354
1834
  "name": "expanded",
1355
1835
  "description": "Whether to start expanded (default: true)",
@@ -1375,12 +1855,21 @@
1375
1855
  "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
1856
  "doc-url": "",
1377
1857
  "attributes": [
1378
- { "name": "active-direct-deps", "value": { "type": "boolean" } },
1858
+ {
1859
+ "name": "active-direct-deps",
1860
+ "description": "Whether direct dependencies highlighting is active",
1861
+ "value": { "type": "boolean" }
1862
+ },
1379
1863
  {
1380
1864
  "name": "active-direct-dependents",
1865
+ "description": "Whether direct dependents highlighting is active",
1381
1866
  "value": { "type": "boolean" }
1382
1867
  },
1383
- { "name": "zoom", "value": { "type": "number" } }
1868
+ {
1869
+ "name": "zoom",
1870
+ "description": "Current canvas zoom level for color adjustments",
1871
+ "value": { "type": "number" }
1872
+ }
1384
1873
  ],
1385
1874
  "events": [
1386
1875
  { "name": "eventName", "type": "CustomEvent" },
@@ -1399,14 +1888,46 @@
1399
1888
  ],
1400
1889
  "js": {
1401
1890
  "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" }
1891
+ {
1892
+ "name": "cluster",
1893
+ "description": "The cluster to display details for",
1894
+ "type": "Cluster"
1895
+ },
1896
+ {
1897
+ "name": "clusterNodes",
1898
+ "description": "Nodes belonging to this cluster",
1899
+ "type": "GraphNode[]"
1900
+ },
1901
+ {
1902
+ "name": "allNodes",
1903
+ "description": "All nodes in the graph (for dependency resolution)",
1904
+ "type": "GraphNode[]"
1905
+ },
1906
+ {
1907
+ "name": "edges",
1908
+ "description": "All edges in the graph",
1909
+ "type": "GraphEdge[]"
1910
+ },
1911
+ {
1912
+ "name": "filteredEdges",
1913
+ "description": "Edges remaining after filter application",
1914
+ "type": "GraphEdge[] | undefined"
1915
+ },
1916
+ {
1917
+ "name": "activeDirectDeps",
1918
+ "description": "Whether direct dependencies highlighting is active",
1919
+ "type": "boolean"
1920
+ },
1921
+ {
1922
+ "name": "activeDirectDependents",
1923
+ "description": "Whether direct dependents highlighting is active",
1924
+ "type": "boolean"
1925
+ },
1926
+ {
1927
+ "name": "zoom",
1928
+ "description": "Current canvas zoom level for color adjustments",
1929
+ "type": "number"
1930
+ }
1410
1931
  ],
1411
1932
  "events": [
1412
1933
  { "name": "eventName", "type": "CustomEvent" },
@@ -1511,12 +2032,36 @@
1511
2032
  "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
2033
  "doc-url": "",
1513
2034
  "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" } }
2035
+ {
2036
+ "name": "id",
2037
+ "description": "Unique section identifier",
2038
+ "value": { "type": "string" }
2039
+ },
2040
+ {
2041
+ "name": "title",
2042
+ "description": "Display title for the section header",
2043
+ "value": { "type": "string" }
2044
+ },
2045
+ {
2046
+ "name": "icon-name",
2047
+ "description": "Icon name for the section header slot",
2048
+ "value": { "type": "string" }
2049
+ },
2050
+ {
2051
+ "name": "is-expanded",
2052
+ "description": "Whether the section is currently expanded",
2053
+ "value": { "type": "boolean" }
2054
+ },
2055
+ {
2056
+ "name": "filter-type",
2057
+ "description": "The type of filter this section controls",
2058
+ "value": { "type": "FilterType" }
2059
+ },
2060
+ {
2061
+ "name": "zoom",
2062
+ "description": "Current canvas zoom level for color adjustments",
2063
+ "value": { "type": "number" }
2064
+ }
1520
2065
  ],
1521
2066
  "slots": [
1522
2067
  {
@@ -1543,14 +2088,46 @@
1543
2088
  ],
1544
2089
  "js": {
1545
2090
  "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" }
2091
+ {
2092
+ "name": "id",
2093
+ "description": "Unique section identifier",
2094
+ "type": "string"
2095
+ },
2096
+ {
2097
+ "name": "title",
2098
+ "description": "Display title for the section header",
2099
+ "type": "string"
2100
+ },
2101
+ {
2102
+ "name": "iconName",
2103
+ "description": "Icon name for the section header slot",
2104
+ "type": "string"
2105
+ },
2106
+ {
2107
+ "name": "isExpanded",
2108
+ "description": "Whether the section is currently expanded",
2109
+ "type": "boolean"
2110
+ },
2111
+ {
2112
+ "name": "items",
2113
+ "description": "Filter items to display as toggleable checkboxes",
2114
+ "type": "FilterItem[]"
2115
+ },
2116
+ {
2117
+ "name": "selectedItems",
2118
+ "description": "Set of currently selected item keys",
2119
+ "type": "Set<string>"
2120
+ },
2121
+ {
2122
+ "name": "filterType",
2123
+ "description": "The type of filter this section controls",
2124
+ "type": "FilterType"
2125
+ },
2126
+ {
2127
+ "name": "zoom",
2128
+ "description": "Current canvas zoom level for color adjustments",
2129
+ "type": "number"
2130
+ }
1554
2131
  ],
1555
2132
  "events": [
1556
2133
  {
@@ -1614,11 +2191,31 @@
1614
2191
  "events": [],
1615
2192
  "js": {
1616
2193
  "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" }
2194
+ {
2195
+ "name": "allNodes",
2196
+ "description": "All nodes in the graph (unfiltered)",
2197
+ "type": "GraphNode[]"
2198
+ },
2199
+ {
2200
+ "name": "allEdges",
2201
+ "description": "All edges in the graph (unfiltered)",
2202
+ "type": "GraphEdge[]"
2203
+ },
2204
+ {
2205
+ "name": "filteredNodes",
2206
+ "description": "Nodes remaining after filter and search application",
2207
+ "type": "GraphNode[]"
2208
+ },
2209
+ {
2210
+ "name": "filteredEdges",
2211
+ "description": "Edges remaining after filter and search application",
2212
+ "type": "GraphEdge[]"
2213
+ },
2214
+ {
2215
+ "name": "clusters",
2216
+ "description": "Available clusters from the layout engine",
2217
+ "type": "Cluster[] | undefined"
2218
+ }
1622
2219
  ],
1623
2220
  "events": []
1624
2221
  }
@@ -1637,15 +2234,51 @@
1637
2234
  "events": [],
1638
2235
  "js": {
1639
2236
  "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" }
2237
+ {
2238
+ "name": "displayNodes",
2239
+ "description": "Nodes to render on the canvas (after search/filter/highlight processing)",
2240
+ "type": "GraphNode[]"
2241
+ },
2242
+ {
2243
+ "name": "displayEdges",
2244
+ "description": "Edges to render on the canvas (after search/filter/highlight processing)",
2245
+ "type": "GraphEdge[]"
2246
+ },
2247
+ {
2248
+ "name": "filteredNodes",
2249
+ "description": "Nodes remaining after filter application (for sidebar stats)",
2250
+ "type": "GraphNode[]"
2251
+ },
2252
+ {
2253
+ "name": "filteredEdges",
2254
+ "description": "Edges remaining after filter application (for sidebar stats)",
2255
+ "type": "GraphEdge[]"
2256
+ },
2257
+ {
2258
+ "name": "allNodes",
2259
+ "description": "All nodes in the graph (unfiltered, for sidebar filter computation)",
2260
+ "type": "GraphNode[]"
2261
+ },
2262
+ {
2263
+ "name": "allEdges",
2264
+ "description": "All edges in the graph (unfiltered, for sidebar filter computation)",
2265
+ "type": "GraphEdge[]"
2266
+ },
2267
+ {
2268
+ "name": "clusters",
2269
+ "description": "Available clusters from the layout engine",
2270
+ "type": "Cluster[] | undefined"
2271
+ },
2272
+ {
2273
+ "name": "transitiveDeps",
2274
+ "description": "Transitive dependency chain for the selected node",
2275
+ "type": "TransitiveResult"
2276
+ },
2277
+ {
2278
+ "name": "transitiveDependents",
2279
+ "description": "Transitive dependent chain for the selected node",
2280
+ "type": "TransitiveResult"
2281
+ }
1649
2282
  ],
1650
2283
  "events": []
1651
2284
  }
@@ -1657,6 +2290,7 @@
1657
2290
  "attributes": [
1658
2291
  {
1659
2292
  "name": "visible",
2293
+ "description": "Whether the toast is currently visible (triggers slide-in animation)",
1660
2294
  "value": { "type": "boolean", "default": "false" }
1661
2295
  }
1662
2296
  ],
@@ -1674,8 +2308,16 @@
1674
2308
  ],
1675
2309
  "js": {
1676
2310
  "properties": [
1677
- { "name": "error", "type": "AppError | null" },
1678
- { "name": "visible", "type": "boolean" }
2311
+ {
2312
+ "name": "error",
2313
+ "description": "The error to display in this toast",
2314
+ "type": "AppError | null"
2315
+ },
2316
+ {
2317
+ "name": "visible",
2318
+ "description": "Whether the toast is currently visible (triggers slide-in animation)",
2319
+ "type": "boolean"
2320
+ }
1679
2321
  ],
1680
2322
  "events": [
1681
2323
  {
@@ -1700,16 +2342,72 @@
1700
2342
  "js": { "properties": [], "events": [] }
1701
2343
  },
1702
2344
  {
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.",
2345
+ "name": "xcode-graph-file-upload",
2346
+ "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
2347
  "doc-url": "",
1706
2348
  "attributes": [],
2349
+ "events": [
2350
+ {
2351
+ "name": "graph-file-loaded",
2352
+ "type": "CustomEvent",
2353
+ "description": "Dispatched when a valid JSON file is loaded (detail: { raw: unknown })"
2354
+ }
2355
+ ],
2356
+ "js": {
2357
+ "properties": [],
2358
+ "events": [
2359
+ {
2360
+ "name": "graph-file-loaded",
2361
+ "type": "CustomEvent",
2362
+ "description": "Dispatched when a valid JSON file is loaded (detail: { raw: unknown })"
2363
+ }
2364
+ ]
2365
+ }
2366
+ },
2367
+ {
2368
+ "name": "xcode-graph",
2369
+ "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.",
2370
+ "doc-url": "",
2371
+ "attributes": [
2372
+ {
2373
+ "name": "show-upload",
2374
+ "description": "Whether to show the file upload overlay for loading graph JSON",
2375
+ "value": { "type": "boolean" }
2376
+ },
2377
+ {
2378
+ "name": "color-scheme",
2379
+ "description": "Color scheme preference. Set to `'light'` or `'dark'` to force a mode,\nor `'auto'` (default) to follow the user's system preference.",
2380
+ "value": { "type": "ColorScheme" }
2381
+ }
2382
+ ],
1707
2383
  "events": [],
1708
2384
  "js": {
1709
2385
  "properties": [
1710
- { "name": "nodes", "type": "GraphNode[]" },
1711
- { "name": "edges", "type": "GraphEdge[]" },
1712
- { "name": "layoutOptions", "type": "LayoutOptions | undefined" }
2386
+ {
2387
+ "name": "nodes",
2388
+ "description": "Graph nodes to visualize",
2389
+ "type": "GraphNode[]"
2390
+ },
2391
+ {
2392
+ "name": "edges",
2393
+ "description": "Graph edges connecting the nodes",
2394
+ "type": "GraphEdge[]"
2395
+ },
2396
+ {
2397
+ "name": "layoutOptions",
2398
+ "description": "Optional layout configuration for ELK hierarchical layout",
2399
+ "type": "LayoutOptions | undefined"
2400
+ },
2401
+ {
2402
+ "name": "showUpload",
2403
+ "description": "Whether to show the file upload overlay for loading graph JSON",
2404
+ "type": "boolean"
2405
+ },
2406
+ {
2407
+ "name": "colorScheme",
2408
+ "description": "Color scheme preference. Set to `'light'` or `'dark'` to force a mode,\nor `'auto'` (default) to follow the user's system preference.",
2409
+ "type": "ColorScheme"
2410
+ }
1713
2411
  ],
1714
2412
  "events": []
1715
2413
  }
@@ -1933,7 +2631,13 @@
1933
2631
  }
1934
2632
  ],
1935
2633
  "js": {
1936
- "properties": [{ "name": "cycles", "type": "string[][]" }],
2634
+ "properties": [
2635
+ {
2636
+ "name": "cycles",
2637
+ "description": "Array of circular dependency cycles, each cycle is a list of node names",
2638
+ "type": "string[][]"
2639
+ }
2640
+ ],
1937
2641
  "events": [
1938
2642
  {
1939
2643
  "name": "dismiss",
@@ -1981,7 +2685,7 @@
1981
2685
  },
1982
2686
  {
1983
2687
  "name": "xcode-graph-header",
1984
- "description": "Mission control themed header bar\n---\n",
2688
+ "description": "Application header bar\n---\n",
1985
2689
  "doc-url": "",
1986
2690
  "attributes": [],
1987
2691
  "events": [],
@@ -2015,8 +2719,16 @@
2015
2719
  "description": "Left sidebar navigation component\n---\n\n\n### **Events:**\n - **tab-change** - Dispatched when a tab is clicked (detail: { tab: string })",
2016
2720
  "doc-url": "",
2017
2721
  "attributes": [
2018
- { "name": "collapsed", "value": { "type": "boolean" } },
2019
- { "name": "defaultCollapsed", "value": { "type": "boolean" } },
2722
+ {
2723
+ "name": "collapsed",
2724
+ "description": "Whether the sidebar is currently collapsed",
2725
+ "value": { "type": "boolean" }
2726
+ },
2727
+ {
2728
+ "name": "defaultCollapsed",
2729
+ "description": "Whether the sidebar should start collapsed on first render",
2730
+ "value": { "type": "boolean" }
2731
+ },
2020
2732
  {
2021
2733
  "name": "active-tab",
2022
2734
  "description": "The currently active tab",
@@ -2032,8 +2744,16 @@
2032
2744
  ],
2033
2745
  "js": {
2034
2746
  "properties": [
2035
- { "name": "collapsed", "type": "boolean" },
2036
- { "name": "defaultCollapsed", "type": "boolean" },
2747
+ {
2748
+ "name": "collapsed",
2749
+ "description": "Whether the sidebar is currently collapsed",
2750
+ "type": "boolean"
2751
+ },
2752
+ {
2753
+ "name": "defaultCollapsed",
2754
+ "description": "Whether the sidebar should start collapsed on first render",
2755
+ "type": "boolean"
2756
+ },
2037
2757
  {
2038
2758
  "name": "activeTab",
2039
2759
  "description": "The currently active tab",
@@ -2072,10 +2792,6 @@
2072
2792
  {
2073
2793
  "name": "--badge-border-hover",
2074
2794
  "description": "Border color on hover (computed from color prop)"
2075
- },
2076
- {
2077
- "name": "--badge-glow",
2078
- "description": "Glow color on hover (computed from color prop)"
2079
2795
  }
2080
2796
  ],
2081
2797
  "pseudo-elements": []