component: add .text helper