Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
filament-admix-components
filament-admix-components
agenciafmd/filament-starter
claude-code
filament-admix
form-components
reusable-components
phpstan-extensions
permissions
policies
traits

Use this skill before adding a new form or infolist field to any admix package, to check whether a reusable Filament component already exists (image/file/video upload, rich editor, YouTube input, icon picker, password input, disabled datetime, datetime entry) or a reusable trait/concern (`RedirectBack`, `WithScopes`). Do not use it for generic non-Filament PHP code or for the field-by-field Form conventions themselves (see `filament-admix-form-fields`).

Install
php artisan boost:add-skill agenciafmd/filament-starter

Save this content to: .claude/skills/filament-admix-components/SKILL.md

# Componentes reutilizáveis do Admix Antes de criar um novo componente de formulário, verifique se já existe um

equivalente no pacote `filament-admix`. Evite reimplementar upload de arquivo/vídeo, seletor de ícone, campo de senha,
etc. | componente | namespace | descrição | |------------+-----------+-----------| | ImageUploadWithAutomaticallyResize
| Agenciafmd\Admix\Resources\Forms\Components | upload de imagem única, com redimensionamento automático de imagem | |
ImageUploadMultipleWithAutomaticallyResize | Agenciafmd\Admix\Resources\Forms\Components | upload de múltiplas imagens,
com redimensionamento automático de imagem | | FileUploadWithDefault | Agenciafmd\Admix\Resources\Forms\Components |
upload de arquivo genérico, com nome de arquivo derivado de outro campo | | VideoUploadWithDefault |
Agenciafmd\Admix\Resources\Forms\Components | upload de vídeo (mp4), baseado em FileUploadWithDefault | |
RichEditorWithDefault | Agenciafmd\Admix\Resources\Forms\Components | editor de texto rico (rich editor) com
configuração padrão do pacote | | YouTubeInput | Agenciafmd\Admix\Resources\Forms\Components | campo de URL de vídeo do
YouTube | | IconPickerWithDefault | Agenciafmd\Admix\Resources\Forms\Components | seletor de ícone
(heroicons/tabler/frontend) | | PasswordInput | Agenciafmd\Admix\Resources\Forms\Components | campo de senha com regra
de validação e `dehydrated` condicional | | PermissionMatrix | Agenciafmd\Admix\Resources\Forms\Components | matriz de
permissões (linhas = Resources, colunas = abilities, coluna "Outros" para `getExtraPermissions()`), usada no formulário
de Grupos no campo `permissions` | | DateTimePickerDisabled | Agenciafmd\Admix\Resources\Forms\Components | campo de
data/hora desabilitado, oculto na criação (ex.: `created_at`/`updated_at` editáveis só na edição) | | DateTimeEntry |
Agenciafmd\Admix\Resources\Infolists\Components | exibição (infolist) de data/hora, usado em `created_at`/`updated_at`
no formulário | Traits e concerns reutilizáveis: | trait/concern | namespace | descrição |
|------------+-----------+-----------| | RedirectBack | Agenciafmd\Admix\Resources\Concerns | usado nas Pages de
Create/Edit para retornar à listagem após salvar | | WithScopes | Agenciafmd\Admix\Traits | fornece os scopes `isActive`
e `sort` para o Model; o `sort` lê o `$defaultSort`, que é obrigatório no Model, em vez de reimplementar ordenação | | PermissionRegistry |
Agenciafmd\Admix\Permissions | lista as permissões dos Resources do painel e monta as chaves `{ResourceClass}@{ability}`
(`permissionKey()`, `permissionFor()`); não reimplemente listas de permissões | | ResourcePolicy |
Agenciafmd\Admix\Policies | policy genérica registrada automaticamente para os models dos Resources; não crie Policy por
model (veja a skill `filament-admix-permissions`) |

Extensões do PHPStan: o admix e o `laravel-support` registram extensões pelo `phpstan/extension-installer`, então não
anote nem ignore os erros que elas resolvem.

| extensão | pacote | o que o PHPStan passa a entender |
|----------|--------|----------------------------------|
| FilamentMacroMethodsExtension | filament-admix | macros registrados com o `Macroable` do Filament, como `TextInput::generateSlug()`, `TextColumn::limitWithTooltip()` e o `optimize()` do `image-optimizer` |
| WithScopesBuilderMethodsExtension | filament-admix | os scopes do `WithScopes` num `Builder` sem model definido, como o `$query->sort()` do `defaultSort` das Tables |
| FakerProviderMethodsExtension | laravel-support | os métodos do nosso Faker `Provider`, como `localImage()`, `htmlParagraphs()`, `tags()` e `youtubeRandomUri()` |

Um macro novo do Filament, registrado no `boot()` de um ServiceProvider, é reconhecido automaticamente. Dentro da closure
do macro, o `$this` já é o componente, então não é preciso anotar o tipo do `$this`.

Componentes reutilizáveis do Admix Antes de criar um novo componente de formulário, verifique se já existe um

equivalente no pacote filament-admix. Evite reimplementar upload de arquivo/vídeo, seletor de ícone, campo de senha, etc. | componente | namespace | descrição | |------------+-----------+-----------| | ImageUploadWithAutomaticallyResize | Agenciafmd\Admix\Resources\Forms\Components | upload de imagem única, com redimensionamento automático de imagem | | ImageUploadMultipleWithAutomaticallyResize | Agenciafmd\Admix\Resources\Forms\Components | upload de múltiplas imagens, com redimensionamento automático de imagem | | FileUploadWithDefault | Agenciafmd\Admix\Resources\Forms\Components | upload de arquivo genérico, com nome de arquivo derivado de outro campo | | VideoUploadWithDefault | Agenciafmd\Admix\Resources\Forms\Components | upload de vídeo (mp4), baseado em FileUploadWithDefault | | RichEditorWithDefault | Agenciafmd\Admix\Resources\Forms\Components | editor de texto rico (rich editor) com configuração padrão do pacote | | YouTubeInput | Agenciafmd\Admix\Resources\Forms\Components | campo de URL de vídeo do YouTube | | IconPickerWithDefault | Agenciafmd\Admix\Resources\Forms\Components | seletor de ícone (heroicons/tabler/frontend) | | PasswordInput | Agenciafmd\Admix\Resources\Forms\Components | campo de senha com regra de validação e dehydrated condicional | | PermissionMatrix | Agenciafmd\Admix\Resources\Forms\Components | matriz de permissões (linhas = Resources, colunas = abilities, coluna "Outros" para getExtraPermissions()), usada no formulário de Grupos no campo permissions | | DateTimePickerDisabled | Agenciafmd\Admix\Resources\Forms\Components | campo de data/hora desabilitado, oculto na criação (ex.: created_at/updated_at editáveis só na edição) | | DateTimeEntry | Agenciafmd\Admix\Resources\Infolists\Components | exibição (infolist) de data/hora, usado em created_at/updated_at no formulário | Traits e concerns reutilizáveis: | trait/concern | namespace | descrição | |------------+-----------+-----------| | RedirectBack | Agenciafmd\Admix\Resources\Concerns | usado nas Pages de Create/Edit para retornar à listagem após salvar | | WithScopes | Agenciafmd\Admix\Traits | fornece os scopes isActive e sort para o Model; o sort lê o $defaultSort, que é obrigatório no Model, em vez de reimplementar ordenação | | PermissionRegistry | Agenciafmd\Admix\Permissions | lista as permissões dos Resources do painel e monta as chaves {ResourceClass}@{ability} (permissionKey(), permissionFor()); não reimplemente listas de permissões | | ResourcePolicy | Agenciafmd\Admix\Policies | policy genérica registrada automaticamente para os models dos Resources; não crie Policy por model (veja a skill filament-admix-permissions) |

Extensões do PHPStan: o admix e o laravel-support registram extensões pelo phpstan/extension-installer, então não anote nem ignore os erros que elas resolvem.

extensão pacote o que o PHPStan passa a entender
FilamentMacroMethodsExtension filament-admix macros registrados com o Macroable do Filament, como TextInput::generateSlug(), TextColumn::limitWithTooltip() e o optimize() do image-optimizer
WithScopesBuilderMethodsExtension filament-admix os scopes do WithScopes num Builder sem model definido, como o $query->sort() do defaultSort das Tables
FakerProviderMethodsExtension laravel-support os métodos do nosso Faker Provider, como localImage(), htmlParagraphs(), tags() e youtubeRandomUri()

Um macro novo do Filament, registrado no boot() de um ServiceProvider, é reconhecido automaticamente. Dentro da closure do macro, o $this já é o componente, então não é preciso anotar o tipo do $this.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
elsayed85/laravel-api-exceptions
ouhssini/laravel-demo-mode
daworks/ncloud-outbound-mailer-driver
gp247/cms
ignibyte/aic-gates
nexa-merchant/blog
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
cgv/localized-resource