{"id":46681953,"url":"https://github.com/ajkolean/xcode-graph","last_synced_at":"2026-03-09T00:13:14.887Z","repository":{"id":342891168,"uuid":"1104271767","full_name":"ajkolean/xcode-graph","owner":"ajkolean","description":"Interactive dependency graph visualization web component for Xcode projects","archived":false,"fork":false,"pushed_at":"2026-03-08T02:04:31.000Z","size":15904,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-08T02:06:33.526Z","etag":null,"topics":["canvas","d3","dependency-graph","ios","lit","svg","swift","tuist","typescript","visualization","web-component","xcode"],"latest_commit_sha":null,"homepage":"https://ajkolean.github.io/xcode-graph/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ajkolean.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-26T01:46:39.000Z","updated_at":"2026-03-08T00:43:34.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ajkolean/xcode-graph","commit_stats":null,"previous_names":["ajkolean/xcode-graph"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ajkolean/xcode-graph","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajkolean%2Fxcode-graph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajkolean%2Fxcode-graph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajkolean%2Fxcode-graph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajkolean%2Fxcode-graph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ajkolean","download_url":"https://codeload.github.com/ajkolean/xcode-graph/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ajkolean%2Fxcode-graph/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30276606,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-08T20:45:49.896Z","status":"ssl_error","status_checked_at":"2026-03-08T20:45:49.525Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["canvas","d3","dependency-graph","ios","lit","svg","swift","tuist","typescript","visualization","web-component","xcode"],"created_at":"2026-03-09T00:13:14.348Z","updated_at":"2026-03-09T00:13:14.865Z","avatar_url":"https://github.com/ajkolean.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://ajkolean.github.io/xcode-graph/xcode-graph-icon-readme.png\" alt=\"XcodeGraph\" width=\"180\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003excode-graph\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eInteractive dependency graph visualization for Xcode projects\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  A self-contained Lit web component that renders zoomable, filterable dependency graphs on canvas — designed for embedding in any web app or Swift server.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/xcode-graph\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/xcode-graph?color=7c3aed\u0026label=npm\" alt=\"npm version\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/ajkolean/xcode-graph/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-MIT-blue\" alt=\"MIT License\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.typescriptlang.org/\"\u003e\u003cimg src=\"https://img.shields.io/badge/types-TypeScript-3178C6\" alt=\"TypeScript\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://lit.dev\"\u003e\u003cimg src=\"https://img.shields.io/badge/built%20with-Lit-324FFF\" alt=\"Built with Lit\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://app.deepsource.com/gh/ajkolean/xcode-graph/\"\u003e\u003cimg src=\"https://app.deepsource.com/gh/ajkolean/xcode-graph.svg/?label=code+coverage\u0026show_trend=true\u0026token=bpb3vqsaKxh829cTU452ydmW\" alt=\"DeepSource Code Coverage\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://app.deepsource.com/gh/ajkolean/xcode-graph/\"\u003e\u003cimg src=\"https://app.deepsource.com/gh/ajkolean/xcode-graph.svg/?label=active+issues\u0026show_trend=true\u0026token=bpb3vqsaKxh829cTU452ydmW\" alt=\"DeepSource Active Issues\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://ajkolean.github.io/xcode-graph/\"\u003eDocs\u003c/a\u003e \u0026nbsp;\u0026bull;\u0026nbsp;\n  \u003ca href=\"https://ajkolean.github.io/xcode-graph/demo\"\u003eLive Demo\u003c/a\u003e \u0026nbsp;\u0026bull;\u0026nbsp;\n  \u003ca href=\"https://ajkolean.github.io/xcode-graph/api/\"\u003eAPI Reference\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/ajkolean/xcode-graph/raw/main/docs/public/demo.gif\" alt=\"xcode-graph demo\" width=\"600\" /\u003e\n\u003c/p\u003e\n\n---\n\n## Features\n\n- **Interactive Canvas** — Zoom, pan, and click through dependency graphs with hardware-accelerated SVG rendering\n- **Cluster Layouts** — Nodes grouped by project into visual clusters using a two-phase hierarchical layout (ELK + D3-force)\n- **Search \u0026 Filter** — Filter by node type, origin, platform, or project; instant search with highlighting\n- **Transitive Dependencies** — Highlight the full dependency chain (direct, transitive, dependents, or both) for any node\n- **Circular Dependency Detection** — Automatically identifies and warns about cycles in the graph\n- **File Upload** — Drag-and-drop or file picker for loading XcodeGraph JSON\n- **Theming** — 30+ CSS custom properties for complete visual customization\n- **Dark \u0026 Light Mode** — Automatic adaptation to `prefers-color-scheme`, or force a specific mode\n- **Accessible** — ARIA labels, keyboard navigation, focus traps, and `prefers-reduced-motion` support\n- **TypeScript** — Full type definitions with strict mode\n- **Zero Config** — Single `\u003cxcode-graph\u003e` element, works in any framework or vanilla HTML\n- **CDN Ready** — Self-contained ES module bundle with code-split Zod validation\n\n## Installation\n\n```bash\n# pnpm\npnpm add xcode-graph\n\n# npm\nnpm install xcode-graph\n\n# yarn\nyarn add xcode-graph\n```\n\nOr load directly from a CDN:\n\n```html\n\u003cscript type=\"module\" src=\"https://cdn.jsdelivr.net/npm/xcode-graph/dist/xcodegraph.js\"\u003e\u003c/script\u003e\n```\n\n## Quick Start\n\n### With data properties\n\n```html\n\u003cscript type=\"module\"\u003e\n  import 'xcode-graph';\n\u003c/script\u003e\n\n\u003cxcode-graph\n  .nodes=${nodes}\n  .edges=${edges}\n\u003e\u003c/xcode-graph\u003e\n```\n\n### With raw XcodeGraph JSON\n\n```js\nconst app = document.querySelector('xcode-graph');\napp.loadRawGraph(xcodeGraphJson);\n```\n\n`loadRawGraph` validates and transforms the raw JSON into the internal `GraphNode` / `GraphEdge` format automatically. The Zod validation layer is lazy-loaded on first call to keep the main bundle small. Unknown enum values produce warnings rather than errors, so the component is forward-compatible with newer Xcode project types.\n\n### From a CDN (no bundler)\n\n```html\n\u003c!DOCTYPE html\u003e\n\u003chtml\u003e\n\u003cbody\u003e\n  \u003cxcode-graph id=\"graph\" style=\"width: 100%; height: 100vh;\"\u003e\u003c/xcode-graph\u003e\n  \u003cscript type=\"module\"\u003e\n    import 'https://cdn.jsdelivr.net/npm/xcode-graph/dist/xcodegraph.js';\n\n    const res = await fetch('/graph.json');\n    const data = await res.json();\n    document.getElementById('graph').loadRawGraph(data);\n  \u003c/script\u003e\n\u003c/body\u003e\n\u003c/html\u003e\n```\n\n### With file upload\n\n```html\n\u003cxcode-graph show-upload\u003e\u003c/xcode-graph\u003e\n```\n\nUsers can drag-and-drop or use the file picker to load their own XcodeGraph JSON files.\n\n## Component API\n\n### Properties\n\n| Property | Attribute | Type | Default | Description |\n|---|---|---|---|---|\n| `nodes` | — | `GraphNode[]` | `undefined` | Graph nodes to visualize |\n| `edges` | — | `GraphEdge[]` | `undefined` | Graph edges connecting nodes |\n| `layoutOptions` | — | `LayoutOptions` | `undefined` | ELK + D3-force layout configuration overrides |\n| `showUpload` | `show-upload` | `boolean` | `false` | Show the file upload overlay |\n| `colorScheme` | `color-scheme` | `'light' \\| 'dark' \\| 'auto'` | `'auto'` | Color scheme preference |\n\n### Methods\n\n| Method | Parameters | Description |\n|---|---|---|\n| `loadRawGraph()` | `raw: unknown` | Load and transform raw XcodeGraph JSON (`tuist graph --format json` output) |\n\nSee the [Component API reference](https://ajkolean.github.io/xcode-graph/reference/component-api) for events, CSS custom properties, and sizing details.\n\n## Data Shape\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eGraphNode\u003c/strong\u003e\u003c/summary\u003e\n\n| Field | Type | Required | Description |\n|---|---|---|---|\n| `id` | `string` | Yes | Unique identifier |\n| `name` | `string` | Yes | Display name |\n| `type` | `NodeType` | Yes | `app`, `framework`, `library`, `package`, `test-unit`, `test-ui`, `cli` |\n| `platform` | `Platform` | Yes | `iOS`, `macOS`, `visionOS`, `tvOS`, `watchOS` |\n| `origin` | `Origin` | Yes | `local` or `external` |\n| `project` | `string?` | No | Parent project or package name |\n| `deploymentTargets` | `DeploymentTargets?` | No | Min version per platform |\n| `buildSettings` | `BuildSettings?` | No | Swift version, compilation conditions, code signing |\n| `bundleId` | `string?` | No | Bundle identifier |\n| `sourceCount` | `number?` | No | Total source file count |\n| `resourceCount` | `number?` | No | Total resource file count |\n| `destinations` | `Destination[]?` | No | Supported device destinations |\n| `tags` | `string[]?` | No | Metadata tags |\n| `foreignBuild` | `ForeignBuildInfo?` | No | External build system info (Bazel, CMake, KMP/Gradle) |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eGraphEdge\u003c/strong\u003e\u003c/summary\u003e\n\n| Field | Type | Required | Description |\n|---|---|---|---|\n| `source` | `string` | Yes | ID of the source node (depends on target) |\n| `target` | `string` | Yes | ID of the target node (dependency) |\n| `kind` | `DependencyKind?` | No | `target`, `project`, `sdk`, `xcframework` |\n| `platformConditions` | `Platform[]?` | No | Platform conditions for this edge |\n\n\u003c/details\u003e\n\nSee the full type definitions in the [Data Types reference](https://ajkolean.github.io/xcode-graph/reference/data-types).\n\n## Theming\n\nThe component is fully themeable via CSS custom properties. Set `--graph-*` properties on the `\u003cxcode-graph\u003e` element or any ancestor:\n\n```css\nxcode-graph {\n  /* Core */\n  --graph-bg: #1a1a2e;\n  --graph-bg-secondary: #16213e;\n  --graph-text: #e2e8f0;\n  --graph-text-muted: rgba(226, 232, 240, 0.5);\n  --graph-accent: #7c3aed;\n  --graph-accent-dim: rgba(124, 58, 237, 0.15);\n  --graph-border: rgba(255, 255, 255, 0.08);\n  --graph-canvas-bg: #1a1a2e;\n  --graph-radius: 8px;\n\n  /* Node type colors */\n  --graph-node-app: #f59e0b;\n  --graph-node-framework: #0ea5e9;\n  --graph-node-library: #22c55e;\n  --graph-node-test: #ec4899;\n  --graph-node-cli: #3b82f6;\n  --graph-node-package: #eab308;\n\n  /* Platform colors */\n  --graph-platform-ios: #007AFF;\n  --graph-platform-macos: #64D2FF;\n  --graph-platform-tvos: #B87BFF;\n  --graph-platform-watchos: #5AC8FA;\n  --graph-platform-visionos: #7D7AFF;\n\n  /* Typography */\n  --graph-font: 'Inter', system-ui, sans-serif;\n  --graph-font-mono: 'JetBrains Mono', ui-monospace, monospace;\n}\n```\n\n### Color scheme\n\nThe component adapts to `prefers-color-scheme` automatically. Both dark and light token sets are built in. To force a specific mode:\n\n```html\n\u003cxcode-graph color-scheme=\"light\"\u003e\u003c/xcode-graph\u003e\n\u003cxcode-graph color-scheme=\"dark\"\u003e\u003c/xcode-graph\u003e\n\u003cxcode-graph color-scheme=\"auto\"\u003e\u003c/xcode-graph\u003e  \u003c!-- default --\u003e\n```\n\nSee the [Component API reference](https://ajkolean.github.io/xcode-graph/reference/component-api) for all available properties with dark and light mode defaults.\n\n## Browser Support\n\nxcode-graph supports modern browsers with ES2020+ module support:\n\n| Browser | Minimum Version |\n|---|---|\n| Chrome | 80+ |\n| Firefox | 80+ |\n| Safari | 14+ |\n| Edge | 80+ |\n\nThe component uses ES modules, SVG rendering, and CSS custom properties. No polyfills are required for supported browsers.\n\n## Layout Engine\n\nThe graph uses a two-phase layout pipeline:\n\n1. **Macro layout (ELK)** — Positions clusters (groups of related nodes) using the ELK layered algorithm for hierarchical structure\n2. **Micro layout (D3-force)** — Positions nodes within each cluster using physics-based force simulation with boundary constraints, radial orbits, and collision avoidance\n\nOverride layout parameters via the `layoutOptions` property:\n\n```js\nconst app = document.querySelector('xcode-graph');\napp.layoutOptions = {\n  configOverrides: {\n    elkDirection: 'RIGHT',     // LEFT | RIGHT | UP | DOWN\n    elkNodeSpacing: 300,\n    elkLayerSpacing: 400,\n    iterations: 500,\n  },\n  hooks: {\n    onLayoutComplete: (result) =\u003e {\n      console.log('Layout done:', result.clusters.length, 'clusters');\n    },\n  },\n};\n```\n\nSee the [Layout Configuration reference](https://ajkolean.github.io/xcode-graph/reference/layout-configuration) for all available parameters.\n\n## Architecture\n\n```\nsrc/\n├── components/          Root \u003cxcode-graph\u003e web component\n├── graph/\n│   ├── components/      Canvas rendering (SVG, nodes, edges, tooltips)\n│   ├── controllers/     Layout orchestration, interaction handling, animation loop\n│   ├── layout/          ELK hierarchical + D3-force physics pipeline\n│   ├── signals/         Graph state (selection, highlights, view mode)\n│   └── utils/           Traversal, filtering, canvas theming\n├── services/\n│   ├── graph-data-service.ts       O(1) indexed data layer\n│   ├── graph-analysis-service.ts   Circular dependency \u0026 path detection\n│   ├── xcode-graph.service.ts      Raw Tuist JSON → internal format\n│   ├── xcode-graph.validation.ts   Zod schema validation\n│   ├── graph-loader.ts             Progressive loading\n│   ├── graph-stats-service.ts      Graph statistics\n│   └── error-service.ts            User-facing error handling\n├── shared/\n│   ├── schemas/         Type definitions (GraphNode, GraphEdge, enums)\n│   ├── signals/         Global state (filters, UI, errors)\n│   ├── controllers/     Zag-js, keyboard shortcuts, focus traps, resize\n│   └── machines/        Zag-js state machines\n├── ui/\n│   ├── layout/          Tab orchestrator, header, sidebar\n│   ├── components/      80+ UI components (filters, panels, search, badges)\n│   └── utils/           Colors, icons, sizing, viewport\n├── styles/\n│   ├── tokens.css       Design tokens (dark + light mode)\n│   └── theme-utils.ts   Color manipulation, contrast checking\n└── index.ts             Library entry point (re-exports public API)\n```\n\n### Key Technologies\n\n| Concern | Technology |\n|---|---|\n| Web components | [Lit](https://lit.dev) 3.x |\n| State management | [Lit Signals](https://github.com/nicklama/xcode-graph) (`@lit-labs/signals`) |\n| UI state machines | [Zag-js](https://zagjs.com) |\n| Hierarchical layout | [ELK.js](https://github.com/kieler/elkjs) |\n| Physics simulation | [D3-force](https://d3js.org/d3-force) |\n| Schema validation | [Zod](https://zod.dev) 4.x |\n| Color utilities | [colord](https://colord.omgovich.dev/) |\n| Web workers | [Comlink](https://github.com/nicklama/xcode-graph) |\n| Focus management | [focus-trap](https://github.com/focus-trap/focus-trap) |\n\n### Services\n\n| Service | Purpose |\n|---|---|\n| `GraphDataService` | Centralized O(1) data layer with indexed lookups by type, project, platform, and origin. Provides dependency queries (direct, transitive, BFS traversal) and cluster support. |\n| `GraphAnalysisService` | Stateless algorithms for graph analysis: BFS path detection and DFS cycle finding. |\n| `XcodeGraphService` | Transforms raw Tuist/XcodeGraph JSON into the internal `GraphData` format. Forward-compatible — unknown enum values produce warnings, not crashes. |\n| `ErrorService` | Singleton error handling with toast notifications. Auto-dismiss timers, severity levels, and user-facing messages. |\n| `GraphStatsService` | Computes graph statistics (node counts, edge counts, connectivity metrics). |\n| `GraphLoaderService` | Progressive/lazy loading with progress tracking. |\n\n### State Management\n\nThe component uses [Lit Signals](https://lit.dev/docs/data/signals/) for reactive state:\n\n- **Graph signals** — `selectedNode`, `selectedCluster`, `hoveredNode`, `circularDependencies`, highlight toggles\n- **Filter signals** — Active filters for node types, platforms, origins, projects, packages\n- **UI signals** — Zoom level, search query, animation toggle, active tab\n- **Display computed** — Derived filtered/highlighted data based on all active filters and selections\n- **Error signals** — Active error/warning state\n\n## Swift Integration\n\nxcode-graph is designed to work with Swift servers. A reference SwiftNIO implementation serves the component from CDN with zero bundled assets:\n\n```\nGET /          → HTML page loading \u003cxcode-graph\u003e from jsdelivr\nGET /graph.json → Raw XcodeGraph JSON data\n```\n\n```swift\nimport XcodeGraphServer\n\nlet server = try GraphServer(graph: graph)\ntry server.start()  // opens browser, blocks until ctrl-c\n```\n\nThe Swift package includes:\n- **XcodeGraphServer** — SwiftNIO HTTP server (binds to `localhost:8081`)\n- **XcodeGraphCLI** — Command-line interface\n- **TransformGraph** — Swift code analyzer for type extraction\n\nSee the [Swift Integration guide](https://ajkolean.github.io/xcode-graph/guide/swift-integration) for details.\n\n## IDE Support\n\nThe package ships metadata files for editor integration:\n\n| File | Editor | Purpose |\n|---|---|---|\n| `custom-elements.json` | All | Custom Elements Manifest (CEM) |\n| `web-types.json` | WebStorm/JetBrains | Component and property completions |\n| `vscode.html-custom-data.json` | VS Code | HTML tag and attribute IntelliSense |\n| `vscode.css-custom-data.json` | VS Code | CSS custom property completions |\n\n## Development\n\n```bash\npnpm install              # Install dependencies\npnpm dev                  # Start dev server (port 3000)\npnpm test:run             # Run unit tests\npnpm test:coverage        # Run tests with coverage\npnpm check                # Lint + format (Biome) + token validation\npnpm build:lib            # Build production library bundle\npnpm docs:dev             # Start docs dev server (port 5174)\npnpm docs:api             # Generate TypeDoc API reference\npnpm analyze              # Regenerate Custom Elements Manifest\npnpm size                 # Check bundle size limits\npnpm size:why             # Analyze bundle composition\npnpm depcheck             # Check for unused dependencies\n```\n\n### CI/CD\n\nThe project runs six GitHub Actions workflows:\n\n| Workflow | Trigger | Purpose |\n|---|---|---|\n| `build.yml` | Push / PR | Lint, test with coverage, type-check, verify CEM manifest, verify API surface, build |\n| `publish.yml` | Git tag `v*` | Version alignment check, test, build, publish to npm |\n| `docs.yml` | Push to main | Build and deploy VitePress + TypeDoc docs to GitHub Pages |\n| `audit.yml` | Schedule | Security audit of dependencies |\n| `size-limit.yml` | Push / PR | Bundle size monitoring (main: 210 kB gzip, all chunks: 785 kB gzip) |\n| `compat-check.yml` | Push / PR | Compatibility testing |\n\n### Testing\n\nTests use Vitest with both jsdom (unit) and Playwright (browser) environments:\n\n```bash\npnpm test:run             # Run all tests once\npnpm test                 # Watch mode\npnpm test:coverage        # With V8 coverage (text, HTML, LCOV)\n```\n\nTest coverage includes services, schemas, signals, controllers, utilities, layout algorithms, UI components, web workers, accessibility (vitest-axe), and integration tests.\n\n## Documentation\n\nFull docs at **[ajkolean.github.io/xcode-graph](https://ajkolean.github.io/xcode-graph/)**\n\n- [Getting Started](https://ajkolean.github.io/xcode-graph/guide/) — Installation, usage, data shape, theming, and color scheme\n- [Examples](https://ajkolean.github.io/xcode-graph/guide/examples) — Common usage patterns (embedded, file upload, CDN, theming)\n- [Swift Integration](https://ajkolean.github.io/xcode-graph/guide/swift-integration) — Embedding in a Swift server with SwiftNIO\n- [Architecture](https://ajkolean.github.io/xcode-graph/guide/architecture) — Component tree, data flow, layout pipeline\n- [Troubleshooting](https://ajkolean.github.io/xcode-graph/guide/troubleshooting) — FAQ and common issues\n- [Component API](https://ajkolean.github.io/xcode-graph/reference/component-api) — Properties, methods, events, CSS custom properties\n- [Data Types](https://ajkolean.github.io/xcode-graph/reference/data-types) — GraphNode, GraphEdge, enums, and all type definitions\n- [Layout Configuration](https://ajkolean.github.io/xcode-graph/reference/layout-configuration) — ELK \u0026 D3-force parameters and lifecycle hooks\n- [API Reference](https://ajkolean.github.io/xcode-graph/api/) — Full TypeDoc reference (100+ exported functions, classes, and types)\n\n## License\n\n[MIT](LICENSE) \u0026copy; Andy Kolean\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fajkolean%2Fxcode-graph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fajkolean%2Fxcode-graph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fajkolean%2Fxcode-graph/lists"}