dbd905b02f285eefbde67bd2e6cb51715b1af5fe
Some checks failed
Architecture Governance / architecture (push) Has been cancelled
FormFieldComponent's label had [for]=fieldId but nothing ever gave the projected control a matching id, and aria-describedby was set on a wrapper div instead of the actual input - so screen readers announced neither the label association nor the hint/error text. Added FormFieldContext, an injectable abstract class FormFieldComponent provides via its own providers array (visible to content-projected children, same mechanism Angular Material's mat-form-field/matInput relationship relies on). InputComponent optionally injects it and self-applies id and aria-describedby when nested inside app-form-field. This retroactively fixes every form built across Sprint 3-5 (Static Pages editor, Media Manager, Products List/Form, Project Editor sections) with no template changes needed anywhere else. Verified in browser: input id matches label's for attribute, and aria-describedby correctly points to the rendered hint/error text. Completes Sprint 5 (UI/UX Polish): Admin Products List, Admin Product Form, Project Editor sections (9 of 11), and this accessibility fix.
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%