refactor: Cleanup git state - commit all staged changes

Major refactoring cleanup:
- Add new controller architecture (class-controller-*.php)
- Add new settings-v2 UI (views/settings-v2/)
- Add new CSS architecture (agentic-sidebar.css, tokens)
- Add esbuild build pipeline (scripts/build.js, package.json)
- Add composer dependencies (vendor/)
- Add frontend src directory (assets/js/src/index.jsx)
- Add documentation files
- Remove old/obsolete files (class-settings.php, old CSS)

This commits all pending changes from previous refactoring efforts.
This commit is contained in:
Dwindi Ramadhana
2026-06-17 05:27:58 +07:00
parent d3f142222c
commit 690991c526
7963 changed files with 941566 additions and 67372 deletions

View File

@@ -0,0 +1,93 @@
<?php declare(strict_types=1);
/**
* This file is part of the Parsica library.
*
* Copyright (c) 2020 Mathias Verraes <mathias@verraes.net>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Tests\Parsica\Parsica;
use PHPUnit\Framework\TestCase;
use Parsica\Parsica\PHPUnit\ParserAssertions;
use function Parsica\Parsica\assemble;
use function Parsica\Parsica\char;
use function Parsica\Parsica\string;
final class assembleTest extends TestCase
{
use ParserAssertions;
/** @test */
public function assemble_string()
{
$parser = assemble(
string('first'),
string('second'),
);
$this->assertParses("firstsecond", $parser, "firstsecond");
$this->assertRemainder("firstsecond", $parser, "");
}
/** @test */
public function assemble_string_ignore()
{
$parser = assemble(
string('first')->thenIgnore(char('-')),
string('second'),
);
$this->assertParses("first-second", $parser, "firstsecond");
$this->assertRemainder("first-second", $parser, "");
}
/** @test */
public function assemble_arrays()
{
$toArray = fn($v) => [$v];
$parser = assemble(
string('first')->map($toArray),
string('second')->map($toArray),
);
$input = "firstsecond";
$expected = ["first", "second"];
$this->assertParses($input, $parser, $expected);
}
/** @test */
public function assemble_different_types_but_the_others_are_ignored()
{
// @todo this could be more elegant
$toArray = fn($v) => [$v];
$parser = assemble(
char('[')->sequence(
string('first')->map($toArray)
),
char(',')->sequence(
string('second')->map($toArray)
)->thenIgnore(char(']')),
);
$input = "[first,second]";
$expected = ["first", "second"];
$this->assertParses($input, $parser, $expected);
}
/** @test */
public function label()
{
$parser = assemble(
string('first'),
string('second'),
);
$this->assertParseFails("X", $parser, "'first'");
$this->assertParseFails("firsX", $parser, "'first'");
$this->assertParseFails("firstX", $parser, "'second'");
}
}