# Changelog

All notable changes to semmet-angular are documented here.

## Unreleased

- Added the opt-in `feature` schematic with a minimal standalone page, lazy-ready routes, explicit parent-route registration, conflict protection, and no implicit UI/data architecture.
- Added the independent `api-resource` schematic with typed DTO/model contracts, pure mapping, selectable CRUD operations, and Angular HTTP request tests.
- Added deterministic `__semmet-e2e` routes to every generated component spec, a test-harness foundation, and a Playwright reporter that fails on skipped specs to prevent false-green CI.
- Added automatic project-owned E2E hosts and child-route registration for components generated after E2E setup, plus isolated axe-core audits for every registered harness.
- Added a functional `interceptor` schematic with tested `correlation-id`, `problem-details`, `auth-token`, and metadata-only `logging` recipes, plus opt-in safe registration through `withInterceptors`.
- Added opt-in `e2e --register-route` support and a clear harness-mount assertion before axe runs, including guidance for missing parent routes or `RouterOutlet`.
- Corrected `api-resource --operations` documentation to use repeated Angular CLI array flags.
- Replaced the generic E2E smoke fallback for `avatar`, `rating`, and `steps` with behavior-specific contracts.
- Added collection-wide regression guardrails for granular component output, explicit paths, conflict protection, opt-in E2E defaults, and behavior-specific E2E generation.
- Added an official Figma-to-Semmet prompt and implementation runbook to `AI_USAGE_GUIDE.md`.
- Updated the README positioning around AI-assisted Figma-to-Angular delivery.
- Added initial financial/banking schematics: `currency-input`, `account-summary`, `transaction-list`, `payment-card`, and `transfer-form`, each with accessibility-focused templates, unit test templates, and opt-in Playwright e2e templates.
- Fixed the generated `transfer-form` Playwright e2e spec to avoid strict-mode failures when multiple field/status alerts are visible.
- Added a second financial/banking schematic pack: `otp-input`, `secure-code-input`, `beneficiary-list`, `transaction-filter`, `confirmation-summary`, and `transaction-detail`.
- Added W3C/WAI accessibility reference links to the generated HTML comments for every component schematic.
- Added a final financial/banking schematic pack: `account-selector`, `beneficiary-form`, `payment-slip`, `pix-payment`, `scheduled-payment`, `limit-manager`, `authorization-queue`, `card-controls`, `loan-simulator`, and `compliance-alert`.

## 0.46.0

- Repositioned Semmet Angular as an accessible Angular UI delivery dev kit: generate, test, verify, package, and deploy using standard Angular CLI and npm workflows.
- Expanded the collection to 52 schematics, including accessible UI components, headless/directive patterns, starter blocks, Playwright setup, CI, Docker, and deploy scaffolding.
- Moved generated components to a style-empty default: minimal functional CSS only, with final Figma/design-system visuals owned by the consuming application.
- Added component-aware unit test templates across interactive and semantic components, covering labels, ARIA wiring, keyboard behavior, focus behavior, selection state, validation state, and projected content where relevant.
- Added component-aware optional Playwright e2e specs that skip cleanly when the component is not mounted and test core behavior when it is mounted.
- Split Playwright setup into the explicit `semmet-angular:e2e` schematic. `ng add semmet-angular` stays lightweight and only builds a `verify` script from existing project scripts.
- Added delivery schematics for `ci`, `docker`, and `deploy`, including package-manager detection and Angular build output detection where relevant.
- Added `AI_USAGE_GUIDE.md` with Figma pattern mapping, safe edit rules, visual variant naming guidance, and AI-agent workflow instructions.

## 0.7.0

- Refactored `accordion`, `tabs`, `carousel`, and `disclosure` to support projected app content via `ng-template` directives and `NgTemplateOutlet`, so generated containers can render real child components while preserving their ARIA and keyboard behavior.
- Added inline usage examples to the generated HTML templates for those containers, including the extra item/content directive imports and `[preserveContent]="false"` option.

## 0.6.0

- Full vocabulary parity with Semmet: added the remaining 23 schematics, growing the catalog from 5 to 28. New: Alert Dialog, Menu Button, Combobox, Breadcrumb, Navigation Menu (Disclosure), Pagination, Skip Link, Landmarks, Tree View, Toolbar, Card, Table, Checkbox, Radio Group, Switch, Listbox, Slider, Spinbutton, Meter, Progress Bar, Alert, Toast, Carousel.
- Every new schematic follows the same conventions as the original 5: standalone, signals-based state, Angular style guide conventions (`protected` template-only members, action-named handlers), and the shared Material-informed visual identity token system.
- `combobox` and `listbox` use the `aria-activedescendant` model (filtering/highlighting without moving DOM focus); `menu-button` and `tree-view` use roving `tabindex`/real focus movement — matching what each APG pattern actually calls for.
- `toast` auto-dismisses after 5s with cleanup via `DestroyRef`; `landmarks` is a real content-projection layout wrapper (`header`/`nav`/`main`/`aside`/`footer` slots) rather than a static skeleton.

## 0.4.0

- Reframed the README to lead with what semmet-angular does on its own terms; the Semmet relationship moved to its own section as supporting context instead of the whole pitch.

## 0.3.0

- Gave all components a shared, Material Design-informed visual identity (own teal-based color palette — not Material's colors — plus a consistent radius/elevation/motion token scale, all as CSS custom properties on `:host`). CSS-only change: no markup, ARIA attributes, or `.ts` logic touched.

## 0.2.0

- Applied [Angular style guide](https://angular.dev/style-guide) conventions to all 5 generated components: `protected` on template-only members, Angular-specific properties (queries) ordered before other properties, and event handlers renamed to describe what they do rather than the triggering event (`onHeaderKeydown` → `navigateHeaders`, `onTabKeydown` → `navigateTabs`, `onTriggerKeydown` → `closeOnEscape`, `onKeydown` → `handleDialogKeydown`). No change to generated markup, ARIA attributes, or public behavior.

## 0.1.0

- Initial release.
- 5 schematics generating standalone, signals-based Angular components following the W3C ARIA Authoring Practices Guide: Accordion, Tabs, Dialog (Modal), Disclosure, Tooltip.
- Each generated component is self-contained (no runtime dependency on this package) and implements the keyboard/focus behavior its ARIA pattern requires — not just markup.
