# `PhiaUiDesign.Catalog.FamilyResolver`
[🔗](https://github.com/charlenopires/PhiaUI/blob/v0.1.17/lib/phiaui_design/catalog/family_resolver.ex#L1)

Detects composable component families by analyzing which components share
the same module and have naming prefix patterns.

For example: card, card_header, card_title, card_content, card_footer
all belong to the "card" family.

# `family`

```elixir
@type family() :: %{
  root: atom(),
  root_name: String.t(),
  module: module(),
  children: [atom()],
  tier: atom()
}
```

# `family_for`

```elixir
@spec family_for(atom()) :: family() | nil
```

Get the family for a specific component.
Returns nil if the component is standalone (no family).

# `resolve_families`

```elixir
@spec resolve_families() :: [family()]
```

Resolve all component families from the registry.

Returns families where a root component has 1+ child components
in the same module with matching name prefix.

# `scaffold_order`

```elixir
@spec scaffold_order(atom()) :: [atom()]
```

Get the typical children for a component family.
Returns an ordered list suitable for auto-scaffolding.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
