> Source: https://laravilt.com/docs/infolists/custom/introduction

# Custom Infolist Entries

Create custom Vue components for infolists.

## Overview

| Topic | Description |
|-------|-------------|
| [Vue Components](https://github.com/laravilt/laravilt/blob/HEAD/docs/infolists/custom/vue-components) | Component structure |
| [Creating Entries](https://github.com/laravilt/laravilt/blob/HEAD/docs/infolists/custom/creating-entries) | PHP entry classes |
| [Packages](https://github.com/laravilt/laravilt/blob/HEAD/docs/infolists/custom/packages) | Required packages |

## Entry Architecture

```
PHP Entry Class → JSON Schema → Vue Component
```

## Quick Start

1. Create PHP entry class
2. Define Vue component name
3. Create Vue component
4. Register component

## Example

```php
<?php

use Laravilt\Infolists\Entries\Entry;

class RatingEntry extends Entry
{
    protected string $view = 'infolist-rating-entry';

    protected int $maxStars = 5;

    public function maxStars(int $max): static
    {
        $this->maxStars = $max;
        return $this;
    }

    public function toArray(): array
    {
        return array_merge(parent::toArray(), [
            'maxStars' => $this->maxStars,
        ]);
    }
}
```

## Related

- [Vue Components](https://github.com/laravilt/laravilt/blob/HEAD/docs/infolists/custom/vue-components) - Vue setup
- [Creating Entries](https://github.com/laravilt/laravilt/blob/HEAD/docs/infolists/custom/creating-entries) - PHP classes
