@@ -1205,6 +1146,7 @@ async function handleDeleteUser() {
placeholder="Todos os papéis"
searchPlaceholder="Buscar papel..."
className="md:w-48"
+ triggerClassName="h-9 rounded-lg"
/>
{/* Filtro por espaço removido */}
{(teamSearch.trim().length > 0 || teamRoleFilter !== "all") ? (
@@ -1247,51 +1190,53 @@ async function handleDeleteUser() {
-
-
+
+
-
+
toggleTeamSelectAll(!!value)}
aria-label="Selecionar todos"
/>
- Nome
- E-mail
- Papel
- Empresa
- Criado em
- Ações
+ Nome
+ E-mail
+ Papel
+ Empresa
+ Criado em
+ Acoes
{teamPaginated.length > 0 ? (
teamPaginated.map((user) => (
-
-
- {
- setTeamSelection((prev) => {
- const next = new Set(prev)
- if (checked) next.add(user.id)
- else next.delete(user.id)
- return next
- })
- }}
- aria-label="Selecionar linha"
- />
-
+
+ {
+ setTeamSelection((prev) => {
+ const next = new Set(prev)
+ if (checked) next.add(user.id)
+ else next.delete(user.id)
+ return next
+ })
+ }}
+ aria-label="Selecionar linha"
+ />
- {user.name || "—"}
- {user.email}
- {formatRole(user.role)}
- {user.companyName ?? "—"}
- {formatDate(user.createdAt)}
-
+ {user.name || "—"}
+ {user.email}
+
+
+ {formatRole(user.role)}
+
+
+ {user.companyName ?? "—"}
+ {formatDate(user.createdAt)}
+
{/* Filtro por espaço removido */}
{(usersSearch.trim().length > 0 || usersTypeFilter !== "all" || usersCompanyFilter !== "all") ? (
@@ -1517,7 +1464,7 @@ async function handleDeleteUser() {
-
+
@@ -1534,13 +1481,13 @@ async function handleDeleteUser() {
aria-label="Selecionar todos"
/>
- Nome
- E-mail
- Tipo
- Perfil
- Empresa
- Criado em
- Ações
+ Nome
+ E-mail
+ Tipo
+ Perfil
+ Empresa
+ Criado em
+ Ações
@@ -1793,7 +1740,7 @@ async function handleDeleteUser() {
-
+
@@ -1804,11 +1751,11 @@ async function handleDeleteUser() {
aria-label="Selecionar todos"
/>
- Colaborador
- Papel
- Expira em
- Status
- Ações
+ Colaborador
+ Papel
+ Expira em
+ Status
+ Ações
@@ -1961,49 +1908,6 @@ async function handleDeleteUser() {
) : null}
- {
- if (!open && cleanupPending) return
- setCleanupDialogOpen(open)
- }}
- >
-
-
- Remover dados de teste
-
- Remove usuários, tickets e acessos que não estiverem na lista de e-mails preservada. Esta ação não pode ser desfeita.
-
-
-
-
-
E-mails a preservar
-
setCleanupKeepEmails(event.target.value)}
- placeholder="email@empresa.com, outro@dominio.com"
- />
-
- Sempre preservamos automaticamente: {viewerEmail ?? "seu e-mail atual"} e{" "}
- {DEFAULT_KEEP_EMAILS.join(", ")}.
-
-
-
-
Lista final preservada
-
{cleanupPreview}
-
-
-
- setCleanupDialogOpen(false)} disabled={cleanupPending}>
- Cancelar
-
-
- {cleanupPending ? "Removendo..." : "Remover dados"}
-
-
-
-
{
diff --git a/src/components/admin/companies/admin-companies-manager.tsx b/src/components/admin/companies/admin-companies-manager.tsx
index d0f02d6..53de367 100644
--- a/src/components/admin/companies/admin-companies-manager.tsx
+++ b/src/components/admin/companies/admin-companies-manager.tsx
@@ -788,11 +788,11 @@ function TableView({ companies, machineCountsBySlug, onEdit, onDelete }: TableVi
- Empresa
- Contratos ativos
- Contatos
- Dispositivos
- Ações
+ Empresa
+ Contratos ativos
+ Contatos
+ Dispositivos
+ Ações
diff --git a/src/components/admin/users/admin-users-workspace.tsx b/src/components/admin/users/admin-users-workspace.tsx
index 9699949..e607d13 100644
--- a/src/components/admin/users/admin-users-workspace.tsx
+++ b/src/components/admin/users/admin-users-workspace.tsx
@@ -227,10 +227,10 @@ function AccountsTable({
const effectiveTenantId = tenantId || DEFAULT_TENANT_ID
const headerCellClass =
- "px-3 py-3 text-[11px] font-semibold uppercase tracking-wide text-neutral-600 first:pl-4 last:pr-4"
+ "px-3 py-3 text-[11px] font-semibold uppercase tracking-wide text-neutral-600 first:pl-4 last:pr-4 xl:border-l xl:border-slate-200 first:xl:border-l-0"
const cellClass =
"px-3 py-4 text-sm text-neutral-700 first:pl-4 last:pr-4 whitespace-pre-wrap leading-snug"
- const rowClass = "border-b border-border/60 text-sm transition-colors hover:bg-muted/40 last:border-b-0"
+ const rowClass = "border-b border-slate-100 text-sm transition-colors hover:bg-slate-100/70 last:border-b-0"
const metaLabelClass =
"text-[11px] font-semibold uppercase tracking-wide text-neutral-500"
const metaValueClass = "text-sm text-neutral-600 leading-tight break-words"
@@ -689,10 +689,10 @@ function AccountsTable({
<>
- Usuários do cliente
- Gestores e colaboradores com acesso ao portal de chamados.
+ Usuários
+ Gestores e colaboradores com acesso ao portal.
-
+
@@ -718,6 +718,7 @@ function AccountsTable({
placeholder="Todos os papéis"
searchPlaceholder="Buscar papel..."
className="md:w-[12rem]"
+ triggerClassName="h-9 rounded-lg"
/>
-
+
Novo usuário
openDeleteDialog(selectedIds)}
>
@@ -746,9 +749,9 @@ function AccountsTable({
-
+
-
+
-
+
{ROLE_LABEL[account.role]}
@@ -910,17 +913,17 @@ function AccountsTable({
size="icon"
disabled={!account.authUserId || isPending}
onClick={() => handleOpenEditor(account)}
- title="Editar usuário"
+ aria-label="Editar usuário"
>
openDeleteDialog([account.id])}
- title="Remover usuário"
+ aria-label="Remover usuário"
>
@@ -1050,10 +1053,8 @@ function AccountsTable({
}))
}
options={editManagerOptions}
- placeholder="Sem gestor definido"
+ placeholder="Buscar gestor..."
searchPlaceholder="Buscar gestor..."
- allowClear
- clearLabel="Remover gestor"
disabled={isSavingAccount}
/>
@@ -1197,10 +1198,8 @@ function AccountsTable({
}))
}
options={managerOptions}
- placeholder="Sem gestor definido"
+ placeholder="Buscar gestor..."
searchPlaceholder="Buscar gestor..."
- allowClear
- clearLabel="Remover gestor"
disabled={isCreatingAccount}
/>