diff --git a/apps/web/app/(marketing)/_components/site-navigation-item.tsx b/apps/web/app/(marketing)/_components/site-navigation-item.tsx
index 67bca5bbb..c93492a08 100644
--- a/apps/web/app/(marketing)/_components/site-navigation-item.tsx
+++ b/apps/web/app/(marketing)/_components/site-navigation-item.tsx
@@ -10,9 +10,10 @@ const getClassName = (path: string, currentPathName: string) => {
const isActive = isRouteActive(path, currentPathName);
return cn(
- `text-sm font-medium px-2.5 py-2 border rounded-lg border-transparent transition-colors`,
+ `text-sm font-medium px-2.5 py-2 border rounded-lg border-transparent transition-colors duration-200`,
{
- 'hover:border-border': !isActive,
+ 'hover:border-border active:dark:bg-secondary active:bg-gray-50 dark:text-gray-400 text-gray-600 hover:text-current dark:hover:text-white':
+ !isActive,
'dark:bg-secondary bg-gray-50': isActive,
},
);
diff --git a/packages/billing/core/src/create-billing-schema.ts b/packages/billing/core/src/create-billing-schema.ts
index d811ca4da..20eb882cf 100644
--- a/packages/billing/core/src/create-billing-schema.ts
+++ b/packages/billing/core/src/create-billing-schema.ts
@@ -80,7 +80,19 @@ export const PlanSchema = z
})
.min(1),
interval: BillingIntervalSchema.optional(),
- lineItems: z.array(LineItemSchema),
+ lineItems: z.array(LineItemSchema).refine(
+ (schema) => {
+ const types = schema.map((item) => item.type);
+ const perSeat = types.filter((type) => type === 'per-seat').length;
+ const flat = types.filter((type) => type === 'flat').length;
+
+ return perSeat <= 1 && flat <= 1;
+ },
+ {
+ message: 'Plans can only have one per-seat and one flat line item',
+ path: ['lineItems'],
+ },
+ ),
trialDays: z
.number({
description:
diff --git a/packages/ui/src/makerkit/mode-toggle.tsx b/packages/ui/src/makerkit/mode-toggle.tsx
index 129742857..d8057a685 100644
--- a/packages/ui/src/makerkit/mode-toggle.tsx
+++ b/packages/ui/src/makerkit/mode-toggle.tsx
@@ -20,7 +20,7 @@ import { Trans } from './trans';
const MODES = ['light', 'dark', 'system'];
-export function ModeToggle() {
+export function ModeToggle(props: { className?: string }) {
const { setTheme, theme } = useTheme();
const Items = useMemo(() => {
@@ -51,9 +51,9 @@ export function ModeToggle() {
return (
-