final public function export()
    {
        $properties = [
            'status'  => $this->status,
            'name'    => $this->name,
            'variant' => $this->variant,
            'label'   => $this->label,
            'class'   => get_class($this),
            'type'    => $this->type,
            'valid'   => false,
            'path'    => $this->componentPath,
            'docs'    => $this->getDocumentationDirectory(),
        ];

        // Export the component properties
        try {
            $properties            = array_merge($properties, $this->exportInternal());
            $properties['request'] = $this->exportRequest();
            $properties['valid']   = true;

            // In case of an error
        } catch (\Exception $e) {
            $properties['error'] = $e->getMessage();
        }

        return $properties;
    }