Instruction file imported from luiszkm/Product.Template.Angular (
.cursor/rules/angular-components.mdc). Copyright stays with the author.
Componentes Angular
Fontes: .ai/rules/03-components.md, .ai/prompts/create-component.md
Obrigatório
standalone: true,OnPushinput()/input.required(),output()— signal-basedinject()— nunca constructor@for (item of items(); track item.id)— sempre com track- Pipes importados explicitamente (DecimalPipe, DatePipe, CurrencyPipe)
Formulários (se aplicável)
apiErrors = input<Record<string, string[]> | null>(null)effect()para aplicar apiErrors nos controlesfieldError(name)getter — lógica fora do template<fieldset [disabled]="loading()">
Acessibilidade
aria-invalid,aria-describedby,role="alert"em errosaria-labelem botões de íconetype="button"em botões não-submit
Exemplo: @src/app/shared/components/badge.component.ts
Design
- Tokens ERP em CSS
- Classes
.btnpara botões