nested-fields.blade.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. @php
  2. $level ??= 0;
  3. $levelNestingClass = match($level) {
  4. 0 => "sl-ml-px",
  5. default => "sl-ml-7"
  6. };
  7. $expandable ??= !isset($fields["[]"]);
  8. @endphp
  9. @foreach($fields as $name => $field)
  10. <div class="{{ $expandable ? 'expandable' : '' }} sl-text-sm sl-border-l {{ $levelNestingClass }}">
  11. @component('scribe::themes.elements.components.field-details', [
  12. 'name' => $name,
  13. 'type' => $field['type'] ?? 'string',
  14. 'required' => $field['required'] ?? false,
  15. 'description' => $field['description'] ?? '',
  16. 'example' => $field['example'] ?? '',
  17. 'enumValues' => $field['enumValues'] ?? null,
  18. 'endpointId' => $endpointId,
  19. 'hasChildren' => !empty($field['__fields']),
  20. 'component' => 'body',
  21. ])
  22. @endcomponent
  23. @if(!empty($field['__fields']))
  24. <div class="children" style="{{ $expandable ? 'display: none;' : '' }}">
  25. @component('scribe::themes.elements.components.nested-fields', [
  26. 'fields' => $field['__fields'],
  27. 'endpointId' => $endpointId,
  28. 'level' => $level + 1,
  29. 'expandable'=> $expandable,
  30. ])
  31. @endcomponent
  32. </div>
  33. @endif
  34. </div>
  35. @endforeach