feat(onboarding): add Developer persona option

Adds a Developer option to the onboarding persona step (after Freelancer),
with labels in all three locales (Developer / Desarrollador / Desenvolvedor)
and an IconCode glyph in the persona grid. The option flows to the frontend
via Persona::cases() and is accepted by the existing enum validation.
This commit is contained in:
Paulo Castellano 2026-06-23 16:19:58 -03:00
parent 0ae4b03e23
commit deea4564e2
6 changed files with 7 additions and 1 deletions

View file

@ -8,6 +8,7 @@ enum Persona: string
{
case Creator = 'creator';
case Freelancer = 'freelancer';
case Developer = 'developer';
case Startup = 'startup';
case Agency = 'agency';
case SmallBusiness = 'small_business';

View file

@ -9,6 +9,7 @@
'personas' => [
'creator' => 'Creator',
'freelancer' => 'Freelancer',
'developer' => 'Developer',
'startup' => 'Startup',
'agency' => 'Agency',
'small_business' => 'Small business',

View file

@ -9,6 +9,7 @@
'personas' => [
'creator' => 'Creador',
'freelancer' => 'Freelancer',
'developer' => 'Desarrollador',
'startup' => 'Startup',
'agency' => 'Agencia',
'small_business' => 'Pequeña empresa',

View file

@ -9,6 +9,7 @@
'personas' => [
'creator' => 'Criador',
'freelancer' => 'Freelancer',
'developer' => 'Desenvolvedor',
'startup' => 'Startup',
'agency' => 'Agência',
'small_business' => 'Pequena empresa',

View file

@ -6,6 +6,7 @@ import {
IconBuildingSkyscraper,
IconBuildingStore,
IconCheck,
IconCode,
IconDots,
IconRocket,
IconUser,
@ -26,6 +27,7 @@ const form = useForm({ persona: props.selected ?? '' });
const personaMeta: Record<string, { icon: FunctionalComponent; color: string }> = {
creator: { icon: IconUser, color: 'text-rose-600' },
freelancer: { icon: IconBriefcase, color: 'text-amber-600' },
developer: { icon: IconCode, color: 'text-cyan-600' },
startup: { icon: IconRocket, color: 'text-violet-700' },
agency: { icon: IconBuildingSkyscraper, color: 'text-blue-700' },
small_business: { icon: IconBuildingStore, color: 'text-emerald-600' },

View file

@ -6,7 +6,7 @@
test('persona values are stable', function () {
expect(array_map(fn (Persona $persona): string => $persona->value, Persona::cases()))
->toBe(['creator', 'freelancer', 'startup', 'agency', 'small_business', 'other']);
->toBe(['creator', 'freelancer', 'developer', 'startup', 'agency', 'small_business', 'other']);
});
test('every persona has an onboarding label in every locale', function (string $locale) {