Upgrade framework
This commit is contained in:
9
vendor/nunomaduro/termwind/src/Components/Anchor.php
vendored
Normal file
9
vendor/nunomaduro/termwind/src/Components/Anchor.php
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Termwind\Components;
|
||||
|
||||
final class Anchor extends Element
|
||||
{
|
||||
}
|
||||
26
vendor/nunomaduro/termwind/src/Components/BreakLine.php
vendored
Normal file
26
vendor/nunomaduro/termwind/src/Components/BreakLine.php
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Termwind\Components;
|
||||
|
||||
final class BreakLine extends Element
|
||||
{
|
||||
/**
|
||||
* Get the string representation of the element.
|
||||
*/
|
||||
public function toString(): string
|
||||
{
|
||||
$display = $this->styles->getProperties()['styles']['display'] ?? 'inline';
|
||||
|
||||
if ($display === 'hidden') {
|
||||
return '';
|
||||
}
|
||||
|
||||
if ($display === 'block') {
|
||||
return parent::toString();
|
||||
}
|
||||
|
||||
return parent::toString()."\r";
|
||||
}
|
||||
}
|
||||
10
vendor/nunomaduro/termwind/src/Components/Dd.php
vendored
Normal file
10
vendor/nunomaduro/termwind/src/Components/Dd.php
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Termwind\Components;
|
||||
|
||||
final class Dd extends Element
|
||||
{
|
||||
protected static array $defaultStyles = ['block', 'ml-4'];
|
||||
}
|
||||
10
vendor/nunomaduro/termwind/src/Components/Div.php
vendored
Normal file
10
vendor/nunomaduro/termwind/src/Components/Div.php
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Termwind\Components;
|
||||
|
||||
final class Div extends Element
|
||||
{
|
||||
protected static array $defaultStyles = ['block'];
|
||||
}
|
||||
10
vendor/nunomaduro/termwind/src/Components/Dl.php
vendored
Normal file
10
vendor/nunomaduro/termwind/src/Components/Dl.php
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Termwind\Components;
|
||||
|
||||
final class Dl extends Element
|
||||
{
|
||||
protected static array $defaultStyles = ['block'];
|
||||
}
|
||||
10
vendor/nunomaduro/termwind/src/Components/Dt.php
vendored
Normal file
10
vendor/nunomaduro/termwind/src/Components/Dt.php
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Termwind\Components;
|
||||
|
||||
final class Dt extends Element
|
||||
{
|
||||
protected static array $defaultStyles = ['block', 'font-bold'];
|
||||
}
|
||||
121
vendor/nunomaduro/termwind/src/Components/Element.php
vendored
Normal file
121
vendor/nunomaduro/termwind/src/Components/Element.php
vendored
Normal file
@@ -0,0 +1,121 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Termwind\Components;
|
||||
|
||||
use Symfony\Component\Console\Output\OutputInterface;
|
||||
use Termwind\Actions\StyleToMethod;
|
||||
use Termwind\Html\InheritStyles;
|
||||
use Termwind\ValueObjects\Styles;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*
|
||||
* @method Element inheritFromStyles(Styles $styles)
|
||||
* @method Element fontBold()
|
||||
* @method Element strong()
|
||||
* @method Element italic()
|
||||
* @method Element underline()
|
||||
* @method Element lineThrough()
|
||||
* @method int getLength()
|
||||
* @method int getInnerWidth()
|
||||
* @method array getProperties()
|
||||
* @method Element href(string $href)
|
||||
* @method bool hasStyle(string $style)
|
||||
* @method Element addStyle(string $style)
|
||||
*/
|
||||
abstract class Element
|
||||
{
|
||||
/** @var string[] */
|
||||
protected static array $defaultStyles = [];
|
||||
|
||||
protected Styles $styles;
|
||||
|
||||
/**
|
||||
* Creates an element instance.
|
||||
*
|
||||
* @param array<int, Element|string>|string $content
|
||||
*/
|
||||
final public function __construct(
|
||||
protected OutputInterface $output,
|
||||
protected array|string $content,
|
||||
Styles|null $styles = null
|
||||
) {
|
||||
$this->styles = $styles ?? new Styles(defaultStyles: static::$defaultStyles);
|
||||
$this->styles->setElement($this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates an element instance with the given styles.
|
||||
*
|
||||
* @param array<int, Element|string>|string $content
|
||||
* @param array<string, mixed> $properties
|
||||
*/
|
||||
final public static function fromStyles(OutputInterface $output, array|string $content, string $styles = '', array $properties = []): static
|
||||
{
|
||||
$element = new static($output, $content);
|
||||
if ($properties !== []) {
|
||||
$element->styles->setProperties($properties);
|
||||
}
|
||||
|
||||
$elementStyles = StyleToMethod::multiple($element->styles, $styles);
|
||||
|
||||
return new static($output, $content, $elementStyles);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the string representation of the element.
|
||||
*/
|
||||
public function toString(): string
|
||||
{
|
||||
if (is_array($this->content)) {
|
||||
$inheritance = new InheritStyles();
|
||||
$this->content = implode('', $inheritance($this->content, $this->styles));
|
||||
}
|
||||
|
||||
return $this->styles->format($this->content);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param array<int, mixed> $arguments
|
||||
*/
|
||||
public function __call(string $name, array $arguments): mixed
|
||||
{
|
||||
if (method_exists($this->styles, $name)) {
|
||||
$result = $this->styles->{$name}(...$arguments);
|
||||
|
||||
if (str_starts_with($name, 'get') || str_starts_with($name, 'has')) {
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the content of the element.
|
||||
*
|
||||
* @param array<int, Element|string>|string $content
|
||||
*/
|
||||
final public function setContent(array|string $content): static
|
||||
{
|
||||
return new static($this->output, $content, $this->styles);
|
||||
}
|
||||
|
||||
/**
|
||||
* Renders the string representation of the element on the output.
|
||||
*/
|
||||
final public function render(int $options): void
|
||||
{
|
||||
$this->output->writeln($this->toString(), $options);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the string representation of the element.
|
||||
*/
|
||||
final public function __toString(): string
|
||||
{
|
||||
return $this->toString();
|
||||
}
|
||||
}
|
||||
10
vendor/nunomaduro/termwind/src/Components/Hr.php
vendored
Normal file
10
vendor/nunomaduro/termwind/src/Components/Hr.php
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Termwind\Components;
|
||||
|
||||
final class Hr extends Element
|
||||
{
|
||||
protected static array $defaultStyles = ['block', 'border-t'];
|
||||
}
|
||||
10
vendor/nunomaduro/termwind/src/Components/Li.php
vendored
Normal file
10
vendor/nunomaduro/termwind/src/Components/Li.php
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Termwind\Components;
|
||||
|
||||
final class Li extends Element
|
||||
{
|
||||
protected static array $defaultStyles = ['block'];
|
||||
}
|
||||
10
vendor/nunomaduro/termwind/src/Components/Ol.php
vendored
Normal file
10
vendor/nunomaduro/termwind/src/Components/Ol.php
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Termwind\Components;
|
||||
|
||||
final class Ol extends Element
|
||||
{
|
||||
protected static array $defaultStyles = ['block', 'list-decimal'];
|
||||
}
|
||||
10
vendor/nunomaduro/termwind/src/Components/Paragraph.php
vendored
Normal file
10
vendor/nunomaduro/termwind/src/Components/Paragraph.php
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Termwind\Components;
|
||||
|
||||
final class Paragraph extends Element
|
||||
{
|
||||
protected static array $defaultStyles = ['block', 'my-1'];
|
||||
}
|
||||
19
vendor/nunomaduro/termwind/src/Components/Raw.php
vendored
Normal file
19
vendor/nunomaduro/termwind/src/Components/Raw.php
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Termwind\Components;
|
||||
|
||||
/**
|
||||
* @internal
|
||||
*/
|
||||
final class Raw extends Element
|
||||
{
|
||||
/**
|
||||
* Get the string representation of the element.
|
||||
*/
|
||||
public function toString(): string
|
||||
{
|
||||
return is_array($this->content) ? implode('', $this->content) : $this->content;
|
||||
}
|
||||
}
|
||||
10
vendor/nunomaduro/termwind/src/Components/Span.php
vendored
Normal file
10
vendor/nunomaduro/termwind/src/Components/Span.php
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Termwind\Components;
|
||||
|
||||
final class Span extends Element
|
||||
{
|
||||
// ..
|
||||
}
|
||||
10
vendor/nunomaduro/termwind/src/Components/Ul.php
vendored
Normal file
10
vendor/nunomaduro/termwind/src/Components/Ul.php
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Termwind\Components;
|
||||
|
||||
final class Ul extends Element
|
||||
{
|
||||
protected static array $defaultStyles = ['block', 'list-disc'];
|
||||
}
|
||||
Reference in New Issue
Block a user