fix(icons): replace remaining hand-rolled inline SVGs with Lucide

telegram-login: close X and lock icons (auth-gate icon reused across
telegram-login and cart - same 'log in required' concept, now the
same lock icon in both instead of two different hand-drawn shapes);
retry/refresh icon (QR expired/error states, was duplicated). Added
missing aria-label on the close button (had none).

catalog-empty-state, category, subcategories, item-detail: empty-state
illustrations (package/search/grid), add-to-cart icons, success/error
status icons, and thumbs up/down vote icons replaced. Rating stars
(item-detail, both product rating and per-review rating) now use one
Star icon with a color input and a .dx-star--filled CSS class for the
solid/outline toggle, instead of hand-toggling raw fill/stroke SVG
attributes - fixes the same rating-star pattern being drawn two
different ways (outline-only in the carousel earlier, fill-toggling
here).

Added color input to app-icon (was stroke-only via currentColor
before) and four more icons to the registry: refresh, thumbsUp/Down,
locate/mapPin (added earlier this session).

Also fixed the currency-dropdown chevron in language-selector that a
prior replace_all missed (same markup, different [class.rotated]
binding target).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
sdarbinyan
2026-07-20 02:53:52 +04:00
parent 3837ddfb2d
commit e1112bbd50
14 changed files with 46 additions and 75 deletions

View File

@@ -56,6 +56,7 @@ import {
LucidePencil as Pencil,
LucidePlus as Plus,
LucidePlusCircle as PlusCircle,
LucideRefreshCw as RefreshCw,
LucideSave as Save,
LucideScale as Scale,
LucideSearch as Search,
@@ -69,6 +70,8 @@ import {
LucideTable as Table,
LucideTag as Tag,
LucideTags as Tags,
LucideThumbsDown as ThumbsDown,
LucideThumbsUp as ThumbsUp,
LucideTrash2 as Trash2,
LucideTriangleAlert as TriangleAlert,
LucideUpload as Upload,
@@ -121,6 +124,7 @@ export const APP_ICONS = {
plus: Plus,
plusCircle: PlusCircle,
minus: Minus,
refresh: RefreshCw,
check: Check,
checkCircle: CheckCircle2,
x: X,
@@ -162,6 +166,8 @@ export const APP_ICONS = {
stop: Square,
table: Table,
layoutGrid: LayoutGrid,
thumbsUp: ThumbsUp,
thumbsDown: ThumbsDown,
verified: BadgeCheck,
video: Video,
circle: Circle,

View File

@@ -19,6 +19,7 @@ import { APP_ICONS, type AppIconName } from './icon-registry';
<svg
[lucideIcon]="iconData()"
[size]="size()"
[color]="color()"
[strokeWidth]="strokeWidth()"
[title]="ariaLabel()"
></svg>
@@ -32,6 +33,7 @@ import { APP_ICONS, type AppIconName } from './icon-registry';
export class IconComponent {
readonly name = input.required<AppIconName>();
readonly size = input<number>(20);
readonly color = input<string>('currentColor');
readonly strokeWidth = input<number>(2);
readonly ariaLabel = input<string | null>(null);