# `Surface.AST.MacroComponent`
[🔗](https://github.com/surface-ui/surface/blob/v0.12.3/lib/surface/ast.ex#L529)

An AST node representing a macro component

## Properties
    * `:module` - the component module
    * `:attributes` - the specified attributes
    * `:directives` - any directives to be applied to this macro
    * `:children` - the children after the macro is expanded
    * `:meta` - compilation meta data
    * `:debug` - keyword list indicating when debug information should be printed during compilation

# `t`
[🔗](https://github.com/surface-ui/surface/blob/v0.12.3/lib/surface/ast.ex#L543)

```elixir
@type t() :: %Surface.AST.MacroComponent{
  attributes: [Surface.AST.Attribute.t()],
  children: [Surface.AST.t()],
  debug: [atom()],
  directives: [Surface.AST.Directive.t()],
  meta: Surface.AST.Meta.t(),
  module: module(),
  name: binary()
}
```

---

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