# Clarity v0.5.1 - Table of Contents

> Clarity is an interactive introspection and visualization tool for Elixir projects, providing navigable graphs and diagrams for frameworks like Ash, Phoenix, and Ecto.

## Pages

- How To
  - [Integrating a Library with Clarity](integrate-from-a-library.md)

## Modules

- [Clarity](Clarity.md): <img src="priv/static/images/logo.svg" alt="Clarity Logo" width="250px" />
- [Clarity.CodeReloader](Clarity.CodeReloader.md): Simple Elixir CodeReloader listener that restarts Clarity on code changes.
- [Clarity.Components.CodeHighlighter](Clarity.Components.CodeHighlighter.md): Provides lexer selection for syntax highlighting using Makeup.

- [Clarity.Config](Clarity.Config.md): Centralized configuration management for Clarity.
- [Clarity.Introspector](Clarity.Introspector.md): Defines the behaviour and orchestration logic for introspectors.
- [Clarity.OpenEditor](Clarity.OpenEditor.md): Handles opening files in editors or browsers based on configuration.
- [Clarity.Router](Clarity.Router.md): Router for the Clarity LiveView application.

- [Clarity.SourceLocation](Clarity.SourceLocation.md): Represents source location information with application and module context.
- [Clarity.Telemetry](Clarity.Telemetry.md): Telemetry integration for Clarity introspection and worker events.
- [Demo.Accounts.Domain](Demo.Accounts.Domain.md): The Accounts domain.
This handles user management and authentication.

- Perspective
  - [Clarity.Perspective.Lens](Clarity.Perspective.Lens.md): Data structure representing a lens that provides a specific view onto the graph.
  - [Clarity.Perspective.Lensmaker](Clarity.Perspective.Lensmaker.md): Behavior for modules that create and update lenses.
  - [Clarity.Perspective.Lensmaker.Architect](Clarity.Perspective.Lensmaker.Architect.md): Architect lensmaker that provides a structural view of the application.
  - [Clarity.Perspective.Lensmaker.Debug](Clarity.Perspective.Lensmaker.Debug.md): Debug lensmaker that provides a comprehensive view of the graph structure.
  - [Clarity.Perspective.Lensmaker.Security](Clarity.Perspective.Lensmaker.Security.md): Security lensmaker that provides a security-focused view of the application.

- Graph
  - [Clarity.Graph](Clarity.Graph.md): Manages the graph structure.

  - [Clarity.Graph.Filter](Clarity.Graph.Filter.md): Composable filter functions for graph vertices.
  - [Clarity.Graph.Tree](Clarity.Graph.Tree.md): Manages a tree-structured digraph that maintains shortest paths from root to all vertices.

- Vertex Protocols
  - [Clarity.Vertex](Clarity.Vertex.md): Protocol for vertices in the `Clarity` graph.

  - [Clarity.Vertex.GraphGroupProvider](Clarity.Vertex.GraphGroupProvider.md): Protocol for providing graph group information for vertices.
  - [Clarity.Vertex.GraphShapeProvider](Clarity.Vertex.GraphShapeProvider.md): Protocol for providing graph shape information for vertices.
  - [Clarity.Vertex.ModuleProvider](Clarity.Vertex.ModuleProvider.md): Protocol for extracting module atoms from vertices.
  - [Clarity.Vertex.SourceLocationProvider](Clarity.Vertex.SourceLocationProvider.md): Protocol for providing source location information for vertices.
  - [Clarity.Vertex.TooltipProvider](Clarity.Vertex.TooltipProvider.md): Protocol for providing tooltip content for vertices.

- Vertices
  - [Clarity.Vertex.Application](Clarity.Vertex.Application.md): Vertex implementation for OTP applications.

  - [Clarity.Vertex.Module](Clarity.Vertex.Module.md): Vertex implementation for Elixir modules.

  - [Clarity.Vertex.Root](Clarity.Vertex.Root.md): Vertex implementation for the root node in the Clarity graph.

  - [Clarity.Vertex.Util](Clarity.Vertex.Util.md): Utility functions for working with vertices.

- Content
  - [Clarity.Content](Clarity.Content.md): Behavior and struct for content providers that display information about vertices.
  - [Clarity.Content.Graph](Clarity.Content.Graph.md): Built-in content provider for graph visualization.
  - [Clarity.Content.Moduledoc](Clarity.Content.Moduledoc.md): Built-in content provider for module documentation.

- Components
  - [Clarity.Components.MarkdownComponent](Clarity.Components.MarkdownComponent.md): Phoenix component for rendering markdown content with vertex:// link transformation.
  - [Clarity.IconComponents](Clarity.IconComponents.md): Provides reusable icon components for the Clarity application.
  - [Clarity.TooltipComponent](Clarity.TooltipComponent.md): A lazy-loading tooltip component that only renders tooltips for visible and nearby vertices.
  - [Clarity.TreeComponent](Clarity.TreeComponent.md): A lazy-loading navigation tree component that only renders visible nodes.

- Ash Integration
  - [Clarity.Content.Ash.ActionOverview](Clarity.Content.Ash.ActionOverview.md): Content provider for Ash Action overview.
  - [Clarity.Content.Ash.AggregateOverview](Clarity.Content.Ash.AggregateOverview.md): Content provider for Ash Aggregate overview.
  - [Clarity.Content.Ash.ApplicationOverview](Clarity.Content.Ash.ApplicationOverview.md): Content provider for Application overview in Ash context.
  - [Clarity.Content.Ash.AttributeOverview](Clarity.Content.Ash.AttributeOverview.md): Content provider for Ash Attribute overview.
  - [Clarity.Content.Ash.CalculationOverview](Clarity.Content.Ash.CalculationOverview.md): Content provider for Ash Calculation overview.
  - [Clarity.Content.Ash.DomainOverview](Clarity.Content.Ash.DomainOverview.md): Content provider for Ash Domain overview.
  - [Clarity.Content.Ash.PolicyOverview](Clarity.Content.Ash.PolicyOverview.md): Content provider for Ash Policy overview.
  - [Clarity.Content.Ash.RelationshipOverview](Clarity.Content.Ash.RelationshipOverview.md): Content provider for Ash Relationship overview.
  - [Clarity.Content.Ash.ResourceOverview](Clarity.Content.Ash.ResourceOverview.md): Content provider for Ash Resource overview.
  - [Clarity.Vertex.Ash.Action](Clarity.Vertex.Ash.Action.md): Vertex implementation for Ash resource actions.

  - [Clarity.Vertex.Ash.Aggregate](Clarity.Vertex.Ash.Aggregate.md): Vertex implementation for Ash resource aggregates.

  - [Clarity.Vertex.Ash.Attribute](Clarity.Vertex.Ash.Attribute.md): Vertex implementation for Ash resource attributes.

  - [Clarity.Vertex.Ash.Calculation](Clarity.Vertex.Ash.Calculation.md): Vertex implementation for Ash resource calculations.

  - [Clarity.Vertex.Ash.DataLayer](Clarity.Vertex.Ash.DataLayer.md): Vertex implementation for Ash data layers.

  - [Clarity.Vertex.Ash.Domain](Clarity.Vertex.Ash.Domain.md): Vertex implementation for Ash domains.

  - [Clarity.Vertex.Ash.Policy](Clarity.Vertex.Ash.Policy.md): Vertex implementation for Ash resource policies.
  - [Clarity.Vertex.Ash.Relationship](Clarity.Vertex.Ash.Relationship.md): Vertex implementation for Ash resource relationships.

  - [Clarity.Vertex.Ash.Resource](Clarity.Vertex.Ash.Resource.md): Vertex implementation for Ash resources.

  - [Clarity.Vertex.Ash.Type](Clarity.Vertex.Ash.Type.md): Vertex implementation for Ash types.

- Spark Integration
  - [Clarity.Vertex.Spark.Dsl](Clarity.Vertex.Spark.Dsl.md): Vertex implementation for Spark DSL modules.

  - [Clarity.Vertex.Spark.Entity](Clarity.Vertex.Spark.Entity.md): Vertex implementation for Spark DSL entities.
  - [Clarity.Vertex.Spark.Extension](Clarity.Vertex.Spark.Extension.md): Vertex implementation for Spark DSL Extensions.

  - [Clarity.Vertex.Spark.Section](Clarity.Vertex.Spark.Section.md): Vertex implementation for Spark DSL sections.

- Phoenix Integration
  - [Clarity.Content.Phoenix.RouterRoutes](Clarity.Content.Phoenix.RouterRoutes.md): Content provider for Phoenix Router routes.
  - [Clarity.Vertex.Phoenix.Endpoint](Clarity.Vertex.Phoenix.Endpoint.md): Vertex implementation for Phoenix endpoints.

  - [Clarity.Vertex.Phoenix.Router](Clarity.Vertex.Phoenix.Router.md): Vertex implementation for Phoenix routers.

## Mix Tasks

- [mix clarity.export_graph](Mix.Tasks.Clarity.ExportGraph.md): This task exports the Clarity graph to a DOT file, which can be used for
visualization with Graphviz.
- [mix clarity.install](Mix.Tasks.Clarity.Install.md): Installs `Clarity`

