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

An AST node representing a standard HTML tag

## Properties
    * `:module` - the component module
    * `:type` - the type of component (i.e. Surface.LiveComponent vs Surface.Component)
    * `:slot` - the name of the slot that this component is for
    * `:let` - the `:let` expression
    * `:props` - the props for this component
    * `:directives` - any directives to be applied to this tag
    * `:children` - the tag children
    * `: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#L582)

```elixir
@type t() :: %Surface.AST.SlotableComponent{
  debug: [atom()],
  directives: [Surface.AST.Directive.t()],
  dynamic_props: Surface.AST.DynamicAttribute.t(),
  let: Surface.AST.AttributeExpr.t() | nil,
  meta: Surface.AST.Meta.t(),
  module: module(),
  props: [Surface.AST.Attribute.t()],
  slot: atom(),
  slot_entries: %{
    :default =&gt; [Surface.AST.SlotEntry.t()],
    optional(atom()) =&gt; [Surface.AST.SlotEntry.t()]
  },
  type: module()
}
```

---

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