name: ManagesComponents
class_comment: null
dependencies:
- name: Htmlable
  type: class
  source: Illuminate\Contracts\Support\Htmlable
- name: View
  type: class
  source: Illuminate\Contracts\View\View
- name: Arr
  type: class
  source: Illuminate\Support\Arr
- name: ComponentSlot
  type: class
  source: Illuminate\View\ComponentSlot
properties:
- name: componentStack
  visibility: protected
  comment: '# * The components being rendered.

    # *

    # * @var array'
- name: componentData
  visibility: protected
  comment: '# * The original data passed to the component.

    # *

    # * @var array'
- name: currentComponentData
  visibility: protected
  comment: '# * The component data for the component that is currently being rendered.

    # *

    # * @var array'
- name: slots
  visibility: protected
  comment: '# * The slot contents for the component.

    # *

    # * @var array'
- name: slotStack
  visibility: protected
  comment: '# * The names of the slots being rendered.

    # *

    # * @var array'
methods:
- name: startComponent
  visibility: public
  parameters:
  - name: view
  - name: data
    default: '[]'
  comment: "# * The components being rendered.\n# *\n# * @var array\n# */\n# protected\
    \ $componentStack = [];\n# \n# /**\n# * The original data passed to the component.\n\
    # *\n# * @var array\n# */\n# protected $componentData = [];\n# \n# /**\n# * The\
    \ component data for the component that is currently being rendered.\n# *\n# *\
    \ @var array\n# */\n# protected $currentComponentData = [];\n# \n# /**\n# * The\
    \ slot contents for the component.\n# *\n# * @var array\n# */\n# protected $slots\
    \ = [];\n# \n# /**\n# * The names of the slots being rendered.\n# *\n# * @var\
    \ array\n# */\n# protected $slotStack = [];\n# \n# /**\n# * Start a component\
    \ rendering process.\n# *\n# * @param  \\Illuminate\\Contracts\\View\\View|\\\
    Illuminate\\Contracts\\Support\\Htmlable|\\Closure|string  $view\n# * @param \
    \ array  $data\n# * @return void"
- name: startComponentFirst
  visibility: public
  parameters:
  - name: names
  - name: data
    default: '[]'
  comment: '# * Get the first view that actually exists from the given list, and start
    a component.

    # *

    # * @param  array  $names

    # * @param  array  $data

    # * @return void'
- name: renderComponent
  visibility: public
  parameters: []
  comment: '# * Render the current component.

    # *

    # * @return string'
- name: componentData
  visibility: protected
  parameters: []
  comment: '# * Get the data for the given component.

    # *

    # * @return array'
- name: getConsumableComponentData
  visibility: public
  parameters:
  - name: key
  - name: default
    default: 'null'
  comment: '# * Get an item from the component data that exists above the current
    component.

    # *

    # * @param  string  $key

    # * @param  mixed  $default

    # * @return mixed|null'
- name: slot
  visibility: public
  parameters:
  - name: name
  - name: content
    default: 'null'
  - name: attributes
    default: '[]'
  comment: '# * Start the slot rendering process.

    # *

    # * @param  string  $name

    # * @param  string|null  $content

    # * @param  array  $attributes

    # * @return void'
- name: endSlot
  visibility: public
  parameters: []
  comment: '# * Save the slot content for rendering.

    # *

    # * @return void'
- name: currentComponent
  visibility: protected
  parameters: []
  comment: '# * Get the index for the current component.

    # *

    # * @return int'
- name: flushComponents
  visibility: protected
  parameters: []
  comment: '# * Flush all of the component state.

    # *

    # * @return void'
traits:
- Illuminate\Contracts\Support\Htmlable
- Illuminate\Contracts\View\View
- Illuminate\Support\Arr
- Illuminate\View\ComponentSlot
interfaces: []