Skip to content

Feature/add prepend on text input#1078

Open
IhGori wants to merge 3 commits intomainfrom
feature/add-prepend-on-text-input
Open

Feature/add prepend on text input#1078
IhGori wants to merge 3 commits intomainfrom
feature/add-prepend-on-text-input

Conversation

@IhGori
Copy link
Copy Markdown
Contributor

@IhGori IhGori commented Apr 10, 2026

Por favor, verifique se o seu pull request está de acordo com o checklist abaixo:

  • A implementação feita possui testes (Caso haja um motivo para não haver testes/haver apenas testes de snapshot, descrever abaixo)
  • A documentação no mdx foi feita ou atualizada, caso necessário
  • O eslint passou localmente

1 - Resumo

Adicionado prop leadingIcon que permite ao textInput adicionar um icon prepend a esquerda.

2 - Tipo de pull request

  • 🧱 Novo componente
  • ✨ Nova feature ou melhoria
  • 🐛 Fix
  • 👨‍💻 Refatoração
  • 📝 Documentação
  • 🎨 Estilo
  • 🤖 Build ou CI/CD

3 - Esse PR fecha alguma issue? Favor referenciá-la

4 - Quais são os passos para avaliar o pull request?

  • Acesse o componente e coloque o token de icon do Cuida

5 - Imagem ou exemplo de uso:

image

6 - Esse pull request adiciona breaking changes?

  • Sim
  • Não

@github-actions github-actions bot added the 🐛 Bug Algo não está funcionando label Apr 10, 2026
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Apr 10, 2026

Greptile Summary

Este PR adiciona a prop leadingIcon ao TextInput, permitindo exibir um ícone à esquerda do campo — a prop é repassada ao CdsBaseInput, que já tinha suporte à funcionalidade.

  • P1 — leadingIcon silencioso com floatingLabel: quando floatingLabel é true, o BaseInput usa o CdsBaseMobileInput e repassa apenas a flag has-leading-icon, sem renderizar o ícone a partir do prop. O espaço é reservado no layout, mas nenhum ícone aparece.
  • P2 — binding redundante: :leading-icon na linha 11 de TextInput.vue é desnecessário pois v-bind=\"props\" já propaga o prop sem transformação.

Confidence Score: 4/5

O PR pode ser mesclado com cautela — a feature funciona no modo padrão, mas a combinação com floatingLabel não renderiza o ícone visualmente.

Há um P1 concreto: leadingIcon não produz efeito visual quando floatingLabel está ativo, o que pode causar confusão para quem usa as duas props juntas. O P2 de binding redundante é cosmético.

src/components/TextInput.vue — verificar comportamento do leadingIcon no modo floatingLabel.

Important Files Changed

Filename Overview
src/components/TextInput.vue Adiciona prop leadingIcon e a repassa ao CdsBaseInput; o binding é redundante com v-bind="props" e o ícone não será renderizado quando floatingLabel estiver ativo.
docs/components/forms/text-input.md Documentação atualizada com leadingIcon: null nos args de exemplo — sem problemas.
docs/.docgen/components-metadata.json Metadados do docgen atualizados com a nova prop leadingIcon — correto.
package.json Versão incrementada de 3.155.3 para 3.156.0 (minor bump) — apropriado para nova feature.

Reviews (1): Last reviewed commit: "chore: Atualiza versão do cuida" | Re-trigger Greptile

:support-link-url="supportLinkUrl || linkUrl"
:support-link="supportLink || linkText"
:floating-label="floatingLabel || mobile"
:leading-icon
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Binding redundante de :leading-icon

v-bind="props" já espalha todos os props do componente, incluindo leadingIcon, para CdsBaseInput. O binding explícito :leading-icon é desnecessário neste contexto — ao contrário de outros bindings como :floating-label="floatingLabel || mobile" que calculam um valor diferente do prop original, aqui o valor é idêntico ao que já seria propagado pelo spread.

Suggested change
:leading-icon
:floating-label="floatingLabel || mobile"

Comment on lines +190 to +193
leadingIcon: {
type: [String, null],
default: null,
},
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 leadingIcon não renderiza ícone no modo floatingLabel

Quando floatingLabel é true, o BaseInput usa o CdsBaseMobileInput e apenas repassa a flag :has-leading-icon, sem fornecer o nome do ícone nem renderizá-lo no slot #leading-icon. O resultado é que o layout reserva espaço para o ícone, mas nenhum ícone é exibido. A combinação leadingIcon + floatingLabel no TextInput ficará silenciosamente sem efeito visual.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🐛 Bug Algo não está funcionando

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant