Search suggestions/popular-searches (search-autocomplete.service.ts,
search.facade.ts) set icon values like 'inventory_2', 'category', 'sell',
'auto_awesome', 'trending_up' - Material Symbols ligature names rendered as
raw {{ item.icon }} text in search-bar.component.html. No Material Icons
font is loaded anywhere in this Lucide/app-icon-based app, so these
rendered as literal garbled text ("inventory_2", etc.) instead of icons.
- SearchSuggestion.icon retyped from string to AppIconName (search.model.ts)
- Suggestion icon values mapped to registered app-icon names: product->package,
category->folder, brand->tag, ai->zap, popular/trending->trendingUp (new
registry entry, LucideTrendingUp)
- search-bar.component now renders <app-icon [name]="item.icon" /> instead of
the raw ligature string, and its icon-only clear ("x") button now renders
app-icon name="x" instead of a bare literal "x" character glyph
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
P0-4: the Catalog/Search category facet showed placeholder labels
like 'Категория 2008', 'Категория 22612' for every option — traced
to search.facade.ts buildFilterGroups() synthesizing 'Category {id}'
for every distinct product.categoryID with no attempt to resolve a
real name.
Investigated further: the mismatch isn't a missing-lookup bug, it's
a real data gap. Product categoryID values in the mock catalog
fixture don't correspond to any id in CategoryFacade's category
tree (a much smaller, separately-curated mock dataset) — there is
no real category name to show for these ids today.
Wired CategoryFacade into SearchFacade and resolve each option's
real title when the id does match; when it doesn't (the common case
with current mock data), the option is dropped rather than showing
a fabricated technical-looking label. The category filter group
simply doesn't render when nothing resolves, which is honest given
the data, instead of looking like broken/unseeded content in front
of a client.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>