From fc6ce31659b4795bf1b4c3fe695a21003595ac93 Mon Sep 17 00:00:00 2001
From: Ruslan Bakiev <572431+veikab@users.noreply.github.com>
Date: Fri, 23 Jan 2026 10:35:59 +0700
Subject: [PATCH] Add unified icon system to navigation
- Chips: colored circle with entity icon (product/hub/supplier)
- Active tokens: outline style with icon in circle
- Quote segments: labeled with colored circle icons
---
app/components/navigation/MainNavigation.vue | 64 +++++++++++++++-----
1 file changed, 49 insertions(+), 15 deletions(-)
diff --git a/app/components/navigation/MainNavigation.vue b/app/components/navigation/MainNavigation.vue
index e118640..7a04da5 100644
--- a/app/components/navigation/MainNavigation.vue
+++ b/app/components/navigation/MainNavigation.vue
@@ -40,24 +40,39 @@
class="flex-1 px-4 py-2.5 text-left hover:bg-base-200/50 rounded-l-full transition-colors min-w-0"
@click="$emit('edit-token', 'product')"
>
-
{{ $t('catalog.quote.product') }}
- {{ productLabel || $t('catalog.quote.selectProduct') }}
+
+
+
+
+ {{ $t('catalog.quote.product') }}
+
+ {{ productLabel || $t('catalog.quote.selectProduct') }}
@@ -82,18 +97,23 @@
-
+
-
- {{ token.label }}
+
+
+
+ {{ token.label }}
-
+
-
+
+
+
{{ chip.label }}
@@ -339,5 +364,14 @@ const selectModeIcon = computed(() => {
const getTokenColor = (type: string) => {
return entityColors[type as keyof typeof entityColors] || entityColors.product
}
+
+const getTokenIcon = (type: string) => {
+ const icons: Record = {
+ product: 'lucide:shopping-bag',
+ hub: 'lucide:warehouse',
+ supplier: 'lucide:factory'
+ }
+ return icons[type] || 'lucide:tag'
+}