Source of truth for all 829 PhiaUI components.
Each entry is keyed by an atom and contains:
:name— snake_case string identifier:module— the Elixir module that will be generated on ejection:template_file— path insidepriv/templates/for the EEx source:js_hooks— list of JS hook names required by this component:dependencies— list of component atoms this component composes:tier— domain tier (:primitive | :interactive | :form | :navigation | :shell | :widget | :collab):shadcn_equivalent— matching shadcn/ui component name, ornil:status—:plannedor:implemented
Usage
# All components
PhiaUi.ComponentRegistry.all()
# Single lookup
PhiaUi.ComponentRegistry.get(:button)
# Filter by tier
PhiaUi.ComponentRegistry.by_tier(:primitive)
Summary
Functions
Returns the full registry map — all 829 component metadata entries.
Returns all components in a given tier.
Returns metadata for a single component by key, or nil if not found.
Types
@type status() :: :planned | :implemented
@type tier() ::
:primitive
| :interactive
| :form
| :navigation
| :shell
| :widget
| :layout
| :animation
| :surface
| :collab
Functions
@spec all() :: %{required(atom()) => component_meta()}
Returns the full registry map — all 829 component metadata entries.
@spec by_tier(tier()) :: [component_meta()]
Returns all components in a given tier.
@spec get(atom()) :: component_meta() | nil
Returns metadata for a single component by key, or nil if not found.