# tableberg/1.1.5/renderer/Text/TextAttrs.php

Tableberg – Simple Gutenberg Table Block, version 1.1.5. 109 lines.

- Page: https://pluginprobe.com/plugins/tableberg/1.1.5/code/renderer/Text/TextAttrs.php
- Raw: https://pluginprobe.com/plugins/tableberg/1.1.5/raw/renderer/Text/TextAttrs.php
- Modified: 2026-07-06T14:46:46+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/tableberg/1.1.5/code/renderer/Text/TextAttrs.php#L10-L20`.

```php
<?php

namespace Tableberg\Renderer\Text;

use Tableberg\Renderer\Attrs\StringAttr;
use Tableberg\Renderer\Attrs\Sides;

use function Tableberg\Renderer\getOrNull;

class TextAttrs {
    /** @var StringAttr */
    public $content;

    /** @var StringAttr */
    public $align;

    /** @var TextStyles */
    public $styles;

    /**
     * @param array<string, mixed>|null $data
     * @return self
     */
    public static function from_array($data) {
        $data = is_array($data) ? $data : [];
        $defaults = Defaults::get_defaults();

        $instance = new self();
        $instance->content = new StringAttr(
            getOrNull($data['content']),
            $defaults['content']
        );
        $instance->align = new StringAttr(
            getOrNull($data['align']),
            $defaults['align'],
            ['left', 'center', 'right']
        );
        $instance->styles = TextStyles::from_array(getOrNull($data['styles']));

        return $instance;
    }
}

class TextStyles {
    /** @var StringAttr */
    public $textColor;

    /** @var StringAttr */
    public $linkColor;

    /** @var StringAttr */
    public $backgroundColor;

    /** @var StringAttr */
    public $fontSize;

    /** @var Sides */
    public $padding;

    /** @var Sides */
    public $margin;

    /**
     * @param array<string, mixed>|null $data
     * @return self
     */
    public static function from_array($data) {
        $data = is_array($data) ? $data : [];
        $defaults = Defaults::get_defaults();
        $d = getOrNull($defaults['styles']);

        $defaultTextColor = getOrNull($d['textColor']);
        $defaultLinkColor = getOrNull($d['linkColor']);
        $defaultBackgroundColor = getOrNull($d['backgroundColor']);
        $defaultFontSize = getOrNull($d['fontSize']);

        $instance = new self();
        $instance->textColor = new StringAttr(
            getOrNull($data['textColor']),
            $defaultTextColor
        );
        $instance->linkColor = new StringAttr(
            getOrNull($data['linkColor']),
            $defaultLinkColor
        );
        $instance->backgroundColor = new StringAttr(
            getOrNull($data['backgroundColor']),
            $defaultBackgroundColor
        );
        $instance->fontSize = new StringAttr(
            getOrNull($data['fontSize']),
            $defaultFontSize
        );

        $defaultPadding = getOrNull($d['padding']);
        $defaultMargin = getOrNull($d['margin']);
        $instance->padding = Sides::from_array(
            getOrNull($data['padding']),
            is_array($defaultPadding) ? $defaultPadding : []
        );
        $instance->margin = Sides::from_array(
            getOrNull($data['margin']),
            is_array($defaultMargin) ? $defaultMargin : []
        );

        return $instance;
    }
}

```
