fix pricing at home page
Build & Push / Pipeline Tests (push) Successful in 1m51s
Test / Type Check (all packages) (push) Successful in 51s
Build & Push / Build & Push Docker Image (push) Failing after 4m11s
Test / API Unit Tests (push) Successful in 1m15s
Test / Homepage Unit Tests (push) Successful in 49s
Test / Carplace Unit Tests (push) Successful in 43s
Test / Admin Unit Tests (push) Successful in 42s
Test / Dashboard Unit Tests (push) Successful in 43s
Test / API Integration Tests (push) Successful in 1m5s
Build & Push / Pipeline Tests (push) Successful in 1m51s
Test / Type Check (all packages) (push) Successful in 51s
Build & Push / Build & Push Docker Image (push) Failing after 4m11s
Test / API Unit Tests (push) Successful in 1m15s
Test / Homepage Unit Tests (push) Successful in 49s
Test / Carplace Unit Tests (push) Successful in 43s
Test / Admin Unit Tests (push) Successful in 42s
Test / Dashboard Unit Tests (push) Successful in 43s
Test / API Integration Tests (push) Successful in 1m5s
This commit is contained in:
@@ -14,14 +14,15 @@
|
||||
margin-inline: auto;
|
||||
}
|
||||
|
||||
.pricingContainer {
|
||||
inline-size: min(100%, 104rem);
|
||||
}
|
||||
|
||||
.controls {
|
||||
display: grid;
|
||||
grid-template-columns: minmax(0, 1.5fr) minmax(16rem, 0.5fr);
|
||||
gap: var(--space-5);
|
||||
position: relative;
|
||||
left: 50%;
|
||||
inline-size: min(100vw - (var(--layout-gutter) * 2), 104rem);
|
||||
transform: translateX(-50%);
|
||||
inline-size: 100%;
|
||||
padding: var(--space-5);
|
||||
border: 1px solid var(--border-standard);
|
||||
border-radius: var(--radius-lg);
|
||||
@@ -111,12 +112,9 @@
|
||||
|
||||
.planGrid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(4, minmax(0, 1fr));
|
||||
grid-template-columns: repeat(3, minmax(0, 1fr));
|
||||
align-items: stretch;
|
||||
position: relative;
|
||||
left: 50%;
|
||||
inline-size: min(100vw - (var(--layout-gutter) * 2), 104rem);
|
||||
transform: translateX(-50%);
|
||||
inline-size: 100%;
|
||||
gap: var(--space-5);
|
||||
}
|
||||
|
||||
|
||||
@@ -33,7 +33,6 @@ interface PricingSectionProps {
|
||||
const accountSubscriptionPlanByPricingPlan: Record<Exclude<PricingPlanId, 'enterprise'>, AccountSubscriptionPlan> = {
|
||||
launch: 'STARTER',
|
||||
growth: 'GROWTH',
|
||||
pro: 'PRO',
|
||||
};
|
||||
|
||||
function analyticsContext(
|
||||
@@ -105,7 +104,7 @@ export function PricingSection({
|
||||
|
||||
return (
|
||||
<Section id="pricing" className={styles.section} aria-label={content.title}>
|
||||
<Container>
|
||||
<Container className={styles.pricingContainer}>
|
||||
<Stack gap="large">
|
||||
<SectionHeader
|
||||
className={styles.header ?? ''}
|
||||
|
||||
@@ -200,27 +200,12 @@
|
||||
],
|
||||
"cta": "احجز عرضًا لباقة Growth"
|
||||
},
|
||||
{
|
||||
"id": "pro",
|
||||
"name": "Pro",
|
||||
"audience": "للأساطيل القائمة التي تحتاج إلى تحكم متقدم عبر عمليات أكبر.",
|
||||
"features": [
|
||||
"كل ما تتضمنه Growth",
|
||||
"حتى 150 مركبة نشطة",
|
||||
"تقارير متقدمة",
|
||||
"أدوار وصلاحيات الفريق",
|
||||
"مسارات عمل ذات أولوية",
|
||||
"وصول API",
|
||||
"دعم مخصص"
|
||||
],
|
||||
"cta": "احجز عرضًا لباقة Pro"
|
||||
},
|
||||
{
|
||||
"id": "enterprise",
|
||||
"name": "مؤسسات",
|
||||
"audience": "للأساطيل الكبيرة والامتيازات والعمليات ذات احتياجات التكامل المعقدة.",
|
||||
"features": [
|
||||
"كل ما تتضمنه Pro",
|
||||
"كل ما تتضمنه Growth",
|
||||
"150+ مركبة نشطة",
|
||||
"تكاملات مخصصة ووصول إلى API",
|
||||
"أدوار وصلاحيات متقدمة",
|
||||
|
||||
@@ -212,27 +212,12 @@
|
||||
],
|
||||
"cta": "Book a Growth demo"
|
||||
},
|
||||
{
|
||||
"id": "pro",
|
||||
"name": "Pro",
|
||||
"audience": "For established fleets that need advanced controls across larger operations.",
|
||||
"features": [
|
||||
"Everything in Growth",
|
||||
"Up to 150 active vehicles",
|
||||
"Advanced reports",
|
||||
"Team roles and permissions",
|
||||
"Priority workflows",
|
||||
"API access",
|
||||
"Dedicated support"
|
||||
],
|
||||
"cta": "Book a Pro demo"
|
||||
},
|
||||
{
|
||||
"id": "enterprise",
|
||||
"name": "Enterprise",
|
||||
"audience": "For large fleets, franchises, and operations with complex integration needs.",
|
||||
"features": [
|
||||
"Everything in Pro",
|
||||
"Everything in Growth",
|
||||
"150+ active vehicles",
|
||||
"Custom integrations and API access",
|
||||
"Advanced roles and permissions",
|
||||
|
||||
@@ -231,27 +231,12 @@
|
||||
],
|
||||
"cta": "Réserver une démo Growth"
|
||||
},
|
||||
{
|
||||
"id": "pro",
|
||||
"name": "Pro",
|
||||
"audience": "Pour les parcs établis qui ont besoin de contrôles avancés sur une exploitation plus large.",
|
||||
"features": [
|
||||
"Tout ce qui est inclus dans Growth",
|
||||
"Jusqu’à 150 véhicules actifs",
|
||||
"Rapports avancés",
|
||||
"Rôles et autorisations d’équipe",
|
||||
"Flux prioritaires",
|
||||
"Accès API",
|
||||
"Support dédié"
|
||||
],
|
||||
"cta": "Réserver une démo Pro"
|
||||
},
|
||||
{
|
||||
"id": "enterprise",
|
||||
"name": "Entreprise",
|
||||
"audience": "Pour les grands parcs, franchises et exploitations ayant des besoins d’intégration complexes.",
|
||||
"features": [
|
||||
"Tout ce qui est inclus dans Pro",
|
||||
"Tout ce qui est inclus dans Growth",
|
||||
"150+ véhicules actifs",
|
||||
"Intégrations personnalisées et accès API",
|
||||
"Rôles et autorisations avancés",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
export const fleetBandIds = ['small', 'growing', 'scale', 'enterprise'] as const;
|
||||
export type FleetBandId = (typeof fleetBandIds)[number];
|
||||
|
||||
export const pricingPlanIds = ['launch', 'growth', 'pro', 'enterprise'] as const;
|
||||
export const pricingPlanIds = ['launch', 'growth', 'enterprise'] as const;
|
||||
export type PricingPlanId = (typeof pricingPlanIds)[number];
|
||||
|
||||
export type BillingPeriod = 'monthly' | 'annual';
|
||||
@@ -35,12 +35,6 @@ export const pricingCommercialConfig: PricingCommercialConfig = {
|
||||
scale: 299,
|
||||
enterprise: 299,
|
||||
},
|
||||
pro: {
|
||||
small: 399,
|
||||
growing: 399,
|
||||
scale: 399,
|
||||
enterprise: 399,
|
||||
},
|
||||
enterprise: {
|
||||
small: null,
|
||||
growing: null,
|
||||
@@ -51,7 +45,7 @@ export const pricingCommercialConfig: PricingCommercialConfig = {
|
||||
recommendedPlanByFleetBand: {
|
||||
small: 'launch',
|
||||
growing: 'growth',
|
||||
scale: 'pro',
|
||||
scale: 'growth',
|
||||
enterprise: 'enterprise',
|
||||
},
|
||||
};
|
||||
|
||||
@@ -45,7 +45,7 @@ export const analyticsContextSchema = z
|
||||
reason: safeText.optional(),
|
||||
fleetBand: z.enum(['small', 'growing', 'scale', 'enterprise']).optional(),
|
||||
billingPeriod: z.enum(['monthly', 'annual']).optional(),
|
||||
plan: z.enum(['launch', 'growth', 'pro', 'enterprise']).optional(),
|
||||
plan: z.enum(['launch', 'growth', 'enterprise']).optional(),
|
||||
})
|
||||
.strict();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user