adrema/app/View/Form/Editor.php

54 lines
1.7 KiB
PHP

<?php
namespace App\View\Form;
use App\View\Traits\HasFormDimensions;
use Illuminate\View\Component;
class Editor extends Component
{
use HasFormDimensions;
public function __construct(
public string $name,
public string $size = 'default',
public ?string $hint = null,
public bool $required = false,
public string $label = '',
public string $id = ''
) {
$this->id = $this->id ? $this->id : $this->name;
}
public function render()
{
return <<<'HTML'
<div class="flex flex-col group {{$heightClass}}">
@if ($label)
<x-form::label :required="$required">{{$label}}</x-form::label>
@endif
<div class="relative w-full h-full">
<div
class="
w-full border-gray-600 border-solid text-gray-300 bg-gray-700 leading-none rounded-lg
group-[.size-default]:border-2 group-[.size-sm]:border
group-[.size-default]:text-sm group-[.size-sm]:text-xs
group-[.size-default]:p-2 group-[.size-sm]:p-1
"
@updated="$wire.{{$attributes->wire('model')->value}} = $event.detail"
x-data="editor($wire.{{$attributes->wire('model')->value}})"
id="{{$id}}"
{{$attributes}}
></div>
<x-ui::errors :for="$name" />
@if($hint)
<x-form::hint>{{$hint}}</x-form::hint>
@endif
</div>
</div>
HTML;
}
}