// Hiperlink de célula de tabela: o nome de um serviço ou de um projeto que
// abre a tela dele (os mesmos handlers dos cards). O rótulo é um `text`
// filho porque o `size` do GSS não chega ao texto de um `button` (ficava em
// 16px e vazava da coluna, que conta caracteres a 13px).
component {
props {
prop(name = kind)
prop(name = id)
prop(name = label)
}
resources {
style """
.table-link { color: var(--surface); padding: 0; cursor: pointer; }
.table-link__label { size: 13; color: var(--accent); }
"""
}
button(
if = @kind,
equals = service,
class = table-link,
on_click = open_service:@id,
) {
text(class = table-link__label, content = "@label")
}
button(else, class = table-link, on_click = open_project:@id) {
text(class = table-link__label, content = "@label")
}
}