Post-payment email/phone-capture form in cart.component.html was
commented-out markup (never rendered), with a matching ~90-line dead
.email-form CSS block still shipping in the bundle. Removed both.
Closes KNOWN-ISSUES.md item 10.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- cart.component.scss: normalize hardcoded hex colors to design tokens
(--text-primary, --text-secondary, --bg-primary/--bg-secondary/
--bg-tertiary, --border-color, --error-color, --success-color,
--warning-color, --shadow-*, --transition-*, --radius-* fallbacks)
across cart items, quantity controls, summary, login gate, terms
checkbox, payment modal, payment-active QR screen, and bank-payment
iframe modal
- cart.component.scss: deduplicate an accidental duplicate
.close-modal-btn rule block (identical CSS repeated twice)
- cart.component.scss: add focus-visible rings to clear-cart, remove,
quantity, checkout, close-modal, retry-payment, copy/open-link,
telegram-login, and card-payment buttons
- cart.component.scss: delivery-required warning now pairs an icon
with the text instead of relying on color/background alone
- cart.component.html: add warning icon + role="alert" to the
delivery-required notice; add aria-live/aria-label to the quantity
value so screen readers announce quantity changes
- delivery-selector.component.scss: normalize hardcoded hex colors to
design tokens; remove dead :host-context(.cart-container.alt) rules
left over after the .alt theme was removed from cart.component in
RC-Visual-02 (cart-container never carries an .alt class anymore);
add hover/focus-visible states to the delivery <select>
Build verified green via `npm run build`.
Out of scope / skipped:
- Did not restructure the payment modal or bank-payment iframe overlay
into shared app-dialog - it has custom multi-step state (creating/
waiting/success/error/timeout) and an already-implemented manual
focus-trap; restructuring it is a composition change, not visual
polish
- Did not convert clearCart()'s native confirm() to a custom
confirm-remove dialog - no existing storefront confirm-dialog
pattern to follow, and adding one is a composition/architecture
change
- spinner-large/spinner-small left untouched per RC-Visual-02 guidance
(in-progress action state, not content loading)
- .email-form block (email/phone capture after payment success) is
dead CSS behind commented-out markup; left in place rather than
deleting, since removing it is a code-cleanup call, not visual
polish
- region-selector/language-selector are header-only, not part of the
cart/checkout flow - left untouched
- no dedicated checkout page exists; checkout is the payment section
of the cart page, covered above
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
- Replace hand-rolled loading/error/empty markup with shared app-skeleton,
app-empty-state, and app-button across catalog, product details, cart,
compare, wishlist, and the public static-page renderer
- Fix hardcoded hex colors that bypassed theme CSS variables (catalog,
product details), restoring multi-tenant theme correctness
- Remove ~1100 lines of dead "alt" cart theme CSS (never applied by the
template) from cart.component.scss, bringing it back under the 40kB
build budget (89.49kB -> 59.39kB cart-component chunk)
- Swap legacy global .btn/.btn-ghost/.btn-primary classes for app-button
in compare and wishlist empty/toolbar actions
Cart: trash/X/plus/minus/lock icons replaced with app-icon. Removed
the standalone EmptyCartIconComponent entirely - it was a duplicate
80px shopping-cart glyph with no unique illustration, only ever used
in one place; now app-icon name="cart" inline.
Language/region selectors: dropdown chevrons (duplicated 3x with
identical path data across two components) unified on
chevronDown; region pin, locate (crosshair), and globe icons replaced.
New mapPin/locate icons added to the registry.
Items carousel: rating star and add-to-cart icons replaced.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Fix real regression: the payment success checkmark and timeout clock
icons had been corrupted to literal '?' glyphs (confirmed via git
history — ✓ and ⏱ were replaced), so a customer who just paid saw a
confusing '?' instead of a success indicator. Restored both icons and
marked them aria-hidden since the adjacent heading already conveys
the status.
Add missing accessible names to icon-only buttons that had none:
quantity increase/decrease controls and the mobile delete button
(desktop remove button had a title attribute only, which is not
reliably announced by screen readers — added aria-label alongside it).
New cart.increaseQuantity/decreaseQuantity keys added across all
three locales.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>