From 92d302aed3c29c72050b14183311eb8d373cd503 Mon Sep 17 00:00:00 2001 From: diegosouzapw Date: Fri, 13 Mar 2026 11:26:18 -0300 Subject: [PATCH] fix(combos): free-stack template first, 2x2 grid, green highlight badge MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Move 'Free Stack ($0)' to position 1 in COMBO_TEMPLATES (was 4th, invisible in 3-col grid) - Add isFeatured flag to free-stack for special styling - Change template grid: grid-cols-3 → 2x2 (sm:grid-cols-2) — all 4 templates visible - Free Stack: green border/bg (emerald), FREE badge, larger text size - Other templates: hover styles preserved, → arrow on Apply link - Increase templates section padding --- package-lock.json | 4 +- src/app/(dashboard)/dashboard/combos/page.tsx | 58 +++++++++++-------- 2 files changed, 36 insertions(+), 26 deletions(-) diff --git a/package-lock.json b/package-lock.json index 7110127f8f..e278e5e9a6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "omniroute", - "version": "2.3.17", + "version": "2.4.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "omniroute", - "version": "2.3.17", + "version": "2.4.0", "hasInstallScript": true, "license": "MIT", "workspaces": [ diff --git a/src/app/(dashboard)/dashboard/combos/page.tsx b/src/app/(dashboard)/dashboard/combos/page.tsx index 8a0777c335..e19b1fd8c0 100644 --- a/src/app/(dashboard)/dashboard/combos/page.tsx +++ b/src/app/(dashboard)/dashboard/combos/page.tsx @@ -145,6 +145,22 @@ const COMBO_TEMPLATE_FALLBACK = { }; const COMBO_TEMPLATES = [ + { + id: "free-stack", + icon: "volunteer_activism", + titleKey: "templateFreeStack", + descKey: "templateFreeStackDesc", + fallbackTitle: COMBO_TEMPLATE_FALLBACK.freeStackTitle, + fallbackDesc: COMBO_TEMPLATE_FALLBACK.freeStackDesc, + strategy: "round-robin", + suggestedName: "free-stack", + isFeatured: true, + config: { + maxRetries: 3, + retryDelayMs: 500, + healthCheckEnabled: true, + }, + }, { id: "high-availability", icon: "shield", @@ -190,21 +206,6 @@ const COMBO_TEMPLATES = [ healthCheckEnabled: true, }, }, - { - id: "free-stack", - icon: "volunteer_activism", - titleKey: "templateFreeStack", - descKey: "templateFreeStackDesc", - fallbackTitle: COMBO_TEMPLATE_FALLBACK.freeStackTitle, - fallbackDesc: COMBO_TEMPLATE_FALLBACK.freeStackDesc, - strategy: "round-robin", - suggestedName: "free-stack", - config: { - maxRetries: 3, - retryDelayMs: 500, - healthCheckEnabled: true, - }, - }, ]; function getStrategyMeta(strategy) { @@ -1486,7 +1487,7 @@ function ComboFormModal({ isOpen, combo, onClose, onSave, activeProviders }) { {!isEdit && ( -
+

{getI18nOrFallback(t, "templatesTitle", COMBO_TEMPLATE_FALLBACK.title)} @@ -1499,27 +1500,36 @@ function ComboFormModal({ isOpen, combo, onClose, onSave, activeProviders }) { )}

-
+
{COMBO_TEMPLATES.map((template) => ( ))}