Changelog
All notable changes to the cngx libraries. Each entry corresponds to one squash-merged pull request. Non-library scopes (examples, examples-gen, docs, ci, build, chore) and non-consumer-facing types are omitted by design. See CONTRIBUTING.md for the workflow.
0.1.0-rc.7 (2026-08-31)
Features
- common: honour dir=rtl across keyboard-navigation strategies (#317) (8c8ad5d)
- common: isolate numeric render surfaces library-wide as bidi runs under dir=rtl (#320) (6d43dd8)
- common/chart: realtime buffer, auto-switching Canvas renderer, and live a11y (#245) (687787c)
- common/chart: add the *cngxChartOverlay slot (#262) (2a37528)
- common/data: async suspense boundary (CngxAsyncBoundary + createAggregateAsyncState) (#295) (9cfaa7d)
- common/dialog: programmatic dialog labelling via an aria registry (#350) (9541665)
- common/display: relocate CngxStatus and add a dot-only glyph toggle (#292) (b4804e7)
- common/popover: honour dir=rtl in popover and tooltip anchor placement (#319) (259c1e3)
- core: latency-aware loading primitives and registry-sourced spinner-vs-skeleton selection (#246) (add323d)
- core: add RTL direction primitive (CNGX_DIRECTION, injectDirection, provideDirection, CngxDir) (#313) (652b5fa)
- core: add provideDirectionAt for element-injector direction scope (#323) (7e04e03)
- core,common: touch-target hit-area floor as an orthogonal token family (#266) (948c21f)
- core,forms,common,ui: floor the third-tier tap targets and enforce touch-target coverage (#268) (eb6cd49)
- core,forms,common,ui,data-display: complete the touch-target floor across the interactive surface (#267) (772f4d1)
- core,ui: guard rem-only font-size and unpin mat-tabs/paginator text (#284) (7468ae4)
- core/theming: global text-scale axis (provideTextScale, injectTextScale) (#285) (9b25373)
- core/theming: reduced-motion axis (provideMotion / injectMotion / CngxMotionScope) + safety net (#286) (fd3c41d)
- core/theming: contrast axis (provideContrast / injectContrast / CngxContrast) + more-contrast token overrides (#287) (7cc761d)
- core/theming: forced-colors / Windows High Contrast Mode survival hardening (#288) (37b4835)
- core/theming: accessibility preferences aggregator + persistence (#290) (b251daa)
- data-display,forms/select,ui: mirror residual directional glyphs under dir=rtl (#321) (944cbe9)
- data-display,ui: honour dir=rtl in treetable and dot-stepper keyboard nav (#322) (eacb062)
- doctor: extract the project-wiring scanner as the standalone @cngx/doctor package (#311) (75740ee)
- eslint-plugin: implement the six lint rules with CI and docs (#302) (2e951d0)
- eslint-plugin: scope the bridge rule, ship the rule docs, and polish the doctor CLI (#337) (23050c8)
- forms/input: isolate numeric and code render surfaces as bidi runs under dir=rtl (#316) (0b1abda)
- mcp: add @cngx/mcp model context protocol server (#303) (88e48aa)
- mcp: add the get_config configuration-cascade query tool (#325) (88ee701)
- mcp: add the list_components browse tool (#326) (8b86143)
- mcp: add the list_components browse tool (#327) (993383a)
- mcp: add resources and prompts surfaces (#328) (97594a6)
- mcp: version-parameterized queries on the entry-shape tools (#329) (19d86ee)
- mcp: accept an optional version on get_config (#330) (f0d76e9)
- mcp: serve the llms.txt index as the cngx://llms resource (#333) (8ac739c)
- mcp: serve the compodocx llm-md dump as the cngx://llms-full resource (#334) (7e5b94b)
- mcp: cover injectable services and harden the version-scoped fetch (#335) (3ac1320)
- plugin: add the cngx consumer plugin (#304) (36c0403)
- plugin: add the three core consumer skills (cngx-wire, cngx-async, cngx-forms) (#306) (267c2ee)
- plugin: add the @cngx/doctor project-wiring CLI and PostToolUse guard hook (#307) (fca0e69)
- plugin: add the five remaining consumer skills (#308) (7c7d323)
- plugin: consumer review, a11y, and migration tooling (agents, cngx-migrate, migrate_usage) (#309) (c8787c2)
- plugin: route the grounding surface to the full MCP and harden the doctor (#336) (3d68bd9)
- ui: stat-card and chart-panel dashboard organisms (#248) (1e90ae3)
- ui: honour dir=rtl in shipped CSS via logical properties (#314) (099a93a)
- ui: mirror RTL directional glyphs in breadcrumb, stepper, accordion (#315) (d81b8ba)
- ui/a11y: placeable accessibility preferences card (CngxA11yPanel) (#291) (da7775a)
- ui/command-palette: command palette preset over a headless @cngx/common/command registry (#296) (370c19d)
- ui/context-menu: declarative context-menu organism over the headless menu brains (#297) (4116192)
- ui/context-menu: submenu activation, rich-icon projection, and inline-end flanking (#299) (dd45b41)
- ui/data-grid-accordion: scroll ownership, bounded-height mode, and flow-content summary cells (#263) (0f80311)
- ui/stat-card: demo coverage and the UX fixes it exposed (#249) (c0d183a)
- ui/timeline: add the timeline family (#251) (3d48f64)
- ui/timeline: placement, rail style, orientation and the opposite slot (#252) (f6d52b1)
- ui/toc: table-of-contents rail with router sync and heading auto-discovery (#312) (6369fb0)
Bug Fixes
- common: render undrawn inputs and draw single-datum chart marks (#254) (2905681)
- common: correct false ARIA state communication in card, button-toggle, and key combos (#255) (74ce946)
- common,ui: containment-aware popover eviction, options-passed data-source atoms, and longhand page bindings (#257) (268df52)
- common/a11y: active-descendant virtual-window resolution, APG typeahead cycle, stable highlighted emissions (#344) (25d53c9)
- common/a11y: keyboard hygiene for the roving and active-descendant nav strategies (#345) (d2d05b8)
- common/chart: reserve axis room inside the chart box (#258) (2720510)
- common/data: make CngxStatus dot-size and gap tokens inheritable (#250) (002e5f7)
- common/dialog: draggable guards, opener parity, backdrop origin, and a shared scroll lock (#349) (7270874)
- common/interactive: gate CngxToggle/CngxRadio disabled-reason describedby on the disabled state (#265) (4a36279)
- common/interactive: attach context-menu dismiss listeners eagerly on open (#278) (5fc7d80)
- common/interactive: route submenu hover through the menu focus stack (#346) (8943a66)
- common/interactive: describedby gating convergence for checkbox, chip, and the sliders (#347) (07f64e4)
- common/popover: light-dismiss finalize, ARIA gates, tooltip aria-hidden, and a shared floating fallback (#348) (eb0e410)
- common/stepper: deep-linking honors bound step ids and lands on first paint (#264) (40f2b4b)
- common/tabs: prefix matching for section navs and pre-render URL seeding (#256) (a06d1de)
- common/tabs: replace the em-dash in the SR live-region defaults with a hyphen (#341) (8d662b3)
- common/timeline: register item inline-size @property with a valid absolute initial-value (#272) (0410222)
- core/theming: register system tokens inherits: true and revive the example brand theme (#342) (10fa314)
- data-display: treegrid roving focus model and APG row semantics (#351) (6afe575)
- forms/field: gate aria-describedby error id on showError and propagate field disabled into slider bridges (#343) (e3efb11)
- plugin: scope the pack drift-check to committed sources and run it in CI (#305) (9ca0c37)
- ui: describedby gating, panel layering, and density-scale residue (#352) (381eb08)
BREAKING CHANGES
- common/chart: reserve axis room inside the chart box (#258)
0.1.0-rc.6 (2026-07-23)
Bug Fixes
- common: register @property length tokens dropped for invalid initial-value (#240) (e467bcf)
- common/interactive: centre the cngx-toggle thumb in its track (#239) (c80a999)
BREAKING CHANGES
- ui: density coverage wave 4 - spacing derived from the scale + regression guard (#242)
- ui: density coverage wave 5 - derive remaining paginator/stepper/tabs/select spacing + guard refinement (#243)
0.1.0-rc.5 (2026-07-22)
Features
- common/audio: add the audio feedback system (#232) (9f110b8)
- interop: add @cngx/interop store bridges and opt-in async observability (#235) (ac7ec0e)
- ui/tabs: paint all five skins on cngx-tab-nav (#237) (1b15aee)
Bug Fixes
- common: resolve recycler late-mount, sparkline SR-only clip, and toggle accessible name (#236) (a3aa58c)
- ui/tabs: derive the cngx-tab-nav base tokens and density-anchor the family tab padding (#238) (2c7cae5)
0.1.0-rc.4 (2026-07-19)
Features
- common: add CngxHoverIntent and injectMediaQuery reactive-helper atoms (#223) (b6d5ce2)
- common,ui: add slider, accordion, and breadcrumb primitive families (#214) (43881be)
- common/data: add the stat-display dashboard atom family (#228) (05aa1e6)
- common/layout,ui/sidenav: query-param URL sync kernel and deep-linkable sidenav (#227) (de6d315)
- core/theming: library-wide [data-density] density system with Material convergence (#221) (ff28265)
- forms: input a11y hardening and field/input consistency cleanup (#209) (6869249)
- forms/input: keyboard a11y, multi-drop accumulation and maxFiles for CngxFileDrop (#210) (1d7bdac)
- forms/input: enterprise input expansion - a11y, restriction, affixes, currency, data-handling (#212) (b80ee09)
- forms/input: rating, intl phone, mask presets and phone-metadata strategy (#213) (32e11ec)
- forms/select: material-theme playgrounds and bridge fidelity pass (#202) (79ce792)
- ui: accordion skins and variants, and the data-grid-accordion entry (#216) (5629443)
- ui/breadcrumb: 15 skins, a per-crumb icon slot, and refined dropdowns (#218) (b8f4f20)
- ui/breadcrumb: width-responsive collapse on CngxBreadcrumbBar (#219) (c236f23)
- ui/collection: add the CngxIncrementalList append-style collection organism (#231) (31d7373)
- ui/mat-accordion: add [cngxMatAccordion] Material instrumentation bridge (#217) (e16955e)
- ui/paginator: playgrounds, isolated part docs, and bridge/interaction fixes (#199) (49874d1)
- ui/paginator: config-cascade default for page-size options (#207) (bce7b88)
- ui/sidenav: overlay focus management and stability hardening (#222) (3db279f)
- ui/sidenav: debounce mini expand-on-hover via CngxHoverIntent (#224) (2a41025)
- ui/sidenav: configuration cascade and tunable mini hover dwell (#225) (478f4a4)
Bug Fixes
- common: close the field-sync over-reach (#98) and the roving auto-select race (#135) (#204) (3577cd2)
- common/data: expose CngxMetric accessible name via role=img (#229) (d3c5930)
0.1.0-rc.3 (2026-06-23)
Features
- ui/mat-paginator: cngxMatPaginator instrumentation bridge (#185) (41d2c9d)
- ui/paginator: declarative paginator shell, nav + pages segments, numbered skin (#186) (fe40d95)
- ui/paginator: skins, density, motion, RTL, and responsive collapse (#187) (494d6ea)
- ui/paginator: range, go-to, page-size and page-of-pages data segments (#188) (40d547a)
- ui/paginator: dots segment and dots skin (#189) (9352364)
- ui/paginator: async loading wiring + live-region a11y (#190) (b09dc36)
- ui/paginator: finalize paginator - review follow-ups, stories, docs, e2e (#191) (a9ddb31)
- ui/paginator: configurable page-row truncation (#192) (61fc6c1)
- ui/paginator: consumer-overridable loading slot (#193) (5916047)
- ui/paginator: load-more mode over the paginate brain (#194) (bce05b3)
- ui/paginator: infinite-scroll sentinel segment (#195) (d8c85ce)
- ui/paginator: alphabetical range pagination mode (#196) (829b933)
- ui/paginator: material bridge, reset/announce/routing features, drop deprecated wrapper (#197) (adb33fa)
- ui/paginator: prototype-fidelity styling, status + rail segments, responsive collapse (#198) (c334944)
Bug Fixes
- common: close barrel-export gaps and drop a dead duplicate across common/forms/themes/ui (#184) (f39c974)
BREAKING CHANGES
- ui/mat-paginator: cngxMatPaginator instrumentation bridge (#185)
0.1.0-rc.2 (2026-06-16)
Features
- ui/stepper: continuous density and collapsible step groups (#180) (5216769)
- ui/tabs: add CngxTabNav + CngxTabLink for native routerLink tab bars (#178) (58a978b)
Bug Fixes
0.1.0-rc.1 (2026-06-10)
Features
- ui/stepper: communicate step error state across every skin and variant (#174) (74c2d4e)
- ui/stepper: header-navigation policy and per-step error messages (#175) (ba3ad67)
- ui/tabs: cngx tab system with skins, error aggregation, routed outlets, and Material bridges (#176) (7ece677)
Bug Fixes
BREAKING CHANGES
- ui/stepper: header-navigation policy and per-step error messages (#175)