2e931bbdc445ae7f3e40b60cd67c01f72e4701fa
RC PERF-01 asset audit (images/fonts/SVG/CSS), follow-up to 61a5714/4bf0666. Removed from src/styles.scss - zero references (literal and hyphen-safe) in any .html/.ts across the repo, and no dynamic class-string construction found for the utility classes: - .btn-primary / .btn-secondary (+ :hover) - unused button variants - .catalog-product-card - unused selector in a shared comma group with .product-card/.item-card, which stay - .item-badges-overlay, .item-simple-desc - unused component helpers - .text-center, .mt-1..4, .mb-1..4, .p-1..4 - fully unused spacing utilities styles-*.css: 9.60 kB -> 8.41 kB raw (2.22 kB -> 1.99 kB transfer), -12%. No other category needed a code change: - Images: <img> tags already have loading="lazy"/decoding="async" on storefront grids/galleries (product-card, catalog, category-grid, cart, item-detail) from prior polish passes; CLS is already handled via CSS aspect-ratio on those containers rather than width/height attrs, so none were added. Payment-logo <img>s already have explicit width/height. Flagged, not fixed: a handful of single-image admin/ editor previews (page-editor, brand-overview, asset-details-drawer) lack loading="lazy" - low traffic, negligible impact, left alone to avoid unnecessary diff. - Fonts: index.html preconnects to fonts.gstatic.com/googleapis.com and loads DM Sans 400/500/600/700 via Google Fonts CSS2 (display=swap already in the URL). All 4 loaded weights are used in app CSS - no dead weight to drop. Flagged, not fixed: 800/900 are used in several component styles but never loaded, so the browser faux-bolds those - a pre-existing rendering quirk, out of scope (changing loaded weights risks visible text changes). - SVG: icon-registry.ts centralizes all icons via @lucide/angular (no inline SVG path duplication). Checked SVGs under public/ for editor cruft (metadata/inkscape/sodipodi comments) - found none, already clean. Flagged, not fixed: mastercard-logo.min.svg, dexar-logo*.svg, dexar-favicon.svg, novo-logo.svg, novo-favicon.svg appear unreferenced in src/public manifests - left in place since deletion is out of this task's scope and they may be used by backend-driven tenant branding. Verified: npx tsc --noEmit clean, npm run build green (initial bundle unchanged at 1.12 MB, this pass only touched global CSS).
Marketplace Frontend
Angular marketplace frontend for the client demonstration. The app uses standalone components, signals, runtime branding/configuration, and a production build optimized for the current marketplace experience.
Features
- Responsive marketplace storefront
- Category browsing and product detail pages
- Search and shopping cart flows
- Telegram login integration
- Payment handoff through the existing backend contract
- Runtime branding and configuration loading
- PWA manifest and service worker configuration
Development
Install dependencies:
npm install
Start the local development server:
npm start
Build for production:
npm run build
The production build is written to dist/dexarmarket/.
Project Structure
src/
├── app/
│ ├── components/ # Shared storefront components
│ ├── core/ # Runtime, config, guards, providers, interceptors
│ ├── dynamic-renderer/ # Page, section, and widget rendering pipeline
│ ├── facades/ # Runtime, website, builder, and backoffice facades
│ ├── pages/ # Storefront, info, legal, cart, search, and item pages
│ ├── services/ # API, cart, auth, SEO, Telegram, and language services
│ └── widgets/ # Dynamic renderer widgets
├── assets/mock/ # Local mock configuration and catalog data
├── environments/ # Development and production environment settings
└── styles/ # Shared global styles and themes
Useful Checks
npm run build
npm run arch:check
Notes
- Authentication and payment integrations are intentionally left on their existing contracts.
- Renderer and runtime architecture should remain stable during demo preparation.
- Client-facing content should avoid placeholder names, mock labels, and temporary routes.
Description
Languages
TypeScript
71.4%
HTML
15.3%
SCSS
11.9%
Shell
1.3%
JavaScript
0.1%