function setup (Component $parent = null, DocumentContext $context, $props = null, array $bindings = null)
  {
    if (is_object ($props)) {
      $this->props = $props;
      $props       = [];
    }
    $this->setContext ($context);
    $this->bindings = $bindings;
    $this->onCreate ($props, $parent);
    $this->setProps ($props);
    $this->init ();
    return $this;
  }