feat(onboarding): add Marketer and Online store personas
Completes the persona grid to a 3x3 with two high-value segments: Marketer (in-house marketing / social media, a scheduling tool's core user) and Online store (e-commerce). Labels in all three locales, with IconSpeakerphone and IconShoppingBag glyphs. Other stays last.
This commit is contained in:
parent
deea4564e2
commit
ea2d3d86c8
6 changed files with 13 additions and 1 deletions
|
|
@ -12,5 +12,7 @@ enum Persona: string
|
|||
case Startup = 'startup';
|
||||
case Agency = 'agency';
|
||||
case SmallBusiness = 'small_business';
|
||||
case Marketer = 'marketer';
|
||||
case OnlineStore = 'online_store';
|
||||
case Other = 'other';
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@
|
|||
'startup' => 'Startup',
|
||||
'agency' => 'Agency',
|
||||
'small_business' => 'Small business',
|
||||
'marketer' => 'Marketer',
|
||||
'online_store' => 'Online store',
|
||||
'other' => 'Other',
|
||||
],
|
||||
'connect' => [
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@
|
|||
'startup' => 'Startup',
|
||||
'agency' => 'Agencia',
|
||||
'small_business' => 'Pequeña empresa',
|
||||
'marketer' => 'Marketing',
|
||||
'online_store' => 'Tienda online',
|
||||
'other' => 'Otro',
|
||||
],
|
||||
'connect' => [
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@
|
|||
'startup' => 'Startup',
|
||||
'agency' => 'Agência',
|
||||
'small_business' => 'Pequena empresa',
|
||||
'marketer' => 'Marketing',
|
||||
'online_store' => 'Loja online',
|
||||
'other' => 'Outro',
|
||||
],
|
||||
'connect' => [
|
||||
|
|
|
|||
|
|
@ -9,6 +9,8 @@ import {
|
|||
IconCode,
|
||||
IconDots,
|
||||
IconRocket,
|
||||
IconShoppingBag,
|
||||
IconSpeakerphone,
|
||||
IconUser,
|
||||
} from '@tabler/icons-vue';
|
||||
import { trans } from 'laravel-vue-i18n';
|
||||
|
|
@ -31,6 +33,8 @@ const personaMeta: Record<string, { icon: FunctionalComponent; color: string }>
|
|||
startup: { icon: IconRocket, color: 'text-violet-700' },
|
||||
agency: { icon: IconBuildingSkyscraper, color: 'text-blue-700' },
|
||||
small_business: { icon: IconBuildingStore, color: 'text-emerald-600' },
|
||||
marketer: { icon: IconSpeakerphone, color: 'text-fuchsia-600' },
|
||||
online_store: { icon: IconShoppingBag, color: 'text-teal-600' },
|
||||
other: { icon: IconDots, color: 'text-sky-600' },
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
test('persona values are stable', function () {
|
||||
expect(array_map(fn (Persona $persona): string => $persona->value, Persona::cases()))
|
||||
->toBe(['creator', 'freelancer', 'developer', 'startup', 'agency', 'small_business', 'other']);
|
||||
->toBe(['creator', 'freelancer', 'developer', 'startup', 'agency', 'small_business', 'marketer', 'online_store', 'other']);
|
||||
});
|
||||
|
||||
test('every persona has an onboarding label in every locale', function (string $locale) {
|
||||
|
|
|
|||
Loading…
Reference in a new issue