move into sonardesk

This commit is contained in:
Mark Gregory
2026-10-12 14:50:13 +01:00
parent 5f0d2ceb72
commit 38b4a7406f
879 changed files with 24021 additions and 1 deletions
+19
View File
@@ -0,0 +1,19 @@
<?php
namespace Modules\Builder\Services;
final class BuilderRenderer
{
public function __construct(private BuilderRegistry $registry) {}
public function render(array $document, array $context = []): string
{
return collect($document['nodes'] ?? [])->map(function (array $node) use ($context) {
if (($node['kind'] ?? 'component') === 'container') {
return '<div class="builder-container">'.$this->render($node, $context).'</div>';
}
return $this->registry->component((string) ($node['type'] ?? 'content'))->render($node['properties'] ?? [], $context);
})->implode("\n");
}
}